@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ。Life in Japan v3（Yakultパレット）を当てている。
    Version: 3.0.0
    Author: LOOS WEB STUDIO

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/

/*
 * 見た目の正本はこのファイル。
 * デザインの根拠は Drive: デザイン/SWELL WordPress design mockup2/design_handoff_life_in_japan_swell/
 * （README.md・DESIGN.md・カンプ v3）。
 *
 * ★ v2（生成りベージュ＋朱色）から v3（白＋ヤクルトレッド #e60039）へ全面差し替え（2026-09-13）。
 * ★ プラグイン(lij-core)側にデザインCSSを置かない。言語別フォント・行間だけ lij-core が出す。
 * ★ SWELL のクラス名は実 DOM で確認したものを使う（p-spMenu / c-gnav / p-postList / fix_bottom_menu）。
 */

/* ---------- tokens (DESIGN.md) ---------- */
:root {
  --lij-red: #e60039;
  --lij-red-dark: #cc0033;
  --lij-cream: #fbf6ec;
  --lij-pink: #fff2f5;
  --lij-text: #323232;
  --lij-text-2: #6e6e6e;
  --lij-neutral: #f2f2f2;
  --lij-line: #e0e0e0;
  --lij-white: #ffffff;
  --lij-blue: #3f7ac3;
  --lij-font: -apple-system, "system-ui", Roboto, "Segoe UI", "Helvetica Neue", YuGothic, "Yu Gothic Medium", "Yu Gothic", Meiryo, sans-serif;
  --lij-en: "Outfit", var(--lij-font);
  --lij-r-card: 8px;
  --lij-r-img: 14px;
  --lij-r-pill: 50px;
}

/* ---------- base ---------- */
body { background: var(--lij-white); color: var(--lij-text); font-family: var(--lij-font); font-weight: 500; line-height: 1.6; letter-spacing: normal; -webkit-font-smoothing: antialiased; }
a { color: var(--lij-text); }
a:hover { color: var(--lij-red); }
.post_content a { color: var(--lij-blue); }
h1, h2, h3, h4 { font-weight: 700; letter-spacing: normal; }
.lij-eyebrow { font-family: var(--lij-en); font-weight: 800; font-size: 13px; letter-spacing: .2em; margin: 0; }
.lij-sec-title { display: flex; align-items: flex-end; gap: 16px; }
.lij-sec-title::after { content: ""; flex: 1; height: 1px; background: var(--lij-text); }
.lij-num { font-family: var(--lij-en); font-weight: 800; color: var(--lij-red); line-height: 1; }

/* トップは1カラム・幅いっぱいに使う。SWELL既定の上マージンは殺す */
.home .l-content, .home #content { margin-top: 0; padding-top: 0; max-width: 1280px; }
.home .l-mainContent__inner > .post_content { margin: 0; padding: 0; max-width: none; }
.home .p-breadcrumb { display: none; }

/* ---------- header (floating pill) ---------- */
.l-header { background: transparent; border: 0; box-shadow: none; padding-top: 24px; }
.l-header__inner {
  max-width: 1280px; margin: 0 auto; background: var(--lij-cream); border-radius: 999px;
  padding: 8px 10px 8px 28px; display: flex; align-items: center; justify-content: space-between; gap: 16px;
}
.l-header__logo { padding: 0 !important; }
.l-header__inner .c-headLogo__link { padding: 0; }
/* 通常・追従の両ヘッダーで同じ寸法（ナビ 40px、CTA 36px） */
.l-header__inner .c-gnav > .menu-item > a, .l-fixHeader .c-gnav > .menu-item > a { padding-top: 0; padding-bottom: 0; height: 40px !important; line-height: 40px; }
.l-header__inner .c-gnav > .menu-item, .l-fixHeader .c-gnav > .menu-item { display: flex; align-items: center; }
/* スクロール後の追従ヘッダー（別要素 .l-fixHeader）。通常ヘッダーと同じ寸法にそろえる */
.l-fixHeader { background: transparent; box-shadow: none !important; padding: 8px 0; }
.l-fixHeader::before { background: var(--lij-white); }
.l-fixHeader .l-fixHeader__inner {
  max-width: 1280px; margin: 0 auto; background: var(--lij-cream); border-radius: 999px; box-shadow: 0 2px 8px rgba(0,0,0,.06);
  padding: 8px 10px 8px 28px; display: flex; align-items: center !important; justify-content: space-between; gap: 16px;
}
.l-fixHeader__logo { padding: 0 !important; margin: 0; }
.l-fixHeader .c-headLogo__link { padding: 0; }
.c-headLogo { margin: 0; }
.c-headLogo__link { display: inline-flex; align-items: center; gap: 9px; text-decoration: none; }
.lij-wordmark { font-family: var(--lij-en); font-weight: 800; font-size: 17px; color: var(--lij-red); letter-spacing: .02em; white-space: nowrap; }
.c-gnav > .menu-item > a { font-size: 14px; font-weight: 700; color: var(--lij-text); padding: 0 12px; }
.c-gnav > .menu-item > a .ttl { font-weight: 700; }
.c-gnav .current-menu-item > a, .c-gnav .current-menu-parent > a { color: var(--lij-red); }
.c-gnav .menu-cta > a {
  background: var(--lij-text) !important; color: var(--lij-white) !important; border-radius: 999px;
  padding: 0 22px !important; font-weight: 700; font-size: 13px; height: 36px !important; line-height: 36px !important; white-space: nowrap; justify-content: center;
}
.c-gnav .menu-cta > a:hover { background: var(--lij-red) !important; }
.c-gnav .menu-cta > a::after, .c-gnav .menu-cta > a::before { display: none; }
/* SP icon buttons */
.l-header .c-iconBtn { width: 40px; height: 40px; border-radius: 50%; background: var(--lij-white); color: var(--lij-text); }
.l-header .c-iconBtn.-menuBtn { background: var(--lij-text); color: var(--lij-white); }

/* ---------- hero ---------- */
.lij-hero { text-align: center; padding: 56px 24px 0; }
.lij-hero__rot { display: flex; flex-direction: column; align-items: center; width: 100%; transform: rotate(-6deg); }
.lij-hero__row { display: flex; align-items: flex-end; justify-content: center; position: relative; }
.lij-hero .lij-hero__l1 { font-weight: 900; -webkit-text-stroke: 1.5px var(--lij-red); font-size: clamp(44px, 6.6vw, 108px) !important; line-height: 1.05; color: var(--lij-red); white-space: nowrap; margin: 0; }
.lij-hero .lij-hero__l2 { font-weight: 900; font-size: clamp(44px, 6.6vw, 108px); line-height: 1.05; color: var(--lij-red); white-space: nowrap; margin: 10px 0 0; -webkit-text-stroke: 1.5px var(--lij-red); }
.lij-hero__lockup { position: absolute; left: 100%; bottom: 18px; margin-left: 28px; display: flex; flex-direction: column; align-items: flex-start; gap: 0; line-height: 1.1; color: var(--lij-red); white-space: nowrap; }
.lij-hero__l1 b { font-size: 1.18em; font-weight: inherit; }   /* 「日本」「くらし」を少し大きく */
.lij-hero__lockup b { font-family: var(--lij-en); font-weight: 800; font-size: clamp(20px, 2.4vw, 32px); line-height: 1.1; letter-spacing: .02em; }
.lij-hero__lockup small { font-weight: 700; font-size: clamp(10px, 1vw, 13px); line-height: 1.3; }
.lij-hero__sub { margin: 44px 0 0; font-weight: 700; font-size: clamp(18px, 2.2vw, 30px); }
.lij-hero__down { margin: 28px auto 0; width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; font-size: 26px; font-weight: 300; color: var(--lij-red); text-decoration: none; }
.lij-hero__down:hover { color: var(--lij-red-dark); }

/* ---------- carousel (SWELL 記事スライダー) ---------- */
body.home { overflow-x: hidden; }
/* SWELL 同梱 swiper.css の .swiper{margin-left:auto} が後から読まれて負けるので詳細度を上げる */
.post_content .lij-carousel.swiper { margin: 40px 0 0 calc(50% - 50vw); width: 100vw; max-width: 100vw; position: relative; overflow: hidden; }
.lij-carousel .swiper-wrapper { align-items: stretch; }
.lij-carousel .swiper-slide { width: 62vw; height: clamp(300px, 36vw, 620px); border-radius: 24px; overflow: hidden; position: relative; display: block; }
.lij-carousel .swiper-slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lij-carousel__title { position: absolute; left: 24px; right: 24px; bottom: 20px; color: var(--lij-white); font-weight: 700; font-size: clamp(15px, 1.6vw, 22px); line-height: 1.5; text-shadow: 0 1px 12px rgba(0,0,0,.55); }
.lij-carousel__ctrl { position: absolute; right: 16%; bottom: 16px; display: flex; gap: 10px; z-index: 3; }
.lij-carousel__ctrl button { width: 36px; height: 36px; border-radius: 50%; background: var(--lij-white); border: 2px solid var(--lij-red); color: var(--lij-red); font-size: 18px; line-height: 1; cursor: pointer; padding: 0; }
.p-postSlider { margin-top: -36px; position: relative; }
.p-postSlider .swiper-slide { border-radius: 24px; overflow: hidden; }
.p-postSlider .p-postSlider__title, .p-postSlider .p-postSlider__meta, .p-postSlider .c-categoryList { display: none; }
.p-postSlider .p-postSlider__thumb img { object-fit: cover; }

/* ---------- about ---------- */
.lij-about { max-width: 1000px; margin: 0 auto; padding: 150px 24px 0; display: flex; flex-direction: column; gap: 20px; }
.lij-about h2 { color: var(--lij-red); font-size: clamp(28px, 3.4vw, 44px); line-height: 1.4; margin: 0; text-align: left; border: 0; padding: 0; background: none; }
.lij-lead { margin-top: 16px; padding-left: 28px; border-left: 1px solid var(--lij-text); display: flex; flex-direction: column; gap: 22px; }
.lij-lead p { margin: 0; font-weight: 700; font-size: 15px; line-height: 1.6; }

/* ---------- section headings ---------- */
.lij-center { text-align: center; }
.lij-section h2, .lij-center h2 { color: var(--lij-red); font-size: clamp(28px, 3.6vw, 44px); margin: 14px 0 0; border: 0; padding: 0; background: none; }
.lij-center .lij-eyebrow { font-size: 15px; letter-spacing: .14em; }
.lij-center > p { font-weight: 700; font-size: 16px; line-height: 1.6; margin: 26px auto 0; max-width: 38em; }
.lij-section { max-width: 1000px; margin: 0 auto; padding: 130px 24px 0; }

/* ---------- category cards ---------- */
.lij-cat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); gap: 36px; margin-top: 56px; text-align: left; }
.lij-cat-card { display: flex; flex-direction: column; background: var(--lij-cream); border-radius: var(--lij-r-card); padding: 26px 24px 30px; color: var(--lij-text); text-decoration: none; }
.lij-cat-card:hover { color: var(--lij-text); }
.lij-cat-card__head { display: flex; align-items: center; gap: 20px; }
.lij-cat-card__head .lij-num { font-size: 48px; }
.lij-cat-card__head .lij-vr { width: 1px; align-self: stretch; background: var(--lij-text); }
.lij-cat-card__name { flex: 1; min-width: 0; font-weight: 700; font-size: 22px; line-height: 1.35; white-space: nowrap; }
.lij-cat-card img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--lij-r-img); margin-top: 26px; }
.lij-cat-card__desc { font-weight: 500; font-size: 13px; line-height: 1.9; margin-top: 22px; }
.lij-cat-card__en { font-family: var(--lij-en); font-weight: 600; font-size: 12px; letter-spacing: .14em; color: var(--lij-text-2); margin-top: 14px; }

/* ---------- CTA ---------- */
.lij-cta, .swell-block-button.lij-cta .swell-block-button__link {
  display: flex; align-items: center; justify-content: center; gap: 24px; max-width: 560px; margin: 0 auto;
  padding: 28px 36px; border-radius: var(--lij-r-pill); background: var(--lij-red) !important; color: var(--lij-white) !important;
  font-weight: 700; font-size: clamp(18px, 2vw, 24px); white-space: nowrap; box-shadow: none; border: 0; text-decoration: none;
}
.lij-cta:hover, .swell-block-button.lij-cta .swell-block-button__link:hover { background: var(--lij-red-dark) !important; }
.lij-cta::after, .swell-block-button.lij-cta .swell-block-button__link::after {
  content: "→"; width: 34px; height: 34px; border-radius: 50%; background: var(--lij-white); color: var(--lij-red);
  display: inline-flex; align-items: center; justify-content: center; font-size: 16px; flex: 0 0 34px;
}
.lij-cta-wrap { padding: 110px 24px 0; }
.lij-cta.-invert { background: var(--lij-white) !important; color: var(--lij-red) !important; }
.lij-cta.-invert::after { background: var(--lij-red); color: var(--lij-white); }

/* ---------- articles list (投稿リストブロック・SWELL カード型 3列) ----------
 * ★ ul/li の display や幅を上書きしない。以前 grid にしたらサムネが消えて1文字ずつ折り返した。 */
.lij-articles .p-postList__item { background: none; border: 0; box-shadow: none; }
.lij-articles .p-postList__thumb { border-radius: 16px; overflow: hidden; }
.lij-articles .p-postList__times { font-family: var(--lij-en); font-weight: 700; font-size: 13px; color: var(--lij-text-2); }
.lij-articles .p-postList__thumb::after {
  content: "→"; position: absolute; right: 14px; bottom: 14px; width: 44px; height: 44px; border-radius: 50%;
  background: var(--lij-red); color: var(--lij-white); display: flex; align-items: center; justify-content: center; font-size: 18px; z-index: 2;
}
.lij-articles .p-postList__title { font-weight: 700; font-size: 18px; line-height: 1.5; margin-top: 10px; }
.lij-articles .p-postList__excerpt { font-weight: 500; font-size: 13.5px; line-height: 1.95; margin-top: 10px; }

/* ---------- Q&A / FAQ (<details>) ---------- */
.lij-qa-title { font-family: var(--lij-en); font-weight: 800; font-size: clamp(44px, 5vw, 64px); margin: 0; color: var(--lij-text); border: 0; padding: 0; background: none; }

.lij-faq { margin-top: 24px; }
.lij-faq__item { border-bottom: 1px solid var(--lij-text); padding: 0 20px; }
.lij-faq__item summary { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 34px 0; font-weight: 700; font-size: 17px; cursor: pointer; list-style: none; }
.lij-faq__item summary::-webkit-details-marker { display: none; }
.lij-faq__item summary::after { content: "+"; font-size: 24px; font-weight: 500; color: var(--lij-red); flex: 0 0 auto; }
.lij-faq__item[open] summary::after { content: "−"; }
.lij-faq__a { padding: 0 0 30px; font-weight: 500; font-size: 14.5px; line-height: 1.8; }
.lij-faq__a p { margin: 0; }
/* ---------- footer ---------- */
.l-footer { background: var(--lij-white); border-top: 1px solid var(--lij-line); padding: 24px 40px; }
.l-footer__inner { max-width: 1280px; margin: 0 auto; }
.l-footer .l-footer__foot { padding: 0; }
.l-footer .p-footerMenu, .l-footer .copyright { font-size: 11px; font-weight: 700; color: var(--lij-text-2); }
.l-footer a { color: var(--lij-text-2); }
.l-footer .p-footerMenu a { padding: 0 9px; }

/* ---------- archive (カテゴリ一覧) ---------- */
.c-breadcrumb, .p-breadcrumb { font-weight: 700; font-size: 12px; color: var(--lij-text-2); }
.lij-archive-head { max-width: 1000px; margin: 0 auto; padding: 60px 24px 0; display: flex; flex-direction: column; gap: 20px; }
.lij-archive-head__row { display: flex; align-items: flex-start; gap: 22px; margin-top: 18px; }
.lij-archive-head__row .lij-num { font-size: 72px; }
.lij-archive-head__row .lij-vr { width: 1px; align-self: stretch; background: var(--lij-text); }
.lij-archive-head h1 { color: var(--lij-red); font-size: clamp(30px, 3.6vw, 48px); line-height: 1.3; margin: 0; white-space: nowrap; }
.lij-archive-head__desc { margin: 26px 0 0; padding-left: 28px; border-left: 1px solid var(--lij-text); font-weight: 700; font-size: 15px; line-height: 1.6; max-width: 40em; }
.lij-child-cats { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 32px; }
.lij-child-cats a { padding: 10px 20px; border-radius: 999px; background: var(--lij-white); border: 2px solid var(--lij-red); color: var(--lij-red); font-weight: 700; font-size: 13px; text-decoration: none; }
.lij-child-cats a.is-current { background: var(--lij-text); border-color: var(--lij-text); color: var(--lij-white); }
.archive .p-termHead, .archive .c-pageTitle { display: none; }
/* ★ ul/li の display・幅・サムネ比率は上書きしない（トップと同じ失敗: grid にすると幅が潰れサムネが縮む） */
.archive .p-postList.-type-card .p-postList__item { background: none; border: 0; box-shadow: none; }
.archive .p-postList.-type-card .p-postList__thumb { border-radius: 16px; overflow: hidden; }
.archive .p-postList.-type-card .p-postList__times { font-family: var(--lij-en); font-weight: 700; font-size: 13px; color: var(--lij-text-2); }
.archive .p-postList.-type-card .p-postList__title { font-weight: 700; font-size: 18px; line-height: 1.55; margin-top: 8px; }
.archive .p-postList.-type-card .p-postList__excerpt { font-weight: 500; font-size: 13px; line-height: 1.9; margin-top: 8px; }
.c-pagination { margin-top: 70px; }
.c-pagination__link, .c-pagination__item { width: 44px; height: 44px; border-radius: 50%; background: var(--lij-white); border: 2px solid var(--lij-red); color: var(--lij-red); font-family: var(--lij-en); font-weight: 800; font-size: 14px; }
.c-pagination__link.is-current { background: var(--lij-text); border-color: var(--lij-text); color: var(--lij-white); }

/* ---------- single ---------- */
.single .l-article, .page .l-article { max-width: 820px; margin: 0 auto; padding-top: 40px; }
.lij-postmeta { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin-top: 8px; }
.p-articleMetas .c-categoryList__link { background: var(--lij-red); color: var(--lij-white); font-weight: 700; font-size: 12px; padding: 7px 14px; border-radius: 8px; }
.p-articleMetas .c-postTimes__posted { font-family: var(--lij-en); font-weight: 800; font-size: 13px; }
.lij-reading-time { font-weight: 700; font-size: 12px; color: var(--lij-text-2); }
.lij-easy-badge { padding: 6px 12px; border-radius: 999px; border: 2px solid var(--lij-red); color: var(--lij-red); font-weight: 700; font-size: 11px; }
.c-postTitle__ttl { color: var(--lij-red); font-size: clamp(28px, 3.6vw, 44px); line-height: 1.45; margin-top: 22px; }
.p-articleThumb, .p-articleThumb img { border-radius: 22px; margin-top: 40px; }
.post_content { font-size: 16px; font-weight: 500; line-height: 2.2; counter-reset: lij-h2; }
/* 目次 → INDEX */
.p-toc { background: none; border: 0; border-left: 1px solid var(--lij-text); border-radius: 0; padding: 0 0 0 28px; margin-top: 56px; }
.p-toc__ttl { font-family: var(--lij-en); font-weight: 800; font-size: 13px; letter-spacing: .2em; color: var(--lij-text); }
.p-toc__ttl::before { display: none; }
.p-toc__list { font-weight: 700; font-size: 15px; line-height: 2.3; margin-top: 14px; }
.p-toc__list a { color: var(--lij-text); }
/* H2 → 01｜見出し（番号は CSS counter） */
.post_content > h2 {
  counter-increment: lij-h2; display: grid; grid-template-columns: auto 1px minmax(0, 1fr); gap: 22px; align-items: start;
  margin: 80px 0 28px; padding: 0; border: 0; background: none; color: var(--lij-text); font-size: clamp(22px, 2.6vw, 30px); line-height: 1.4;
}
.post_content > h2::before { content: counter(lij-h2, decimal-leading-zero); font-family: var(--lij-en); font-weight: 800; font-size: 48px; line-height: 1; color: var(--lij-red); grid-column: 1; grid-row: 1; position: static !important; }
.post_content > h2::after { content: ""; width: 1px; height: 100%; background: var(--lij-text); grid-column: 2; grid-row: 1; position: static !important; }
.post_content > h2 > * { grid-column: 3; }
.post_content > h3 { font-size: 20px; border-left: 4px solid var(--lij-red); padding-left: 12px; color: #000; background: none; }
.post_content mark { background: linear-gradient(transparent 55%, var(--lij-pink) 55%); color: inherit; font-weight: 700; }
/* 注意ボックス：左バーは使わない（ピルのラベル＋淡いピンク面） */
.cap_box.is-style-small_ttl, .lij-callout { background: var(--lij-pink); border: 0; border-radius: var(--lij-r-card); margin-top: 36px; position: relative; padding: 0; }
.cap_box.is-style-small_ttl .cap_box_ttl, .lij-callout .lij-callout__title { position: absolute; top: -14px; left: 26px; background: var(--lij-red); color: var(--lij-white); font-weight: 700; font-size: 13px; letter-spacing: .14em; padding: 6px 18px; border-radius: 999px; margin: 0; }
.cap_box.is-style-small_ttl .cap_box_content, .lij-callout > p:not(.lij-callout__title) { padding: 30px 30px 28px; font-weight: 700; font-size: 15px; line-height: 2.1; margin: 0; }
/* ステップ → 4 列カード */
.swell-block-step { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 18px; margin-top: 36px; }
.swell-block-step__item { background: var(--lij-cream); border-radius: var(--lij-r-card); padding: 24px 20px 26px; display: flex; flex-direction: column; gap: 12px; margin: 0; }
.swell-block-step__item::before, .swell-block-step__item::after { display: none; }
.swell-block-step__number { position: static; width: auto; height: auto; background: none; color: var(--lij-red); font-family: var(--lij-en); font-weight: 800; font-size: 12px; letter-spacing: .14em; }
.swell-block-step__title { font-weight: 700; font-size: 16px; line-height: 1.5; margin: 0; }
.swell-block-step__body { font-weight: 500; font-size: 13px; line-height: 1.9; }
/* AI翻訳の断り書き（lij-core が出す） */
.lij-ai-notice { display: block; margin: 56px 0 0; padding: 16px 0; border-top: 1px solid var(--lij-line); border-bottom: 1px solid var(--lij-line); color: var(--lij-text-2); font-size: 13px; line-height: 1.8; }
/* 関連記事 */
.p-relatedPosts { max-width: 1000px; margin: 110px auto 0; }
.p-relatedPosts .c-secTitle, .l-articleBottom__title { display: flex; flex-direction: column; gap: 28px; font-size: clamp(24px, 3vw, 34px); color: var(--lij-red); border: 0; background: none; padding: 0; }
.l-articleBottom__title { position: static; }
.l-articleBottom__section.-related .l-articleBottom__title::before { position: static !important; width: auto; height: auto; top: auto; left: auto; transform: none; content: "RELATED"; font-family: var(--lij-en); font-weight: 800; font-size: 13px; letter-spacing: .2em; color: var(--lij-text); border-bottom: 1px solid var(--lij-text); padding-bottom: 8px; }
.p-relatedPosts .p-postList { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 28px; }
.p-relatedPosts .p-postList__thumb { aspect-ratio: 4 / 3; border-radius: 18px; overflow: hidden; }
.p-relatedPosts .p-postList__title { font-weight: 700; font-size: 16px; line-height: 1.6; margin-top: 14px; }
.p-relatedPosts .p-postList__times, .p-relatedPosts .p-postList__cat { display: none; }

/* ---------- SP fixed footer (red pill) ---------- */
#fix_bottom_menu {
  left: 12px; right: 12px; bottom: 12px !important; width: auto !important; background: var(--lij-red); border-radius: 999px; border: 0; box-shadow: none !important;
  padding: 8px 6px; color: var(--lij-white) !important;
}
/* SWELL は ::before に白 (opacity .9) を重ねる。消さないと赤が薄いピンクになる */
#fix_bottom_menu::before { display: none !important; }
#fix_bottom_menu .menu-item, #fix_bottom_menu .menu-item a { color: var(--lij-white) !important; font-size: 11px; font-weight: 700; display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 6px 0; }
#fix_bottom_menu .menu-item a i, #fix_bottom_menu .menu-item > i { font-size: 20px; color: var(--lij-white); }
#fix_bottom_menu .menu-item[data-onclick] { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 6px 0; font-size: 11px; font-weight: 700; }
#fix_bottom_menu .current-menu-item a { text-decoration: underline; text-underline-offset: 4px; }
#fix_bottom_menu .menu_list { display: flex; align-items: center; }
#fix_bottom_menu .ft-cta { flex: 0 0 auto; }
#fix_bottom_menu .ft-cta a { background: var(--lij-white); color: var(--lij-red) !important; border-radius: 999px; margin: 0 4px; padding: 0 16px; height: 40px; flex-direction: row; justify-content: center; align-items: center; font-weight: 700; font-size: 12px; white-space: nowrap; line-height: 1; }
#fix_bottom_menu .ft-cta a i { display: none; }
body.-fix-bottom-menu .l-footer, body.has-fix_bottom_menu .l-footer { padding-bottom: 110px; }
#fix_bottom_menu + .p-fixBtnWrap { bottom: 100px !important; }

/* ---------- SP slide menu (red) ---------- */
.p-spMenu { color: var(--lij-white) !important; }
.p-spMenu__inner { background: var(--lij-red); color: var(--lij-white); padding: 0; box-shadow: none; }
.p-spMenu__inner::before { display: none !important; }
.p-spMenu__body { padding: 72px 24px 120px; }
.p-spMenu .c-widget__title.-spmenu { display: none; }            /* SWELL の「MENU」見出しは出さない */
.p-spMenu .c-spnav .c-smallNavTitle { display: none; }           /* 説明欄(01〜05)を SWELL も出すので二重になる */
.p-spMenu__nav { margin-top: 0; }
.p-spMenu .c-spnav { margin: 0; }
.p-spMenu .lij-spmenu-head { padding: 0; border: 0; }
.p-spMenu__closeBtn { top: 14px; right: 14px !important; }
.p-spMenu__closeBtn .c-iconBtn { width: 40px; height: 40px; border-radius: 50%; background: var(--lij-white); color: var(--lij-red); }
.p-spMenu .c-widget__title.-spmenu { background: var(--lij-cream); border-radius: 999px; padding: 8px 18px; font-family: var(--lij-en); font-weight: 800; font-size: 13px; color: var(--lij-red); border: 0; }
.p-spMenu .lij-langs { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 0; }
.p-spMenu .lij-langs > * { flex: 1 1 40%; text-align: center; padding: 10px 0; border-radius: 999px; border: 1px solid rgba(255,255,255,.5); font-weight: 700; font-size: 12px; color: var(--lij-white); text-decoration: none; }
.p-spMenu .lij-langs .is-active { background: var(--lij-white); color: var(--lij-red); border-color: transparent; }
.p-spMenu .lij-eyebrow { display: block; font-family: var(--lij-en); font-weight: 800; font-size: 11px; letter-spacing: .2em; margin: 32px 0 4px; color: var(--lij-pink); }
.p-spMenu .c-spnav > .menu-item > a { display: flex; align-items: center; gap: 14px; padding: 15px 0; border-bottom: 1px solid rgba(255,255,255,.25); color: var(--lij-white); font-weight: 700; font-size: 17px; background: none; }
.p-spMenu .c-spnav > .menu-item > a::before { display: none; }
.p-spMenu .c-spnav > .menu-item > a:hover { background: none; color: var(--lij-white); }
.p-spMenu .c-spnav > .menu-item:not(.lij-spmenu-head):not(:has(.lij-num)) > a { padding-left: 48px; font-size: 14px; }
.p-spMenu .c-spnav .lij-num { font-size: 20px; width: 34px; color: var(--lij-white); }
.p-spMenu .c-spnav > .menu-item > a::after { content: "›"; margin-left: auto; opacity: .6; }
.p-spMenu .c-spnav > .menu-item.menu-cta > a { border: 0; padding-top: 26px; }
.p-spMenu .c-spnav > .menu-item.menu-cta > a::after { display: none; }
.p-spMenu .lij-cta { padding: 20px; font-size: 16px; gap: 16px; }
.p-spMenu .lij-cta::after { width: 28px; height: 28px; font-size: 13px; }
.p-spMenu__bottom { margin-top: 28px; }

/* ---------- responsive ---------- */
@media (max-width: 959px) {
  .l-header { padding-top: 14px; }
  .l-header__inner { padding: 6px 10px 6px 18px; margin: 0 14px; width: calc(100% - 28px); max-width: calc(100% - 28px); }
  .l-header__menuBtn { margin-right: 0; }
  .lij-wordmark { font-size: 13px; }
  .lij-hero { padding: 36px 8px 0; }   /* 左右の余白を使い切る（折返し対策） */
  .lij-hero__row { flex-direction: column-reverse; align-items: center; }
  .lij-hero__lockup { position: static; margin: 0 0 18px; gap: 0; align-items: center; text-align: center; line-height: 1.2; }
  .lij-hero__lockup b { font-size: 15px; line-height: 1.2; }
  .lij-hero__lockup small { font-size: 10px; line-height: 1.2; }
  .lij-hero .lij-hero__l1 { font-size: min(30px, 7.4vw) !important; line-height: 1.2; -webkit-text-stroke: .8px var(--lij-red); white-space: nowrap; }
  .lij-hero .lij-hero__l2 { font-size: min(30px, 7.4vw); line-height: 1.2; margin-top: 0; -webkit-text-stroke: .8px var(--lij-red); white-space: nowrap; }   /* 折り返させない。はみ出しても flex で中央に置かれる */
  .lij-hero__sub { margin-top: 28px; font-size: 15px; }
  .lij-hero__down { font-size: 22px; margin-top: 18px; }
  .post_content .lij-carousel.swiper { margin-top: 28px; }
  .lij-carousel .swiper-slide { width: 84vw; height: 240px; border-radius: 16px; }
  .lij-carousel__title { left: 16px; right: 16px; bottom: 14px; }
  .lij-carousel__ctrl { display: none; }
  .p-postSlider { margin-top: -26px; }
  .p-postSlider .swiper-slide { border-radius: 16px; }
  .lij-about, .lij-section { padding: 60px 18px 0; }
  .lij-about h2, .lij-center h2, .lij-section h2 { font-size: 26px; }
  .lij-cat-grid { display: flex; flex-direction: column; gap: 14px; margin-top: 28px; }
  .lij-cat-card { flex-direction: row; align-items: center; gap: 16px; padding: 16px 18px; }
  .lij-cat-card__head { flex: 1; }
  .lij-cat-card__head .lij-num { font-size: 34px; }
  .lij-cat-card__name { font-size: 16px; }
  .lij-cat-card img { width: 56px; height: 56px; margin: 0; border-radius: 10px; flex: 0 0 56px; }
  .lij-cat-card__desc, .lij-cat-card__en { display: none; }
  .lij-cta-wrap { padding: 44px 18px 0; }
  .lij-cta, .swell-block-button.lij-cta .swell-block-button__link { padding: 20px 24px; font-size: 16px; gap: 16px; }
  .lij-cta::after, .swell-block-button.lij-cta .swell-block-button__link::after { width: 28px; height: 28px; font-size: 13px; flex-basis: 28px; }
  .lij-articles .p-postList__thumb::after { width: 40px; height: 40px; font-size: 16px; }
  .lij-articles .p-postList__title { font-size: 16px; }
  .lij-qa-title { font-size: 40px; }
  .lij-faq__item summary { padding: 22px 0; font-size: 15px; }
  .single .l-article, .page .l-article { padding: 20px 18px 0; }
  .c-postTitle__ttl { font-size: 24px; }
  .post_content { font-size: 15px; line-height: 2; }
  .post_content > h2 { font-size: 19px; gap: 14px; margin-top: 48px; }
  .post_content > h2::before { font-size: 34px; }
  .swell-block-step { grid-template-columns: 1fr 1fr; }
  .lij-archive-head h1 { font-size: 26px; white-space: normal; }
  .lij-archive-head__row .lij-num { font-size: 48px; }
}
