/* ===========================================
 * Base — reset + body + utilities
 * 既存テーマ準拠: line-height 1.89, .pc/.sp トグル, min-width 1200px PC固定
 * =========================================== */

* { box-sizing: border-box; margin: 0; padding: 0; }

html {
    scroll-behavior: smooth;
    -webkit-font-smoothing: antialiased;
    min-width: 1200px;   /* 既存準拠: タブレットは viewport=1200 でズームアウト想定 */
}

body {
    background: var(--bg-paper);
    color: var(--ink);
    font-family: var(--f-jp);
    font-size: var(--fs-base);
    line-height: var(--lh-body);
    font-weight: 400;
    overflow-x: hidden;
    word-break: break-word;
}

h1, h2, h3, h4, h5, h6 {
    font-weight: 600;
    font-style: normal;
    -webkit-font-smoothing: unset;
}

table { border-collapse: collapse; width: 100%; }
ul { list-style: none; }
img { max-width: 100%; height: auto; display: block; border: 0; vertical-align: middle; }
a { color: inherit; text-decoration: none; transition: color var(--t-fast) var(--ease-paper); }
button { background: none; border: 0; cursor: pointer; font: inherit; color: inherit; }
blockquote { margin: 0 0 1rem; padding: 1rem; background: rgba(255, 255, 255, 0.1); }
blockquote p { margin: 0; }

/* ===========================================
 * Utilities (既存テーマ準拠)
 * =========================================== */
.container        { width: var(--container);        margin: 0 auto; }
.container-narrow { width: var(--container-narrow); margin: 0 auto; }
.container-wide   { width: var(--container-wide);   margin: 0 auto; }

.en { font-family: var(--f-en); }
.center { text-align: center !important; }
.left   { text-align: left !important; }
.right  { text-align: right !important; }
.red    { color: var(--accent); }

/* PC/SP 表示切替（既存 .pc / .sp 踏襲） */
.pc { display: block; }
.sp { display: none !important; }
.pc-inline { display: inline; }
.sp-inline { display: none !important; }

/* 黒帯サブコピー（+ART シグネチャ。既存 .main-visual-content-subcopy 由来） */
.black-band {
    display: inline-block;
    background: var(--black);
    color: #fff;
    font-family: var(--f-jp);
    font-weight: 700;
    padding: 7px 18px 8px;
    font-size: var(--fs-lg);
    letter-spacing: 0.04em;
    line-height: 1.45;
}

/* ===========================================
 * Responsive (既存 767px / 600px BP 準拠)
 * =========================================== */
@media screen and (max-width: 767px) {
    html { min-width: auto; }
    body { font-size: 13px; }

    .pc { display: none !important; }
    .sp { display: block; }
    .pc-inline { display: none !important; }
    .sp-inline { display: inline; }
}
