/* ============================================
   デザインリファクタ - v3 統合版（!important 最小化）

   フェーズ 1（見出し統一）+ フェーズ 2（配色統一）を統合。
   `!important` は **Emanon のインライン style=""` または CSS 変数を上書きする場合のみ** 使用、
   それ以外は higher-specificity で対応。各 !important にコメント付与。

   参照:
     - designs/style-guide.md
     - designs/heading-proposals-2026-04-23/option-e-deep-dive.html

   対象: `.l-content__main` 配下のみ（サイドバー・ヘッダー除外）
   除外: voices ショートコード、otayori カスタム CSS（独立世界観）

   必要: Font Awesome 6 Free を先に enqueue（functions.php）

   作成: 2026-04-23 / 更新: v3 統合 2026-04-23
   ============================================ */


/* =============================================================
   Part A: 見出しスタイル（案 E-γ + δ-1）
   ============================================================= */

/* ---- Emanon wrapper の中央寄せマージン解除 ----
   Emanon の `.epb-advance-headling__text-wrapper` は
   `margin: 0 auto; width: fit-content;` で中央寄せされる。
   これを解除して親幅いっぱいに広げる。
   higher-specificity（l-content__main プレフィックス）で !important 不要。 */

.l-content__main .epb-advance-headling__text-wrapper.is-style-epb-headling-default,
.l-content__main .epb-advance-headling__text-wrapper.is-style-epb-headling-border-left-5,
.l-content__main .epb-advanced-headling__inner:not(.is-style-epb-headling-lines-on) {
    margin-top: 2em;                              /* 縦余白は wrapper 側で管理（H2 が display:inline のため） */
    margin-right: 0;
    margin-bottom: 1em;
    margin-left: 0;
    width: auto;
    text-align: left;
}

/* block 要素側の alignment クラス（epb-alignment-center 等）も打ち消し */
.l-content__main .wp-block-emanon-premium-blocks-headling:not(.is-style-epb-headling-lines-on) {
    text-align: left;
}

/* ---- 新ブロック epb-advanced-headling の flex → block 差し戻し ----
   community 等で使われる新ブロック epb-advanced-headling は
   `.epb-advanced-headling { display: flex }` / `.epb-advanced-headling__inner { display: flex; flex-direction: column }`
   となっており、子の h2 は flex item として blockify され、`display: inline !important` を指定しても
   USED display が block になって padding-box が親幅いっぱい（viewport 幅）に広がる。
   結果、linear-gradient マーカーが文字幅でなく viewport 幅まで伸びる（前セッションで未解決だった bug の正体）。

   対象: epb-has-sub-text-bottom / epb-has-sub-text-top（flex-direction: column 系、block 化しても見た目は変わらない）
   除外: epb-has-sub-text-left / right（flex-direction: row、block 化すると sub-text レイアウト崩壊）、
         lines-on（装飾維持のため触らない）

   PC では text が 1 行に収まるため見た目は壊れないが、内部的には block 幅のマーカー。
   SP では text が折返すので明確に viewport 幅になり、user が気付いた。
   どちらの環境でも正しい見た目にするため flex → block に差し戻す。 */

.l-content__main .epb-advanced-headling:not(.is-style-epb-headling-lines-on),
.l-content__main .epb-advanced-headling__inner.epb-has-sub-text-bottom:not(.is-style-epb-headling-lines-on),
.l-content__main .epb-advanced-headling__inner.epb-has-sub-text-top:not(.is-style-epb-headling-lines-on) {
    display: block !important;                    /* flex → block、h2 を本来の inline 幅にする */
}


/* ---- H2 本文内のベーススタイル ----
   display: inline + box-decoration-break: clone で、改行時に各行ごと
   マーカーが文字幅にフィットする（inline-block だと行末まで伸びてしまう）。
   縦 margin は inline には効かないため wrapper 側 (.epb-*-text-wrapper) に配置済。
   font-size/color !important: Emanon H2 のインライン `style="color:#333333;line-height:1.6..."` を上書きするため */

.l-content__main h2.epb-advance-headling__text,
.l-content__main h2.epb-advanced-headling__text {
    display: inline !important;                   /* テキスト行にフィット、改行時も文字幅 */
    font-size: 26px !important;
    font-weight: 700;
    color: #333 !important;
    line-height: 1.8;                              /* マーカー領域の高さ確保 */
    padding: 0.1em 4px;                            /* 縦 padding は clone で各行に適用 */
    border-left: none !important;                  /* Emanon の is-style-epb-headling-border-left 由来の青棒を解除 */
    /* 下 40% だけマーカーの見た目は linear-gradient で描画、各ページで色指定 */
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* H2 アイコン ::before（共通属性、content と color は各ページで指定） */
.l-content__main h2.epb-advance-headling__text::before,
.l-content__main h2.epb-advanced-headling__text::before {
    font-family: "Font Awesome 6 Free" !important; /* Emanon `[class*="icon-"]::before { font-family: "icomoon" !important }` を上書き（voices の h2 に icon-chevron-circle-right class が付く） */
    font-weight: 900 !important;
    font-size: 0.85em;
    padding-right: 10px;                            /* margin-right だと下線が途切れるため padding-right で間隔を確保 */
    vertical-align: 0.02em;
    background: transparent;
}


/* ---- H3 本文内（δ-1: アイコンのみ、マーカーなし） ---- */

.l-content__main h3.epb-advance-headling__text,
.l-content__main h3.epb-advanced-headling__text {
    display: block;
    text-align: left;
    font-size: 19px !important;                  /* inline --epb-font-pc 上書き */
    font-weight: 700;
    color: #333 !important;                       /* inline color 上書き */
    line-height: 1.5;
    margin: 1.5em 0 0.6em;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    /* H3 の border-left は Emanon のまま（user 指定: そのまま） */
}

.l-content__main h3.epb-advance-headling__text::before,
.l-content__main h3.epb-advanced-headling__text::before {
    content: "\f111";                            /* FA solid circle */
    font-family: "Font Awesome 6 Free" !important; /* Emanon icomoon !important を上書き */
    font-weight: 900 !important;
    font-size: 0.55em;
    margin-right: 10px;
    vertical-align: 0.25em;
}


/* ---- H1 ページタイトル（article-title + archive-title） ---- */

.l-content__main h1.article-title,
.l-content__main h1.archive-title {
    display: inline !important;                  /* テキスト行にフィット、改行時も文字幅 */
    font-size: 30px;
    font-weight: 700;
    color: #333;
    line-height: 1.8;
    padding: 0.1em 4px;
    /* 下 40% だけマーカーの見た目は linear-gradient で描画、各ページで色指定 */
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.l-content__main h1.article-title::before,
.l-content__main h1.archive-title::before {
    font-family: "Font Awesome 6 Free" !important; /* Emanon icomoon !important を上書き */
    font-weight: 900 !important;
    font-size: 0.85em;
    padding-right: 12px;                           /* margin-right だと下線が途切れるため */
    background: transparent;
    vertical-align: 0.02em;
}


/* ---- ページ別アイコン + マーカー色（案 E-γ） ----
   background !important: Emanon の wrapper に `--epb-headling-background-color` が設定される場合があるため
   color !important: 見出し要素のインライン color を上書き
   content: 別ルールで上書きされうるので !important あると安全 */

/* TOP (ID=16): house + ピーチ */
body.page-id-16 .l-content__main h2.epb-advance-headling__text,
body.page-id-16 .l-content__main h2.epb-advanced-headling__text,
body.page-id-16 .l-content__main h1.article-title {
    background: linear-gradient(transparent 60%, #FFD9C0 60%) !important;
}
body.page-id-16 .l-content__main h2.epb-advance-headling__text::before,
body.page-id-16 .l-content__main h2.epb-advanced-headling__text::before,
body.page-id-16 .l-content__main h1.article-title::before {
    content: "\f015";                            /* house */
    color: #E8956E;
}
body.page-id-16 .l-content__main h3.epb-advance-headling__text::before,
body.page-id-16 .l-content__main h3.epb-advanced-headling__text::before {
    color: #E8956E;
}

/* 進化し続ける保育環境 (ID=27): tree + ミント */
body.page-id-27 .l-content__main h2.epb-advance-headling__text,
body.page-id-27 .l-content__main h2.epb-advanced-headling__text,
body.page-id-27 .l-content__main h1.article-title {
    background: linear-gradient(transparent 60%, #C8E6DE 60%) !important;
}
body.page-id-27 .l-content__main h2.epb-advance-headling__text::before,
body.page-id-27 .l-content__main h2.epb-advanced-headling__text::before,
body.page-id-27 .l-content__main h1.article-title::before {
    content: "\f1bb";                            /* tree */
    color: #8BB874;
}
body.page-id-27 .l-content__main h3.epb-advance-headling__text::before,
body.page-id-27 .l-content__main h3.epb-advanced-headling__text::before {
    color: #8BB874;
}

/* 園の生活 (ID=30): seedling + ピーチ */
body.page-id-30 .l-content__main h2.epb-advance-headling__text,
body.page-id-30 .l-content__main h2.epb-advanced-headling__text,
body.page-id-30 .l-content__main h1.article-title {
    background: linear-gradient(transparent 60%, #FFD9C0 60%) !important;
}
body.page-id-30 .l-content__main h2.epb-advance-headling__text::before,
body.page-id-30 .l-content__main h2.epb-advanced-headling__text::before,
body.page-id-30 .l-content__main h1.article-title::before {
    content: "\f4d8";                            /* seedling */
    color: #E8956E;
}
body.page-id-30 .l-content__main h3.epb-advance-headling__text::before,
body.page-id-30 .l-content__main h3.epb-advanced-headling__text::before {
    color: #E8956E;
}

/* 子育て支援 (ID=33): heart + ピンク */
body.page-id-33 .l-content__main h2.epb-advance-headling__text,
body.page-id-33 .l-content__main h2.epb-advanced-headling__text,
body.page-id-33 .l-content__main h1.article-title {
    background: linear-gradient(transparent 60%, #FFD7E5 60%) !important;
}
body.page-id-33 .l-content__main h2.epb-advance-headling__text::before,
body.page-id-33 .l-content__main h2.epb-advanced-headling__text::before,
body.page-id-33 .l-content__main h1.article-title::before {
    content: "\f004";                            /* heart */
    color: #E48CA8;
}
body.page-id-33 .l-content__main h3.epb-advance-headling__text::before,
body.page-id-33 .l-content__main h3.epb-advanced-headling__text::before {
    color: #E48CA8;
}

/* 入園案内 (ID=179): school + アプリコット */
body.page-id-179 .l-content__main h2.epb-advance-headling__text,
body.page-id-179 .l-content__main h2.epb-advanced-headling__text,
body.page-id-179 .l-content__main h1.article-title {
    background: linear-gradient(transparent 60%, #FFC27A 60%) !important;
}
body.page-id-179 .l-content__main h2.epb-advance-headling__text::before,
body.page-id-179 .l-content__main h2.epb-advanced-headling__text::before,
body.page-id-179 .l-content__main h1.article-title::before {
    content: "\f549";                            /* school */
    color: #F4A261;
}
body.page-id-179 .l-content__main h3.epb-advance-headling__text::before,
body.page-id-179 .l-content__main h3.epb-advanced-headling__text::before {
    color: #F4A261;
}

/* サイトポリシー (ID=916): shield-halved + 薄黄 */
body.page-id-916 .l-content__main h2.epb-advance-headling__text,
body.page-id-916 .l-content__main h2.epb-advanced-headling__text,
body.page-id-916 .l-content__main h1.article-title {
    background: linear-gradient(transparent 60%, #FFE88C 60%) !important;
}
body.page-id-916 .l-content__main h2.epb-advance-headling__text::before,
body.page-id-916 .l-content__main h2.epb-advanced-headling__text::before,
body.page-id-916 .l-content__main h1.article-title::before {
    content: "\f3ed";                            /* shield-halved */
    color: #E8B530;
}
body.page-id-916 .l-content__main h3.epb-advance-headling__text::before,
body.page-id-916 .l-content__main h3.epb-advanced-headling__text::before {
    color: #E8B530;
}

/* 公開情報 (ID=1030): book-open + アプリコット */
body.page-id-1030 .l-content__main h2.epb-advance-headling__text,
body.page-id-1030 .l-content__main h2.epb-advanced-headling__text,
body.page-id-1030 .l-content__main h1.article-title {
    background: linear-gradient(transparent 60%, #FFC27A 60%) !important;
}
body.page-id-1030 .l-content__main h2.epb-advance-headling__text::before,
body.page-id-1030 .l-content__main h2.epb-advanced-headling__text::before,
body.page-id-1030 .l-content__main h1.article-title::before {
    content: "\f518";                            /* book-open */
    color: #F4A261;
}
body.page-id-1030 .l-content__main h3.epb-advance-headling__text::before,
body.page-id-1030 .l-content__main h3.epb-advanced-headling__text::before {
    color: #F4A261;
}

/* お問い合わせ (ID=1302): envelope + ピーチ */
body.page-id-1302 .l-content__main h2.epb-advance-headling__text,
body.page-id-1302 .l-content__main h2.epb-advanced-headling__text,
body.page-id-1302 .l-content__main h1.article-title {
    background: linear-gradient(transparent 60%, #FFD9C0 60%) !important;
}
body.page-id-1302 .l-content__main h2.epb-advance-headling__text::before,
body.page-id-1302 .l-content__main h2.epb-advanced-headling__text::before,
body.page-id-1302 .l-content__main h1.article-title::before {
    content: "\f0e0";                            /* envelope */
    color: #E8956E;
}
body.page-id-1302 .l-content__main h3.epb-advance-headling__text::before,
body.page-id-1302 .l-content__main h3.epb-advanced-headling__text::before {
    color: #E8956E;
}

/* お知らせ一覧 (ID=1732): bell + 薄黄 */
body.page-id-1732 .l-content__main h2.epb-advance-headling__text,
body.page-id-1732 .l-content__main h2.epb-advanced-headling__text,
body.page-id-1732 .l-content__main h1.article-title,
body.page-id-1732 .l-content__main h1.archive-title,
body.blog .l-content__main h1.archive-title {
    background: linear-gradient(transparent 60%, #FFE88C 60%) !important;
}
body.page-id-1732 .l-content__main h2.epb-advance-headling__text::before,
body.page-id-1732 .l-content__main h2.epb-advanced-headling__text::before,
body.page-id-1732 .l-content__main h1.article-title::before,
body.page-id-1732 .l-content__main h1.archive-title::before,
body.blog .l-content__main h1.archive-title::before {
    content: "\f0f3";                            /* bell */
    color: #E8B530;
}
body.page-id-1732 .l-content__main h3.epb-advance-headling__text::before,
body.page-id-1732 .l-content__main h3.epb-advanced-headling__text::before {
    color: #E8B530;
}

/* 保護者の声 (ID=2225): comment-dots + ミント */
body.page-id-2225 .l-content__main h2.epb-advance-headling__text,
body.page-id-2225 .l-content__main h2.epb-advanced-headling__text,
body.page-id-2225 .l-content__main h1.article-title {
    background: linear-gradient(transparent 60%, #C8E6DE 60%) !important;
}
body.page-id-2225 .l-content__main h2.epb-advance-headling__text::before,
body.page-id-2225 .l-content__main h2.epb-advanced-headling__text::before,
body.page-id-2225 .l-content__main h1.article-title::before {
    content: "\f4ad";                            /* comment-dots */
    color: #8BB874;
}
body.page-id-2225 .l-content__main h3.epb-advance-headling__text::before,
body.page-id-2225 .l-content__main h3.epb-advanced-headling__text::before {
    color: #8BB874;
}

/* おたより (ID=2632): feather + ピンク */
body.page-id-2632 .l-content__main h2.epb-advance-headling__text,
body.page-id-2632 .l-content__main h2.epb-advanced-headling__text,
body.page-id-2632 .l-content__main h1.article-title {
    background: linear-gradient(transparent 60%, #FFD7E5 60%) !important;
}
body.page-id-2632 .l-content__main h2.epb-advance-headling__text::before,
body.page-id-2632 .l-content__main h2.epb-advanced-headling__text::before,
body.page-id-2632 .l-content__main h1.article-title::before {
    content: "\f52d";                            /* feather */
    color: #E48CA8;
}
body.page-id-2632 .l-content__main h3.epb-advance-headling__text::before,
body.page-id-2632 .l-content__main h3.epb-advanced-headling__text::before {
    color: #E48CA8;
}

/* 保護者の活動 (ID=2731): hands-holding-child + ミント */
body.page-id-2731 .l-content__main h2.epb-advance-headling__text,
body.page-id-2731 .l-content__main h2.epb-advanced-headling__text,
body.page-id-2731 .l-content__main h1.article-title {
    background: linear-gradient(transparent 60%, #C8E6DE 60%) !important;
}
body.page-id-2731 .l-content__main h2.epb-advance-headling__text::before,
body.page-id-2731 .l-content__main h2.epb-advanced-headling__text::before,
body.page-id-2731 .l-content__main h1.article-title::before {
    content: "\e4fa";                            /* hands-holding-child */
    color: #8BB874;
}
body.page-id-2731 .l-content__main h3.epb-advance-headling__text::before,
body.page-id-2731 .l-content__main h3.epb-advanced-headling__text::before {
    color: #8BB874;
}


/* ---- lines-on スタイルは例外（policy の「サイトポリシー」等） ----
   マーカー・アイコンを適用しない、lines-on 装飾を維持 */

.l-content__main .epb-advance-headling__text-wrapper.is-style-epb-headling-lines-on h2 {
    display: block;
    background: none;
}

.l-content__main .epb-advance-headling__text-wrapper.is-style-epb-headling-lines-on h2::before {
    content: none;
}


/* =============================================================
   Part B: カード統一（オフクリーム #FFFBF0 + シャドウ）

   対象: `.wp-block-group.has-background`（policy / community / etc）
   background-color !important: Gutenberg がインライン `style="background-color:..."` を吐くため
   ============================================================= */

.l-content__main .wp-block-group.has-background {
    background-color: #FFFBF0 !important;        /* inline style="background-color:..." 上書き */
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    padding: 24px;
}

/* paragraph レベルの has-background（policy 冒頭の説明文など） */
.l-content__main p.has-background {
    background-color: #FFFBF0 !important;        /* inline style 上書き */
    padding: 16px;
    border-radius: 6px;
}

/* サイドバー widget 枠（カテゴリー / 最近の投稿 / アーカイブ / 目次）
   Emanon の inline style="background-color:#d0e2f57a" を上書き */
.sidebar .wp-block-group.has-background {
    background-color: #FFFBF0 !important;        /* inline 上書き */
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}


/* =============================================================
   Part E: 固定（スティッキー）ヘッダーの視認性改善

   Emanon 既定は bg `rgba(255,255,255,0.85)` + text `#f2f2f2`（ほぼ白）で
   白 on 白になって見づらい。bg をオフクリーム寄りで不透明化、text は濃色に。
   ============================================================= */

.l-header-menu-drop,
.l-header-menu-fixed,
.l-header-menu-drop-logo,
.l-header-menu-fixed-logo {
    background-color: rgba(255, 251, 240, 0.95) !important; /* オフクリーム 95% */
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08) !important;   /* 微かに浮かせる */
}

/* 固定ヘッダー内のメニューテキストは濃色に */
.l-header-menu-drop .header-menu > .menu-item > a,
.l-header-menu-fixed .header-menu > .menu-item > a,
.l-header-menu-drop-logo .header-menu > .menu-item > a,
.l-header-menu-fixed-logo .header-menu > .menu-item > a {
    color: #564646 !important;                   /* 既存サイトの茶色系を踏襲 */
}

/* 固定ヘッダー内のロゴ（site-logo__img-common）は明色デザインで
   薄い背景だと見えないので CSS フィルタで暗反転 */
.l-header-menu-drop .site-logo__img-common,
.l-header-menu-fixed .site-logo__img-common,
.l-header-menu-drop-logo .site-logo__img-common,
.l-header-menu-fixed-logo .site-logo__img-common,
.l-header-menu-drop .site-logo__img,
.l-header-menu-fixed .site-logo__img,
.l-header-menu-drop-logo .site-logo__img,
.l-header-menu-fixed-logo .site-logo__img {
    filter: invert(0.85) brightness(0.4);
}

.l-header-menu-drop .header-menu > .menu-item:hover > a,
.l-header-menu-fixed .header-menu > .menu-item:hover > a,
.l-header-menu-drop-logo .header-menu > .menu-item:hover > a,
.l-header-menu-fixed-logo .header-menu > .menu-item:hover > a,
.l-header-menu-drop .header-menu .current-menu-item:not(.u-smooth-scroll) > a,
.l-header-menu-fixed .header-menu .current-menu-item:not(.u-smooth-scroll) > a,
.l-header-menu-drop-logo .header-menu .current-menu-item:not(.u-smooth-scroll) > a,
.l-header-menu-fixed-logo .header-menu .current-menu-item:not(.u-smooth-scroll) > a {
    color: #E07856 !important;                   /* hover/現在ページはコーラル（ブランド色） */
}


/* =============================================================
   Part F: スクロール時の固定ヘッダー被り防止 + sticky 目次の位置調整

   固定ヘッダー高は 64px + 余白 → 80px を CSS 変数で一元管理。
   - scroll-padding-top: アンカーリンクで飛んだ時、固定ヘッダー下に隠れないように
   - .sidebar-sticky の top: Emanon 既定は `top: 8px`、固定ヘッダー出現時だけ
     `.sticky-menu` で `top: 72px` になる想定だが JS タイミング or クラス付与漏れで
     適用されない。80px 固定で確実に固定ヘッダー下に位置
   ============================================================= */

:root {
    --fixed-header-offset: 80px;
}

html {
    scroll-padding-top: var(--fixed-header-offset);
}

.l-container .sidebar-sticky {
    top: var(--fixed-header-offset);
}



/* =============================================================
   Part C: ボタン配色（プライマリ・セカンダリ・ディセーブル）
   ============================================================= */

/* ---- プライマリ（CF7 submit: 「確認」「送信」ボタン） ----
   CF7 のデフォルトボタンはテーマ・ブラウザ依存でスタイルが付くため !important が安全 */

.l-content__main .wpcf7-submit,
.l-content__main form.wpcf7-form input[type="submit"] {
    background: linear-gradient(transparent 60%, #E07856 60%) !important;        /* CF7/テーマ既定の色上書き */
    border: none !important;
    color: #ffffff !important;
    padding: 12px 36px !important;
    border-radius: 6px !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    letter-spacing: 0.05em;
    cursor: pointer;
    transition: all 0.25s ease;
    box-shadow: 0 2px 4px rgba(224, 120, 86, 0.25);
}

.l-content__main .wpcf7-submit:hover,
.l-content__main form.wpcf7-form input[type="submit"]:hover {
    background: linear-gradient(transparent 60%, #D06146 60%) !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 8px rgba(224, 120, 86, 0.35);
}


/* ---- セカンダリ（Tel リンク + PDF ダウンロードリンク）----
   Emanon button block はインライン CSS 変数 `--epb-button-bg-color` で色指定、!important 必須
   対象を限定: tel: リンク、.pdf/.PDF リンク */

.l-content__main .epb-btn[href^="tel:"],
.l-content__main .epb-btn[href$=".pdf"],
.l-content__main .epb-btn[href$=".PDF"] {
    --epb-button-bg-color: #7DC6BC !important;   /* inline custom property 上書き */
    --epb-button-border-color: #6BB5AB !important;
    color: #ffffff !important;
}

.l-content__main .epb-btn[href^="tel:"]:hover,
.l-content__main .epb-btn[href$=".pdf"]:hover,
.l-content__main .epb-btn[href$=".PDF"]:hover {
    --epb-button-bg-color: #6BB5AB !important;
}


/* ---- ディセーブル系（ファイル選択ボタン） ---- */

.l-content__main input[type="file"]::-webkit-file-upload-button,
.l-content__main input[type="file"]::file-selector-button {
    background: linear-gradient(transparent 60%, #E8E8E8 60%) !important;        /* ブラウザ既定上書き */
    color: #555 !important;
    border: 1px solid #C5C5C5 !important;
    padding: 8px 16px !important;
    border-radius: 4px !important;
    cursor: pointer;
    margin-right: 8px;
    transition: all 0.2s ease;
}

.l-content__main input[type="file"]::-webkit-file-upload-button:hover,
.l-content__main input[type="file"]::file-selector-button:hover {
    background: linear-gradient(transparent 60%, #D6D6D6 60%) !important;
}


/* =============================================================
   Part D: フォーム入力欄のフォーカス（コーラルリング）
   CF7/WP 既定の focus 色を上書きするため !important
   ============================================================= */

.l-content__main .wpcf7-form input[type="text"],
.l-content__main .wpcf7-form input[type="email"],
.l-content__main .wpcf7-form input[type="tel"],
.l-content__main .wpcf7-form select,
.l-content__main .wpcf7-form textarea {
    transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

.l-content__main .wpcf7-form input[type="text"]:focus,
.l-content__main .wpcf7-form input[type="email"]:focus,
.l-content__main .wpcf7-form input[type="tel"]:focus,
.l-content__main .wpcf7-form select:focus,
.l-content__main .wpcf7-form textarea:focus {
    border-color: #E07856 !important;            /* ブラウザ既定の focus 色上書き */
    box-shadow: 0 0 0 3px rgba(224, 120, 86, 0.15) !important;
    outline: none !important;
}
