/* 2026年10月・スマイリーコネクトフェス用の上書きスタイル */
:root{
  --oct-blue:#159bd7;
  --oct-green:#37b96c;
  --oct-yellow:#ffc52e;
  --oct-pink:#ff4f7a;
}

html,body{
  max-width:100%;
  overflow-x:hidden;
}

.hero{
  padding:0;
}
.hero-in{
  width:100%;
  min-height:0;
  margin:0;
  border:0;
  border-radius:0;
  background:#eaf8ff;
  box-shadow:none;
}
.hero-photo{
  background:#eaf8ff;
}
.hero-photo img{
  width:100%;
  height:auto;
  object-fit:contain;
  object-position:center top;
}
.hero-main{
  min-height:0;
  justify-content:flex-start;
  padding:18px 12px 20px;
}
.hero .logo{
  width:min(64vw,360px);
  /* 支給ロゴの透明余白をレイアウトから除外。画像は切らず、縦横比も維持する。 */
  aspect-ratio:720 / 540;
  flex:none;
  margin:clamp(62px,17vw,110px) 0 0 auto;
  overflow:visible;
}
.hero .logo img{
  position:absolute;
  top:-21.111111%;
  left:0;
  display:block;
  width:100%;
  max-width:100%;
  height:auto;
}
.hero .catch{
  color:#153867;
  font-size:clamp(14px,4vw,21px);
}
.hero .subcopy{
  color:#30465e;
}
.hero .dates{
  margin-top:32px;
  gap:8px;
}
.hero .dnum b{font-size:clamp(38px,11vw,52px)}
.hero .dates .m{font-size:20px}
.hero .hero-info{margin-top:14px;row-gap:9px}
.hero .venue{font-size:clamp(22px,6vw,28px)}
.hero .time{font-size:21px}
.b-sat{background:#2a84c7}

.oct-mascot{
  display:block;
  object-fit:contain;
  pointer-events:none;
  user-select:none;
}
.bf-in{position:relative}
.mascot-benefit{
  position:absolute;
  right:-8px;
  bottom:-30px;
  z-index:2;
  width:82px;
  transform:rotate(4deg);
}
.band-title{position:relative}
.mascot-digest{
  position:absolute;
  right:0;
  bottom:-8px;
  width:62px;
}
.mascot-kids{
  position:absolute;
  right:1%;
  top:-30px;
  z-index:5;
  width:88px;
}

@keyframes october-image-loading{
  to{background-position-x:-200%}
}
.dtile-photo,
.approval-card>img,
.workshop .ws-art,
.kids-visual img:not(.oct-mascot),
.food-visual img{
  background:linear-gradient(110deg,#edf3f6 8%,#f9fbfc 18%,#edf3f6 33%);
  background-size:200% 100%;
  animation:october-image-loading 1.4s linear infinite;
}
.kids-visual .oct-mascot{
  background:transparent;
  animation:none;
}

.approval-row{
  align-items:flex-start;
}
.apcard.approval-card{
  width:min(86vw,360px);
  box-sizing:border-box;
  padding:6px;
  overflow:visible;
  border:0;
  border-radius:14px;
  background:#fff;
  box-shadow:0 10px 28px rgba(22,48,94,.1);
}
.approval-card>img{
  display:block;
  width:100%;
  height:auto;
  border-radius:0;
}
.hoppe-grid>.approval-hoppe{
  width:min(86vw,360px);
}

.specials{
  position:relative;
  padding:74px 0 82px;
  overflow:hidden;
  background:linear-gradient(180deg,#fff 0%,#f7fbff 100%);
}
.specials::before,
.specials::after{
  content:"";
  position:absolute;
  width:220px;
  height:220px;
  border-radius:50%;
  filter:blur(2px);
  opacity:.18;
}
.specials::before{left:-100px;top:30px;background:var(--oct-yellow)}
.specials::after{right:-90px;bottom:10px;background:var(--oct-blue)}
.specials .sec-head{
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  align-items:center;
  margin-bottom:30px;
}
/* FOOD / PLAYと同じ、通常の文書配置で表示するラベル。 */
.specials .sec-chip{
  min-height:27px;
  margin-bottom:10px;
  padding:5px 13px;
  border-radius:999px;
  background:#fce9d4;
  color:#a94b08;
  font-size:11px;
  font-weight:700;
  letter-spacing:.12em;
}
.special-grid{
  position:relative;
  z-index:1;
  display:grid;
  gap:18px;
  max-width:940px;
  margin:0 auto;
}
.special-card{
  display:grid;
  grid-template-columns:120px 1fr;
  align-items:center;
  min-height:190px;
  padding:18px 18px 18px 10px;
  overflow:hidden;
  border:1px solid #e3e9ed;
  border-radius:24px;
  background:#fff;
  box-shadow:0 12px 30px rgba(22,48,94,.08);
}
.special-card img{
  width:120px;
  height:150px;
  object-fit:contain;
}
.special-time{
  display:inline-block;
  padding:5px 12px;
  border-radius:999px;
  color:#fff;
  font-weight:900;
  font-size:15px;
}
.candy-card .special-time{background:#ee7a13}
.secret-card .special-time{background:#7154b6}
.special-card h3{
  margin-top:8px;
  color:#153867;
  font-family:"M PLUS Rounded 1c",sans-serif;
  font-size:clamp(20px,5.8vw,28px);
  line-height:1.25;
  word-break:keep-all;
  overflow-wrap:anywhere;
}
.special-card p{
  margin-top:7px;
  color:#53606b;
  font-size:12px;
  line-height:1.7;
}
.special-copy{min-width:0;position:relative;z-index:2}
.candy-card{background:radial-gradient(ellipse at 10% 20%,#fff1cd,transparent 55%),#fff}
.secret-card{background:radial-gradient(ellipse at 10% 40%,#eae2ff,transparent 58%),#fff;border-color:#e4ddef}
.special-visual{
  position:relative;
  isolation:isolate;
  width:100%;
  height:150px;
  pointer-events:none;
}
.special-visual img{
  position:relative;
  z-index:2;
  display:block;
  width:100%;
  height:100%;
}
.effect-layer{
  position:absolute;
  z-index:1;
  inset:-16px -4px;
  overflow:hidden;
  pointer-events:none;
  user-select:none;
}
.effect-piece{
  position:absolute;
  display:block;
  line-height:1;
  font-style:normal;
  animation-play-state:paused;
}
.candy-piece{
  top:8px;
  left:6%;
  font-family:"Apple Color Emoji","Segoe UI Emoji",sans-serif;
  font-size:20px;
  --drift:8px;
  --turn:70deg;
  animation:candy-fall 3.4s linear infinite;
  animation-play-state:paused;
}
.candy-piece:nth-child(2){left:72%;font-size:16px;animation-delay:-1.8s;--drift:-6px;--turn:-90deg}
.candy-piece:nth-child(3){left:38%;font-size:21px;animation-delay:-.7s;--drift:12px}
.candy-piece:nth-child(4){left:83%;font-size:19px;animation-delay:-2.5s;--drift:-4px;--turn:-50deg}
.candy-piece:nth-child(5){left:12%;font-size:16px;animation-delay:-1.2s;--drift:-6px}
@keyframes candy-fall{
  0%{transform:translate3d(0,-28px,0) rotate(-20deg);opacity:0}
  12%{opacity:1}
  78%{opacity:1}
  100%{transform:translate3d(var(--drift),185px,0) rotate(var(--turn));opacity:0}
}
.secret-visual::before{
  content:"";
  position:absolute;
  z-index:0;
  inset:0 -8px;
  border-radius:50%;
  background:radial-gradient(ellipse,rgba(189,159,246,.6),rgba(224,207,255,.25) 48%,transparent 72%);
  animation:mystery-glow 4s ease-in-out infinite;
  animation-play-state:paused;
}
.mystery-piece{
  left:5%;
  top:10%;
  color:#7751af;
  font-family:"M PLUS Rounded 1c",sans-serif;
  font-weight:900;
  font-size:28px;
  animation:mystery-float 3.6s ease-in-out infinite;
  animation-play-state:paused;
}
.mystery-piece:nth-child(2){left:auto;right:4%;top:19%;font-size:23px;animation-delay:-1.8s}
.mystery-piece:nth-child(3){left:8%;top:auto;bottom:12%;animation-delay:-.9s}
.mystery-piece:nth-child(4){left:auto;right:5%;top:auto;bottom:9%;animation-delay:-2.7s}
.mystery-spark{color:#a47018;font-size:19px}
@keyframes mystery-float{
  0%,100%{transform:translateY(3px) rotate(-9deg);opacity:.5}
  50%{transform:translateY(-9px) rotate(8deg);opacity:1}
}
@keyframes mystery-glow{
  0%,100%{transform:scale(.9);opacity:.45}
  50%{transform:scale(1.06);opacity:.9}
}
.specials.effects-running .effect-piece,
.specials.effects-running .secret-visual::before{animation-play-state:running}
html.flat .specials .effect-piece,
html.flat .specials .secret-visual::before{animation:none!important}
@media (prefers-reduced-motion:reduce){
  .specials .effect-piece,.specials .secret-visual::before{animation:none!important}
}

.map-scroller{
  display:block;
  overflow:visible;
  background:transparent;
  box-shadow:none;
}
.map-embed{
  display:block;
  width:100%;
  min-height:380px;
  overflow:hidden;
  border-radius:16px;
  box-shadow:0 8px 22px rgba(22,48,94,.1);
}

.course .sec-head h2 em{
  color:inherit;
}

.ov-card{
  box-sizing:border-box;
  width:100%;
  max-width:100%;
  overflow:hidden;
}
.ov-card dl div{
  grid-template-columns:minmax(0,78px) minmax(0,1fr);
  gap:8px;
}
.ov-card dd{
  min-width:0;
  overflow-wrap:anywhere;
}
.ov-card dd .nw{
  white-space:normal;
}

.foot-logo{
  display:block;
  width:min(70vw,320px);
  height:min(18.5vw,84px);
  object-fit:cover;
  object-position:center 47%;
  box-sizing:border-box;
  margin:4px auto 0;
  padding:4px 6px;
  border-radius:10px;
  background:rgba(255,255,255,.96);
}
.foot{
  padding-bottom:26px;
}
.foot-in{
  gap:16px;
}

@media (min-width:760px){
  .mascot-benefit{right:-30px;bottom:-42px;width:130px}
  .mascot-digest{right:-12px;bottom:-20px;width:96px}
  .mascot-kids{right:2%;top:-44px;width:125px}
  .special-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
  .special-card{grid-template-columns:160px 1fr;min-height:230px;padding:20px}
  .special-card img{width:160px;height:190px}
  .special-visual{height:190px}
  .special-visual img{width:100%;height:100%}
  .special-card p{font-size:13px}
}

@media (min-width:900px){
  .hero{padding:0}
  .hero-in{min-height:min(780px,100svh);border-radius:0}
  .hero-photo img{
    width:88%;
    height:100%;
    object-fit:cover;
    object-position:left 20%;
    -webkit-mask-image:linear-gradient(to right,#000 0%,#000 72%,transparent 100%);
    mask-image:linear-gradient(to right,#000 0%,#000 72%,transparent 100%);
  }
  .hero-main{
    width:58%;
    min-height:min(780px,100svh);
    margin-right:2%;
    justify-content:center;
    padding:12px 24px;
    background:radial-gradient(ellipse at center,rgba(255,255,255,.7),rgba(255,255,255,.22) 60%,transparent 79%);
  }
  .hero .catch{margin:0;font-size:clamp(20px,1.5vw,27px);letter-spacing:.025em}
  .hero .logo{width:min(36vw,62svh,560px);aspect-ratio:720 / 655;margin:5px auto 0}
  .hero .logo img{top:-17.40458%}
  .hero .subcopy{margin-top:5px;font-size:clamp(16px,1.15vw,19px);line-height:1.5;font-weight:700}
  .hero .dates{margin-top:5px;gap:12px}
  .hero .dates .m{font-size:25px}
  .hero .dnum b{font-size:clamp(50px,4.9vw,76px)}
  .hero .hero-info{column-gap:10px;row-gap:5px;margin-top:5px}
  .hero .venue{font-size:clamp(26px,2.5vw,36px)}
  .hero .time{font-size:24px}
  .hero .free-badge b{font-size:14px}
  .hero .free-badge span{font-size:11px}
  .apcard.approval-card{width:340px}
  .hoppe-grid>.approval-hoppe{width:370px}
  .map-embed{height:500px;min-height:500px}
  .ov-card dl div{grid-template-columns:130px minmax(0,1fr)}
  .mascot-kids{display:none}
}

/* スマホのみ。PCで承認いただいたヒーローの指定には手を加えない。 */
@media (max-width:899px){
  .hero-main{padding-top:clamp(44px,12.8vw,80px)}
  .hero .logo{width:min(50vw,320px);margin-top:clamp(40px,11vw,64px)}
  .hero .dates{margin-top:clamp(48px,15vw,96px)}
}
@media (max-width:430px){
  .hero-main{padding-inline:10px;padding-bottom:18px}
  .hero .dates{gap:5px}
  .special-card{grid-template-columns:102px 1fr;padding-left:6px}
  .special-card img{width:102px;height:132px}
  .special-visual{height:132px}
  .special-visual img{width:100%;height:100%}
}
