/* ============================================================
   TOP: トップ画像 / PICK UP（ガーランド） / VTUBER / ご依頼の帯
   ============================================================ */

/* ---------- トップ画像: 画面いっぱい（ヘッダーの下から画面の下まで） ---------- */
.hero {
  --hero-min: 480px; --hero-h: max(var(--hero-min), calc(100vh - var(--hd-h))); --fall: calc(var(--hero-h) + 40px);
  position: relative; background: linear-gradient(var(--sky-mist), var(--white)); overflow: hidden;
}
@supports (height: 100svh) { .hero { --hero-h: max(var(--hero-min), calc(100svh - var(--hd-h))); } }
.hero-frame { position: relative; }
.hero-img { position: relative; height: var(--hero-h); overflow: hidden; border-radius: 0 0 32px 32px; background: var(--sky-pale); }
.hero-slides { position: absolute; inset: 0; }
.hero-slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1s ease; }
.hero-slide.is-on { opacity: 1; }
.hero-slide img { width: 100%; height: 100%; object-fit: cover; }
/* 横長の絵は、縦長の画面で見せる位置を画像ごとの --focus（site.json の focus。0=左端〜100=右端、無ければ中央）で決める */
.hero-slide:not(.hero-slide-tall) img { object-position: var(--focus, 50%) 50%; }
/* 縦長: 同じ画像をぼかして敷き、手前に全体を収める */
.hero-slide-tall img.bg { position: absolute; inset: 0; filter: blur(26px); transform: scale(1.15); }
.hero-slide-tall img.fg { position: absolute; inset: 0; object-fit: contain; }
.hero-fade { position: absolute; left: 0; right: 0; bottom: 0; height: 120px; background: linear-gradient(to bottom, rgba(255, 255, 255, 0), var(--white)); pointer-events: none; }
.hero-dots { position: absolute; left: 0; right: 0; bottom: 22px; z-index: 4; display: flex; justify-content: center; gap: 10px; }
.hero-dot { position: relative; width: 10px; height: 10px; border-radius: 50%; padding: 0; background: var(--white); box-shadow: inset 0 0 0 1.5px var(--brown); }
.hero-dot::after { content: ""; position: absolute; inset: -9px; }   /* 押せる範囲を広げる */
.hero-dot.is-on { background: var(--brown); }
/* トップ画像が 0 枚のときは、受付状況のカードだけを置く */
.hero.is-empty .hero-img, .hero.is-empty .hero-deco .cloud { display: none; }
.hero.is-empty .st-card { position: relative; left: auto; bottom: auto; margin: 40px auto; }

/* 受付状況のカード */
.st-card {
  position: absolute; left: 40px; bottom: 40px; z-index: 3; width: 320px;
  display: flex; flex-direction: column; align-items: flex-start; gap: 10px;
  padding: 24px 24px 22px; border-radius: 20px; background: var(--white); box-shadow: var(--sh-float);
}
.st-card .st-lead { font-size: 16px; }
.st-card .st-note { font-size: 13px; line-height: 1.7; color: var(--ink-soft); }
.st-card .btn { min-height: 44px; margin-top: 4px; }
.st-card .st-tape { --x: -14px; --y: -10px; --r: -6deg; --w: 88px; --h: 20px; }
.st-card .st-cat { position: absolute; right: 16px; top: 14px; width: 28px; height: 28px; opacity: .7; }

.hero-deco { z-index: 2; }
.hero-deco .hd-c1 { --x: -60px; --y: calc(var(--hero-h) - 120px); --w: 420px; --h: 150px; --o: .6; }
.hero-deco .hd-c2 { --x: calc(100% - 340px); --y: calc(var(--hero-h) - 100px); --w: 380px; --h: 140px; --o: .6; }

@media (max-width: 767px) {
  .hero { --hero-min: 420px; }
  .hero-img { border-radius: 0 0 28px 28px; }
  .hero-fade { height: 80px; }
  /* 受付状況のカードは、スクロールしなくても見えるよう絵の下のほうに重ねる。切り替えの点は右上へ */
  .hero-dots { left: auto; right: 16px; top: 14px; bottom: auto; }
  .st-card { left: 16px; right: 16px; bottom: 18px; width: auto; padding: 18px 18px 16px; gap: 8px; }
  .st-card .st-note { font-size: 12px; line-height: 1.6; }
  .st-card .btn { width: 100%; min-height: 42px; }
  .hero-deco .hd-c1 { --x: -80px; --y: calc(var(--hero-h) - 100px); --w: 260px; --h: 110px; }
  .hero-deco .hd-c2 { --x: calc(100% - 180px); --y: calc(var(--hero-h) - 80px); --w: 240px; --h: 100px; }
  .hero.is-empty .st-card { margin: 28px 16px; }
}

/* ---------- PICK UP（ガーランド） ----------
   作品を紐に洗濯ばさみで留める。紐は js/top.js が洗濯ばさみの位置から描く。
   横に動かすと、写真が慣性で揺れて戻る（js/top.js が rotate を動かす。動きを止める設定のときは揺らさない） */
.pickup { position: relative; padding: 64px 0 60px; }
.pk-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; }
.pk-head .sec-head { margin-bottom: 0; }
.pk-head .sec-head h2 { margin: 0; }
.arrows { display: flex; gap: 10px; flex: none; }
.arrow {
  width: 48px; height: 48px; border-radius: 50%; background: var(--white); color: var(--brown);
  font-family: var(--f-en); font-weight: 600; font-size: 26px; line-height: 1;
  display: grid; place-items: center; padding-bottom: 3px;
  box-shadow: inset 0 0 0 2px var(--sky), var(--sh-card); transition: transform .25s var(--ease-pop), background .2s;
}
.arrow:hover { transform: scale(1.08); background: var(--sky-pale); }
.pk-track {
  --pad: max(var(--gutter), calc((100% - var(--maxw)) / 2));
  position: relative; display: flex; align-items: flex-start; gap: 46px;
  overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none;
  padding: 72px var(--pad) 46px; scroll-padding-left: var(--pad);
}
.pk-track::-webkit-scrollbar { display: none; }
.pcard {
  position: relative; flex: none; display: block; width: 320px; padding: 10px 10px 38px; border-radius: 6px; background: var(--white);
  transform-origin: 50% 0; transform: rotate(var(--grot, 0deg)); scroll-snap-align: start; transition: transform .3s var(--ease-pop);
  box-shadow: 0 0 0 1px rgba(105, 98, 90, .08), 0 16px 26px -16px rgba(74, 68, 61, .5);
  animation: swing var(--t, 5s) ease-in-out var(--d, 0s) infinite alternate;
}
.pcard.is-tall { width: 250px; }
.pcard img { width: 100%; height: auto; border-radius: 3px; background: var(--sky-pale); }
.pcard:hover { transform: rotate(var(--grot, 0deg)) scale(1.03); }
@keyframes swing { from { transform: rotate(calc(var(--grot, 0deg) - 1.2deg)); } to { transform: rotate(calc(var(--grot, 0deg) + 1.2deg)); } }
.pk-string { position: absolute; left: 0; top: 0; z-index: 0; pointer-events: none; overflow: visible; max-width: none; }   /* 紐は横に長いので、base.css の svg の幅の上限（100%）を外す */
.pk-string path { fill: none; stroke: #d6c09c; stroke-width: 2.5; stroke-linecap: round; }
/* 洗濯ばさみ（まん中にばね）。色は作品ごとに 水色 → 黄色 → 水色 … と交互 */
.pin {
  position: absolute; top: -26px; z-index: 3; width: 12px; height: 38px; border-radius: 3px;
  background: linear-gradient(90deg, var(--pin-a, #a9dcf4) 0 52%, var(--pin-b, #7fc3e6) 52% 100%);
  box-shadow: 0 2px 3px rgba(74, 68, 61, .22);
}
.pcard:nth-of-type(even) .pin { --pin-a: #ffd45f; --pin-b: #f0bc3c; }   /* 卵の黄身のような黄色 */
.pin::after { content: ""; position: absolute; left: -1.5px; right: -1.5px; top: 16px; height: 4px; border-radius: 1px; background: #cfd3d8; }
.pin-l { left: 17%; transform: rotate(-6deg); }
.pin-r { right: 17%; transform: rotate(6deg); }
/* 矢印は「もっと見る」の上に */
.pk-more { display: flex; flex-direction: column; align-items: center; gap: 20px; }
/* マウスでつかんで左右に流せる（js/top.js）。指ではもとから横に動く */
.pcard { -webkit-user-drag: none; }
@media (hover: hover) and (pointer: fine) {
  .pk-track, .pk-track .pcard { cursor: grab; }
  .pk-track.is-drag, .pk-track.is-drag .pcard { cursor: grabbing; }
}
.pk-track.is-drag { -webkit-user-select: none; user-select: none; }
.pk-track.is-drag .pcard { pointer-events: none; }
.pickup .deco .pk-m1 { --x: 3%; --y: 72px; }
.pickup .deco .pk-m2 { --x: 95%; --y: 66px; }
.pickup .deco .pk-m3 { --x: 1.5%; --y: 64%; }
.pickup .deco .pk-m4 { --x: 97%; --y: 56%; }
.pickup .deco .pk-m5 { --x: 88%; --y: 91%; }
.pickup .deco .pk-m6 { --x: 42%; --y: 40px; }
/* 矢印と「もっと見る」のまわり（下端からの距離で置く。次の帯には入らない） */
.pickup .deco .pk-c1 { --x: calc(50% - 340px); --y: calc(100% - 200px); --w: 300px; --h: 170px; --o: .42; }
.pickup .deco .pk-c2 { --x: calc(50% + 50px); --y: calc(100% - 185px); --w: 280px; --h: 160px; --o: .36; }
.pickup .deco .pk-m7 { --x: 35%; --y: calc(100% - 172px); }
.pickup .deco .pk-m8 { --x: 65%; --y: calc(100% - 160px); }
.pickup .deco .pk-m9 { --x: 28%; --y: calc(100% - 104px); }
.pickup .deco .pk-m10 { --x: 72%; --y: calc(100% - 96px); }
.pickup .deco .pk-m11 { --x: 17%; --y: calc(100% - 140px); }
.pickup .deco .pk-m12 { --x: 83%; --y: calc(100% - 128px); }
.pickup .deco .pk-m13 { --x: 21%; --y: calc(100% - 66px); }
.pickup .deco .pk-m14 { --x: 79%; --y: calc(100% - 62px); }
.pickup .deco .pk-m15 { --x: 38%; --y: calc(100% - 40px); }
.pickup .deco .pk-m16 { --x: 62%; --y: calc(100% - 38px); }

@media (max-width: 767px) {
  .pickup { padding: 44px 0 44px; }
  .pickup .deco .pk-m1 { --x: 8%; --y: 94%; }
  .pickup .deco .pk-m2 { --x: 88%; --y: 92%; }
  .pickup .deco .pk-m3 { --x: 56%; --y: 22px; }
  .pickup .deco .pk-m4 { --x: 93%; --y: 24px; }
  .pickup .deco .pk-m5 { --x: 3%; --y: 30px; --s: 13px !important; }
  .pickup .deco .pk-m6 { display: none; }
  .pickup .deco .pk-c1 { --x: calc(50% - 110px); --y: calc(100% - 150px); --w: 220px; --h: 120px; --o: .4; }
  .pickup .deco .pk-c2, .pickup .deco .pk-m11, .pickup .deco .pk-m12, .pickup .deco .pk-m13,
  .pickup .deco .pk-m14, .pickup .deco .pk-m15, .pickup .deco .pk-m16 { display: none; }
  .pickup .deco .pk-m7 { --x: 14%; --y: calc(100% - 128px); --s: 13px !important; }
  .pickup .deco .pk-m8 { --x: 84%; --y: calc(100% - 122px); --s: 12px !important; }
  .pickup .deco .pk-m9 { --x: 22%; --y: calc(100% - 32px); --s: 14px !important; }
  .pickup .deco .pk-m10 { --x: 76%; --y: calc(100% - 30px); --s: 14px !important; }
  .arrow { width: 42px; height: 42px; font-size: 22px; }
  .pk-more { gap: 16px; }
  .pk-track { gap: 32px; padding-top: 60px; padding-bottom: 32px; }
  .pcard { width: 240px; padding: 8px 8px 30px; border-radius: 5px; }
  .pcard.is-tall { width: 190px; }
  .pin { width: 10px; height: 32px; top: -22px; }
  .pin::after { top: 13px; height: 3.5px; }
}

/* ---------- VTUBER ---------- */
.vstrip { --sep-bg: var(--vt-bg); --vt-blob: var(--sky-pale); position: relative; background: var(--vt-bg); padding: 74px 0 76px; margin-top: 20px; }
.vstrip .sec-head .ja { color: var(--ink); }
.vstrip .sec-head h2 { margin: 0; }
.vstrip .blob { --c: var(--vt-blob); }
.bubbles { --k: .86; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 12px 20px; padding: 6px 0 10px; list-style: none; margin: 0; }
.v-item { width: calc(var(--sz) * var(--k)); text-align: center; margin-top: var(--mt, 0px); --fl: -14px; animation: floaty var(--t, 6s) ease-in-out var(--d, 0s) infinite; }
.v-item a { display: block; border-radius: 12px; }
@keyframes floaty { 50% { transform: translateY(var(--fl, -8px)); } }
.v-item .ico {
  position: relative; display: block; width: calc(var(--sz) * var(--k)); height: calc(var(--sz) * var(--k));
  border-radius: 50%; border: 5px solid var(--sky-deep); overflow: hidden; background: var(--white);
  box-shadow: 0 16px 24px -16px rgba(74, 68, 61, .45);
}
.v-item .ico img { width: 100%; height: 100%; object-fit: cover; }
.v-item .ico::after { content: ""; position: absolute; left: 14%; top: 10%; width: 28%; height: 18%; border-radius: 50%; background: rgba(255, 255, 255, .55); transform: rotate(-30deg); }
.v-item .nm { display: block; margin-top: 10px; font-size: 14px; font-weight: 700; line-height: 1.4; color: var(--ink); white-space: nowrap; }
.v-more { display: flex; justify-content: center; margin-top: 30px; }
@media (max-width: 1100px) { .bubbles { justify-content: center; } }
@media (max-width: 767px) {
  .vstrip { padding: 54px 0 56px; margin-top: 8px; }
  .bubbles { --k: .7; gap: 4px 12px; }
  .v-item .ico { border-width: 4px; }
  .v-item .nm { font-size: 12px; margin-top: 6px; }
  .v-more { margin-top: 22px; }
}

/* ---------- ご依頼の帯: VTUBER の帯にそのまま続ける ---------- */
.vstrip + .cband { margin-top: 0; }
