
*, *::before, *::after { box-sizing: border-box; }
html, body { overflow-x: hidden; }
img, svg { max-width: 100%; height: auto; }
/*
Theme Name:   Shochu Wiki Child
Theme URI:    https://shochu.wiki
Description:  shochu.wiki – 焼酎比較サイト用子テーマ
Author:       shochu.wiki
Template:     twentytwentyfour
Version:      1.3.0
Text Domain:  shochu-wiki
*/

/* ===================================================
   SHOCHU WIKI – Global Variables & Base Styles
   =================================================== */

/* (Column-nav and trend badge styles) */
.sw-columns-nav { padding: 32px 0; }
.sw-cols-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}
@media (max-width: 768px) {
    .sw-cols-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
}
.sw-col-card {
    background: #fff;
    border: 1px solid var(--sw-border);
    border-radius: 10px;
    padding: 24px 18px;
    text-align: center;
    text-decoration: none;
    color: inherit;
    transition: transform 0.2s, border-color 0.2s, box-shadow 0.2s;
    border-top: 4px solid var(--sw-tsuchi);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}
.sw-col-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(0,0,0,0.08);
    border-color: var(--sw-accent);
}
.sw-col-card--know   { border-top-color: var(--sw-ing-mugi); }
.sw-col-card--choose { border-top-color: var(--sw-ing-imo); }
.sw-col-card--drink  { border-top-color: var(--sw-accent); }
.sw-col-card--travel { border-top-color: var(--sw-ing-soba); }
.sw-col-card__icon { font-size: 2.4rem; }
.sw-col-card__title {
    margin: 0;
    font-size: 1.2rem;
    font-weight: 800;
    color: var(--sw-sumi);
    font-family: var(--sw-font-serif);
}
.sw-col-card__desc {
    margin: 0;
    font-size: 0.82rem;
    line-height: 1.55;
    color: var(--sw-text);
}

/* === Trend Badges === */
.sw-trend-badge {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 12px;
    font-size: 0.68rem;
    font-weight: 800;
    margin-right: 4px;
    letter-spacing: 0.04em;
    vertical-align: middle;
    animation: sw-trend-pulse 2s ease-in-out infinite;
}
.sw-trend-badge--hot {
    background: linear-gradient(90deg, #e74c3c, #f39c12);
    color: #fff;
}
.sw-trend-badge--weekly {
    background: linear-gradient(90deg, var(--sw-accent), #e8c84a);
    color: var(--sw-sumi);
}
@keyframes sw-trend-pulse {
    0%, 100% { transform: scale(1); }
    50%      { transform: scale(1.05); }
}

:root {
    /* Brand Colors */
    --sw-primary:        #1a1a2e;   /* Deep Navy */
    --sw-accent:         #c9a84c;   /* Gold */
    --sw-bg:             #f8f5f0;   /* Warm White */
    --sw-text:           #2c2c2c;
    --sw-border:         #e0d8cc;

    /* Earth & Sumi Accents (焼酎らしさ) */
    --sw-sumi:           #1a1a1a;   /* 墨黒 – ink black */
    --sw-tsuchi:         #8b6f47;   /* 土色 – kame jar earth */
    --sw-tsuchi-light:   #c7a87a;   /* 土色（明） – aged barrel */
    --sw-tsuchi-dark:    #5c4528;   /* 土色（暗） – cellar shadow */

    /* Type Colors */
    --sw-flavor:         #4a7c4e;   /* Flavor Type – Green */
    --sw-character:      #c0392b;   /* Character Type – Red */
    --sw-light:          #2980b9;   /* Light Type – Blue */
    --sw-rich:           #e67e22;   /* Rich Type – Orange */

    /* Ingredient Colors (原料別) */
    --sw-ing-imo:        #8b4a3a;   /* 芋 – 薩摩芋 terracotta */
    --sw-ing-mugi:       #b88044;   /* 麦 – 麦秋 darker amber */
    --sw-ing-kome:       #a8956a;   /* 米 – aged rice */
    --sw-ing-kokuto:     #4a2e1a;   /* 黒糖 – molasses */
    --sw-ing-soba:       #6b7a4a;   /* そば – olive green */
    --sw-ing-awamori:    #4f897b;   /* 泡盛 – tropical teal */
    --sw-ing-other:      #777;

    /* Typography */
    --sw-font-serif:     'Noto Serif JP', Georgia, serif;
    --sw-font-sans:      'Noto Sans JP', system-ui, sans-serif;
    --sw-font-en:        'Playfair Display', Georgia, serif;
}

body {
    background-color: var(--sw-bg);
    color: var(--sw-text);
    font-family: var(--sw-font-sans);
}

/* ===================================================
   Type Badge Utilities
   =================================================== */

.sw-badge {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 700;
    color: #fff;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.sw-badge--flavor    { background: var(--sw-flavor); }
.sw-badge--character { background: var(--sw-character); }
.sw-badge--light     { background: var(--sw-light); }
.sw-badge--rich      { background: var(--sw-rich); }

/* 原料バッジ（土色トーン） */
.sw-ing-badge {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 20px;
    font-size: 0.72rem;
    font-weight: 700;
    color: #fff;
    letter-spacing: 0.05em;
    margin-right: 4px;
}
.sw-ing-badge--imo      { background: var(--sw-ing-imo); }
.sw-ing-badge--mugi     { background: var(--sw-ing-mugi); }
.sw-ing-badge--kome     { background: var(--sw-ing-kome); }
.sw-ing-badge--kokuto   { background: var(--sw-ing-kokuto); }
.sw-ing-badge--soba     { background: var(--sw-ing-soba); }
.sw-ing-badge--awamori  { background: var(--sw-ing-awamori); }
.sw-ing-badge--other    { background: var(--sw-ing-other); }

/* === 銘柄詳細：ヘッダー quick tags === */
.sw-brand-header__quicktags { display: flex; flex-wrap: wrap; gap: 6px; margin: 12px 0; }
.sw-brand-header__tag { display: inline-flex; align-items: center; gap: 4px; padding: 4px 10px; border-radius: 14px; font-size: 0.78rem; font-weight: 700; background: rgba(255,255,255,0.12); color: #f0e4c8; border: 1px solid rgba(255,255,255,0.18); }
.sw-brand-header__tag--abv { background: var(--sw-accent, #c9a84c); color: var(--sw-sumi, #1a1a1a); border-color: var(--sw-accent, #c9a84c); }

/* === 銘柄スペック（下部詳細セクション） === */
.sw-spec { background: #fff; border: 1px solid var(--sw-border, #e0d8cc); border-radius: 10px; padding: 24px; }
.sw-spec__dl { display: grid; grid-template-columns: 140px 1fr; gap: 4px 16px; margin: 0; }
.sw-spec__row { display: contents; }
.sw-spec__row dt { padding: 10px 0; border-top: 1px solid var(--sw-border, #e0d8cc); color: var(--sw-tsuchi-dark, #5c4528); font-weight: 700; font-size: 0.88rem; }
.sw-spec__row dd { padding: 10px 0; border-top: 1px solid var(--sw-border, #e0d8cc); margin: 0; color: var(--sw-text, #2c2c2c); font-size: 0.9rem; }
.sw-spec__row:first-child dt, .sw-spec__row:first-child dd { border-top: 0; }
.sw-spec__note { margin: 20px 0 0; font-size: 0.78rem; color: #888; line-height: 1.6; padding-top: 14px; border-top: 1px dashed var(--sw-border, #e0d8cc); }
@media (max-width: 480px) {
    .sw-spec__dl { grid-template-columns: 110px 1fr; gap: 2px 12px; }
    .sw-spec__row dt, .sw-spec__row dd { padding: 8px 0; font-size: 0.85rem; }
}

/* 銘柄詳細ヘッダー：墨黒帯 */
.sw-brand-header--sumi {
    background: linear-gradient(180deg, var(--sw-sumi) 0%, #2a2a2e 100%);
    color: #f0e4c8;
    padding: 28px 24px;
    border-radius: 10px;
    margin-bottom: 24px;
    border-top: 3px solid var(--sw-accent);
}
.sw-brand-header--sumi .sw-brand-header__name-ja { color: #fff; }
.sw-brand-header--sumi .sw-brand-header__name-en { color: var(--sw-accent); }
.sw-brand-header--sumi dt { color: var(--sw-tsuchi-light); }
.sw-brand-header--sumi dd { color: #fff; }
.sw-brand-header--sumi .sw-brand-header__comment {
    background: rgba(255,255,255,0.08);
    color: #f0e4c8;
    border-left: 3px solid var(--sw-accent);
    padding: 14px 18px;
    line-height: 1.8;
    font-size: 0.95rem;
    margin-top: 16px;
    border-radius: 0 8px 8px 0;
    word-break: auto-phrase;
}
.sw-brand-header--sumi .sw-brand-header__ing { margin-bottom: 8px; }

/* ===================================================
   Flavor Map Container
   =================================================== */

.sw-flavor-map-wrap {
    position: relative;
    background: #fff;
    border: 1px solid var(--sw-border);
    border-radius: 8px;
    padding: 24px;
    margin: 24px 0;
}

.sw-flavor-map-wrap canvas {
    max-width: 100%;
    height: auto !important;
}

/* ===================================================
   Vote Form
   =================================================== */

.sw-vote-form {
    background: #fff;
    border: 1px solid var(--sw-border);
    border-radius: 8px;
    padding: 28px;
    margin: 32px 0;
}

.sw-vote-form h3 {
    margin: 0 0 20px;
    font-size: 1.1rem;
    font-weight: 700;
}

.sw-slider-wrap {
    margin: 16px 0;
}

.sw-slider-wrap label {
    display: block;
    margin-bottom: 6px;
    font-size: 0.875rem;
    font-weight: 600;
}

.sw-slider-wrap input[type="range"] {
    width: 100%;
    accent-color: var(--sw-accent);
}

.sw-slider-labels {
    display: flex;
    justify-content: space-between;
    font-size: 0.75rem;
    color: #888;
    margin-top: 4px;
}

.sw-type-preview {
    margin: 20px 0;
    padding: 12px 16px;
    border-radius: 6px;
    background: var(--sw-bg);
    font-size: 0.9rem;
    font-weight: 600;
    text-align: center;
    border: 2px solid var(--sw-border);
    transition: border-color 0.3s, background 0.3s;
}

.sw-drink-style-wrap {
    margin: 20px 0;
}

.sw-drink-style-wrap label {
    display: block;
    margin-bottom: 8px;
    font-size: 0.875rem;
    font-weight: 600;
}

.sw-drink-style-options {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.sw-drink-style-options label {
    display: flex;
    align-items: center;
    gap: 4px;
    background: var(--sw-bg);
    border: 1px solid var(--sw-border);
    border-radius: 20px;
    padding: 5px 14px;
    font-size: 0.85rem;
    cursor: pointer;
    transition: border-color 0.2s;
}

.sw-drink-style-options input:checked + span {
    color: var(--sw-accent);
    font-weight: 700;
}

.sw-btn {
    display: inline-block;
    padding: 12px 28px;
    background: var(--sw-primary);
    color: #fff;
    border: none;
    border-radius: 6px;
    font-size: 1rem;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.2s;
    width: 100%;
    margin-top: 16px;
}

.sw-btn:hover { background: var(--sw-accent); color: var(--sw-primary); }

.sw-btn--voted {
    background: #aaa;
    cursor: not-allowed;
}

/* ===================================================
   Drink Style Bar Chart
   =================================================== */

.sw-drink-bars { margin: 16px 0; }

.sw-drink-bar-row {
    display: grid;
    grid-template-columns: 80px 1fr 50px;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
    font-size: 0.85rem;
}

.sw-drink-bar-track {
    height: 10px;
    background: var(--sw-border);
    border-radius: 5px;
    overflow: hidden;
}

.sw-drink-bar-fill {
    height: 100%;
    background: var(--sw-accent);
    border-radius: 5px;
    transition: width 0.5s;
}

/* ===================================================
   Improved Placeholder (タイプ別カラー)
   =================================================== */

.sw-brand-card__img--placeholder {
    background: linear-gradient(135deg, var(--sw-tsuchi-light) 0%, var(--sw-tsuchi) 100%);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.4rem;
    font-weight: 800;
    font-family: var(--sw-font-serif);
    letter-spacing: 0.04em;
    aspect-ratio: 1 / 1;
    text-shadow: 0 2px 4px rgba(0,0,0,0.15);
}
.sw-brand-card__img--type-flavor    { background: linear-gradient(135deg, #6ba070 0%, var(--sw-flavor) 100%); }
.sw-brand-card__img--type-character { background: linear-gradient(135deg, #d65a4a 0%, var(--sw-character) 100%); }
.sw-brand-card__img--type-light     { background: linear-gradient(135deg, #4ba1d4 0%, var(--sw-light) 100%); }
.sw-brand-card__img--type-rich      { background: linear-gradient(135deg, #f0954a 0%, var(--sw-rich) 100%); }
.sw-brand-card__placeholder-char    { line-height: 1; }

/* ===================================================
   Quick Nav (詳細ページの目次)
   =================================================== */

.sw-quick-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 24px;
    padding: 10px 14px;
    background: #fff;
    border: 1px solid var(--sw-border);
    border-radius: 10px;
    position: sticky;
    top: 60px;
    z-index: 50;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

.sw-quick-nav a {
    display: inline-block;
    padding: 6px 12px;
    border-radius: 18px;
    background: var(--sw-bg);
    color: var(--sw-sumi);
    font-size: 0.82rem;
    font-weight: 700;
    text-decoration: none;
    border: 1px solid transparent;
    transition: border-color 0.2s, background 0.2s;
}

.sw-quick-nav a:hover {
    border-color: var(--sw-accent);
    background: #fff;
}

@media (max-width: 640px) {
    .sw-quick-nav {
        padding: 8px 10px;
        gap: 6px;
        position: relative;
        top: 0;
    }
    .sw-quick-nav a {
        font-size: 0.74rem;
        padding: 4px 9px;
    }
}

/* スクロール時にヘッダー隠れない位置調整（アンカー）
   - 52px固定サイトナビ + sticky quick-nav (desktop) を考慮 */
.sw-section, [id^="sw-"] {
    scroll-margin-top: 140px;
}
@media (max-width: 640px) {
    .sw-section, [id^="sw-"] {
        scroll-margin-top: 80px;
    }
}

/* ハイライトコメント */
.sw-comments-highlight .sw-comment--highlight {
    background: #fff;
    border-left: 3px solid var(--sw-accent);
    padding: 12px 14px;
    margin-bottom: 10px;
    border-radius: 0 8px 8px 0;
}

.sw-comments__more {
    text-align: center;
    margin-top: 16px;
}

.sw-comments__more a {
    display: inline-block;
    padding: 8px 24px;
    background: var(--sw-bg);
    border: 1px solid var(--sw-border);
    border-radius: 20px;
    color: var(--sw-tsuchi-dark);
    text-decoration: none;
    font-size: 0.88rem;
    font-weight: 700;
}

.sw-comments__more a:hover {
    background: var(--sw-tsuchi-light);
    color: #fff;
    border-color: var(--sw-tsuchi-light);
}

/* ===================================================
   Pairing Section (合う料理・割り方ガイド)
   =================================================== */

.sw-pairing {
    background: #fff;
    border: 1px solid var(--sw-border);
    border-radius: 10px;
    padding: 24px;
    margin: 32px 0;
    border-left: 4px solid var(--sw-tsuchi);
}

.sw-pairing-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    margin-bottom: 20px;
}

@media (max-width: 640px) {
    .sw-pairing-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }
}

.sw-pairing__subtitle {
    margin: 0 0 12px;
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--sw-tsuchi-dark);
    border-bottom: 2px solid var(--sw-tsuchi-light);
    padding-bottom: 6px;
}

.sw-pairing__food-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.sw-pairing__food-item {
    background: var(--sw-bg);
    border: 1px solid var(--sw-border);
    border-radius: 14px;
    padding: 5px 12px;
    font-size: 0.85rem;
    color: var(--sw-tsuchi-dark);
}

.sw-pairing__best {
    margin: 0 0 8px;
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--sw-accent);
}

.sw-pairing__desc {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.6;
    color: var(--sw-text);
}

.sw-drink-guide {
    margin-top: 8px;
    border-top: 1px dashed var(--sw-border);
    padding-top: 16px;
}

.sw-drink-guide summary {
    cursor: pointer;
    font-weight: 700;
    font-size: 0.95rem;
    color: var(--sw-tsuchi-dark);
    padding: 6px 0;
    list-style: none;
}

.sw-drink-guide summary::-webkit-details-marker { display: none; }
.sw-drink-guide summary::before { content: '▸ '; }
.sw-drink-guide[open] summary::before { content: '▾ '; }

.sw-drink-guide__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 12px;
    margin-top: 16px;
}

.sw-drink-guide__card {
    background: var(--sw-bg);
    border: 1px solid var(--sw-border);
    border-radius: 8px;
    padding: 14px 12px;
    text-align: center;
    border-top: 3px solid var(--sw-tsuchi);
}

.sw-drink-guide__card--cold { border-top-color: var(--sw-light); }
.sw-drink-guide__card--hot  { border-top-color: var(--sw-character); }
.sw-drink-guide__card--room { border-top-color: var(--sw-tsuchi); }

.sw-drink-guide__icon {
    font-size: 1.8rem;
    margin-bottom: 4px;
}

.sw-drink-guide__name {
    font-weight: 700;
    color: var(--sw-sumi);
    margin-bottom: 6px;
    font-size: 0.95rem;
}

.sw-drink-guide__desc {
    margin: 0;
    font-size: 0.78rem;
    line-height: 1.5;
    color: var(--sw-text);
}

/* ===================================================
   Brand Card (Archive)
   =================================================== */

.sw-brand-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 24px;
    margin: 24px 0;
    align-items: stretch;
}

.sw-brand-card {
    background: #fff;
    border: 1px solid var(--sw-border);
    border-radius: 8px;
    overflow: hidden;
    transition: box-shadow 0.2s;
    text-decoration: none;
    color: var(--sw-text);
}

.sw-brand-card:hover { box-shadow: 0 4px 16px rgba(0,0,0,0.1); }

.sw-brand-card__img {
    width: 100%;
    aspect-ratio: 4/3;
    object-fit: cover;
    background: var(--sw-bg);
    display: block;
}

.sw-brand-card__body {
    padding: 14px 16px;
    flex: 1;
}

.sw-brand-card__name {
    font-size: 1rem;
    font-weight: 700;
    margin: 0 0 4px;
}

.sw-brand-card__meta {
    font-size: 0.8rem;
    color: #888;
    margin-bottom: 8px;
}

/* 銘柄追加カード（一覧末尾） */
.sw-brand-card--register {
    border: 2px dashed var(--sw-primary);
    background: linear-gradient(135deg, rgba(201,168,76,0.04) 0%, rgba(201,168,76,0.10) 100%);
    min-height: 100%;
}
.sw-brand-card--register__link {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    min-height: 220px;
    padding: 24px 16px;
    text-decoration: none;
    color: var(--sw-text);
    text-align: center;
    transition: transform 0.2s;
}
.sw-brand-card--register__link:hover { transform: scale(1.02); }
.sw-brand-card--register__icon {
    font-size: 2.4rem;
    font-weight: 700;
    color: var(--sw-primary);
    line-height: 1;
    margin-bottom: 12px;
}
.sw-brand-card--register__text {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--sw-text);
    margin-bottom: 4px;
}
.sw-brand-card--register__sub {
    font-size: 0.75rem;
    color: #888;
}

/* ===================================================
   Comment Section
   =================================================== */

.sw-comments { margin: 32px 0; }

.sw-comment {
    border-top: 1px solid var(--sw-border);
    padding: 16px 0;
}

.sw-comment__meta {
    font-size: 0.8rem;
    color: #888;
    margin-bottom: 6px;
}

/* ===================================================
   Responsive
   =================================================== */

@media (max-width: 600px) {
    .sw-vote-form { padding: 16px; }
    .sw-brand-cards {
        grid-template-columns: 1fr 1fr;
        gap: 12px;
    }
    .sw-brand-card__body { padding: 12px 13px; }
    .sw-brand-card__name {
        font-size: 0.95rem;
        line-height: 1.4;
        word-break: auto-phrase;
    }
    .sw-brand-card__meta { font-size: 0.74rem; line-height: 1.5; }
    .sw-brand-card--register__link { min-height: 180px; padding: 16px 8px; }
    .sw-brand-card--register__icon { font-size: 1.8rem; margin-bottom: 8px; }
    .sw-brand-card--register__text { font-size: 0.85rem; }
    .sw-brand-card--register__sub { font-size: 0.68rem; }
}

/* ===================================================
   グローバル: 日本語タイポグラフィ
   =================================================== */
body {
    line-height: 1.75;
}
h1, h2, h3, h4, h5, h6 {
    word-break: auto-phrase;
    line-break: strict;
    text-wrap: balance;
}
p, li, dd {
    text-wrap: pretty;
}

/* ===================================================
   Layout Utilities
   =================================================== */

.sw-container {
    max-width: 1140px;
    margin: 0 auto;
    padding: 0 20px 24px;
}

.sw-section {
    margin: 24px 0;
}

.sw-section__title {
    font-size: 1.1rem;
    font-weight: 700;
    margin: 0 0 16px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--sw-border);
    word-break: keep-all !important;
    text-wrap: wrap !important;
    overflow-wrap: anywhere;
    line-break: loose;
    color: var(--sw-primary);
}

/* ===================================================
   Brand Detail Header
   =================================================== */

.sw-single-page { padding: 32px 0; }

.sw-brand-header {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 28px;
    align-items: start;
    margin-bottom: 24px;
}
@media (max-width: 768px) {
    .sw-brand-header {
        grid-template-columns: 1fr;
        gap: 16px;
    }
    .sw-brand-header__img-wrap {
        max-width: 280px;
        margin: 0 auto;
    }
}

.sw-brand-header__img {
    width: 100%;
    border-radius: 10px;
    object-fit: cover;
    aspect-ratio: 1/1;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

.sw-brand-header__img-placeholder {
    width: 100%;
    aspect-ratio: 1/1;
    background: linear-gradient(135deg, var(--sw-tsuchi-light), var(--sw-tsuchi));
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 4rem;
    color: #fff;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

.sw-brand-header__name-ja {
    font-size: 2rem;
    font-weight: 900;
    margin: 0 0 4px;
    color: var(--sw-primary);
}

.sw-brand-header__name-en {
    font-size: 1rem;
    color: #888;
    margin: 0 0 16px;
    letter-spacing: 0.05em;
}

.sw-brand-header__dl {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px 16px;
    margin: 0 0 16px;
}

.sw-brand-header__dl > div {
    display: flex;
    gap: 8px;
    font-size: 0.875rem;
}

.sw-brand-header__dl dt {
    color: #888;
    white-space: nowrap;
    min-width: 36px;
}

.sw-brand-header__dl dd {
    font-weight: 600;
    color: var(--sw-text);
    margin: 0;
}

.sw-brand-header__comment {
    font-size: 0.9rem;
    color: #555;
    line-height: 1.7;
    background: var(--sw-bg);
    border-left: 3px solid var(--sw-accent);
    padding: 10px 14px;
    border-radius: 0 4px 4px 0;
    margin: 0;
}

/* ===================================================
   Flavor Map
   =================================================== */

.sw-flavor-map-wrap {
    position: relative;
}

.sw-map-labels {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 1;
}

.sw-map-label {
    position: absolute;
    font-size: 0.7rem;
    font-weight: 700;
    opacity: 0.7;
    background: rgba(255,255,255,0.8);
    padding: 2px 6px;
    border-radius: 4px;
}
.sw-map-label--tl { top: 36px;  left:  12px; }
.sw-map-label--tr { top: 36px;  right: 12px; }
.sw-map-label--bl { bottom: 36px; left:  12px; }
.sw-map-label--br { bottom: 36px; right: 12px; }

.sw-type-summary {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 12px;
    flex-wrap: wrap;
}

.sw-vote-count {
    font-size: 0.9rem;
    color: #666;
}

.sw-avg-values {
    font-size: 0.85rem;
    color: #888;
}

.sw-no-votes {
    font-size: 0.85rem;
    color: var(--sw-accent);
    font-weight: 600;
}

/* ===================================================
   Comment Wrap
   =================================================== */

.sw-comment-wrap {
    margin: 16px 0;
}

.sw-comment-wrap label {
    display: block;
    margin-bottom: 6px;
    font-size: 0.875rem;
    font-weight: 600;
}

.sw-comment-wrap textarea {
    width: 100%;
    border: 1px solid var(--sw-border);
    border-radius: 6px;
    padding: 10px;
    font-size: 0.9rem;
    font-family: var(--sw-font-sans);
    resize: vertical;
    box-sizing: border-box;
}

.sw-login-hint {
    font-size: 0.85rem;
    color: #888;
    margin: 12px 0;
}

.sw-login-hint a { color: var(--sw-accent); }

/* ===================================================
   Buy Links
   =================================================== */

.sw-buy-links {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.sw-buy-btn {
    display: inline-block;
    padding: 10px 20px;
    border-radius: 6px;
    font-size: 0.9rem;
    font-weight: 700;
    text-decoration: none;
    transition: opacity 0.2s;
}
.sw-buy-btn:hover { opacity: 0.8; }
.sw-buy-btn--amazon  { background: #ff9900; color: #111; }
.sw-buy-btn--rakuten { background: #BF0000; color: #fff; }
.sw-buy-btn--other   { background: var(--sw-primary); color: #fff; }

/* ===================================================
   Post Navigation
   =================================================== */

.sw-post-nav {
    display: flex;
    justify-content: space-between;
    margin-top: 48px;
    padding-top: 20px;
    border-top: 1px solid var(--sw-border);
}

.sw-post-nav__link {
    font-size: 0.875rem;
    color: var(--sw-primary);
    text-decoration: none;
    font-weight: 600;
}
.sw-post-nav__link:hover { color: var(--sw-accent); }

/* ===================================================
   Archive Page
   =================================================== */

.sw-archive-page { padding: 16px 0; }

.sw-archive-header { margin-bottom: 12px; }

.sw-archive-title {
    font-size: 1.5rem;
    font-weight: 900;
    margin: 0 0 4px;
    color: var(--sw-primary);
}

.sw-archive-desc {
    font-size: 0.85rem;
    color: #888;
    margin: 0;
}

/* フィルターバー */
.sw-filter-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin-bottom: 24px;
    padding: 16px;
    background: #fff;
    border: 1px solid var(--sw-border);
    border-radius: 8px;
}

.sw-filter-bar select {
    padding: 6px 10px;
    border: 1px solid var(--sw-border);
    border-radius: 6px;
    font-size: 0.875rem;
    background: #fff;
    cursor: pointer;
}

.sw-filter-reset {
    font-size: 0.8rem;
    color: #888;
    text-decoration: none;
    padding: 6px 10px;
    border: 1px solid var(--sw-border);
    border-radius: 6px;
}
.sw-filter-reset:hover { background: var(--sw-bg); }

/* Brand card 追加スタイル */
.sw-brand-card__img--placeholder {
    aspect-ratio: 4/3;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 3rem;
    background: var(--sw-bg);
}

.sw-brand-card__name-en {
    font-size: 0.75rem;
    color: #aaa;
    margin: 0 0 4px;
    letter-spacing: 0.03em;
}

.sw-brand-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
    margin-top: 10px;
    flex-wrap: wrap;
    min-height: 22px;
}

.sw-brand-card__footer .sw-badge {
    font-size: 0.68rem;
    padding: 3px 8px;
    text-transform: none;
    letter-spacing: 0;
    flex-shrink: 0;
    line-height: 1.4;
}

.sw-brand-card__votes {
    font-size: 0.72rem;
    color: #888;
    flex-shrink: 0;
    white-space: nowrap;
}

.sw-brand-card__votes--none {
    color: #bbb;
}

@media (max-width: 600px) {
    .sw-brand-card__footer .sw-badge {
        font-size: 0.62rem;
        padding: 2px 6px;
    }
    .sw-brand-card__votes { font-size: 0.68rem; }
}

/* ページネーション */
.sw-pagination {
    display: flex;
    justify-content: center;
    gap: 6px;
    margin-top: 40px;
}

.sw-pagination .page-numbers {
    display: inline-block;
    padding: 6px 12px;
    border: 1px solid var(--sw-border);
    border-radius: 6px;
    text-decoration: none;
    font-size: 0.875rem;
    color: var(--sw-text);
}

.sw-pagination .page-numbers.current {
    background: var(--sw-primary);
    color: #fff;
    border-color: var(--sw-primary);
}

/* 空状態 */
.sw-empty {
    text-align: center;
    padding: 60px 20px;
    color: #888;
}

/* ===================================================
   Responsive – Single
   =================================================== */

@media (max-width: 640px) {
    .sw-brand-header {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }
    .sw-brand-header__img-wrap {
        max-width: 280px;
        margin: 0 auto;
    }
    .sw-brand-header__name-ja { font-size: 1.4rem; }
    .sw-brand-header__dl { grid-template-columns: 1fr; }
    .sw-map-label { display: none; }
    .sw-buy-links { flex-direction: column; }
}

/* ============================================================
   TYPE GUIDE PAGE — 焼酎タイプガイド
   ============================================================ */

/* ヒーロー */
.sw-tg-hero {
    background: var(--sw-primary);
    color: #fff;
    padding: 60px 0 40px;
    text-align: center;
}
.sw-tg-hero__label {
    font-size: 0.75rem;
    letter-spacing: 0.15em;
    color: var(--sw-accent);
    text-transform: uppercase;
    margin: 0 0 8px;
}
.sw-tg-hero__title {
    font-family: var(--sw-font-serif);
    font-size: 2rem;
    color: #fff;
    margin: 0 0 16px;
}
.sw-tg-hero__desc {
    font-size: 0.95rem;
    color: rgba(255,255,255,0.75);
    line-height: 1.8;
    max-width: 640px;
    margin: 0 auto 32px;
}

/* 概要マップ */
.sw-tg-overview-map {
    max-width: 480px;
    margin: 0 auto;
    background: rgba(255,255,255,0.06);
    border-radius: 12px;
    padding: 16px;
}
.sw-tg-overview-map svg {
    width: 100%;
    height: auto;
}

/* 各タイプセクション */
.sw-tg-type {
    padding: 64px 0;
    border-bottom: 1px solid var(--sw-border);
}
.sw-tg-type:nth-child(even) {
    background: #fafaf8;
}

/* タイプヘッダー */
.sw-tg-type__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 16px;
    margin-bottom: 32px;
    padding-bottom: 24px;
    border-bottom: 2px solid var(--type-color);
}
.sw-tg-type__title-block {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}
.sw-tg-type__icon {
    font-size: 2.4rem;
    line-height: 1;
}
.sw-tg-type__en {
    font-size: 0.75rem;
    letter-spacing: 0.12em;
    color: var(--type-color);
    text-transform: uppercase;
    margin: 0 0 2px;
    font-weight: 600;
}
.sw-tg-type__name {
    font-family: var(--sw-font-serif);
    font-size: 1.7rem;
    color: var(--sw-primary);
    margin: 0;
}
.sw-tg-type__keyword {
    font-size: 0.9rem;
    color: #666;
    background: var(--type-bg);
    border: 1px solid var(--type-color);
    border-radius: 20px;
    padding: 6px 16px;
}
.sw-tg-type__keyword strong {
    color: var(--type-color);
}
.sw-tg-type__position {
    font-size: 0.8rem;
    color: #999;
    background: #f5f5f5;
    padding: 6px 14px;
    border-radius: 20px;
}

/* ボディ：説明＋銘柄 2カラム */
.sw-tg-type__body {
    display: grid;
    grid-template-columns: 1fr 340px;
    gap: 40px;
    align-items: start;
}
.sw-tg-type__overview {
    font-size: 1rem;
    line-height: 1.8;
    color: var(--sw-text);
    margin: 0 0 24px;
}

/* 詳細グリッド */
.sw-tg-detail-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-bottom: 24px;
}
.sw-tg-detail-item {
    background: var(--type-bg);
    border-radius: 10px;
    padding: 16px;
}
.sw-tg-detail-item__title {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--sw-primary);
    margin: 0 0 8px;
}
.sw-tg-detail-item p {
    font-size: 0.875rem;
    line-height: 1.7;
    color: #555;
    margin: 0;
}

/* おすすめ飲み方 */
.sw-tg-howto {
    background: var(--sw-primary);
    border-radius: 10px;
    padding: 20px 24px;
}
.sw-tg-howto__title {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--sw-accent);
    margin: 0 0 14px;
    letter-spacing: 0.05em;
}
.sw-tg-howto__list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.sw-tg-howto__item {
    display: flex;
    align-items: baseline;
    gap: 12px;
}
.sw-tg-howto__method {
    font-size: 0.85rem;
    font-weight: 700;
    color: #fff;
    white-space: nowrap;
    min-width: 80px;
    background: var(--type-color);
    padding: 3px 10px;
    border-radius: 4px;
    text-align: center;
}
.sw-tg-howto__reason {
    font-size: 0.82rem;
    color: rgba(255,255,255,0.7);
    line-height: 1.5;
}

/* 銘柄カラム */
.sw-tg-brands {
    background: #fff;
    border: 1px solid var(--sw-border);
    border-radius: 12px;
    padding: 20px;
    position: sticky;
    top: 72px;
}
.sw-tg-brands__title {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--sw-primary);
    margin: 0 0 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.sw-tg-brands__count {
    font-size: 0.78rem;
    font-weight: 400;
    color: var(--type-color);
    background: var(--type-bg);
    padding: 2px 8px;
    border-radius: 10px;
}
.sw-tg-brands__list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.sw-tg-brands__more {
    display: block;
    text-align: center;
    font-size: 0.82rem;
    color: var(--type-color);
    margin-top: 14px;
    text-decoration: none;
    padding: 8px;
    border: 1px solid var(--type-color);
    border-radius: 6px;
    transition: background 0.15s;
}
.sw-tg-brands__more:hover { background: var(--type-bg); }
.sw-tg-brands__empty {
    font-size: 0.85rem;
    color: #999;
    text-align: center;
    padding: 20px 0;
}

/* 銘柄カード（タイプガイド用） */
.sw-tg-brand-card {
    display: block;
    text-decoration: none;
    background: var(--type-bg);
    border: 1px solid transparent;
    border-radius: 8px;
    padding: 12px;
    transition: border-color 0.15s, background 0.15s;
}
.sw-tg-brand-card:hover { border-color: var(--type-color); }
.sw-tg-brand-card__top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 8px;
}
.sw-tg-brand-card__name {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--sw-primary);
    margin: 0 0 2px;
}
.sw-tg-brand-card__en {
    font-size: 0.72rem;
    color: #999;
    margin: 0;
}
.sw-tg-brand-card__tag {
    font-size: 0.72rem;
    background: var(--type-color);
    color: #fff;
    padding: 2px 8px;
    border-radius: 10px;
    white-space: nowrap;
}
.sw-tg-brand-card__scores { margin-bottom: 6px; }
.sw-tg-brand-card__score-row {
    display: grid;
    grid-template-columns: 40px 1fr 28px;
    align-items: center;
    gap: 6px;
    margin-bottom: 4px;
    font-size: 0.72rem;
    color: #666;
}
.sw-tg-brand-card__bar-wrap {
    background: rgba(0,0,0,0.08);
    border-radius: 3px;
    height: 5px;
    overflow: hidden;
}
.sw-tg-brand-card__bar {
    height: 100%;
    background: var(--type-color);
    border-radius: 3px;
    transition: width 0.4s ease;
}
.sw-tg-brand-card__footer {
    display: flex;
    justify-content: space-between;
    font-size: 0.72rem;
    color: #999;
}
.sw-tg-brand-card__votes { color: var(--type-color); }

/* CTA */
.sw-tg-cta {
    background: var(--sw-primary);
    color: #fff;
    text-align: center;
    padding: 60px 0;
}
.sw-tg-cta h2 {
    font-family: var(--sw-font-serif);
    font-size: 1.5rem;
    color: #fff;
    margin: 0 0 12px;
}
.sw-tg-cta p {
    color: rgba(255,255,255,0.7);
    margin: 0 0 24px;
    font-size: 0.95rem;
}
.sw-tg-cta__buttons {
    display: flex;
    gap: 12px;
    justify-content: center;
    flex-wrap: wrap;
}

/* レスポンシブ */
@media (max-width: 768px) {
    .sw-tg-type__body {
        grid-template-columns: 1fr;
    }
    .sw-tg-detail-grid {
        grid-template-columns: 1fr;
    }
    .sw-tg-brands {
        position: static;
    }
    .sw-tg-hero__title { font-size: 1.5rem; }
    .sw-tg-type__header { flex-direction: column; align-items: flex-start; }
}

/* ==========================================================
   購入リンクボタン（一覧カード内）
   ========================================================== */

.sw-brand-card {
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0,0,0,.06);
    transition: box-shadow 0.2s, transform 0.2s;
}
.sw-brand-card:hover { box-shadow: 0 6px 20px rgba(0,0,0,.12); transform: translateY(-2px); }
.sw-brand-card__link {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: inherit;
    flex: 1;
}
.sw-brand-card__links {
    display: flex;
    gap: 6px;
    padding: 10px 12px;
    border-top: 1px solid #f0ede8;
    background: #faf9f7;
    flex-wrap: wrap;
}
.sw-buy-btn {
    display: inline-block;
    font-size: 0.78rem;
    font-weight: 600;
    padding: 4px 10px;
    border-radius: 5px;
    text-decoration: none;
    transition: opacity 0.15s;
    white-space: nowrap;
}
.sw-buy-btn:hover { opacity: 0.8; }
.sw-buy-btn--official {
    background: #f0ede8;
    color: #1a1a2e;
    border: 1px solid #d8d3cb;
}
.sw-buy-btn--amazon {
    background: #ff9900;
    color: #111;
}
.sw-buy-btn--rakuten {
    background: #bf0000;
    color: #fff;
}

/* ==========================================================
   銘柄詳細：画像ギャラリー
   ========================================================== */

.sw-brand-gallery {
    position: relative;
    width: 100%;
    aspect-ratio: 4/3;
    background: #f5f2ed;
    border-radius: 12px;
    overflow: hidden;
}
.sw-brand-gallery__item {
    display: none;
    width: 100%;
    height: 100%;
}
.sw-brand-gallery__item.is-active { display: block; }
.sw-brand-gallery__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.sw-brand-gallery__nav {
    position: absolute;
    bottom: 10px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 6px;
}
.sw-brand-gallery__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: rgba(255,255,255,0.5);
    border: none;
    cursor: pointer;
    padding: 0;
    transition: background 0.15s;
}
.sw-brand-gallery__dot.is-active { background: #fff; }

/* ==========================================================
   銘柄登録フォーム
   ========================================================== */

.sw-register-page { padding: 40px 0 80px; }
.sw-register-header { text-align: center; margin-bottom: 40px; }
.sw-register-title { font-size: 2rem; font-weight: 800; color: #1a1a2e; margin-bottom: 12px; }
.sw-register-desc { color: #555; line-height: 1.7; margin-bottom: 16px; }
.sw-register-notice {
    display: inline-flex; align-items: center; gap: 6px;
    background: #f0f6ff; border: 1px solid #c3d9f0;
    border-radius: 8px; padding: 8px 16px;
    font-size: 0.875rem; color: #2980b9;
}

.sw-reg-status {
    padding: 14px 20px;
    border-radius: 8px;
    margin-bottom: 24px;
    font-weight: 600;
    font-size: 0.95rem;
}
.sw-reg-status--success { background: #e8f5e9; color: #2e7d32; border: 1px solid #a5d6a7; }
.sw-reg-status--error   { background: #ffeaea; color: #c0392b; border: 1px solid #f5a5a5; }

.sw-register-form { max-width: 760px; margin: 0 auto; }

.sw-reg-section {
    border: 1px solid #e8e3db;
    border-radius: 12px;
    padding: 24px 28px;
    margin-bottom: 24px;
    background: #fff;
}
.sw-reg-section__title {
    font-size: 1.05rem; font-weight: 700; color: #1a1a2e;
    margin: 0 0 16px; padding: 0;
    border: none;
}
.sw-reg-section__desc { font-size: 0.875rem; color: #777; margin-bottom: 16px; }
.sw-reg-section__note { font-size: 0.78rem; color: #888; margin-top: 12px; padding: 8px 12px; background: #faf8f5; border-radius: 6px; border-left: 3px solid var(--sw-primary); }

/* レンジスライダー（評価） */
.sw-reg-range {
    width: 100%;
    appearance: none;
    -webkit-appearance: none;
    height: 8px;
    border-radius: 4px;
    background: linear-gradient(to right, #e8e0d0, #c9a84c);
    outline: none;
    margin: 12px 0 4px;
}
.sw-reg-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 22px; height: 22px;
    border-radius: 50%;
    background: #fff;
    border: 3px solid var(--sw-primary);
    cursor: pointer;
    box-shadow: 0 1px 4px rgba(0,0,0,.15);
}
.sw-reg-range::-moz-range-thumb {
    width: 22px; height: 22px;
    border-radius: 50%;
    background: #fff;
    border: 3px solid var(--sw-primary);
    cursor: pointer;
}
.sw-reg-range-scale {
    display: flex;
    justify-content: space-between;
    font-size: 0.72rem;
    color: #999;
    padding: 0 2px;
}
.sw-reg-rating-val {
    display: inline-block;
    margin-left: 8px;
    padding: 1px 8px;
    background: var(--sw-primary);
    color: #fff;
    font-size: 0.75rem;
    font-weight: 700;
    border-radius: 10px;
    min-width: 50px;
    text-align: center;
}

/* チェックボックスグループ（飲み方） */
.sw-reg-checkgroup {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 6px;
}
.sw-reg-check {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    background: #faf8f5;
    border: 1px solid var(--sw-border);
    border-radius: 20px;
    font-size: 0.85rem;
    cursor: pointer;
    transition: all 0.15s;
}
.sw-reg-check:hover { border-color: var(--sw-primary); }
.sw-reg-check input { margin: 0; cursor: pointer; }
.sw-reg-check input:checked + span { color: var(--sw-primary); font-weight: 700; }
.sw-reg-check:has(input:checked) {
    background: rgba(201,168,76,0.10);
    border-color: var(--sw-primary);
}

.sw-reg-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}
.sw-reg-field { display: flex; flex-direction: column; gap: 6px; }
.sw-reg-field--full { grid-column: 1 / -1; }

.sw-reg-label { font-size: 0.875rem; font-weight: 600; color: #333; }
.sw-reg-required {
    display: inline-block; background: #c0392b; color: #fff;
    font-size: 10px; padding: 1px 5px; border-radius: 3px;
    margin-left: 6px; font-weight: 700; vertical-align: middle;
}
.sw-reg-input,
.sw-reg-select,
.sw-reg-textarea {
    padding: 9px 12px;
    border: 1px solid #d8d3cb;
    border-radius: 7px;
    font-size: 0.9rem;
    font-family: inherit;
    background: #faf9f7;
    transition: border-color 0.15s;
    width: 100%;
    box-sizing: border-box;
}
.sw-reg-input:focus,
.sw-reg-select:focus,
.sw-reg-textarea:focus {
    outline: none;
    border-color: #c9a84c;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(201,168,76,0.15);
}
.sw-reg-textarea { resize: vertical; }

/* アップロードエリア */
.sw-reg-upload-area {
    border: 2px dashed #d8d3cb;
    border-radius: 10px;
    padding: 32px 20px;
    text-align: center;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s;
    position: relative;
    background: #faf9f7;
}
.sw-reg-upload-area:hover,
.sw-reg-upload-area.is-drag-over { border-color: #c9a84c; background: #fff9ee; }
.sw-reg-upload-label { cursor: pointer; display: flex; flex-direction: column; gap: 6px; align-items: center; }
.sw-reg-upload-icon { font-size: 2rem; }
.sw-reg-upload-text { font-size: 0.95rem; font-weight: 600; color: #333; }
.sw-reg-upload-hint { font-size: 0.8rem; color: #888; }
.sw-reg-upload-input {
    position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer;
}

/* 画像プレビュー */
.sw-reg-preview {
    display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px;
}
.sw-reg-preview__item {
    display: flex; flex-direction: column; align-items: center; gap: 4px;
    width: 90px;
}
.sw-reg-preview__item img {
    width: 90px; height: 90px; object-fit: cover;
    border-radius: 6px; border: 1px solid #ddd;
}
.sw-reg-preview__item span { font-size: 0.7rem; color: #888; text-align: center; }

/* 送信ボタン */
.sw-reg-submit-wrap { text-align: center; margin-top: 8px; }
.sw-reg-submit {
    background: #c9a84c;
    color: #1a1a2e;
    border: none;
    border-radius: 10px;
    padding: 14px 48px;
    font-size: 1rem;
    font-weight: 800;
    cursor: pointer;
    transition: background 0.2s, transform 0.1s;
    font-family: inherit;
}
.sw-reg-submit:hover:not(:disabled) { background: #e0c060; transform: translateY(-1px); }
.sw-reg-submit:disabled { opacity: 0.6; cursor: not-allowed; }
.sw-reg-submit__note { margin-top: 12px; font-size: 0.8rem; color: #888; line-height: 1.6; }

@media (max-width: 640px) {
    .sw-reg-grid { grid-template-columns: 1fr; }
    .sw-reg-section { padding: 18px 16px; }
    .sw-register-title { font-size: 1.5rem; }
    .sw-brand-card__links { gap: 4px; }
}

/* ==========================================================
   コメントセクション（ゲスト投稿対応）
   ========================================================== */

.sw-comments-section {
    margin-top: 48px;
    padding-top: 40px;
    border-top: 2px solid var(--sw-border);
}
.sw-comments {
    max-width: 720px;
    margin: 0 auto;
}
.sw-comments__title {
    font-family: var(--sw-font-serif);
    font-size: 1.25rem;
    color: var(--sw-primary);
    margin: 0 0 24px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--sw-border);
}

/* コメントリスト */
.sw-comment-list {
    list-style: none;
    padding: 0;
    margin: 0 0 40px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.sw-comment {
    background: #fff;
    border: 1px solid var(--sw-border);
    border-radius: 10px;
    padding: 0;
    overflow: hidden;
}
.sw-comment.bypostauthor > .sw-comment__body { border-left: 3px solid var(--sw-accent); }
.sw-comment__body { padding: 16px 20px; }
.sw-comment__header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}
.sw-comment__avatar .sw-avatar { border-radius: 50%; display: block; }
.sw-comment__meta { flex: 1; }
.sw-comment__author {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--sw-primary);
    display: block;
}
.sw-comment__date {
    font-size: 0.78rem;
    color: #999;
    display: block;
}
.sw-comment__pending {
    font-size: 0.72rem;
    background: #fff3cd;
    color: #856404;
    padding: 2px 8px;
    border-radius: 4px;
    border: 1px solid #ffc107;
}
.sw-comment__text {
    font-size: 0.9rem;
    line-height: 1.75;
    color: var(--sw-text);
}
.sw-comment__text p { margin: 0 0 8px; }
.sw-comment__text p:last-child { margin: 0; }
.sw-comment__reply { margin-top: 10px; }
.sw-comment__reply .comment-reply-link {
    font-size: 0.78rem;
    color: var(--sw-accent);
    text-decoration: none;
    padding: 3px 10px;
    border: 1px solid var(--sw-accent);
    border-radius: 4px;
    transition: background 0.15s;
}
.sw-comment__reply .comment-reply-link:hover { background: rgba(201,168,76,0.1); }

/* 返信（子コメント）インデント */
.sw-comment-list .children {
    list-style: none;
    padding: 0 0 0 40px;
    margin: 8px 0 0;
}

/* コメントフォーム */
.sw-comment-form-wrap {
    background: #fff;
    border: 1px solid var(--sw-border);
    border-radius: 12px;
    padding: 28px 32px;
}
.sw-comment-note {
    font-size: 0.85rem;
    color: #888;
    margin: 0 0 20px;
    padding: 10px 14px;
    background: #f8f5f0;
    border-radius: 6px;
}
.sw-comment-loggedin {
    font-size: 0.85rem;
    color: #666;
    margin: 0 0 16px;
}
.sw-comment-form .sw-form-field { margin-bottom: 16px; }
.sw-comment-form .sw-form-row--2col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-bottom: 16px;
}
.sw-form-label {
    display: block;
    font-size: 0.875rem;
    font-weight: 600;
    color: #333;
    margin-bottom: 6px;
}
.sw-form-label .required { color: #c0392b; margin-left: 4px; }
.sw-form-input,
.sw-form-textarea {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #d8d3cb;
    border-radius: 7px;
    font-size: 0.9rem;
    font-family: inherit;
    background: #faf9f7;
    box-sizing: border-box;
    transition: border-color 0.15s, box-shadow 0.15s;
}
.sw-form-input:focus,
.sw-form-textarea:focus {
    outline: none;
    border-color: var(--sw-accent);
    background: #fff;
    box-shadow: 0 0 0 3px rgba(201,168,76,0.15);
}
.sw-form-textarea { resize: vertical; min-height: 120px; }
.sw-form-cookies { font-size: 0.82rem; color: #666; margin: 4px 0 16px; }
.sw-form-cookies label { display: flex; align-items: center; gap: 8px; cursor: pointer; }
.sw-comment-form .sw-btn--primary,
.sw-comment-form #submit {
    background: var(--sw-primary);
    color: #fff;
    border: none;
    border-radius: 8px;
    padding: 12px 32px;
    font-size: 0.95rem;
    font-weight: 700;
    cursor: pointer;
    font-family: inherit;
    transition: background 0.2s;
}
.sw-comment-form .sw-btn--primary:hover,
.sw-comment-form #submit:hover { background: #2a2a4e; }
.sw-comment-closed { color: #999; font-size: 0.9rem; text-align: center; padding: 24px; }

@media (max-width: 640px) {
    .sw-comment-form-wrap { padding: 20px 16px; }
    .sw-comment-form .sw-form-row--2col { grid-template-columns: 1fr; }
    .sw-comment-list .children { padding-left: 20px; }
}

/* ==========================================================
   ブログ（焼酎コラム）
   ========================================================== */

.sw-blog-page { padding: 40px 0 80px; }
.sw-blog-header {
    text-align: center;
    padding: 48px 0 40px;
    background: var(--sw-primary);
    color: #fff;
    margin-bottom: 48px;
}
.sw-blog-header__label {
    font-size: 0.75rem;
    letter-spacing: 0.15em;
    color: var(--sw-accent);
    text-transform: uppercase;
    margin: 0 0 8px;
}
.sw-blog-header h1 {
    font-family: var(--sw-font-serif);
    font-size: 2rem;
    color: #fff;
    margin: 0 0 12px;
}
.sw-blog-header p {
    color: rgba(255,255,255,0.7);
    margin: 0;
    font-size: 0.95rem;
}

/* カテゴリフィルター */
.sw-blog-cats {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 36px;
    justify-content: center;
}
.sw-blog-cat {
    display: inline-block;
    padding: 6px 16px;
    border: 1px solid var(--sw-border);
    border-radius: 20px;
    font-size: 0.82rem;
    text-decoration: none;
    color: var(--sw-text);
    background: #fff;
    transition: all 0.15s;
}
.sw-blog-cat:hover,
.sw-blog-cat--active {
    background: var(--sw-primary);
    color: #fff;
    border-color: var(--sw-primary);
}

/* 記事グリッド */
.sw-blog-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 28px;
}
.sw-blog-card {
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0,0,0,.06);
    transition: box-shadow 0.2s, transform 0.2s;
    display: flex;
    flex-direction: column;
}
.sw-blog-card:hover { box-shadow: 0 6px 20px rgba(0,0,0,.12); transform: translateY(-2px); }
.sw-blog-card__img-wrap { aspect-ratio: 16/9; overflow: hidden; background: var(--sw-bg); }
.sw-blog-card__img-wrap img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sw-blog-card__img-placeholder {
    width: 100%; height: 100%; display: flex; align-items: center; justify-content: center;
    font-size: 2.5rem; background: var(--sw-bg);
}
.sw-blog-card__body { padding: 20px; flex: 1; display: flex; flex-direction: column; }
.sw-blog-card__cats { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 10px; }
.sw-blog-card__cat {
    font-size: 0.72rem; font-weight: 600; padding: 2px 8px;
    background: var(--sw-bg); color: var(--sw-accent);
    border: 1px solid rgba(201,168,76,0.3); border-radius: 4px; text-decoration: none;
}
.sw-blog-card__title {
    font-family: var(--sw-font-serif);
    font-size: 1rem;
    font-weight: 700;
    color: var(--sw-primary);
    margin: 0 0 10px;
    line-height: 1.5;
    text-decoration: none;
    display: block;
}
.sw-blog-card__title:hover { color: var(--sw-accent); }
.sw-blog-card__excerpt { font-size: 0.85rem; color: #777; line-height: 1.6; margin: 0; flex: 1; }
.sw-blog-card__footer {
    display: flex; align-items: center; justify-content: space-between;
    margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--sw-border);
}
.sw-blog-card__date { font-size: 0.78rem; color: #aaa; }
.sw-blog-card__read {
    font-size: 0.8rem; color: var(--sw-accent); text-decoration: none; font-weight: 600;
}
.sw-blog-card__read:hover { text-decoration: underline; }

/* 単一記事ページ */
.sw-blog-single { max-width: 720px; margin: 0 auto; padding: 40px 20px 80px; }
.sw-blog-single__header { margin-bottom: 32px; }
.sw-blog-single__cats { display: flex; gap: 6px; margin-bottom: 16px; flex-wrap: wrap; }
.sw-blog-single__title {
    font-family: var(--sw-font-serif);
    font-size: 1.8rem;
    font-weight: 700;
    color: var(--sw-primary);
    margin: 0 0 16px;
    line-height: 1.4;
}
.sw-blog-single__meta { display: flex; align-items: center; gap: 16px; color: #999; font-size: 0.85rem; }
.sw-blog-single__hero { margin-bottom: 32px; border-radius: 12px; overflow: hidden; }
.sw-blog-single__hero img { width: 100%; height: auto; display: block; }
.sw-blog-single__content {
    font-size: 1rem;
    line-height: 1.85;
    color: var(--sw-text);
}
.sw-blog-single__content h2 { font-size: 1.35rem; color: var(--sw-primary); margin: 2em 0 0.8em; }
.sw-blog-single__content h3 { font-size: 1.1rem; color: var(--sw-primary); margin: 1.6em 0 0.6em; }
.sw-blog-single__content p { margin: 0 0 1.2em; }
.sw-blog-single__content blockquote {
    border-left: 3px solid var(--sw-accent); margin: 1.5em 0;
    padding: 12px 20px; background: #faf9f7; color: #555; font-style: italic;
}
.sw-blog-single__content img { max-width: 100%; border-radius: 8px; }
.sw-blog-single__content ul, .sw-blog-single__content ol { padding-left: 1.5em; margin: 0 0 1.2em; }

/* 関連銘柄 */
.sw-blog-related-brands {
    margin-top: 48px; padding: 28px; background: #fff;
    border: 1px solid var(--sw-border); border-radius: 12px;
}
.sw-blog-related-brands h3 {
    font-size: 1rem; font-weight: 700; color: var(--sw-primary); margin: 0 0 16px;
}

/* ==========================================================
   酒蔵紹介ページ
   ========================================================== */

.sw-distilleries-page { padding: 40px 0 80px; }
.sw-distilleries-header {
    background: var(--sw-primary);
    color: #fff;
    padding: 48px 0 40px;
    text-align: center;
    margin-bottom: 48px;
}
.sw-distilleries-header__label {
    font-size: 0.75rem; letter-spacing: 0.15em; color: var(--sw-accent);
    text-transform: uppercase; margin: 0 0 8px;
}
.sw-distilleries-header h1 {
    font-family: var(--sw-font-serif); font-size: 2rem; color: #fff; margin: 0 0 12px;
}
.sw-distilleries-header p { color: rgba(255,255,255,0.7); margin: 0; font-size: 0.95rem; }

.sw-distilleries-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 24px;
}
.sw-distillery-card {
    background: #fff;
    border: 1px solid var(--sw-border);
    border-radius: 12px;
    padding: 24px;
    text-decoration: none;
    color: inherit;
    display: flex;
    flex-direction: column;
    gap: 12px;
    transition: box-shadow 0.2s, transform 0.2s;
}
.sw-distillery-card:hover { box-shadow: 0 6px 20px rgba(0,0,0,.1); transform: translateY(-2px); }
.sw-distillery-card__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.sw-distillery-card__name {
    font-family: var(--sw-font-serif); font-size: 1.1rem; font-weight: 700;
    color: var(--sw-primary); margin: 0;
}
.sw-distillery-card__count {
    font-size: 0.78rem; background: var(--sw-bg); border: 1px solid var(--sw-border);
    color: #666; padding: 3px 10px; border-radius: 10px; white-space: nowrap; flex-shrink: 0;
}
.sw-distillery-card__pref { font-size: 0.82rem; color: #888; }
.sw-distillery-card__brands { display: flex; flex-wrap: wrap; gap: 6px; }
.sw-distillery-card__brand-tag {
    font-size: 0.75rem; background: var(--sw-bg); border: 1px solid var(--sw-border);
    color: var(--sw-text); padding: 3px 10px; border-radius: 4px;
}
.sw-distillery-card__more { font-size: 0.75rem; color: var(--sw-accent); }

/* 蔵元詳細（taxonomy-sw_distillery.php） */
.sw-distillery-hero {
    background: var(--sw-primary);
    color: #fff;
    padding: 48px 0;
    margin-bottom: 48px;
}
.sw-distillery-hero__label {
    font-size: 0.75rem; letter-spacing: 0.12em; color: var(--sw-accent); margin: 0 0 8px;
    text-transform: uppercase;
}
.sw-distillery-hero__name {
    font-family: var(--sw-font-serif); font-size: 2rem; color: #fff; margin: 0 0 8px;
}
.sw-distillery-hero__meta { color: rgba(255,255,255,0.6); font-size: 0.9rem; }
.sw-distillery-hero__count { color: var(--sw-accent); font-weight: 700; }


/* ==========================================================
   C案：サイト全体のトーン統一（C-tone）
   白×和モダン×立体CTA × 暖色系シャドウ
   ========================================================== */

/* --- フッターCTA：ピル + 立体 --- */
.sw-cta .sw-btn {
    border-radius: 50px !important;
    padding: 14px 28px !important;
    width: auto !important;
    box-shadow: 0 8px 20px rgba(201,168,76,0.30), inset 0 1px 0 rgba(255,255,255,0.15);
}
.sw-cta .sw-btn:hover { transform: translateY(-2px); box-shadow: 0 12px 24px rgba(201,168,76,0.40); }

/* --- セクションタイトル：明朝＋金マーク --- */
.sw-section__title em,
.sw-top-section__title em,
.sw-typeselect__title em,
.sw-how__title em {
    font-style: normal;
    background: linear-gradient(180deg, transparent 62%, rgba(201,168,76,0.45) 62%);
    padding: 0 4px;
}
.sw-top-section__title,
.sw-typeselect__title,
.sw-how__title {
    font-family: var(--sw-font-serif, "Noto Serif JP", serif);
    letter-spacing: -0.005em;
}
.sw-section__title {
    font-family: var(--sw-font-serif, "Noto Serif JP", serif);
    letter-spacing: -0.005em;
}

/* --- カード共通：暖色系シャドウ + リフトホバー --- */
.sw-brand-card,
.sw-distillery-card,
.sw-typeselect__card,
.sw-column-card,
.sw-voice-card {
    box-shadow: 0 4px 14px rgba(92,69,40,0.08) !important;
    transition: transform 0.15s, box-shadow 0.15s !important;
    border-color: rgba(201,168,76,0.18) !important;
}
.sw-brand-card:hover,
.sw-distillery-card:hover,
.sw-typeselect__card:hover,
.sw-column-card:hover {
    transform: translateY(-3px) !important;
    box-shadow: 0 10px 24px rgba(92,69,40,0.16) !important;
}

/* --- フィルター・検索ボックスの白×柔 --- */
.sw-brand-filters,
.sw-frontsearch {
    background: linear-gradient(180deg, #fff 0%, #faf8f5 100%) !important;
}

/* --- 銘柄詳細 hero2 のCTAをピル化 --- */
.sw-hero2__cta {
    border-radius: 50px !important;
    padding: 12px 18px !important;
    font-weight: 800 !important;
}
.sw-hero2__cta--primary {
    background: linear-gradient(135deg, var(--sw-accent, #c9a84c) 0%, #e6c247 100%) !important;
    box-shadow: 0 6px 16px rgba(201,168,76,0.35), inset 0 1px 0 rgba(255,255,255,0.25);
}
.sw-hero2__cta--secondary {
    background: rgba(255,255,255,0.12) !important;
    border: 1.5px solid rgba(255,255,255,0.30) !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}
.sw-hero2__cta--buy {
    background: linear-gradient(135deg, #d4521c 0%, #e8651f 100%) !important;
    box-shadow: 0 6px 16px rgba(212,82,28,0.40), inset 0 1px 0 rgba(255,255,255,0.20);
}
.sw-hero2__cta:hover { transform: translateY(-1px); }

/* --- 投票送信・コメント送信ボタンの強化（ピル化はしない、形は維持して立体感だけ） --- */
.sw-vote__submit, .sw-comment__submit, button[type="submit"].sw-btn {
    box-shadow: 0 6px 16px rgba(201,168,76,0.25), inset 0 1px 0 rgba(255,255,255,0.15);
    transition: transform 0.15s, box-shadow 0.15s;
}
.sw-vote__submit:hover, .sw-comment__submit:hover, button[type="submit"].sw-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 10px 22px rgba(201,168,76,0.35);
}

/* --- アーカイブ／一覧ページのページタイトル：明朝強調 --- */
.sw-archive__title,
.sw-page__title,
.entry-title {
    font-family: var(--sw-font-serif, "Noto Serif JP", serif);
    letter-spacing: -0.005em;
}

/* --- フロントセクション余白を圧縮（情報密度UP） --- */
.sw-typeselect, .sw-how, .sw-top-section { padding: 36px 0 40px; }
@media (max-width: 768px) {
    .sw-typeselect, .sw-how, .sw-top-section { padding: 28px 0 32px; }
}
