/* KVイメージをもとにした公開サイトの配色と装飾。本文・情報構造は既存のまま。 */
:root{
  --paper:#fffefa;
  --paper-2:#f7f7f2;
  --linen:#fff1d8;
  --ink:#573a2b;
  --ink-2:#6b5043;
  --muted:#77665d;
  --rule:#e9e2db;
  --accent:#f66b65;
  --accent-2:#df5854;
  --accent-ink:#fff;
  --sky:#e7f5fb;
  --sky-ink:#31657b;
  --leaf:#fff1cf;
  --leaf-ink:#69552e;
  --focus:#245f85;
  --font-display:"M PLUS Rounded 1c","BIZ UDPGothic",sans-serif;
  --font-num:"M PLUS Rounded 1c","BIZ UDPGothic",sans-serif;
  --r:20px;
}
body{background:var(--paper)}
.h{letter-spacing:.015em}
h2.h{position:relative;display:table;padding-bottom:.65rem;color:var(--ink)}
h2.h::after{content:"";position:absolute;left:0;bottom:0;width:82px;height:7px;border-radius:999px;background:linear-gradient(90deg,#ff8e89 0 31%,#ffd36d 31% 65%,#74c6e8 65%)}
.lead{max-width:52ch}
.btn{border-color:var(--rule);box-shadow:0 3px 12px #573a2b0a}
.btn--accent{border-color:var(--accent);box-shadow:0 5px 16px #f66b6540}
.btn--accent:hover{border-color:var(--accent-2)}

/* 看板と案内 */
.nav{background:#fffdfaee;border-bottom:1px solid #eee5df}
.nav .wrap{min-height:68px}
.wordmark{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--font-display);font-size:.91rem;font-weight:800;letter-spacing:-.045em}
.wordmark__coral{color:#f47e80}
.wordmark__yellow{color:#e8ad37}
.wordmark__blue{color:#59add1}
.wordmark__badge{display:inline-block;transform:rotate(-5deg);background:#ffe697;color:var(--ink);padding:0 .35rem;border-radius:3px;font-size:.73em;letter-spacing:0}
.nav__links a:hover,.nav__links a:focus-visible{color:var(--accent)}
.nav .btn{min-height:40px}

/* KV：ロゴ、イベントの賑わい、明るい紙面 */
.kv{position:relative;display:block;min-height:0;overflow:hidden;background:radial-gradient(circle at 12% 28%,#fff5d9 0 5px,transparent 6px),radial-gradient(circle at 45% 15%,#ffd1cd 0 6px,transparent 7px),radial-gradient(circle at 92% 65%,#d1eff7 0 6px,transparent 7px),var(--paper);color:var(--ink)}
.kv::before{content:"";position:absolute;z-index:3;top:0;left:0;right:0;height:49px;background:url("../images/festa-awning.svg") repeat-x left top/208px 49px;pointer-events:none}
/* 背景色・水玉の上、本文・写真の下に載せる透過装飾。 */
@media(min-width:521px){
  .kv::after{content:"";position:absolute;z-index:1;inset:0;pointer-events:none;background-image:url("../images/kv-decoration-pc.webp");background-repeat:no-repeat;background-position:center center;background-size:130% auto}
}
@media(min-width:960px) and (max-width:1199px){
  .kv::after{background-size:150% auto}
}
@media(min-width:521px) and (max-width:959px){
  .kv::after{background-size:100% auto;background-position:center top;mask-image:linear-gradient(90deg,transparent 0 54%,#000 65%)}
}
.kv__layout{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,360px) minmax(0,1fr);grid-template-areas:"intro photo" "details photo";column-gap:20px;row-gap:.65rem;align-items:center;max-width:1100px;margin-inline:auto;padding:72px 40px 48px}
.kv__intro{grid-area:intro;align-self:end}
.kv__details{grid-area:details;align-self:start}
.kv__logo{display:block;width:clamp(250px,24vw,310px);height:auto;margin:0 auto .8rem}
.kv .hero__free{background:#fff;border:1.5px dashed #f5c454;color:var(--ink);letter-spacing:0}
.kv h1{margin-top:1rem;color:var(--ink);font-family:var(--font-display);font-size:clamp(1.65rem,2.5vw,2.3rem);font-weight:800;line-height:1.5;letter-spacing:.01em;text-shadow:none}
.kv h1 .nw{display:inline-block;white-space:nowrap}
.kv__photo{grid-area:photo;position:relative;align-self:center;aspect-ratio:1.35;overflow:hidden;border:10px solid #fff1cb;border-radius:39% 47% 35% 43%/42% 31% 46% 39%;box-shadow:0 14px 36px #73563920;background:var(--linen)}
.kv__slides{position:absolute;inset:0}
.kv .slide{object-position:50% 50%}
.kv .hero__date{display:flex;flex-direction:column;gap:.15rem;margin-top:.4rem}
.kv .hero__date .d{display:none}
.kv .hero__date .y{color:var(--ink);font-size:1.13rem;font-weight:800;letter-spacing:.02em}
.kv .hero__date .v{color:var(--ink);font-size:1rem}
.kv .hero__date .v small{color:var(--ink-2);font-size:.84rem}
.ul{background:linear-gradient(transparent 73%,#ffb4b0 73%,#ffb4b0 89%,transparent 89%) no-repeat}

/* セクション全体：白い紙面に淡い色面とカード */
.visit-cta{background:#fff5e5;border-block:1px solid #ffe8be;padding-block:1.4rem 2rem}
.visit-cta .fac-row{justify-content:center;margin:0;gap:.5rem}
.visit-cta .fac-row li{background:#fff;border:1px solid #f2dfbb;color:var(--ink)}
.visit-cta .fac-row li.ok{background:#fff3d8;border-color:#f2d596}
.visit-cta .hero__cta{max-width:420px;margin:1.4rem auto 0}
.visit-cta .sub{color:var(--ink-2)}
.visit-cta .arrow{width:34px;height:22px;vertical-align:middle;color:var(--accent)}
.trust{background:#edf7fa;border-bottom:1px solid #d8ebf2;padding-block:1.5rem}
.trust .wrap>div{position:relative;padding-left:1rem}
.trust .wrap>div::before{content:"";position:absolute;left:0;top:.78rem;width:7px;height:7px;border-radius:50%;background:var(--accent)}
.trust .wrap>div:nth-child(2)::before{background:#75c4e6}
.trust .wrap>div:nth-child(3)::before{background:#f7c95f}
.sec{background:var(--paper)}
#events{background:linear-gradient(180deg,#fffefa,#fffdf5)}
.card{background:#fff;border:1px solid #f1e8e2;box-shadow:0 8px 24px #7356390d;transition:transform .22s ease,box-shadow .22s ease}
.card:hover{transform:translateY(-3px);box-shadow:0 12px 28px #7356391a}
.card .ph{background:#ffefd8}
.card .b{background:#fff}
.card h3{color:var(--ink)}
.card .meta span{background:#fff0cf;color:#6a5527}
.card:nth-child(3n+2) .meta span{background:#e8f5fb;color:#326781}
.card:nth-child(3n+3) .meta span{background:#ffe9e7;color:#9c4d48}
.band{border-block:8px solid #fff4d8}
.band--stage::after,.band--family::after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,#392b2d80);pointer-events:none}
.band--stage .band__cap,.band--family .band__cap{z-index:1}
/* 親子帯は差し替え前の高さを維持し、低解像度素材の拡大を避ける */
.band--family{aspect-ratio:4/3}
.band--family img{object-position:50% 25%}
@media(min-width:40rem){.band--family{aspect-ratio:21/8}}
.cards--3 .card:nth-child(6) .ph img{object-position:50% 30%;filter:brightness(1.16)}
.band__cap{color:#fff;text-shadow:0 2px 7px #3d2e2bcc}
.stage{background:#eaf6fb}
.chip{border-color:#c5e4f0;background:#fff}
.chip[aria-pressed="true"]{background:#67badc;border-color:#67badc;color:#153d4f}
.tt li{border:1px solid #dbeef5;box-shadow:0 3px 12px #235c7308}
.tt li.free{border-color:#93cce3}
.tt .rep{color:#d55b56}
.tt .tag{background:#ffeded;color:#9e4b47}

.booths li{aspect-ratio:auto;min-height:145px;background:#fff1d6;border:1px solid #ffe6b0}
.booths li:nth-child(3n+2){background:#e9f6fb;border-color:#cceaf5}
.booths li:nth-child(3n+3){background:#ffeae7;border-color:#ffd4d0}
.booths li b{color:var(--ink)}
.present{background:#fff4d8}
.gifts div{background:#fff;border:1px solid #ffe2ac;box-shadow:0 5px 18px #9b6d240e}
.gifts div:nth-child(2){border-color:#cde9f4}
.gifts div:nth-child(3){border-color:#ffd8d3}
.baby{background:#edf7fa}
.fac div{background:#fff;border:1px solid #d9edf3;box-shadow:0 4px 16px #2b6f8110}
.fac__icon{width:44px;height:44px}
.route li{background:#fff;border:1px solid #d9edf3}
.info{background:#fffefa}
.map{background:#edf7fa}
.faq{background:#fffefa}
.org{background:#fff1e7}
.final{background:radial-gradient(circle at 12% 35%,#ffd4d0 0 8px,transparent 9px),radial-gradient(circle at 87% 19%,#bde5f4 0 7px,transparent 8px),#fffaf0;text-align:center}
.final h2.h{margin-inline:auto}
.final h2.h::after{left:50%;transform:translateX(-50%)}
.final .lead{margin-inline:auto}
.final .hero__cta{margin-inline:auto}
footer{background:#fffdfa;border-top-color:#f0e5dd}
.sticky{background:#fffdfaf5}

/* キービジュアル直下の特典案内 */
.present{position:relative;background:linear-gradient(135deg,#fff4d8,#fffaf0 62%,#ecf7fb)}
.present__eyebrow{display:inline-block;margin:0 0 .7rem;padding:.25rem .8rem;border-radius:999px;background:#fff;color:#976b32;font-size:.84rem;font-weight:800;letter-spacing:.02em}
.present .lead{max-width:62ch}
.present .gifts{gap:1rem}
.present .gifts div{min-height:150px;border-radius:20px;border-top:6px solid #f9c85b;padding:1.15rem 1.25rem}
.present .gifts div:nth-child(2){border-top-color:#f48d89}
.present .gifts div:nth-child(3){border-top-color:#78c7e6}
.present .gifts b{margin-bottom:.5rem;color:var(--ink)}

/* 企業ロゴは確定素材が入るまでは非表示 */
.partner-section{background:#fffdf7}
.partner-section .booths{grid-template-columns:repeat(2,minmax(0,1fr));max-width:620px}
.partner-section .booths li{min-height:122px}
.partner-section__heading{margin-top:2rem;font-family:var(--font-display);color:var(--ink);font-size:1.15rem}
.partner-pending{margin-top:.6rem;color:var(--ink-2);font-size:.9rem}
.partner-marquee[hidden]{display:none}
.partner-marquee{margin-top:1rem;overflow:hidden;border-block:1px solid #e7e6e0;padding:1rem 0;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.partner-track{display:flex;width:max-content;animation:partner-scroll 26s linear infinite}
.partner-list{display:flex;flex:none;align-items:center;gap:2rem;padding-right:2rem}
.partner-list img{display:block;max-width:170px;max-height:70px;width:auto;height:auto;object-fit:contain}
@keyframes partner-scroll{to{transform:translateX(-50%)}}

@media(max-width:59.99rem){
  .kv__layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"intro" "photo" "details";gap:1.2rem;padding:72px clamp(1.25rem,4vw,3rem) 42px}
  .kv__intro,.kv__details{align-self:auto}
  .kv__logo{width:220px;margin:0 0 .6rem}
  .kv h1{font-size:clamp(1.45rem,5vw,2.2rem);margin-top:.65rem}
  .kv__photo{width:100%;max-width:620px;aspect-ratio:1.42;margin-inline:auto;border-width:7px}
  .kv .hero__date{margin-top:0}
}
@media(max-width:39.99rem){
  .nav .wrap{min-height:60px}
  .wordmark{font-size:.76rem;gap:.2rem}
  .wordmark__badge{font-size:.7em;padding:0 .2rem}
  .kv__layout{padding-top:65px}
  .kv__logo{width:190px}
  .kv h1{font-size:clamp(1.3rem,5.6vw,1.72rem)}
  .kv__photo{aspect-ratio:1.3}
  .kv .hero__date .y{font-size:1.02rem}
  .visit-cta .fac-row li{font-size:.75rem}
  .trust .wrap{gap:.8rem}
  .booths li{min-height:130px}
  .partner-section .booths{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  .card:hover{transform:none}
  .partner-track{animation:none}
}

/* スタンプラリー・プレゼントと体験コーナーの背景模様 */
.section-stamp-rally {
  background-color: #fffaf0;
  background-image:
    linear-gradient(90deg, rgba(246, 196, 83, 0.11) 50%, transparent 50%),
    linear-gradient(rgba(246, 196, 83, 0.11) 50%, transparent 50%);
  background-size: 36px 36px;
}
.section-experience-white-dots {
  background-color: #fcece8;
  background-image:
    radial-gradient(circle, rgba(255, 255, 255, 0.92) 0 5px, transparent 5.5px),
    radial-gradient(circle, rgba(255, 255, 255, 0.92) 0 5px, transparent 5.5px);
  background-position: 0 0, 24px 24px;
  background-size: 48px 48px;
}
@media (max-width: 767px) {
  .section-experience-white-dots {
    background-image:
      radial-gradient(circle, rgba(255, 255, 255, 0.92) 0 4.5px, transparent 5px),
      radial-gradient(circle, rgba(255, 255, 255, 0.92) 0 4.5px, transparent 5px);
    background-position: 0 0, 20px 20px;
    background-size: 40px 40px;
  }
}

/* 支給背景画像はPC表示のみ。既存の背景色は画像未読込時のフォールバックとして維持 */
@media (min-width: 60rem) {
  .section-stamp-rally {
    background-image: url("../images/stamp-rally-background.webp");
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
  }
  #reserve {
    background-image: url("../images/reserve-background.webp");
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
  }
}

/* スマホの予約欄のみ支給イラストを表示。上部の余白を詰め、画像下端はアイボリー色でつなぐ */
@media (max-width: 39.99rem) {
  #reserve {
    background-color: #fffaf0;
    background-image: url("../images/reserve-background-mobile.png");
    background-repeat: no-repeat;
    background-position: center -10vw;
    background-size: 100% auto;
    padding-top: 58vw;
  }
}
