/* ============================================================
   SADA Celebrity Gallery (.sada-celeb)
   AIリライト済み著名人記事の専用スタイル。
   記事本文 (post_content) にはクラス付きHTMLのみが入り、
   本ファイルが唯一のスタイル定義 (SSoT)。

   ▼ 書体・配色はこの変数ブロックだけ編集すれば全記事に一括反映
   ============================================================ */
.sada-celeb {
    /* 書体 */
    --celeb-font-sans: tbudgothic-std, sans-serif;
    --celeb-font-serif: var(--celeb-font-sans);
    --celeb-font-accent: futura-pt, sans-serif; /* 欧文ラベル・Q/A 記号 */

    /* 配色 */
    --celeb-color-text: #1a1a1a; /* 本文 */
    --celeb-color-text-sub: #444; /* FAQ回答など補助テキスト */
    --celeb-color-muted: #8a8478; /* キャプション・ラベル */
    --celeb-color-accent: var(--sada-navy); /* ゴールド (罫線・ラベル・Q/A) */
    --celeb-color-accent-light: #d4b56a; /* HEROの眉ラベル */
    --celeb-color-bg-soft: #fafaf7; /* ボックス背景 */
    --celeb-color-line: #d8d4cc; /* 見出し罫 */
    --celeb-color-line-soft: #ece9e1; /* FAQ罫 */
    --celeb-color-dark: #1a1a1a; /* HERO背景 */
    --celeb-color-on-dark: #fafaf7; /* HERO上の文字 */
    --celeb-color-on-dark-sub: #e8e4dc; /* HEROリード文 */

    /* レイアウト */
    --celeb-max-width: 880px;
    --celeb-line-height: 1.9;
}

/* ---- WPテーマ干渉対策リセット ---- */
.sada-celeb,
.sada-celeb * {
    text-align: left;
    box-sizing: border-box;
}
.sada-celeb h1,
.sada-celeb h2,
.sada-celeb h3,
.sada-celeb h4 {
    text-align: left;
    font-weight: inherit;
}
.sada-celeb p {
    text-align: left;
    margin: 0 0 1.2em;
}
.sada-celeb img {
    max-width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
    object-position: top center;
    border-radius: 3px;
}
.sada-celeb figure {
    margin: 0;
}
.sada-celeb figcaption {
    margin-top: 8px;
    font-size: 12px;
    color: var(--celeb-color-muted);
    letter-spacing: 0.05em;
    line-height: 1.6;
}
.sada-celeb dl {
    margin: 0;
}

/* ---- ベース ---- */
.sada-celeb {
    font-family: var(--celeb-font-sans);
    color: var(--celeb-color-text);
    line-height: var(--celeb-line-height);
    max-width: var(--celeb-max-width);
    margin: 0 auto;
    font-feature-settings: 'palt';
}

/* 非表示メタ (Person schema 用) */
.sada-celeb__meta {
    display: none;
}

/* ---- HERO: 人物写真 + 名前オーバーレイ ---- */
.sada-celeb__hero {
    position: relative;
    margin: 0 0 56px;
    background: var(--celeb-color-dark);
    overflow: hidden;
}
.sada-celeb__hero-img {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    object-position: top center;
    opacity: 0.88;
    display: block;
}
.sada-celeb__hero-overlay {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 44px 36px 32px;
    background: linear-gradient(
        180deg,
        transparent 0%,
        rgba(0, 0, 0, 0.62) 55%,
        rgba(0, 0, 0, 0.85) 100%
    );
    color: var(--celeb-color-on-dark);
}
.sada-celeb__hero--noimg {
    padding: 56px 36px 48px;
}
.sada-celeb__hero--noimg .sada-celeb__hero-overlay {
    position: static;
    padding: 0;
    background: none;
}
.sada-celeb__eyebrow {
    display: inline-block;
    font-size: 12px;
    letter-spacing: 0.25em;
    color: var(--celeb-color-accent-light);
    margin-bottom: 12px;
    text-transform: uppercase;
    font-weight: 500;
}
.sada-celeb__title {
    font-family: var(--celeb-font-serif);
    font-size: clamp(21px, 3.2vw, 30px);
    font-weight: 500;
    line-height: 1.55;
    letter-spacing: 0.04em;
    margin: 0 0 10px;
    color: var(--celeb-color-on-dark);
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.4);
}
.sada-celeb__lede {
    font-size: 14.5px;
    color: var(--celeb-color-on-dark-sub);
    line-height: 1.9;
    margin: 0;
    max-width: 640px;
}

/* ---- セクション ---- */
.sada-celeb__section {
    margin: 0 0 56px;
    padding: 0 28px;
}
.sada-celeb__label {
    display: block;
    font-family: var(--celeb-font-accent);
    font-size: 13px;
    color: var(--celeb-color-accent);
    letter-spacing: 0.2em;
    margin-bottom: 6px;
    text-transform: uppercase;
}
.sada-celeb__heading {
    font-family: var(--celeb-font-serif);
    font-size: 22px;
    font-weight: 500;
    margin: 0 0 22px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--celeb-color-line);
    letter-spacing: 0.04em;
}

/* ---- 人物紹介ボックス ---- */
.sada-celeb__profile {
    margin: 0 0 24px;
    padding: 22px 26px;
    background: var(--celeb-color-bg-soft);
    border-left: 3px solid var(--celeb-color-accent);
    font-size: 14.5px;
    line-height: 1.95;
}
.sada-celeb__profile p {
    margin: 0;
}

/* ---- スーツ仕様 (spec) ---- */
.sada-celeb__spec {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px 28px;
    margin: 28px 0 0;
    padding: 26px 28px;
    background: var(--celeb-color-bg-soft);
    border-top: 2px solid var(--celeb-color-accent);
}
.sada-celeb__spec > div {
    padding: 2px 0 2px 14px;
    border-left: 2px solid var(--celeb-color-accent);
}
.sada-celeb__spec dt {
    font-size: 10.5px;
    letter-spacing: 0.16em;
    color: var(--celeb-color-muted);
    margin: 0 0 3px;
    text-transform: uppercase;
}
.sada-celeb__spec dd {
    font-size: 14.5px;
    margin: 0;
    font-weight: 500;
    color: var(--celeb-color-text);
    letter-spacing: 0.02em;
}

/* ---- ギャラリー ---- */
.sada-celeb__gallery {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
    margin: 0;
}
.sada-celeb__gallery--single {
    grid-template-columns: 1fr;
}
.sada-celeb__gallery figure {
    margin: 0;
}
.sada-celeb__gallery img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    object-position: top center;
    background: #f5f3ee;
    border-radius: 3px;
}
.sada-celeb__gallery--single img {
    aspect-ratio: 16 / 9;
}
.sada-celeb__gallery figcaption {
    text-align: center;
}

/* ---- スタイリスト・締めの言葉 ---- */
.sada-celeb__voice {
    margin: 0 28px 56px;
    padding: 38px 30px;
    background: var(--celeb-color-bg-soft);
    border-top: 2px solid var(--celeb-color-accent);
    border-bottom: 2px solid var(--celeb-color-accent);
}
.sada-celeb__voice,
.sada-celeb__voice * {
    text-align: center;
}
.sada-celeb__voice p {
    font-family: var(--celeb-font-serif);
    font-size: 16.5px;
    line-height: 2.05;
    color: #2a2a2a;
    margin: 0 0 14px;
    letter-spacing: 0.05em;
}
.sada-celeb__voice cite {
    display: block;
    font-size: 12px;
    color: var(--celeb-color-muted);
    letter-spacing: 0.2em;
    font-style: normal;
    text-transform: uppercase;
}

/* ---- FAQ (可視 + FAQPage microdata) ---- */
.sada-celeb__faq {
    margin: 0 28px 40px;
    padding-top: 28px;
    border-top: 1px solid var(--celeb-color-line);
}
.sada-celeb__faq summary {
    font-family: var(--celeb-font-serif);
    font-size: 18px;
    cursor: pointer;
    padding: 8px 0;
    list-style: none;
    color: var(--celeb-color-text);
}
.sada-celeb__faq summary::-webkit-details-marker {
    display: none;
}
.sada-celeb__faq summary::before {
    content: '+ ';
    color: var(--celeb-color-accent);
    font-weight: 500;
}
.sada-celeb__faq[open] summary::before {
    content: '− ';
}
.sada-celeb__qa {
    padding: 16px 0;
    border-bottom: 1px solid var(--celeb-color-line-soft);
}
.sada-celeb__qa-q {
    font-weight: 500;
    margin: 0 0 8px;
    color: var(--celeb-color-text);
    font-size: 14.5px;
}
.sada-celeb__qa-q::before {
    content: 'Q. ';
    color: var(--celeb-color-accent);
    font-family: var(--celeb-font-accent);
}
.sada-celeb__qa-a {
    color: var(--celeb-color-text-sub);
    font-size: 14px;
    line-height: 1.85;
    margin: 0;
    padding-left: 20px;
}
.sada-celeb__qa-a::before {
    content: 'A. ';
    color: var(--celeb-color-accent);
    font-family: var(--celeb-font-accent);
    margin-left: -20px;
}

/* ---- モバイル ---- */
@media (max-width: 780px) {
    .sada-celeb__hero-img {
        aspect-ratio: 1 / 1;
    }
    .sada-celeb__hero-overlay {
        padding: 24px 20px 18px;
    }
    .sada-celeb__section {
        padding: 0 20px;
        margin-bottom: 40px;
    }
    .sada-celeb__spec {
        grid-template-columns: 1fr;
        padding: 20px 18px;
    }
    .sada-celeb__gallery {
        grid-template-columns: 1fr;
        gap: 14px;
    }
    .sada-celeb__gallery img {
        aspect-ratio: 1 / 1;
    }
    .sada-celeb__voice {
        margin: 0 20px 40px;
        padding: 28px 20px;
    }
    .sada-celeb__faq {
        margin: 0 20px 32px;
    }
}

/* ============================================================
   著名人お仕立実績集 単体ページ (.aic = ai-info-celebrities)
   テンプレート: assets/inc/info/celebrities/inc/article.inc
   全473ページに一括適用。配色・書体は下の変数で調整。
   ============================================================ */
.aic {
    --aic-font-serif: tbudgothic-std, sans-serif;
    --aic-font-accent: futura-pt, sans-serif;
    --aic-accent: var(--sada-blue-em);
    --aic-accent-light: var(--sada-navy);
    --aic-muted: #333;
    --aic-bg-soft: var(--sada-bg);
    --aic-line: #ccc;
}
/* ---- ヘッダー (人物名・肩書き) ---- */
.aic .aic__eyebrow {
    display: inline-block;
    font-family: var(--aic-font-accent);
    font-size: 12px;
    letter-spacing: 0.22em;
    color: var(--aic-accent);
    text-transform: uppercase;
    margin-bottom: 10px;
}
.aic .aic__name {
    font-family: var(--aic-font-serif);
    letter-spacing: 0.06em;
}
.aic .aic__job {
    color: var(--aic-muted);
    font-size: 14px;
    line-height: 1.6;
    letter-spacing: 0.04em;
}
.aic .aic__categories li a {
    border: 1px solid var(--aic-line);
    border-radius: 999px;
    padding: 3px 14px;
    font-size: 12px;
}

/* ---- セクション共通 ---- */
.aic .aic__section {
    margin: 0 0 48px;
}
.aic .aic__label {
    display: block;
    font-family: var(--aic-font-accent);
    font-size: 12.5px;
    color: var(--aic-accent);
    letter-spacing: 0.2em;
    margin-bottom: 4px;
    text-transform: uppercase;
}
.aic .aic__heading {
    font-family: var(--aic-font-serif);
    font-size: 21px;
    font-weight: 500;
    margin: 0 0 18px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--aic-line);
    letter-spacing: 0.05em;
    border-left: none;
    background: none;
}

/* ---- 解説文 ---- */
.aic .aic__exp {
    font-size: 15.5px;
    line-height: 2.1;
    letter-spacing: 0.03em;
    color: #2a2a2a;
    max-width: 720px;
}

/* ---- スーツ仕様 (データがある項目のみ表示) ---- */
.aic .aic__spec {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px 28px;
    margin: 0;
    padding: 24px 26px;
    background: var(--aic-bg-soft);
}
.aic .aic__spec > div {
    padding: 2px 0 2px 1rem;
    text-align: left;
    border-left: 2px solid var(--aic-accent);
}
.aic .aic__spec dt {
    font-size: 12px;
    color: var(--sada-blue-em);
    margin: 0 0 3px;
}
.aic .aic__spec dd {
    font-size: 14.5px;
    margin: 0;
    font-weight: 500;
    line-height: 1.8;
}

/* ---- SADAブランドノート (LLMO: エンティティ紐付け) ---- */
.aic .aic__brand {
    padding: 1rem 2rem;
    border: solid 1px  var(--aic-line);
}
.aic .aic__brand p {
    font-size: 12px;
    line-height: 2;
    color: #444;
    margin: 0;
}

/* ---- モバイル ---- */
@media (max-width: 780px) {
    .aic .aic__section {
        margin-bottom: 36px;
    }
    .aic .aic__spec {
        grid-template-columns: 1fr;
        padding: 18px 16px;
    }
    .aic .aic__exp {
        font-size: 14.5px;
    }
}

/* ---- 編集表記 (E-E-A-T) ---- */
.aic .aic__credit {
    font-size: 11.5px;
    color: var(--celeb-color-muted);
    letter-spacing: .06em;
    margin: 0 0 10px;
}
