:root {
  --g900:#1B4332;--g800:#2D6A4F;--g600:#40916C;
  --g500:#52B788;--g400:#74C69D;--g300:#95D5B2;
  --g200:#B7E4C7;--g100:#D8F3DC;--g50:#F0F7F2;
  --y600:#C49A1A;--y500:#D4A92A;--y400:#E9C46A;
  --y200:#F0DFA0;--y100:#F6ECCC;--y50:#FDF8ED;
  --pk500:#C27E8A;--pk400:#D4A0AA;--pk300:#E4BFC6;
  --pk200:#F0D4D9;--pk100:#F6E6E9;--pk50:#FBF2F4;
  --r600:#B7312C;--r500:#D43E39;
  --txt:#2A2A2A;--txt2:#555;--txt3:#888;
  --bg:#FAFAF8;--wh:#FFF;--bdr:#E5E2DA;
  --sh1:0 1px 3px rgba(0,0,0,.04);
  --sh2:0 4px 16px rgba(0,0,0,.06);
  --sh3:0 8px 30px rgba(0,0,0,.08);
  --r-s:6px;--r-m:12px;--r-l:20px;
  --serif:"Shippori Mincho","Yu Mincho","YuMincho","Hiragino Mincho ProN","MS PMincho",serif;
  --sans:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic","Meiryo",sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{font-size:62.5%;scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0 auto;padding:0;max-width:750px;
  font-family:var(--sans);font-size:1.4rem;
  color:var(--txt);background:var(--bg);line-height:1.8;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,p,ul,li,div,span,a,button,small{margin:0;padding:0}
img{max-width:100%;height:auto;vertical-align:bottom;border:none}
a{text-decoration:none;color:inherit}
ul{list-style:none}
button{font-family:inherit;cursor:pointer;border:none;background:none}

/* ===== Header ===== */
.hd{
  background:rgba(255,255,255,.95);padding:0 16px;height:52px;
  display:flex;align-items:center;justify-content:space-between;
  border-bottom:1px solid var(--bdr);
  position:sticky;top:0;z-index:200;
  backdrop-filter:blur(10px);
}
.hd__logo{height:24px}
.hd__menu-btn{
  width:40px;height:40px;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:5px;
  border-radius:8px;transition:background .2s;
}
.hd__menu-btn:hover{background:var(--g50)}
.hd__menu-btn span{
  display:block;width:20px;height:2px;background:var(--g800);
  border-radius:1px;transition:all .3s;
}
.hd__menu-btn.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hd__menu-btn.is-open span:nth-child(2){opacity:0}
.hd__menu-btn.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* Drawer menu */
.drawer{
  position:fixed;top:52px;right:0;bottom:0;left:0;
  z-index:190;pointer-events:none;
}
.drawer__overlay{
  position:absolute;inset:0;background:rgba(0,0,0,.3);
  opacity:0;transition:opacity .3s;
}
.drawer__panel{
  position:absolute;top:0;right:-280px;width:280px;
  max-width:80vw;height:100%;background:var(--wh);
  box-shadow:-4px 0 20px rgba(0,0,0,.1);
  transition:right .3s ease;overflow-y:auto;
  padding:24px 0;
}
.drawer.is-open{pointer-events:auto}
.drawer.is-open .drawer__overlay{opacity:1}
.drawer.is-open .drawer__panel{right:0}
.drawer__nav a{
  display:block;padding:14px 24px;font-size:1.4rem;
  font-weight:500;color:var(--txt);border-bottom:1px solid var(--bdr);
  transition:background .2s,color .2s;
}
.drawer__nav a:hover{background:var(--g50);color:var(--g800)}
.drawer__nav a .nav-sub{
  display:block;font-size:1.05rem;color:var(--txt3);font-weight:400;margin-top:1px;
}

/* ===== Hero ===== */
.hero{position:relative;background:var(--g50);padding:0 0 48px;overflow:hidden}

/* Carousel */
.carousel{position:relative;width:100%;aspect-ratio:750/520;overflow:hidden}
.carousel__track{
  display:flex;width:500%;height:100%;
  transition:transform .7s cubic-bezier(.4,0,.2,1);
}
.carousel__slide{
  width:20%;height:100%;flex-shrink:0;position:relative;
  background-size:cover;background-position:center;
}
.carousel__slide:nth-child(1){background-image:linear-gradient(135deg,#A8D5BA 0%,#7BC89C 50%,#5BB580 100%)}
.carousel__slide:nth-child(2){background-image:linear-gradient(135deg,#B5D8C0 0%,#8EC5A3 50%,#C9E4B8 100%)}
.carousel__slide:nth-child(3){background-image:linear-gradient(135deg,#C4DFC0 0%,#A3D4A0 50%,#D5E8B0 100%)}
.carousel__slide:nth-child(4){background-image:linear-gradient(135deg,#B0D9C4 0%,#82C9A0 50%,#A8D8B8 100%)}
.carousel__slide:nth-child(5){background-image:linear-gradient(135deg,#C0E0C8 0%,#94CDA8 50%,#BBE0B0 100%)}

/* Overlay - lead copy on top of carousel */
.carousel__overlay{
  position:absolute;inset:0;z-index:2;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(
    180deg,
    rgba(27,67,50,.15) 0%,
    rgba(27,67,50,.45) 35%,
    rgba(27,67,50,.55) 65%,
    rgba(27,67,50,.3) 100%
  );
  padding:24px;text-align:center;
  pointer-events:none;
}
.carousel__copy{
  font-family:var(--serif);font-size:1.6rem;line-height:2.4;
  color:var(--wh);font-weight:500;letter-spacing:.06em;
  text-shadow:0 1px 8px rgba(0,0,0,.3),0 0 30px rgba(0,0,0,.15);
  max-width:500px;
}
.carousel__copy strong{
  font-weight:700;
  background:linear-gradient(transparent 60%,rgba(255,255,255,.25) 60%);
  padding:0 3px;
}
@media(max-width:420px){
  .carousel__copy{font-size:1.4rem;line-height:2.2}
  .carousel{aspect-ratio:750/580}
}

/* Carousel dots */
.carousel__dots{
  position:absolute;bottom:16px;left:50%;transform:translateX(-50%);
  z-index:3;display:flex;gap:8px;
}
.carousel__dot{
  width:8px;height:8px;border-radius:50%;
  background:rgba(255,255,255,.45);border:none;cursor:pointer;
  transition:all .3s;padding:0;pointer-events:auto;
}
.carousel__dot.is-active{background:var(--wh);transform:scale(1.3)}

.hero-inner{padding:36px 24px 0;text-align:center}

/* Brand logo - IMAGE placeholder */
.brand-logo{
  display:block;margin:0 auto 28px;
  background:var(--wh);padding:16px 24px 14px;
  border-radius:var(--r-l);box-shadow:var(--sh2);
  width:fit-content;
}
.brand-logo img{
  width:240px;height:auto;display:block;
}
.brand-logo .logo-placeholder{
  width:240px;height:96px;display:flex;align-items:center;justify-content:center;
  background:var(--g600);border-radius:8px;color:var(--wh);
  font-size:1.2rem;text-align:center;line-height:1.6;
}
@media(max-width:420px){.brand-logo img,.brand-logo .logo-placeholder{width:200px;height:auto}}

.hero-label{
  display:inline-block;border:1px solid var(--g800);
  color:var(--g800);font-size:1.05rem;font-weight:500;
  padding:3px 20px;border-radius:30px;letter-spacing:.15em;
  margin-bottom:12px;
}
.hero h1{
  font-family:var(--serif);font-weight:700;font-size:2.5rem;
  color:var(--g800);line-height:1.5;margin-bottom:20px;letter-spacing:.04em;
}
.badges{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-bottom:28px}
.bdg{font-size:1.1rem;font-weight:600;padding:5px 16px;border-radius:30px;letter-spacing:.04em}
.bdg--mj{background:var(--g800);color:var(--wh)}
.bdg--en{background:var(--wh);color:var(--r500);border:1px solid var(--r500)}

.hero-prize{
  background:var(--wh);border:1px solid var(--bdr);
  border-radius:var(--r-l);padding:28px 20px;box-shadow:var(--sh2);
}
.hero-prize__sub{font-size:1.2rem;color:var(--txt2);margin-bottom:4px}
.hero-prize__num{font-size:3.8rem;font-weight:900;color:var(--r500);line-height:1.2}
.hero-prize__num small{font-size:1.5rem;color:var(--txt);font-weight:700}
.prize-tags{display:flex;justify-content:center;gap:10px;margin-top:14px;flex-wrap:wrap}
.ptag{padding:10px 16px;border-radius:var(--r-s);font-weight:700;font-size:1.3rem}
.ptag--gold{background:#FAF3E0;border:1px solid var(--y500);color:#7A5C00}
.ptag--silver{background:#F2F2F0;border:1px solid #B0B0A8;color:#555}
.ptag-or{font-size:1.1rem;color:var(--txt3);align-self:center}
.hero-period{margin-top:20px;font-size:1.2rem;color:var(--txt2)}
.hero-period strong{color:var(--g800);font-size:1.3rem}

/* ===== Sections ===== */
.sec{padding:48px 24px}
.sec--wh{background:var(--wh)}
.sec--off{background:var(--bg)}
.sec-en{
  font-size:1.05rem;color:var(--g500);letter-spacing:.2em;
  text-transform:uppercase;text-align:center;margin-bottom:4px;font-weight:500;
}
.sec-ttl{
  font-family:var(--serif);font-size:1.9rem;font-weight:700;
  color:var(--g800);text-align:center;margin-bottom:32px;letter-spacing:.04em;
}
.divider{
  display:flex;align-items:center;justify-content:center;gap:12px;
  padding:4px 24px;color:var(--g300);font-size:1.0rem;
}
.divider::before,.divider::after{content:'';flex:1;height:1px;background:var(--g200)}

/* ===== Steps ===== */
.steps{display:flex;flex-direction:column;gap:14px}
.stp{
  display:flex;align-items:flex-start;gap:16px;
  background:var(--wh);border:1px solid var(--bdr);
  border-radius:var(--r-m);padding:20px;transition:box-shadow .3s;
}
.stp:hover{box-shadow:var(--sh2)}
.stp__n{
  flex-shrink:0;width:34px;height:34px;
  border:2px solid var(--g800);color:var(--g800);
  border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:1.4rem;font-weight:700;font-family:var(--serif);
}
.stp h3{font-size:1.45rem;font-weight:700;color:var(--txt);margin-bottom:3px}
.stp p{font-size:1.2rem;color:var(--txt2);line-height:1.7}
.stp p strong{color:var(--g800)}

/* ===== Campaign Cards ===== */
.camp{padding:48px 24px}
.camp-1{background:var(--y50)}
.camp-2{background:var(--pk50)}
.camp-tag{
  display:inline-block;text-align:center;font-size:1.25rem;font-weight:700;
  padding:6px 24px;border-radius:30px;margin-bottom:20px;letter-spacing:.06em;
}
.camp-1 .camp-tag{background:var(--y600);color:var(--wh)}
.camp-2 .camp-tag{background:var(--pk500);color:var(--wh)}
.camp-card{
  background:var(--wh);border-radius:var(--r-l);
  padding:0;box-shadow:var(--sh2);overflow:hidden;
}
.camp-1 .camp-card{border-top:4px solid var(--y400)}
.camp-2 .camp-card{border-top:4px solid var(--pk400)}
.camp-card__body{padding:28px 24px}

/* Campaign mini carousel */
.camp-carousel{position:relative;width:100%;aspect-ratio:702/330;overflow:hidden}
.camp-carousel__track{display:flex;width:300%;height:100%;transition:transform .6s cubic-bezier(.4,0,.2,1)}
.camp-carousel__slide{
  width:33.333%;height:100%;flex-shrink:0;
  background-size:cover;background-position:center;position:relative;
}
/* Camp 1 slides */
.camp-1 .camp-carousel__slide:nth-child(1){background-image:linear-gradient(135deg,#F0DFA0,#F6ECCC)}
.camp-1 .camp-carousel__slide:nth-child(2){background-image:linear-gradient(135deg,#E8D490,#F2E4B0)}
.camp-1 .camp-carousel__slide:nth-child(3){background-image:linear-gradient(135deg,#F4E4A0,#FCF0C8)}
/* Camp 2 slides */
.camp-2 .camp-carousel__slide:nth-child(1){background-image:linear-gradient(135deg,#F0D4D9,#F6E6E9)}
.camp-2 .camp-carousel__slide:nth-child(2){background-image:linear-gradient(135deg,#E8C4CC,#F2D8E0)}
.camp-2 .camp-carousel__slide:nth-child(3){background-image:linear-gradient(135deg,#F4D0D8,#FCE8EC)}

.camp-carousel__dots{
  position:absolute;bottom:10px;left:50%;transform:translateX(-50%);
  z-index:3;display:flex;gap:6px;
}
.camp-carousel__dot{
  width:7px;height:7px;border-radius:50%;border:none;cursor:pointer;padding:0;
  transition:all .3s;
}
.camp-1 .camp-carousel__dot{background:rgba(154,120,40,.3)}
.camp-1 .camp-carousel__dot.is-active{background:#8B6914;transform:scale(1.3)}
.camp-2 .camp-carousel__dot{background:rgba(120,60,70,.3)}
.camp-2 .camp-carousel__dot.is-active{background:#7A3040;transform:scale(1.3)}
.camp-sub{
  font-family:var(--serif);font-size:1.25rem;color:var(--txt2);
  text-align:center;margin-bottom:6px;font-weight:500;
}
.camp-ttl{
  font-family:var(--serif);font-size:1.8rem;font-weight:700;
  color:var(--txt);text-align:center;line-height:1.6;margin-bottom:24px;
}
.per-box{border-radius:var(--r-m);padding:16px 20px;margin-bottom:24px}
.camp-1 .per-box{background:var(--y50);border:1px solid var(--y400)}
.camp-2 .per-box{background:var(--pk50);border:1px solid var(--pk400)}
.per-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;font-size:1.25rem}
.per-row+.per-row{border-top:1px dashed rgba(0,0,0,.08);padding-top:10px;margin-top:4px}
.per-lbl{font-weight:600;color:var(--txt2);min-width:80px}
.per-val{font-weight:700;color:var(--txt);text-align:right}
.prizes{margin-bottom:24px}
.prz{
  display:flex;align-items:center;gap:12px;
  padding:14px 16px;border-radius:var(--r-s);
  margin-bottom:6px;background:var(--bg);border:1px solid var(--bdr);
}
.prz__rk{flex-shrink:0;padding:4px 12px;border-radius:4px;font-size:1.1rem;font-weight:800;color:var(--wh)}
.rk1{background:linear-gradient(135deg,#C9A84C,#A07E2D)}
.rk2{background:linear-gradient(135deg,#8E9EAB,#6B7B8D)}
.prz__txt{flex:1;font-size:1.2rem;line-height:1.5}
.prz__txt strong{color:var(--r500);font-size:1.35rem}
.prz__ct{flex-shrink:0;font-size:1.6rem;font-weight:800}
.prz__ct small{font-size:1.0rem;font-weight:500}
.prz-note{font-size:1.0rem;color:var(--txt3);margin-top:6px}
.cta{
  border:1px solid var(--bdr);border-radius:var(--r-m);
  padding:24px 20px;background:var(--bg);text-align:center;
}
.cta__lbl{font-size:1.1rem;color:var(--txt2);margin-bottom:14px;font-weight:500;letter-spacing:.05em}
.cta__btn{
  display:block;width:100%;max-width:300px;margin:0 auto;
  padding:18px 20px;border-radius:60px;font-size:1.7rem;font-weight:800;
  text-align:center;letter-spacing:.06em;transition:all .3s;
}
.cta__btn--on{background:var(--r500);color:var(--wh);box-shadow:0 4px 16px rgba(212,62,57,.25)}
.cta__btn--on:hover{background:var(--r600);transform:translateY(-2px);box-shadow:0 6px 20px rgba(212,62,57,.35)}
.cta__btn--off{background:#BCBCBC;color:var(--wh);cursor:default}
.cta__note{font-size:1.0rem;color:var(--txt3);margin-top:10px}
.pt-date{text-align:center;font-size:1.15rem;color:var(--txt2);margin-top:20px}

/* ===== Target ===== */
.tgt-box{
  background:var(--g50);border:1px solid var(--g300);
  border-radius:var(--r-l);padding:28px 24px;text-align:center;
}
.tgt-main{font-family:var(--serif);font-size:1.8rem;font-weight:700;color:var(--g800);margin-bottom:16px}
.tgt-exc{font-size:1.15rem;color:var(--txt2);text-align:left;line-height:1.9}
.tgt-exc ul{padding-left:18px;list-style:disc}
.tgt-exc li{margin-bottom:2px}

/* ===== Checklist ===== */
.cl-section{background:var(--g50)}
.cl-intro{
  font-family:var(--serif);font-size:1.3rem;color:var(--g800);
  text-align:center;margin-bottom:24px;font-weight:500;
}
.cl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}
.cl-item{
  background:var(--wh);border:1px solid var(--bdr);
  border-radius:var(--r-m);padding:18px 8px;
  text-align:center;transition:all .3s;
}
.cl-item:hover{border-color:var(--g500);box-shadow:var(--sh1);transform:translateY(-2px)}
.cl-icon{font-size:2.4rem;display:block;margin-bottom:6px;line-height:1}
.cl-name{font-size:1.15rem;font-weight:600;color:var(--txt)}
.cl-img{
  width:100%;aspect-ratio:702/280;border-radius:var(--r-m);
  margin-top:20px;display:block;position:relative;
  background-color:var(--g100);background-size:cover;background-position:center;
}
.cl-bottom{
  font-family:var(--serif);font-size:1.35rem;color:var(--g800);
  font-weight:600;text-align:center;margin-top:24px;letter-spacing:.04em;
}

/* ===== Accordion ===== */
.acc-grp{margin-bottom:8px}
.acc-btn{
  width:100%;text-align:left;padding:16px 48px 16px 20px;
  font-size:1.3rem;font-weight:600;color:var(--g800);
  background:var(--g50);border:1px solid var(--bdr);
  border-radius:var(--r-s);position:relative;transition:background .2s;
}
.acc-btn:hover{background:var(--g100)}
.acc-chevron::before{
  content:'+';position:absolute;right:20px;top:50%;transform:translateY(-50%);
  font-size:1.8rem;color:var(--g500);font-weight:300;transition:transform .3s;
}
.acc-btn.is-open .acc-chevron::before{content:'\2212'}
.acc-btn.is-open{border-radius:var(--r-s) var(--r-s) 0 0;border-bottom-color:transparent}
.acc-body{
  max-height:0;overflow:hidden;transition:max-height .35s ease;
  border:1px solid var(--bdr);border-top:none;
  border-radius:0 0 var(--r-s) var(--r-s);background:var(--wh);
}
.acc-body__inner{padding:16px 20px;font-size:1.2rem;line-height:1.9;color:var(--txt2)}
.acc-body__inner p{margin-bottom:8px}
.acc-body__inner ul{padding-left:18px;list-style:disc}
.acc-body__inner li{margin-bottom:3px}
.acc-body__inner a{color:var(--g800);text-decoration:underline}
.acc-btn--store{background:var(--wh);color:var(--txt);font-size:1.25rem}
.acc-btn--store:hover{background:#F8F8F5}
.acc-body--store{border:1px solid #eee;border-top:none}
.store-item{
  display:flex;justify-content:space-between;align-items:center;
  padding:11px 16px;border-bottom:1px solid #F0F0EC;
  font-size:1.2rem;color:var(--txt2);transition:color .2s;
}
.store-item:last-child{border-bottom:none}
.store-item:hover{color:var(--g800)}
.map-pin{color:var(--g400);opacity:.4;transition:opacity .2s;flex-shrink:0}
.store-item:hover .map-pin{opacity:1}

/* ===== Contact ===== */
.contact-box{
  background:var(--bg);border:1px solid var(--bdr);
  border-radius:var(--r-m);padding:28px 24px;text-align:center;
}
.contact-box p{font-size:1.15rem;color:var(--txt2);line-height:1.9;margin-bottom:16px}
.contact-btn{
  display:inline-block;padding:14px 36px;
  border:1px solid var(--g800);color:var(--g800);
  border-radius:40px;font-size:1.3rem;font-weight:600;
  transition:all .3s;letter-spacing:.04em;
}
.contact-btn:hover{background:var(--g800);color:var(--wh)}

/* ===== Footer ===== */
.ft{padding:20px 0;background:#2b2b2b;text-align:center}
.ft a,.ft small{color:rgba(255,255,255,.7);text-decoration:none;font-size:1.05rem}
.ft a:hover{color:#fff}

/* Page top */
#page-top{position:fixed;right:12px;bottom:12px;z-index:100}
#page-top a{
  display:flex;align-items:center;justify-content:center;
  width:44px;height:44px;background:var(--g800);
  color:#fff;border-radius:50%;font-size:1.2rem;
  box-shadow:var(--sh2);transition:opacity .3s,background .3s;
  opacity:0;pointer-events:none;text-decoration:none;
}
#page-top a.is-show{opacity:1;pointer-events:auto}
#page-top a:hover{background:var(--g600)}

/* ===== Responsive ===== */
@media(max-width:420px){
  .hero h1{font-size:2.1rem}
  .hero-prize__num{font-size:3.2rem}
  .camp-card__body{padding:24px 16px}
  .camp-ttl{font-size:1.6rem}
  .cl-grid{grid-template-columns:repeat(2,1fr)}
  .per-row{flex-direction:column;align-items:flex-start;gap:2px}
  .stp{padding:16px}
}
