/*
Theme Name: OLTANA-002 Child
Version: 1.0.0
Template: oltana-002
Author: CROOVER inc.
Author URI: https://croover.co.jp
*/

@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@400;500;600&display=swap');

/* ===== 独自サブページ：見出し重なり修正 ===== */
.ol-subpage-header { display: none !important; }
/* サブページ共通：ヘッダー(約93px)直下〜最初の見出しの余白を詰める */
.ol-content-subpage { padding-top: clamp(104px, 8vw, 116px) !important; }
.ol-content-subpage .ol-section:first-of-type {
  margin-top: clamp(16px, 3vw, 36px) !important;
  margin-bottom: clamp(40px, 5vw, 64px) !important;
}

/* テーマ自動 ACCESS / CONTACT セクションの上下余白を詰める（全ページ） */
#olAccess .ol-section,
#olContact .ol-section {
  margin-top: clamp(48px, 6vw, 80px) !important;
  margin-bottom: clamp(48px, 6vw, 80px) !important;
}

/* ===== ヘッダーロゴを大きく ===== */
.ol-header__title-logo img {
  width: 340px !important;
  height: auto !important;
  max-width: none !important;
}

/* フッター自動ACCESSは、トップと事務所案内・アクセスのみ表示 */
#olAccess { display: none !important; }
body.home #olAccess,
body.page-id-33 #olAccess,
body.post-type-archive-column #olAccess { display: block !important; }

/* アクセスページのみ：フッターACCESSの電話番号・営業時間を非表示（事務所概要テーブルと重複のため。トップは表示維持） */
body.page-id-33 #olAccess #access3,
body.page-id-33 #olAccess .ol-access__hours {
  display: none !important;
}
/* コラム一覧のフッターACCESS：電話・営業時間を非表示（アクセスページと同じ表示に揃える） */
body.post-type-archive-column #access3,
body.post-type-archive-column .ol-access__hours { display: none !important; }

/* ===== 取扱業務ハブ＆子ページ：本文フォントを少し大きく ===== */
#olService .ol-service__card-desc { font-size: 15.5px !important; line-height: 2.0 !important; }
#olService .ol-service__list li { font-size: 14.5px !important; }

#olSvcDetail .ol-svc__feature-title { font-size: 19px !important; }
#olSvcDetail .ol-svc__feature-desc { font-size: 15.5px !important; line-height: 1.95 !important; }
#olSvcDetail .ol-svc__cta-desc { font-size: 15px !important; }

/* 取扱内容をタグ（チップ）表示に・横幅統一 */
#olSvcDetail .ol-svc__services {
  border: none !important; background: none !important; padding: 0 !important;
  max-width: 760px !important; margin: 0 auto 64px !important;
  display: flex !important; flex-wrap: wrap !important; justify-content: center !important;
  gap: 12px !important;
}
#olSvcDetail .ol-svc__services li {
  width: 160px !important;
  box-sizing: border-box !important;
  padding: 11px 10px !important;
  text-align: center !important;
  white-space: nowrap !important;
  border: 1px solid #B7C0CC !important;
  border-radius: 999px !important;
  background: #fff !important;
  font-size: 14.5px !important;
  line-height: 1.4 !important;
  color: #1F4E79 !important;
  letter-spacing: 0.03em !important;
}
#olSvcDetail .ol-svc__services li::before { display: none !important; }

/* 取扱業務 子ページ：こんなお悩みセクション */
#olSvcDetail .ol-svc__worry { max-width: 880px !important; margin: 0 auto 64px !important; background: #EEF1F5 !important; border-radius: 6px !important; padding: 34px 40px !important; list-style: none !important; display: flex !important; flex-wrap: wrap !important; gap: 16px 32px !important; }
#olSvcDetail .ol-svc__worry li { width: calc(50% - 16px) !important; box-sizing: border-box !important; position: relative !important; padding-left: 30px !important; font-size: 15.5px !important; line-height: 1.7 !important; color: #35344f !important; letter-spacing: 0.02em !important; }
#olSvcDetail .ol-svc__worry li::before { content: "✓" !important; position: absolute !important; left: 0 !important; top: 0.15em !important; width: 20px !important; height: 20px !important; line-height: 19px !important; text-align: center !important; color: #1F4E79 !important; font-size: 12px !important; font-weight: 700 !important; border: 1px solid #1F4E79 !important; border-radius: 50% !important; }
@media (max-width: 560px) { #olSvcDetail .ol-svc__worry { padding: 26px 22px !important; } #olSvcDetail .ol-svc__worry li { width: 100% !important; } }

/* 固定ページ最初のh2（.ol-heading-small.ol-heading-mini）が大画面で最大70pxまで肥大化するのを抑制。
   テーマ自動のACCESS/CONTACT見出し（最大45px前後）と同等サイズに揃える。全ページ共通。 */
.ol-heading-small.ol-heading-mini {
  font-size: clamp(35px, 1.27rem + 1.42vw, 45px) !important;
  font-weight: 400 !important;
  line-height: 1.65 !important;
  letter-spacing: 0.08em !important;
}
@media (max-width: 1023px) {
  .ol-heading-small.ol-heading-mini {
    font-size: clamp(27px, 1.48rem + 0.62vw, 30px) !important;
    font-weight: 500 !important;
    line-height: 1.7 !important;
  }
}

/* 取扱業務・各取扱分野・アクセス等の見出し（太ゴシックで潰れて見えるもの）を、
   明朝・中字でスタイリッシュに統一。各ページ内<style>の !important に勝つよう body を付与。全ページ共通。 */
body .ol-service__card-title,
body .ol-service__other-title,
body .ol-svc__subhead-ja,
body .ol-svc__feature-title,
body .ol-svc__cta-title,
body .ol-office__subhead-ja {
  font-family: "Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif !important;
  font-weight: 500 !important;
  letter-spacing: 0.06em !important;
}

/* ===== 記事本文（コラム・解決事例・お知らせ）共通：見出し h2/h3/h4 =====
   OLTANAはh1〜h6がリセットされるため本文見出しに装飾を付与。明朝・中字。
   h2=下シルバーボーダー / h3=紺の左バー / h4=シルバーの左バー。
   ・コラム/解決事例＝独自テンプレ（.column-single__content / .cases-single__content）
   ・お知らせ＝テーマ標準記事（.ol-article__content .tcdce-body）※テーマのグラデ背景・擬似ボーダーはリセット */

/* お知らせ（テーマ標準）の装飾リセット */
.ol-article__content .tcdce-body h2,
.ol-article__content .tcdce-body h3,
.ol-article__content .tcdce-body h4 { background: none !important; width: auto !important; }
.ol-article__content .tcdce-body :is(h2,h3,h4)::before,
.ol-article__content .tcdce-body :is(h2,h3,h4)::after { display: none !important; content: none !important; }

/* h2＝下シルバーボーダー */
.column-single__content h2,
.cases-single__content h2,
.ol-article__content .tcdce-body h2 {
  font-family: "Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif !important;
  font-size: clamp(21px, 1.2rem + 0.6vw, 27px) !important;
  color: #163A5C !important; font-weight: 500 !important;
  letter-spacing: 0.06em !important; line-height: 1.6 !important;
  margin: 2.4em 0 1.1em !important; padding: 0 0 14px !important;
  border: none !important; border-bottom: 1px solid #B7C0CC !important;
}
/* h3＝紺の左バー */
.column-single__content h3,
.cases-single__content h3,
.ol-article__content .tcdce-body h3 {
  font-family: "Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif !important;
  font-size: clamp(18px, 1.05rem + 0.4vw, 21px) !important;
  color: #1F4E79 !important; font-weight: 500 !important;
  letter-spacing: 0.05em !important; line-height: 1.6 !important;
  margin: 2em 0 0.8em !important; padding: 0 0 0 14px !important;
  border: none !important; border-left: 3px solid #1F4E79 !important;
}
/* h4＝シルバーの左バー */
.column-single__content h4,
.cases-single__content h4,
.ol-article__content .tcdce-body h4 {
  font-family: "Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif !important;
  font-size: 16.5px !important;
  color: #1F4E79 !important; font-weight: 500 !important;
  letter-spacing: 0.04em !important; line-height: 1.6 !important;
  margin: 1.7em 0 0.6em !important; padding: 0 0 0 12px !important;
  border: none !important; border-left: 3px solid #B7C0CC !important;
}
/* 本文先頭の見出しは上余白をリセット */
.column-single__content :is(h2,h3,h4):first-child,
.cases-single__content :is(h2,h3,h4):first-child,
.ol-article__content .tcdce-body :is(h2,h3,h4):first-child { margin-top: 0 !important; }

/* ===== ハンバーガーメニュー：縦1列・左揃え・余白ゆとり ===== */
.ol-header__nav .ol-header__nav-list {
  flex-direction: column !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  justify-content: flex-start !important;
  align-content: flex-start !important;
  row-gap: 0 !important;
  max-height: calc(100svh - 48px) !important;
  margin: 20px 0 0 0 !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
}
.ol-header__nav .ol-header__nav-list li,
.ol-header__nav .ol-header__nav-list .sub-menu li { margin: 0 !important; }
.ol-header__nav .ol-header__nav-list .ol-header__nav-anchor,
.ol-header__nav .ol-header__nav-list a {
  text-align: left !important;
  justify-content: flex-start !important;
  padding-top: 8px !important;               /* 3→8 余白ゆとり */
  padding-bottom: 8px !important;
  line-height: 1.4 !important;               /* 1.25→1.4 */
  font-size: 13.5px !important;              /* 据え置き */
}
.ol-header__nav .ol-header__nav-list .sub-menu a,
.ol-header__nav .ol-header__nav-list ul ul a {
  padding-top: 6px !important;               /* 2→6 */
  padding-bottom: 6px !important;
  font-size: 12.5px !important;              /* 据え置き */
}
/* ハンバーガー：ナビ文字（span）のサイズを画面の高さに追従。
   背の高い大画面は元のサイズ感（最大22px）、背の低い画面は自動で縮んで縦に収まる */
.ol-header__nav .ol-header__nav-list .ol-header__nav-anchor-title {
  font-size: clamp(14px, 2.2vh, 22px) !important;
  line-height: 1.4 !important;
  letter-spacing: 0.08em !important;
}

/* ===== トップ：ヒーロー上の白文字・アイコン・ロゴに薄い影で視認性UP（トップのみ） ===== */
/* キャッチコピー（メイン・サブ） */
body.home .ol-firstview__title-maincopy,
body.home .ol-firstview__title-subcopy {
  text-shadow: 0 2px 10px rgba(0,0,0,0.40), 0 0 18px rgba(0,0,0,0.20) !important;
}
/* 電話番号・営業時間・CONTACTボタン文字 */
body.home .ol-header__call-number,
body.home .ol-header__call-text,
body.home .ol-header__cvbutton {
  text-shadow: 0 1px 4px rgba(0,0,0,0.45), 0 0 8px rgba(0,0,0,0.25) !important;
}
/* ハンバーガーの三本線・右側のTEL/CONTACTアイコン */
body.home .ol-hamburger__menu-icon-inner,
body.home .ol-header__nav-icon,
body.home .ol-header__cvbutton .ol-button-icon {
  filter: drop-shadow(0 1px 3px rgba(0,0,0,0.40)) !important;
}
/* 事務所ロゴ：暗いヒーローでも沈まないよう白いグロー（トップのみ） */
body.home .ol-header__logo img,
body.home .ol-header__logo-image {
  filter: drop-shadow(0 0 4px rgba(255,255,255,0.9)) drop-shadow(0 0 10px rgba(255,255,255,0.7)) !important;
}

/* ===== 記事本文：strong / b を太字に（テーマのリセット対策・全ページ） ===== */
strong, b { font-weight: 700 !important; }

/* ===== 記事内カスタムCTAボタン（tcdce）をサイトのトンマナ（紺）に ===== */
.tcdce-button-wrapper { text-align: center !important; margin: 30px 0 40px !important; }

a.tcdce-button.custom_button {
  --tcdce-button-background: #1F4E79 !important;
  display: inline-block !important;
  background: #1F4E79 !important;
  background-image: none !important;
  color: #fff !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  letter-spacing: 0.12em !important;
  text-decoration: none !important;
  padding: 16px 44px !important;
  border-radius: 4px !important;
  border: 1px solid #1F4E79 !important;
  box-shadow: 0 4px 14px rgba(31,78,121,0.18) !important;
  transition: background .3s ease, transform .3s ease, box-shadow .3s ease !important;
}

a.tcdce-button.custom_button::before {
  background: #1F4E79 !important;
  background-image: none !important;
}

a.tcdce-button.custom_button::after {
  content: none !important;
  display: none !important;
}

a.tcdce-button.custom_button:hover,
a.tcdce-button.custom_button:hover::before {
  background: #163A5C !important;
}
a.tcdce-button.custom_button:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 22px rgba(31,78,121,0.28) !important;
}

/* iOS Safari 文字自動拡大の無効化（クラルスは未導入） */
html { -webkit-text-size-adjust: 100% !important; text-size-adjust: 100% !important; }

/* 管理バー表示時のヘッダー/ストリップ補正（クラスは未導入だったので新規） */
.admin-bar .ol-header__inner { top: 32px !important; }
@media (max-width: 782px) { .admin-bar .ol-header__inner { top: 46px !important; } }

/* ハンバーガー：取扱業務のサブメニューを常時表示（PC/SP共通）。
   ※visibilityは“指定しない”のが肝。閉じた時は親パネルのvisibility:hiddenを継承して隠れる＝SPの誤タップ横取りを防ぐ */
.ol-header__nav .menu-item-has-children > .sub-menu {
  max-height: none !important;
  overflow: visible !important;
  opacity: 1 !important;
}
.ol-header__nav .menu-item-has-children > .sub-menu li,
.ol-header__nav .menu-item-has-children > .sub-menu a {
  opacity: 1 !important;
  transform: none !important;
}

@media (max-width: 767px) {
  .ol-header__title-logo img { width: 260px !important; }
}
/* お知らせ記事（SP）：meta（日付）と本文の重なりを解消 */
@media (max-width: 540px) {
  .ol-article__inner { padding-top: 24px !important; }
  .ol-article__content .tcdce-body > p:first-child { margin-top: 0 !important; }
}
/* 下層ページ（PC）：フッター© が右の固定TEL/CONTACT帯にくっつくので、すき間を確保 */
@media (min-width: 1081px) {
  body:not(.home) .ol-footer__copyright { margin-right: 28px !important; }
}

/* スマホ：MENU（サイトマップ）を中央＋2段組（iOS Safariのcolumn-count余白バグ回避） */
@media (max-width: 767px) {
  .site-footer-custom__sitemap { width: 100% !important; text-align: center !important; }
  .site-footer-custom__menu {
    display: block !important;          /* inline-block をやめる（これがSafariの余白の原因） */
    column-count: 2 !important;
    column-gap: 24px !important;
    max-width: 340px !important;        /* 2段分の幅 */
    margin-left: auto !important;       /* 中央寄せ */
    margin-right: auto !important;
    text-align: left !important;
  }
}

/* トップ：テーマ生成のセクション見出し(h2)をSPで縮小（SERVICE/CASES/banner等すべて） */
@media (max-width: 767px) {
  .home h2.ol-heading-large {
    font-size: clamp(26px, 7vw, 30px) !important;
    line-height: 1.5 !important;
  }
}