/* =====================================================================
   SHEVAN child responsive (@media SP/タブレット)
   実装CSS（Customizer 追加CSSの後継・正本）。編集は本ファイルで。
   ---------------------------------------------------------------------
   ⚠️ page-id 依存ルールの ID は【ステージング固有】。本番反映時に要・再マップ:
       .page-id-19   = staging /shop/（販売店一覧）  → 本番 /shop/ のID へ
       .page-id-21   = staging /company/（会社概要）  → 本番 /company/ のID へ
       .page-id-887  = staging /tokusho/（特商法）    → 本番 /tokusho/ のID へ
       .page-id-17 / .page-id-1064 等（旧移植分・Lab等）も staging ID の可能性 → 本番で要確認
     ※本番の各ページIDを確認し、上記を本番IDへ置換してからデプロイ。
     ※staging用IDと本番用IDを混在させない（本メモで一元管理）。
   内容: TOP SP（情報ボックス1カラム/横スクロール対策/TECHNOLOGY・EF-TECHカード/
     PRODUCT 2列・カード整え/Lab記事余白/「清潔」バナーSP）, /product/ SP2列,
     /shop//company//tokusho/ の表 横スクロール対策。
   ===================================================================== */
@media (max-width:781px){.page-id-17 .wp-block-post-template>li{width:50%;}}
@media (max-width:575px){.page-id-17 .wp-block-post-template>li{width:100%;}}
@media screen and (max-width:767px){
  .page-id-1064 .lab-desc{display:inline;padding-left:0;margin-top:0;}
}

/* Konna-nayami blocks: SP tuning (not cramped) */
@media screen and (max-width:767px){
  .page-id-1064 table:has(h6 img) td{padding:6px !important;}
  .page-id-1064 h6:has(img) strong{font-size:11px;padding:5px 4px;line-height:1.3;}
}
@media screen and (max-width:767px){
  .home table:has(h6 img) td{padding:6px !important;}
  .home h6:has(img) strong{font-size:11px;padding:5px 4px;line-height:1.3;}
}
@media screen and (max-width:767px){.shevan-fw__body{padding:32px 16px;}.shevan-fw--sidebar .shevan-fw__inner{display:block;padding:32px 16px;}.shevan-fw__sidebar{margin-top:40px;}}
@media (max-width:767px){
  .page-id-1466 .shevan-fw__main,
  .page-id-1435 .shevan-fw__main{
    flex:0 0 auto;
    margin-left:0;
    margin-right:0;
  }
}

/* ============================================================
   A/B比較サンプル 中間幅レスポンシブ修正（2026-04 追加 / page-id-1466,1467 限定）
   原因: .l-sidebar__inner が flex-wrap でサイドバーwidgetが≤1200で多列化し項目が圧迫
   ============================================================ */
/* 中間幅(≤1200): サイドバーwidgetを単列・全幅に戻し読みやすく。本文との間隔も詰める */
@media (max-width:1200px){
  .page-id-1466 .shevan-fw--sidebar .shevan-fw__inner,
  .page-id-1467 .shevan-fw--sidebar .shevan-fw__inner{ gap:24px; }
  .page-id-1466 .shevan-fw__sidebar .l-sidebar__inner,
  .page-id-1467 .shevan-fw__sidebar .l-sidebar__inner{ display:block !important; }
  .page-id-1466 .shevan-fw__sidebar .p-widget,
  .page-id-1467 .shevan-fw__sidebar .p-widget{ width:100% !important; max-width:none !important; flex:none !important; }
}
/* SP(≤767): 2カラムをやめ縦積み（本文→サイドバー）。本文潰れ・横スクロール防止 */
@media (max-width:767px){
  .page-id-1466 .shevan-fw--sidebar .shevan-fw__inner,
  .page-id-1467 .shevan-fw--sidebar .shevan-fw__inner{ flex-direction:column; margin-left:auto; margin-right:auto; }
  .page-id-1466 .shevan-fw__main,.page-id-1467 .shevan-fw__main{ width:100%; }
  .page-id-1466 .shevan-fw__sidebar,.page-id-1467 .shevan-fw__sidebar{ width:100%; flex:0 0 auto; transform:none !important; }
}

/* ============================================================
   /full-wide-sidebar/(page-id-1435) を B案(1467)採用版に上書き（2026-04）
   B案と同一ルール：本文左位置は基準と同じ・本文拡張・サイドバー340px右端・中間幅/SP対応
   ============================================================ */
@media (max-width:1200px){
  .page-id-1435 .shevan-fw--sidebar .shevan-fw__inner{ gap:24px; }
  .page-id-1435 .shevan-fw__sidebar .l-sidebar__inner{ display:block !important; }
  .page-id-1435 .shevan-fw__sidebar .p-widget{ width:100% !important; max-width:none !important; flex:none !important; }
}
@media (max-width:767px){
  .page-id-1435 .shevan-fw--sidebar .shevan-fw__inner{ flex-direction:column; margin-left:auto; margin-right:auto; }
  .page-id-1435 .shevan-fw__main{ width:100%; }
  .page-id-1435 .shevan-fw__sidebar{ width:100%; flex:0 0 auto; transform:none !important; }
}
@media (max-width:600px){ .shevan-size-modal__box{ margin:4vh auto 0; padding:24px 14px 16px; } .shevan-size-modal__content table{ font-size:10px; } .shevan-size-modal__content th,.shevan-size-modal__content td{ padding:4px 3px; } }
@media (max-width:767px){.l-header__logo img{height:34px !important;}}
@media (max-width:767px){.shevan-fbnr__inner{justify-content:center;gap:14px;padding:20px 16px;}.l-footer .shevan-fbnr__item img{height:44px;}}
@media screen and (max-width:768px){
  .shevan-grouped-archive .shevan-cat-block{ margin-bottom:36px; }
  .shevan-grouped-archive .shevan-cat-block__title{ font-size:18px; margin-bottom:14px; }
  .shevan-grouped-archive .shevan-grouped-ordering{ text-align:left; }
}
@media (max-width:1024px){
  .l-header__top{ min-height:64px; }
  .l-header .l-header__logo .c-logo .c-logo__image-pc{ height:46px !important; max-height:46px !important; }
}
@media (max-width:768px){
  .p-fp-slider .shevan-hero-banner{ right:50%; left:auto; transform:translateX(50%); bottom:12px; width:72%; max-width:320px; }
}

/* === SHEVAN: TOP(home) 情報ボックス table を SP で1カラム縦積み（横スクロール対策, 2026-06） ===
   対象: TECHNOLOGY/機能紹介(.rnum) と EF-TECH(.lab-desc) の editor table。
   SP(≤767)・.home 限定。デスクトップ / .page-id-1064 / 一般shevan / 悩みカード(table[0]) は不変。
   ※悩みtableは h6:img 構造で .rnum/.lab-desc を含まないため本ルールに非該当。 */
@media screen and (max-width:767px){
  .home table:has(.rnum),
  .home table:has(.rnum) tbody,
  .home table:has(.rnum) tr,
  .home table:has(.rnum) td,
  .home table:has(.lab-desc),
  .home table:has(.lab-desc) tbody,
  .home table:has(.lab-desc) tr,
  .home table:has(.lab-desc) td{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    box-sizing:border-box !important;
  }
  .home table:has(.rnum) td,
  .home table:has(.lab-desc) td{
    padding:10px 14px !important;
    height:auto !important;
    vertical-align:top !important;
  }
  .home table:has(.rnum) td img,
  .home table:has(.lab-desc) td img{
    width:100% !important;
    max-width:100% !important;
    height:auto !important;
    display:block;
  }
}

/* === SHEVAN: TOP(home) 情報ボックスの横スクロールバー除去（TCD .s_table nowrap 対策, 2026-06） ===
   原因: 親TCD CSS @media(max-width:991px){ .p-body .s_table{overflow-x:auto;white-space:nowrap} } により
   SP/タブレットで .s_table 内テキストが折り返さず横長化 → 横スクロールバーが残る。
   home の .rnum/.lab-desc 情報ボックス限定で nowrap/スクロールラッパーを解除し折り返し表示に。
   対象は ≤991（TCDルールと同範囲＝SP＋タブレット）。>991 デスクトップ / 他ページ / 一般shevan は不変。
   （390px 実測: 適用前 s_table scrollWidth 2150 → 適用後 390 で横スクロール解消） */
@media screen and (max-width:991px){
  .home .s_table:has(.rnum),
  .home .s_table:has(.lab-desc){
    overflow-x:visible !important;
    overflow:visible !important;
    white-space:normal !important;
  }
  .home table:has(.rnum),
  .home table:has(.rnum) *,
  .home table:has(.lab-desc),
  .home table:has(.lab-desc) *{
    white-space:normal !important;
    overflow-wrap:anywhere !important;
    word-break:normal !important;
    min-width:0 !important;
  }
}

/* === SHEVAN: 商品一覧(/product/ グループ表示)を SP では2列に（過密緩和, 2026-06） ===
   TCD既定はSP(≤599)で2列だが、.shevan-grouped-archive が列数を3固定で上書きしているため
   SPでも3列＝過密になる。SP限定で列数を2に戻す。
   ※デスクトップ(3列) / TOP / 一般shevan は不変。staging(3列)とは意図的に差分（SP見やすさ優先）。 */
@media screen and (max-width:599px){
  .shevan-grouped-archive{ --tcd-product-loop-item-column:2 !important; }
}

/* =====================================================================
   SHEVAN: TOP(home) SP専用カードUI（2026-06 リデザイン）
   方針: staging再現ではなく、SPで見やすいカード表示に作り直す。
   .home＋SP(≤767)限定。PC(>767)・他ページ・一般shevanは不変。
   ===================================================================== */
@media screen and (max-width:767px){

  /* --- TECHNOLOGY / 機能紹介（.rnum: 画像＋3項目）2026-06 再調整 ---
     画像を全幅・各項目を「赤い左アクセント罫線」付きカードに。番号→見出し→本文の
     階層を余白と行間で明確化（実機390px検証済み）。 */
  .home table:has(.rnum) td:first-child{ padding:0 0 22px !important; text-align:center !important; }
  .home table:has(.rnum) td:first-child img{ width:100% !important; max-width:100% !important; margin:0 auto !important; border-radius:12px; }
  .home table:has(.rnum) td:last-child{ padding:0 !important; }
  .home table:has(.rnum) td:last-child > div{ display:flex !important; flex-direction:column !important; gap:16px !important; }
  .home table:has(.rnum) td:last-child > div > div{
    background:#fff !important; border:1px solid #ececec !important; border-left:4px solid #de5454 !important;
    border-radius:12px !important; padding:20px 22px !important; box-shadow:0 2px 10px rgba(0,0,0,.05) !important; margin:0 !important;
  }
  .home table:has(.rnum) td:last-child strong{ display:block !important; font-size:17px !important; font-weight:700 !important; color:#1a1a1a !important; line-height:1.5 !important; margin:0 0 10px !important; }
  .home table:has(.rnum) td:last-child > div > div > span{ display:block !important; font-size:14px !important; line-height:2.0 !important; color:#555 !important; }
  /* 番号は丸を主役にせず、小さな「01/02/03」アクセントに */
  .home table:has(.rnum) .rnum{
    display:block !important; width:auto !important; height:auto !important;
    background:none !important; border-radius:0 !important; color:#de5454 !important;
    font-size:11px !important; font-weight:700 !important; letter-spacing:.18em !important;
    margin:0 0 10px !important; line-height:1 !important;
  }
  .home table:has(.rnum) .rnum::before{ content:"0"; }

  /* --- EF-TECH（.lab-desc: 見出し行=thead / 本文行=tbody → 列ごとに見出し/本文ペアのカードに）--- */
  /* 見出し行は <thead>、本文行は <tbody> にあるため、両方 contents 化し、
     行判定は位置(first/last)でなく内容(.lab-descの有無)で行う。 */
  .home table:has(.lab-desc){ display:flex !important; flex-direction:column !important; width:100% !important; }
  .home table:has(.lab-desc) thead,
  .home table:has(.lab-desc) tbody,
  .home table:has(.lab-desc) tr{ display:contents !important; }
  .home table:has(.lab-desc) td{
    display:block !important; width:100% !important; box-sizing:border-box !important;
    background:#fff !important; border:1px solid #e8e8e8 !important; margin:0 !important; height:auto !important;
  }
  /* 見出しセル（.lab-descを含む行）= カード上部（赤い上罫線・余白拡大, 2026-06 再調整）*/
  .home table:has(.lab-desc) tr:has(.lab-desc) td{
    border-radius:12px 12px 0 0 !important; border-bottom:none !important; border-top:4px solid #de5454 !important;
    margin-top:18px !important; padding:20px 22px 12px !important;
  }
  /* 本文セル（.lab-descを含まない行）= カード下部 */
  .home table:has(.lab-desc) tr:not(:has(.lab-desc)) td{
    border-radius:0 0 12px 12px !important; border-top:none !important;
    padding:0 22px 22px !important; color:#555 !important; font-size:14px !important; line-height:2.05 !important;
  }
  /* 列ごとに 見出し→本文 を交互配置（thead/tbody をまたいでペア化） */
  .home table:has(.lab-desc) tr:has(.lab-desc) td:nth-child(1){ order:1; }
  .home table:has(.lab-desc) tr:not(:has(.lab-desc)) td:nth-child(1){ order:2; }
  .home table:has(.lab-desc) tr:has(.lab-desc) td:nth-child(2){ order:3; }
  .home table:has(.lab-desc) tr:not(:has(.lab-desc)) td:nth-child(2){ order:4; }
  .home table:has(.lab-desc) tr:has(.lab-desc) td:nth-child(3){ order:5; }
  .home table:has(.lab-desc) tr:not(:has(.lab-desc)) td:nth-child(3){ order:6; }
  .home table:has(.lab-desc) h5{ margin:0 !important; font-size:16px !important; line-height:1.6 !important; color:#1a1a1a !important; font-weight:700 !important; }
  .home table:has(.lab-desc) .lab-desc{ display:inline !important; font-weight:700 !important; }
  /* 番号: home では FontAwesome の数字スタックが見出し文字に重なるため、
     FAを隠してCSSカウンタの「01/02/03」アクセントに置換（番号→見出しを縦に分離）。 */
  .home table:has(.lab-desc){ counter-reset:eftech; }
  .home table:has(.lab-desc) td:has(.lab-desc){ counter-increment:eftech; }
  .home table:has(.lab-desc) td:has(.lab-desc) b > i,
  .home table:has(.lab-desc) td:has(.lab-desc) .fa-stack{ display:none !important; }
  .home table:has(.lab-desc) td:has(.lab-desc) b{ display:block !important; margin:0 0 6px !important; }
  .home table:has(.lab-desc) td:has(.lab-desc) b::before{
    content:"0" counter(eftech); display:block; color:#de5454;
    font-size:11px; font-weight:700; letter-spacing:.18em; margin:0 0 6px;
  }

  /* --- PRODUCT（TOPの商品スライダー .p-cb--product）SP整え, 2026-06 ---
     商品名を2行クランプで高さ統一・価格を明確化・余白を整理して統一感を出す。
     画像はSP2列の既定サイズ（約158px）を維持。.home限定・他ページ不変。 */
  .home .p-cb--product .p-archive03-item-info{ padding:12px 2px 4px !important; }
  .home .p-cb--product .p-archive03-item-meta{ margin:0 0 7px !important; }
  .home .p-cb--product .p-archive03-item-category{ font-size:11px !important; }
  .home .p-cb--product .p-archive03-item-title{ margin:0 0 7px !important; }
  .home .p-cb--product .p-archive03-item-title span{
    font-size:13px !important; line-height:1.55 !important; color:#222 !important;
    display:-webkit-box !important; -webkit-line-clamp:2 !important; -webkit-box-orient:vertical !important;
    overflow:hidden !important; min-height:2.95em !important;
  }
  .home .p-cb--product .p-archive03-item-price{ font-size:15px !important; font-weight:700 !important; color:#1a1a1a !important; line-height:1.4 !important; }
  .home .p-cb--product .p-archive03-item-price .woocommerce-price-suffix{ font-size:11px !important; font-weight:400 !important; color:#888 !important; margin-left:2px; }
  .home .p-cb--product .p-archive03-item-thumbnail img{ border-radius:8px !important; }

  /* --- SHEVAN Lab 記事一覧: SP余白を少し整える（標準カードはそのまま）--- */
  .home .p-cb--posts__list{ row-gap:14px; }
}
@media screen and (max-width:767px){
  .home .p-cb--banner:has(.p-cb--banner__image-bg[style*="lab_list15"]){ margin-top:48px !important; margin-bottom:48px !important; }
  .home .p-cb--banner:has(.p-cb--banner__image-bg[style*="lab_list15"]) .p-cb--banner__content{
    height:auto !important; min-height:300px !important; padding:28px 18px !important; box-sizing:border-box !important;
  }
}

/* === SHEVAN: 販売店一覧 /shop/(page-id-19) SP横スクロール対策（2026-06） ===
   店舗一覧テーブル(.s_table 内 figure.wp-block-table.alignleft)と Google Map iframe(width=800固定)が
   SP幅を超えて横スクロールを発生させる。対象ページ限定で全幅化＋セル折り返し、地図は全幅に。
   .page-id-19 + SP(≤599)限定。PC(>599) / 他ページの .s_table は不変。 */
@media screen and (max-width:599px){
  .page-id-19 .tcdce-body figure.wp-block-table.alignleft{ float:none; width:100% !important; max-width:100% !important; margin-left:0; margin-right:0; }
  .page-id-19 .s_table{ width:100% !important; max-width:100% !important; overflow-x:auto; }
  .page-id-19 .s_table table{ width:100% !important; table-layout:fixed; }
  .page-id-19 .s_table th, .page-id-19 .s_table td{ white-space:normal !important; overflow-wrap:anywhere; word-break:break-word; }
  .page-id-19 .s_table td:first-child, .page-id-19 .s_table th:first-child{ width:5.5em; }
  .page-id-19 .tcdce-body iframe{ width:100% !important; max-width:100% !important; }
}

/* === SHEVAN: 会社概要 /company/(page-id-21) SP表 横スクロール対策（2026-06） ===
   classic editor で挿入した会社情報テーブルが TCD の .s_table(nowrap) で横長化し
   SPで表内横スクロール（住所・事業内容が見切れ）になるため、対象ページ限定で
   折り返し・全幅化。PC(>599) / 他ページの .s_table は不変。 */
@media screen and (max-width:599px){
  .page-id-21 .s_table{ overflow-x:visible !important; overflow:visible !important; white-space:normal !important; width:100% !important; max-width:100% !important; }
  .page-id-21 .s_table table{ width:100% !important; table-layout:fixed; white-space:normal !important; }
  .page-id-21 .s_table th, .page-id-21 .s_table td{ white-space:normal !important; overflow-wrap:anywhere; word-break:break-word; }
  .page-id-21 .s_table th:first-child, .page-id-21 .s_table td:first-child{ width:5.5em; }
}

/* === SHEVAN: 特商法に基づく表記 /tokusho/(page-id-887) SP表 横スクロール対策（2026-06） ===
   フッター必須ページ。本番から移植した特商法テーブルが TCD の .s_table(nowrap) で横長化し
   SPで表内横スクロールになるため、対象ページ限定で折り返し・全幅化。
   ラベル列は項目名が長い（運営統括責任者/商品代金以外の必要金額 等）ため 7em。
   PC(>599) / 他ページの .s_table は不変。 */
@media screen and (max-width:599px){
  .page-id-887 .s_table{ overflow-x:visible !important; overflow:visible !important; white-space:normal !important; width:100% !important; max-width:100% !important; }
  .page-id-887 .s_table table{ width:100% !important; table-layout:fixed; white-space:normal !important; }
  .page-id-887 .s_table th, .page-id-887 .s_table td{ white-space:normal !important; overflow-wrap:anywhere; word-break:break-word; }
  .page-id-887 .s_table th:first-child, .page-id-887 .s_table td:first-child{ width:7em; }
}

/* =========================================================
   SHEVAN migrated Customizer Additional CSS
   Source backup: /home/neutrope/shevan-child-additional-css-backup-20260630-015036.css
   Appended: 20260630-224056
   ========================================================= */

/* =====================================================================
   SHEVAN staging 確認環境用 追加CSS（Customizer → 追加CSS に貼付）
   目的: staging(親テーマ rikyu_tcd104)を、本番公開予定(child)のSP見た目に揃える。
   範囲: ①情報ボックスSP1カラム+横スクロール対策 ②TECHNOLOGY/EF-TECH SPカードUI＋番号
         ③/product/ SP2列 ④「清潔は…」バナー余白。
   注意: staging確認用の暫定措置。本番には持ち込まない（本番はchildファイルで管理）。
   GTM/EC/PHP/preview-menu は含めない。
   ===================================================================== */

/* === SHEVAN: TOP(home) 情報ボックス table を SP で1カラム縦積み（横スクロール対策, 2026-06） ===
   対象: TECHNOLOGY/機能紹介(.rnum) と EF-TECH(.lab-desc) の editor table。
   SP(≤767)・.home 限定。デスクトップ / .page-id-1064 / 一般shevan / 悩みカード(table[0]) は不変。
   ※悩みtableは h6:img 構造で .rnum/.lab-desc を含まないため本ルールに非該当。 */
@media screen and (max-width:767px){
  .home table:has(.rnum),
  .home table:has(.rnum) tbody,
  .home table:has(.rnum) tr,
  .home table:has(.rnum) td,
  .home table:has(.lab-desc),
  .home table:has(.lab-desc) tbody,
  .home table:has(.lab-desc) tr,
  .home table:has(.lab-desc) td{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    box-sizing:border-box !important;
  }
  .home table:has(.rnum) td,
  .home table:has(.lab-desc) td{
    padding:10px 14px !important;
    height:auto !important;
    vertical-align:top !important;
  }
  .home table:has(.rnum) td img,
  .home table:has(.lab-desc) td img{
    width:100% !important;
    max-width:100% !important;
    height:auto !important;
    display:block;
  }
}

/* === SHEVAN: TOP(home) 情報ボックスの横スクロールバー除去（TCD .s_table nowrap 対策, 2026-06） ===
   原因: 親TCD CSS @media(max-width:991px){ .p-body .s_table{overflow-x:auto;white-space:nowrap} } により
   SP/タブレットで .s_table 内テキストが折り返さず横長化 → 横スクロールバーが残る。
   home の .rnum/.lab-desc 情報ボックス限定で nowrap/スクロールラッパーを解除し折り返し表示に。
   対象は ≤991（TCDルールと同範囲＝SP＋タブレット）。>991 デスクトップ / 他ページ / 一般shevan は不変。
   （390px 実測: 適用前 s_table scrollWidth 2150 → 適用後 390 で横スクロール解消） */
@media screen and (max-width:991px){
  .home .s_table:has(.rnum),
  .home .s_table:has(.lab-desc){
    overflow-x:visible !important;
    overflow:visible !important;
    white-space:normal !important;
  }
  .home table:has(.rnum),
  .home table:has(.rnum) *,
  .home table:has(.lab-desc),
  .home table:has(.lab-desc) *{
    white-space:normal !important;
    overflow-wrap:anywhere !important;
    word-break:normal !important;
    min-width:0 !important;
  }
}

/* === SHEVAN: 商品一覧(/product/ グループ表示)を SP では2列に（過密緩和, 2026-06） ===
   TCD既定はSP(≤599)で2列だが、.shevan-grouped-archive が列数を3固定で上書きしているため
   SPでも3列＝過密になる。SP限定で列数を2に戻す。
   ※デスクトップ(3列) / TOP / 一般shevan は不変。staging(3列)とは意図的に差分（SP見やすさ優先）。 */
@media screen and (max-width:599px){
  .shevan-grouped-archive{ --tcd-product-loop-item-column:2 !important; }
}

/* =====================================================================
   SHEVAN: TOP(home) SP専用カードUI（2026-06 リデザイン）
   方針: staging再現ではなく、SPで見やすいカード表示に作り直す。
   .home＋SP(≤767)限定。PC(>767)・他ページ・一般shevanは不変。
   ===================================================================== */
@media screen and (max-width:767px){

  /* --- TECHNOLOGY / 機能紹介（.rnum: 画像＋3項目）--- */
  .home table:has(.rnum) td:first-child{ padding:0 0 18px !important; text-align:center !important; }
  .home table:has(.rnum) td:first-child img{ width:100% !important; max-width:440px !important; margin:0 auto !important; border-radius:8px; }
  .home table:has(.rnum) td:last-child{ padding:0 !important; }
  .home table:has(.rnum) td:last-child > div{ display:flex !important; flex-direction:column !important; gap:12px !important; }
  .home table:has(.rnum) td:last-child > div > div{
    background:#fff !important; border:1px solid #ececec !important; border-radius:12px !important;
    padding:18px 18px !important; box-shadow:0 1px 3px rgba(0,0,0,.05) !important; margin:0 !important;
  }
  .home table:has(.rnum) td:last-child strong{ display:block !important; font-size:16px !important; font-weight:700 !important; color:#1a1a1a !important; line-height:1.6 !important; margin:0 0 6px !important; }
  .home table:has(.rnum) td:last-child > div > div > span{ display:block !important; font-size:13.5px !important; line-height:1.85 !important; color:#666 !important; }
  /* 番号は丸を主役にせず、小さな「01/02/03」アクセントに */
  .home table:has(.rnum) .rnum{
    display:block !important; width:auto !important; height:auto !important;
    background:none !important; border-radius:0 !important; color:#de5454 !important;
    font-size:11px !important; font-weight:700 !important; letter-spacing:.14em !important;
    margin:0 0 4px !important; line-height:1.2 !important;
  }
  .home table:has(.rnum) .rnum::before{ content:"0"; }

  /* --- EF-TECH（.lab-desc: 見出し行=thead / 本文行=tbody → 列ごとに見出し/本文ペアのカードに）--- */
  /* 見出し行は <thead>、本文行は <tbody> にあるため、両方 contents 化し、
     行判定は位置(first/last)でなく内容(.lab-descの有無)で行う。 */
  .home table:has(.lab-desc){ display:flex !important; flex-direction:column !important; width:100% !important; }
  .home table:has(.lab-desc) thead,
  .home table:has(.lab-desc) tbody,
  .home table:has(.lab-desc) tr{ display:contents !important; }
  .home table:has(.lab-desc) td{
    display:block !important; width:100% !important; box-sizing:border-box !important;
    background:#fff !important; border:1px solid #e8e8e8 !important; margin:0 !important; height:auto !important;
  }
  .home table:has(.lab-desc) tr:has(.lab-desc) td{
    border-radius:10px 10px 0 0 !important; border-bottom:none !important;
    margin-top:14px !important; padding:16px 16px 8px !important;
  }
  .home table:has(.lab-desc) tr:not(:has(.lab-desc)) td{
    border-radius:0 0 10px 10px !important; border-top:none !important;
    padding:0 16px 16px !important; color:#555 !important; font-size:14px !important; line-height:1.9 !important;
  }
  .home table:has(.lab-desc) tr:has(.lab-desc) td:nth-child(1){ order:1; }
  .home table:has(.lab-desc) tr:not(:has(.lab-desc)) td:nth-child(1){ order:2; }
  .home table:has(.lab-desc) tr:has(.lab-desc) td:nth-child(2){ order:3; }
  .home table:has(.lab-desc) tr:not(:has(.lab-desc)) td:nth-child(2){ order:4; }
  .home table:has(.lab-desc) tr:has(.lab-desc) td:nth-child(3){ order:5; }
  .home table:has(.lab-desc) tr:not(:has(.lab-desc)) td:nth-child(3){ order:6; }
  .home table:has(.lab-desc) h5{ margin:0 !important; font-size:15.5px !important; line-height:1.6 !important; }
  .home table:has(.lab-desc) .lab-desc{ display:inline !important; font-weight:700 !important; }
  .home table:has(.lab-desc){ counter-reset:eftech; }
  .home table:has(.lab-desc) td:has(.lab-desc){ counter-increment:eftech; }
  .home table:has(.lab-desc) td:has(.lab-desc) b > i,
  .home table:has(.lab-desc) td:has(.lab-desc) .fa-stack{ display:none !important; }
  .home table:has(.lab-desc) td:has(.lab-desc) b::before{
    content:"0" counter(eftech); display:inline; color:#de5454;
    font-size:11px; font-weight:700; letter-spacing:.14em; margin-right:8px;
  }

  /* --- SHEVAN Lab 記事一覧、SP余白を少し整える（標準カードはそのまま）--- */
  .home .p-cb--posts__list{ row-gap:14px; }
}

/* === SHEVAN: 「清潔は、男の自信になる。」バナーの上下余白・SP見切れ対策（2026-06） ===
   SP で __content(固定高240px) に内容(253px)が収まらずタイトルが見切れる。
   背景レイヤ .p-cb--banner__image-bg[style*="lab_list15"] で当該バナーを一意特定。
   SP限定で content の高さを確保（bg高312px以内）。下方向の余白も追加して次セクションと詰まらないように。
   ※PCは元々余裕があるため content高は変えず、下余白のみ付与。.home限定・他バナー不変。 */
.home .p-cb--banner:has(.p-cb--banner__image-bg[style*="lab_list15"]){ margin-bottom:80px !important; }
@media screen and (max-width:767px){
  .home .p-cb--banner:has(.p-cb--banner__image-bg[style*="lab_list15"]){ margin-top:48px !important; margin-bottom:48px !important; }
  .home .p-cb--banner:has(.p-cb--banner__image-bg[style*="lab_list15"]) .p-cb--banner__content{
    height:auto !important; min-height:300px !important; padding:28px 18px !important; box-sizing:border-box !important;
  }
}


/* =========================================================
   追加: /shop/(販売店一覧, page-id-19) SP横スクロール対策
   対象ページ限定。店舗一覧テーブルとGoogle Map iframeのみ。PC(>599px)不変。
   ========================================================= */
@media (max-width:599px){
  .page-id-19 .tcdce-body figure.wp-block-table.alignleft{float:none;width:100%!important;max-width:100%!important;margin-left:0;margin-right:0;}
  .page-id-19 .s_table{width:100%!important;max-width:100%!important;overflow-x:auto;}
  .page-id-19 .s_table table{width:100%!important;table-layout:fixed;}
  .page-id-19 .s_table th,.page-id-19 .s_table td{white-space:normal!important;overflow-wrap:anywhere;word-break:break-word;}
  .page-id-19 .s_table td:first-child,.page-id-19 .s_table th:first-child{width:5.5em;}
  .page-id-19 .tcdce-body iframe{width:100%!important;max-width:100%!important;}
}


/* ============================================================
   TOP SP 再調整 上書き(2026-06): TECHNOLOGY/EF-TECH/PRODUCT を
   クライアント共有向けに作り直し（正本 child style.css と同内容）。
   上の旧ルールを後勝ちで上書き。staging確認用の暫定。
   ============================================================ */
@media (max-width:767px){.home table:has(.rnum) td:first-child{padding:0 0 22px!important;text-align:center!important;}.home table:has(.rnum) td:first-child img{width:100%!important;max-width:100%!important;border-radius:12px!important;}.home table:has(.rnum) td:last-child{padding:0!important;}.home table:has(.rnum) td:last-child>div{display:flex!important;flex-direction:column!important;gap:16px!important;}.home table:has(.rnum) td:last-child>div>div{background:#fff!important;border:1px solid #ececec!important;border-left:4px solid #de5454!important;border-radius:12px!important;padding:20px 22px!important;box-shadow:0 2px 10px rgba(0,0,0,.05)!important;margin:0!important;}.home table:has(.rnum) .rnum{display:block!important;background:none!important;width:auto!important;height:auto!important;border-radius:0!important;color:#de5454!important;font-size:11px!important;font-weight:700!important;letter-spacing:.18em!important;line-height:1!important;margin:0 0 10px!important;}.home table:has(.rnum) .rnum::before{content:"0";}.home table:has(.rnum) td:last-child strong{display:block!important;font-size:17px!important;font-weight:700!important;color:#1a1a1a!important;line-height:1.5!important;margin:0 0 10px!important;}.home table:has(.rnum) td:last-child>div>div>span{display:block!important;font-size:14px!important;line-height:2.0!important;color:#555!important;}.home table:has(.lab-desc){display:flex!important;flex-direction:column!important;width:100%!important;counter-reset:eftech;}.home table:has(.lab-desc) thead,.home table:has(.lab-desc) tbody,.home table:has(.lab-desc) tr{display:contents!important;}.home table:has(.lab-desc) td{display:block!important;width:100%!important;box-sizing:border-box!important;background:#fff!important;border:1px solid #e8e8e8!important;margin:0!important;height:auto!important;}.home table:has(.lab-desc) tr:has(.lab-desc) td{border-radius:12px 12px 0 0!important;border-bottom:none!important;border-top:4px solid #de5454!important;padding:20px 22px 12px!important;margin-top:18px!important;}.home table:has(.lab-desc) tr:not(:has(.lab-desc)) td{border-radius:0 0 12px 12px!important;border-top:none!important;padding:0 22px 22px!important;color:#555!important;font-size:14px!important;line-height:2.05!important;}.home table:has(.lab-desc) tr:has(.lab-desc) td:nth-child(1){order:1;}.home table:has(.lab-desc) tr:not(:has(.lab-desc)) td:nth-child(1){order:2;}.home table:has(.lab-desc) tr:has(.lab-desc) td:nth-child(2){order:3;}.home table:has(.lab-desc) tr:not(:has(.lab-desc)) td:nth-child(2){order:4;}.home table:has(.lab-desc) tr:has(.lab-desc) td:nth-child(3){order:5;}.home table:has(.lab-desc) tr:not(:has(.lab-desc)) td:nth-child(3){order:6;}.home table:has(.lab-desc) h5{margin:0!important;font-size:16px!important;line-height:1.6!important;color:#1a1a1a!important;font-weight:700!important;}.home table:has(.lab-desc) .lab-desc{display:inline!important;font-weight:700!important;}.home table:has(.lab-desc) td:has(.lab-desc) b>i{display:none!important;}.home table:has(.lab-desc) td:has(.lab-desc){counter-increment:eftech;}.home table:has(.lab-desc) td:has(.lab-desc) b{display:block!important;margin:0 0 6px!important;}.home table:has(.lab-desc) td:has(.lab-desc) b::before{content:"0" counter(eftech);display:block;color:#de5454;font-size:11px;font-weight:700;letter-spacing:.18em;margin:0 0 6px;}}
@media (max-width:767px){.home .p-cb--product .p-archive03-item-info{padding:12px 2px 4px!important;}.home .p-cb--product .p-archive03-item-meta{margin:0 0 7px!important;}.home .p-cb--product .p-archive03-item-category{font-size:11px!important;}.home .p-cb--product .p-archive03-item-title{margin:0 0 7px!important;}.home .p-cb--product .p-archive03-item-title span{font-size:13px!important;line-height:1.55!important;display:-webkit-box!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important;overflow:hidden!important;min-height:2.95em!important;color:#222!important;}.home .p-cb--product .p-archive03-item-price{font-size:15px!important;font-weight:700!important;color:#1a1a1a!important;line-height:1.4!important;}.home .p-cb--product .p-archive03-item-price .woocommerce-price-suffix{font-size:11px!important;font-weight:400!important;color:#888!important;margin-left:2px;}.home .p-cb--product .p-archive03-item-thumbnail img{border-radius:8px!important;}}


/* === SHEVAN: 会社概要 /company/(page-id-21) SP表 横スクロール対策（2026-06） ===
   classic editorで挿入した会社情報テーブルがTCDの .s_table(nowrap)で横長化するため、
   対象ページ限定で折り返し・全幅化。PC(>599)・他ページ不変。 */
@media (max-width:599px){
  .page-id-21 .s_table{overflow-x:visible!important;overflow:visible!important;white-space:normal!important;width:100%!important;max-width:100%!important;}
  .page-id-21 .s_table table{width:100%!important;table-layout:fixed;white-space:normal!important;}
  .page-id-21 .s_table th,.page-id-21 .s_table td{white-space:normal!important;overflow-wrap:anywhere;word-break:break-word;}
  .page-id-21 .s_table th:first-child,.page-id-21 .s_table td:first-child{width:5.5em;}
}


/* === SHEVAN: 特商法 /tokusho/(page-id-887) SP表 横スクロール対策（2026-06） ===
   フッター必須ページ。本番から移植した特商法テーブルがTCDの .s_table(nowrap)で横長化するため、
   対象ページ限定で折り返し・全幅化（ラベル列は項目名が長いため7em）。PC(>599)・他ページ不変。 */
@media (max-width:599px){
  .page-id-887 .s_table{overflow-x:visible!important;overflow:visible!important;white-space:normal!important;width:100%!important;max-width:100%!important;}
  .page-id-887 .s_table table{width:100%!important;table-layout:fixed;white-space:normal!important;}
  .page-id-887 .s_table th,.page-id-887 .s_table td{white-space:normal!important;overflow-wrap:anywhere;word-break:break-word;}
  .page-id-887 .s_table th:first-child,.page-id-887 .s_table td:first-child{width:7em;}
}

/* =========================================================
   SHEVAN child SP fix v2
   - JS class based
   - Customizer追加CSSではなく child 外部CSS
   ========================================================= */

@media screen and (max-width: 767px) {
  html.shevan-spfix-v2,
  html.shevan-spfix-v2 body.home {
    overflow-x: hidden !important;
  }

  /* 01/02/03 cards */
  html.shevan-spfix-v2 body.home .shevan-v2-rnum-wrap,
  html.shevan-spfix-v2 body.home .shevan-v2-rnum-table,
  html.shevan-spfix-v2 body.home .shevan-v2-rnum-table tbody,
  html.shevan-spfix-v2 body.home .shevan-v2-rnum-row,
  html.shevan-spfix-v2 body.home .shevan-v2-rnum-cell {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    overflow: visible !important;
    white-space: normal !important;
  }

  html.shevan-spfix-v2 body.home .shevan-v2-rnum-cell {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }

  html.shevan-spfix-v2 body.home .shevan-v2-rnum-card {
    display: block !important;
    width: 100% !important;
    max-width: 320px !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 auto 18px !important;
    padding: 20px 22px 22px !important;
    box-sizing: border-box !important;
    border-radius: 10px !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
  }

  html.shevan-spfix-v2 body.home .shevan-v2-rnum,
  html.shevan-spfix-v2 body.home .shevan-v2-rnum-card strong,
  html.shevan-spfix-v2 body.home .shevan-v2-rnum-card span {
    white-space: normal !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
  }

  html.shevan-spfix-v2 body.home .shevan-v2-rnum {
    display: block !important;
    margin-bottom: 14px !important;
    text-align: center !important;
  }

  html.shevan-spfix-v2 body.home .shevan-v2-rnum-card strong {
    display: block !important;
    font-size: 17px !important;
    line-height: 1.55 !important;
    text-align: left !important;
  }

  html.shevan-spfix-v2 body.home .shevan-v2-rnum-card span {
    display: block !important;
    margin-top: 18px !important;
    font-size: 14px !important;
    line-height: 1.85 !important;
    text-align: left !important;
  }

  /* Lab / EF-TECH cards: remove empty dot, show direct JS index */
  html.shevan-spfix-v2 body.home .shevan-v2-hide-dot,
  html.shevan-spfix-v2 body.home .shevan-v2-lab-title > i,
  html.shevan-spfix-v2 body.home .shevan-v2-lab-title i,
  html.shevan-spfix-v2 body.home .shevan-v2-lab-cell::before,
  html.shevan-spfix-v2 body.home .shevan-v2-lab-title::after,
  html.shevan-spfix-v2 body.home .shevan-v2-lab-desc::before {
    display: none !important;
    content: none !important;
  }

  html.shevan-spfix-v2 body.home .shevan-v2-lab-table {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: visible !important;
    margin-bottom: 48px !important;
  }

  html.shevan-spfix-v2 body.home .shevan-v2-lab-table tbody,
  html.shevan-spfix-v2 body.home .shevan-v2-lab-table tr,
  html.shevan-spfix-v2 body.home .shevan-v2-lab-cell {
    box-sizing: border-box !important;
    max-width: 100% !important;
    white-space: normal !important;
    overflow: visible !important;
  }

  html.shevan-spfix-v2 body.home .shevan-v2-lab-title {
    display: block !important;
    position: relative !important;
    padding-top: 44px !important;
    white-space: normal !important;
    word-break: keep-all !important;
    overflow-wrap: break-word !important;
  }

  html.shevan-spfix-v2 body.home .shevan-v2-lab-title::before {
    content: attr(data-shevan-index) !important;
    display: inline-flex !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 30px !important;
    height: 30px !important;
    border-radius: 50% !important;
    background: #de5454 !important;
    color: #fff !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
  }

  /* Section spacing */
  html.shevan-spfix-v2 body.home .p-cb__item,
  html.shevan-spfix-v2 body.home .p-cb--image,
  html.shevan-spfix-v2 body.home .p-cb--wysiwyg {
    position: relative !important;
    clear: both !important;
    overflow: visible !important;
  }

  html.shevan-spfix-v2 body.home .p-cb--image + .p-cb--wysiwyg {
    margin-top: 48px !important;
  }

  /* Hero */
  html.shevan-spfix-v2 body.home .shevan-v2-hero-root,
  html.shevan-spfix-v2 body.home .shevan-v2-hero-wrap {
    min-height: 780px !important;
    height: 780px !important;
    overflow: hidden !important;
  }

  html.shevan-spfix-v2 body.home .shevan-v2-hero-banner {
    position: absolute !important;
    z-index: 3 !important;
    left: 50% !important;
    right: auto !important;
    bottom: 24px !important;
    top: auto !important;
    transform: translateX(-50%) !important;
    width: calc(100% - 56px) !important;
    max-width: 300px !important;
    margin: 0 !important;
  }

  html.shevan-spfix-v2 body.home .shevan-v2-hero-wrap .p-button,
  html.shevan-spfix-v2 body.home .shevan-v2-hero-wrap .link_button,
  html.shevan-spfix-v2 body.home .shevan-v2-hero-root .p-button,
  html.shevan-spfix-v2 body.home .shevan-v2-hero-root .link_button {
    position: relative !important;
    z-index: 4 !important;
    margin-bottom: 220px !important;
  }

  html.shevan-spfix-v2 body.home .shevan-v2-hero-root .catch,
  html.shevan-spfix-v2 body.home .shevan-v2-hero-root .desc,
  html.shevan-spfix-v2 body.home .shevan-v2-hero-wrap .catch,
  html.shevan-spfix-v2 body.home .shevan-v2-hero-wrap .desc {
    word-break: keep-all !important;
    overflow-wrap: break-word !important;
    white-space: normal !important;
  }

  /* Black CTA spacing */
  html.shevan-spfix-v2 body.home .shevan-v2-clean-cta {
    padding-bottom: 36px !important;
    margin-bottom: 0 !important;
  }

  html.shevan-spfix-v2 body.home .shevan-v2-clean-cta .p-cb__content,
  html.shevan-spfix-v2 body.home .shevan-v2-clean-cta .p-cb__desc,
  html.shevan-spfix-v2 body.home .shevan-v2-clean-cta .desc {
    padding-bottom: 32px !important;
    margin-bottom: 0 !important;
  }
}

/* =========================================================
   SHEVAN child SP exact fixes for dp_options contents_builder
   Source: dp_options[contents_builder][3][free_space]
   Customizer追加CSSではなく child 外部CSS
   ========================================================= */

@media screen and (max-width: 767px) {
  .shevan-feature-table,
  .shevan-feature-table tbody,
  .shevan-feature-table tr,
  .shevan-feature-table td {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    white-space: normal !important;
    overflow: visible !important;
  }

  .shevan-feature-image-cell {
    padding: 0 16px 22px !important;
  }

  .shevan-feature-image-cell img {
    display: block !important;
    width: 100% !important;
    max-width: 520px !important;
    height: auto !important;
    margin: 0 auto !important;
    border-radius: 12px !important;
  }

  .shevan-feature-text-cell {
    padding: 0 16px !important;
  }

  .shevan-feature-card-list {
    display: block !important;
    width: 100% !important;
    max-width: 520px !important;
    margin: 0 auto !important;
    box-sizing: border-box !important;
  }

  .shevan-feature-card {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    margin: 0 0 16px !important;
    padding: 22px 22px 24px !important;
    border-radius: 12px !important;
    background: #fff !important;
    border: 1px solid #ececec !important;
    border-left: 4px solid #de5454 !important;
    box-shadow: 0 2px 10px rgba(0,0,0,.05) !important;
  }

  .shevan-feature-card strong,
  .shevan-feature-card span {
    display: block !important;
    white-space: normal !important;
    word-break: keep-all !important;
    overflow-wrap: break-word !important;
  }

  .shevan-feature-card strong {
    font-size: 17px !important;
    line-height: 1.6 !important;
    color: #1a1a1a !important;
  }

  .shevan-feature-card span {
    margin-top: 12px !important;
    font-size: 14px !important;
    line-height: 1.9 !important;
    color: #555 !important;
  }

  .shevan-feature-card .rnum {
    display: block !important;
    margin: 0 0 10px !important;
    color: #de5454 !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: .18em !important;
    line-height: 1 !important;
  }

  .shevan-feature-card .rnum::before {
    content: "0";
  }
}

/* =========================================================
   SHEVAN child SP exact fixes
   Source:
   - Hero: functions/front-page/header-slider.php #js-index-header
   - CTA: functions/front-page/contents-builder.php .p-cb--banner
   Customizer追加CSSではなく child 外部CSS
   ========================================================= */

@media screen and (max-width: 767px) {

  /* Hero: exact renderer target */
  .home #js-index-header.p-fp-slider {
    height: 720px !important;
    min-height: 720px !important;
    max-height: none !important;
    overflow: hidden !important;
  }

  .home #js-index-header .p-fp-slider__content {
    height: 100% !important;
    align-items: flex-start !important;
    padding-top: 108px !important;
    padding-bottom: 190px !important;
    box-sizing: border-box !important;
  }

  .home #js-index-header .p-fp-slider__content-align--left,
  .home #js-index-header .p-fp-slider__content-align--center,
  .home #js-index-header .p-fp-slider__content-align--right {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 22px !important;
    padding-right: 22px !important;
    box-sizing: border-box !important;
    text-align: left !important;
  }

  .home #js-index-header .p-fp-slider__content-texts {
    width: 100% !important;
    max-width: 330px !important;
    margin: 0 auto 0 0 !important;
    box-sizing: border-box !important;
  }

  .home #js-index-header .p-fp-slider__headline {
    font-size: 25px !important;
    line-height: 1.48 !important;
    letter-spacing: .02em !important;
    margin: 0 0 18px !important;
    white-space: normal !important;
    word-break: keep-all !important;
    overflow-wrap: break-word !important;
  }

  .home #js-index-header .p-fp-slider__desc {
    font-size: 14px !important;
    line-height: 1.9 !important;
    margin: 0 !important;
    white-space: normal !important;
    word-break: keep-all !important;
    overflow-wrap: break-word !important;
  }

  .home #js-index-header .p-fp-slider__button {
    display: inline-flex !important;
    margin-top: 24px !important;
    margin-bottom: 0 !important;
    position: relative !important;
    z-index: 5 !important;
  }

  .home #js-index-header .p-fp-slider__images-item__bg,
  .home #js-index-header .p-fp-slider__alternate-bg {
    background-position: 58% center !important;
    background-size: cover !important;
  }

  /* Hero custom banner inside slider */
  .home #js-index-header .shevan-hero-banner,
  .home .p-fp-slider .shevan-hero-banner {
    position: absolute !important;
    left: 50% !important;
    right: auto !important;
    top: auto !important;
    bottom: 22px !important;
    transform: translateX(-50%) !important;
    width: calc(100% - 56px) !important;
    max-width: 300px !important;
    margin: 0 !important;
    z-index: 4 !important;
  }

  /* Black CTA: exact text span inserted into contents_builder[12][sub_title] */
  .home .p-cb--banner .shevan-clean-cta-copy,
  .home .p-cb--banner .shevan-clean-cta-lastline {
    display: block !important;
    white-space: normal !important;
    word-break: keep-all !important;
    overflow-wrap: break-word !important;
  }

  .home .p-cb--banner .shevan-clean-cta-copy {
    margin-bottom: 10px !important;
  }

  .home .p-cb--banner .shevan-clean-cta-lastline {
    padding-bottom: 34px !important;
    margin-bottom: 0 !important;
  }

  .home .p-cb--banner .p-cb__header-sub-title:has(.shevan-clean-cta-lastline) {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
  }

  .home .p-cb--banner__inner:has(.shevan-clean-cta-lastline) {
    padding-bottom: 34px !important;
  }
}

/* =========================================================
   SHEVAN child exact fix v2
   - Feature block: dp_options[contents_builder][3][free_space]
   - CTA spacing: contents_builder[12] banner
   - No JS / No Customizer追加CSS
   ========================================================= */

.shevan-feature-v2-block,
.shevan-feature-v2-block * {
  box-sizing: border-box;
}

.shevan-feature-v2-block {
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
}

.shevan-feature-v2-media img {
  display: block;
  width: 100%;
  height: auto;
}

.shevan-feature-v2-card {
  background: #fff;
  border: 1px solid #ececec;
  border-left: 4px solid #de5454;
  border-radius: 12px;
  box-shadow: 0 2px 10px rgba(0,0,0,.05);
}

.shevan-feature-v2-card strong,
.shevan-feature-v2-card p,
.shevan-feature-v2-title,
.shevan-feature-v2-num {
  display: block;
}

.shevan-feature-v2-num {
  color: #de5454;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .12em;
  line-height: 1;
}

.shevan-feature-v2-title {
  color: #1a1a1a;
  font-weight: 700;
}

.shevan-feature-v2-card p {
  color: #555;
  margin: 0;
}

@media screen and (min-width: 768px) {
  .shevan-feature-v2-block {
    display: flex;
    align-items: center;
    gap: 54px;
  }

  .shevan-feature-v2-media,
  .shevan-feature-v2-list {
    width: 50%;
  }

  .shevan-feature-v2-list {
    display: flex;
    flex-direction: column;
    gap: 14px;
  }

  .shevan-feature-v2-card {
    padding: 22px 26px 24px;
  }

  .shevan-feature-v2-num {
    margin-bottom: 8px;
  }

  .shevan-feature-v2-title {
    font-size: 20px;
    line-height: 1.55;
  }

  .shevan-feature-v2-card p {
    margin-top: 10px;
    font-size: 16px;
    line-height: 1.8;
  }
}

@media screen and (max-width: 767px) {
  .shevan-feature-v2-block {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 16px !important;
    margin: 0 auto !important;
  }

  .shevan-feature-v2-media {
    width: 100% !important;
    margin: 0 auto 22px !important;
  }

  .shevan-feature-v2-media img {
    width: 100% !important;
    max-width: 520px !important;
    margin: 0 auto !important;
    border-radius: 12px !important;
  }

  .shevan-feature-v2-list {
    width: 100% !important;
    max-width: 520px !important;
    margin: 0 auto !important;
  }

  .shevan-feature-v2-card {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 16px !important;
    padding: 22px 22px 24px !important;
  }

  .shevan-feature-v2-num {
    margin-bottom: 10px !important;
  }

  .shevan-feature-v2-title {
    font-size: 17px !important;
    line-height: 1.6 !important;
    word-break: keep-all !important;
    overflow-wrap: break-word !important;
  }

  .shevan-feature-v2-card p {
    margin-top: 12px !important;
    font-size: 14px !important;
    line-height: 1.9 !important;
    word-break: keep-all !important;
    overflow-wrap: break-word !important;
  }

  .home .p-cb--banner .shevan-clean-cta-copy,
  .home .p-cb--banner .shevan-clean-cta-lastline {
    display: block !important;
    white-space: normal !important;
    word-break: keep-all !important;
    overflow-wrap: break-word !important;
  }

  .home .p-cb--banner .shevan-clean-cta-copy {
    margin-bottom: 10px !important;
  }

  .home .p-cb--banner .shevan-clean-cta-lastline {
    margin-bottom: 34px !important;
    padding-bottom: 0 !important;
  }

  .home .p-cb--banner .p-cb__header-sub-title {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
  }

  .home .p-cb--banner .p-cb__header-sub-title + .p-cb--banner__button {
    margin-top: 34px !important;
  }

  .home .p-cb--banner__inner {
    padding-bottom: 36px !important;
  }
}

/* =========================================================
   SHEVAN feature block width tune v3
   Target only: shevan-feature-v2 block
   ========================================================= */

@media screen and (max-width: 767px) {
  .shevan-feature-v2-block {
    width: calc(100vw - 32px) !important;
    max-width: 560px !important;
    margin-left: 50% !important;
    margin-right: 0 !important;
    transform: translateX(-50%) !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .shevan-feature-v2-media,
  .shevan-feature-v2-list {
    width: 100% !important;
    max-width: 100% !important;
  }

  .shevan-feature-v2-media img {
    width: 100% !important;
    max-width: 100% !important;
  }

  .shevan-feature-v2-card {
    width: 100% !important;
    max-width: 100% !important;
    padding: 24px 26px 26px !important;
  }
}

/* =========================================================
   SHEVAN lab cards v1
   Target only: dp_options[contents_builder][7][free_space]
   No JS / No Customizer追加CSS
   ========================================================= */

.shevan-lab-v2-block,
.shevan-lab-v2-block * {
  box-sizing: border-box;
}

.shevan-lab-v2-block {
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
}

.shevan-lab-v2-grid {
  display: grid;
  gap: 18px;
}

.shevan-lab-v2-card {
  background: #fff;
  border: 1px solid #ececec;
  border-top: 4px solid #de5454;
  border-radius: 12px;
  box-shadow: 0 2px 10px rgba(0,0,0,.05);
}

.shevan-lab-v2-num {
  display: inline-flex;
  width: 30px;
  height: 30px;
  border-radius: 999px;
  align-items: center;
  justify-content: center;
  background: #de5454;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
}

.shevan-lab-v2-title {
  margin: 18px 0 0;
  color: #1a1a1a;
  font-weight: 700;
}

.shevan-lab-v2-lead {
  margin: 10px 0 0;
  color: #1a1a1a;
  font-weight: 700;
}

.shevan-lab-v2-body {
  margin-top: 18px;
  color: #555;
}

@media screen and (min-width: 768px) {
  .shevan-lab-v2-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .shevan-lab-v2-card {
    padding: 26px 26px 28px;
  }

  .shevan-lab-v2-title {
    font-size: 18px;
    line-height: 1.65;
  }

  .shevan-lab-v2-lead {
    font-size: 15px;
    line-height: 1.8;
  }

  .shevan-lab-v2-body {
    font-size: 14px;
    line-height: 2;
  }
}

@media screen and (max-width: 767px) {
  .shevan-lab-v2-block {
    width: calc(100vw - 32px) !important;
    max-width: 560px !important;
    margin-left: 50% !important;
    margin-right: 0 !important;
    transform: translateX(-50%) !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .shevan-lab-v2-grid {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  .shevan-lab-v2-card {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 18px !important;
    padding: 24px 24px 26px !important;
  }

  .shevan-lab-v2-title {
    font-size: 17px !important;
    line-height: 1.65 !important;
    word-break: keep-all !important;
    overflow-wrap: break-word !important;
  }

  .shevan-lab-v2-lead {
    font-size: 15px !important;
    line-height: 1.8 !important;
    word-break: keep-all !important;
    overflow-wrap: break-word !important;
  }

  .shevan-lab-v2-body {
    font-size: 14px !important;
    line-height: 2 !important;
    word-break: keep-all !important;
    overflow-wrap: break-word !important;
  }
}
