/* Toretame Vote — モバイルファースト。グラデーションは黄→ピンク、絵文字は使わない */
.tv{position:relative;margin:1.6em 0;padding:1.1em .95em 1.2em;border-radius:22px;background:linear-gradient(180deg,#d4ebff 0%,#f4f1ff 55%,#ffe8f1 100%);color:#1a1c1c;line-height:1.5;font-family:'Zen Maru Gothic','Hiragino Maru Gothic ProN','Yu Gothic Medium',sans-serif}
.tv button,.tv .tv-card-btn{font-family:inherit}
.tv *{box-sizing:border-box}
.tv::before{content:"";position:absolute;inset:6px;border:1.5px solid rgba(255,255,255,.95);border-radius:16px;pointer-events:none}
.tv>*{position:relative}
.tv [hidden]{display:none!important}
.tv .tv-empty{text-align:center;color:#8a8a8a}
.tv .tv-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.7em}
@media(min-width:560px){.tv .tv-grid{grid-template-columns:repeat(3,1fr)}}
.tv .tv-card{appearance:none;-webkit-appearance:none;border:1.5px solid #e1ecff;background:#fff;border-radius:16px;padding:.55em .5em .85em;display:flex;flex-direction:column;align-items:center;gap:.55em;cursor:pointer;font:inherit;color:inherit;transition:border-color .15s}
.tv .tv-card:hover,.tv .tv-card:focus-visible{border-color:#9db6ff;outline:0}
.tv .tv-card.is-busy{opacity:.55;pointer-events:none}
.tv .tv-card-img{display:block;width:100%;aspect-ratio:1/1;border-radius:12px;overflow:hidden;background:#f3f3f3}
.tv .tv-card-img .tv-ph{width:100%!important;height:100%!important;max-width:none!important;border-radius:0!important;box-shadow:none!important;object-fit:cover;object-position:50% 20%;display:block;margin:0!important}
.tv .tv-card-name{font-weight:800;font-size:1em}
.tv .tv-card-btn{display:inline-flex;align-items:center;gap:.35em;padding:.45em 1.1em;border-radius:99px;background:linear-gradient(100deg,#ffd84d,#ff9fbf);font-weight:800;font-size:.85em;color:#3a3200}
.tv .tv-heart{width:1.05em;height:1.05em;fill:currentColor}
.tv .tv-switch{text-align:center;margin:.9em 0 0!important}
.tv .tv-link{appearance:none;background:none;border:0;padding:.4em .8em;color:#8a6d00;font:inherit;font-weight:700;font-size:.9em;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.tv .tv-link:hover{opacity:.75}
/* 結果（ランキング記事と同じ行リスト） */
.tv .tv-list{border-top:1px solid #eee;margin-top:.8em}
.tv .tv-row{display:flex;align-items:center;gap:.8em;padding:.75em .7em;border-bottom:1px solid #eee;background:#fff}
.tv .tv-row.is-first{background:linear-gradient(100deg,#ffd84d 0%,#ff9fbf 100%);border-radius:12px;border-bottom:0;margin:.5em 0;padding:.9em .8em}
.tv .tv-n{flex:none;width:1.5em;text-align:center;font-weight:800;font-size:1.05em;color:#8a8a8a}
.tv .is-first .tv-n{color:#3a3200;font-size:1.35em}
.tv img.tv-ph,.tv .tv-ph--none{display:block;flex:none;width:2.9em!important;height:2.9em!important;max-width:none!important;aspect-ratio:1/1;border-radius:50%!important;object-fit:cover;object-position:50% 20%;background:#eee;margin:0!important;box-shadow:0 0 0 2px #fff,0 0 0 3.5px #e4e4e4}
.tv .is-first img.tv-ph{width:3.4em!important;height:3.4em!important;box-shadow:0 0 0 2px #fff}
.tv .tv-body{flex:1;min-width:0}
.tv .tv-nm{font-weight:800;line-height:1.3}.tv .tv-nm a{color:inherit;text-decoration:none}
.tv .tv-bar{height:.38em;border-radius:99px;background:#f0f0f0;margin-top:.45em;overflow:hidden}
.tv .tv-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#ffd84d,#ff9fbf);transition:width .6s ease}
.tv .is-first .tv-bar{background:rgba(255,255,255,.55)}.tv .is-first .tv-bar i{background:#fff}
.tv .tv-val{flex:none;text-align:right;font-weight:800;font-size:1.05em;line-height:1.2}
.tv .tv-unit{font-size:.7em;font-weight:700;margin-left:.1em}
.tv .tv-val small{display:block;font-size:.66em;font-weight:500;color:#8a8a8a;margin-top:.1em}
.tv .is-first .tv-val small{color:#5a3a1a}
.tv .tv-row.is-mine .tv-nm::after{content:"あなたの投票";margin-left:.6em;font-size:.65em;font-weight:700;color:#715c00;background:#fdf3c4;border-radius:99px;padding:.15em .7em;vertical-align:middle}
.tv .tv-total{text-align:right;color:#8a8a8a;font-size:.85em;margin:.6em .3em 0!important}
.tv .tv-toast{position:fixed;left:50%;bottom:1.5em;transform:translate(-50%,1em);background:#1a1c1c;color:#fff;padding:.7em 1.3em;border-radius:99px;font-size:.9em;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;z-index:99999;max-width:90vw;text-align:center}
.tv .tv-toast.is-on{opacity:1;transform:translate(-50%,0)}
@media(max-width:400px){.tv img.tv-ph,.tv .tv-ph--none{width:2.6em!important;height:2.6em!important}.tv .is-first img.tv-ph{width:3em!important;height:3em!important}.tv .tv-row{gap:.6em;padding:.7em .4em}}
@media(prefers-reduced-motion:reduce){.tv *{transition:none!important}}
.tv .tv-pending{text-align:center;color:#8a8a8a;padding:1.4em 1em;border:1px dashed #e0e0e0;border-radius:12px;margin:.8em 0 0!important}

/* ===== ヘッダー: ミニマルな夢かわ（ベビーブルー→白→淡いピンク、細い線、少しのきらきら。動きは最小限） ===== */
.tv .tv-hero,.tv-top .tv-hero{position:relative;text-align:center;display:flex;align-items:center;justify-content:center;padding:2.6em .5em 1.15em}
.tv .tv-tag,.tv-top .tv-tag{position:absolute;z-index:3;top:.2em;left:50%;transform:translateX(-50%);padding:.16em 1.15em;border:2px solid #fff;border-radius:99px;color:#5f70c9;font-size:.95em;font-weight:900;letter-spacing:.2em;background:rgba(255,255,255,.45)}
.tv .tv-title,.tv-top .tv-title{position:relative;z-index:3;text-wrap:balance;margin:.55em 0 0!important;padding:0!important;border:0!important;font-size:1.3em;font-weight:900;line-height:1.35;letter-spacing:.04em;color:#2a3170;-webkit-text-stroke:0}
.tv .tv-sp,.tv-top .tv-sp{position:absolute;z-index:2;fill:#fff;animation:tv-twinkle 4s ease-in-out infinite;pointer-events:none}
.tv .tv-sp.s1,.tv-top .tv-sp.s1{left:11%;top:30%;width:1.1em;height:1.1em}
.tv .tv-sp.s2,.tv-top .tv-sp.s2{left:20%;bottom:20%;width:.55em;height:.55em;animation-delay:1.5s}
.tv .tv-sp.s3,.tv-top .tv-sp.s3{right:12%;top:26%;width:.8em;height:.8em;animation-delay:.8s}
.tv .tv-sp.s4,.tv-top .tv-sp.s4{right:22%;bottom:22%;width:.5em;height:.5em;animation-delay:2.4s}
.tv .tv-lead{display:flex;justify-content:center;margin:.1em 0 1em!important;position:relative;z-index:4}
.tv .tv-lead span{display:inline-flex;align-items:center;gap:.3em;padding:.45em 1.3em;border-radius:99px;background:#fff;border:1.5px solid #cfdcff;color:#4a5bbd;font-weight:800;font-size:.95em}
.tv .tv-chev{width:1.05em;height:1.05em;color:#4a5bbd;margin-right:-.2em;animation:tv-bounce 1.8s ease-in-out infinite}
@keyframes tv-twinkle{0%,100%{opacity:.3;transform:scale(.75)}50%{opacity:1;transform:scale(1)}}
@keyframes tv-bounce{0%,100%{transform:translateY(-.08em)}50%{transform:translateY(.18em)}}
@media(prefers-reduced-motion:reduce){.tv .tv-sp,.tv-top .tv-sp,.tv .tv-chev{animation:none!important}.tv .tv-sp{opacity:.8}}

/* パネルの上の結果表示 */
.tv .tv-results-inner{background:#fff;border-radius:16px;padding:.2em .7em .7em}
.tv .tv-results-inner .tv-list{margin-top:.4em;border-top:0}
.tv .tv-results-inner .tv-row:last-child{border-bottom:0}

/* ===== 専用ページ（/vote/）・バナー・ボタン ===== */
.tv-page{max-width:680px;margin:0 auto;padding:1.4em 16px 3.5em;font-family:'Zen Maru Gothic','Hiragino Maru Gothic ProN','Yu Gothic Medium',sans-serif;color:#1a1c1c}
.tv-page *{box-sizing:border-box}
.tv-crumbs{display:flex;flex-wrap:wrap;gap:.5em;align-items:center;font-size:.78em;color:#8a8a8a;margin:0 0 1em}
.tv-crumbs a{color:inherit;text-decoration:none}.tv-crumbs b{font-weight:500;color:#555}
.tv-h1{font-size:1.5em;font-weight:900;color:#2a3170;margin:.2em 0 .4em;line-height:1.35}
.tv-intro{color:#555;margin:0 0 1.2em}
.tv-cards{display:grid;grid-template-columns:1fr;gap:.8em}
@media(min-width:560px){.tv-cards{grid-template-columns:1fr 1fr}}
.tv-gcard{display:flex;flex-direction:column;gap:.7em;padding:1em 1.1em;border:1.5px solid #e1ecff;border-radius:18px;background:#fff;text-decoration:none;color:inherit}
.tv-gcard:hover{border-color:#9db6ff}
.tv-gname{font-weight:900;font-size:1.15em;color:#2a3170}
.tv-av{display:flex}.tv-av img.tv-ph{width:2.6em!important;height:2.6em!important;max-width:none!important;border-radius:50%!important;object-fit:cover;object-position:50% 20%;box-shadow:0 0 0 2px #fff;margin:0 0 0 -.55em!important;display:block}
.tv-av img.tv-ph:first-child{margin-left:0!important}
.tv-gmeta{color:#8a8a8a;font-size:.85em}
.tv-gbtn,.tv-banner-btn,.tv-btn{display:inline-flex;align-items:center;justify-content:center;gap:.4em;align-self:flex-start;padding:.5em 1.3em;border-radius:99px;background:linear-gradient(100deg,#ffd84d,#ff9fbf);color:#3a3200;font-weight:900;font-size:.92em;text-decoration:none;border:0}
.tv-btn .tv-heart{width:1.05em;height:1.05em;fill:currentColor}
.tv .tv-cta{text-align:center;margin:1em 0 .2em!important}
.tv-rels,.tv-share{margin:1.6em 0 0}
.tv-rels-t{font-weight:900;color:#2a3170;margin:0 0 .5em}
.tv-rel{display:flex;justify-content:space-between;align-items:center;padding:.8em 1em;margin:0 0 .5em;border:1.5px solid #e1ecff;border-radius:14px;background:#fff;color:#2a3170;font-weight:700;text-decoration:none}
.tv-rel:hover{border-color:#9db6ff}
.tv-sh{display:inline-block;margin:0 .5em 0 0;padding:.45em 1.3em;border-radius:99px;border:1.5px solid #cfd8ee;color:#2a3170;font-weight:900;text-decoration:none;background:#fff}
.tv-sh.line{border-color:#bfe7cc;color:#1b8a4b}
.tv-note{margin:1.8em 0 0;color:#8a8a8a;font-size:.8em;line-height:1.7}.tv-note a{color:inherit;text-decoration:underline}
/* 記事の末尾に置くバナー */
.tv-banner{display:flex;align-items:center;gap:.8em;margin:1.8em 0;padding:.85em 1em;border-radius:18px;background:linear-gradient(180deg,#d4ebff 0%,#f4f1ff 55%,#ffe8f1 100%);text-decoration:none!important;color:#2a3170!important;font-family:'Zen Maru Gothic','Hiragino Maru Gothic ProN','Yu Gothic Medium',sans-serif}
.tv-banner img.tv-ph{flex:none;width:3.2em!important;height:3.2em!important;max-width:none!important;aspect-ratio:1/1;border-radius:50%!important;object-fit:cover;object-position:50% 20%;box-shadow:0 0 0 2px #fff;margin:0!important;display:block}
.tv-banner-body{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.4}
.tv-banner-t{font-weight:900}.tv-banner-s{font-size:.88em;color:#555}
.tv-banner-btn{flex:none;align-self:center;font-size:.85em}

/* ===== 前日比の矢印 ===== */
.tv .tv-n{display:flex;flex-direction:column;align-items:center;line-height:1.1}
.tv .tv-d{display:inline-flex;align-items:center;gap:.15em;margin-top:.25em;font-size:.62em;font-weight:900;line-height:1}
.tv .tv-d svg{width:.9em;height:.72em;fill:currentColor}
.tv .tv-d.up{color:#e0457f}.tv .tv-d.down{color:#4a6fe0}
.tv .tv-d.same i{display:block;width:.9em;height:.16em;border-radius:99px;background:#b7b7b7}
.tv .is-first .tv-d.up{color:#a3194f}.tv .is-first .tv-d.down{color:#1f3fa8}.tv .is-first .tv-d.same i{background:#8a6a2a}

/* ===== 投票直後フォーム（推しポイント・ひとこと） ===== */
.tv .tv-after{background:#fff;border-radius:16px;padding:1em;margin:.9em 0 0}
.tv .tv-after-t{font-weight:900;color:#2a3170;margin:0 0 .6em!important}
.tv .tv-after-t small{margin-left:.5em;font-weight:500;color:#8a8a8a;font-size:.75em}
.tv .tv-chips{display:flex;flex-wrap:wrap;gap:.45em;margin:0 0 .9em}
.tv .tv-chip input{position:absolute;opacity:0;pointer-events:none}
.tv .tv-chip span{display:inline-block;padding:.35em .95em;border-radius:99px;border:1.5px solid #cfdcff;background:#fff;color:#4a5bbd;font-weight:700;font-size:.9em;cursor:pointer;transition:background .15s,border-color .15s}
.tv .tv-chip input:checked+span{background:linear-gradient(100deg,#ffd84d,#ff9fbf);border-color:transparent;color:#3a3200}
.tv .tv-chip input:focus-visible+span{outline:2px solid #4a5bbd;outline-offset:2px}
.tv .tv-note-l{display:block;font-size:.88em;font-weight:700;color:#2a3170}
.tv .tv-note-l textarea{display:block;width:100%;margin:.4em 0 0;padding:.6em .8em;border:1.5px solid #cfdcff;border-radius:12px;font:inherit;font-weight:500;color:#1a1c1c;resize:none;background:#fbfcff}
.tv .tv-after-s{font-size:.78em;color:#8a8a8a;margin:.5em 0 0!important}
.tv .tv-after-b{display:flex;align-items:center;gap:.8em;margin-top:.9em}
.tv .tv-after-b .tv-btn{cursor:pointer;font-family:inherit}

/* ===== みんなの推しポイント ===== */
.tv .tv-comm{background:#fff;border-radius:16px;padding:1em;margin:1em 0 0}
.tv .tv-comm-t{font-size:1em;font-weight:900;color:#2a3170;margin:0 0 .7em!important;padding:0!important;border:0!important}
.tv .tv-tabs{display:flex;flex-wrap:wrap;gap:.4em;margin:0 0 .9em}
.tv .tv-tab{appearance:none;-webkit-appearance:none;border:1.5px solid #cfdcff;background:#fff;color:#4a5bbd;font:inherit;font-weight:700;font-size:.88em;padding:.3em .9em;border-radius:99px;cursor:pointer}
.tv .tv-tab.is-on{background:#4a5bbd;border-color:#4a5bbd;color:#fff}
.tv .tv-mp-head{display:flex;align-items:center;gap:.6em;margin:0 0 .7em}.tv .tv-mp-head b{font-weight:900;color:#2a3170}
.tv .tv-rs{margin:0 0 .9em}
.tv .tv-r{display:flex;align-items:center;gap:.6em;margin:0 0 .4em;font-size:.9em}
.tv .tv-rn{flex:none;width:5.2em;font-weight:700}
.tv .tv-rb{flex:1;height:.5em;background:#f0f0f0;border-radius:99px;overflow:hidden}.tv .tv-rb i{display:block;height:100%;background:linear-gradient(90deg,#ffd84d,#ff9fbf);border-radius:99px}
.tv .tv-rp{flex:none;width:2.6em;text-align:right;font-weight:800;color:#555}
.tv .tv-nt{padding:.7em .8em;margin:0 0 .5em;border-radius:12px;background:#f6f9ff}
.tv .tv-nt p{margin:0 0 .35em!important;font-weight:500;line-height:1.55}
.tv .tv-nt-a{display:flex;align-items:center;gap:1em;font-size:.8em}
.tv .tv-like,.tv .tv-rep{appearance:none;-webkit-appearance:none;border:0;background:none;font:inherit;cursor:pointer;color:#8a8a8a;padding:0}
.tv .tv-like{display:inline-flex;align-items:center;gap:.3em;font-weight:700;color:#4a5bbd}.tv .tv-like.is-on{color:#e0457f}
.tv .tv-like .tv-heart{width:1em;height:1em}
.tv .tv-nt.is-reported{opacity:.5}

/* ===== 専用ページ: ページ全体の背景を、投票パネルと同じパステルに（一体感） ===== */
.tv-pagebg{width:100%;min-height:75vh;background:linear-gradient(180deg,#d4ebff 0%,#f4f1ff 45%,#ffe8f1 100%)}
.tv-page .tv{background:transparent;padding:0;margin-top:.4em}
.tv-page .tv::before{display:none}
.tv-page .tv-crumbs,.tv-page .tv-crumbs b{color:#6b7390}
.tv-page .tv-intro{color:#4a5273}
.tv-page .tv-note{color:#6b7390}
.tv-page .tv-hero{padding-top:2.7em}
.tv-page .tv-rels,.tv-page .tv-share{margin-top:1.8em}

.tv-page .tv-ad{margin:0 auto;max-width:640px;text-align:center;height:0;overflow:hidden}
.tv-page .tv-ad.is-on{height:auto;overflow:visible;margin:1.8em auto}
.tv-page .tv-ad .adsbygoogle[data-ad-status="unfilled"]{display:none!important}
.tv-page .tv-ad-l{display:block;margin-bottom:.4em;font-size:10px;letter-spacing:.2em;font-weight:700;color:#8f98cf;text-transform:uppercase}

.tv-gbtn,.tv-banner-btn,.tv-btn{white-space:nowrap;flex:none}
.tv-banner-body{min-width:0}

.tv-top{position:relative;margin:.4em 0 1.4em;font-family:'Zen Maru Gothic','Hiragino Maru Gothic ProN','Yu Gothic Medium',sans-serif}
.tv-top .tv-lead{text-wrap:balance;font-size:.92em;position:relative;z-index:3;margin:.2em 0 0;text-align:center;color:#4a5273;font-weight:500}
.tv-top .tv-title{font-size:1.5em}

.tv-top .tv-hero{padding:1.2em .5em .6em}
.tv-top .tv-toptag{position:relative;z-index:3;margin:0!important;padding:.3em 1.5em!important;border:2.5px solid #fff!important;border-radius:99px;background:rgba(255,255,255,.55);color:#4a5bbd;font-size:1.45em;font-weight:900;line-height:1.35;letter-spacing:.14em;-webkit-text-stroke:0}

.tv-shs{display:flex;flex-wrap:wrap;gap:.5em}
.tv-shs .tv-sh{margin:0;font-family:inherit;font-size:.9em;cursor:pointer;line-height:1.4}
.tv-shs[hidden],.tv-native[hidden]{display:none}
.tv-req{margin:2em 0 0;padding:1.1em 1em 1.2em;border-radius:18px;background:rgba(255,255,255,.6);border:1.5px solid #fff}
.tv-req-s{margin:0 0 .9em;color:#4a5273;font-size:.9em}
.tv-req-f label{display:block;margin:0 0 .8em;font-weight:700;font-size:.85em;color:#2a3170}
.tv-req-f input[type=text],.tv-req-f select{display:block;width:100%;margin-top:.3em;padding:.6em .8em;border:1.5px solid #cfd8ee;border-radius:12px;background:#fff;font:inherit;font-weight:500;color:#1a1c1c;box-sizing:border-box}
.tv-req-f .tv-hp{position:absolute!important;left:-9999px;width:1px;height:1px;opacity:0}
.tv-req-f .tv-btn{cursor:pointer;font-family:inherit}
.tv-req-m{margin:.7em 0 0;color:#4a5bbd;font-weight:700;min-height:1.4em}

/* シェアボタン: 白い丸みボタン＋ブランド色のアイコン */
.tv-shs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55em}
@media(max-width:380px){.tv-shs{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:560px){.tv-shs{grid-template-columns:repeat(auto-fill,minmax(8.6em,1fr))}}
.tv-shs .tv-sh{display:flex;align-items:center;justify-content:flex-start;gap:.5em;margin:0;padding:.38em .5em .38em .38em;border:1.5px solid #fff;border-radius:99px;background:rgba(255,255,255,.8);color:#2a3170;font-family:inherit;font-size:.82em;font-weight:900;white-space:nowrap;text-decoration:none;cursor:pointer;line-height:1.2}
.tv-shs .tv-sh:hover{background:#fff}
.tv-shs .tv-sh span:last-child{overflow:hidden;text-overflow:ellipsis}
.tv-shi{flex:none;display:inline-flex;align-items:center;justify-content:center;width:2em;height:2em;border-radius:50%;background:#2a3170;color:#fff}
.tv-shi svg{width:1.05em;height:1.05em;display:block}
.tv-sh.x .tv-shi{background:#111}
.tv-sh.line .tv-shi{background:#06c755}
.tv-sh.fb .tv-shi{background:#1877f2}
.tv-sh.th .tv-shi{background:#111}
.tv-sh.bs .tv-shi{background:#1185fe}
.tv-sh.tv-copy .tv-shi,.tv-sh.tv-native .tv-shi{background:linear-gradient(100deg,#ffd84d,#ff9fbf);color:#3a3200}

/* 画像の引用元（小さく、目立たせない） */
.tv-credit,.tv-creditbox .tv-credit{margin:1em 0 0;font-size:10.5px;line-height:1.7;color:#7a82a8;text-align:left}
.tv-credit b{font-weight:700;margin-right:.7em}
.tv-credit>span{display:inline-block;margin-right:.9em;white-space:nowrap}
.tv-credit a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.tv-credit summary{cursor:pointer;font-weight:700}
.tv-creditbox{margin:.6em 0 1.2em}
.tv-page .tv-credit,.tv-page .tv-credit a{color:#6b7390}

/* グループ紹介などへの案内（コメント＋記事カード） */
.tv-glink{margin:1.6em 0}
.tv-glink-c{display:flex;align-items:center;gap:.4em;margin:0 0 .5em!important;font-weight:900;font-size:.95em;color:#2a3170;font-family:'Zen Maru Gothic','Hiragino Maru Gothic ProN','Yu Gothic Medium',sans-serif}
.tv-glink-c svg{flex:none;width:1.1em;height:1.1em;color:#4a5bbd}

/* バナー: 写真をぼかして「1位は…？」（結果は見せない）。縦に積む中央そろえ（狭い画面でも文字が潰れない） */
.tv-banner{flex-direction:column;justify-content:center;text-align:center;gap:.5em;padding:1.1em 1em 1.2em}
.tv-bn-av{flex:none;display:flex;justify-content:center;padding:0}
.tv-banner .tv-bn-av img.tv-ph,.tv-banner .tv-bn-av .tv-ph--none{width:3.2em!important;height:3.2em!important;margin:0 0 0 -.9em!important;filter:blur(5px) saturate(1.15);box-shadow:0 0 0 2.5px #fff}
.tv-banner .tv-bn-av img.tv-ph:first-child,.tv-banner .tv-bn-av .tv-ph--none:first-child{margin-left:0!important}
.tv-banner-body{flex:none;align-items:center}
.tv-banner-t{font-size:1.15em;letter-spacing:.04em}
.tv-banner-s{line-height:1.5;margin-top:.2em;text-wrap:balance}
.tv-banner-btn{align-self:center;margin-top:.2em;font-size:.95em;padding:.55em 1.8em}
.tv-banner-s span{display:block}.tv-banner-s span:first-child:not(:last-child){font-size:.88em;color:#6b7390}

/* 記事の「投票受付中」（teaser）: 結果をぼかして、投票ページへ誘う */
.tv.tv-teaser{padding-bottom:1.2em}
.tv-tz{display:block;position:relative;margin:.3em 0 0;padding:.4em .7em;border-radius:16px;background:#fff;text-decoration:none!important;color:#2a3170!important;overflow:hidden}
.tv-tz-list{display:block;filter:blur(7px);opacity:.9;pointer-events:none;user-select:none}
.tv-tz-r{display:flex;align-items:center;gap:.7em;padding:.55em .2em;border-bottom:1px solid #eef0f8}
.tv-tz-r:last-child{border-bottom:0}
.tv-tz-n{flex:none;width:1.3em;text-align:center;font-weight:900;color:#8a8fb0}
.tv-tz .tv-ph,.tv-tz .tv-ph--none{flex:none;width:2.7em!important;height:2.7em!important;margin:0!important;border-radius:50%!important}
.tv-tz-bar{flex:1;height:.55em;border-radius:99px;background:#eef0f8;overflow:hidden}
.tv-tz-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#ffd84d,#ff9fbf)}
.tv-tz-p{flex:none;width:3em;text-align:right;font-weight:900;color:#2a3170}
.tv-tz-cta{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35em;padding:.6em;text-align:center;background:rgba(255,255,255,.55)}
.tv-tz-badge{display:inline-block;padding:.15em 1.1em;border:2px solid #fff;border-radius:99px;background:rgba(255,255,255,.7);color:#4a5bbd;font-size:1.05em;font-weight:900;letter-spacing:.12em}
.tv-tz-copy{font-weight:700;font-size:.92em;color:#2a3170;text-wrap:balance}
.tv-tz-cnt{font-size:.8em;color:#6b7390;font-weight:700}
.tv-tz .tv-btn{align-self:center;margin-top:.15em}

/* 丸いシール「みんなで／投票！」（teaserのパネルの右上。ランキング記事のパネルだけ） */
.tv.tv-teaser{position:relative}
.tv-seal{position:absolute;z-index:5;top:-1.2em;right:.6em;width:4.6em;height:4.6em;box-sizing:border-box;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.05em;transform:rotate(9deg);background:linear-gradient(135deg,#ffd84d,#ff9fbf);border:2.5px solid #fff;color:#3a3200;font-weight:900;text-align:center;font-family:'Zen Maru Gothic','Hiragino Maru Gothic ProN','Yu Gothic Medium',sans-serif;pointer-events:none}
.tv-seal span{display:block;font-size:.86em;line-height:1.2;letter-spacing:.03em;white-space:nowrap}
.tv-seal::before{content:"";position:absolute;inset:3.5px;border:1.5px dashed rgba(255,255,255,.85);border-radius:50%}
@media(prefers-reduced-motion:no-preference){.tv-seal{animation:tv-seal 3.2s ease-in-out infinite}}
@keyframes tv-seal{0%,100%{transform:rotate(9deg) scale(1)}50%{transform:rotate(5deg) scale(1.06)}}
/* /vote/ の一覧: カードの「投票する」ボタンだけ中央に */
.tv-gcard .tv-gbtn{align-self:center}
.tv-gcard .tv-gmeta{text-align:right}   /* 総投票数は右詰め */
/* /vote/ の一覧: グループ名は小さな札、見出しは投票のテーマ */
.tv-gcard .tv-gtag{align-self:flex-start;padding:.1em .8em;border-radius:99px;background:#e6efff;color:#4a5bbd;font-size:.75em;font-weight:900;letter-spacing:.08em;line-height:1.6}
.tv-gcard .tv-gname{font-size:1.08em;line-height:1.45;text-wrap:balance}
/* /vote/ の一覧: スマホで1画面に多く見えるよう、カードを3段にまとめる
   1段目: グループ名の札（左）・総投票数（右） / 2段目: 投票のテーマ / 3段目: アバター（左）・投票するボタン（右） */
.tv-gcard{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"tag meta" "name name" "av btn";gap:.45em .8em;align-items:center;padding:.8em 1em}
.tv-gcard .tv-gtag{grid-area:tag;justify-self:start}
.tv-gcard .tv-gmeta{grid-area:meta;justify-self:end;text-align:right;font-size:.78em;white-space:nowrap}
.tv-gcard .tv-gname{grid-area:name;margin:0}
.tv-gcard .tv-av{grid-area:av;min-width:0}
.tv-gcard .tv-av img.tv-ph{width:2.2em!important;height:2.2em!important}
.tv-gcard .tv-gbtn{grid-area:btn;justify-self:end;align-self:center;padding:.4em 1.1em;font-size:.88em}
.tv-cards{gap:.6em}
/* 投票後の流れ: 進み具合・お題・ありがとうの画面 */
.tv .tv-after-h{margin:0 0 .5em!important;font-weight:900;color:#2a3170;font-size:1.02em}
.tv .tv-steps{display:flex;gap:.3em;margin:0 0 .9em;padding:0;list-style:none;font-size:.78em;font-weight:700;color:#9aa3c7}
.tv .tv-steps li{display:flex;align-items:center;gap:.35em;padding:.2em .7em .2em .25em;border-radius:99px;background:#f1f4ff;white-space:nowrap}
.tv .tv-steps li span{display:inline-flex;align-items:center;justify-content:center;width:1.5em;height:1.5em;border-radius:50%;background:#dfe6ff;color:#6b7bd6;font-size:.95em}
.tv .tv-steps li.is-done{color:#4a5bbd}.tv .tv-steps li.is-done span{background:#4a5bbd;color:#fff}
.tv .tv-steps li.is-now{color:#2a3170;background:#fff3c4}.tv .tv-steps li.is-now span{background:linear-gradient(100deg,#ffd84d,#ff9fbf);color:#3a3200}
.tv .tv-prompts{display:flex;flex-wrap:wrap;align-items:center;gap:.4em;margin:.55em 0 0}
.tv .tv-prompts-l{font-size:.75em;font-weight:900;color:#8a8fb0;letter-spacing:.08em;margin-right:.2em}
.tv .tv-prompt{padding:.25em .8em;border:1.5px dashed #b3c9ff;border-radius:99px;background:#fff;color:#4a5bbd;font:inherit;font-size:.82em;font-weight:700;cursor:pointer}
.tv .tv-prompt:active,.tv .tv-prompt:hover{background:#eef3ff}
.tv .tv-done{background:#fff;border-radius:16px;padding:1em;margin:.9em 0 0;text-align:center}
.tv .tv-done-t{margin:0 0 .3em!important;font-weight:900;color:#2a3170}
.tv .tv-done-s{margin:0 0 .8em!important;font-size:.85em;color:#6b7390}
.tv .tv-done-a{display:flex;flex-wrap:wrap;justify-content:center;gap:.5em}
.tv .tv-done-b{display:inline-block;padding:.4em 1.1em;border-radius:99px;border:1.5px solid #cfd8ee;background:#fff;color:#2a3170!important;font-weight:900;font-size:.88em;text-decoration:none!important}
.tv .tv-done-m{margin:.9em 0 0!important;font-size:.85em}.tv .tv-done-m a{color:#4a5bbd;font-weight:700}
