/* =====================================================
   SWELL/Gutenberg ブロック互換 — MUJI 原則版
   - 既存 content は尊重しつつ、装飾を最小限に
   - 色面リズム：白 / きなり / 深紫 の3色のみ
   - フォント：Helvetica Neue + Noto Sans JP、見出しは Shippori Mincho B1
   - 角丸0、影なし、letter-spacing normal
   ===================================================== */

/* --- フルワイド --- */
.swell-block-fullWide {
    display: block;
    width: 100vw;
    position: relative;
    left: 50%;
    margin-left: -50vw;
    padding: var(--sp-xxxl) var(--sp-m);
}
.swell-block-fullWide__inner { max-width: 1120px; margin: 0 auto; }
.swell-block-fullWide__inner.l-article { max-width: 820px; }
.swell-block-fullWide.pc-py-60 { padding-top: 60px; padding-bottom: 60px; }

/* bgColor 統一：白 / きなり / 深紫 */
.swell-block-fullWide[style*="background-color:#faf0f8"] {
    background-color: #ffffff !important;
}
.swell-block-fullWide[style*="background-color:#d6b8e6"] {
    background-color: var(--c-cream) !important;
}
.swell-block-fullWide[style*="background-color:#4d4d4d"] {
    background-color: var(--c-text-deep) !important;
    color: #fff;
}
.swell-block-fullWide[style*="background-color:#4d4d4d"] :is(h2, h3) { color: #fff; }

/* 背景画像セクション → きなりに上書き（占いっぽさは月のシンボルだけ残す） */
.swell-block-fullWide.has-bg-img {
    background-image: none !important;
    background-color: var(--c-cream) !important;
    color: var(--c-text-deep);
    position: relative;
    isolation: isolate;
}
.swell-block-fullWide.has-bg-img::before { content: none; }
.swell-block-fullWide.has-bg-img :is(h2, h3) { color: var(--c-text-deep); }

/* --- セクションタイトル（is-style-section_ttl）— MUJI 流の静謐な見出し --- */
.is-style-section_ttl {
    margin: 0 0 var(--sp-m);
    text-align: center;
    line-height: 1.6;
}
.is-style-section_ttl .swl-fz.u-fz-l {
    display: inline-block;
    font-family: var(--f-jp-serif);
    font-size: clamp(26px, 3.5vw, 36px);
    font-weight: 700;
    letter-spacing: normal;
    color: var(--c-text-deep) !important;
    -webkit-text-fill-color: var(--c-text-deep) !important;
    line-height: 1.6;
}
.is-style-section_ttl .swl-fz.u-fz-xs { display: none !important; }
.is-style-section_ttl::after { content: none; }

/* ダーク背景 */
.swell-block-fullWide[style*="background-color:#4d4d4d"] .is-style-section_ttl .swl-fz.u-fz-l,
.section--dark .is-style-section_ttl .swl-fz.u-fz-l {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
}

/* h3 に section_ttl のケース */
h3.is-style-section_ttl .swl-fz.u-fz-l {
    font-size: 20px;
    line-height: 1.15;
    letter-spacing: 2.4px;
}

/* SWELL のフォントサイズユーティリティ */
.swl-fz.u-fz-s  { font-size: 14px; }

/* マージン制御 */
.u-mb-0 { margin-bottom: 0 !important; }
.u-mb-ctrl { margin-bottom: var(--sp-xxxs); }

/* --- カラム --- */
.wp-block-columns {
    display: grid;
    grid-template-columns: repeat(var(--columns, 2), 1fr);
    gap: var(--sp-m);
    margin: var(--sp-m) 0;
}
.wp-block-column { min-width: 0; }
@media (max-width: 760px) {
    .wp-block-columns { grid-template-columns: 1fr; }
}

/* カラム内の白カード — シャープに、padding しっかり */
.wp-block-column .has-background,
.wp-block-column p.has-white-background-color,
.wp-block-column p.has-background {
    padding: var(--sp-sm) !important;
    border-radius: 0;
    color: var(--c-text) !important;
    line-height: 1.6;
    background-color: #fff !important;
    border: 1px solid var(--c-line-soft);
}

/* カラム小見出し */
.wp-block-column > h2.wp-block-heading {
    font-family: var(--f-jp-serif);
    font-size: clamp(20px, 2.6vw, 24px);
    font-weight: 700;
    line-height: 1.6;
    margin: 0 0 var(--sp-xs);
    color: var(--c-text-deep);
    letter-spacing: normal;
}
.wp-block-column > h2.wp-block-heading .swl-fz.u-fz-l {
    display: block;
    font-family: var(--f-jp-serif);
    font-size: 1em;
    color: var(--c-text-deep) !important;
    -webkit-text-fill-color: var(--c-text-deep) !important;
    font-weight: 700;
}
.wp-block-column > h2.wp-block-heading .swl-fz.u-fz-xs { display: none !important; }

/* --- 画像 --- */
.wp-block-image { margin: var(--sp-m) 0; }
.wp-block-image img {
    display: block; max-width: 100%; height: auto;
    border-radius: 0;
}

/* --- 標準ボタン (Gutenberg) — MUJI 角丸 4px --- */
.wp-block-button { margin: var(--sp-xs) 0; }
.wp-block-button__link {
    display: inline-block;
    padding: 12px 28px;
    background: var(--c-text-deep);
    color: #fff !important;
    border-radius: var(--r-btn);
    font-size: 14px; font-weight: 700;
    line-height: 1;
    text-decoration: none;
    transition: background .2s var(--ease);
    letter-spacing: normal;
}
.wp-block-button__link:hover { background: var(--c-violet-700); color: #fff !important; text-decoration: none; }

/* --- SWELL ボタン --- */
.swell-block-button {
    display: flex; align-items: center; justify-content: center;
    margin: var(--sp-sm) auto;
    text-align: center;
    font-size: 14px !important;
    width: auto;
    max-width: 280px;
}
.swell-block-button__link {
    display: inline-flex; align-items: center; justify-content: center;
    gap: 6px;
    padding: 12px 24px;
    border-radius: var(--r-btn);
    font-family: var(--f-base);
    font-weight: 700;
    font-size: 14px;
    text-decoration: none;
    border: 0;
    min-height: 44px;
    width: 100%;
    background: var(--c-text-deep);
    color: #fff !important;
    transition: background .2s var(--ease);
    white-space: nowrap;
    letter-spacing: normal;
    line-height: 1;
}
.swell-block-button__link:hover { background: var(--c-violet-700); color: #fff !important; text-decoration: none; }
.swell-block-button__link svg { width: 1em; height: 1em; fill: currentColor; }

.swell-block-button.-size-l { max-width: 320px; }
.swell-block-button.-size-l .swell-block-button__link {
    padding: 14px 28px; min-height: 48px; font-size: 14px;
}
.swell-block-button.is-style-btn_solid .swell-block-button__link,
.swell-block-button.is-style-btn_shiny .swell-block-button__link {
    background: var(--c-text-deep) !important; color: #fff !important;
}
.swell-block-button.red_ .swell-block-button__link,
.swell-block-button.is-style-btn_shiny.red_ .swell-block-button__link {
    background: var(--c-violet-700) !important; color: #fff !important;
}
.swell-block-button.is-style-btn_normal .swell-block-button__link {
    background: #fff; color: var(--c-text-deep) !important;
    border: 1px solid var(--c-line);
}
.swell-block-button.is-style-btn_normal .swell-block-button__link:hover {
    background: var(--c-text-deep); color: #fff !important; border-color: var(--c-text-deep);
}

/* ダーク背景のボタンは反転 */
.swell-block-fullWide[style*="background-color:#4d4d4d"] .swell-block-button__link {
    background: #fff !important; color: var(--c-text-deep) !important;
}
.swell-block-fullWide[style*="background-color:#4d4d4d"] .swell-block-button__link:hover {
    background: var(--c-cream) !important; color: var(--c-text-deep) !important;
}

/* --- テーブル --- */
.wp-block-table { margin: var(--sp-m) 0; overflow-x: auto; }
.wp-block-table table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
    border: 1px solid var(--c-line);
}
.wp-block-table th, .wp-block-table td {
    padding: var(--sp-xs) var(--sp-sm);
    border-bottom: 1px solid var(--c-line-soft);
    text-align: left;
    line-height: 1.6;
    font-size: 14px;
}
.wp-block-table.is-style-simple table { background: transparent; border: 0; }
.wp-block-table.is-style-simple td { border-bottom: 1px dashed var(--c-line-soft); }

/* --- リスト --- */
.single-page__body ul, .single-page__body ol { padding-left: var(--sp-sm); }
.single-page__body li { margin: var(--sp-xxxs) 0; line-height: 1.6; }

/* 配置 */
.has-text-align-center { text-align: center; }
.has-text-align-right  { text-align: right; }
.has-text-align-left   { text-align: left; }

.has-border.-border02 {
    padding: var(--sp-xs) var(--sp-sm);
    border: 1px solid var(--c-line);
    border-radius: 0;
    background: var(--c-cream);
}

/* 埋め込み */
.wp-block-embed { margin: var(--sp-xs) 0; }

/* 段落のラインハイト調整 */
.single-page__body p {
    line-height: 1.6;
    letter-spacing: normal;
}

/* --- 投稿本文の余白整え --- */
.single-page__body .swell-block-fullWide:first-child { margin-top: 0; }
.single-page__body .swell-block-fullWide:not(:last-child) { margin-bottom: 0; }
.single-page__body .swell-block-fullWide + .swell-block-fullWide { margin-top: 0; }
.swell-block-fullWide.alignfull { margin-top: 0; margin-bottom: 0; }
.l-article { max-width: 100%; }

/* --- 素のセクション（fullWide 外）--- */
.single-page__body > h2.wp-block-heading.is-style-section_ttl ~ h3.wp-block-heading,
.single-page__body > h2.wp-block-heading.is-style-section_ttl ~ p,
.single-page__body > h2.wp-block-heading.is-style-section_ttl ~ ul,
.single-page__body > h2.wp-block-heading.is-style-section_ttl ~ ol {
    max-width: 820px;
    margin-left: auto;
    margin-right: auto;
}

.single-page__body > h3.wp-block-heading:not(.is-style-section_ttl) {
    max-width: 820px;
    margin: var(--sp-l) auto var(--sp-xs);
    padding: 0 0 var(--sp-xxs);
    border-bottom: 1px solid var(--c-line);
    font-family: var(--f-jp-serif);
    font-size: 20px;
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: normal;
    color: var(--c-text-deep);
}
.single-page__body > h4.wp-block-heading {
    max-width: 820px;
    margin: var(--sp-m) auto var(--sp-xxs);
    font-family: var(--f-base);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.6;
    color: var(--c-text-deep);
}
.single-page__body > p.wp-block-paragraph,
.single-page__body > p:not([class]) {
    max-width: 820px;
    margin: 0 auto var(--sp-xs);
    line-height: 1.6;
}
.single-page__body > ul.wp-block-list,
.single-page__body > ol.wp-block-list,
.single-page__body > ul:not([class]),
.single-page__body > ol:not([class]) {
    max-width: 820px;
    margin: var(--sp-xs) auto var(--sp-sm);
    padding-left: var(--sp-sm);
}
.single-page__body > ul.wp-block-list li,
.single-page__body > ul:not([class]) li,
.single-page__body > ol.wp-block-list li,
.single-page__body > ol:not([class]) li {
    margin: var(--sp-xxxs) 0;
    line-height: 1.6;
}

@media (max-width: 600px) {
    .swell-block-fullWide { padding-left: var(--sp-xs); padding-right: var(--sp-xs); }
}

/* =====================================================
   「はじめての方へ」イントロセクション — MUJI 流のシンプル
   ===================================================== */
.intro-section {
    background: var(--c-cream);
    padding: var(--sp-xxxl) var(--sp-m);
    width: 100vw;
    position: relative;
    left: 50%;
    margin-left: -50vw;
    border-top: 1px solid var(--c-line);
    border-bottom: 1px solid var(--c-line);
}
.intro-section > * { max-width: 1120px; margin-left: auto; margin-right: auto; }
.intro-section__lead {
    max-width: 720px !important;
    margin: 0 auto var(--sp-l) !important;
    font-family: var(--f-base);
    font-size: 16px !important;
    font-weight: 400;
    line-height: 1.6 !important;
    color: var(--c-text);
    text-align: center;
}

/* 3 pillars カード — 角丸0、影なし */
.intro-section__pillars {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--sp-xs);
    margin: 0 auto var(--sp-l) !important;
}
@media (max-width: 760px) {
    .intro-section__pillars { grid-template-columns: 1fr; }
}
.intro-pillar {
    background: #fff;
    border: 1px solid var(--c-line);
    padding: var(--sp-sm);
    transition: border-color .2s var(--ease);
}
.intro-pillar:hover { border-color: var(--c-violet-500); }
.intro-pillar__num {
    font-family: var(--f-jp-serif);
    font-size: 40px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: normal;
    color: var(--c-violet-700);
    margin-bottom: var(--sp-xs);
}
.intro-pillar__sub { display: none !important; }
.intro-pillar__title {
    font-family: var(--f-jp-serif);
    font-size: 18px;
    font-weight: 700;
    line-height: 1.6;
    color: var(--c-text-deep);
    margin-bottom: var(--sp-xs);
    padding-bottom: var(--sp-xs);
    border-bottom: 1px solid var(--c-line-soft);
    letter-spacing: normal;
}
.intro-pillar p {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    color: var(--c-text);
}

/* 哲学カード — シンプルな深紫ボックス */
.intro-section__phil {
    max-width: 820px !important;
    margin: 0 auto var(--sp-m) !important;
    padding: var(--sp-l) var(--sp-m);
    background: var(--c-text-deep);
    color: #fff;
    position: relative;
}
.intro-section__phil-mark { display: none; }
.intro-section__phil-eyebrow { display: none !important; }
.intro-section__phil-title {
    font-family: var(--f-jp-serif) !important;
    font-size: clamp(20px, 2.6vw, 24px) !important;
    font-weight: 700 !important;
    line-height: 1.6 !important;
    letter-spacing: normal !important;
    margin: 0 0 var(--sp-sm) !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    border-bottom: 0 !important;
    padding: 0 !important;
}
.intro-section__phil-text {
    font-size: 14px;
    line-height: 1.6;
    color: rgba(255,255,255,.85);
    margin: 0 0 var(--sp-xs);
}
.intro-section__phil-list {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 0 var(--sp-sm) !important;
    display: grid; gap: var(--sp-xxxs);
}
.intro-section__phil-list li {
    position: relative;
    padding: var(--sp-xxxs) 0 var(--sp-xxxs) var(--sp-sm) !important;
    line-height: 1.6;
    color: rgba(255,255,255,.95);
    font-size: 14px;
}
.intro-section__phil-list li::before {
    content: "—" !important;
    position: absolute !important;
    left: 0 !important; top: var(--sp-xxxs) !important;
    color: var(--c-gold-300) !important;
    font-size: 1em !important;
    background: none !important;
    width: auto !important; height: auto !important;
}
.intro-section__phil-close {
    border-top: 1px solid rgba(255,255,255,.15);
    padding-top: var(--sp-xs);
    margin: var(--sp-xs) 0 0 !important;
    line-height: 1.6;
    color: rgba(255,255,255,.85);
    font-size: 14px;
}
.intro-section__phil-close strong { color: var(--c-gold-300); }

/* 背景カード */
.intro-section__bg {
    max-width: 820px !important;
    margin: 0 auto var(--sp-m) !important;
    padding: var(--sp-sm) var(--sp-m);
    background: #fff;
    border: 1px solid var(--c-line);
    border-left: 2px solid var(--c-violet-700);
}
.intro-section__bg-eyebrow { display: none !important; }
.intro-section__bg-title {
    font-family: var(--f-jp-serif) !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    line-height: 1.6 !important;
    letter-spacing: normal !important;
    margin: 0 0 var(--sp-xs) !important;
    color: var(--c-text-deep) !important;
    -webkit-text-fill-color: var(--c-text-deep) !important;
    border-bottom: 0 !important;
    padding: 0 !important;
}
.intro-section__bg p {
    margin: 0;
    line-height: 1.6;
    color: var(--c-text);
    font-size: 14px;
}

/* CTA */
.intro-section__begin {
    max-width: 720px !important;
    text-align: center;
    margin: 0 auto !important;
}
.intro-section__begin-text {
    font-size: 16px;
    line-height: 1.6;
    margin: 0 0 var(--sp-sm);
    color: var(--c-text);
}
.intro-section__begin-link {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 12px 28px;
    background: var(--c-text-deep);
    color: #fff !important;
    border-radius: var(--r-btn);
    text-decoration: none;
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: normal;
    transition: background .2s var(--ease);
}
.intro-section__begin-link:hover { background: var(--c-violet-700); color: #fff !important; text-decoration: none; }
