/* 投票ページ（../lisette.css の上に重ねる） */
.v-hero { position: relative; min-height: min(90vh, 700px); display: flex; align-items: center; overflow: hidden; padding-top: 64px; }
.v-hero-img { position: absolute; top: 0; bottom: 0; right: 0; width: 78%; height: 100%; object-fit: cover; object-position: 40% 35%;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 26%); mask-image: linear-gradient(90deg, transparent 0, #000 26%); animation: heroIn 1.6s ease-out both; }
.v-hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(251,246,236,.95) 0%, rgba(251,246,236,.7) 30%, rgba(251,246,236,0) 50%); }
.v-hero-copy { position: relative; z-index: 2; max-width: 1120px; width: 100%; margin: 0 auto; padding: 30px 24px 110px; }
.v-kicker { display: inline-block; font: 800 13px/1 "Cinzel", serif; letter-spacing: .24em; color: #fff; background: linear-gradient(135deg, #e0bf6c, var(--gold)); padding: 9px 16px; border-radius: 999px; margin: 0 0 18px; animation: rise .8s .2s both; }
.v-hero h1 { font: 800 clamp(40px, 6vw, 80px)/1.12 "Shippori Mincho B1", serif; color: var(--navy); margin: 0 0 18px; text-shadow: 0 2px 0 #fff, 0 0 30px rgba(255,255,255,.9); animation: rise .9s .35s both; }
.v-hero h1 span { display: block; font-size: .42em; color: #d45d7c; letter-spacing: .08em; margin-bottom: 6px; }
.v-lead { font-size: clamp(15px, 1.6vw, 18px); font-weight: 500; color: var(--navy-2); margin: 0 0 16px; text-shadow: 0 0 12px #fff; animation: rise .9s .5s both; }
.v-status { display: inline-block; font-weight: 700; font-size: 14px; background: #fff; border: 2px solid var(--turq); color: var(--turq-d); border-radius: 12px; padding: 6px 14px; margin: 0 0 22px; animation: rise .9s .6s both; }
.v-status.closed { border-color: #c9a0a0; color: #a04848; }
.v-hero-copy .btn { animation: rise .9s .7s both; }
.v-hero-chibi { position: absolute; z-index: 3; left: 40%; bottom: 60px; height: clamp(110px, 16vw, 190px); animation: bob 3.4s ease-in-out infinite; filter: drop-shadow(0 10px 14px rgba(31,46,90,.2)); }
@media (max-width: 760px) {
  .v-hero { min-height: 0; flex-direction: column; align-items: stretch; }
  .v-hero-img { position: relative; width: 100%; height: 60vw; -webkit-mask-image: none; mask-image: none; }
  .v-hero-shade { display: none; }
  .v-hero-copy { padding: 22px 20px 80px; }
  .v-hero-chibi { left: auto; right: 12px; bottom: auto; top: calc(60vw - 40px); height: 100px; }
}

.v-steps { list-style: none; padding: 0; margin: 30px 0 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.v-steps li { background: var(--paper); border: 1px solid var(--line); border-radius: 22px; padding: 20px; text-align: center; box-shadow: var(--shadow); }
.v-steps img { height: 120px; width: auto; margin: 0 auto 8px; }
.v-steps b { font: 800 20px/1.4 "Shippori Mincho B1", serif; color: var(--navy); }
.v-steps p { margin: 6px 0 0; font-size: 14px; color: var(--navy-2); }
@media (max-width: 760px) { .v-steps { grid-template-columns: 1fr; } }

.v-explain { position: relative; display: grid; grid-template-columns: 150px 1fr; gap: 26px; align-items: center; background: rgba(255,255,255,.8); border-radius: 26px; padding: 26px 32px; margin-top: 26px; box-shadow: var(--shadow); }
.v-explain img { width: 130px; justify-self: center; animation: bob 3s ease-in-out infinite; }
.v-explain p { margin: 0 0 10px; }
.v-tool { font-size: 14px; color: var(--muted); }
@media (max-width: 700px) { .v-explain { grid-template-columns: 1fr; padding: 22px; } .v-explain img { width: 90px; } }

.v-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 20px; margin-top: 24px; }
.v-card { position: relative; background: var(--paper); border: 2px solid var(--line); border-radius: 22px; padding: 18px 18px 16px; box-shadow: var(--shadow); transition: transform .2s, border-color .2s; }
.v-card:hover { transform: translateY(-3px); }
.v-card.mine { border-color: var(--gold); box-shadow: 0 0 0 4px #f6ecd0, var(--shadow); }
.v-card.mine::after { content: "あなたの一票"; position: absolute; top: -12px; right: 16px; background: linear-gradient(135deg, #e0bf6c, var(--gold)); color: #fff; font-size: 12px; font-weight: 700; padding: 3px 12px; border-radius: 999px; }
.v-no { font: 800 13px/1 "Cinzel", serif; letter-spacing: .16em; color: var(--gold); }
.v-name { font: 800 22px/1.35 "Shippori Mincho B1", serif; color: var(--navy); margin: 2px 0 8px; }
.v-card .pl span { display: block; font-size: 12px; font-weight: 700; color: var(--turq-d); margin-top: 8px; }
.v-card audio { width: 100%; height: 36px; }
.v-recipe { margin: 12px 0; font-size: 13px; background: #fffaf0; border: 1.5px dashed var(--gold-l); border-radius: 12px; padding: 8px 12px; color: var(--navy-2); }
.v-recipe b { display: block; font-size: 11px; color: var(--gold); letter-spacing: .08em; }
.v-vote { width: 100%; padding: 13px; font-size: 16px; font-weight: 700; border-radius: 999px; border: 2px solid var(--navy); background: #fff; color: var(--navy); cursor: pointer; transition: all .15s; }
.v-vote:hover:not(:disabled) { background: var(--navy); color: #fff; }
.v-card.mine .v-vote { background: linear-gradient(135deg, #e0bf6c, var(--gold)); border-color: var(--gold); color: #fff; }
.v-vote:disabled { opacity: .5; cursor: not-allowed; }

.v-after { display: flex; gap: 22px; align-items: center; margin-top: 30px; background: #fff; border: 2px solid var(--gold-l); border-radius: 24px; padding: 20px 26px; box-shadow: var(--shadow); }
.v-after img { height: 120px; width: auto; }
.v-after-title { font: 800 22px/1.4 "Shippori Mincho B1", serif; color: var(--navy); margin: 0; }
.v-after p { margin: 4px 0 12px; }
@media (max-width: 600px) { .v-after { flex-direction: column; text-align: center; } }
.v-after[hidden] { display: none; }

/* リゼット紹介 */
.lz-profile { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 36px; align-items: center; margin-top: 26px; background: var(--paper); border: 1px solid var(--line); border-radius: 28px; padding: 28px 36px; box-shadow: var(--shadow); }
.lz-art { background: #f3ecdc; border-radius: 20px; padding: 10px; border: 2px solid var(--gold-l); }
.lz-art img { width: 100%; border-radius: 14px; }
.lz-role { display: inline-block; margin: 0; font-size: 13px; font-weight: 700; color: #fff; background: var(--turq-d); padding: 3px 14px; border-radius: 999px; }
.lz-name { font: 800 44px/1.3 "Shippori Mincho B1", serif; color: var(--navy); margin: 6px 0 10px; }
.lz-name small { font: 700 18px/1 "Cinzel", serif; letter-spacing: .16em; color: var(--gold); margin-left: 12px; }
.lz-one { font-size: 17px; margin: 0 0 16px; background: #fffaf0; border-left: 4px solid var(--gold); padding: 10px 14px; border-radius: 6px; }
.lz-dl { display: grid; grid-template-columns: 9em minmax(0, 1fr); margin: 0; border-top: 1px solid var(--line); }
.lz-dl dt, .lz-dl dd { margin: 0; padding: 9px 4px; border-bottom: 1px solid var(--line); font-size: 15px; }
.lz-dl dt { font-weight: 700; color: var(--turq-d); }
.lz-dl i { display: inline-block; width: 14px; height: 14px; border-radius: 4px; vertical-align: -2px; margin: 0 4px 0 8px; border: 1px solid rgba(0,0,0,.15); }
.lz-dl i:first-child { margin-left: 0; }
.lz-sub { text-align: center; font: 800 22px/1.4 "Shippori Mincho B1", serif; color: var(--navy); margin: 40px 0 16px; }
.lz-lines { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.lz-line { background: #fff; border: 1.5px solid var(--line); border-radius: 18px; padding: 14px 16px; box-shadow: var(--shadow); }
.lz-line p { font-size: 15px; font-weight: 700; color: var(--navy); margin: 8px 0 6px; }
.lz-line small { color: var(--muted); font-size: 12px; }
.lz-tag { font-size: 12px; font-weight: 700; color: #fff; background: #8fb7c9; padding: 2px 10px; border-radius: 999px; }
.lz-tag.t2 { background: #e0879d; } .lz-tag.t3 { background: var(--gold); } .lz-tag.t4 { background: var(--navy); }
.lz-note { display: flex; align-items: center; gap: 14px; justify-content: center; margin: 30px auto 0; max-width: 760px; font-size: 16px; background: #eaf7fb; border-radius: 18px; padding: 12px 20px; }
.lz-note img { height: 72px; width: auto; }
@media (max-width: 900px) { .lz-lines { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 700px) {
  .lz-profile { grid-template-columns: minmax(0, 1fr); padding: 20px; gap: 18px; }
  .lz-art { max-width: 240px; margin: 0 auto; }
  .lz-lines { grid-template-columns: 1fr; }
  .lz-dl { grid-template-columns: 7em minmax(0, 1fr); }
  .lz-name { font-size: 36px; }
  .lz-note { flex-direction: column; text-align: center; }
}

.lz-info, .lz-line, .lz-art { min-width: 0; }
.sec-title .en { overflow-wrap: anywhere; text-align: center; }
@media (max-width: 480px) { .sec-title .en { font-size: 26px; } }
