/* Whisky Finder SWELL compatible v1.1
   - Scoped styles to avoid SWELL theme interference
   - Mobile-first card UI
   - Prevents theme button/form/table rules from leaking into the app
*/
.wf-app,
.wf-app *,
.wf-app *::before,
.wf-app *::after{box-sizing:border-box}

.wf-app{--wf-bg:#f7efe0;--wf-card:#fffaf0;--wf-card2:#fffdf7;--wf-text:#1e1405;--wf-muted:#806034;--wf-sub:#5f421c;--wf-line:rgba(120,80,20,.22);--wf-line2:rgba(120,80,20,.42);--wf-gold:#8a5a12;--wf-gold2:#b88324;--wf-blue:#1e6aa8;--wf-shadow:0 10px 28px rgba(90,60,20,.12);width:100%;max-width:1040px;margin:0 auto;padding:0 0 32px;font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;color:var(--wf-text);line-height:1.75;letter-spacing:normal;text-align:left;container-type:inline-size}
.wf-app--full{max-width:none}
.wf-app a{color:inherit;text-decoration:none}.wf-app img{}.wf-app p{margin:.25em 0 0}.wf-app h3,.wf-app h4{margin:0;padding:0;line-height:1.35;border:none;background:none}.wf-app button,.wf-app input,.wf-app select,.wf-app textarea{font:inherit;letter-spacing:normal;box-shadow:none!important}.wf-app button{appearance:none;border-radius:0;background:none}.wf-app input[type="search"],.wf-app input[type="text"],.wf-app select,.wf-app textarea{max-width:none;background:#fff;border:1px solid var(--wf-line2);border-radius:12px;color:var(--wf-text)}

.wf-shell{background:linear-gradient(180deg,#fbf4e4 0%,#f5ead4 100%);border:1px solid var(--wf-line);border-radius:20px;padding:clamp(12px,2.4vw,22px);box-shadow:var(--wf-shadow);overflow:hidden}
.wf-top{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:10px;margin-bottom:12px;align-items:center}.wf-search{width:100%;height:46px;padding:0 15px!important}.wf-sort{width:100%;height:46px;padding:0 34px 0 12px!important;cursor:pointer}.wf-tabs{display:flex;gap:6px;overflow-x:auto;padding:2px 0 8px;margin-bottom:6px;scrollbar-width:thin}.wf-tabs button,.wf-filter button{white-space:nowrap;border:1px solid var(--wf-line);background:rgba(255,255,255,.45);color:var(--wf-sub);border-radius:999px;cursor:pointer;transition:.15s ease}.wf-tabs button{padding:8px 14px;font-weight:700}.wf-tabs button.on{background:var(--wf-gold);border-color:var(--wf-gold);color:#fff}.wf-filter{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 10px}.wf-filter button{padding:5px 10px;font-size:13px}.wf-filter button.on{background:#2d74a8;border-color:#2d74a8;color:#fff;font-weight:700}.wf-check{display:inline-flex!important;align-items:center;gap:7px;color:var(--wf-muted);font-size:13px;margin:2px 0 8px!important}.wf-check input{width:16px;height:16px;margin:0!important}.wf-count{color:var(--wf-muted);font-weight:700;margin:0 0 10px}.wf-list{display:grid;gap:10px}.wf-empty{padding:32px;text-align:center;color:var(--wf-muted);background:rgba(255,255,255,.45);border:1px dashed var(--wf-line);border-radius:14px}

.wf-card{background:var(--wf-card);border:1px solid var(--wf-line);border-radius:16px;box-shadow:0 2px 10px rgba(100,60,10,.05);overflow:hidden}.wf-card.is-oos{opacity:.58}.wf-card-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:15px;cursor:pointer}.wf-main{min-width:0}.wf-badges{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-bottom:6px}.wf-badge,.wf-subbadge,.wf-tag-mini,.wf-phenol{display:inline-flex;align-items:center;border-radius:999px;line-height:1.3}.wf-badge{padding:3px 8px;color:#fff;font-size:12px;font-weight:700}.wf-subbadge{padding:3px 7px;border:1px solid var(--wf-line);color:var(--wf-muted);font-size:12px;background:rgba(255,255,255,.5)}.wf-card h3{font-size:clamp(17px,2.1vw,22px);font-weight:800;color:var(--wf-text)}.wf-en{font-size:13px;color:#9a6820;font-style:italic;margin-top:2px}.wf-meta{font-size:12px;color:var(--wf-muted);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wf-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.wf-tag-mini{font-size:11px;color:#6f5128;border:1px solid var(--wf-line);padding:2px 7px;background:rgba(255,255,255,.45)}.wf-phenol{font-size:11px;color:#b84b15;border:1px solid rgba(190,80,20,.28);background:rgba(190,80,20,.08);padding:2px 7px;font-weight:700}.wf-side{display:flex;flex-direction:column;align-items:flex-end;gap:7px;min-width:78px}.wf-side strong{color:var(--wf-gold);font-size:16px}.wf-fav{width:34px;height:34px;border:1px solid var(--wf-line)!important;border-radius:50%!important;background:#fff!important;color:#b8a58a!important;cursor:pointer;font-size:18px!important;line-height:1!important;padding:0!important}.wf-fav.on{color:#d64242!important;border-color:rgba(214,66,66,.35)!important;background:rgba(214,66,66,.08)!important}.wf-arrow{font-size:12px;color:var(--wf-muted)}

.wf-detail{border-top:1px solid var(--wf-line);padding:15px;background:var(--wf-card2)}.wf-img{height:220px;border:1px solid var(--wf-line);background:rgba(255,255,255,.6);border-radius:14px;display:flex;align-items:center;justify-content:center;margin-bottom:12px;overflow:hidden}.wf-img img{max-height:210px;width:auto;object-fit:contain}.wf-noimg{font-size:58px;opacity:.32}.wf-actions{display:flex;gap:8px;margin-bottom:14px}.wf-actions a{display:flex;align-items:center;justify-content:center;width:100%;min-height:44px;padding:10px 14px;border-radius:12px;background:rgba(255,153,0,.12);border:1px solid rgba(210,130,0,.35);color:#925800;font-weight:800}.wf-detail section{margin:13px 0}.wf-detail h4{font-size:13px;color:var(--wf-gold);letter-spacing:.03em;margin-bottom:4px;font-weight:800}.wf-detail p{font-size:14px;color:#33200c}.wf-log{background:rgba(255,255,255,.45);border:1px solid var(--wf-line);border-radius:14px;padding:12px}.wf-stars{display:flex;gap:2px;margin:4px 0 8px}.wf-star{border:0!important;background:transparent!important;color:#c9b58a!important;font-size:24px!important;padding:0 2px!important;cursor:pointer;line-height:1!important}.wf-star.on{color:#e2a320!important}.wf-log textarea{display:block;width:100%;min-height:82px;padding:10px!important;resize:vertical}

.wf-charts,.wf-log-list{background:var(--wf-card);border:1px solid var(--wf-line);border-radius:16px;padding:16px}.wf-charts h3,.wf-log-list h3{font-size:20px;margin-bottom:12px;color:var(--wf-text)}.wf-charts h4{font-size:14px;color:var(--wf-gold);margin:14px 0 8px}.wf-bar{display:grid;grid-template-columns:112px minmax(80px,1fr) 36px;align-items:center;gap:8px;margin:7px 0;font-size:13px;color:var(--wf-sub)}.wf-bar b{display:block;height:12px;border-radius:999px;background:linear-gradient(90deg,var(--wf-gold2),#d8a64d);min-width:4px}.wf-bar em{font-style:normal;text-align:right;color:var(--wf-muted);font-weight:700}.wf-log-row{border-bottom:1px solid var(--wf-line);padding:10px 0}.wf-log-row:last-child{border-bottom:0}.wf-log-row strong{display:block}.wf-log-row span{color:#d89b16}.wf-log-row p{color:var(--wf-muted)}

/* SWELL specific containment */
.post_content .wf-app ul,.post_content .wf-app ol{padding-left:0}.post_content .wf-app li{list-style:none}.post_content .wf-app button:not(.components-button),.post_content .wf-app input,.post_content .wf-app select,.post_content .wf-app textarea{font-family:inherit}.post_content .wf-app :where(button,input,select,textarea){margin:0}.post_content .wf-app .wf-tabs button:before,.post_content .wf-app .wf-filter button:before{content:none!important}.post_content .wf-app table{border-collapse:separate}.l-mainContent .wf-app{margin-top:1.5em;margin-bottom:2em}.swell-block-fullWide .wf-app,.alignfull .wf-app{max-width:1180px;padding-left:16px;padding-right:16px}

@container (max-width: 620px){.wf-shell{border-radius:14px;padding:10px}.wf-top{grid-template-columns:1fr}.wf-search,.wf-sort{height:44px}.wf-filter{flex-wrap:wrap;overflow-x:visible;padding-bottom:4px}.wf-card-head{grid-template-columns:1fr;gap:8px;padding:13px}.wf-side{flex-direction:row;align-items:center;justify-content:space-between;width:100%}.wf-side strong{font-size:15px}.wf-meta{white-space:normal}.wf-img{height:190px}.wf-img img{max-height:180px}.wf-actions{flex-direction:column}.wf-bar{grid-template-columns:92px 1fr 28px;font-size:12px}.wf-tabs button{padding:7px 12px;font-size:13px}}
@media (max-width: 480px){.wf-app{font-size:14px}.wf-shell{margin-left:-2px;margin-right:-2px}.wf-card h3{font-size:17px}.wf-detail{padding:12px}.wf-detail p{font-size:13px}.wf-tabs{margin-left:-2px;margin-right:-2px}.wf-filter{flex-wrap:wrap!important;overflow-x:visible!important;margin-left:0;margin-right:0}.wf-badge,.wf-subbadge{font-size:11px}.wf-side{gap:8px}}

/* ===== v1.2 追加スタイル ===== */

/* ── 一覧カード：サムネイル ── */
.wf-card-thumb {
    width: var(--wf-thumb-w, 100px) !important;
    height: var(--wf-thumb-h, 150px) !important;
    object-fit: var(--wf-thumb-fit, contain) !important;
    object-position: center;
    border-radius: 8px;
    flex-shrink: 0;
    display: block;
}

.wf-noimg-thumb {
    width: var(--wf-thumb-w, 100px) !important;
    height: var(--wf-thumb-h, 150px) !important;
    border-radius: 8px;
    background: #f0ece8;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 36px;
    flex-shrink: 0;
}

/* カードヘッドをflexに統一（v1.1のgridを上書き）*/
.wf-card-head {
    display: flex !important;
    align-items: flex-start !important;
    gap: 12px !important;
    padding: 12px !important;
    grid-template-columns: unset !important;
}

/* wf-main が横幅を使い切る */
.wf-card-head .wf-main {
    flex: 1 1 0;
    min-width: 0;
}

/* wf-side は縮まず右端固定 */
.wf-card-head .wf-side {
    flex-shrink: 0;
    min-width: 0;
    width: auto;
}

/* スマホでも同じflexレイアウトを維持（containerクエリの上書きを解除） */
@container (max-width: 620px) {
    .wf-card-head {
        flex-wrap: nowrap !important;
        grid-template-columns: unset !important;
    }
    .wf-card-head .wf-side {
        flex-direction: column !important;
        align-items: flex-end !important;
        justify-content: flex-start !important;
        width: auto !important;
    }
    .wf-card-thumb,
    .wf-noimg-thumb {
        width: var(--wf-thumb-w, 100px) !important;
        height: var(--wf-thumb-h, 150px) !important;
    }
}

/* ── 詳細：画像エリア ── */
.wf-detail-images {
    margin-bottom: 16px;
}

.wf-detail-main img.wf-detail-main-img {
    width: 100%;
    max-width: 240px;
    max-height: 280px;
    border-radius: 10px;
    object-fit: contain;
    display: block;
    margin-bottom: 10px;
}

.wf-gallery {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 8px;
}

.wf-gallery-thumb {
    width: 72px;
    height: 72px;
    object-fit: cover;
    border-radius: 6px;
    cursor: pointer;
    border: 2px solid transparent;
    transition: border-color 0.2s;
}

.wf-gallery-thumb:hover,
.wf-gallery-thumb.active {
    border-color: #0F6E56;
}

/* ── 購入先ボタン ── */
.wf-buy-wrap {
    margin-bottom: 16px;
    padding: 12px 14px;
    background: #f8f7f5;
    border-radius: 10px;
}

.wf-buy-label {
    font-size: 13px;
    font-weight: 600;
    margin: 0 0 8px;
    color: #333;
}

.wf-buy-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.wf-buy-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 500;
    text-decoration: none !important;
    transition: opacity 0.2s;
    white-space: nowrap;
}

.wf-buy-btn:hover { opacity: 0.82; }

.wf-buy-amazon   { background: #FF9900; color: #111 !important; }
.wf-buy-rakuten  { background: #bf0000; color: #fff !important; }
.wf-buy-yahoo    { background: #6001d2; color: #fff !important; }
.wf-buy-yodobashi { background: #e60012; color: #fff !important; }
.wf-buy-official { background: #0F6E56; color: #fff !important; }
.wf-buy-other    { background: #555;    color: #fff !important; }

/* ── テイスティングメモ ── */
.wf-tasting {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-bottom: 12px;
}

.wf-tasting-item h4 { margin: 0 0 4px; font-size: 13px; }
.wf-tasting-item p  { margin: 0; font-size: 13px; }

/* 特徴エリア（HTMLそのまま描画） */
.wf-features {
    margin-bottom: 14px;
}

.wf-features-body img {
    max-width: 100%;
    border-radius: 6px;
    margin: 6px 0;
}

/* 在庫切れバッジ */
.wf-oos-badge { background: #dc3232 !important; color: #fff; }

@media (max-width: 600px) {
    .wf-tasting { grid-template-columns: 1fr; }
    .wf-detail-main img.wf-detail-main-img { max-width: 100%; }
    .wf-card-thumb,
    .wf-noimg-thumb {
        width: var(--wf-thumb-w, 100px) !important;
        height: var(--wf-thumb-h, 150px) !important;
    }
}

/* ===== v1.3 テイスティングスライダー ===== */

/* スライダーセクション全体 */
.wf-sliders {
    margin: 12px 0;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.wf-slider-row {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.wf-slider-label {
    font-size: 13px;
    font-weight: 700;
    color: var(--wf-gold);
}

.wf-slider-wrap {
    display: flex;
    align-items: center;
    gap: 8px;
}

.wf-slider-edge {
    font-size: 11px;
    color: var(--wf-muted);
    white-space: nowrap;
    min-width: 52px;
}

.wf-slider-edge:last-of-type {
    text-align: right;
}

.wf-slider-val {
    font-size: 13px;
    font-weight: 700;
    color: var(--wf-text);
    min-width: 20px;
    text-align: right;
}

/* rangeスライダー本体 */
.wf-slider {
    -webkit-appearance: none;
    appearance: none;
    flex: 1;
    height: 6px;
    border-radius: 999px;
    background: linear-gradient(90deg, #e2a320, #d4600a) !important;
    outline: none;
    cursor: pointer;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    box-shadow: none !important;
}

.wf-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #fff;
    border: 2px solid #c87a10;
    cursor: pointer;
    box-shadow: 0 2px 6px rgba(0,0,0,.18);
}

.wf-slider::-moz-range-thumb {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #fff;
    border: 2px solid #c87a10;
    cursor: pointer;
    box-shadow: 0 2px 6px rgba(0,0,0,.18);
}

/* 保存ボタン・メッセージ */
.wf-save-wrap {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 10px;
}

.wf-save-btn {
    background: var(--wf-gold) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 999px !important;
    padding: 10px 22px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    cursor: pointer !important;
}

.wf-save-btn:disabled {
    opacity: 0.6;
    cursor: not-allowed !important;
}

.wf-save-msg { font-size: 13px; }
.wf-save-msg.success { color: #27a060; }
.wf-save-msg.error   { color: #dc3232; }

.wf-login-note {
    font-size: 12px;
    color: var(--wf-muted);
    margin: 0 0 8px;
}

.wf-login-note a { color: var(--wf-gold); text-decoration: underline; }

/* 「記録あり」バッジ */
.wf-has-log {
    background: rgba(39,160,96,.12) !important;
    border-color: rgba(39,160,96,.4) !important;
    color: #1a7a46 !important;
}

/* メモ欄 */
.wf-memo {
    display: block;
    width: 100%;
    min-height: 72px;
    padding: 10px !important;
    resize: vertical;
    margin-top: 8px;
    border-radius: 10px !important;
}

/* 飲んだ記録タブ内のスライダー表示 */
.wf-log-sliders {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 8px 0;
}

.wf-log-slider {
    display: grid;
    grid-template-columns: 90px 1fr 36px;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: var(--wf-sub);
}

.wf-log-bar {
    height: 8px;
    background: rgba(0,0,0,.08);
    border-radius: 999px;
    overflow: hidden;
}

.wf-log-bar-fill {
    height: 100%;
    background: linear-gradient(90deg, #e2a320, #d4600a);
    border-radius: 999px;
}

.wf-log-stars { font-size: 16px; color: #e2a320; letter-spacing: 1px; }
.wf-log-memo  { font-size: 13px; color: var(--wf-muted); font-style: italic; margin-top: 4px; }

@media (max-width: 600px) {
    .wf-slider-edge { min-width: 40px; font-size: 10px; }
    .wf-log-slider  { grid-template-columns: 72px 1fr 28px; }
}

/* ===== ページング・件数セレクタ ===== */

/* ツールバー（在庫切れ＋件数選択を横並び） */
.wf-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px;
    margin: 2px 0 10px;
}

.wf-perpage-wrap {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: var(--wf-muted);
    white-space: nowrap;
}

.wf-perpage {
    height: 34px;
    padding: 0 10px !important;
    border-radius: 8px !important;
    font-size: 13px;
    cursor: pointer;
}

/* ページャー全体 */
.wf-pager {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    margin: 12px 0;
}

.wf-pager-info {
    font-size: 12px;
    color: var(--wf-muted);
}

.wf-pager-btns {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px;
    justify-content: center;
}

/* ページボタン共通 */
.wf-pager-btn {
    min-width: 36px;
    height: 36px;
    padding: 0 10px !important;
    border: 1px solid var(--wf-line) !important;
    border-radius: 8px !important;
    background: rgba(255,255,255,.55) !important;
    color: var(--wf-sub) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    cursor: pointer !important;
    transition: .15s ease;
    white-space: nowrap;
}

.wf-pager-btn:hover:not(:disabled) {
    background: var(--wf-gold) !important;
    color: #fff !important;
    border-color: var(--wf-gold) !important;
}

/* 現在ページ */
.wf-pager-btn.on {
    background: var(--wf-gold) !important;
    color: #fff !important;
    border-color: var(--wf-gold) !important;
    font-weight: 700 !important;
    pointer-events: none;
}

/* 前へ・次へ */
.wf-pager-prev,
.wf-pager-next {
    font-weight: 700 !important;
}

.wf-pager-btn:disabled {
    opacity: 0.35;
    cursor: not-allowed !important;
}

/* 省略記号 */
.wf-pager-ellipsis {
    font-size: 14px;
    color: var(--wf-muted);
    padding: 0 4px;
}

@media (max-width: 480px) {
    .wf-toolbar {
        flex-direction: column;
        align-items: flex-start;
    }
    .wf-pager-btn {
        min-width: 32px;
        height: 32px;
        font-size: 12px !important;
        padding: 0 8px !important;
    }
}

/* ===== フィルタボタン改善（スマホ折り返し対応） ===== */

/* 選択中タグは色だけ変える（順番は変えない） */

/* スマホでボタンが小さくなりすぎないように */
@media (max-width: 480px) {
    .wf-filter button {
        font-size: 12px;
        padding: 4px 9px;
    }
    .wf-filter {
        gap: 5px;
    }
}

/* ===== フィルタグループ分け ===== */

.wf-filter-wrap {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 8px 0 12px;
}

.wf-filter-group {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.wf-filter-label {
    font-size: 14px;
    font-weight: 700;
    color: var(--wf-muted);
    letter-spacing: .04em;
    text-transform: none;
    padding-left: 2px;
}

/* グループ内のフィルタボタン行 */
.wf-filter-group .wf-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin: 0;   /* wf-filter-groupが余白管理するのでリセット */
}

/* グループ間に区切り線 */

@media (max-width: 480px) {
    .wf-filter-label {
        font-size: 13px;
    }
    .wf-filter-group .wf-filter button {
        font-size: 12px;
        padding: 4px 9px;
    }
}

/* ══════════════════════════════════════════════
 * AIおすすめウィジェット（v1.4）
 * ══════════════════════════════════════════════ */

/* ゲスト向け */
.wf-rec-guest {
    background: #E1F5EE;
    border-radius: 14px;
    padding: 20px;
    text-align: center;
}
.wf-rec-login-btn {
    display: inline-block;
    margin-top: 10px;
    background: #D85A30;
    color: #fff !important;
    border-radius: 999px;
    padding: 10px 24px;
    font-weight: 700;
    text-decoration: none !important;
}

/* ウィジェット全体 */
.wf-rec-widget {
    background: linear-gradient(135deg, #fffaf0 0%, #fdf3e0 100%);
    border: 1px solid rgba(120,80,20,.18);
    border-radius: 16px;
    padding: 18px;
    margin: 16px 0;
}

/* ヘッダー */
.wf-rec-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 8px;
}
.wf-rec-title {
    font-size: 16px;
    font-weight: 800;
    color: #412402;
    margin: 0;
    border: none;
    background: none;
    padding: 0;
}
.wf-rec-refresh {
    background: transparent !important;
    border: 1px solid rgba(120,80,20,.3) !important;
    border-radius: 999px !important;
    color: #806034 !important;
    font-size: 12px !important;
    padding: 4px 12px !important;
    cursor: pointer !important;
}
.wf-rec-refresh:hover {
    background: rgba(120,80,20,.08) !important;
}

/* 季節コメント・傾向 */
.wf-rec-season {
    font-size: 13px;
    color: #0F6E56;
    font-weight: 600;
    margin: 0 0 4px;
}
.wf-rec-summary {
    font-size: 12px;
    color: #806034;
    margin: 0 0 14px;
}

/* カードリスト */
.wf-rec-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 10px;
}
.wf-rec-card {
    background: #fff;
    border: 1px solid rgba(120,80,20,.15);
    border-radius: 12px;
    padding: 12px;
    display: flex;
    gap: 10px;
    align-items: flex-start;
}
.wf-rec-thumb {
    width: 56px;
    height: 72px;
    object-fit: contain;
    border-radius: 6px;
    flex-shrink: 0;
}
.wf-rec-noimg {
    width: 56px;
    height: 72px;
    border-radius: 6px;
    background: #f0ece8;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    flex-shrink: 0;
}
.wf-rec-card-body {
    flex: 1;
    min-width: 0;
}
.wf-rec-name {
    font-weight: 700;
    font-size: 13px;
    color: #1e1405;
    margin: 0 0 4px;
}
.wf-rec-reason {
    font-size: 12px;
    color: #5f421c;
    margin: 0 0 4px;
    line-height: 1.5;
}
.wf-rec-tip {
    font-size: 11px;
    color: #0F6E56;
    font-weight: 600;
    margin: 0;
}

/* ローディング */
.wf-rec-loading {
    text-align: center;
    padding: 24px;
    color: #806034;
}
.wf-rec-spinner {
    display: inline-block;
    width: 24px;
    height: 24px;
    border: 3px solid rgba(120,80,20,.2);
    border-top-color: #8a5a12;
    border-radius: 50%;
    animation: wf-spin 0.8s linear infinite;
    margin-bottom: 10px;
}
@keyframes wf-spin { to { transform: rotate(360deg); } }

/* エラー */
.wf-rec-error {
    text-align: center;
    padding: 20px;
    color: #806034;
}
.wf-rec-retry {
    background: #8a5a12 !important;
    color: #fff !important;
    border: none !important;
    border-radius: 999px !important;
    padding: 8px 20px !important;
    cursor: pointer !important;
    margin-top: 8px !important;
}

@media (max-width: 480px) {
    .wf-rec-cards {
        grid-template-columns: 1fr;
    }
}

/* ══════════════════════════════════════════════
 * 選択状態バッジ・0件メッセージ（v1.4）
 * ══════════════════════════════════════════════ */

/* 選択中タグバッジエリア */
.wf-active-tags {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    padding: 8px 12px;
    background: rgba(var(--wf-gold-rgb, 180,120,20), .08);
    border: 1px solid rgba(var(--wf-gold-rgb, 180,120,20), .2);
    border-radius: 10px;
    margin-bottom: 10px;
    font-size: 13px;
}

.wf-active-tags-label {
    font-size: 15px;
    flex-shrink: 0;
}

/* 選択中タグバッジ（個別） */
.wf-active-tag {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: var(--wf-gold, #b47814);
    color: #fff;
    border-radius: 999px;
    padding: 4px 10px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    transition: opacity .15s;
}
.wf-active-tag:hover { opacity: .8; }
.wf-active-tag-x {
    font-size: 11px;
    opacity: .8;
}

/* OR グループ括弧 */
.wf-tag-op-or {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
}

/* AND / OR セパレータ */
.wf-tag-sep {
    font-size: 11px;
    color: #888;
    font-weight: 400;
    white-space: nowrap;
}
.wf-tag-sep-and {
    font-size: 12px;
    font-weight: 700;
    color: #c87a10;
}

/* すべてクリアボタン */
.wf-clear-tags {
    margin-left: auto;
    background: transparent !important;
    border: 1px solid rgba(var(--wf-gold-rgb, 180,120,20), .4) !important;
    border-radius: 999px !important;
    color: #8a5a12 !important;
    font-size: 11px !important;
    padding: 4px 10px !important;
    cursor: pointer !important;
    white-space: nowrap;
    flex-shrink: 0;
}
.wf-clear-tags:hover {
    background: rgba(var(--wf-gold-rgb, 180,120,20), .1) !important;
}

/* 0件時メッセージ */
.wf-empty-block {
    text-align: center;
    padding: 32px 16px;
}
.wf-empty-hint {
    font-size: 13px;
    color: var(--wf-muted);
    margin-top: 8px;
}
.wf-clear-all {
    background: var(--wf-gold, #b47814) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 999px !important;
    padding: 6px 16px !important;
    font-size: 13px !important;
    cursor: pointer !important;
    margin-left: 4px;
}

@media (max-width: 480px) {
    .wf-active-tags { font-size: 12px; padding: 6px 10px; }
    .wf-clear-tags  { margin-left: 0; }
}

.wf-bar b{max-width:100%!important}

/* ══════════════════════════════════════════════
 * v1.5 追加スタイル
 * ══════════════════════════════════════════════ */

/* U1: 詳細タブ */
.wf-detail-tabs {
    display: flex;
    gap: 3px;
    margin-bottom: 14px;
    background: #f3ede4;
    border-radius: 10px;
    padding: 4px;
    flex-wrap: wrap;
}
.wf-dtab {
    background: transparent !important;
    border: none !important;
    border-radius: 7px !important;
    padding: 7px 12px !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    color: var(--wf-muted) !important;
    cursor: pointer !important;
    transition: background .15s, color .15s;
    white-space: nowrap;
    flex: 1;
    text-align: center;
}
.wf-dtab.on {
    background: #fff !important;
    color: var(--wf-gold) !important;
    box-shadow: 0 1px 4px rgba(100,60,10,.12) !important;
}
.wf-dtab:hover:not(.on) {
    background: rgba(255,255,255,.5) !important;
    color: var(--wf-text) !important;
}
.wf-detail-body { padding-top: 4px; }
.wf-ref-price {
    font-size: 13px;
    color: var(--wf-muted);
    margin: 0 0 10px;
}
.wf-ref-price strong { color: var(--wf-gold); }

/* U5: 好みから探すビュー */
.wf-pick-view {}
.wf-pick-summary {
    font-size: 12px;
    color: var(--wf-muted);
    margin-bottom: 12px;
    padding: 8px 12px;
    background: rgba(var(--wf-gold-rgb,180,120,20),.08);
    border-radius: 8px;
}

/* U6: 人気ランキング */
.wf-ranking-view {}
.wf-rank-period {
    display: flex;
    gap: 6px;
    margin-bottom: 12px;
}
.wf-rpbtn {
    background: var(--wf-surface) !important;
    border: 1px solid var(--wf-line) !important;
    border-radius: 999px !important;
    padding: 5px 16px !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    cursor: pointer !important;
    color: var(--wf-sub) !important;
}
.wf-rpbtn.on {
    background: var(--wf-gold) !important;
    border-color: var(--wf-gold) !important;
    color: #fff !important;
}
.wf-rank-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px;
    border-bottom: 1px solid var(--wf-line);
    cursor: pointer;
    transition: background .15s;
}
.wf-rank-row:hover { background: rgba(var(--wf-gold-rgb,180,120,20),.05); }
.wf-rank-num {
    font-size: 13px;
    font-weight: 700;
    color: var(--wf-muted);
    min-width: 40px;
}
.wf-rank-num.top { color: var(--wf-gold); }
.wf-rank-thumb {
    width: 40px;
    height: 52px;
    object-fit: contain;
    border-radius: 5px;
    flex-shrink: 0;
}
.wf-rank-noimg {
    width: 40px;
    height: 52px;
    background: var(--wf-surface);
    border-radius: 5px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    flex-shrink: 0;
}
.wf-rank-info {
    flex: 1;
    min-width: 0;
}
.wf-rank-info strong { display: block; font-size: 13px; }
.wf-rank-info span   { font-size: 11px; color: var(--wf-muted); }
.wf-rank-views {
    font-size: 12px;
    color: var(--wf-muted);
    white-space: nowrap;
}

/* U2: チャートバーのオーバーフロー修正 */
.wf-bar { overflow: hidden; }
.wf-bar b { max-width: 100% !important; min-width: 4px; }

@media (max-width: 480px) {
    .wf-dtab { padding: 6px 10px !important; font-size: 12px !important; }
}

/* ── 検索ボタン（B1修正） ── */
.wf-search-wrap {
    display: flex;
    align-items: center;
    gap: 6px;
    flex: 1;
}
.wf-search-wrap .wf-search {
    flex: 1;
    margin: 0 !important;
}
.wf-search-btn {
    background: var(--wf-gold) !important;
    color: #fff !important;
    border: none !important;
    border-radius: var(--wf-radius, 10px) !important;
    padding: 0 16px !important;
    height: 44px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    white-space: nowrap;
    flex-shrink: 0;
}
.wf-search-btn:hover { opacity: .85; }
.wf-search-clear {
    background: transparent !important;
    border: 1px solid var(--wf-line) !important;
    border-radius: 50% !important;
    width: 28px !important;
    height: 28px !important;
    font-size: 12px !important;
    cursor: pointer !important;
    color: var(--wf-muted) !important;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 !important;
}
@media (max-width: 480px) {
    .wf-search-btn { padding: 0 12px !important; font-size: 12px !important; }
}

/* ══════════════════════════════════════════════
 * v1.6 エディション表示
 * ══════════════════════════════════════════════ */

.wf-edition-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.wf-edition-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    background: var(--wf-surface, #fff);
    border: 1px solid var(--wf-line);
    border-radius: 10px;
    transition: background .15s;
}
.wf-edition-row.is-oos { opacity: .6; }
.wf-edition-row:hover  { background: rgba(var(--wf-gold-rgb,180,120,20),.05); }

.wf-edition-thumb {
    width: 44px;
    height: 56px;
    object-fit: contain;
    border-radius: 6px;
    flex-shrink: 0;
}
.wf-edition-noimg {
    width: 44px;
    height: 56px;
    border-radius: 6px;
    background: #f0ece8;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    flex-shrink: 0;
}

.wf-edition-info { flex: 1; min-width: 0; }
.wf-edition-name {
    font-size: 13px;
    font-weight: 600;
    margin: 0 0 3px;
    display: flex;
    align-items: center;
    gap: 6px;
}
.wf-edition-meta {
    font-size: 11px;
    color: var(--wf-muted);
    margin: 0;
}

.wf-limited-badge {
    display: inline-block;
    font-size: 10px;
    font-weight: 700;
    padding: 1px 7px;
    border-radius: 999px;
    background: #7e44a8;
    color: #fff;
}

.wf-edition-price {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
    font-size: 12px;
    white-space: nowrap;
    flex-shrink: 0;
}
.wf-edition-stock.in  { color: #46b450; font-size: 11px; }
.wf-edition-stock.out { color: #dc3232; font-size: 11px; }

/* タブのカウントバッジ */
.wf-dtab-count {
    display: inline-block;
    background: var(--wf-gold);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    padding: 1px 5px;
    border-radius: 999px;
    margin-left: 3px;
    vertical-align: middle;
}

/* ── B7: 飲んだ記録 → 詳細リンク ── */
.wf-log-row-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 4px;
}
.wf-log-name {
    font-size: 14px;
    color: var(--wf-text);
}
.wf-log-link {
    font-size: 12px;
    color: var(--wf-gold);
    font-weight: 500;
    white-space: nowrap;
}
.wf-log-row:hover .wf-log-link {
    text-decoration: underline;
}

/* ══════════════════════════════════════════════
 * N1: 会員登録・ログイン・マイページ（アンバー×ダークブラウン）
 * ══════════════════════════════════════════════ */
:root {
    --wf-auth-dark:   #412402;
    --wf-auth-brown:  #633806;
    --wf-auth-mid:    #854F0B;
    --wf-auth-amber:  #BA7517;
    --wf-auth-gold:   #EF9F27;
    --wf-auth-light:  #FAC775;
    --wf-auth-pale:   #FAEEDA;
    --wf-auth-bg:     #fff8f0;
}
.wf-auth-box {
    max-width: 420px;
    margin: 0 auto;
    background: var(--wf-auth-bg);
    border: 1px solid var(--wf-auth-light);
    border-radius: 16px;
    overflow: hidden;
}
/* ヘッダー */
.wf-auth-header {
    background: var(--wf-auth-dark);
    padding: 20px 24px 16px;
    text-align: center;
}
.wf-auth-logo-sub {
    color: var(--wf-auth-light);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .18em;
    text-transform: uppercase;
    opacity: .7;
    margin: 0 0 3px;
}
.wf-auth-logo {
    color: #fff;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: .08em;
    font-family: Georgia, serif;
    margin: 0;
}
/* ボディ */
.wf-auth-body {
    padding: 24px 24px 28px;
}
/* ステップドット */
.wf-step-dots {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-bottom: 16px;
}
.wf-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--wf-auth-light);
    display: inline-block;
}
.wf-dot.on { background: var(--wf-auth-dark); }

.wf-auth-title {
    font-size: 17px;
    font-weight: 700;
    color: var(--wf-auth-dark);
    margin: 0 0 4px;
    text-align: center;
    border: none;
    background: none;
    padding: 0;
}
.wf-auth-desc {
    font-size: 13px;
    color: var(--wf-auth-mid);
    margin: 0 0 16px;
    text-align: center;
}
.wf-auth-alert {
    background: var(--wf-auth-pale);
    border: 1px solid var(--wf-auth-light);
    border-radius: 8px;
    padding: 10px 12px;
    font-size: 12px;
    color: var(--wf-auth-brown);
    margin-bottom: 16px;
    line-height: 1.5;
}
/* フィールド */
.wf-auth-field {
    margin-bottom: 12px;
}
.wf-auth-field label {
    display: block;
    font-size: 10px;
    font-weight: 700;
    color: var(--wf-auth-brown);
    letter-spacing: .08em;
    text-transform: uppercase;
    margin-bottom: 5px;
}
.wf-auth-input {
    display: block;
    width: 100%;
    padding: 10px 14px !important;
    border: 1.5px solid var(--wf-auth-light) !important;
    border-radius: 8px !important;
    font-size: 14px !important;
    color: var(--wf-auth-dark) !important;
    background: #fff !important;
    box-sizing: border-box;
    transition: border-color .15s;
}
.wf-auth-input:focus {
    border-color: var(--wf-auth-amber) !important;
    outline: none !important;
}
/* ボタン */
.wf-auth-btn {
    display: block;
    width: 100%;
    padding: 13px !important;
    background: var(--wf-auth-dark) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 10px !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    text-align: center;
    text-decoration: none !important;
    margin-top: 6px;
    transition: opacity .15s;
}
.wf-auth-btn:hover { opacity: .85 !important; }
.wf-auth-btn-outline {
    display: block;
    width: 100%;
    padding: 11px !important;
    background: transparent !important;
    color: var(--wf-auth-dark) !important;
    border: 1.5px solid var(--wf-auth-amber) !important;
    border-radius: 10px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    text-align: center;
    text-decoration: none !important;
    margin-top: 8px;
    box-sizing: border-box;
}
.wf-auth-btn-danger {
    background: #8b1a1a !important;
    margin-top: 10px;
}
.wf-auth-divider {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 14px 0 6px;
    color: var(--wf-auth-mid);
    font-size: 11px;
}
.wf-auth-divider::before,
.wf-auth-divider::after {
    content: '';
    flex: 1;
    height: 1px;
    background: var(--wf-auth-light);
}
.wf-auth-link {
    font-size: 12px;
    color: var(--wf-auth-mid);
    text-align: center;
    margin-top: 12px;
}
.wf-auth-link a { color: var(--wf-auth-amber); font-weight: 600; text-decoration: none; }
.wf-auth-msg {
    font-size: 13px;
    margin: 8px 0 0;
    text-align: center;
    min-height: 20px;
}
.wf-auth-msg.success { color: #27a060; }
.wf-auth-msg.error   { color: #dc3232; }

/* マイページ */
.wf-mypage-avatar-wrap { text-align: center; margin-bottom: 10px; }
.wf-mypage-avatar {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: var(--wf-auth-dark);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    font-weight: 700;
    border: 3px solid var(--wf-auth-light);
}
.wf-mypage-name  { font-weight: 700; font-size: 16px; color: var(--wf-auth-dark); text-align: center; margin: 0 0 3px; }
.wf-mypage-email { font-size: 12px; color: var(--wf-auth-mid); text-align: center; margin: 0 0 16px; }
.wf-mypage-stats {
    display: flex;
    gap: 10px;
    margin-bottom: 18px;
}
.wf-mypage-stat {
    flex: 1;
    text-align: center;
    background: #fff;
    border: 1px solid var(--wf-auth-light);
    border-radius: 10px;
    padding: 12px 8px;
}
.wf-stat-num   { display: block; font-size: 24px; font-weight: 700; color: var(--wf-auth-dark); }
.wf-stat-label { display: block; font-size: 10px; color: var(--wf-auth-mid); margin-top: 3px; }
.wf-mypage-actions { margin-bottom: 16px; }
/* （旧定義。マイページ用の指定は末尾に集約） */
.wf-danger-zone summary::-webkit-details-marker { display: none; }
.wf-danger-body p {
    font-size: 12px;
    color: var(--wf-auth-mid);
    margin-bottom: 10px;
    line-height: 1.5;
}

/* ══════════════════════════════════════════════
 * F2: 店舗表示・店舗選択UI
 * ══════════════════════════════════════════════ */

/* 詳細タブ内の「飲める店」リスト */
.wf-place-list-section {
    margin: 12px 0;
    padding: 12px;
    background: #f8f6f2;
    border-radius: 10px;
}
.wf-place-list-section h4 {
    margin: 0 0 4px;
    font-size: 13px;
    color: var(--wf-gold);
}
.wf-place-list-hint {
    font-size: 11px;
    color: var(--wf-muted);
    margin: 0 0 8px;
}
.wf-place-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.wf-place-chip {
    display: inline-block;
    padding: 4px 10px;
    background: #fff;
    border: 1px solid var(--wf-line);
    border-radius: 999px;
    font-size: 12px;
    color: var(--wf-text) !important;
    text-decoration: none !important;
    transition: background .15s;
}
.wf-place-chip:hover {
    background: var(--wf-gold);
    color: #fff !important;
    border-color: var(--wf-gold);
}
.wf-place-more {
    font-size: 11px;
    color: var(--wf-muted);
    align-self: center;
}

/* 飲んだ記録タブの店舗選択 */
.wf-visit-wrap {
    margin-top: 14px;
    padding: 12px;
    background: #f0f8f4;
    border: 1px solid #9FE1CB;
    border-radius: 10px;
}
.wf-visit-label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: #085041;
    margin-bottom: 6px;
}
.wf-place-sel {
    width: 100%;
    margin-bottom: 8px;
}
.wf-visit-btn {
    background: #0F6E56 !important;
    color: #fff !important;
    border: none !important;
    border-radius: 999px !important;
    padding: 8px 18px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
}
.wf-visit-btn:hover { opacity: .85; }
.wf-visit-msg { font-size: 12px; margin-left: 8px; }
.wf-visit-msg.success { color: #27a060; }
.wf-visit-msg.error   { color: #dc3232; }

/* 店舗一覧ページ [whisky_places] */
.wf-places-wrap { max-width: 100%; width: 100%; }
.wf-places-group { margin-bottom: 28px; }
.wf-places-type {
    font-size: 15px;
    font-weight: 700;
    color: var(--wf-gold, #8a5a12);
    margin: 0 0 12px;
    padding-bottom: 6px;
    border-bottom: 2px solid var(--wf-line, rgba(120,80,20,.22));
}
.wf-places-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 12px;
}
.wf-place-card {
    background: #fff;
    border: 1px solid var(--wf-line, rgba(120,80,20,.22));
    border-radius: 12px;
    padding: 14px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.wf-place-name  { font-weight: 700; font-size: 14px; margin: 0 0 4px; }
.wf-place-addr, .wf-place-hours, .wf-place-tel, .wf-place-memo {
    font-size: 12px;
    color: var(--wf-muted, #806034);
    margin: 2px 0;
}
.wf-place-actions {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-top: auto;
}
.wf-place-map-btn, .wf-place-url-btn {
    display: inline-block;
    padding: 6px 12px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
    text-decoration: none !important;
}
.wf-place-map-btn {
    background: #E8F4FD;
    color: #185FA5 !important;
    border: 1px solid #B5D4F4;
}
.wf-place-url-btn {
    background: #f8f7f5;
    color: var(--wf-text) !important;
    border: 1px solid var(--wf-line);
}

/* ── 認証ページ追加スタイル統一 ── */
.wf-auth-body--center {
    text-align: center;
}
.wf-auth-lock {
    font-size: 36px;
    margin: 0 0 8px;
}
/* マイページアクションボタンの縦並び（設定内のボタンは対象外） */
.wf-mypage-actions > .wf-auth-btn,
.wf-mypage-actions > .wf-auth-btn-outline {
    display: block;
    margin-top: 8px;
    text-align: center;
}
.wf-mypage-actions > .wf-auth-btn { margin-top: 0; margin-bottom: 8px; }

/* ══════════════════════════════════════════════
 * N2: みんなの記録タブ
 * ══════════════════════════════════════════════ */
.wf-community-loading {
    padding: 24px;
    text-align: center;
    color: var(--wf-muted);
    font-size: 13px;
}
.wf-comm-spinner { font-size: 20px; display: block; margin-bottom: 6px; }
.wf-community-empty {
    padding: 24px;
    text-align: center;
    color: var(--wf-muted);
    font-size: 13px;
}
.wf-community { padding: 4px 0; }
.wf-comm-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--wf-line);
}
.wf-comm-count {
    font-size: 13px;
    font-weight: 700;
    color: var(--wf-gold);
}
.wf-comm-stars {
    font-size: 14px;
    color: var(--wf-gold);
}
.wf-comm-rating {
    font-size: 12px;
    font-weight: 700;
    margin-left: 4px;
}
.wf-comm-bars { display: flex; flex-direction: column; gap: 14px; }
.wf-comm-bar-row {
    display: grid;
    grid-template-columns: 80px 1fr 44px;
    align-items: center;
    gap: 8px;
}
.wf-comm-bar-label {
    font-size: 12px;
    font-weight: 600;
    color: var(--wf-sub);
    white-space: nowrap;
}
.wf-comm-bar-body {
    display: flex;
    flex-direction: column;
    gap: 3px;
}
.wf-comm-bar-axis {
    display: flex;
    justify-content: space-between;
}
.wf-comm-axis-left,
.wf-comm-axis-right {
    font-size: 10px;
    color: var(--wf-muted);
}
.wf-comm-bar-wrap {
    background: var(--wf-line);
    border-radius: 999px;
    height: 10px;
    overflow: hidden;
}
.wf-comm-bar-fill {
    background: linear-gradient(90deg, #d4920a, var(--wf-gold));
    height: 100%;
    border-radius: 999px;
    transition: width .5s ease;
    min-width: 4px;
}
.wf-comm-bar-val {
    font-size: 13px;
    font-weight: 700;
    color: var(--wf-gold);
    text-align: right;
    white-space: nowrap;
}
.wf-comm-bar-max {
    font-size: 10px;
    font-weight: 400;
    color: var(--wf-muted);
}
.wf-comm-note {
    font-size: 11px;
    color: var(--wf-muted);
    margin-top: 12px;
    text-align: center;
}

/* N5: エディションバッジ・ナビ */
.wf-edition-badge {
    display: inline-block;
    font-size: 10px;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: 999px;
    background: #7e44a8;
    color: #fff;
    cursor: pointer;
    margin-bottom: 4px;
}
.wf-edition-badge:hover { opacity: .8; }
.wf-edition-parent-link {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    background: rgba(126,68,168,.06);
    border-radius: 8px;
    margin-bottom: 10px;
}
.wf-edition-nav-btn {
    background: #7e44a8 !important;
    color: #fff !important;
    border: none !important;
    border-radius: 999px !important;
    padding: 4px 12px !important;
    font-size: 12px !important;
    cursor: pointer !important;
}

/* N6: お店よみがな・tel */
.wf-place-kana {
    display: block;
    font-size: 10px;
    color: var(--wf-muted);
    font-weight: 400;
    margin-top: 2px;
}
.wf-place-tel a {
    color: var(--wf-text);
    text-decoration: none;
}
.wf-place-tel a:hover { text-decoration: underline; }

/* ══════════════════════════════════════════════
 * v1.14: 店舗投稿モーダル
 * ══════════════════════════════════════════════ */
.wf-submit-place-btn {
    display: inline-block;
    margin-top: 10px;
    padding: 6px 14px !important;
    background: transparent !important;
    border: 1.5px dashed var(--wf-gold) !important;
    border-radius: 999px !important;
    color: var(--wf-gold) !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    transition: background .15s;
}
.wf-submit-place-btn:hover {
    background: rgba(var(--wf-gold-rgb,180,120,20),.08) !important;
}

/* モーダルオーバーレイ */
.wf-modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(20,10,0,.65);
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
}
.wf-modal-box {
    background: #fff8f0;
    border-radius: 16px;
    width: 100%;
    max-width: 480px;
    max-height: 90vh;
    overflow-y: auto;
    box-shadow: 0 24px 80px rgba(0,0,0,.4);
}
.wf-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    background: #412402;
    border-radius: 16px 16px 0 0;
    position: sticky;
    top: 0;
    z-index: 1;
}
.wf-modal-header h3 {
    color: #fff;
    font-size: 15px;
    margin: 0;
    padding: 0;
    border: none;
    background: none;
}
.wf-modal-close {
    background: transparent !important;
    border: none !important;
    color: #FAC775 !important;
    font-size: 18px !important;
    cursor: pointer !important;
    padding: 0 !important;
    line-height: 1 !important;
}
.wf-modal-body { padding: 18px 20px 24px; }
.wf-modal-desc {
    font-size: 12px;
    color: #854F0B;
    background: #FAEEDA;
    border-radius: 8px;
    padding: 8px 12px;
    margin-bottom: 14px;
}
.wf-modal-field {
    margin-bottom: 12px;
}
.wf-modal-field label {
    display: block;
    font-size: 11px;
    font-weight: 700;
    color: #633806;
    letter-spacing: .06em;
    text-transform: uppercase;
    margin-bottom: 4px;
}
.wf-req { color: #dc3232; }
.wf-modal-field input,
.wf-modal-field select,
.wf-modal-field textarea {
    display: block;
    width: 100%;
    padding: 9px 12px !important;
    border: 1.5px solid #FAC775 !important;
    border-radius: 8px !important;
    font-size: 13px !important;
    color: #412402 !important;
    background: #fff !important;
    box-sizing: border-box;
}
.wf-modal-sub-btn {
    margin-top: 6px;
    padding: 6px 12px !important;
    background: #f0ece5 !important;
    border: 1px solid #FAC775 !important;
    border-radius: 8px !important;
    font-size: 12px !important;
    cursor: pointer !important;
    color: #412402 !important;
}
.wf-modal-submit-btn {
    display: block;
    width: 100%;
    padding: 13px !important;
    background: #412402 !important;
    color: #fff !important;
    border: none !important;
    border-radius: 10px !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    margin-top: 16px;
}
.wf-modal-submit-btn:hover { opacity: .85; }

/* ══════════════════════════════════════════════
 * v1.15: 飲んだお店 複数登録・ドリンクログ
 * ══════════════════════════════════════════════ */

/* 登録済み店舗チップ */
.wf-visit-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 10px;
}
.wf-visit-chip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    background: #e8f5ee;
    border: 1px solid #9FE1CB;
    border-radius: 999px;
    padding: 4px 10px;
    font-size: 12px;
    color: #085041;
}
.wf-visit-chip-date {
    font-size: 10px;
    color: #4a9070;
}
.wf-visit-del {
    background: transparent !important;
    border: none !important;
    color: #4a9070 !important;
    font-size: 11px !important;
    cursor: pointer !important;
    padding: 0 2px !important;
    line-height: 1 !important;
}
.wf-visit-add-row {
    display: flex;
    gap: 6px;
    margin-bottom: 8px;
    flex-wrap: wrap;
}
.wf-visit-add-row .wf-place-autocomplete {
    flex: 1;
    min-width: 0;
}
.wf-visit-add-row .wf-place-search {
    flex: 1;
    min-width: 0;
    width: 100%;
}
.wf-visit-add-row .wf-place-sel {
    display: none; /* hidden input */
}
.wf-visit-memo-input {
    width: 100%;
    padding: 7px 10px !important;
    border: 1px solid #9FE1CB !important;
    border-radius: 8px !important;
    font-size: 12px !important;
    margin-top: 4px;
}

/* ドリンクログ一覧 */
.wf-drinklog { max-width: 800px; }
.wf-drinklog-title {
    font-size: 18px;
    font-weight: 700;
    color: var(--wf-gold, #8a5a12);
    margin-bottom: 16px;
}
.wf-drinklog-count {
    font-size: 13px;
    font-weight: 400;
    color: var(--wf-muted);
    margin-left: 8px;
}
.wf-drinklog-place {
    background: #fff;
    border: 1px solid var(--wf-line, rgba(120,80,20,.22));
    border-radius: 12px;
    margin-bottom: 14px;
    overflow: hidden;
}
.wf-drinklog-place-header {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    background: #f8f5f0;
    border-bottom: 1px solid var(--wf-line, rgba(120,80,20,.22));
}
.wf-drinklog-place-icon { font-size: 20px; }
.wf-drinklog-place-info { flex: 1; min-width: 0; }
.wf-drinklog-place-info strong { display: block; font-size: 14px; font-weight: 700; }
.wf-drinklog-place-info small { font-size: 11px; color: var(--wf-muted); }
.wf-drinklog-map-btn {
    font-size: 18px;
    text-decoration: none;
    opacity: .7;
    flex-shrink: 0;
}
.wf-drinklog-map-btn:hover { opacity: 1; }
.wf-drinklog-items { padding: 10px 16px; display: flex; flex-direction: column; gap: 8px; }
.wf-drinklog-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px;
    background: #faf8f5;
    border-radius: 8px;
}
.wf-drinklog-thumb {
    width: 40px;
    height: 52px;
    object-fit: contain;
    border-radius: 6px;
    flex-shrink: 0;
}
.wf-drinklog-noimg {
    width: 40px;
    height: 52px;
    background: #f0ece8;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    flex-shrink: 0;
}
.wf-drinklog-item-info { flex: 1; min-width: 0; }
.wf-drinklog-whisky { font-size: 13px; font-weight: 600; margin: 0 0 2px; }
.wf-drinklog-date   { font-size: 11px; color: var(--wf-muted); margin: 0; }
.wf-drinklog-memo   { font-size: 11px; color: var(--wf-sub); margin: 2px 0 0; }
.wf-drinklog-delete {
    background: transparent !important;
    border: 1px solid #ddd !important;
    border-radius: 50% !important;
    width: 24px !important;
    height: 24px !important;
    font-size: 11px !important;
    cursor: pointer !important;
    color: #999 !important;
    flex-shrink: 0;
    display: flex !important;
    align-items: center;
    justify-content: center;
    padding: 0 !important;
}
.wf-drinklog-delete:hover { border-color: #dc3232 !important; color: #dc3232 !important; }
.wf-drinklog-empty { color: var(--wf-muted); font-size: 14px; padding: 16px 0; }

/* ══════════════════════════════════════════════
 * v1.16: マイページ・飲酒ダイアリー
 * ══════════════════════════════════════════════ */
.wf-mypage-wrap { max-width: 720px; margin: 0 auto; }
.wf-mypage-card { margin-bottom: 20px; }

/* 4列統計 */
.wf-mypage-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
    margin-bottom: 18px;
}
@media (max-width: 480px) {
    .wf-mypage-stats { grid-template-columns: repeat(2, 1fr); }
}

/* 店舗：最新1件表示 */
.wf-visit-latest {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    padding: 6px 10px;
    background: #e8f5ee;
    border-radius: 8px;
    margin-bottom: 8px;
    flex-wrap: wrap;
}
.wf-visit-more { font-size: 11px; color: #4a9070; }
.wf-visit-more a { color: var(--wf-gold); }

/* ダイアリー */
.wf-diary {
    background: #fff8f0;
    border: 1px solid #FAC775;
    border-radius: 16px;
    padding: 20px;
    margin-bottom: 16px;
}
.wf-diary-title {
    font-size: 16px;
    font-weight: 700;
    color: var(--wf-auth-dark, #412402);
    margin: 0 0 14px;
}
.wf-diary-count {
    font-size: 13px;
    font-weight: 400;
    color: var(--wf-muted);
    margin-left: 8px;
}

/* 月別タブ */
.wf-diary-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-bottom: 16px;
    background: #f5ede0;
    border-radius: 10px;
    padding: 4px;
}
.wf-diary-tab-btn {
    background: transparent !important;
    border: none !important;
    border-radius: 7px !important;
    padding: 6px 12px !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    color: #854F0B !important;
    cursor: pointer !important;
    display: flex;
    align-items: center;
    gap: 4px;
}
.wf-diary-tab-btn.on {
    background: #fff !important;
    color: #412402 !important;
    box-shadow: 0 1px 4px rgba(100,60,10,.15) !important;
}
.wf-diary-tab-count {
    background: #EF9F27;
    color: #fff;
    border-radius: 999px;
    font-size: 10px;
    padding: 0 5px;
    font-weight: 700;
}
.wf-hidden { display: none !important; }

/* 日記エントリー */
.wf-diary-month { display: flex; flex-direction: column; gap: 10px; }
.wf-diary-entry {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 12px;
    background: #fff;
    border-radius: 10px;
    border: 1px solid #FAE5BE;
    transition: opacity .3s;
}
.wf-diary-date {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 38px;
    flex-shrink: 0;
}
.wf-diary-day  { font-size: 14px; font-weight: 700; color: #412402; }
.wf-diary-dow  { font-size: 10px; color: #854F0B; }
.wf-diary-content { flex: 1; min-width: 0; }
.wf-diary-whisky {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 6px;
}
.wf-diary-thumb {
    width: 36px;
    height: 46px;
    object-fit: contain;
    border-radius: 5px;
    flex-shrink: 0;
}
.wf-diary-whisky-name { font-size: 13px; font-weight: 700; margin: 0 0 2px; color: #412402; }
.wf-diary-category    { font-size: 11px; color: #854F0B; margin: 0; }
.wf-diary-place  { font-size: 12px; color: #633806; margin: 4px 0; }
.wf-diary-place a { color: #633806; }
.wf-diary-memo   { font-size: 12px; color: #666; margin: 4px 0 6px; font-style: italic; }
.wf-diary-delete {
    background: transparent !important;
    border: 1px solid #e8d5b0 !important;
    border-radius: 6px !important;
    font-size: 11px !important;
    color: #cca877 !important;
    cursor: pointer !important;
    padding: 3px 8px !important;
    margin-top: 4px;
}
.wf-diary-delete:hover { border-color: #dc3232 !important; color: #dc3232 !important; }

/* 銘柄・店舗タグリスト */
.wf-mypage-list-section {
    background: #fff8f0;
    border: 1px solid #FAC775;
    border-radius: 16px;
    padding: 20px;
    margin-bottom: 16px;
}
.wf-mypage-tag-list { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.wf-mypage-tag {
    display: inline-block;
    background: #fff;
    border: 1px solid #FAC775;
    border-radius: 999px;
    padding: 4px 12px;
    font-size: 12px;
    color: #412402;
}
.wf-mypage-tag--link {
    text-decoration: none !important;
    transition: background .15s;
}
.wf-mypage-tag--link:hover { background: #FAC775; }

/* ══════════════════════════════════════════════
 * N8: 原料・製法・樽フロント表示
 * ══════════════════════════════════════════════ */
.wf-detail-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin: 6px 0;
}
.wf-chip {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 600;
}
.wf-chip--ingredient { background: #e8f5e9; color: #2b7a3b; border: 1px solid #a5d6a7; }
.wf-chip--cask       { background: #fff3e0; color: #e65100; border: 1px solid #ffcc80; }
.wf-chip--process    { background: #e3f2fd; color: #1565c0; border: 1px solid #90caf9; }

/* ══════════════════════════════════════════════
 * F5: アコーディオンフィルター
 * ══════════════════════════════════════════════ */
/* ══════════════════════════════════════════════
 * F5: アコーディオンフィルター（デザイン刷新）
 * ══════════════════════════════════════════════ */
.wf-reset-all-tags {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-bottom: 10px;
    padding: 5px 14px !important;
    background: rgba(214,66,66,.08) !important;
    border: 1px solid rgba(214,66,66,.35) !important;
    border-radius: 999px !important;
    font-size: 12px !important;
    color: #c00 !important;
    cursor: pointer !important;
    font-weight: 600 !important;
    transition: background .15s;
}
.wf-reset-all-tags:hover {
    background: rgba(214,66,66,.16) !important;
}

/* アコーディオン外枠 */
.wf-accordion {
    border: 1px solid var(--wf-line);
    border-radius: 12px;
    overflow: hidden;
    margin-bottom: 6px;
    background: #fff;
    box-shadow: 0 1px 4px rgba(120,80,20,.08);
}

/* ヘッダー（クリック領域） */
.wf-acc-header {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    width: 100% !important;
    padding: 10px 14px !important;
    background: #fff !important;
    border: none !important;
    border-bottom: 1px solid var(--wf-line) !important;
    border-radius: 0 !important;
    cursor: pointer !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    color: var(--wf-brown, #633806) !important;
    text-align: left !important;
    transition: background .15s;
    gap: 8px;
}
.wf-accordion:not(.open) .wf-acc-header {
    border-bottom: none !important;
}
.wf-acc-header:hover {
    background: #fef9f0 !important;
    color: var(--wf-text) !important;
}
.wf-accordion.open .wf-acc-header {
    background: var(--wf-gold) !important;
    color: #fff !important;
}
.wf-accordion.open .wf-acc-header .wf-filter-label {
    color: #fff !important;
}
.wf-accordion.open .wf-acc-header .wf-acc-arrow {
    color: rgba(255,255,255,.8) !important;
}

/* 矢印 */
.wf-acc-arrow {
    font-size: 11px;
    color: var(--wf-muted);
    flex-shrink: 0;
    transition: transform .2s;
}

/* 選択中タグのインジケーター */
.wf-acc-active {
    font-size: 11px;
    font-weight: 600;
    color: var(--wf-gold2);
    margin-left: 6px;
    background: rgba(184,131,36,.12);
    padding: 1px 7px;
    border-radius: 999px;
}
.wf-accordion.open .wf-acc-active {
    color: rgba(255,255,255,.9);
    background: rgba(255,255,255,.2);
}

/* ボディ（タグボタン群） */
.wf-acc-body {
    display: none;
    padding: 10px 12px 12px;
    background: rgba(255,252,245,.9);
    border-top: 1px solid var(--wf-line);
}
.wf-accordion.open .wf-acc-body {
    display: block;
}

/* フィルターボタン（アコーディオン内）のデザイン統一 */
.wf-accordion .wf-filter button {
    border: 1px solid var(--wf-line2) !important;
    background: rgba(255,255,255,.7) !important;
    color: var(--wf-sub) !important;
    font-size: 13px !important;
    padding: 5px 12px !important;
    border-radius: 999px !important;
    cursor: pointer !important;
    transition: background .12s, border-color .12s, color .12s;
    white-space: nowrap;
}
.wf-accordion .wf-filter button:hover {
    background: rgba(184,131,36,.12) !important;
    border-color: var(--wf-gold2) !important;
    color: var(--wf-gold) !important;
}
.wf-accordion .wf-filter button.on {
    background: var(--wf-gold) !important;
    border-color: var(--wf-gold) !important;
    color: #fff !important;
    font-weight: 700 !important;
}

/* ── フィルター件数バッジ ── */
.wf-filter-count-badge {
    display: flex;
    align-items: baseline;
    gap: 5px;
    margin-bottom: 10px;
    padding: 8px 16px;
    background: linear-gradient(135deg, var(--wf-gold) 0%, var(--wf-gold2) 100%);
    border-radius: 10px;
    color: #fff;
}
.wf-filter-count-num {
    font-size: 26px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: -.02em;
}
.wf-filter-count-label {
    font-size: 14px;
    font-weight: 700;
}
.wf-filter-count-of {
    font-size: 12px;
    opacity: .75;
    margin-left: 2px;
}

/* ── 店名インクリメンタル検索 ── */
.wf-place-search {
    flex: 1;
    min-width: 0;
    padding: 8px 12px !important;
    border: 1.5px solid #9FE1CB !important;
    border-radius: 8px !important;
    font-size: 13px !important;
    background: #fff !important;
    color: #085041 !important;
}
.wf-place-search:focus {
    border-color: #0F6E56 !important;
    outline: none !important;
}
.wf-visit-add-row {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 8px;
}

/* ── 飲める店ヘッダー横並び ── */
.wf-place-list-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 8px;
}
.wf-place-list-header h4 { margin: 0; }

/* 小さいボタン版 */
.wf-submit-place-btn--small {
    font-size: 11px !important;
    padding: 4px 10px !important;
}

/* マイページ銘柄リンク */
.wf-diary-whisky-link {
    color: var(--wf-auth-dark, #412402) !important;
    text-decoration: none !important;
    border-bottom: 1px solid var(--wf-auth-light, #FAC775);
}
.wf-diary-whisky-link:hover {
    color: var(--wf-auth-amber, #BA7517) !important;
    border-bottom-color: var(--wf-auth-amber, #BA7517);
}

/* ══════════════════════════════════════════════
 * 店舗マップ [whisky_places_map]
 * ══════════════════════════════════════════════ */
.wf-places-map-wrap { max-width: 900px; margin: 0 auto; }

/* 業態フィルター */
.wf-map-type-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 10px;
}
.wf-map-type-btn {
    background: #fff !important;
    border: 1.5px solid #d0c8b8 !important;
    border-radius: 999px !important;
    padding: 5px 14px !important;
    font-size: 13px !important;
    color: #6b5b3e !important;
    cursor: pointer !important;
    transition: all .15s;
}
.wf-map-type-btn:hover {
    border-color: var(--wf-gold, #8a5a12) !important;
    color: var(--wf-gold, #8a5a12) !important;
}
.wf-map-type-btn.on {
    background: var(--wf-gold, #8a5a12) !important;
    border-color: var(--wf-gold, #8a5a12) !important;
    color: #fff !important;
    font-weight: 700 !important;
}

/* 件数 */
.wf-map-count {
    font-size: 13px;
    color: var(--wf-muted, #806034);
    margin-bottom: 8px;
}

/* Leaflet地図 */
.wf-leaflet-map {
    height: 420px;
    border-radius: 14px;
    overflow: hidden;
    border: 1px solid var(--wf-line);
    margin-bottom: 14px;
    z-index: 0;
}
@media (max-width: 600px) {
    .wf-leaflet-map { height: 300px; }
}

/* 店舗リスト */
.wf-map-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 8px;
}
.wf-map-list-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    background: #fff;
    border: 1px solid var(--wf-line, rgba(120,80,20,.22));
    border-radius: 10px;
    text-decoration: none !important;
    cursor: pointer;
    transition: box-shadow .15s, border-color .15s;
}
.wf-map-list-item:hover {
    border-color: var(--wf-gold, #8a5a12) !important;
    box-shadow: 0 2px 8px rgba(120,80,20,.12);
}
.wf-map-list-icon {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    flex-shrink: 0;
    color: #fff;
}
.wf-map-list-name {
    font-size: 13px;
    font-weight: 700;
    color: var(--wf-text, #1e1405);
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.wf-map-list-addr {
    font-size: 11px;
    color: var(--wf-muted, #806034);
    display: none;
}

/* 飲んだ記録あり店舗のマーク */
.wf-place-chip--visited {
    border-color: #0F6E56 !important;
    background: #e8f5ee !important;
    color: #085041 !important;
}
.wf-visited-mark {
    font-size: 10px;
    margin-left: 3px;
}

/* ── マップピンのLeafletデフォルトリセット ── */
.wf-map-pin {
    background: transparent !important;
    border: none !important;
}
.leaflet-popup-content {
    margin: 10px 14px !important;
    font-size: 13px !important;
    line-height: 1.5 !important;
}
.leaflet-popup-content p {
    margin: 0 0 4px !important;
}

/* 製法チップ（参考価格の下） */
.wf-process-chips {
    margin: 6px 0 10px;
}

/* ══════════════════════════════════════════════
 * F3: 五大ウイスキー解説・用語集 [whisky_guide]
 * ══════════════════════════════════════════════ */
.wf-guide { max-width: 900px; margin: 0 auto; }
.wf-guide-section { margin-bottom: 40px; }
.wf-guide-h2 {
    font-size: 22px;
    font-weight: 800;
    color: var(--wf-auth-dark, #412402);
    border-bottom: 3px solid var(--wf-gold, #8a5a12);
    padding-bottom: 8px;
    margin-bottom: 12px;
}
.wf-guide-lead {
    font-size: 14px;
    color: var(--wf-sub);
    margin-bottom: 20px;
    line-height: 1.7;
}

/* 産地カード */
.wf-guide-regions { display: flex; flex-direction: column; gap: 20px; }
.wf-guide-region {
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(0,0,0,.08);
    border: 1px solid rgba(0,0,0,.06);
}
.wf-guide-region-header {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 20px;
    color: #fff;
}
.wf-guide-flag { font-size: 32px; flex-shrink: 0; }
.wf-guide-region-name {
    font-size: 18px;
    font-weight: 800;
    margin: 0 0 2px;
    color: #fff;
}
.wf-guide-region-sub {
    font-size: 12px;
    opacity: .85;
    margin: 0;
    color: #fff;
}
.wf-guide-region-body { padding: 16px 20px 20px; background: #fff; }
.wf-guide-region-desc {
    font-size: 14px;
    line-height: 1.8;
    color: var(--wf-text);
    margin-bottom: 14px;
}
.wf-guide-two-col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}
@media (max-width: 600px) {
    .wf-guide-two-col { grid-template-columns: 1fr; }
}
.wf-guide-h4 {
    font-size: 13px;
    font-weight: 700;
    color: var(--wf-sub);
    margin: 0 0 8px;
    text-transform: uppercase;
    letter-spacing: .05em;
}
.wf-guide-list {
    margin: 0;
    padding-left: 18px;
    font-size: 13px;
    line-height: 1.8;
    color: var(--wf-text);
}
.wf-guide-list li { margin-bottom: 2px; }

/* 用語集 */
.wf-glossary {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}
@media (max-width: 640px) {
    .wf-glossary { grid-template-columns: 1fr; }
}
.wf-glossary-item {
    background: #fff;
    border: 1px solid var(--wf-line);
    border-radius: 10px;
    padding: 12px 14px;
}
.wf-glossary-term {
    font-size: 15px;
    font-weight: 700;
    color: var(--wf-auth-dark, #412402);
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin-bottom: 6px;
}
.wf-glossary-en {
    font-size: 11px;
    font-weight: 400;
    color: var(--wf-muted);
    font-style: italic;
}
.wf-glossary-desc {
    font-size: 13px;
    line-height: 1.7;
    color: var(--wf-sub);
    margin: 0;
}

/* お店検索カスタムドロップダウン */
.wf-place-autocomplete { position: relative; flex: 1; }
.wf-place-dropdown .wf-place-option:hover,
.wf-place-dropdown .wf-place-option:focus {
    background: #f5f0e8 !important;
}
.wf-place-dropdown .wf-place-option:last-child {
    border-bottom: none !important;
}

/* Yahoo!購入ボタン */
.wf-buy-yahoo {
    background: linear-gradient(135deg, #ff0033 0%, #cc0033 100%) !important;
    color: #fff !important;
}
.wf-buy-yahoo:hover { opacity: .85; }

/* PR表記 */
.wf-buy-pr-note {
    font-size: 10px;
    color: var(--wf-muted);
    margin: 4px 0 0;
    text-align: right;
}

/* ===== 飲んだお店 候補ドロップダウン ===== */
#wf-global-place-dropdown .wf-gdd-opt {
    position: relative;
}
#wf-global-place-dropdown .wf-gdd-opt:last-child {
    border-bottom: none;
}
#wf-global-place-dropdown .wf-gdd-opt:hover,
#wf-global-place-dropdown .wf-gdd-opt.is-active {
    background: #f7f1e6;
}
#wf-global-place-dropdown .wf-gdd-opt:hover::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: #c9a96e;
}

/* ===== 種別タブ（ウイスキー/ジン/ブランデー等） ===== */
.wf-type-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 10px 0 4px;
    padding-bottom: 8px;
    border-bottom: 2px solid #ece3d3;
}
.wf-type-tabs button {
    padding: 7px 14px;
    border: 1.5px solid #d8c9ad;
    background: #fff;
    color: #6b4c1e;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: all .15s;
    white-space: nowrap;
}
.wf-type-tabs button:hover { background: #f7f1e6; }
.wf-type-tabs button.on {
    background: #6b4c1e;
    border-color: #6b4c1e;
    color: #fff;
}

/* ===== お店ガイド お気に入りボタン ===== */
.wf-map-list-row {
    display: flex;
    align-items: stretch;
    gap: 4px;
}
.wf-map-list-row .wf-map-list-item { flex: 1; min-width: 0; }
.wf-fav-place-btn {
    flex: 0 0 auto;
    width: 44px;
    border: none;
    background: transparent;
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
    border-radius: 8px;
    transition: transform .12s, background .12s;
}
.wf-fav-place-btn:hover { background: #f7f1e6; transform: scale(1.1); }
.wf-fav-place-btn.on { filter: drop-shadow(0 1px 2px rgba(200,150,30,.5)); }

/* Googleマップリンクボタン（♡の左隣） */
.wf-map-gmap-btn {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    font-size: 20px;
    line-height: 1;
    text-decoration: none !important;
    border-radius: 8px;
    transition: transform .12s, background .12s;
}
.wf-map-gmap-btn:hover { background: #eaf4ef; transform: scale(1.1); }
.wf-map-list-item--nopin { cursor: default; opacity: .72; }

/* 図鑑タブを最上部の主ナビとして強調 */
.wf-type-tabs--primary {
    margin: 0 0 14px;
    padding: 4px;
    gap: 4px;
    background: #f7f1e6;
    border: 1.5px solid #e3d6bd;
    border-radius: 12px;
    border-bottom: 1.5px solid #e3d6bd;
}
.wf-type-tabs--primary button {
    flex: 1 1 auto;
    justify-content: center;
    text-align: center;
    padding: 9px 12px;
    font-size: 14px;
    border-color: transparent;
    background: transparent;
}
.wf-type-tabs--primary button:hover { background: #fff; }
.wf-type-tabs--primary button.on {
    background: #6b4c1e;
    border-color: #6b4c1e;
    color: #fff;
    box-shadow: 0 2px 6px rgba(74,52,20,.25);
}

/* ===== カルーセル（おすすめ・新着） ===== */
 * ══════════════════════════════════════════════ */
.wf-carousel-wrap {
    margin-bottom: 16px;
    overflow: hidden;
}
.wf-carousel-section {
    margin-bottom: 0;
}
.wf-carousel-track {
    display: flex;
    flex-wrap: nowrap;
    width: auto;
    padding-bottom: 4px;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    cursor: grab;
    touch-action: pan-x;
}
.wf-carousel-track::-webkit-scrollbar { display: none; }
.wf-carousel-track:active { cursor: grabbing; }

.wf-carousel-card {
    flex: 0 0 104px;
    margin-right: 12px;
    background: #fff;
    border: 1px solid var(--wf-line);
    border-radius: 12px;
    padding: 10px 8px;
    text-align: center;
    transition: box-shadow .15s, transform .15s;
}
.wf-carousel-card:hover {
    box-shadow: 0 4px 14px rgba(120,80,20,.15);
    transform: translateY(-2px);
    border-color: var(--wf-gold);
}
.wf-carousel-thumb {
    width: 100%;
    height: 132px;
    margin: 0 auto 6px;
    border-radius: 8px;
    overflow: hidden;
    background: #f5f0e8;
    display: flex;
    align-items: center;
    justify-content: center;
}
.wf-carousel-thumb img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.wf-carousel-noimg {
    font-size: 32px;
}
.wf-carousel-name {
    font-size: 11px;
    font-weight: 600;
    color: var(--wf-text);
    margin: 0 0 3px;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.wf-carousel-price {
    font-size: 11px;
    color: var(--wf-gold);
    font-weight: 700;
    margin: 0;
}

/* ===== 銘柄共有・リンクコピー ボタン ===== */
.wf-share-wrap { margin-top: 12px; }
.wf-share-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: 100%;
    min-height: 44px;
    padding: 10px 16px;
    border: 1.5px solid var(--wf-gold, #8a5a12);
    border-radius: 12px;
    background: #fff;
    color: var(--wf-gold, #8a5a12);
    font-weight: 700;
    font-size: 14px;
    cursor: pointer;
    transition: background .15s, transform .1s;
}
.wf-share-btn:hover { background: #f7f1e6; }
.wf-share-btn:active { transform: scale(.98); }
.wf-share-btn.done {
    background: #e8f5e9;
    border-color: #4caf50;
    color: #2e7d32;
}

/* ═══════════════════════════════════════════════
 * カラーデザイン引き締め（くっきり・ボタン再考）
 * ═══════════════════════════════════════════════ */
.wf-app {
    --wf-line:  rgba(120,80,20,.34);
    --wf-line2: rgba(120,80,20,.52);
    --wf-muted: #6e4f26;
    --wf-gold:  #9a5f0f;
    --wf-gold2: #b8791c;
    --wf-shadow: 0 12px 30px rgba(90,60,20,.16);
}
/* シェルの縁と影をはっきり */
.wf-app .wf-shell {
    border-color: rgba(120,80,20,.28);
}
/* タブ・フィルターボタンを不透明でくっきり */
.wf-app .wf-tabs button,
.wf-app .wf-filter button {
    background: #fff;
    border-color: var(--wf-line2);
    box-shadow: 0 1px 2px rgba(90,60,20,.08);
}
.wf-app .wf-tabs button:hover,
.wf-app .wf-filter button:hover {
    border-color: var(--wf-gold);
    color: var(--wf-gold);
}
.wf-app .wf-tabs button.on {
    background: var(--wf-gold);
    border-color: var(--wf-gold);
    color: #fff;
    box-shadow: 0 2px 8px rgba(154,95,15,.34);
}
.wf-app .wf-filter button.on {
    background: #1e6aa8;
    border-color: #1e6aa8;
    color: #fff;
    box-shadow: 0 2px 8px rgba(30,106,168,.32);
}
/* 種別（図鑑）主タブをよりはっきり */
.wf-app .wf-type-tabs--primary {
    background: #f1e3c8;
    border-color: #d8c093;
}
.wf-app .wf-type-tabs--primary button.on {
    box-shadow: 0 3px 10px rgba(107,76,30,.34);
}
/* カードの縁・影を明確化 */
.wf-app .wf-card {
    border-color: rgba(120,80,20,.3);
    box-shadow: 0 3px 12px rgba(100,60,10,.1);
}
/* サブバッジ/タグ/空表示を不透明に */
.wf-app .wf-subbadge,
.wf-app .wf-tag-mini { background: #fff; }
.wf-app .wf-empty,
.wf-app .wf-log { background: #fff; }
/* お気に入り♥をはっきり */
.wf-app .wf-fav {
    border-color: var(--wf-line2) !important;
    color: #b08a5a !important;
}
/* 共有ボタンをより主張 */
.wf-app .wf-share-btn {
    border-width: 2px;
    box-shadow: 0 2px 8px rgba(154,95,15,.16);
}
/* カルーセルカードの縁を明確化 */
.wf-app .wf-carousel-card { border-color: rgba(120,80,20,.3); }

/* ═══════════════ ウイスキーおみくじ ═══════════════ */
.wf-omikuji-bar { display: flex; justify-content: center; align-items: center; gap: 10px; flex-wrap: wrap; margin: 0 0 14px; }
.wf-app .wf-kentei-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 11px 22px;
    border: none;
    border-radius: 999px;
    background: linear-gradient(135deg, #6b4c1e 0%, #96652a 100%);
    color: #fff !important;
    font-weight: 800;
    font-size: 14px;
    text-decoration: none !important;
    cursor: pointer;
    box-shadow: 0 4px 14px rgba(107,76,30,.34);
    transition: transform .12s, box-shadow .12s;
}
.wf-app .wf-kentei-btn:hover { transform: translateY(-1px); box-shadow: 0 6px 18px rgba(107,76,30,.42); }
.wf-app .wf-kentei-btn:active { transform: scale(.97); }
.wf-app .wf-omikuji-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 11px 22px;
    border: none;
    border-radius: 999px;
    background: linear-gradient(135deg, #9a5f0f 0%, #c88a1e 100%);
    color: #fff;
    font-weight: 800;
    font-size: 14px;
    cursor: pointer;
    box-shadow: 0 4px 14px rgba(154,95,15,.34);
    transition: transform .12s, box-shadow .12s;
}
.wf-app .wf-omikuji-btn:hover { transform: translateY(-1px); box-shadow: 0 6px 18px rgba(154,95,15,.42); }
.wf-app .wf-omikuji-btn:active { transform: scale(.97); }

.wf-omikuji-overlay {
    position: fixed;
    inset: 0;
    z-index: 100000;
    background: rgba(40,25,5,.55);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    animation: wf-omikuji-fade .2s ease;
}
@keyframes wf-omikuji-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes wf-omikuji-pop { from { transform: scale(.9); opacity: 0; } to { transform: scale(1); opacity: 1; } }
.wf-omikuji-modal {
    position: relative;
    width: 100%;
    max-width: 360px;
    background: linear-gradient(180deg, #fffdf7 0%, #fbf3e2 100%);
    border: 2px solid #d8c093;
    border-radius: 20px;
    padding: 22px 20px 20px;
    text-align: center;
    box-shadow: 0 20px 50px rgba(40,25,5,.4);
    animation: wf-omikuji-pop .22s ease;
}
.wf-omikuji-close {
    position: absolute; top: 10px; right: 12px;
    border: none; background: none; cursor: pointer;
    font-size: 18px; color: #9a7a4a; line-height: 1;
}
.wf-omikuji-head { font-size: 13px; font-weight: 700; color: #9a5f0f; letter-spacing: .05em; }
.wf-omikuji-rank {
    font-size: 52px; font-weight: 900; line-height: 1.1;
    margin: 6px 0 4px; letter-spacing: .06em;
    text-shadow: 0 2px 6px rgba(0,0,0,.12);
}
.wf-omikuji-msg { font-size: 14px; color: #5f421c; margin: 0 0 14px; line-height: 1.6; }
.wf-omikuji-card {
    display: flex; align-items: center; gap: 12px;
    background: #fff; border: 1px solid rgba(120,80,20,.28);
    border-radius: 14px; padding: 12px; text-align: left; margin-bottom: 16px;
}
.wf-omikuji-thumb {
    flex: 0 0 64px; width: 64px; height: 80px;
    border-radius: 8px; overflow: hidden; background: #f5f0e8;
    display: flex; align-items: center; justify-content: center; font-size: 30px;
}
.wf-omikuji-thumb img { width: 100%; height: 100%; object-fit: contain; }
.wf-omikuji-info { min-width: 0; }
.wf-omikuji-name { font-size: 16px; font-weight: 800; color: #1e1405; }
.wf-omikuji-en { font-size: 12px; color: #9a6820; font-style: italic; }
.wf-omikuji-meta { font-size: 12px; color: #6e4f26; margin-top: 3px; }
.wf-app .wf-omikuji-actions { display: flex; gap: 8px; }
.wf-app .wf-omikuji-actions button {
    flex: 1; min-height: 44px; border-radius: 12px; font-weight: 700; font-size: 14px; cursor: pointer;
    border: 1.5px solid #a8630c;
}
.wf-app .wf-omikuji-open { background: #a8630c !important; color: #fff !important; }
.wf-app .wf-omikuji-open:hover { background: #8f520a !important; }
.wf-app .wf-omikuji-again { background: #fff !important; color: #a8630c !important; }
.wf-app .wf-omikuji-again:hover { background: #f7f1e6 !important; }

/* ═══════════════════════════════════════════════
 * メリハリ強化（全体コントラスト UP）
 * ═══════════════════════════════════════════════ */
.wf-app {
    --wf-bg:    #efe1c4;   /* シェル背景を少し深く → 白カードが映える */
    --wf-card:  #ffffff;   /* カードは純白でくっきり */
    --wf-card2: #fffdf8;
    --wf-text:  #17100a;
    --wf-gold:  #a8630c;   /* アクセントをより鮮明に */
    --wf-gold2: #c8891e;
    --wf-line:  rgba(120,80,20,.36);
    --wf-line2: rgba(120,80,20,.55);
    --wf-shadow: 0 14px 34px rgba(80,50,15,.2);
}
/* シェル：背景を深めて中身を浮かせる */
.wf-app .wf-shell {
    background: linear-gradient(180deg, #f6ead2 0%, #ecd9ba 100%);
    border-color: rgba(120,80,20,.34);
}
/* カード：純白＋明確な影で分離感 */
.wf-app .wf-card {
    background: #fff;
    border-color: rgba(120,80,20,.34);
    box-shadow: 0 4px 16px rgba(90,55,10,.14);
}
.wf-app .wf-card:hover { box-shadow: 0 6px 22px rgba(90,55,10,.2); }
.wf-app .wf-card h3 { color: #140d06; font-weight: 800; }
/* カテゴリバッジをくっきり */
.wf-app .wf-badge { box-shadow: 0 1px 4px rgba(0,0,0,.18); }
/* 詳細見出し・区切りを強調 */
.wf-app .wf-detail { background: #fffdf8; }
.wf-app .wf-detail h4 {
    color: #a8630c;
    border-left: 3px solid #c8891e;
    padding-left: 8px;
}
/* 選択タブのコントラスト強化 */
.wf-app .wf-tabs button.on {
    background: #a8630c;
    border-color: #a8630c;
    box-shadow: 0 3px 10px rgba(168,99,12,.38);
}
.wf-app .wf-type-tabs--primary {
    background: #ecd9b6;
    border-color: #d2b785;
}
.wf-app .wf-type-tabs--primary button.on {
    background: #6b4c1e;
    border-color: #6b4c1e;
    box-shadow: 0 3px 10px rgba(107,76,30,.4);
}
/* 参考価格・強調テキストを鮮明に */
.wf-app .wf-side strong,
.wf-app .wf-ref-price strong { color: #a8630c; }
/* 見出しの下線アクセント */
.wf-app .wf-carousel-card { border-color: rgba(120,80,20,.32); }

/* ═══════════ おみくじ 開封ランダムギミック ═══════════ */
.wf-omikuji-overlay { perspective: 1000px; }
.wf-omikuji-modal.wf-gk-flip  { animation: wf-gk-flip  .55s cubic-bezier(.2,.8,.2,1) both; }
.wf-omikuji-modal.wf-gk-zoom  { animation: wf-gk-zoom  .45s cubic-bezier(.2,.9,.2,1) both; }
.wf-omikuji-modal.wf-gk-spin  { animation: wf-gk-spin  .6s  cubic-bezier(.2,.8,.2,1) both; }
.wf-omikuji-modal.wf-gk-rotx  { animation: wf-gk-rotx  .55s cubic-bezier(.2,.8,.2,1) both; }
.wf-omikuji-modal.wf-gk-slide { animation: wf-gk-slide .5s  cubic-bezier(.2,.9,.2,1) both; }
.wf-omikuji-modal.wf-gk-swing { animation: wf-gk-swing .7s  cubic-bezier(.36,.07,.19,.97) both; transform-origin: top center; }

@keyframes wf-gk-flip {
    from { opacity: 0; transform: rotateY(90deg) scale(.9); }
    to   { opacity: 1; transform: rotateY(0) scale(1); }
}
@keyframes wf-gk-zoom {
    0%   { opacity: 0; transform: scale(.25); }
    70%  { opacity: 1; transform: scale(1.06); }
    100% { transform: scale(1); }
}
@keyframes wf-gk-spin {
    from { opacity: 0; transform: rotate(-25deg) scale(.5); }
    to   { opacity: 1; transform: rotate(0) scale(1); }
}
@keyframes wf-gk-rotx {
    from { opacity: 0; transform: rotateX(90deg) scale(.95); }
    to   { opacity: 1; transform: rotateX(0) scale(1); }
}
@keyframes wf-gk-slide {
    from { opacity: 0; transform: translateY(70px) scale(.96); }
    to   { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes wf-gk-swing {
    0%   { opacity: 0; transform: rotate(10deg); }
    30%  { opacity: 1; transform: rotate(-8deg); }
    55%  { transform: rotate(5deg); }
    75%  { transform: rotate(-3deg); }
    100% { transform: rotate(0); }
}

/* ═══════════════ ウイスキー用語辞典 ═══════════════ */
.wf-glossary-app { max-width: 860px; margin: 0 auto; }
.wf-gloss-head { text-align: center; margin-bottom: 16px; }
.wf-gloss-title { font-size: 22px; font-weight: 800; color: #140d06; margin: 0 0 6px; }
.wf-gloss-lead { font-size: 13px; color: #6e4f26; line-height: 1.7; margin: 0; }
.wf-app .wf-gloss-search {
    width: 100%;
    padding: 12px 16px;
    font-size: 15px;
    border: 2px solid var(--wf-line2, rgba(120,80,20,.5));
    border-radius: 12px;
    background: #fff;
    color: #1e1405;
    margin-bottom: 12px;
    outline: none;
}
.wf-app .wf-gloss-search:focus { border-color: #a8630c; box-shadow: 0 0 0 3px rgba(168,99,12,.14); }
.wf-gloss-cats { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 10px; }
.wf-app .wf-gloss-cat {
    padding: 6px 14px;
    font-size: 13px;
    font-weight: 700;
    border: 1.5px solid var(--wf-line2, rgba(120,80,20,.5));
    border-radius: 999px;
    background: #fff;
    color: #6e4f26;
    cursor: pointer;
    transition: all .14s;
}
.wf-app .wf-gloss-cat:hover { border-color: #a8630c; color: #a8630c; }
.wf-app .wf-gloss-cat.on {
    background: #a8630c;
    border-color: #a8630c;
    color: #fff;
    box-shadow: 0 2px 8px rgba(168,99,12,.32);
}
.wf-gloss-count { font-size: 12px; color: #806034; margin-bottom: 12px; font-weight: 700; }
.wf-gloss-list { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 640px) { .wf-gloss-list { grid-template-columns: 1fr; } }
.wf-gloss-item {
    background: #fff;
    border: 1px solid rgba(120,80,20,.3);
    border-left: 4px solid #c8891e;
    border-radius: 12px;
    padding: 14px 16px;
    box-shadow: 0 2px 8px rgba(100,60,10,.08);
}
.wf-gloss-item-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.wf-gloss-term { font-size: 16px; font-weight: 800; color: #140d06; }
.wf-gloss-badge {
    flex: 0 0 auto;
    font-size: 11px; font-weight: 700;
    color: #9a5f0f; background: #f6ecd8;
    border-radius: 999px; padding: 2px 9px;
}
.wf-gloss-en { display: block; font-size: 12px; color: #9a6820; font-style: italic; margin-top: 2px; }
.wf-gloss-desc { font-size: 13px; color: #4a3618; line-height: 1.65; margin: 8px 0 0; }
.wf-gloss-empty { grid-column: 1 / -1; text-align: center; color: #806034; padding: 30px; font-size: 14px; }

/* ═══════════════ ウイスキー検定 ═══════════════ */
.wf-quiz-app { max-width: 720px; margin: 0 auto; }
.wf-quiz-hero { text-align: center; margin-bottom: 18px; }
.wf-app .wf-quiz-hero h2 { font-size: 24px; font-weight: 800; color: #fff !important; margin: 0 0 6px; text-shadow: 0 1px 3px rgba(0,0,0,.3); }
.wf-quiz-hero p { font-size: 13px; color: #6e4f26; margin: 0; }
.wf-quiz-levels { display: grid; gap: 12px; }
.wf-app .wf-quiz-level {
    display: flex; flex-direction: row; align-items: center; gap: 14px;
    background: #fff; border: 1.5px solid rgba(120,80,20,.34);
    border-left: 5px solid #a8630c; border-radius: 14px;
    padding: 14px 16px; cursor: pointer; text-align: left;
    box-shadow: 0 3px 12px rgba(100,60,10,.1); transition: transform .12s, box-shadow .12s;
}
.wf-app .wf-quiz-level:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(100,60,10,.16); }
.wf-app .wf-quiz-level:disabled { opacity: .5; cursor: not-allowed; }
.wf-quiz-level-emoji { font-size: 30px; flex: 0 0 auto; line-height: 1; }
.wf-quiz-level-main { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; }
.wf-quiz-level-name { font-size: 19px; font-weight: 800; color: #140d06; }
.wf-quiz-level-meta { font-size: 12px; color: #806034; margin-top: 3px; }
.wf-quiz-level-right { flex: 0 0 auto; display: flex; flex-direction: column; align-items: flex-end; text-align: right; }
.wf-quiz-level-best { font-size: 14px; font-weight: 800; color: #a8630c; }
.wf-quiz-level-count { font-size: 11px; color: #806034; margin-top: 2px; }
.wf-quiz-level-go { font-size: 13px; font-weight: 700; color: #a8630c; }
.wf-quiz-home-actions { display: flex; gap: 10px; justify-content: center; margin-top: 18px; flex-wrap: wrap; }

.wf-app .wf-quiz-btn {
    display: inline-flex; align-items: center; justify-content: center;
    min-height: 44px; padding: 10px 20px; border-radius: 12px; font-weight: 700; font-size: 14px;
    cursor: pointer; border: 1.5px solid #a8630c; background: #fff; color: #a8630c; text-decoration: none;
}
.wf-app .wf-quiz-btn:hover { background: #f7f1e6; }
.wf-app .wf-quiz-btn.primary { background: #a8630c; color: #fff; }
.wf-app .wf-quiz-btn.primary:hover { background: #8f520a; }
.wf-app .wf-quiz-btn.ghost { border-color: rgba(120,80,20,.4); color: #6e4f26; }

.wf-quiz-topbar { display: flex; justify-content: space-between; font-weight: 700; color: #6e4f26; font-size: 14px; margin-bottom: 8px; }
.wf-quiz-progress { height: 8px; background: #eaddc2; border-radius: 99px; overflow: hidden; margin-bottom: 18px; }
.wf-quiz-progress-bar { height: 100%; background: linear-gradient(90deg, #c8891e, #a8630c); transition: width .3s; }
.wf-quiz-q { font-size: 18px; font-weight: 700; color: #140d06; line-height: 1.6; margin-bottom: 18px; }
.wf-quiz-choices { display: grid; gap: 10px; }
.wf-app .wf-quiz-choice {
    text-align: left; background: #fff; border: 1.5px solid rgba(120,80,20,.34);
    border-radius: 12px; padding: 14px 16px; font-size: 15px; color: #1e1405; cursor: pointer;
    transition: all .12s;
}
.wf-app .wf-quiz-choice:hover { border-color: #a8630c; background: #fbf3e2; transform: translateX(2px); }

.wf-quiz-score { text-align: center; border-radius: 16px; padding: 22px; color: #fff; margin-bottom: 16px; }
.wf-quiz-score.pass { background: linear-gradient(135deg, #2e9e5b, #1f7d45); }
.wf-quiz-score.fail { background: linear-gradient(135deg, #b8763a, #8a5320); }
.wf-quiz-score-badge { font-size: 20px; font-weight: 800; }
.wf-quiz-score-pct { font-size: 52px; font-weight: 900; line-height: 1.1; }
.wf-quiz-score-sub { font-size: 13px; opacity: .95; }
.wf-quiz-cta { background: #fffdf8; border: 1.5px dashed #c8891e; border-radius: 14px; padding: 16px; text-align: center; margin-bottom: 16px; }
.wf-quiz-cta strong { font-size: 16px; color: #a8630c; }
.wf-quiz-cta p { font-size: 13px; color: #6e4f26; margin: 6px 0 12px; }
.wf-quiz-cta.ok { border-style: solid; border-color: #2e9e5b; }
.wf-quiz-cta.ok a { color: #1f7d45; font-weight: 700; }
.wf-quiz-actions { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; margin-bottom: 20px; }
.wf-quiz-rv-title { font-size: 16px; color: #140d06; border-left: 3px solid #c8891e; padding-left: 8px; margin: 18px 0 12px; }
.wf-quiz-rv-item { background: #fff; border: 1px solid rgba(120,80,20,.28); border-radius: 12px; padding: 14px; margin-bottom: 10px; }
.wf-quiz-rv-q { font-weight: 700; color: #140d06; margin-bottom: 8px; line-height: 1.5; }
.wf-quiz-rv-opts { list-style: none; padding: 0; margin: 0 0 8px; display: grid; gap: 5px; }
.wf-quiz-rv-opt { font-size: 13px; padding: 6px 10px; border-radius: 8px; background: #f5f0e8; color: #4a3618; }
.wf-quiz-rv-opt.correct { background: #dff2e5; color: #1f7d45; font-weight: 700; }
.wf-quiz-rv-opt.wrong { background: #fbe0e0; color: #b83030; text-decoration: line-through; }
.wf-quiz-rv-exp { font-size: 12.5px; color: #6e4f26; background: #fbf3e2; border-radius: 8px; padding: 8px 10px; line-height: 1.6; }

.wf-quiz-ranking h2 { font-size: 22px; font-weight: 800; color: #140d06; text-align: center; }
.wf-quiz-rk-note { font-size: 12px; color: #806034; text-align: center; margin-bottom: 14px; }
.wf-quiz-rk-table { width: 100%; border-collapse: collapse; background: #fff; border-radius: 12px; overflow: hidden; box-shadow: 0 3px 12px rgba(100,60,10,.1); }
.wf-quiz-rk-table th { background: #a8630c; color: #fff; font-size: 12px; padding: 10px; text-align: left; }
.wf-quiz-rk-table td { padding: 10px; border-bottom: 1px solid rgba(120,80,20,.18); font-size: 14px; }
.wf-quiz-rk-rank { font-weight: 800; width: 56px; }
.wf-quiz-rk-pts { font-weight: 700; color: #a8630c; }
.wf-quiz-rk-me { text-align: center; margin: 14px 0; font-weight: 700; color: #a8630c; background: #fbf3e2; border-radius: 10px; padding: 10px; }
.wf-quiz-loading { text-align: center; padding: 40px; color: #806034; }

/* 検定：選択状態・ナビゲーション */
.wf-quiz-choice { display: flex; align-items: center; gap: 10px; }
.wf-quiz-choice-mark { color: #b89a6a; font-size: 15px; flex: 0 0 auto; }
.wf-app .wf-quiz-choice.selected {
    border-color: #a8630c;
    background: #fbeecf;
    box-shadow: 0 2px 10px rgba(168,99,12,.22);
    font-weight: 700;
}
.wf-app .wf-quiz-choice.selected .wf-quiz-choice-mark { color: #a8630c; }
.wf-quiz-nav { display: flex; justify-content: space-between; gap: 10px; margin-top: 18px; }
.wf-quiz-nav .wf-quiz-btn { min-width: 120px; }
.wf-app .wf-quiz-btn:disabled { opacity: .45; cursor: not-allowed; }
.wf-app .wf-quiz-btn:disabled:hover { background: #fff; }
.wf-app .wf-quiz-btn.primary:disabled:hover { background: #a8630c; }

/* マイページ：検定履歴 */
.wf-quiz-history { display: grid; gap: 8px; }
.wf-quiz-hist-item {
    background: #fff; border: 1px solid rgba(120,80,20,.28);
    border-left: 4px solid #b89a6a; border-radius: 10px; padding: 10px 14px;
}
.wf-quiz-hist-item.pass { border-left-color: #2e9e5b; }
.wf-quiz-hist-item.fail { border-left-color: #b8763a; }
.wf-quiz-hist-main { display: flex; align-items: center; gap: 8px; }
.wf-quiz-hist-level { font-size: 15px; font-weight: 800; color: #140d06; }
.wf-quiz-hist-badge { font-size: 11px; font-weight: 700; padding: 2px 9px; border-radius: 999px; background: #f6ecd8; color: #806034; }
.wf-quiz-hist-item.pass .wf-quiz-hist-badge { background: #dff2e5; color: #1f7d45; }
.wf-quiz-hist-item.fail .wf-quiz-hist-badge { background: #fbe7db; color: #a85320; }
.wf-quiz-hist-meta { font-size: 12px; color: #6e4f26; margin-top: 3px; }

/* 検定：誤り報告 */
.wf-quiz-report-bar { text-align: center; margin-top: 14px; }
.wf-app .wf-quiz-report {
    background: none; border: none; cursor: pointer;
    font-size: 12px; color: #a06a2a; text-decoration: underline;
}
.wf-app .wf-quiz-report:hover { color: #7a4d12; }
.wf-app .wf-quiz-report.sm { font-size: 11px; margin-top: 8px; display: inline-block; }
.wf-report-overlay {
    position: fixed; inset: 0; z-index: 100001;
    background: rgba(40,25,5,.55);
    display: flex; align-items: center; justify-content: center; padding: 20px;
    animation: wf-omikuji-fade .2s ease;
}
.wf-report-modal {
    position: relative; width: 100%; max-width: 400px;
    background: #fff; border-radius: 16px; padding: 22px 20px 20px;
    box-shadow: 0 20px 50px rgba(40,25,5,.4);
    animation: wf-gk-zoom .3s ease;
}
.wf-report-close { position: absolute; top: 10px; right: 12px; border: none; background: none; cursor: pointer; font-size: 18px; color: #9a7a4a; }
.wf-report-title { font-size: 17px; font-weight: 800; color: #a8630c; margin: 0 0 10px; }
.wf-report-q { font-size: 13px; color: #4a3618; background: #f7f1e6; border-radius: 8px; padding: 8px 10px; margin: 0 0 12px; line-height: 1.5; }
.wf-report-label { display: block; font-size: 12px; font-weight: 700; color: #6e4f26; margin: 8px 0 4px; }
.wf-app .wf-report-type, .wf-app .wf-report-comment {
    width: 100%; padding: 9px 12px; font-size: 14px;
    border: 1.5px solid rgba(120,80,20,.4); border-radius: 10px; background: #fff; color: #1e1405; box-sizing: border-box;
}
.wf-report-actions { display: flex; gap: 8px; margin-top: 14px; }
.wf-report-actions .wf-quiz-btn { flex: 1; }
.wf-report-done { text-align: center; font-weight: 700; color: #1f7d45; padding: 16px 0 4px; }

/* ═══════════════ CASKADEとは ═══════════════ */
.wf-about { max-width: 760px; margin: 0 auto; }
.wf-about-hero {
    text-align: center; padding: 46px 20px 40px; margin-bottom: 28px; border-radius: 18px;
    background: linear-gradient(160deg, #2b1c0b 0%, #4a300f 55%, #6b4a1c 100%);
    box-shadow: 0 10px 30px rgba(40,25,5,.28);
}
.wf-about-eyebrow { color: #d9b877; font-size: 12px; letter-spacing: .34em; margin: 0 0 6px; }
.wf-about-logo {
    color: #fff !important; font-size: 40px; font-weight: 900; letter-spacing: .12em;
    margin: 0 0 10px; line-height: 1.1;
}
.wf-about-tagline { color: #ecd9b4; font-size: 14px; margin: 0; letter-spacing: .04em; }

.wf-about-sec { margin-bottom: 34px; }
.wf-about-h2 {
    font-size: 20px; font-weight: 800; color: #140d06;
    border-left: 5px solid #a8630c; padding-left: 12px; margin: 0 0 14px; line-height: 1.4;
}
.wf-about p { font-size: 15px; line-height: 1.95; margin: 0 0 14px; }
.wf-about-lead { font-size: 16px; font-weight: 600; }

.wf-about-word {
    display: flex; align-items: center; justify-content: center; gap: 14px; flex-wrap: wrap;
    background: #fff; border: 1.5px solid rgba(120,80,20,.3); border-radius: 14px;
    padding: 20px 16px; margin: 18px 0 20px; box-shadow: 0 3px 12px rgba(100,60,10,.1);
}
.wf-about-word-item { display: flex; flex-direction: column; align-items: center; text-align: center; }
.wf-about-word-en { font-size: 20px; font-weight: 900; color: #a8630c; letter-spacing: .06em; }
.wf-about-word-ja { font-size: 12px; color: #806034; margin-top: 4px; }
.wf-about-word-plus { font-size: 20px; font-weight: 800; color: #c8891e; }

.wf-about-quote {
    text-align: center; font-size: 16px !important; font-weight: 700; color: #6b4a1c !important;
    background: #fbf3e2; border-radius: 14px; padding: 20px 16px; line-height: 1.9 !important;
}

.wf-about-cards { display: grid; gap: 14px; }
.wf-about-card {
    background: #fff; border: 1.5px solid rgba(120,80,20,.3);
    border-left: 5px solid #c8891e; border-radius: 14px; padding: 18px 20px;
    box-shadow: 0 3px 12px rgba(100,60,10,.1);
}
.wf-about-card-icon { font-size: 28px; line-height: 1; }
.wf-about-card h3 { font-size: 17px; font-weight: 800; color: #140d06; margin: 8px 0 8px; }
.wf-about-card p { font-size: 14px; margin: 0; }

.wf-about-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.wf-about-list li {
    background: #fff; border: 1px solid rgba(120,80,20,.26); border-radius: 12px;
    padding: 14px 16px; font-size: 14.5px; line-height: 1.8; color: #3b2a13;
}
.wf-about-list strong { color: #a8630c; }

.wf-about-closing {
    background: #fffdf8; border: 1.5px dashed #c8891e; border-radius: 16px;
    padding: 26px 22px; text-align: center;
}
.wf-about-closing .wf-about-h2 { border: none; padding: 0; text-align: center; }
.wf-about-sign {
    font-size: 13px !important; letter-spacing: .2em; color: #a8630c !important;
    font-weight: 800; margin: 18px 0 18px !important;
}
.wf-about-cta { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
.wf-app .wf-about-btn {
    display: inline-flex; align-items: center; justify-content: center;
    min-height: 46px; padding: 12px 24px; border-radius: 999px;
    font-weight: 800; font-size: 14px; text-decoration: none !important;
    border: 1.5px solid #a8630c; background: #fff; color: #a8630c !important;
    box-shadow: 0 3px 10px rgba(100,60,10,.12); transition: transform .12s;
}
.wf-app .wf-about-btn.primary {
    background: linear-gradient(135deg, #6b4c1e, #a8630c); color: #fff !important; border-color: transparent;
}
.wf-app .wf-about-btn:hover { transform: translateY(-1px); }

@media (max-width: 600px) {
    .wf-about-logo { font-size: 32px; }
    .wf-about-h2 { font-size: 18px; }
}

/* ═══════════════ ポチッた（購入記録） ═══════════════ */
.wf-pochi-bar { display: flex; align-items: center; gap: 10px; margin-top: 10px; flex-wrap: wrap; }
.wf-app .wf-pochi-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 6px;
    min-height: 44px; padding: 11px 22px; border-radius: 12px; border: none;
    background: linear-gradient(135deg, #d4761a, #a8630c); color: #fff !important;
    font-weight: 800; font-size: 14px; cursor: pointer;
    box-shadow: 0 4px 14px rgba(168,99,12,.3);
}
.wf-app .wf-pochi-btn:hover { transform: translateY(-1px); }
.wf-app .wf-pochi-btn:disabled { opacity: .7; cursor: default; }
.wf-pochi-count { font-size: 12px; font-weight: 700; color: #a8630c; }

/* マイページ：ポチッたリスト */
.wf-pochi-about {
    background: #fffdf8; border: 1.5px dashed #c8891e; border-radius: 12px;
    padding: 14px 16px; margin-bottom: 14px;
}
.wf-pochi-about strong { color: #a8630c; font-size: 14px; }
.wf-pochi-about p { font-size: 13px; color: #6e4f26; line-height: 1.8; margin: 6px 0 0; }
.wf-pochi-controls { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 10px; }
.wf-pochi-controls input, .wf-pochi-controls select {
    padding: 9px 12px; font-size: 14px; border-radius: 10px;
    border: 1.5px solid rgba(120,80,20,.36); background: #fff; color: #1e1405;
}
.wf-pochi-controls input { flex: 1 1 180px; }
.wf-pochi-summary { font-size: 12px; font-weight: 700; color: #806034; margin-bottom: 8px; }
.wf-pochi-month-head {
    font-size: 13px; font-weight: 800; color: #a8630c;
    background: #f6ecd8; border-radius: 8px; padding: 6px 12px; margin: 12px 0 8px;
}
.wf-pochi-list { display: grid; gap: 8px; }
.wf-pochi-item {
    display: flex; align-items: center; gap: 12px;
    background: #fff; border: 1px solid rgba(120,80,20,.26);
    border-left: 4px solid #d4761a; border-radius: 12px; padding: 10px 12px;
}
.wf-pochi-thumb { width: 40px; height: 56px; object-fit: contain; flex: 0 0 auto; }
.wf-pochi-noimg { display: flex; align-items: center; justify-content: center; font-size: 24px; opacity: .5; }
.wf-pochi-main { flex: 1 1 auto; min-width: 0; }
.wf-pochi-name { font-size: 15px; font-weight: 700; color: #140d06; line-height: 1.4; }
.wf-pochi-meta { display: flex; gap: 10px; flex-wrap: wrap; font-size: 12px; color: #6e4f26; margin-top: 3px; }
.wf-pochi-price { font-weight: 700; color: #a8630c; }
.wf-pochi-genre { color: #806034; }
.wf-app .wf-pochi-del {
    background: none; border: none; cursor: pointer; font-size: 16px; opacity: .55; flex: 0 0 auto;
}
.wf-app .wf-pochi-del:hover { opacity: 1; }
.wf-pochi-empty { font-size: 13px; color: #806034; text-align: center; padding: 14px; }

/* ポチッた：リンク・メモ・編集 */
.wf-pochi-item { align-items: flex-start; }
.wf-pochi-name a { color: #140d06; text-decoration: none; border-bottom: 1px solid rgba(168,99,12,.4); }
.wf-pochi-name a:hover { color: #a8630c; }
.wf-pochi-memo {
    font-size: 12.5px; color: #4a3618; background: #f7f1e6;
    border-radius: 8px; padding: 7px 10px; margin-top: 6px; line-height: 1.6;
}
.wf-pochi-btns { display: flex; flex-direction: column; gap: 4px; flex: 0 0 auto; }
.wf-app .wf-pochi-editbtn {
    background: none; border: none; cursor: pointer; font-size: 15px; opacity: .55;
}
.wf-app .wf-pochi-editbtn:hover { opacity: 1; }
.wf-pochi-edit {
    margin-top: 8px; padding: 10px; background: #fffdf8;
    border: 1px dashed #c8891e; border-radius: 10px;
}
.wf-pochi-edit textarea {
    width: 100%; box-sizing: border-box; padding: 8px 10px; font-size: 13px;
    border: 1.5px solid rgba(120,80,20,.36); border-radius: 8px; background: #fff; color: #1e1405;
    resize: vertical;
}
.wf-pochi-file {
    display: inline-block; margin-top: 8px; padding: 7px 14px; font-size: 12px; font-weight: 700;
    color: #a8630c; background: #fff; border: 1.5px solid #a8630c; border-radius: 999px; cursor: pointer;
}
.wf-pochi-file:hover { background: #f7f1e6; }
.wf-pochi-filename { font-size: 11px; color: #806034; margin-left: 8px; }
.wf-pochi-rm { display: block; font-size: 12px; color: #6e4f26; margin-top: 6px; }
.wf-pochi-edit-actions { display: flex; gap: 8px; margin-top: 10px; }
.wf-app .wf-pochi-save, .wf-app .wf-pochi-cancel {
    padding: 8px 18px; font-size: 13px; font-weight: 700; border-radius: 10px; cursor: pointer;
}
.wf-app .wf-pochi-save { background: #a8630c; color: #fff !important; border: none; }
.wf-app .wf-pochi-cancel { background: #fff; color: #6e4f26 !important; border: 1.5px solid rgba(120,80,20,.4); }

/* ポチッた：購入価格 */
.wf-pochi-refprice { font-size: 12px; color: #9a7a4a; }
.wf-pochi-lbl { display: block; font-size: 11px; font-weight: 700; color: #6e4f26; margin: 6px 0 3px; }
.wf-pochi-edit .wf-pochi-price-input {
    width: 140px; padding: 8px 10px; font-size: 13px;
    border: 1.5px solid rgba(120,80,20,.36); border-radius: 8px; background: #fff; color: #1e1405;
}

/* ═══════════════ みんなのギャラリー（公開写真） ═══════════════ */
.wf-photo-gallery {
    background: #fff; border: 1.5px solid rgba(120,80,20,.28);
    border-radius: 14px; padding: 14px; margin: 0 0 14px;
    box-shadow: 0 3px 12px rgba(100,60,10,.08);
}
.wf-photo-gallery-head { margin-bottom: 10px; }
.wf-photo-gallery-head h3 {
    font-size: 15px; font-weight: 800; color: #a8630c; margin: 0;
}
.wf-photo-gallery-note { font-size: 11px; color: #907050; }
.wf-photo-track {
    display: flex;
    flex-wrap: nowrap;
    width: auto;
    gap: 10px;
    padding-bottom: 4px;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    cursor: grab;
}
.wf-photo-track::-webkit-scrollbar { display: none; }
.wf-photo-track:active { cursor: grabbing; }
.wf-app .wf-photo-cell {
    flex: 0 0 auto; width: 118px; text-decoration: none !important;
    border-radius: 10px; overflow: hidden; background: #faf5ec;
    border: 1px solid rgba(120,80,20,.22); transition: transform .12s;
    display: block;
}
.wf-app .wf-photo-cell:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(100,60,10,.18); }
.wf-photo-cell img { width: 100%; height: 118px; object-fit: cover; display: block; }
.wf-photo-cap { display: block; padding: 6px 8px; }
.wf-photo-name {
    display: block; font-size: 11.5px; font-weight: 700; color: #3b2a13;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.wf-photo-user { display: block; font-size: 10px; color: #907050; margin-top: 1px; }

/* ポチッた：公開設定 */
.wf-pochi-public { display: flex; align-items: center; gap: 6px; margin-top: 10px; font-size: 12.5px; color: #4a3618; font-weight: 700; }
.wf-pochi-public-note { font-size: 11px; color: #806034; line-height: 1.6; margin: 4px 0 0; }
.wf-pochi-pubbadge {
    display: inline-block; margin-left: 8px; font-size: 10px; font-weight: 700;
    color: #1f7d45; background: #dff2e5; border-radius: 999px; padding: 2px 8px;
}

/* ギャラリー：出典バッジ／飲んだ記録の写真 */
.wf-app .wf-photo-cell { position: relative; }
.wf-photo-badge {
    position: absolute; top: 6px; left: 6px;
    font-size: 9.5px; font-weight: 700; color: #fff;
    background: rgba(40,25,5,.7); border-radius: 999px; padding: 2px 7px;
}
.wf-diary-photo { margin-top: 8px; display: flex; align-items: center; gap: 8px; }
.wf-diary-photo img {
    width: 84px; height: 84px; object-fit: cover; border-radius: 10px;
    border: 1px solid rgba(120,80,20,.25);
}
.wf-diary-edit {
    margin-top: 8px; padding: 10px; background: #fffdf8;
    border: 1px dashed #c8891e; border-radius: 10px;
}
.wf-diary-filename { font-size: 11px; color: #806034; margin-left: 8px; }
.wf-diary-btns { display: flex; gap: 8px; align-items: center; margin-top: 8px; flex-wrap: wrap; }
.wf-app .wf-diary-photobtn {
    font-size: 12px; font-weight: 700; color: #a8630c; background: #fff;
    border: 1.5px solid rgba(168,99,12,.5); border-radius: 999px; padding: 6px 14px; cursor: pointer;
}
.wf-app .wf-diary-photobtn:hover { background: #f7f1e6; }

/* エディション行：クリックで詳細へ */
.wf-edition-row[data-edition-open] { cursor: pointer; transition: background .12s, transform .12s; }
.wf-edition-row[data-edition-open]:hover {
    background: rgba(200,137,30,.10);
    transform: translateX(2px);
}
.wf-edition-more {
    display: block;
    font-size: 11px;
    font-weight: 700;
    color: #a8630c;
    margin-top: 3px;
    white-space: nowrap;
}

/* ═══════════════ 利用上の注意 ═══════════════ */
.wf-about-notice {
    background: #fff8e8;
    border: 1.5px solid #e0b458;
    border-radius: 14px;
    padding: 20px 22px;
}
.wf-about-notice .wf-about-h2 { border-left-color: #d98a1f; margin-top: 0; }

/* ═══════════════ 情報提供フォーム ═══════════════ */
.wf-contact-form {
    background: #fff;
    border: 1.5px solid rgba(120,80,20,.28);
    border-radius: 14px;
    padding: 20px;
    box-shadow: 0 3px 12px rgba(100,60,10,.08);
}
.wf-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.wf-contact-row { margin-bottom: 14px; }
.wf-contact-row label {
    display: block; font-size: 13px; font-weight: 700;
    color: #6e4f26; margin-bottom: 5px;
}
.wf-req {
    font-size: 10px; font-weight: 700; color: #fff;
    background: #c0392b; border-radius: 4px; padding: 1px 6px; margin-left: 6px;
}
.wf-contact-form input[type="text"],
.wf-contact-form input[type="email"],
.wf-contact-form select,
.wf-contact-form textarea {
    width: 100%; box-sizing: border-box;
    padding: 10px 12px; font-size: 14px;
    border: 1.5px solid rgba(120,80,20,.36);
    border-radius: 10px; background: #fffdf9; color: #1e1405;
}
.wf-contact-form textarea { resize: vertical; line-height: 1.7; }
.wf-contact-note { display: block; font-size: 11px; color: #907050; margin-top: 4px; }
.wf-contact-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 16px; }
.wf-app .wf-contact-btn {
    min-height: 46px; padding: 12px 32px;
    border: none; border-radius: 999px; cursor: pointer;
    background: linear-gradient(135deg, #6b4c1e, #a8630c);
    color: #fff !important; font-weight: 800; font-size: 14px;
    box-shadow: 0 4px 14px rgba(168,99,12,.3);
}
.wf-app .wf-contact-btn:hover { transform: translateY(-1px); }
.wf-app .wf-contact-btn:disabled { opacity: .6; cursor: default; transform: none; }
.wf-contact-msg { font-size: 13px; font-weight: 700; }
.wf-contact-msg.ok { color: #1f7d45; }
.wf-contact-msg.ng { color: #c0392b; }
.wf-contact-privacy { font-size: 11px; color: #907050; margin: 14px 0 0; line-height: 1.7; }

/* ═══════════════ マイページ見出し（デザイン強化） ═══════════════ */
.wf-diary-title {
    position: relative;
    display: flex; align-items: center; gap: 10px;
    font-size: 19px !important; font-weight: 900 !important;
    letter-spacing: .03em;
    color: #fff !important;
    background: linear-gradient(135deg, #5b3f18 0%, #a8630c 100%);
    border-left: 6px solid #c8891e;
    border-radius: 0 12px 12px 0;
    padding: 12px 16px !important;
    margin: 28px 0 14px !important;
    box-shadow: 0 3px 12px rgba(120,80,20,.20);
}
.wf-diary-title::after {
    content: '';
    position: absolute; left: 16px; bottom: 6px;
    width: 44px; height: 3px; border-radius: 2px;
    background: linear-gradient(90deg, rgba(255,255,255,.75), transparent);
}
.wf-diary-count {
    font-size: 12px; font-weight: 800;
    color: #6b4c1e !important; background: #fff;
    border-radius: 999px; padding: 3px 12px;
    box-shadow: 0 2px 6px rgba(0,0,0,.15);
}

/* マイページ共通ページャ */
.wf-mypage-pager { display: flex; gap: 6px; flex-wrap: wrap; justify-content: center; margin: 12px 0 4px; }
.wf-mypage-pgbtn {
    min-width: 36px; min-height: 36px; padding: 6px 10px;
    border: 1.5px solid rgba(120,80,20,.36); border-radius: 10px;
    background: #fff; color: #6e4f26; font-weight: 700; font-size: 13px; cursor: pointer;
}
.wf-mypage-pgbtn.on {
    background: linear-gradient(135deg, #6b4c1e, #a8630c);
    color: #fff; border-color: transparent;
}
.wf-quiz-hist-del {
    margin-left: auto; background: none; border: none; cursor: pointer;
    font-size: 14px; opacity: .5;
}
.wf-quiz-hist-del:hover { opacity: 1; }

/* ═══════════════ 機能タブ：等幅3列グリッド ═══════════════ */
.wf-app .wf-tabs {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    overflow: visible !important;
    white-space: normal !important;
}
.wf-app .wf-tabs button {
    width: 100%;
    margin: 0 !important;
    white-space: nowrap;
    text-align: center;
}

/* ═══════════════ チップ：角丸を抑え折り返し可能に（ボタニカル等のはみ出し対策） ═══════════════ */
.wf-app .wf-chip {
    border-radius: 6px !important;
    white-space: normal !important;
    word-break: break-word;
    line-height: 1.5;
    height: auto !important;
}

/* ═══════════════ ウェルカムスプラッシュ ═══════════════ */
.wf-welcome-splash {
    position: fixed; inset: 0; z-index: 99999;
    display: flex; align-items: center; justify-content: center;
    background: linear-gradient(160deg, #2b1c0b 0%, #4a300f 55%, #6b4a1c 100%);
    opacity: 0; transition: opacity .7s ease;
    pointer-events: none;
}
.wf-welcome-splash.show { opacity: 1; pointer-events: auto; }
.wf-welcome-inner { text-align: center; transform: translateY(6px); transition: transform .9s ease; }
.wf-welcome-splash.show .wf-welcome-inner { transform: translateY(0); }
.wf-welcome-eyebrow { color: #d9b877; font-size: 13px; letter-spacing: .4em; margin-bottom: 8px; }
.wf-welcome-logo { color: #fff; font-size: 46px; font-weight: 900; letter-spacing: .14em; line-height: 1.1; }
.wf-welcome-msg { color: #ecd9b4; font-size: 14px; margin-top: 14px; letter-spacing: .06em; }

/* ═══════════════ ギャラリー拡大モーダル ═══════════════ */
.wf-photo-modal {
    position: fixed; inset: 0; z-index: 99998;
    background: rgba(20, 12, 2, .82);
    display: flex; align-items: center; justify-content: center;
    padding: 20px;
}
.wf-photo-modal-box {
    position: relative;
    background: #fff; border-radius: 16px; overflow: hidden;
    max-width: min(560px, 94vw); max-height: 88vh;
    display: flex; flex-direction: column;
    box-shadow: 0 20px 60px rgba(0,0,0,.4);
}
.wf-photo-modal-box img {
    width: 100%; max-height: 58vh; object-fit: contain; background: #f4ede0; display: block;
}
.wf-photo-modal-close {
    position: absolute; top: 10px; right: 10px;
    width: 36px; height: 36px; border-radius: 50%;
    border: none; cursor: pointer;
    background: rgba(20,12,2,.55); color: #fff; font-size: 16px; font-weight: 700;
}
.wf-photo-modal-info { padding: 14px 16px 16px; overflow-y: auto; }
.wf-photo-modal-memo {
    font-size: 13.5px; color: #3b2a13; line-height: 1.8;
    background: #faf5ec; border-radius: 10px; padding: 10px 12px; margin: 0 0 10px;
}
.wf-photo-modal-meta { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
.wf-photo-modal-name { font-size: 15px; font-weight: 800; color: #140d06; }
.wf-photo-modal-user { font-size: 12px; color: #907050; }
.wf-photo-modal-goto {
    display: inline-flex; align-items: center; justify-content: center;
    min-height: 44px; padding: 10px 22px; border: none; border-radius: 999px; cursor: pointer;
    background: linear-gradient(135deg, #6b4c1e, #a8630c); color: #fff; font-weight: 800; font-size: 14px;
    box-shadow: 0 4px 14px rgba(168,99,12,.3);
}

/* 情報提供リンク（銘柄詳細） */
.wf-report-wrap {
    margin-top: 20px;
    display: flex;
    justify-content: flex-end;
}

/* ═══════════════ CASKADEとは：ブロック画像・スライドショー ═══════════════ */
.wf-about-img { margin: 0 0 16px; }
.wf-about-img img {
    width: 100%; height: auto; max-height: 340px; object-fit: cover;
    border-radius: 14px; display: block;
    box-shadow: 0 6px 20px rgba(100,60,10,.16);
}
.wf-about-slideshow {
    position: relative; width: 100%; height: 260px;
    border-radius: 14px; overflow: hidden; margin: 0 0 16px;
    box-shadow: 0 6px 20px rgba(100,60,10,.16);
    background: #f4ede0;
}
.wf-about-slideshow img {
    position: absolute; inset: 0; width: 100%; height: 100%;
    object-fit: cover; opacity: 0; transition: opacity 1.2s ease;
}
.wf-about-slideshow img.on { opacity: 1; }
@media (min-width: 600px) {
    .wf-about-slideshow { height: 340px; }
}

/* スプラッシュ：登録ロゴ画像 */
.wf-welcome-logoimg {
    max-width: min(320px, 70vw);
    max-height: 160px;
    object-fit: contain;
    display: block;
    margin: 0 auto;
}

/* ═══════════════ お店ガイド：マップの吹き出し ═══════════════ */
.wf-pop-wrap .leaflet-popup-content-wrapper {
    border-radius: 12px;
    padding: 0;
    overflow: hidden;
    background: #fffdf9;
    box-shadow: 0 8px 28px rgba(30, 18, 4, .24);
    border: 1px solid rgba(120, 80, 20, .2);
}
.wf-pop-wrap .leaflet-popup-content {
    margin: 0;
    width: auto !important;
    min-width: 260px;
    line-height: 1.55;
}
.wf-pop-wrap .leaflet-popup-close-button {
    top: 6px; right: 8px;
    width: 22px; height: 22px;
    color: #a08b6a !important;
    font-size: 17px; line-height: 20px;
}
.wf-pop-wrap .leaflet-popup-close-button:hover { color: #6e4f26 !important; }

/* 店名：背景を使わず下線のみ。折り返さず1行に収める */
.wf-pop-head {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 4px 8px;
    padding: 11px 30px 8px 13px;
    border-bottom: 2px solid #c8891e;
}
.wf-pop-name {
    font-size: 14px;
    font-weight: 800;
    color: #2b1c0b;
    line-height: 1.45;
    word-break: break-word;   /* 長い店名も省略せず折り返す */
    min-width: 0;
}
.wf-pop-type {
    flex-shrink: 0;
    padding: 1px 7px;
    font-size: 10px;
    font-weight: 700;
    color: #6e4f26;
    background: #f2e8d5;
    border-radius: 999px;
}

/* 本文：1行ずつコンパクトに */
.wf-pop-body { padding: 9px 13px 2px; }
.wf-pop-row {
    margin: 0 0 5px !important;
    font-size: 12px;
    color: #5b4a30;
}

/* アクション：横並び・折り返し */
.wf-pop-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 8px 13px 12px;
}
.wf-pop-btn {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 5px 11px;
    border-radius: 8px;
    font-size: 11.5px;
    font-weight: 700;
    text-decoration: none !important;
    white-space: nowrap;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
}
.wf-pop-btn--tel  { background: #1f7d45; color: #fff !important; }
.wf-pop-btn--site { background: #fff; color: #6e4f26 !important; border: 1.5px solid rgba(120,80,20,.34); }
.wf-pop-btn--map  { background: #a8630c; color: #fff !important; }
.wf-pop-btn:hover { opacity: .88; }

/* ═══════════════ お店ガイド：ページ全体 ═══════════════ */
/* マップ枠 */
.wf-places-map-wrap .wf-leaflet-map {
    border-radius: 14px !important;
    overflow: hidden;
    border: 1px solid rgba(120, 80, 20, .2);
    box-shadow: 0 4px 18px rgba(100, 60, 10, .12);
}
.wf-places-map-wrap .wf-map-count {
    font-size: 12px;
    font-weight: 700;
    color: #907050;
    margin: 0 0 10px;
}

/* ── 店舗リスト：カード型・自動多列 ── */
.wf-map-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 10px;
    margin-top: 14px;
}
.wf-map-card {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 62px;
    padding: 10px 12px;
    background: #fff;
    border: 1px solid rgba(120, 80, 20, .18);
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(100, 60, 10, .07);
    transition: transform .14s, box-shadow .14s, border-color .14s;
}
.wf-map-card:hover {
    transform: translateY(-2px);
    border-color: rgba(168, 99, 12, .5);
    box-shadow: 0 6px 18px rgba(100, 60, 10, .14);
}
.wf-map-card.is-nopin { opacity: .75; }

.wf-map-card-main {
    display: flex;
    align-items: center;
    gap: 9px;
    flex: 1;
    min-width: 0;
    cursor: pointer;
    background: none;
    border: none;
}
.wf-map-card-icon {
    flex-shrink: 0;
    width: 32px; height: 32px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 9px;
    font-size: 15px;
    color: #fff;
}
.wf-map-card-text {
    display: flex;
    flex-direction: column;
    min-width: 0;
    gap: 1px;
}
.wf-map-card-name {
    font-size: 13.5px;
    font-weight: 700;
    color: #2b1c0b;
    line-height: 1.4;
    word-break: break-word;   /* 店名は省略しない */
}
.wf-map-card-addr {
    font-size: 11px;
    color: #9a8a72;
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* アクションボタン群 */
.wf-map-card-acts {
    display: flex;
    align-items: center;
    gap: 4px;
    flex-shrink: 0;
}
.wf-app .wf-map-act,
.wf-map-act {
    width: 32px; height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 1px solid rgba(120, 80, 20, .2);
    border-radius: 9px;
    background: #fdfaf4;
    font-size: 14px;
    line-height: 1;
    cursor: pointer;
    text-decoration: none !important;
    transition: background .14s, transform .14s, border-color .14s;
}
.wf-map-act:hover {
    background: #f5ead7;
    border-color: rgba(168, 99, 12, .45);
    transform: scale(1.06);
}
.wf-map-act.on { background: #fff4d6; border-color: #e0b458; }

@media (max-width: 600px) {
    .wf-map-list { grid-template-columns: 1fr; }
}

/* ═══════════════ お店ガイド：検索・並び替え ═══════════════ */
.wf-map-tools {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin-bottom: 10px;
}
.wf-map-search-box {
    position: relative;
    flex: 1;
    min-width: 200px;
}
.wf-map-search {
    width: 100%;
    box-sizing: border-box;
    min-height: 38px;
    padding: 8px 34px 8px 14px;
    border: 1.5px solid rgba(120, 80, 20, .3);
    border-radius: 999px;
    background: #fff;
    font-size: 13px;
    color: #2b1c0b;
}
.wf-map-search:focus {
    outline: none;
    border-color: #a8630c;
    box-shadow: 0 0 0 3px rgba(168, 99, 12, .12);
}
.wf-map-search-clear {
    position: absolute;
    top: 50%; right: 8px;
    transform: translateY(-50%);
    width: 22px; height: 22px;
    display: none;
    align-items: center; justify-content: center;
    border: none; border-radius: 50%;
    background: #e8ddc9;
    color: #6e4f26;
    font-size: 11px;
    cursor: pointer;
    padding: 0;
}
.wf-map-search-clear:hover { background: #d8c8ab; }

.wf-map-sort {
    min-height: 38px;
    padding: 8px 12px;
    border: 1.5px solid rgba(120, 80, 20, .3);
    border-radius: 999px;
    background: #fff;
    font-size: 12.5px;
    font-weight: 700;
    color: #6e4f26;
    cursor: pointer;
}
.wf-map-geo-btn {
    min-height: 38px;
    padding: 8px 14px;
    border: 1.5px solid rgba(120, 80, 20, .3);
    border-radius: 999px;
    background: #fff;
    font-size: 12.5px;
    font-weight: 700;
    color: #6e4f26;
    cursor: pointer;
    white-space: nowrap;
}
.wf-map-geo-btn:hover { border-color: #a8630c; color: #a8630c; }
.wf-map-geo-btn.on {
    background: linear-gradient(135deg, #6b4c1e, #a8630c);
    border-color: transparent;
    color: #fff;
}
.wf-map-geo-btn:disabled { opacity: .6; cursor: default; }

/* 距離ラベル */
.wf-map-card-dist {
    font-size: 11px;
    font-weight: 700;
    color: #1f7d45;
    margin-top: 1px;
}
/* 検索結果なし */
.wf-map-empty {
    grid-column: 1 / -1;
    padding: 20px;
    text-align: center;
    color: #907050;
    font-size: 13px;
    background: #fffdf9;
    border: 1px dashed rgba(120, 80, 20, .3);
    border-radius: 12px;
}

@media (max-width: 600px) {
    .wf-map-tools { gap: 6px; }
    .wf-map-search-box { flex: 1 1 100%; }
    .wf-map-sort, .wf-map-geo-btn { flex: 1; }
}

/* ═══════════════ 分析チャート ═══════════════ */
.wf-charts { padding: 4px 0 8px; }
.wf-charts h3 {
    font-size: 17px;
    font-weight: 800;
    color: #2b1c0b;
    margin: 0 0 6px;
}
.wf-charts h4 {
    font-size: 14px;
    font-weight: 800;
    color: #6e4f26;
    margin: 22px 0 2px;
    padding-bottom: 6px;
    border-bottom: 2px solid #e6d7ba;
}
.wf-chart-lead {
    font-size: 12.5px;
    color: #7a6549;
    line-height: 1.7;
    margin: 0 0 6px;
}
.wf-chart-lead b { color: #a8630c; }
.wf-chart-note {
    font-size: 11.5px;
    color: #9a8a72;
    margin: 6px 0 10px;
}
.wf-chart-empty {
    font-size: 12.5px;
    color: #9a8a72;
    padding: 12px;
    text-align: center;
    background: #fffdf9;
    border: 1px dashed rgba(120, 80, 20, .28);
    border-radius: 10px;
}

/* バー1本 */
.wf-app .wf-bar {
    display: grid;
    grid-template-columns: 108px 1fr 82px;
    align-items: center;
    gap: 10px;
    margin-bottom: 7px;
    overflow: visible;
}
.wf-bar-label {
    font-size: 12px;
    font-weight: 700;
    color: #4a3a24;
    text-align: right;
    line-height: 1.35;
    word-break: break-word;
}
.wf-bar-track {
    display: block;
    height: 16px;
    background: #f2e9d9;
    border-radius: 999px;
    overflow: hidden;
}
.wf-app .wf-bar b {
    display: block;
    height: 100%;
    min-width: 3px;
    border-radius: 999px;
    background: linear-gradient(90deg, #c8891e, #a8630c);
    transition: width .5s ease;
}
.wf-bar-val {
    font-size: 12px;
    font-weight: 800;
    color: #2b1c0b;
    font-style: normal;
    white-space: nowrap;
}
.wf-bar-val small { font-size: 10px; font-weight: 400; color: #9a8a72; }
.wf-bar-pct {
    font-size: 10.5px;
    font-weight: 700;
    color: #a8630c;
}

@media (max-width: 480px) {
    .wf-app .wf-bar { grid-template-columns: 88px 1fr 70px; gap: 7px; }
    .wf-bar-label { font-size: 11px; }
}

/* マイページ：タグの削除ボタン */
.wf-mypage-tag--link {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    padding-right: 4px !important;
}
.wf-mypage-tag--link > a {
    color: inherit !important;
    text-decoration: none !important;
}
.wf-mypage-tag-del {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px; height: 20px;
    margin-left: 2px;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: rgba(120, 80, 20, .12);
    color: #6e4f26;
    font-size: 10px;
    line-height: 1;
    cursor: pointer;
    flex-shrink: 0;
    transition: background .14s, color .14s;
}
.wf-mypage-tag-del:hover { background: #c0392b; color: #fff; }
.wf-mypage-note {
    font-size: 11.5px;
    color: #9a8a72;
    margin: -6px 0 10px;
    line-height: 1.7;
}


/* ═══════════════ マイページ見出し（詳細度を上げてテーマに打ち勝つ） ═══════════════ */
.wf-mypage-wrap h2.wf-diary-title,
.wf-mypage-list-section h2.wf-diary-title,
body .wf-diary-title {
    position: relative;
    display: flex !important;
    align-items: center;
    gap: 10px;
    font-size: 18px !important;
    font-weight: 900 !important;
    letter-spacing: .03em;
    color: #ffffff !important;
    background: linear-gradient(135deg, #5b3f18 0%, #a8630c 100%) !important;
    border: none !important;
    border-left: 6px solid #c8891e !important;
    border-radius: 0 12px 12px 0 !important;
    padding: 12px 16px !important;
    margin: 28px 0 14px !important;
    box-shadow: 0 3px 12px rgba(120, 80, 20, .2);
}
/* SWELLのh2疑似要素（下線・飾り）を打ち消す */
.wf-mypage-wrap h2.wf-diary-title::before,
body .wf-diary-title::before {
    content: none !important;
}
.wf-mypage-wrap h2.wf-diary-title::after,
body .wf-diary-title::after {
    content: '' !important;
    position: absolute;
    left: 16px; bottom: 6px;
    width: 44px; height: 3px;
    border-radius: 2px;
    background: linear-gradient(90deg, rgba(255,255,255,.75), transparent) !important;
    border: none !important;
}
/* 見出し内の文字要素も白に */
.wf-mypage-wrap h2.wf-diary-title *,
body .wf-diary-title {
    color: #ffffff !important;
}
body .wf-diary-title .wf-diary-count {
    color: #6b4c1e !important;
    background: #fff !important;
    font-size: 12px;
    font-weight: 800;
    border-radius: 999px;
    padding: 3px 12px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, .15);
}

/* ═══════════════ マイページ：削除・編集ボタン（.wf-app 外でも確実に表示） ═══════════════ */
.wf-mypage-wrap .wf-pochi-del,
.wf-mypage-wrap .wf-pochi-editbtn,
.wf-mypage-wrap .wf-quiz-hist-del {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    padding: 0;
    background: rgba(120, 80, 20, .08) !important;
    border: 1px solid rgba(120, 80, 20, .18) !important;
    border-radius: 8px;
    font-size: 14px;
    line-height: 1;
    cursor: pointer;
    opacity: 1 !important;
    flex: 0 0 auto;
    transition: background .14s, border-color .14s, transform .14s;
}
.wf-mypage-wrap .wf-pochi-del:hover,
.wf-mypage-wrap .wf-quiz-hist-del:hover {
    background: #fdeaea !important;
    border-color: #e0a5a5 !important;
    transform: scale(1.06);
}
.wf-mypage-wrap .wf-pochi-editbtn:hover {
    background: #f5ead7 !important;
    border-color: rgba(168, 99, 12, .45) !important;
}
/* 検定履歴の削除ボタンは右端に */
.wf-mypage-wrap .wf-quiz-hist-del { margin-left: auto; }
.wf-mypage-wrap .wf-quiz-hist-main {
    display: flex;
    align-items: center;
    gap: 8px;
}
/* 飲酒ダイアリーの削除ボタン */
.wf-mypage-wrap .wf-diary-delete,
.wf-mypage-wrap .wf-diary-del {
    display: inline-flex !important;
    align-items: center;
    gap: 3px;
    padding: 4px 10px;
    background: #fff !important;
    border: 1px solid #e0a5a5 !important;
    border-radius: 8px;
    color: #c0392b !important;
    font-size: 11.5px;
    font-weight: 700;
    cursor: pointer;
    opacity: 1 !important;
}
.wf-mypage-wrap .wf-diary-delete:hover,
.wf-mypage-wrap .wf-diary-del:hover {
    background: #fdeaea !important;
}
/* お気に入りタグの削除ボタン（.wf-app 外） */
.wf-mypage-wrap .wf-mypage-tag-del {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 20px; height: 20px;
    margin-left: 4px;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: rgba(120, 80, 20, .14);
    color: #6e4f26;
    font-size: 10px;
    line-height: 1;
    cursor: pointer;
    flex-shrink: 0;
}
.wf-mypage-wrap .wf-mypage-tag-del:hover { background: #c0392b; color: #fff; }
.wf-mypage-wrap .wf-mypage-tag--link {
    display: inline-flex !important;
    align-items: center;
}

/* ═══════════════ マイページ：一括／選択削除 ═══════════════ */
.wf-mypage-wrap .wf-bulk-bar {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    padding: 10px 12px;
    margin: 0 0 12px;
    background: #fffdf9;
    border: 1px solid rgba(120, 80, 20, .18);
    border-radius: 10px;
}
.wf-mypage-wrap .wf-bulk-check {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 12.5px;
    font-weight: 700;
    color: #6e4f26;
    cursor: pointer;
    flex-shrink: 0;
}
.wf-mypage-wrap .wf-bulk-check input { width: 16px; height: 16px; cursor: pointer; }
.wf-mypage-wrap .wf-bulk-count {
    font-size: 12px;
    font-weight: 800;
    color: #a8630c;
    margin-right: auto;
}
.wf-mypage-wrap .wf-bulk-del,
.wf-mypage-wrap .wf-bulk-delall {
    min-height: 32px;
    padding: 6px 12px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
}
.wf-mypage-wrap .wf-bulk-del {
    background: #c0392b;
    color: #fff !important;
    border: none;
}
.wf-mypage-wrap .wf-bulk-del:disabled {
    background: #ddd;
    color: #999 !important;
    cursor: not-allowed;
}
.wf-mypage-wrap .wf-bulk-delall {
    background: #fff;
    color: #c0392b !important;
    border: 1.5px solid #e0a5a5;
}
.wf-mypage-wrap .wf-bulk-delall:hover { background: #fdeaea; }

/* テイスティング記録 */
.wf-mypage-wrap .wf-tasting-list { display: flex; flex-direction: column; gap: 8px; }
.wf-mypage-wrap .wf-tasting-row {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px;
    background: #fff;
    border: 1px solid rgba(120, 80, 20, .16);
    border-radius: 10px;
}
.wf-mypage-wrap .wf-tasting-info { flex: 1; min-width: 0; }
.wf-mypage-wrap .wf-tasting-head {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}
.wf-mypage-wrap .wf-tasting-name {
    font-size: 14px;
    font-weight: 700;
    color: #2b1c0b !important;
    text-decoration: none !important;
    word-break: break-word;
}
.wf-mypage-wrap .wf-tasting-rating { font-size: 12px; color: #e0a800; }
.wf-mypage-wrap .wf-tasting-meta { font-size: 11.5px; color: #9a8a72; margin-top: 2px; }
.wf-mypage-wrap .wf-tasting-memo {
    margin: 6px 0 0;
    padding: 7px 10px;
    font-size: 12px;
    color: #5b4a30;
    background: #f8f3e9;
    border-radius: 8px;
    line-height: 1.7;
}
.wf-mypage-wrap .wf-tasting-del {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px; height: 30px;
    padding: 0;
    background: rgba(120, 80, 20, .08);
    border: 1px solid rgba(120, 80, 20, .18);
    border-radius: 8px;
    font-size: 14px;
    cursor: pointer;
    flex-shrink: 0;
}
.wf-mypage-wrap .wf-tasting-del:hover { background: #fdeaea; border-color: #e0a5a5; }

/* ダイアリーのチェックボックス位置 */
.wf-mypage-wrap .wf-diary-check { align-self: flex-start; padding-top: 4px; }

/* ═══════════════ マイページ：アカウント設定 ═══════════════ */
.wf-mypage-wrap .wf-pw-details {
    margin-top: 10px;
    border: 1px solid rgba(120, 80, 20, .2);
    border-radius: 10px;
    background: #fffdf9;
    overflow: hidden;
}
.wf-mypage-wrap .wf-pw-details > summary {
    padding: 10px;
    font-size: 14px;
    font-weight: 700;
    color: #6e4f26;
    cursor: pointer;
    list-style: none;
    user-select: none;
}
.wf-mypage-wrap .wf-pw-details > summary::-webkit-details-marker { display: none; }
.wf-mypage-wrap .wf-pw-details > summary::after {
    content: '▼';
    float: right;
    font-size: 10px;
    opacity: .6;
}
.wf-mypage-wrap .wf-pw-details[open] > summary::after { content: '▲'; }
.wf-mypage-wrap .wf-pw-details > summary:hover { background: #f8f1e4; }

.wf-mypage-wrap .wf-pw-box {
    padding: 4px 14px 16px;
    border-top: 1px solid rgba(120, 80, 20, .12);
}
.wf-mypage-wrap .wf-pw-field { margin-top: 12px; }
.wf-mypage-wrap .wf-pw-field label {
    display: block;
    margin-bottom: 5px;
    font-size: 12px;
    font-weight: 700;
    color: #6e4f26;
}
.wf-mypage-wrap .wf-pw-field input {
    width: 100%;
    box-sizing: border-box;
    min-height: 42px;
    padding: 9px 12px;
    border: 1.5px solid rgba(120, 80, 20, .28);
    border-radius: 8px;
    background: #fff;
    font-size: 14px;
    color: #2b1c0b;
}
.wf-mypage-wrap .wf-pw-field input:focus {
    outline: none;
    border-color: #a8630c;
    box-shadow: 0 0 0 3px rgba(168, 99, 12, .12);
}
.wf-mypage-wrap .wf-pw-note {
    margin: 6px 0 0;
    font-size: 11.5px;
    color: #9a8a72;
    line-height: 1.7;
}
.wf-mypage-wrap .wf-pw-msg {
    margin: 12px 0 0;
    padding: 9px 12px;
    border-radius: 8px;
    font-size: 12.5px;
    font-weight: 700;
    line-height: 1.6;
}
.wf-mypage-wrap .wf-pw-msg.is-ok  { background: #eaf7ef; color: #1f7d45; }
.wf-mypage-wrap .wf-pw-msg.is-err { background: #fdeaea; color: #c0392b; }
.wf-mypage-wrap .wf-pw-box .wf-auth-btn { margin-top: 14px; width: 100%; }

/* ═══════════════ マイページ：設定ブロック ═══════════════ */
.wf-mypage-wrap .wf-settings {
    margin-top: 14px;
    border: 1.5px solid rgba(120, 80, 20, .25);
    border-radius: 12px;
    background: #fffdf9;
    overflow: hidden;
}
.wf-mypage-wrap .wf-settings-summary {
    display: block;
    padding: 14px;
    font-size: 14px;
    font-weight: 800;
    color: #6e4f26;
    text-align: center;
    cursor: pointer;
    list-style: none;
    user-select: none;
    position: relative;
}
.wf-mypage-wrap .wf-settings-summary::-webkit-details-marker { display: none; }
.wf-mypage-wrap .wf-settings-summary::after {
    content: '▼';
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 10px;
    opacity: .55;
}
.wf-mypage-wrap .wf-settings[open] > .wf-settings-summary::after { content: '▲'; }
.wf-mypage-wrap .wf-settings-summary:hover { background: #f8f1e4; }
.wf-mypage-wrap .wf-settings-body {
    padding: 4px 12px 16px;
    border-top: 1px solid rgba(120, 80, 20, .14);
}
/* 設定内の各パネルの間隔を揃える */
.wf-mypage-wrap .wf-settings-body > details { margin-top: 10px; }

/* ═══════════════ マイページ：退会（控えめなグレー） ═══════════════ */
.wf-mypage-wrap .wf-danger-zone {
    padding-top: 0 !important;
    border-top: 1px solid #d8d5d0 !important;
    box-sizing: border-box;
    width: 92%;
    border: 1px solid #d8d5d0;
    border-radius: 10px;
    margin: 20px auto !important;
    background: #f6f5f3;
    overflow: hidden;
}
.wf-mypage-wrap .wf-danger-zone > summary {
    display: block;
    padding: 10px;
    font-size: 14px;
    font-weight: 700;
    color: #5f5b55;
    cursor: pointer;
    list-style: none;
    user-select: none;
    position: relative;
    margin: 0;
}
.wf-mypage-wrap .wf-danger-zone > summary::-webkit-details-marker { display: none; }
.wf-mypage-wrap .wf-danger-zone > summary::after {
    content: '▼';
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 10px;
    opacity: .5;
}
.wf-mypage-wrap .wf-danger-zone[open] > summary::after { content: '▲'; }
.wf-mypage-wrap .wf-danger-zone > summary:hover { background: #eeecea; }

.wf-mypage-wrap .wf-danger-body {
    padding: 4px 14px 16px;
    border-top: 1px solid #e2dfda;
}
.wf-mypage-wrap .wf-danger-body > p {
    margin: 10px 0 0;
    font-size: 12.5px;
    color: #6b6660;
    line-height: 1.75;
}
.wf-mypage-wrap .wf-danger-body .wf-auth-field { margin-top: 12px; }
.wf-mypage-wrap .wf-danger-body .wf-auth-field label {
    display: block;
    margin-bottom: 5px;
    font-size: 12px;
    font-weight: 700;
    color: #5f5b55;
}
.wf-mypage-wrap .wf-danger-body .wf-auth-input {
    width: 100%;
    box-sizing: border-box;
    min-height: 42px;
    padding: 9px 12px;
    border: 1.5px solid #d0ccc6;
    border-radius: 8px;
    background: #fff;
    font-size: 14px;
    color: #2b1c0b;
}
.wf-mypage-wrap .wf-danger-body .wf-auth-input:focus {
    outline: none;
    border-color: #8a857e;
    box-shadow: 0 0 0 3px rgba(120, 115, 110, .12);
}
/* 退会ボタン：薄いグレー背景・濃いグレー文字 */
.wf-mypage-wrap .wf-auth-btn-danger {
    display: block;
    width: 100%;
    min-height: 44px;
    margin-top: 12px;
    padding: 12px !important;
    background: #e4e1dd !important;
    color: #4a4640 !important;
    border: 1px solid #cbc7c1 !important;
    border-radius: 10px !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    text-align: center;
    box-sizing: border-box;
}
.wf-mypage-wrap .wf-auth-btn-danger:hover {
    background: #d8d4cf !important;
    color: #332f2a !important;
}
.wf-mypage-wrap .wf-auth-msg {
    margin: 10px 0 0;
    font-size: 12.5px;
    font-weight: 700;
    line-height: 1.6;
}

/* 検定記録の見出しも確実に白文字（テーマのh2装飾に打ち勝つ） */
.wf-mypage-wrap #wf-quiz-history-section h2.wf-diary-title,
#wf-quiz-history-section h2.wf-diary-title,
body #wf-quiz-history-section .wf-diary-title {
    color: #ffffff !important;
    background: linear-gradient(135deg, #5b3f18 0%, #a8630c 100%) !important;
}
.wf-mypage-wrap #wf-quiz-history-section h2.wf-diary-title * {
    color: #ffffff !important;
}
.wf-mypage-wrap #wf-quiz-history-section h2.wf-diary-title .wf-diary-count {
    color: #6b4c1e !important;
    background: #fff !important;
}
/* 検定履歴の行にチェックボックスが入るためレイアウト調整 */
.wf-mypage-wrap .wf-quiz-hist-main {
    display: flex;
    align-items: center;
    gap: 8px;
}
.wf-mypage-wrap .wf-quiz-hist-del { margin-left: auto; }

/* ═══════════════ マイページ：ポイント ═══════════════ */
.wf-mypage-wrap .wf-points-card {
    margin-top: 14px;
    margin-bottom: 18px;
    padding: 14px 16px;
    background: linear-gradient(135deg, #5b3f18 0%, #a8630c 100%);
    border-radius: 12px;
    box-shadow: 0 4px 14px rgba(120, 80, 20, .22);
}
.wf-mypage-wrap .wf-points-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
}
.wf-mypage-wrap .wf-points-label {
    font-size: 13px;
    font-weight: 800;
    color: #fff;
}
.wf-mypage-wrap .wf-points-total {
    font-size: 30px;
    font-weight: 900;
    color: #fff;
    line-height: 1;
    letter-spacing: .02em;
}
.wf-mypage-wrap .wf-points-total small {
    font-size: 13px;
    font-weight: 700;
    margin-left: 3px;
    opacity: .85;
}
.wf-mypage-wrap .wf-points-note {
    margin: 8px 0 0;
    font-size: 11.5px;
    color: rgba(255, 255, 255, .8);
    line-height: 1.7;
}
.wf-mypage-wrap .wf-points-details {
    margin-top: 10px;
    border-top: 1px solid rgba(255, 255, 255, .22);
    padding-top: 8px;
}
.wf-mypage-wrap .wf-points-details > summary {
    font-size: 12px;
    font-weight: 700;
    color: rgba(255, 255, 255, .9);
    cursor: pointer;
    list-style: none;
}
.wf-mypage-wrap .wf-points-details > summary::-webkit-details-marker { display: none; }
.wf-mypage-wrap .wf-points-details > summary::after { content: ' ▼'; font-size: 9px; }
.wf-mypage-wrap .wf-points-details[open] > summary::after { content: ' ▲'; }
.wf-mypage-wrap .wf-points-body { margin-top: 8px; }
.wf-mypage-wrap .wf-points-row {
    display: grid;
    grid-template-columns: 1fr auto auto;
    align-items: center;
    gap: 8px;
    padding: 6px 0;
    border-bottom: 1px dashed rgba(255, 255, 255, .18);
}
.wf-mypage-wrap .wf-points-name {
    font-size: 12px;
    font-weight: 700;
    color: #fff;
}
.wf-mypage-wrap .wf-points-calc {
    font-size: 10.5px;
    color: rgba(255, 255, 255, .7);
    white-space: nowrap;
}
.wf-mypage-wrap .wf-points-sub {
    font-size: 12.5px;
    font-weight: 800;
    color: #ffe6b8;
    white-space: nowrap;
}
.wf-mypage-wrap .wf-points-empty,
.wf-mypage-wrap .wf-points-caution {
    margin: 8px 0 0;
    font-size: 11px;
    color: rgba(255, 255, 255, .72);
    line-height: 1.7;
}

/* ═══════════════ マイページ：お気に入り・記録カード ═══════════════ */
.wf-mypage-wrap .wf-mypage-tag-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 8px;
}
.wf-mypage-wrap .wf-fav-card {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 8px 8px 12px;
    background: #fff;
    border: 1px solid rgba(120, 80, 20, .18);
    border-radius: 10px;
    box-shadow: 0 1px 4px rgba(100, 60, 10, .05);
}
.wf-mypage-wrap .wf-fav-card-main {
    display: flex;
    align-items: center;
    gap: 7px;
    flex: 1;
    min-width: 0;
    text-decoration: none !important;
    color: #2b1c0b !important;
}
.wf-mypage-wrap .wf-fav-icon { flex-shrink: 0; font-size: 14px; }
.wf-mypage-wrap .wf-fav-name {
    font-size: 13px;
    font-weight: 700;
    line-height: 1.4;
    word-break: break-word;
}
/* 削除ボタン：✕ではなくテキストで明示。誤タップしにくいよう余白を確保 */
.wf-mypage-wrap .wf-fav-del {
    flex-shrink: 0;
    min-height: 30px;
    padding: 5px 12px;
    background: #f6f5f3;
    border: 1px solid #d5d1cb;
    border-radius: 8px;
    color: #6b6660 !important;
    font-size: 11.5px;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
    transition: background .14s, color .14s, border-color .14s;
}
.wf-mypage-wrap .wf-fav-del:hover {
    background: #fdeaea;
    border-color: #e0a5a5;
    color: #c0392b !important;
}

/* 設定ブロックの下に配置したログアウトの余白 */
.wf-mypage-wrap .wf-mypage-actions > .wf-auth-btn-outline { margin-top: 14px; }

/* 詳細の遅延読み込み中 */
.wf-detail-loading { color: #b0a288; font-size: 12px; font-style: normal; }

/* 銘柄詳細：スペック（容量・度数・熟成など） */
.wf-app .wf-spec-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
    gap: 8px;
    margin: 14px 0;
}
.wf-app .wf-spec-cell {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 10px 12px;
    background: #faf6ef;
    border: 1px solid rgba(120, 80, 20, .14);
    border-radius: 10px;
}
.wf-app .wf-spec-key {
    font-size: 11px;
    font-weight: 700;
    color: #9a8a72;
    letter-spacing: .02em;
}
.wf-app .wf-spec-val {
    font-size: 15px;
    font-weight: 800;
    color: #2b1c0b;
}

/* ランキング：モード切替（閲覧数／ポチッた数） */
.wf-app .wf-rank-mode {
    display: flex;
    gap: 8px;
    margin-bottom: 12px;
}
.wf-app .wf-rmbtn {
    flex: 1;
    padding: 10px 12px;
    background: #fff;
    border: 1.5px solid rgba(120, 80, 20, .25);
    border-radius: 10px;
    font-size: 13px;
    font-weight: 700;
    color: #6e4f26;
    cursor: pointer;
    transition: background .14s, color .14s, border-color .14s;
}
.wf-app .wf-rmbtn.on {
    background: linear-gradient(135deg, #5b3f18 0%, #a8630c 100%);
    color: #fff;
    border-color: transparent;
}
.wf-app .wf-rmbtn:not(.on):hover { background: #f8f1e4; }

/* ボトリング区分バッジ（旧・現行など） */
.wf-app .wf-bottling-badge {
    display: inline-block;
    margin: 2px 0 4px;
    padding: 2px 10px;
    font-size: 11px;
    font-weight: 700;
    color: #6e4f26;
    background: #f3ead9;
    border: 1px solid rgba(120, 80, 20, .2);
    border-radius: 999px;
}

/* エディション一覧：区分バッジ（限定バッジと並べて表示） */
.wf-app .wf-bottling-badge-sm {
    display: inline-block;
    margin-left: 6px;
    padding: 1px 8px;
    font-size: 10.5px;
    font-weight: 700;
    color: #6e4f26;
    background: #f3ead9;
    border: 1px solid rgba(120, 80, 20, .22);
    border-radius: 999px;
    vertical-align: middle;
}

/* カード：区分＋限定バッジの行 */
.wf-app .wf-badge-row {
    display: flex;
    gap: 5px;
    flex-wrap: wrap;
    margin: 2px 0 4px;
}
.wf-app .wf-badge-row .wf-bottling-badge { margin: 0; }

/* ツールバーの並び替え選択 */
.wf-app .wf-sort-wrap {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: #6e4f26;
    font-weight: 600;
}
.wf-app .wf-toolbar .wf-sort {
    padding: 6px 10px;
    border: 1.5px solid rgba(120, 80, 20, .25);
    border-radius: 8px;
    background: #fff;
    font-size: 13px;
    color: #2b1c0b;
}
.wf-app .wf-toolbar {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

/* ═══════════════ 店舗ダッシュボード（特典チケット） ═══════════════ */
.wf-store-dash { max-width: 760px; margin: 0 auto; padding: 8px; }
.wf-store-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; flex-wrap: wrap; }
.wf-store-head h2 { margin: 0; font-size: 20px; color: #5b3f18; }
.wf-store-name { font-size: 15px; font-weight: 700; color: #6e4f26; margin: 0; }
.wf-store-switch { padding: 8px 12px; border: 1.5px solid rgba(120,80,20,.25); border-radius: 8px; font-size: 14px; }
.wf-store-note { padding: 14px; background: #fff8e8; border: 1px solid #e0b458; border-radius: 10px; color: #8a6d3b; }
.wf-store-guard { text-align: center; padding: 30px 16px; }
.wf-store-loading { color: #9a8a72; text-align: center; padding: 20px; }

.wf-st-sec { background: #fff; border: 1px solid rgba(120,80,20,.16); border-radius: 12px; padding: 16px; margin-bottom: 16px; }
.wf-st-sec h3 { margin: 0 0 12px; font-size: 15px; color: #5b3f18; }
.wf-st-empty { color: #9a8a72; font-size: 13px; margin: 0; }

.wf-st-form { display: flex; flex-direction: column; gap: 10px; }
.wf-st-form input, .wf-st-form textarea { width: 100%; box-sizing: border-box; padding: 9px 12px; border: 1.5px solid rgba(120,80,20,.25); border-radius: 8px; font-size: 14px; }
.wf-st-row { display: flex; gap: 10px; flex-wrap: wrap; }
.wf-st-row label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; font-weight: 700; color: #6e4f26; flex: 1; min-width: 90px; }
.wf-st-row input { width: 100%; }
.wf-st-create { padding: 11px; background: linear-gradient(135deg,#5b3f18,#a8630c); color: #fff; border: none; border-radius: 10px; font-size: 14px; font-weight: 700; cursor: pointer; }
.wf-st-msg { color: #c0392b; font-size: 12.5px; font-weight: 700; margin: 4px 0 0; }

.wf-st-ticket, .wf-st-holder { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px; border: 1px solid rgba(120,80,20,.14); border-radius: 10px; margin-bottom: 8px; }
.wf-st-ticket.is-paused { opacity: .6; }
.wf-st-tinfo strong { font-size: 14px; color: #2b1c0b; }
.wf-st-tag { display: inline-block; margin-left: 6px; padding: 1px 8px; font-size: 10px; background: #eee; border-radius: 999px; color: #888; }
.wf-st-tmeta { font-size: 11.5px; color: #9a8a72; margin-top: 4px; }
.wf-st-tdesc { font-size: 12px; color: #5b4a30; margin-top: 4px; }
.wf-st-tactions { display: flex; gap: 6px; flex-shrink: 0; }
.wf-st-tactions button, .wf-st-redeem { padding: 6px 12px; border-radius: 8px; font-size: 12px; font-weight: 700; cursor: pointer; border: 1px solid rgba(120,80,20,.3); background: #fff; color: #6e4f26; }
.wf-st-del { color: #c0392b !important; border-color: #e0a5a5 !important; }
.wf-st-redeem { background: linear-gradient(135deg,#2f7d45,#3fa05a) !important; color: #fff !important; border: none !important; }
.wf-st-code { display: inline-block; margin-left: 8px; padding: 2px 8px; background: #f3ead9; border-radius: 6px; font-family: monospace; font-weight: 700; letter-spacing: 1px; color: #6e4f26; }
.wf-st-hmeta { font-size: 11.5px; color: #9a8a72; margin-top: 3px; }
.wf-st-history { display: flex; flex-direction: column; gap: 4px; }
.wf-st-hrow { display: grid; grid-template-columns: 1fr 1fr auto; gap: 8px; padding: 7px 0; border-bottom: 1px dashed rgba(120,80,20,.15); font-size: 12.5px; color: #5b4a30; }

/* ═══════ 店舗ダッシュボード：スマホ最適化 ═══════ */
@media (max-width: 600px) {
    .wf-store-dash { padding: 4px; }
    .wf-store-head { flex-direction: column; align-items: stretch; gap: 8px; }
    .wf-store-head h2 { font-size: 18px; }
    .wf-store-switch { width: 100%; }
    .wf-st-sec { padding: 13px; border-radius: 10px; }
    /* 発行フォームの数値入力を縦積みで大きく */
    .wf-st-row { flex-direction: column; gap: 8px; }
    .wf-st-row label { min-width: 0; }
    .wf-st-form input, .wf-st-form textarea { font-size: 16px; padding: 11px 12px; }  /* iOS拡大防止に16px */
    .wf-st-create { padding: 14px; font-size: 15px; }
    /* チケット・保有者・履歴を縦積みに */
    .wf-st-ticket, .wf-st-holder { flex-direction: column; align-items: stretch; gap: 8px; }
    .wf-st-tactions { justify-content: stretch; }
    .wf-st-tactions button { flex: 1; padding: 11px; font-size: 13px; }
    .wf-st-redeem { width: 100%; padding: 13px; font-size: 15px; }
    .wf-st-hrow { grid-template-columns: 1fr; gap: 2px; padding: 9px 0; }
    .wf-st-hrow span:nth-child(3) { color: #9a8a72; font-size: 11px; }
    .wf-st-code { font-size: 15px; }
}
/* タップしやすい最低サイズ（全デバイス） */
.wf-st-tactions button, .wf-st-redeem, .wf-st-create { min-height: 40px; }

/* ═══════ お店の詳細：チケット取得 ═══════ */
.wf-place-tickets { margin-top: 12px; padding-top: 12px; border-top: 1px dashed rgba(120,80,20,.25); }
.wf-pt-head { font-size: 13px; font-weight: 800; color: #6e4f26; margin: 0 0 8px; }
.wf-pt-item { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 10px; background: #faf6ef; border-radius: 8px; margin-bottom: 6px; }
.wf-pt-info { display: flex; flex-direction: column; gap: 2px; }
.wf-pt-info strong { font-size: 13.5px; color: #2b1c0b; }
.wf-pt-desc { font-size: 11.5px; color: #6e5a3c; }
.wf-pt-exp { font-size: 11px; color: #9a8a72; }
.wf-pt-btn { padding: 7px 14px; border: none; border-radius: 8px; font-size: 12.5px; font-weight: 700; cursor: pointer; white-space: nowrap; background: linear-gradient(135deg,#5b3f18,#a8630c); color: #fff; text-decoration: none; }
.wf-pt-login { background: #6e4f26; }
.wf-pt-got { font-size: 12px; font-weight: 700; color: #2b7a2b; white-space: nowrap; }
.wf-pt-full { font-size: 12px; color: #999; white-space: nowrap; }

/* ═══════ マイページ：マイチケット ═══════ */
.wf-myticket-section { margin-top: 22px; }
.wf-mt-count { font-size: 12px; background: #a8630c; color: #fff; padding: 2px 10px; border-radius: 999px; margin-left: 8px; vertical-align: middle; }
.wf-mt-guide { font-size: 12.5px; color: #6e5a3c; margin: 0 0 12px; }
.wf-mt-list { display: flex; flex-direction: column; gap: 10px; }
.wf-mt-card { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px; border-radius: 12px; border: 1.5px solid rgba(120,80,20,.2); background: #fff; }
.wf-mt-card.is-active { border-color: #a8630c; background: linear-gradient(135deg,#fffaf2,#fff6e8); }
.wf-mt-card.is-used, .wf-mt-card.is-expired { opacity: .55; }
.wf-mt-title { font-size: 15px; font-weight: 800; color: #2b1c0b; }
.wf-mt-place { font-size: 12px; color: #6e4f26; margin-top: 2px; }
.wf-mt-desc { font-size: 12px; color: #6e5a3c; margin-top: 4px; }
.wf-mt-status { text-align: right; flex-shrink: 0; display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.wf-mt-badge { font-size: 11px; font-weight: 800; padding: 3px 10px; border-radius: 999px; }
.wf-mt-badge.active { background: #2b7a2b; color: #fff; }
.wf-mt-badge.used { background: #999; color: #fff; }
.wf-mt-badge.expired { background: #c0392b; color: #fff; }
.wf-mt-code { font-family: monospace; font-size: 18px; font-weight: 800; letter-spacing: 2px; color: #a8630c; background: #f3ead9; padding: 3px 12px; border-radius: 8px; }
.wf-mt-status small { font-size: 10.5px; color: #9a8a72; }

@media (max-width: 600px) {
    .wf-pt-item { flex-direction: column; align-items: stretch; }
    .wf-pt-btn { text-align: center; padding: 10px; font-size: 14px; }
    .wf-mt-card { flex-direction: column; align-items: stretch; }
    .wf-mt-status { text-align: left; align-items: flex-start; }
    .wf-mt-code { font-size: 22px; }
}

/* チケット：案内文・マイページ誘導 */
.wf-pt-note { font-size: 11.5px; color: #6e5a3c; margin: 0 0 8px; line-height: 1.6; }
.wf-pt-note a { color: #a8630c; font-weight: 700; }
.wf-pt-mypage { display: block; text-align: center; margin-top: 8px; padding: 9px; font-size: 12.5px; font-weight: 700; color: #6e4f26; background: #f3ead9; border-radius: 8px; text-decoration: none; }

/* マイチケット：残回数・利用ボタン */
.wf-mt-left { font-size: 12px; color: #6e4f26; font-weight: 700; }
.wf-mt-left strong { font-size: 17px; color: #a8630c; }
.wf-mt-use { margin-top: 6px; padding: 10px 16px; border: none; border-radius: 10px; background: linear-gradient(135deg,#2f7d45,#3fa05a); color: #fff; font-size: 13.5px; font-weight: 800; cursor: pointer; min-height: 42px; }
.wf-mt-use:disabled { opacity: .5; cursor: default; }

/* マイチケット：利用履歴 */
.wf-mt-history { margin-top: 14px; background: #fff; border: 1px solid rgba(120,80,20,.16); border-radius: 10px; padding: 10px 14px; }
.wf-mt-history summary { cursor: pointer; font-size: 13px; font-weight: 700; color: #6e4f26; }
.wf-mt-hlist { margin-top: 10px; display: flex; flex-direction: column; gap: 6px; }
.wf-mt-hrow { display: grid; grid-template-columns: 120px 1fr 1fr; gap: 8px; font-size: 12px; color: #5b4a30; padding: 6px 0; border-bottom: 1px dashed rgba(120,80,20,.15); }
.wf-mt-hdate { color: #9a8a72; }

@media (max-width: 600px) {
    .wf-mt-use { width: 100%; }
    .wf-mt-hrow { grid-template-columns: 1fr; gap: 2px; }
}

/* マイチケット：削除操作 */
.wf-mt-dismiss { margin-top: 6px; padding: 5px 12px; border: 1px solid rgba(120,80,20,.3); border-radius: 8px; background: #fff; color: #8a7a5c; font-size: 11.5px; font-weight: 700; cursor: pointer; }
.wf-mt-dismiss:hover { background: #f5f0e6; }
.wf-mt-bulk { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 0 0 12px; }
.wf-mt-dismiss-all { padding: 8px 14px; border: 1px solid rgba(120,80,20,.3); border-radius: 8px; background: #fff; color: #6e4f26; font-size: 12.5px; font-weight: 700; cursor: pointer; }
.wf-mt-bulk-note { font-size: 11px; color: #9a8a72; }

/* 履歴：選択削除バー */
.wf-mt-hbar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 10px; padding-bottom: 8px; border-bottom: 1px solid rgba(120,80,20,.15); }
.wf-mt-hall { font-size: 12px; color: #6e4f26; font-weight: 700; display: flex; align-items: center; gap: 5px; }
.wf-mt-hbar button { padding: 6px 12px; border: 1px solid rgba(120,80,20,.3); border-radius: 8px; background: #fff; color: #6e4f26; font-size: 11.5px; font-weight: 700; cursor: pointer; }
.wf-mt-hdel-all { color: #b32d2e !important; border-color: #e0a5a5 !important; }
.wf-mt-hrow { grid-template-columns: 22px 120px 1fr 1fr !important; align-items: center; cursor: pointer; }
.wf-mt-hrow input { margin: 0; }

@media (max-width: 600px) {
    .wf-mt-hrow { grid-template-columns: 22px 1fr !important; gap: 2px 8px; }
    .wf-mt-hbar button { flex: 1; padding: 9px; }
}
.wf-mt-keep { color: #9a8a72; font-size: 10.5px; }

/* 履歴セクションをチケット一覧から視覚的に分離 */
.wf-mt-history.wf-mypage-section { margin-top: 20px; border: 1px solid rgba(120,80,20,.2); border-radius: 12px; background: #fbf9f5; }
.wf-mt-hnote { font-size: 11.5px; color: #6e5a3c; line-height: 1.6; margin: 8px 0 0; padding: 8px 10px; background: #fff; border-radius: 8px; }
.wf-mt-hlabel { font-size: 12px; font-weight: 800; color: #6e4f26; }

/* ═══ チケット利用履歴：行レイアウトの修正 ═══ */
/* PC：チェック／日時／店名／チケット名の4列 */
.wf-app .wf-mt-hrow,
.wf-mypage-wrap .wf-mt-hrow {
    display: grid;
    grid-template-columns: 24px 140px minmax(0, 1.2fr) minmax(0, 1fr) !important;
    align-items: center;
    gap: 4px 10px;
    padding: 10px 2px;
}
.wf-mypage-wrap .wf-mt-hrow > span { min-width: 0; overflow-wrap: anywhere; }
.wf-mypage-wrap .wf-mt-hplace { font-weight: 700; color: #5b4a30; }
.wf-mypage-wrap .wf-mt-htitle { color: #6e5a3c; }

/* スマホ：チェックボックスは左に固定し、文字は必ず右側の列に積む
   （col1に回り込むと1文字ずつ改行されてしまうため） */
@media (max-width: 600px) {
    .wf-mypage-wrap .wf-mt-hrow {
        grid-template-columns: 24px minmax(0, 1fr) !important;
        gap: 1px 10px;
        padding: 11px 2px;
    }
    .wf-mypage-wrap .wf-mt-hrow > span { grid-column: 2 !important; }
    .wf-mypage-wrap .wf-mt-hrow input { grid-column: 1; grid-row: 1 / span 3; align-self: start; margin-top: 2px; }
    .wf-mypage-wrap .wf-mt-hdate { font-size: 11px; }
    .wf-mypage-wrap .wf-mt-hplace { font-size: 13.5px; }
    .wf-mypage-wrap .wf-mt-htitle { font-size: 12.5px; }

    /* 履歴の操作バーも縦積みにして押しやすく */
    .wf-mypage-wrap .wf-mt-hbar { flex-direction: column; align-items: stretch; gap: 8px; }
    .wf-mypage-wrap .wf-mt-hbar button { width: 100%; padding: 11px; font-size: 13px; }
    .wf-mypage-wrap .wf-mt-hall { padding: 2px 0; }
}

/* ═══ 店舗ダッシュボード：タブ構成 ═══ */
.wf-st-tabs { display: flex; gap: 4px; margin-bottom: 14px; flex-wrap: wrap; }
.wf-st-tab { flex: 1; min-width: 84px; padding: 10px 6px; background: #fff; border: 1.5px solid rgba(120,80,20,.22); border-radius: 10px; font-size: 12.5px; font-weight: 700; color: #6e4f26; cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 5px; }
.wf-st-tab.on { background: linear-gradient(135deg,#5b3f18,#a8630c); color: #fff; border-color: transparent; }
.wf-st-tnum { background: rgba(0,0,0,.12); padding: 1px 7px; border-radius: 999px; font-size: 11px; }
.wf-st-tab.on .wf-st-tnum { background: rgba(255,255,255,.25); }

.wf-st-hint { font-size: 11.5px; color: #6e5a3c; margin: 0 0 10px; }
.wf-st-search { width: 100%; box-sizing: border-box; padding: 10px 12px; margin-bottom: 10px; border: 1.5px solid rgba(120,80,20,.25); border-radius: 8px; font-size: 16px; }

/* チケットを折りたたみ表示（多くても散らからない） */
.wf-st-ticket { border: 1px solid rgba(120,80,20,.18); border-radius: 10px; margin-bottom: 8px; background: #fff; overflow: hidden; }
.wf-st-ticket > summary { list-style: none; cursor: pointer; padding: 12px 14px; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; }
.wf-st-ticket > summary::-webkit-details-marker { display: none; }
.wf-st-ticket > summary::before { content: '▶'; font-size: 10px; color: #a8630c; margin-right: 2px; }
.wf-st-ticket[open] > summary::before { content: '▼'; }
.wf-st-ticket[open] > summary { background: #faf6ef; border-bottom: 1px solid rgba(120,80,20,.12); }
.wf-st-tname { font-size: 14px; font-weight: 800; color: #2b1c0b; }
.wf-st-tag { font-size: 10px; font-weight: 700; padding: 2px 8px; border-radius: 999px; background: #eee; color: #888; }
.wf-st-tag.on { background: #e6f2e6; color: #2b7a2b; }
.wf-st-tsum { flex-basis: 100%; font-size: 11px; color: #9a8a72; }

.wf-st-edit { padding: 14px; display: flex; flex-direction: column; gap: 10px; }
.wf-st-edit label { display: flex; flex-direction: column; gap: 4px; font-size: 11.5px; font-weight: 700; color: #6e4f26; }
.wf-st-edit input, .wf-st-edit textarea { padding: 9px 11px; border: 1.5px solid rgba(120,80,20,.25); border-radius: 8px; font-size: 16px; width: 100%; box-sizing: border-box; }
.wf-st-check { flex-direction: row !important; align-items: center; gap: 6px !important; font-weight: 600 !important; }
.wf-st-check input { width: auto !important; }
.wf-st-eactions { display: flex; gap: 6px; flex-wrap: wrap; }
.wf-st-eactions button { flex: 1; min-width: 90px; min-height: 40px; padding: 9px; border-radius: 8px; border: 1px solid rgba(120,80,20,.3); background: #fff; color: #6e4f26; font-size: 12.5px; font-weight: 700; cursor: pointer; }
.wf-st-save { background: linear-gradient(135deg,#5b3f18,#a8630c) !important; color: #fff !important; border: none !important; }

.wf-st-hleft { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.wf-st-hrow { display: grid; grid-template-columns: 130px 1fr 1fr; gap: 4px 10px; padding: 8px 0; border-bottom: 1px dashed rgba(120,80,20,.15); font-size: 12.5px; color: #5b4a30; }
.wf-st-hdate { color: #9a8a72; }
.wf-st-hname { font-weight: 700; }

@media (max-width: 600px) {
    .wf-st-tab { font-size: 11.5px; min-width: 0; padding: 10px 4px; }
    .wf-st-eactions button { min-width: 0; }
    .wf-st-hrow { grid-template-columns: 1fr; gap: 1px; }
}

/* チケットの管理用ID表示 */
.wf-st-tid, .wf-mt-tid {
    font-family: monospace;
    font-size: 10.5px;
    font-weight: 700;
    color: #a8630c;
    background: #f3ead9;
    padding: 1px 6px;
    border-radius: 5px;
    letter-spacing: .5px;
}

/* マイページ統計：タップで該当セクションへ移動 */
.wf-mypage-wrap .wf-mypage-stats { flex-wrap: wrap; }
.wf-mypage-wrap .wf-stat-jump {
    font-family: inherit;
    border: 1px solid rgba(120, 80, 20, .18);
    background: #fff;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
    transition: background .15s, transform .1s, box-shadow .15s;
    position: relative;
}
.wf-mypage-wrap .wf-stat-jump:hover { background: #fffaf2; box-shadow: 0 2px 8px rgba(120,80,20,.12); }
.wf-mypage-wrap .wf-stat-jump:active { transform: scale(.97); }
.wf-mypage-wrap .wf-stat-jump::after {
    content: '›';
    position: absolute;
    top: 4px; right: 7px;
    font-size: 13px;
    color: #c9b9a0;
}

/* ═══════════════ イベント告知 ═══════════════ */
.wf-events { margin: 26px 0; }
.wf-events-title { font-size: 18px; color: #5b3f18; margin: 0 0 12px; }
.wf-events-track {
    display: flex; gap: 12px; overflow-x: auto; padding: 4px 2px 12px;
    scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch;
}
.wf-events-track::-webkit-scrollbar { height: 6px; }
.wf-events-track::-webkit-scrollbar-thumb { background: rgba(120,80,20,.25); border-radius: 999px; }
.wf-event-card {
    flex: 0 0 268px; scroll-snap-align: start;
    background: #fff; border: 1px solid rgba(120,80,20,.16); border-radius: 14px;
    overflow: hidden; display: flex; flex-direction: column;
    box-shadow: 0 2px 10px rgba(120,80,20,.07);
}
.wf-event-thumb { position: relative; aspect-ratio: 16 / 9; background: #f3ead9; display: flex; align-items: center; justify-content: center; }
.wf-event-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.wf-event-noimg { font-size: 34px; opacity: .35; }
.wf-event-badge { position: absolute; top: 8px; left: 8px; font-size: 10.5px; font-weight: 800; padding: 3px 10px; border-radius: 999px; color: #fff; }
.wf-event-badge.now  { background: #2f7d45; }
.wf-event-badge.soon { background: #a8630c; }
.wf-event-body { padding: 12px 14px 14px; display: flex; flex-direction: column; gap: 5px; flex: 1; }
.wf-event-date { font-size: 11.5px; font-weight: 700; color: #a8630c; margin: 0; }
.wf-event-name { font-size: 15px; font-weight: 800; color: #2b1c0b; margin: 0; line-height: 1.4; }
.wf-event-place { font-size: 12px; color: #6e4f26; margin: 0; }
.wf-event-excerpt { font-size: 12px; color: #6e5a3c; margin: 0; line-height: 1.6; }
.wf-event-more { margin-top: auto; padding: 9px; border: none; border-radius: 9px; background: linear-gradient(135deg,#5b3f18,#a8630c); color: #fff; font-size: 12.5px; font-weight: 700; cursor: pointer; }

/* イベント詳細モーダル */
.wf-event-modal { position: fixed; inset: 0; background: rgba(20,12,4,.6); z-index: 9999; display: flex; align-items: center; justify-content: center; padding: 16px; }
.wf-event-modal[hidden] { display: none; }
.wf-event-modal-inner { background: #fff; border-radius: 16px; max-width: 560px; width: 100%; max-height: 86vh; overflow-y: auto; position: relative; padding: 20px; }
.wf-event-close {
    position: sticky;
    float: right;
    bottom: 12px;
    margin-top: 8px;
    margin-left: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    border: none;
    border-radius: 50%;
    background: linear-gradient(135deg, #a8630c, #7d4a09);
    color: #fff;
    font-size: 26px;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 4px 14px rgba(90, 50, 10, .35);
    z-index: 5;
}
.wf-event-close:hover { opacity: .9; transform: scale(1.05); }
.wf-evm-main { width: 100%; border-radius: 10px; margin-bottom: 12px; }
.wf-evm-date { font-size: 12.5px; font-weight: 700; color: #a8630c; margin: 0 0 4px; }
.wf-evm-title { font-size: 19px; color: #2b1c0b; margin: 0 0 6px; }
.wf-evm-place { font-size: 13px; color: #6e4f26; margin: 0 0 12px; }
.wf-evm-body { font-size: 14px; line-height: 1.85; color: #4a3a24; }
.wf-evm-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 8px; margin-top: 14px; }
.wf-evm-gallery img { width: 100%; border-radius: 8px; }
.wf-evm-link, .wf-evm-contact { font-size: 13px; margin: 12px 0 0; }
.wf-evm-link a { color: #a8630c; font-weight: 700; }

/* イベント履歴ページ */
.wf-events-past { display: flex; flex-direction: column; gap: 14px; }
.wf-epast-item { display: flex; gap: 14px; background: #fff; border: 1px solid rgba(120,80,20,.14); border-radius: 12px; padding: 12px; }
.wf-epast-thumb { flex: 0 0 110px; aspect-ratio: 4/3; background: #f3ead9; border-radius: 8px; overflow: hidden; display: flex; align-items: center; justify-content: center; }
.wf-epast-thumb img { width: 100%; height: 100%; object-fit: cover; }
.wf-epast-body { flex: 1; min-width: 0; }
.wf-epast-date { font-size: 11.5px; color: #9a8a72; margin: 0 0 3px; font-weight: 700; }
.wf-epast-title { font-size: 15px; color: #2b1c0b; margin: 0 0 3px; }
.wf-epast-place { font-size: 12px; color: #6e4f26; margin: 0; }
.wf-epast-more summary { font-size: 12px; color: #a8630c; cursor: pointer; margin-top: 6px; font-weight: 700; }
.wf-epast-text { font-size: 13px; line-height: 1.8; color: #4a3a24; margin-top: 6px; }
.wf-epast-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(90px, 1fr)); gap: 6px; margin-top: 8px; }
.wf-epast-gallery img { width: 100%; border-radius: 6px; }
.wf-events-empty { color: #9a8a72; text-align: center; padding: 24px; }

/* 店舗ダッシュボード：イベント入力 */
.wf-ev-form { display: flex; flex-direction: column; gap: 10px; padding: 14px; }
.wf-ev-form label { display: flex; flex-direction: column; gap: 4px; font-size: 11.5px; font-weight: 700; color: #6e4f26; }
.wf-ev-form input, .wf-ev-form textarea { padding: 9px 11px; border: 1.5px solid rgba(120,80,20,.25); border-radius: 8px; font-size: 16px; width: 100%; box-sizing: border-box; }
.wf-ev-hint { font-size: 11px; color: #9a8a72; margin: -4px 0 0; line-height: 1.6; }
.wf-ev-main { display: flex; gap: 10px; align-items: center; }
.wf-ev-thumb { width: 120px; aspect-ratio: 16/9; border-radius: 8px; overflow: hidden; background: #f3ead9; display: flex; align-items: center; justify-content: center; font-size: 11px; color: #9a8a72; flex-shrink: 0; }
.wf-ev-thumb img { width: 100%; height: 100%; object-fit: cover; }
.wf-ev-btns { display: flex; flex-direction: column; gap: 5px; }
.wf-ev-btns button, .wf-ev-up { padding: 7px 12px; border: 1px solid rgba(120,80,20,.3); border-radius: 8px; background: #fff; color: #6e4f26; font-size: 12px; font-weight: 700; cursor: pointer; }
.wf-ev-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(78px, 1fr)); gap: 6px; margin-bottom: 6px; }
.wf-ev-gitem { position: relative; aspect-ratio: 1; border-radius: 6px; overflow: hidden; }
.wf-ev-gitem img { width: 100%; height: 100%; object-fit: cover; }
.wf-ev-gdel { position: absolute; top: 2px; right: 2px; width: 20px; height: 20px; border: none; border-radius: 50%; background: rgba(0,0,0,.55); color: #fff; font-size: 13px; cursor: pointer; line-height: 1; }
.wf-ev-save { flex: 1; min-height: 40px; border: none !important; border-radius: 8px; background: linear-gradient(135deg,#5b3f18,#a8630c); color: #fff; font-weight: 700; font-size: 13px; cursor: pointer; }
.wf-ev-del { min-height: 40px; padding: 0 16px; border: 1px solid #e0a5a5; border-radius: 8px; background: #fff; color: #b32d2e; font-weight: 700; font-size: 12.5px; cursor: pointer; }
.wf-ev-msg { font-size: 12px; font-weight: 700; color: #c0392b; margin: 0; }

@media (max-width: 600px) {
    .wf-event-card { flex-basis: 82%; }
    .wf-epast-item { flex-direction: column; }
    .wf-epast-thumb { flex-basis: auto; width: 100%; aspect-ratio: 16/9; }
    .wf-event-modal-inner { padding: 16px; max-height: 92vh; }
}

/* 種別タブ：各図鑑ページへのリンクとして表示 */
.wf-type-tabs .wf-type-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}
.wf-app .wf-shell--top { display: flex; flex-direction: column; gap: 4px; }
.wf-events--app { margin-top: 18px; }
.wf-events--app .wf-events-title { font-size: 16px; }

/* ═══ トップページ：各図鑑ページへのリンクボタン ═══ */
.wf-toplinks {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
    gap: 8px;
    margin: 14px 0 6px;
}
.wf-toplink {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: 10px 8px;
    background: linear-gradient(135deg, #fffaf2, #fff4e4);
    border: 1.5px solid rgba(120, 80, 20, .22);
    border-radius: 12px;
    color: #5b3f18;
    font-size: 13.5px;
    font-weight: 800;
    text-align: center;
    text-decoration: none;
    line-height: 1.35;
    transition: transform .1s, box-shadow .15s, border-color .15s;
}
.wf-toplink:hover {
    border-color: #a8630c;
    box-shadow: 0 3px 12px rgba(120, 80, 20, .16);
    color: #a8630c;
}
.wf-toplink:active { transform: scale(.97); }
.wf-toplink-label { display: block; }

@media (max-width: 600px) {
    .wf-toplinks { grid-template-columns: repeat(3, 1fr); gap: 6px; }
    .wf-toplink { min-height: 48px; font-size: 12px; padding: 8px 4px; border-radius: 10px; }
}

/* ═══ 種別リンク（図鑑ページ）：トップページのボタンと同じ見た目に統一 ═══ */
.wf-app .wf-type-tabs--primary {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
    gap: 8px;
    margin: 0 0 14px;
    padding: 0;
    border: 0;
    background: none;
}
.wf-app .wf-type-tabs--primary .wf-type-link,
.wf-app .wf-type-tabs--primary button {
    display: flex !important;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: 10px 8px;
    background: linear-gradient(135deg, #fffaf2, #fff4e4);
    border: 1.5px solid rgba(120, 80, 20, .22);
    border-radius: 12px;
    color: #5b3f18;
    font-size: 13.5px;
    font-weight: 800;
    text-align: center;
    text-decoration: none !important;
    line-height: 1.35;
    box-shadow: none;
    cursor: pointer;
    transition: transform .1s, box-shadow .15s, border-color .15s, background .15s;
}
.wf-app .wf-type-tabs--primary .wf-type-link:hover,
.wf-app .wf-type-tabs--primary button:hover {
    border-color: #a8630c;
    color: #a8630c;
    box-shadow: 0 3px 12px rgba(120, 80, 20, .16);
}
.wf-app .wf-type-tabs--primary .wf-type-link:active { transform: scale(.97); }

/* 現在表示中のページを強調 */
.wf-app .wf-type-tabs--primary .wf-type-link.on,
.wf-app .wf-type-tabs--primary button.on {
    background: linear-gradient(135deg, #5b3f18, #a8630c);
    border-color: transparent;
    color: #fff !important;
    box-shadow: 0 3px 12px rgba(120, 80, 20, .22);
}

@media (max-width: 600px) {
    .wf-app .wf-type-tabs--primary { grid-template-columns: repeat(3, 1fr); gap: 6px; }
    .wf-app .wf-type-tabs--primary .wf-type-link,
    .wf-app .wf-type-tabs--primary button {
        min-height: 48px; font-size: 12px; padding: 8px 4px; border-radius: 10px;
    }
}

/* ═══ 店舗ログイン（ダッシュボードのページ内） ═══ */
.wf-store-login { display: flex; justify-content: center; padding: 20px 12px; }
.wf-slogin-card {
    width: 100%; max-width: 380px; background: #fff;
    border: 1px solid rgba(120,80,20,.18); border-radius: 16px;
    padding: 26px 22px; box-shadow: 0 4px 18px rgba(120,80,20,.10);
}
.wf-slogin-head { text-align: center; margin-bottom: 18px; }
.wf-slogin-brand { font-size: 11px; letter-spacing: .08em; color: #a8630c; margin: 0 0 4px; font-weight: 700; }
.wf-slogin-head h2 { font-size: 19px; color: #5b3f18; margin: 0 0 8px; }
.wf-slogin-note { font-size: 12px; color: #6e5a3c; margin: 0; line-height: 1.6; }
.wf-slogin-error {
    background: #fdecea; border: 1px solid #e0a5a5; color: #b32d2e;
    font-size: 12.5px; font-weight: 700; padding: 9px 12px; border-radius: 8px; margin: 0 0 14px;
}
.wf-slogin-card form { display: flex; flex-direction: column; gap: 12px; }
.wf-slogin-card label { display: flex; flex-direction: column; gap: 5px; font-size: 12px; font-weight: 700; color: #6e4f26; }
.wf-slogin-card input[type="text"],
.wf-slogin-card input[type="password"] {
    padding: 12px; border: 1.5px solid rgba(120,80,20,.25); border-radius: 9px;
    font-size: 16px; width: 100%; box-sizing: border-box;
}
.wf-slogin-remember { flex-direction: row !important; align-items: center; gap: 7px !important; font-weight: 600 !important; font-size: 12px; }
.wf-slogin-remember input { width: auto; }
.wf-slogin-card button {
    margin-top: 4px; padding: 14px; border: none; border-radius: 10px;
    background: linear-gradient(135deg,#5b3f18,#a8630c); color: #fff;
    font-size: 15px; font-weight: 800; cursor: pointer;
}
.wf-slogin-help { font-size: 11.5px; color: #9a8a72; text-align: center; margin: 16px 0 0; line-height: 1.7; }
.wf-slogin-help a { color: #a8630c; }

/* イベント：時間指定のクリア */
.wf-ev-timeclear { display: flex; flex-direction: column; gap: 4px; margin: -2px 0 0; }
.ev-tclear {
    align-self: flex-start;
    padding: 7px 13px;
    border: 1px solid rgba(120,80,20,.3);
    border-radius: 8px;
    background: #fff;
    color: #6e4f26;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
}
.ev-tclear:hover { background: #faf6ef; }

/* ═══ マイページ：店舗ダッシュボードへの入口 ═══ */
.wf-mypage-wrap .wf-store-entry { margin: 14px auto 4px; max-width: 420px; }
.wf-mypage-wrap .wf-store-entry-btn {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    background: linear-gradient(135deg, #5b3f18, #a8630c);
    border-radius: 14px;
    color: #fff !important;
    text-decoration: none !important;
    box-shadow: 0 3px 14px rgba(120, 80, 20, .22);
    transition: transform .1s, box-shadow .15s;
}
.wf-mypage-wrap .wf-store-entry-btn:hover { box-shadow: 0 5px 18px rgba(120, 80, 20, .3); }
.wf-mypage-wrap .wf-store-entry-btn:active { transform: scale(.98); }
.wf-store-entry-ico { font-size: 24px; flex-shrink: 0; }
.wf-store-entry-txt { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; text-align: left; }
.wf-store-entry-txt strong { font-size: 15px; font-weight: 800; }
.wf-store-entry-txt small { font-size: 11.5px; opacity: .85; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wf-store-entry-arrow { font-size: 22px; opacity: .7; flex-shrink: 0; }
.wf-store-entry-note { font-size: 11px; color: #9a8a72; text-align: center; margin: 6px 0 0; }

/* ═══ 店舗ダッシュボード：見出しを白に ═══ */
.wf-store-dash h2,
.wf-store-dash .wf-store-head h2,
.wf-store-dash .wf-st-sec h3,
.wf-store-dash .wf-slogin-head h2 {
    color: #fff !important;
}
/* 白文字が背景に埋もれないよう、見出しに下地を敷く */
.wf-store-dash .wf-store-head h2,
.wf-store-dash .wf-slogin-head h2 {
    background: linear-gradient(135deg, #5b3f18, #a8630c);
    padding: 10px 16px;
    border-radius: 10px;
    display: inline-block;
    margin: 0;
}
.wf-store-dash .wf-st-sec h3 {
    background: linear-gradient(135deg, #5b3f18, #a8630c);
    padding: 9px 14px;
    border-radius: 9px;
    margin: -16px -16px 14px;
    border-radius: 12px 12px 0 0;
}

/* ═══ 店舗ダッシュボード：飲める銘柄 ═══ */
.wf-si-search {
    width: 100%; box-sizing: border-box; padding: 11px 13px;
    border: 1.5px solid rgba(120,80,20,.25); border-radius: 9px;
    font-size: 16px; margin-bottom: 10px;
}
.wf-si-results { display: flex; flex-direction: column; gap: 6px; }
.wf-si-loading { font-size: 12.5px; color: #9a8a72; margin: 4px 0; }
.wf-si-list { display: flex; flex-direction: column; gap: 6px; }
.wf-si-item {
    display: flex; align-items: center; justify-content: space-between; gap: 10px;
    padding: 11px 13px; background: #fff;
    border: 1px solid rgba(120,80,20,.16); border-radius: 9px;
}
.wf-si-info { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.wf-si-info strong { font-size: 13.5px; color: #2b1c0b; overflow-wrap: anywhere; }
.wf-si-maker { font-size: 11px; color: #9a8a72; }
.wf-si-add {
    flex-shrink: 0; padding: 8px 16px; min-height: 38px; border: none; border-radius: 8px;
    background: linear-gradient(135deg,#2f7d45,#3fa05a); color: #fff;
    font-size: 12.5px; font-weight: 700; cursor: pointer;
}
.wf-si-remove {
    flex-shrink: 0; padding: 7px 14px; min-height: 36px;
    border: 1px solid #e0a5a5; border-radius: 8px; background: #fff;
    color: #b32d2e; font-size: 12px; font-weight: 700; cursor: pointer;
}
.wf-si-on { flex-shrink: 0; font-size: 12px; font-weight: 700; color: #2b7a2b; }

/* マイページの店舗ボタン：文字の折り返しを防ぐ */
.wf-mypage-wrap .wf-store-entry-btn { padding: 13px 14px; gap: 10px; align-items: center; }
.wf-mypage-wrap .wf-store-entry-txt { gap: 1px; }
.wf-mypage-wrap .wf-store-entry-txt strong {
    font-size: 14.5px;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.wf-mypage-wrap .wf-store-entry-txt small { line-height: 1.3; }
.wf-mypage-wrap .wf-store-entry-ico { font-size: 22px; }
.wf-mypage-wrap .wf-store-entry-arrow { font-size: 20px; line-height: 1; }
@media (max-width: 380px) {
    .wf-mypage-wrap .wf-store-entry-txt strong { font-size: 13.5px; }
    .wf-mypage-wrap .wf-store-entry-btn { padding: 12px; gap: 8px; }
}

/* 飲める銘柄：未登録一覧（チェックボックス＋ページング） */
.wf-si-browse { margin-top: 18px; padding-top: 14px; border-top: 1px dashed rgba(120,80,20,.22); }
.wf-si-btitle { font-size: 12.5px; font-weight: 800; color: #6e4f26; margin: 0 0 10px; }
.wf-si-checks { display: flex; flex-direction: column; gap: 2px; margin-bottom: 10px; }
.wf-si-check {
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr);
    align-items: center;
    gap: 2px 8px;
    padding: 9px 6px;
    border-bottom: 1px dashed rgba(120,80,20,.14);
    cursor: pointer;
}
.wf-si-check input { margin: 0; grid-row: 1 / span 2; }
.wf-si-cname { font-size: 13.5px; font-weight: 700; color: #2b1c0b; overflow-wrap: anywhere; }
.wf-si-check .wf-si-maker { grid-column: 2; }
.wf-si-bar { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-bottom: 10px; }
.wf-si-allwrap { display: flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; color: #6e4f26; }
.wf-si-bulk {
    padding: 10px 16px; min-height: 40px; border: none; border-radius: 9px;
    background: linear-gradient(135deg,#2f7d45,#3fa05a); color: #fff;
    font-size: 13px; font-weight: 700; cursor: pointer;
}
.wf-si-pager { display: flex; align-items: center; justify-content: center; gap: 10px; }
.wf-si-pager button {
    padding: 8px 14px; min-height: 38px; border: 1px solid rgba(120,80,20,.3);
    border-radius: 8px; background: #fff; color: #6e4f26; font-size: 12.5px; font-weight: 700; cursor: pointer;
}
.wf-si-pager button:disabled { opacity: .4; cursor: default; }
.wf-si-pnum { font-size: 12px; color: #6e5a3c; }

@media (max-width: 600px) {
    .wf-si-bar { flex-direction: column; align-items: stretch; }
    .wf-si-bulk { width: 100%; }
}

/* ═══ 店舗ダッシュボード：タブの並び ═══ */
/* PCは6つを1行に */
.wf-store-dash .wf-st-tabs {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 6px;
    align-items: stretch;
}
.wf-store-dash .wf-st-tab {
    flex: none;
    min-width: 0;
    min-height: 52px;
    padding: 9px 6px;
    white-space: nowrap;      /* 1文字ずつ折り返さない */
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.3;
}
.wf-store-dash .wf-st-tnum { flex-shrink: 0; }

/* スマホは2列3段 */
@media (max-width: 600px) {
    .wf-store-dash .wf-st-tabs {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }
    .wf-store-dash .wf-st-tab {
        min-height: 50px;
        font-size: 13px;
        padding: 10px 8px;
        justify-content: center;
        gap: 6px;
    }
}

/* ═══ イベントカード：ボタンが消えないよう指定を強める ═══ */
.wf-app .wf-event-card .wf-event-more,
.wf-events .wf-event-card .wf-event-more,
button.wf-event-more {
    display: block !important;
    width: 100%;
    margin-top: 10px !important;
    padding: 12px 10px !important;
    border: none !important;
    border-radius: 10px !important;
    background: linear-gradient(135deg, #5b3f18, #a8630c) !important;
    background-color: #5b3f18 !important;   /* グラデーション非対応時の保険 */
    color: #fff !important;
    font-size: 13.5px !important;
    font-weight: 800 !important;
    line-height: 1.4 !important;
    text-align: center !important;
    text-decoration: none !important;
    box-shadow: 0 2px 8px rgba(120, 80, 20, .22) !important;
    cursor: pointer;
    opacity: 1 !important;
    visibility: visible !important;
    -webkit-appearance: none;
    appearance: none;
}
.wf-app .wf-event-card .wf-event-more:hover,
button.wf-event-more:hover { filter: brightness(1.08); }
.wf-app .wf-event-card .wf-event-more:active { transform: scale(.98); }

/* カード内の余白を詰める（説明が短いときの間延びを防ぐ） */
.wf-app .wf-event-body, .wf-events .wf-event-body { padding: 12px 14px 14px !important; }
.wf-app .wf-event-card, .wf-events .wf-event-card { height: auto; }

/* ═══ イベント詳細：操作ボタン ═══ */
.wf-evm-actions { display: flex; flex-direction: column; gap: 8px; margin: 16px 0 10px; }
.wf-evm-btn,
a.wf-evm-btn {
    display: block !important;
    width: 100%;
    box-sizing: border-box;
    padding: 13px 14px !important;
    border-radius: 10px !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    text-align: center !important;
    text-decoration: none !important;
    line-height: 1.4 !important;
    border: none !important;
    box-shadow: 0 2px 8px rgba(120, 80, 20, .2) !important;
}
a.wf-evm-btn.primary {
    background: linear-gradient(135deg, #5b3f18, #a8630c) !important;
    background-color: #5b3f18 !important;
    color: #fff !important;
}
a.wf-evm-btn.map {
    background: #fff !important;
    color: #2f7d45 !important;
    border: 1.5px solid #2f7d45 !important;
    box-shadow: none !important;
}
a.wf-evm-btn:hover { filter: brightness(1.06); }
.wf-evm-address, .wf-evm-contact { font-size: 12.5px; color: #6e5a3c; margin: 6px 0 0; line-height: 1.6; }

/* ═══ お店ガイド：イベント情報 ═══ */
.wf-place-events { margin-top: 12px; padding-top: 12px; border-top: 1px dashed rgba(120,80,20,.25); }
.wf-pe-head { font-size: 13px; font-weight: 800; color: #6e4f26; margin: 0 0 8px; }
.wf-pe-item { background: #fff7ec; border: 1px solid rgba(168,99,12,.28); border-radius: 10px; margin-bottom: 6px; overflow: hidden; }
.wf-pe-item > summary { list-style: none; cursor: pointer; padding: 10px 12px; display: flex; flex-direction: column; gap: 3px; }
.wf-pe-item > summary::-webkit-details-marker { display: none; }
.wf-pe-item > summary::after { content: '▼ 詳細を見る'; font-size: 11px; color: #a8630c; font-weight: 700; margin-top: 2px; }
.wf-pe-item[open] > summary::after { content: '▲ 閉じる'; }
.wf-pe-date { font-size: 11.5px; font-weight: 700; color: #a8630c; }
.wf-pe-title { font-size: 14px; font-weight: 800; color: #2b1c0b; line-height: 1.4; }
.wf-pe-body { padding: 0 12px 12px; }
.wf-pe-img { width: 100%; border-radius: 8px; margin-bottom: 8px; }
.wf-pe-text { font-size: 12.5px; color: #4a3a24; line-height: 1.75; margin: 0; }
.wf-pe-contact { font-size: 12px; color: #6e5a3c; margin: 6px 0 0; }

/* ═══ お店ガイド：全国対応レイアウト ═══ */
/* 掲載募集 */
.wf-places-cta {
    background: linear-gradient(135deg, #fffaf2, #fff2e0);
    border: 1.5px solid rgba(168, 99, 12, .3);
    border-radius: 14px;
    padding: 18px;
    margin-bottom: 18px;
    text-align: center;
}
.wf-pcta-lead { font-size: 15px; font-weight: 800; color: #5b3f18; margin: 0 0 8px; }
.wf-pcta-text { font-size: 12.5px; color: #6e5a3c; line-height: 1.8; margin: 0 0 12px; }
.wf-pcta-btn {
    display: inline-block;
    padding: 12px 24px;
    background: linear-gradient(135deg, #5b3f18, #a8630c);
    color: #fff !important;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 800;
    text-decoration: none !important;
    box-shadow: 0 2px 10px rgba(120, 80, 20, .22);
}

/* 地域の絞り込み */
.wf-pref-filter { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 16px; }
.wf-pref-btn {
    display: inline-flex; align-items: center; gap: 5px;
    padding: 7px 13px;
    background: #fff;
    border: 1.5px solid rgba(120, 80, 20, .22);
    border-radius: 999px;
    font-size: 12.5px;
    font-weight: 700;
    color: #6e4f26;
    cursor: pointer;
}
.wf-pref-btn span {
    font-size: 10.5px;
    background: rgba(120, 80, 20, .1);
    padding: 1px 6px;
    border-radius: 999px;
}
.wf-pref-btn.on {
    background: linear-gradient(135deg, #5b3f18, #a8630c);
    color: #fff;
    border-color: transparent;
}
.wf-pref-btn.on span { background: rgba(255, 255, 255, .25); }

/* 地域見出し・種別バッジ */
.wf-places-count { font-size: 11.5px; font-weight: 700; color: #9a8a72; margin-left: 8px; }
.wf-place-typetag {
    display: inline-block;
    margin-top: 3px;
    padding: 2px 9px;
    background: #f3ead9;
    border-radius: 999px;
    font-size: 10.5px;
    font-weight: 700;
    color: #6e4f26;
}

@media (max-width: 600px) {
    .wf-places-cta { padding: 15px; }
    .wf-pcta-btn { display: block; }
    .wf-pref-filter { gap: 5px; }
    .wf-pref-btn { font-size: 11.5px; padding: 6px 11px; }
}
.wf-pcta-sub { font-size: 11px; color: #9a8a72; margin: 8px 0 0; }

/* ═══ お店ガイド：多くの店舗を並べるための調整 ═══ */
.wf-places-list {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 12px;
    align-items: start;
}
.wf-place-card[data-hidden] { display: none !important; }
.wf-places-more {
    display: block;
    width: 100%;
    max-width: 320px;
    margin: 14px auto 0;
    padding: 11px;
    background: #fff;
    border: 1.5px solid rgba(120, 80, 20, .28);
    border-radius: 10px;
    color: #6e4f26;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
}
.wf-places-more:hover { background: #faf6ef; }

/* イベント・チケットは折りたたんで高さを抑える */
.wf-place-events, .wf-place-tickets { margin-top: 10px; padding-top: 10px; }
.wf-place-events > summary,
.wf-place-tickets > summary {
    list-style: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12.5px;
    font-weight: 800;
    color: #6e4f26;
    padding: 7px 10px;
    background: #faf6ef;
    border-radius: 8px;
    margin: 0;
}
.wf-place-events > summary::-webkit-details-marker,
.wf-place-tickets > summary::-webkit-details-marker { display: none; }
.wf-place-events > summary::after,
.wf-place-tickets > summary::after { content: '▼'; font-size: 9px; color: #a8630c; margin-left: auto; }
.wf-place-events[open] > summary::after,
.wf-place-tickets[open] > summary::after { content: '▲'; }
.wf-pe-num {
    background: #a8630c; color: #fff;
    font-size: 10.5px; font-weight: 700;
    padding: 1px 7px; border-radius: 999px;
}
.wf-place-events[open] > summary,
.wf-place-tickets[open] > summary { margin-bottom: 8px; }

/* カード内の余白を詰める */
.wf-place-card { padding: 14px; }
.wf-place-name { font-size: 15px; margin-bottom: 2px; }
.wf-place-addr, .wf-place-hours, .wf-place-tel { font-size: 12px; margin: 3px 0; }
.wf-place-actions { margin-top: 10px; gap: 6px; }

@media (max-width: 600px) {
    .wf-places-list { grid-template-columns: 1fr; }
}

/* ═══ お店ガイド：テーマ（SWELL）の本文幅に合わせる ═══ */
.wf-places-wrap {
    max-width: none !important;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
}
/* 幅が広がった分、1行に並ぶ店舗数を増やす */
@media (min-width: 900px) {
    .wf-places-list { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
}
@media (min-width: 1200px) {
    .wf-places-list { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; }
}

/* ═══════════════════════════════════════════
 * Instagramフィード（Smash Balloon）の見た目を
 * CASKADEの意匠に合わせる
 * ═══════════════════════════════════════════ */

/* 見出し付きの枠（[whisky_ig_section] または手動で .wf-ig で囲む） */
.wf-ig { margin: 26px 0; }
.wf-ig-head {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 12px;
}
.wf-ig-title {
    font-size: 18px !important;
    font-weight: 800;
    color: #5b3f18 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: none !important;
    border: none !important;
}
.wf-ig-title::before, .wf-ig-title::after { content: none !important; }
.wf-ig-sub { font-size: 11.5px; color: #9a8a72; margin: 0; }

/* フィード本体 */
#sb_instagram {
    padding: 0 !important;
    background: transparent !important;
}
#sb_instagram #sbi_images {
    gap: 8px !important;
    padding: 0 !important;
}
#sb_instagram #sbi_images .sbi_item {
    padding: 0 !important;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(120, 80, 20, .10);
    transition: transform .12s, box-shadow .15s;
}
#sb_instagram #sbi_images .sbi_item:hover {
    transform: translateY(-2px);
    box-shadow: 0 5px 16px rgba(120, 80, 20, .2);
}
#sb_instagram .sbi_photo_wrap, #sb_instagram .sbi_photo { border-radius: 12px; }
#sb_instagram .sbi_photo img { display: block; }

/* プラグイン側のヘッダーは非表示（上の .wf-ig-head を使う） */
.wf-ig #sb_instagram .sb_instagram_header { display: none !important; }

/* 「もっと見る」「フォロー」ボタンをサイトのボタン調に */
#sb_instagram .sbi_load_btn,
#sb_instagram .sbi_follow_btn a {
    background: linear-gradient(135deg, #5b3f18, #a8630c) !important;
    background-color: #5b3f18 !important;
    color: #fff !important;
    border: none !important;
    border-radius: 10px !important;
    padding: 12px 26px !important;
    font-size: 13.5px !important;
    font-weight: 800 !important;
    text-decoration: none !important;
    box-shadow: 0 2px 8px rgba(120, 80, 20, .22) !important;
    transition: filter .15s;
}
#sb_instagram .sbi_load_btn:hover,
#sb_instagram .sbi_follow_btn a:hover { filter: brightness(1.08); }
#sb_instagram .sbi_follow_btn { margin-top: 12px !important; }

/* キャプション・日付の文字色をサイトに合わせる */
#sb_instagram .sbi_caption, #sb_instagram .sbi_date {
    color: #6e5a3c !important;
    font-size: 12px !important;
    line-height: 1.7 !important;
}

@media (max-width: 600px) {
    #sb_instagram #sbi_images { gap: 6px !important; }
    #sb_instagram #sbi_images .sbi_item { border-radius: 10px; }
    #sb_instagram .sbi_load_btn,
    #sb_instagram .sbi_follow_btn a { width: 100%; text-align: center; padding: 13px !important; }
}

/* トップの枠内に置いたInstagramフィード */
.wf-shell--top .wf-ig { margin: 22px 0 4px; }
.wf-ig-src[hidden] { display: none; }

/* Instagram：各投稿の背景を白にして枠から浮かせる */
#sb_instagram #sbi_images .sbi_item,
#sb_instagram .sbi_item {
    background: #fff !important;
    background-color: #fff !important;
}
#sb_instagram .sbi_photo_wrap,
#sb_instagram .sbi_photo,
#sb_instagram .sbi_link,
#sb_instagram .sbi_info,
#sb_instagram .sbi_meta,
#sb_instagram .sbi_caption_wrap {
    background: #fff !important;
}
/* 画像下の余白も白で揃える */
#sb_instagram .sbi_item .sbi_photo_wrap { border-radius: 12px 12px 0 0; }
#sb_instagram .sbi_item .sbi_info { padding: 8px 10px 10px !important; }

/* ═══ 飲める銘柄：種別タブと新規登録 ═══ */
.wf-si-types { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 10px; }
.wf-si-type {
    padding: 7px 12px;
    background: #fff;
    border: 1.5px solid rgba(120, 80, 20, .22);
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    color: #6e4f26;
    cursor: pointer;
    white-space: nowrap;
}
.wf-si-type.on {
    background: linear-gradient(135deg, #5b3f18, #a8630c);
    border-color: transparent;
    color: #fff;
}

.wf-si-new { display: flex; flex-direction: column; gap: 10px; }
.wf-si-new label { display: flex; flex-direction: column; gap: 4px; font-size: 11.5px; font-weight: 700; color: #6e4f26; }
.wf-si-new input, .wf-si-new select {
    padding: 10px 12px;
    border: 1.5px solid rgba(120, 80, 20, .25);
    border-radius: 8px;
    font-size: 16px;
    width: 100%;
    box-sizing: border-box;
}
.wf-nw-save {
    min-height: 44px;
    border: none;
    border-radius: 9px;
    background: linear-gradient(135deg, #5b3f18, #a8630c);
    color: #fff;
    font-size: 13.5px;
    font-weight: 800;
    cursor: pointer;
}
.wf-nw-msg:empty { display: none; }
.wf-nw-ok  { font-size: 13px; font-weight: 700; color: #2b7a2b; margin: 0; }
.wf-nw-err { font-size: 12.5px; font-weight: 700; color: #c0392b; margin: 0; }
.wf-nw-wait { font-size: 12.5px; color: #9a8a72; margin: 0; }
.wf-nw-dupe {
    background: #fff7ec;
    border: 1.5px solid rgba(168, 99, 12, .3);
    border-radius: 10px;
    padding: 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.wf-nw-dtitle { font-size: 13px; font-weight: 800; color: #a8630c; margin: 0; }
.wf-nw-dnote { font-size: 11.5px; color: #6e5a3c; margin: 0; }
.wf-nw-force {
    padding: 10px;
    border: 1.5px solid rgba(120, 80, 20, .3);
    border-radius: 8px;
    background: #fff;
    color: #6e4f26;
    font-size: 12.5px;
    font-weight: 700;
    cursor: pointer;
}

/* ═══ 在庫状態 ═══ */
/* 銘柄ページのお店チップ */
.wf-stock-tag {
    display: inline-block;
    margin-left: 6px;
    padding: 1px 7px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 800;
    line-height: 1.6;
}
.wf-stock-tag.out  { background: #f3e3e3; color: #b32d2e; }
.wf-stock-tag.wait { background: #fdf0dc; color: #a8630c; }
.wf-place-chip--nostock { opacity: .78; }

/* 店舗ダッシュボードの切り替え */
.wf-si-hasstock { align-items: flex-start; }
.wf-si-stockrow { display: flex; gap: 4px; margin-top: 6px; flex-wrap: wrap; }
.wf-stk {
    padding: 5px 10px;
    border: 1.5px solid rgba(120, 80, 20, .22);
    border-radius: 999px;
    background: #fff;
    color: #9a8a72;
    font-size: 11px;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
}
.wf-stk.on       { background: #2f7d45; border-color: transparent; color: #fff; }
.wf-stk.on.out   { background: #b32d2e; }
.wf-stk.on.wait  { background: #a8630c; }

/* ═══ お店ガイド：設備・特徴の枠 ═══ */
.wf-place-fac {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin: 8px 0 2px;
    padding: 8px;
    background: #faf6ef;
    border: 1px solid rgba(120, 80, 20, .14);
    border-radius: 9px;
}
.wf-fac {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 9px;
    background: #fff;
    border: 1px solid rgba(120, 80, 20, .18);
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    color: #6e4f26;
    white-space: nowrap;
}
.wf-fac-ico { font-size: 12.5px; line-height: 1; }
.wf-fac--nosmoke { border-color: rgba(47, 125, 69, .4); color: #2f7d45; }
.wf-fac--smoking { border-color: rgba(158, 122, 60, .4); color: #8a6a2e; }
.wf-fac--karaoke { border-color: rgba(168, 99, 12, .4);  color: #a8630c; }

@media (max-width: 600px) {
    .wf-place-fac { padding: 7px; gap: 4px; }
    .wf-fac { font-size: 10.5px; padding: 3px 8px; }
}

/* 支払い方法の色分け */
.wf-fac--card     { border-color: rgba(52, 100, 168, .4); color: #34649e; }
.wf-fac--epay     { border-color: rgba(52, 100, 168, .4); color: #34649e; }
.wf-fac--cashonly { border-color: rgba(120, 80, 20, .35); color: #6e4f26; }

/* ═══ チケット画像 ═══ */
/* 店舗ダッシュボードの入力 */
.wf-tk-img { display: flex; flex-direction: column; gap: 5px; }
.wf-tk-ilabel { font-size: 11.5px; font-weight: 700; color: #6e4f26; }
.wf-tk-irow { display: flex; gap: 10px; align-items: center; }
.wf-tk-thumb {
    width: 110px; aspect-ratio: 16/10; flex-shrink: 0;
    border-radius: 8px; overflow: hidden; background: #f3ead9;
    display: flex; align-items: center; justify-content: center;
    font-size: 11px; color: #9a8a72; text-align: center;
}
.wf-tk-thumb img { width: 100%; height: 100%; object-fit: cover; }
.wf-tk-ibtns { display: flex; flex-direction: column; gap: 5px; }
.wf-tk-ibtns button {
    padding: 7px 12px; border: 1px solid rgba(120,80,20,.3); border-radius: 8px;
    background: #fff; color: #6e4f26; font-size: 12px; font-weight: 700; cursor: pointer;
}

/* お店ガイドのチケット */
.wf-pt-item { display: flex; gap: 10px; align-items: flex-start; }
.wf-pt-thumb {
    width: 76px; aspect-ratio: 16/10; flex-shrink: 0;
    border-radius: 7px; overflow: hidden; background: #f3ead9;
}
.wf-pt-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* マイページのチケット */
.wf-mt-thumb {
    width: 100%; aspect-ratio: 16/7; overflow: hidden;
    border-radius: 10px 10px 0 0; background: #f3ead9;
}
.wf-mt-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.wf-mt-card.is-used .wf-mt-thumb img,
.wf-mt-card.is-expired .wf-mt-thumb img { filter: grayscale(1); opacity: .6; }

@media (max-width: 600px) {
    .wf-tk-thumb { width: 92px; }
}

/* チケット画像は切り取らず全体を表示する */
.wf-mt-thumb {
    aspect-ratio: auto !important;
    background: #f7f2e8;
    border-radius: 10px 10px 0 0;
    overflow: hidden;
    line-height: 0;
}
.wf-mt-thumb img {
    width: 100% !important;
    height: auto !important;
    object-fit: contain !important;
    display: block;
}
/* お店ガイドの小さなサムネイルも全体を見せる */
.wf-pt-thumb { background: #f7f2e8; display: flex; align-items: center; }
.wf-pt-thumb img { object-fit: contain !important; }
/* 店舗ダッシュボードのプレビューも同様 */
.wf-tk-thumb img, .wf-ev-thumb img { object-fit: contain !important; background: #f7f2e8; }

/* お店ガイドのチケット画像を見やすい大きさに */
.wf-pt-item { flex-direction: column; gap: 8px; }
.wf-pt-thumb {
    width: 100%;
    aspect-ratio: auto;
    border-radius: 8px;
    overflow: hidden;
    background: #f7f2e8;
    line-height: 0;
}
.wf-pt-thumb img { width: 100%; height: auto; object-fit: contain !important; display: block; }
.wf-pt-info { width: 100%; }

/* ═══ 登録不要チケット ═══ */
.wf-pt-guest {
    background: linear-gradient(135deg, #2f7d45, #3fa05a) !important;
    color: #fff !important;
    border: none !important;
}
.wf-pt-guesttag {
    display: inline-block;
    margin-left: 6px;
    padding: 2px 8px;
    background: #eaf5ec;
    color: #2f7d45;
    border-radius: 999px;
    font-size: 10.5px;
    font-weight: 800;
}

/* 提示画面 */
.wf-gt-modal {
    position: fixed; inset: 0; z-index: 10000;
    background: rgba(20, 12, 4, .72);
    display: flex; align-items: center; justify-content: center;
    padding: 16px;
}
.wf-gt-modal[hidden] { display: none; }
.wf-gt-inner {
    background: #fff; border-radius: 16px;
    max-width: 420px; width: 100%; max-height: 88vh; overflow-y: auto;
    padding: 20px; position: relative; text-align: center;
}
.wf-gt-close {
    position: absolute; top: 10px; right: 12px;
    width: 34px; height: 34px; border: none; border-radius: 50%;
    background: rgba(0, 0, 0, .06); font-size: 20px; color: #5b3f18; cursor: pointer;
}
.wf-gt-img { width: 100%; height: auto; border-radius: 10px; margin-bottom: 14px; display: block; }
.wf-gt-place { font-size: 12px; color: #6e4f26; margin: 0 0 4px; font-weight: 700; }
.wf-gt-title { font-size: 20px; color: #2b1c0b; margin: 0 0 8px; }
.wf-gt-desc { font-size: 13px; color: #4a3a24; line-height: 1.7; margin: 0 0 8px; }
.wf-gt-exp { font-size: 12px; color: #9a8a72; margin: 0 0 14px; }
.wf-gt-guide {
    background: linear-gradient(135deg, #2f7d45, #3fa05a);
    color: #fff; font-size: 14px; font-weight: 800;
    padding: 13px; border-radius: 10px; margin: 0;
}

/* 登録不要チケット：使用済みの記録 */
.wf-pt-guest.is-used {
    background: #e8e4dc !important;
    color: #9a8a72 !important;
    cursor: default;
}
.wf-gt-done {
    width: 100%;
    margin-top: 14px;
    padding: 13px;
    border: 1.5px solid rgba(120, 80, 20, .3);
    border-radius: 10px;
    background: #fff;
    color: #6e4f26;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
}
.wf-gt-done:hover { background: #faf6ef; }

/* 登録不要チケット：店員さんへの案内 */
.wf-gt-staff {
    margin: 16px 0 6px;
    font-size: 12.5px;
    font-weight: 800;
    color: #a8630c;
}
.wf-gt-done { margin-top: 0 !important; }

/* ═══════════════════════════════════════════
 * 店舗向け掲載案内ページ [whisky_for_stores]
 * ═══════════════════════════════════════════ */
.wf-fs { color: #2b1c0b; }
.wf-fs h2, .wf-fs h3, .wf-fs h4 { background: none !important; }

/* 導入 */
.wf-fs-hero {
    background: linear-gradient(135deg, #43300f, #7d4d10);
    border-radius: 18px;
    padding: 40px 26px;
    text-align: center;
    color: #fff;
    margin-bottom: 34px;
}
.wf-fs-eyebrow {
    display: inline-block;
    font-size: 11.5px; font-weight: 800; letter-spacing: .14em;
    color: #f0d9a8; border: 1px solid rgba(240, 217, 168, .5);
    padding: 4px 14px; border-radius: 999px; margin: 0 0 16px;
}
.wf-fs-title {
    font-size: 27px !important; font-weight: 900; line-height: 1.5;
    color: #fff !important; margin: 0 0 16px !important; padding: 0 !important;
}
.wf-fs-lead { font-size: 14px; line-height: 1.95; color: rgba(255,255,255,.9); margin: 0 0 18px; }
.wf-fs-free {
    display: inline-block; background: #f0d9a8; color: #43300f;
    font-size: 13px; font-weight: 900; padding: 6px 18px;
    border-radius: 999px; margin: 0 0 20px;
}
.wf-fs-cta {
    display: block; max-width: 340px; margin: 0 auto;
    background: #fff; color: #7d4d10 !important;
    font-size: 15px; font-weight: 900; text-decoration: none !important;
    padding: 16px; border-radius: 12px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, .18);
}
.wf-fs-cta:hover { filter: brightness(.97); }
.wf-fs-stats { display: flex; justify-content: center; gap: 34px; margin-top: 26px; }
.wf-fs-stats div { display: flex; flex-direction: column; gap: 2px; }
.wf-fs-stats strong { font-size: 26px; font-weight: 900; color: #f0d9a8; line-height: 1; }
.wf-fs-stats span { font-size: 11px; color: rgba(255,255,255,.75); }

/* 共通の節 */
.wf-fs-sec { margin-bottom: 36px; }
.wf-fs-h3 {
    font-size: 19px !important; color: #5b3f18 !important;
    text-align: center; margin: 0 0 8px !important; padding: 0 !important;
    font-weight: 900;
}
.wf-fs-h3::after {
    content: ''; display: block; width: 46px; height: 3px;
    background: #a8630c; border-radius: 2px; margin: 10px auto 0;
}
.wf-fs-note { font-size: 13px; color: #6e5a3c; text-align: center; line-height: 1.9; margin: 14px 0 20px; }

/* 3つの価値 */
.wf-fs-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 14px; margin-top: 22px; }
.wf-fs-card {
    background: #fff; border: 1.5px solid rgba(120, 80, 20, .16);
    border-radius: 14px; padding: 22px 20px; text-align: center;
    box-shadow: 0 2px 12px rgba(120, 80, 20, .07);
}
.wf-fs-ico { font-size: 34px; display: block; margin-bottom: 10px; }
.wf-fs-card h4 { font-size: 15px !important; color: #5b3f18 !important; margin: 0 0 8px !important; font-weight: 800; }
.wf-fs-card p { font-size: 12.5px; color: #4a3a24; line-height: 1.85; margin: 0; text-align: left; }

/* 機能 */
.wf-fs-feats { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 12px; }
.wf-fs-feat {
    background: #faf6ef; border-left: 4px solid #a8630c;
    border-radius: 10px; padding: 16px 18px;
}
.wf-fs-feat h4 { font-size: 14px !important; color: #5b3f18 !important; margin: 0 0 6px !important; font-weight: 800; }
.wf-fs-feat p { font-size: 12.5px; color: #4a3a24; line-height: 1.85; margin: 0; }
.wf-fs-feat strong { color: #a8630c; }

/* 流れ */
.wf-fs-flow { list-style: none; margin: 22px 0 0; padding: 0; counter-reset: fsflow; }
.wf-fs-flow li {
    position: relative; counter-increment: fsflow;
    padding: 0 0 22px 52px; margin: 0;
}
.wf-fs-flow li::before {
    content: counter(fsflow);
    position: absolute; left: 0; top: 0;
    width: 34px; height: 34px; border-radius: 50%;
    background: linear-gradient(135deg, #5b3f18, #a8630c);
    color: #fff; font-size: 15px; font-weight: 900;
    display: flex; align-items: center; justify-content: center;
}
.wf-fs-flow li::after {
    content: ''; position: absolute; left: 16px; top: 36px; bottom: 4px;
    width: 2px; background: rgba(168, 99, 12, .25);
}
.wf-fs-flow li:last-child { padding-bottom: 0; }
.wf-fs-flow li:last-child::after { display: none; }
.wf-fs-flow strong { display: block; font-size: 14.5px; color: #5b3f18; margin-bottom: 3px; }
.wf-fs-flow span { font-size: 12.5px; color: #6e5a3c; line-height: 1.8; }

/* FAQ */
.wf-fs-faq { display: flex; flex-direction: column; gap: 8px; margin-top: 20px; }
.wf-fs-faq details {
    background: #fff; border: 1px solid rgba(120, 80, 20, .16);
    border-radius: 10px; overflow: hidden;
}
.wf-fs-faq summary {
    list-style: none; cursor: pointer;
    padding: 14px 16px; font-size: 13.5px; font-weight: 800; color: #5b3f18;
    display: flex; align-items: center; gap: 8px;
}
.wf-fs-faq summary::-webkit-details-marker { display: none; }
.wf-fs-faq summary::before { content: 'Q'; color: #a8630c; font-weight: 900; }
.wf-fs-faq summary::after { content: '＋'; margin-left: auto; color: #a8630c; }
.wf-fs-faq details[open] summary::after { content: '−'; }
.wf-fs-faq p { font-size: 12.5px; color: #4a3a24; line-height: 1.9; margin: 0; padding: 0 16px 16px 34px; }

/* 締め */
.wf-fs-end {
    background: linear-gradient(135deg, #fffaf2, #fff2e0);
    border: 1.5px solid rgba(168, 99, 12, .28);
    border-radius: 18px; padding: 32px 24px; text-align: center;
}
.wf-fs-endlead { font-size: 17px; font-weight: 800; color: #5b3f18; line-height: 1.75; margin: 0 0 20px; }
.wf-fs-end .wf-fs-cta {
    background: linear-gradient(135deg, #5b3f18, #a8630c);
    color: #fff !important;
}
.wf-fs-sub {
    display: inline-block; margin-top: 14px;
    font-size: 13px; font-weight: 700; color: #a8630c !important;
    text-decoration: underline !important;
}

@media (max-width: 600px) {
    .wf-fs-hero { padding: 32px 18px; border-radius: 14px; }
    .wf-fs-title { font-size: 22px !important; }
    .wf-fs-stats { gap: 24px; }
    .wf-fs-h3 { font-size: 17px !important; }
    .wf-fs-end { padding: 26px 18px; }
    .wf-fs-endlead { font-size: 15px; }
}

/* ═══ 検索窓の候補表示 ═══ */
.wf-search-wrap { position: relative; }
.wf-sug {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    z-index: 60;
    background: #fff;
    border: 1.5px solid rgba(120, 80, 20, .22);
    border-radius: 10px;
    box-shadow: 0 6px 20px rgba(120, 80, 20, .16);
    overflow: hidden;
    max-height: 320px;
    overflow-y: auto;
}
.wf-sug[hidden] { display: none; }
.wf-sug-item {
    display: flex;
    flex-direction: column;
    gap: 2px;
    width: 100%;
    padding: 11px 14px;
    background: #fff;
    border: none;
    border-bottom: 1px solid rgba(120, 80, 20, .1);
    text-align: left;
    cursor: pointer;
    font-family: inherit;
}
.wf-sug-item:last-child { border-bottom: none; }
.wf-sug-item:hover, .wf-sug-item.on { background: #faf6ef; }
.wf-sug-name { font-size: 13.5px; font-weight: 700; color: #2b1c0b; line-height: 1.4; }
.wf-sug-sub { font-size: 11px; color: #9a8a72; }

@media (max-width: 600px) {
    .wf-sug { max-height: 260px; }
    .wf-sug-item { padding: 12px 13px; }
}

/* ═══ 店舗：新規銘柄の画像選択（楽天検索） ═══ */
.wf-nw-rk {
    padding: 11px;
    border: 1.5px solid rgba(191, 0, 0, .35);
    border-radius: 9px;
    background: #fff;
    color: #bf0000;
    font-size: 12.5px;
    font-weight: 800;
    cursor: pointer;
}
.wf-rk-box[hidden] { display: none; }
.wf-rk-box {
    background: #faf6ef;
    border: 1px solid rgba(120, 80, 20, .18);
    border-radius: 10px;
    padding: 10px;
}
.wf-rk-msg { font-size: 11.5px; color: #6e5a3c; margin-bottom: 8px; }
.wf-rk-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(84px, 1fr));
    gap: 7px;
}
.wf-rk-pick {
    padding: 0;
    border: 2px solid transparent;
    border-radius: 8px;
    background: #fff;
    cursor: pointer;
    overflow: hidden;
    aspect-ratio: 1;
}
.wf-rk-pick img { width: 100%; height: 100%; object-fit: contain; display: block; }
.wf-rk-pick.on { border-color: #a8630c; box-shadow: 0 0 0 2px rgba(168, 99, 12, .2); }

/* ═══════════════════════════════════════════
 * 銘柄画像の背景を白に統一する
 * 商品写真は白背景で撮られていることが多いため、
 * 枠の背景も白に揃えると切り抜いたように見える
 * ═══════════════════════════════════════════ */
.wf-card-thumb,
.wf-carousel-thumb,
.wf-detail-main-img,
.wf-edition-thumb,
.wf-omikuji-thumb,
.wf-gallery-thumb {
    background: #fff !important;
}
/* 画像は切り取らず全体を収める */
.wf-card-thumb img,
.wf-carousel-thumb img,
.wf-detail-main-img img,
.wf-edition-thumb img,
.wf-omikuji-thumb img {
    object-fit: contain !important;
    background: #fff;
}
/* 白背景どうしで境目が消えないよう、うっすら枠線を入れる */
.wf-card-thumb,
.wf-carousel-thumb,
.wf-edition-thumb,
.wf-omikuji-thumb {
    border: 1px solid rgba(120, 80, 20, .10);
    box-sizing: border-box;
}

/* ═══ 種別タブの登録数 ═══ */
.wf-type-link {
    display: inline-flex !important;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
}
.wf-type-name { display: inline; }
.wf-type-num {
    display: inline-block;
    min-width: 20px;
    padding: 1px 6px;
    background: rgba(120, 80, 20, .12);
    color: #6e4f26;
    border-radius: 99px;
    font-size: 10.5px;
    font-weight: 800;
    line-height: 1.6;
    text-align: center;
}
.wf-type-link.on .wf-type-num {
    background: rgba(255, 255, 255, .28);
    color: #fff;
}
@media (max-width: 600px) {
    .wf-type-link { gap: 4px; }
    .wf-type-num { min-width: 18px; padding: 1px 5px; font-size: 10px; }
}

/* 店舗ダッシュボード：楽天の候補画像を大きく */
.wf-rk-list { grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)) !important; gap: 9px !important; }

/* ═══ トップページの種別ボタンに登録数 ═══ */
.wf-toplink {
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    min-width: 0;              /* 桁数が増えても枠を押し広げない */
}
.wf-toplink-label {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
}
.wf-toplink-num {
    display: inline-block;
    padding: 1px 8px;
    background: rgba(120, 80, 20, .12);
    color: #6e4f26;
    border-radius: 99px;
    font-size: 10.5px;
    font-weight: 800;
    line-height: 1.7;
    font-variant-numeric: tabular-nums;   /* 桁が変わっても幅が揺れない */
    white-space: nowrap;
    max-width: 100%;
}

/* 4桁以上でも崩れないように、数字は折り返さず枠内に収める */
.wf-type-num, .wf-toplink-num { font-variant-numeric: tabular-nums; }
.wf-type-link { min-width: 0; max-width: 100%; }
.wf-type-name { overflow: hidden; text-overflow: ellipsis; }
.wf-type-tabs { flex-wrap: wrap; }

/* ═══ Instagram：Load More / フォローボタンの配置を整える ═══ */
/* Smash Balloon はフロートを使うため、解除してから中央に置く */
#sb_instagram #sbi_load,
#sb_instagram .sbi_load {
    display: flex !important;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    float: none !important;
    clear: both !important;
    width: 100% !important;
    margin: 18px 0 0 !important;
    padding: 0 !important;
    box-sizing: border-box;
}
/* 投稿の並びとボタンの間に余白をつくる（スマホで密着するのを防ぐ） */
#sb_instagram #sbi_images {
    margin-bottom: 4px !important;
    float: none !important;
}
#sb_instagram::after {
    content: '';
    display: block;
    clear: both;
}
/* ボタン自体：幅を内容に合わせ、中央に */
#sb_instagram .sbi_load_btn {
    float: none !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: auto !important;
    min-width: 200px;
    max-width: 100%;
    margin: 0 auto !important;
}
#sb_instagram .sbi_follow_btn {
    float: none !important;
    display: block !important;
    width: auto !important;
    margin: 0 auto !important;
    text-align: center;
}
#sb_instagram .sbi_follow_btn a {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-width: 200px;
}

@media (max-width: 600px) {
    #sb_instagram #sbi_load,
    #sb_instagram .sbi_load { margin-top: 16px !important; gap: 9px; }
    #sb_instagram .sbi_load_btn,
    #sb_instagram .sbi_follow_btn a { width: 100% !important; min-width: 0; }
}

/* ═══ 検索エンジン向けの本文 ═══ */
/* JavaScriptが描画したら隠す。画面には出ないが検索エンジンには読まれる */
.wf-seo-wrap[hidden] { display: none; }
.wf-seo-body { max-width: 720px; margin: 20px auto; }
.wf-seo-body img { max-width: 320px; height: auto; }
.wf-seo-body table { width: 100%; border-collapse: collapse; margin: 12px 0; }
.wf-seo-body th, .wf-seo-body td {
    padding: 7px 10px; border: 1px solid rgba(120, 80, 20, .16); text-align: left; font-size: 13px;
}
.wf-seo-body th { background: #faf6ef; width: 30%; color: #5b3f18; }
.wf-seo-body h2 { font-size: 16px; color: #5b3f18; margin: 18px 0 6px; }
.wf-seo-body p { font-size: 13.5px; line-height: 1.9; color: #4a3a24; margin: 0; }

/* ═══ 用語辞典：くわしい解説 ═══ */
.wf-gloss-more {
    margin-top: 10px;
    border-top: 1px dashed rgba(120, 80, 20, .22);
    padding-top: 8px;
}
.wf-gloss-more > summary {
    cursor: pointer;
    font-size: 12px;
    font-weight: 800;
    color: #a8630c;
    list-style: none;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 0;
}
.wf-gloss-more > summary::-webkit-details-marker { display: none; }
.wf-gloss-more > summary::before { content: '▶'; font-size: 9px; transition: transform .2s; }
.wf-gloss-more[open] > summary::before { transform: rotate(90deg); }
.wf-gloss-more > summary:hover { color: #7d4a09; }
.wf-gloss-detail {
    margin-top: 8px;
    padding: 11px 13px;
    background: rgba(250, 246, 239, .85);
    border-left: 3px solid rgba(168, 99, 12, .45);
    border-radius: 0 8px 8px 0;
    font-size: 13px;
    line-height: 1.95;
    color: #4a3a24;
}

/* ═══ イベントのシェアボタン ═══ */
.wf-evm-share {
    margin-top: 12px;
    padding-top: 11px;
    border-top: 1px dashed rgba(120, 80, 20, .22);
}
.wf-evm-share-label {
    display: block;
    font-size: 11.5px;
    font-weight: 800;
    color: #6e5a3c;
    margin-bottom: 7px;
}
.wf-evm-share-btns {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}
.wf-evm-share .wf-sh,
button.wf-sh,
a.wf-sh {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    padding: 7px 13px;
    border-radius: 99px !important;
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
    border: none !important;
    cursor: pointer;
    color: #fff !important;
    line-height: 1;
}
.wf-evm-share .wf-sh-line, a.wf-sh-line { background: #06c755 !important; }
.wf-evm-share .wf-sh-x,    a.wf-sh-x    { background: #000 !important; }
.wf-evm-share .wf-sh-fb,   a.wf-sh-fb   { background: #1877f2 !important; }
.wf-evm-share .wf-sh-copy, button.wf-sh-copy {
    background: #6e4f26 !important;
    color: #fff !important;
    border: none !important;
}
.wf-sh:hover { opacity: .88; }
.wf-sh-copy:hover { opacity: .88; }
@media (max-width: 600px) {
    .wf-sh { flex: 1 1 auto; padding: 9px 10px; }
}

/* ═══ イベント：日時・会場・参加費の表示 ═══ */
.wf-pe-meta {
    margin: 10px 0;
    padding: 11px 13px;
    background: rgba(250, 246, 239, .9);
    border: 1px solid rgba(120, 80, 20, .14);
    border-radius: 9px;
    display: grid;
    gap: 7px;
}
.wf-pe-mrow {
    display: grid;
    grid-template-columns: 92px 1fr;
    gap: 8px;
    align-items: baseline;
}
.wf-pe-mrow dt {
    margin: 0;
    font-size: 12px;
    font-weight: 800;
    color: #7a5a2c;
    white-space: nowrap;
}
.wf-pe-mrow dd {
    margin: 0;
    font-size: 13.5px;
    font-weight: 700;
    color: #3f2f1a;
    line-height: 1.6;
}
.wf-pe-text {
    font-size: 13.5px;
    line-height: 1.9;
    color: #4a3a24;
}
.wf-pe-text p { margin: 0 0 10px; }
.wf-pe-text strong { color: #7d4a09; font-weight: 800; }
.wf-pe-list {
    margin: 6px 0 10px;
    padding-left: 1.2em;
    list-style: none;
}
.wf-pe-list li {
    position: relative;
    padding-left: 2px;
    margin: 3px 0;
}
.wf-pe-list li::before {
    content: '🥃';
    position: absolute;
    left: -1.2em;
    font-size: 11px;
}
@media (max-width: 600px) {
    .wf-pe-mrow { grid-template-columns: 78px 1fr; }
}

/* ═══ イベント一覧ページ [whisky_event_list] ═══ */
.wf-elist { max-width: 860px; margin: 0 auto; }
.wf-elist-empty {
    text-align: center; padding: 40px 20px; color: #8a7a62; font-size: 15px;
}
.wf-elist-sec { margin-bottom: 40px; }
.wf-elist-h {
    font-size: 20px; font-weight: 900; color: #4a3419;
    padding-bottom: 10px; margin: 0 0 8px;
    border-bottom: 2px solid rgba(168, 99, 12, .35);
}
.wf-elist-note { font-size: 12.5px; color: #8a7a62; margin: 0 0 14px; }
.wf-elist-month {
    font-size: 14px; font-weight: 800; color: #a8630c;
    margin: 22px 0 10px; padding-left: 10px;
    border-left: 4px solid rgba(168, 99, 12, .5);
}

.wf-ecard {
    display: flex; gap: 16px;
    background: #fff;
    border: 1px solid rgba(120, 80, 20, .16);
    border-radius: 14px;
    padding: 15px;
    margin-bottom: 14px;
    box-shadow: 0 2px 10px rgba(90, 60, 20, .05);
}
.wf-ecard-img {
    position: relative; flex: 0 0 150px;
}
.wf-ecard-img img {
    width: 100%; aspect-ratio: 1; object-fit: cover;
    border-radius: 10px; background: #faf6ef; display: block;
}
.wf-ecard-ended {
    position: absolute; top: 8px; left: 8px;
    background: rgba(60, 50, 40, .85); color: #fff;
    font-size: 11px; font-weight: 800;
    padding: 3px 10px; border-radius: 99px;
}
.wf-ecard-body { flex: 1; min-width: 0; }
.wf-ecard-date {
    font-size: 13px; font-weight: 800; color: #a8630c;
    display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.wf-ecard-endtag {
    background: #eee; color: #777; font-size: 11px; font-weight: 700;
    padding: 2px 8px; border-radius: 99px;
}
.wf-ecard-title {
    font-size: 17px; font-weight: 900; color: #2e2113;
    margin: 5px 0 6px; line-height: 1.4;
}
.wf-ecard-place { font-size: 13px; color: #5b3f18; font-weight: 700; margin-bottom: 6px; }
.wf-ecard-meta { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.wf-ecard-tag {
    background: rgba(250, 246, 239, .95);
    border: 1px solid rgba(120, 80, 20, .16);
    border-radius: 99px; padding: 3px 11px;
    font-size: 12px; font-weight: 700; color: #5b3f18;
}
.wf-ecard-text { font-size: 13.5px; line-height: 1.85; color: #4a3a24; }
.wf-ecard-text p { margin: 0 0 8px; }
.wf-ecard-text strong { color: #7d4a09; font-weight: 800; }
.wf-ecard-actions { margin-top: 10px; }
.wf-ecard-btn {
    display: inline-block;
    background: linear-gradient(135deg, #a8630c, #7d4a09);
    color: #fff; text-decoration: none;
    padding: 8px 20px; border-radius: 99px;
    font-size: 13px; font-weight: 800;
}
.wf-ecard-btn:hover { opacity: .9; }

/* 終了したイベントは全体を淡くする */
.wf-ecard.is-ended { opacity: .72; background: #fafafa; }
.wf-ecard.is-ended .wf-ecard-title { color: #6a5c4a; }
.wf-ecard.is-ended .wf-ecard-img img { filter: grayscale(.4); }

@media (max-width: 600px) {
    .wf-ecard { flex-direction: column; gap: 12px; }
    .wf-ecard-img { flex: none; width: 100%; max-width: 220px; }
    .wf-elist-h { font-size: 18px; }
}

/* ═══ イベント：オーディエンス（参加意思）ボタン ═══ */
.wf-rsvp {
    margin-top: 12px;
    padding-top: 11px;
    border-top: 1px dashed rgba(120, 80, 20, .22);
}
.wf-rsvp-label {
    font-size: 11.5px; font-weight: 800; color: #6e5a3c; margin-bottom: 8px;
}
.wf-rsvp-btns { display: flex; flex-wrap: wrap; gap: 8px; }
.wf-rsvp-btn {
    display: inline-flex; align-items: center; gap: 6px;
    background: #fff;
    border: 1.5px solid rgba(120, 80, 20, .25);
    border-radius: 99px;
    padding: 7px 14px;
    font-size: 12.5px; font-weight: 700; color: #5b3f18;
    cursor: pointer; transition: all .15s;
}
.wf-rsvp-btn:hover { background: #faf6ef; }
.wf-rsvp-btn.on {
    background: linear-gradient(135deg, #a8630c, #7d4a09);
    border-color: transparent; color: #fff;
}
.wf-rsvp-ico { font-size: 14px; }
.wf-rsvp-num {
    min-width: 20px; text-align: center;
    background: rgba(120, 80, 20, .12);
    border-radius: 99px; padding: 1px 7px;
    font-size: 11px; font-weight: 800;
    font-variant-numeric: tabular-nums;
}
.wf-rsvp-btn.on .wf-rsvp-num { background: rgba(255,255,255,.28); color: #fff; }

/* ダッシュボードのイベント設定 */
.wf-ev-rsvp-set {
    background: rgba(250,246,239,.7);
    border: 1px solid rgba(120,80,20,.14);
    border-radius: 9px; padding: 10px 12px; margin: 8px 0;
}
.wf-ev-rsvp-toggle { font-weight: 700; font-size: 13px; }
.wf-ev-rsvp-opts { margin-top: 8px; display: flex; flex-wrap: wrap; gap: 12px; font-size: 12.5px; }
.wf-ev-rsvp-opts > span { color: #6e5a3c; font-weight: 700; }

/* ═══ トップのイベントカルーセル：オーディエンス結果（数字のみ） ═══ */
.wf-event-rsvpsum {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 6px 0;
}
.wf-event-rsvpnum {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    background: rgba(168, 99, 12, .1);
    color: #7d4a09;
    border-radius: 99px;
    padding: 2px 9px;
    font-size: 11.5px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

/* 店舗ダッシュボード：カスタム選択肢の入力 */
.wf-ev-rsvp-custom { margin-top: 10px; }
.wf-ev-rsvp-chint { font-size: 11.5px; color: #6e5a3c; margin-bottom: 6px; }
.wf-ev-crow { display: flex; gap: 6px; margin-bottom: 6px; align-items: center; }
.wf-ev-crow input { padding: 6px 9px; border: 1px solid rgba(120,80,20,.25); border-radius: 7px; font-size: 13px; }
.wf-ev-crow .ev-rsvp-clabel { flex: 1; }
.wf-ev-cdel {
    border: none; background: #f0e6d8; color: #a8630c;
    width: 28px; height: 28px; border-radius: 7px; cursor: pointer;
    font-size: 16px; font-weight: 800; flex-shrink: 0;
}
.wf-ev-cdel:hover { background: #e5d3bd; }
.wf-ev-rsvp-cadd {
    border: 1.5px dashed rgba(168,99,12,.4); background: #fff; color: #a8630c;
    padding: 7px 14px; border-radius: 8px; cursor: pointer; font-size: 12.5px; font-weight: 800;
}
.wf-ev-rsvp-cadd:hover { background: #faf6ef; }

/* モーダル内のシェアは上に余白を取る */
.wf-event-modal-body .wf-evm-share { margin-top: 14px; }

/* ═══ 共有シート後の確認モーダル ═══ */
.wf-scm {
    position: fixed;
    inset: 0;
    background: rgba(20, 12, 4, .55);
    z-index: 100000;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px;
}
.wf-scm.on { display: flex; }
.wf-scm-box {
    background: #fff;
    border-radius: 16px;
    max-width: 420px;
    width: 100%;
    padding: 22px;
    box-shadow: 0 12px 40px rgba(40, 24, 8, .35);
}
.wf-scm-title {
    font-size: 16px;
    font-weight: 900;
    color: #4a3419;
    margin-bottom: 12px;
    text-align: center;
}
.wf-scm-url {
    background: #faf6ef;
    border: 1px solid rgba(120, 80, 20, .2);
    border-radius: 9px;
    padding: 11px 13px;
    font-size: 12.5px;
    color: #5b3f18;
    word-break: break-all;
    line-height: 1.6;
    margin-bottom: 16px;
    -webkit-user-select: all;
    user-select: all;
    cursor: text;
}
.wf-scm-btns {
    display: flex;
    gap: 10px;
}
.wf-scm-copy,
.wf-scm-close {
    flex: 1;
    padding: 11px;
    border-radius: 10px;
    font-size: 13.5px;
    font-weight: 800;
    cursor: pointer;
    border: none;
}
.wf-scm-copy {
    background: linear-gradient(135deg, #a8630c, #7d4a09);
    color: #fff;
}
.wf-scm-close {
    background: #f0e6d8;
    color: #6e4f26;
}
.wf-scm-copy:hover,
.wf-scm-close:hover { opacity: .9; }

/* 確認モーダル：アプリで共有ボタン */
.wf-scm-share {
    flex: 1;
    padding: 11px;
    border-radius: 10px;
    font-size: 13.5px;
    font-weight: 800;
    cursor: pointer;
    border: none;
    background: #06c755;
    color: #fff;
}
.wf-scm-share:hover { opacity: .9; }
.wf-scm-close {
    width: 100%;
    margin-top: 10px;
}

/* SEO用の銘柄一覧（クローラー向け。JS描画後はhiddenで隠れる） */
.wf-seo-list { max-width: 720px; margin: 20px auto; font-size: 14px; line-height: 1.8; }
.wf-seo-list h2 { font-size: 18px; margin: 0 0 8px; }
.wf-seo-list-items { list-style: none; padding: 0; margin: 12px 0; }
.wf-seo-list-items li { padding: 6px 0; border-bottom: 1px solid #eee; }
.wf-seo-list-items a { color: #7d4a09; text-decoration: none; font-weight: 700; }
.wf-seo-list-items a:hover { text-decoration: underline; }

/* バーでの豆知識セクション（特徴とは別枠。会話ネタを親しみやすく） */
.wf-trivia h4 { color: #7d4a09; }
.wf-trivia .wf-features-body {
    background: linear-gradient(180deg, #fdf9f2, #faf4e9);
    border-left: 3px solid #c8963e;
    border-radius: 8px;
    padding: 12px 14px;
}

/* 店舗写真のランダムカルーセル */
.wf-shopphotos { margin: 28px 0; }
.wf-shopphotos-title { font-size: 18px; margin: 0 0 12px; color: #4a2f0c; }
/* 外枠：はみ出しを隠し、左右を少しぼかして流れている感じを出す */
.wf-shopphotos-view {
    overflow: hidden; position: relative; padding: 4px 0 12px;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);
            mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);
}
/* 内側：写真を横一列に並べ、ゆっくり流し続ける */
.wf-shopphotos-track {
    display: flex; gap: 12px; width: max-content;
    animation: wf-shopflow 60s linear infinite;
}
/* 2セット出力しているので、半分ぶん動かすと元の位置に戻る */
@keyframes wf-shopflow {
    from { transform: translateX(0); }
    to   { transform: translateX(calc(-50% - 6px)); }
}
/* 触れている間は止めて、じっくり見られるようにする */
.wf-shopphotos-view:hover .wf-shopphotos-track,
.wf-shopphotos-view:focus-within .wf-shopphotos-track { animation-play-state: paused; }
/* 動きを減らす設定の人には流さない */
@media (prefers-reduced-motion: reduce) {
    .wf-shopphotos-track { animation: none; }
    .wf-shopphotos-view { overflow-x: auto; }
}
.wf-shopphoto {
    position: relative; flex: 0 0 auto; width: 220px; height: 150px;
    border-radius: 12px; overflow: hidden; text-decoration: none;
    box-shadow: 0 2px 10px rgba(60,35,10,.15);
}
.wf-shopphoto img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s; }
.wf-shopphoto:hover img { transform: scale(1.06); }
.wf-shopphoto-cap {
    position: absolute; left: 0; right: 0; bottom: 0; padding: 18px 10px 8px;
    background: linear-gradient(180deg, transparent, rgba(20,12,4,.82));
    color: #fff; display: block; line-height: 1.35;
}
.wf-shopphoto-cap strong { display: block; font-size: 13px; font-weight: 700; }
.wf-shopphoto-cap em { font-style: normal; font-size: 11px; opacity: .85; }
@media (max-width: 600px) {
    .wf-shopphoto { width: 168px; height: 118px; }
}

/* 地域特化ページの見出し */
.wf-places-intro { margin: 0 0 20px; }
.wf-places-h1 { font-size: 24px; margin: 0 0 8px; color: #4a2f0c; line-height: 1.4; }
.wf-places-lead { font-size: 14.5px; line-height: 1.85; color: #5a4632; margin: 0 0 6px; }
.wf-places-count { font-size: 13px; color: #7d4a09; margin: 0; }
.wf-places-count strong { font-size: 16px; }

/* 店舗写真カルーセルのカードをボタン化した分の調整 */
.wf-shopphoto { border: none; padding: 0; background: none; cursor: pointer; display: block; }

/* お店ガイドの店舗カードに出す代表写真 */
.wf-place-photo {
    width: 100%; height: 158px; overflow: hidden;
    border-radius: 10px 10px 0 0; margin: -1px -1px 10px; position: relative;
}
.wf-place-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* 店舗写真のモーダル */
.wf-shopmodal {
    position: fixed; inset: 0; background: rgba(20,12,4,.62);
    z-index: 9999; display: flex; align-items: center; justify-content: center; padding: 16px;
}
.wf-shopmodal[hidden] { display: none; }
.wf-shopmodal-inner {
    background: #fff; border-radius: 16px; max-width: 460px; width: 100%;
    max-height: 88vh; overflow-y: auto; position: relative; padding: 0 0 18px;
}
.wf-shopmodal-photo { width: 100%; height: 220px; overflow: hidden; border-radius: 16px 16px 0 0; }
.wf-shopmodal-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.wf-shopmodal-name { font-size: 19px; margin: 14px 18px 4px; color: #3d2a12; }
.wf-shopmodal-area { margin: 0 18px 10px; font-size: 13px; color: #7d6a52; }
.wf-shopmodal-meta {
    margin: 0 18px 10px; display: grid; grid-template-columns: 72px 1fr;
    gap: 4px 10px; font-size: 13px;
}
.wf-shopmodal-meta dt { color: #8a7a66; font-weight: 700; }
.wf-shopmodal-meta dd { margin: 0; color: #3d2a12; }
.wf-shopmodal-memo {
    margin: 0 18px 12px; font-size: 13px; line-height: 1.75; color: #5a4632;
    background: #faf6ef; border-radius: 8px; padding: 10px 12px;
}
.wf-shopmodal-actions { display: flex; gap: 8px; margin: 0 18px; flex-wrap: wrap; }
.wf-shopmodal-btn {
    flex: 1 1 auto; text-align: center; padding: 11px 14px; border-radius: 9px;
    font-size: 13.5px; font-weight: 700; text-decoration: none;
    background: #f0e6d8; color: #7d4a09;
}
.wf-shopmodal-btn.primary { background: linear-gradient(135deg,#a8630c,#7d4a09); color: #fff; }
.wf-shopmodal-btn:hover { opacity: .9; }
.wf-shopmodal-close {
    position: sticky; float: right; bottom: 0; margin: 12px 18px 0;
    width: 46px; height: 46px; border: none; border-radius: 50%;
    background: linear-gradient(135deg,#a8630c,#7d4a09); color: #fff;
    font-size: 24px; line-height: 1; cursor: pointer;
    box-shadow: 0 4px 14px rgba(90,50,10,.35);
}

/* 指定された店舗を一時的に強調する（写真モーダルから飛んできたとき） */
.wf-place-card.wf-place-focus {
    animation: wf-place-glow 2.6s ease-out;
    position: relative; z-index: 2;
}
@keyframes wf-place-glow {
    0%   { box-shadow: 0 0 0 0 rgba(168,99,12,.55); }
    18%  { box-shadow: 0 0 0 7px rgba(168,99,12,.28); }
    100% { box-shadow: 0 0 0 0 rgba(168,99,12,0); }
}
