@charset "UTF-8";
/*
 * ======================================
 * 追加クラス一覧（共通SCSS取り込み検討用）
 * ======================================
 *
 * .mon-container / .mon-container-narrow / .mon-container-form - 1120px / 960px / 820px 幅コンテナ（左右余白はセクション側）
 * .mon-section / .mon-section--sub / --cta           - clamp() による可変セクション余白
 * .mon-stack-lg / .mon-stack-md                     - 縦積み＋clamp() gap
 * .mon-heading / __ja / --lg / --center             - 英字(Tenor)大＋短ライン＋日本語小 の2段見出し
 * .mon-lead / .mon-text / .mon-label-en / .mon-title-md / .mon-more - テキスト系パーツ
 * .mon-btn / --outline / --dark / __arrow           - 角なし・左右振り分けの横長ボタン
 * .mon-header / .mon-nav-toggle / .mon-sp-nav       - sticky ヘッダー・枠付きハンバーガー・白ドロップダウン型SPナビ
 * .mon-page-hero                                   - 左寄せ大英字の下層ヒーロー
 * .mon-mv                                          - トップMV（全面写真＋グラデ暗幕＋左下コピー）
 * .mon-greeting / .mon-philosophy / .mon-num-list   - TOP ごあいさつ・経営理念
 * .mon-feature-link / .mon-sub-links               - TOP サービスメニュー導線
 * .mon-message / .mon-profile / .mon-map           - 会社概要
 * .mon-consults / .mon-categories / .mon-lineup / .mon-individual - 保険相談
 * .mon-partners                                    - 取り扱い保険
 * .mon-media / .mon-dash-list / .mon-merits        - ハラスメント相談
 * .mon-tel-box / .mon-form / .mon-acc              - お問い合わせ
 * .mon-cta / .mon-footer                           - 共通CTA・フッター
 *
 * ======================================
 * 共通SCSSに不足していたもの
 * ======================================
 *
 * 値の粒度不足：
 *  - section / gap / font-size が固定値のみで clamp() による可変値が無い
 *  - container の幅が 1200 / 900 のみ（1120 / 960 / 820 が無い）
 *  - .marker の開始位置(70%)・色が固定（62% / #c9eef1 にしたい）
 * 構造不足：
 *  - 「英字大＋（短ライン＋日本語小）」の左寄せ見出し（両脇ライン中央版含む）
 *  - 1px gap で罫線を表現するリンクグリッド（sub-links）
 *  - 写真＋オフセット色面フレーム（代表写真）
 *  - dt固定幅の定義リスト型会社概要（table-basic は th 背景付きのみ）
 *  - <details>不要のアコーディオンで、枠付き＋/−アイコンの見た目
 * 状態不足：
 *  - header__nav-item--current の下線幅が 20px 固定（全幅にしたい）
 *  - nav のPC表示ブレークポイント（1100px固定。899px で切り替えたい）
 * 装飾パターン不足：
 *  - 画像の左上に付く番号バッジ（01〜）
 *  - 「— 」ダッシュ付きリスト
 *
 */

:root {
  --mon-main: #57bfc8;
  --mon-main-dark: #1e6f77;
  --mon-main-pale: #eef8f9;
  --mon-marker: #c9eef1;
  --mon-ink: #23302f;
  --mon-text: #3a4747;
  --mon-sub: #4d5a5b;
  --mon-line: #dcdcdc;
  --mon-line-soft: #e6e8e8;
  --mon-gray: #f3f4f4;
  --mon-f-en: "Tenor Sans", sans-serif;
  --mon-pad-x: clamp(20px, 4vw, 48px);
  --mon-header-h: 84px;
}

body { font-size: 16px; color: var(--mon-ink); }
a:hover { opacity: 1; }

/* ---------- Layout ---------- */
[id] { scroll-margin-top: calc(var(--mon-header-h) + 16px); }
.mon-container,
.mon-container-narrow,
.mon-container-form { margin: 0 auto; padding-left: 0; padding-right: 0; }
.mon-container { max-width: 1120px; }
.mon-container-narrow { max-width: 960px; }
.mon-container-form { max-width: 820px; }
.mon-section { padding: clamp(88px, 11vw, 150px) var(--mon-pad-x); }
.mon-section--sub { padding: clamp(88px, 11vw, 140px) var(--mon-pad-x); }
.mon-section--cta { padding: clamp(64px, 8vw, 100px) var(--mon-pad-x); }
.mon-stack-lg { display: flex; flex-direction: column; gap: clamp(48px, 6vw, 80px); }
.mon-stack-md { display: flex; flex-direction: column; gap: clamp(40px, 5vw, 64px); }

/* ---------- Heading ---------- */
.mon-heading { display: flex; flex-direction: column; gap: 14px; }
.mon-heading .heading__en { font-family: var(--mon-f-en); font-size: clamp(32px, 4vw, 48px); font-weight: 400; letter-spacing: .08em; color: var(--mon-main); line-height: 1.1; }
.mon-heading--lg .heading__en { font-size: clamp(36px, 4.6vw, 58px); }
.mon-heading__ja { display: flex; align-items: center; gap: 14px; }
.mon-heading__ja::before,
.mon-heading__ja::after { content: ""; display: block; width: 32px; height: 1px; background: var(--mon-main); flex-shrink: 0; }
.mon-heading__ja::after { display: none; }
.mon-heading .heading__ja { margin: 0; font-size: 15px; font-weight: 500; letter-spacing: .14em; line-height: 1.7; color: var(--mon-ink); }
.mon-heading--center { align-items: center; text-align: center; }
.mon-heading--center .mon-heading__ja::before,
.mon-heading--center .mon-heading__ja::after { display: block; width: 24px; }

/* ---------- Text parts ---------- */
.mon-lead { margin-top: 16px; font-size: 15px; line-height: 2; color: var(--mon-text); max-width: 640px; }
.mon-lead--center { margin: 12px auto 0; font-size: 14px; text-align: center; }
.mon-text { font-size: 15px; line-height: 2.1; color: var(--mon-text); }
.mon-label-en { font-family: var(--mon-f-en); font-size: 12px; letter-spacing: .24em; color: var(--mon-main-dark); }
.mon-title-md { font-size: clamp(22px, 2.6vw, 30px); font-weight: 700; letter-spacing: .08em; line-height: 1.6; }
.mon-title-md .marker { background: linear-gradient(transparent 62%, var(--mon-marker) 62%); }
.mon-center-head { display: flex; flex-direction: column; align-items: center; gap: 14px; text-align: center; }
.mon-text-dark { color: var(--mon-main-dark); }

.mon-more { display: flex; align-items: center; gap: 10px; font-family: var(--mon-f-en); font-size: 11px; letter-spacing: .2em; color: var(--mon-ink); }
.mon-more::after { content: ""; display: block; width: 32px; height: 1px; background: var(--mon-main); transition: width .3s; }
.mon-more--white { color: #fff; font-size: 13px; gap: 14px; margin-top: 8px; }
.mon-more--white::after { width: 48px; background: #fff; }

/* ---------- Button ---------- */
.mon-btn { justify-content: space-between; gap: 32px; width: auto; max-width: none; min-width: min(100%, 320px); padding: 22px 32px; border-width: 1px; border-radius: 0; font-size: 15px; font-weight: 500; letter-spacing: .1em; transition: background .3s, color .3s, border-color .3s; }
.mon-btn__arrow { font-family: var(--mon-f-en); font-size: 16px; }
.mon-btn--outline { border-color: var(--mon-main); background: #fff; color: var(--mon-main-dark); }
.mon-btn--outline:hover { background: var(--mon-main); color: #fff; }
.mon-btn--dark { border-color: var(--mon-ink); background: var(--mon-ink); color: #fff; letter-spacing: .14em; }
.mon-btn--dark:hover { background: var(--mon-main); border-color: var(--mon-main); color: #fff; opacity: 1; }
@media (max-width: 639px) { .mon-btn { max-width: none; font-size: 15px; } }

/* ---------- Header ---------- */
.mon-header { position: sticky; top: 0; z-index: 100; background: rgba(255, 255, 255, .97); border-bottom: 1px solid var(--mon-line-soft); box-shadow: none; }
.mon-header .header__inner { max-width: none; height: var(--mon-header-h); padding: 0 clamp(16px, 2vw, 28px); gap: 24px; }
.mon-header .header__logo { line-height: 0; }
.mon-header .header__logo img { height: clamp(36px, 4vw, 48px); }
.mon-header .header__nav { gap: clamp(16px, 2.2vw, 34px); margin: 0; }
.mon-header .header__nav-item a { gap: 4px; padding: 6px 0 7px; color: var(--mon-ink); }
.mon-header .header__nav-item a::after { height: 1px; background: var(--mon-main); }
.mon-header .header__nav-item a:hover::after,
.mon-header .header__nav-item--current a::after { width: 100%; left: 0; transform: none; }
.mon-header .header__nav-en { font-size: 10px; font-weight: 400; letter-spacing: .18em; color: var(--mon-main-dark); line-height: 1.2; }
.mon-header .header__nav-ja { margin-top: 0; font-size: 13px; font-weight: 500; letter-spacing: .06em; line-height: 1.4; color: var(--mon-ink); }
@media (min-width: 900px) and (max-width: 1100px) {
  .mon-header .header__nav { display: flex; }
  .mon-nav-toggle { display: none; }
}
@media (max-width: 1100px) {
  .mon-header .header__inner { height: var(--mon-header-h); padding: 0 16px; }
}
@media (max-width: 639px) {
  .mon-header .header__logo img { height: 36px; }
}

.mon-nav-toggle { top: 18px; right: 16px; width: 48px; height: 48px; border: 1px solid var(--mon-line); background: #fff; border-radius: 0; backdrop-filter: none; }
.mon-nav-toggle .nav-toggle__line { width: 20px; height: 1px; background: var(--mon-ink); }
.mon-nav-toggle .nav-toggle__line:nth-child(1) { top: 16px; }
.mon-nav-toggle .nav-toggle__line:nth-child(2) { top: 23px; }
.mon-nav-toggle .nav-toggle__line:nth-child(3) { top: 30px; }
.mon-nav-toggle.is-active .nav-toggle__line:nth-child(1),
.mon-nav-toggle.is-active .nav-toggle__line:nth-child(3) { top: 23px; }

.mon-sp-nav { top: var(--mon-header-h); bottom: auto; max-height: calc(100vh - var(--mon-header-h)); background: #fff; border-top: 1px solid var(--mon-line-soft); padding: 8px 20px 20px; justify-content: flex-start; align-items: stretch; box-shadow: 0 8px 16px rgba(0, 0, 0, .06); }
.mon-sp-nav .sp-nav__list { max-width: none; text-align: left; }
.mon-sp-nav .sp-nav__item,
.mon-sp-nav .sp-nav__item:first-child { border-top: 0; border-bottom: 1px solid #eceeee; }
.mon-sp-nav .sp-nav__link { padding: 16px 4px; color: var(--mon-ink); font-size: 15px; font-weight: 500; }
.mon-sp-nav .sp-nav__link::after { display: none; }
.mon-sp-nav .sp-nav__link:hover { background: var(--mon-main-pale); }
.mon-sp-nav .sp-nav__en { margin: 0; padding: 0; font-size: 11px; letter-spacing: .18em; color: var(--mon-main-dark); opacity: 1; }
.mon-sp-nav .sp-nav__bottom { max-width: none; margin-top: 20px; }
.mon-sp-nav__tel { font-family: var(--mon-f-en); font-size: 15px; letter-spacing: .14em; color: var(--mon-main-dark); }

/* ---------- Page hero ---------- */
.mon-page-hero.page-hero--solid { text-align: left; padding: clamp(72px, 9vw, 120px) var(--mon-pad-x) clamp(56px, 7vw, 88px); }
.mon-page-hero .mon-container { width: 100%; display: flex; flex-direction: column; gap: 12px; }
.mon-page-hero .heading__en { margin: 0; font-family: var(--mon-f-en); font-size: clamp(40px, 6vw, 76px); font-weight: 400; letter-spacing: .06em; color: var(--mon-main); line-height: 1; }
.mon-page-hero .heading__ja { font-size: clamp(18px, 2vw, 22px); font-weight: 700; letter-spacing: .14em; line-height: 1.7; color: var(--mon-ink); }
.mon-page-hero .breadcrumb { margin-top: 18px; padding: 0; font-size: 12px; letter-spacing: .08em; color: var(--mon-sub); }
.mon-page-hero .breadcrumb__item:not(:last-child)::after { content: "／"; margin: 0 .3em; color: var(--mon-sub); }
.mon-page-hero .breadcrumb__link { color: var(--mon-sub); }
.mon-page-hero .breadcrumb__link:hover { color: var(--mon-main-dark); text-decoration: none; }
.mon-page-hero .breadcrumb__current { color: var(--mon-sub); }

/* ---------- MV ---------- */
.mon-mv { position: relative; overflow: hidden; background: #2f3b3c; }
.mon-mv #slideshow { height: calc(100vh - var(--mon-header-h)); min-height: 560px; max-height: 900px; }
.mon-mv .swiper-slide,
.mon-mv .main_slider__inner { width: 100%; height: 100%; }
.mon-mv .main_slider__inner img { width: 100%; height: 100%; object-fit: cover; }
.mon-mv__overlay { position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(20, 30, 31, .25) 0%, rgba(20, 30, 31, .45) 45%, rgba(20, 30, 31, .72) 100%); pointer-events: none; }
.mon-mv__body { --mv-pad: clamp(28px, 6vw, 96px); position: absolute; inset: 0; z-index: 2; display: flex; align-items: flex-end; justify-content: flex-start; padding: var(--mv-pad); pointer-events: none; }
.mon-mv__copy { display: flex; flex-direction: column; gap: 22px; color: #fff; }
.mon-mv__est { display: inline-flex; align-items: center; gap: 16px; font-family: var(--mon-f-en); font-size: clamp(18px, 2.2vw, 30px); letter-spacing: .2em; color: #fff; line-height: 1.4; }
.mon-mv__est::after { content: ""; display: block; width: clamp(32px, 4vw, 56px); height: 1px; background: #a9e3e8; }
.mon-mv__en { font-family: var(--mon-f-en); font-size: clamp(13px, 1.3vw, 16px); letter-spacing: .32em; color: #a9e3e8; line-height: 1.7; }
.mon-mv__title { font-size: clamp(20px, 4.4vw, 56px); font-weight: 700; line-height: 1.45; letter-spacing: .06em; }
.mon-mv__title span { white-space: nowrap; }
.mon-mv__lead { font-size: clamp(8px, calc((100vw - 2 * var(--mv-pad)) / 39), 16px); line-height: 2; white-space: nowrap; }
.mon-mv__since { position: absolute; left: var(--mon-pad-x); bottom: 28px; z-index: 2; font-family: var(--mon-f-en); font-size: 11px; letter-spacing: .3em; color: rgba(255, 255, 255, .85); line-height: 1.7; }

@media (max-width: 639px) { .mon-mv__since { bottom: 12px; font-size: 10px; letter-spacing: .2em; } }
@media (max-width: 699px) {
  .mon-mv #slideshow { height: calc(100vh - var(--mon-header-h)); height: calc(100svh - var(--mon-header-h)); min-height: 0; max-height: none; }
  .mon-mv__body { --mv-pad: 20px; padding-bottom: 40px; }
  .mon-mv__copy { gap: 16px; }
  .mon-mv__lead { font-size: min(calc((100vw - 40px) / 25), 16px); line-height: 1.8; }
}

/* ---------- TOP: Greeting ---------- */
.mon-greeting { display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(40px, 5vw, 80px); align-items: start; }
@media (min-width: 1100px) { .mon-greeting { grid-template-columns: minmax(0, 1fr) 540px; } }
.mon-greeting__catch { margin-top: 42px; font-size: clamp(20px, 2.2vw, 26px); font-weight: 700; line-height: 1.8; letter-spacing: .06em; }
.mon-greeting__body { font-size: 15px; line-height: 2.2; letter-spacing: .04em; color: var(--mon-text); }
.mon-greeting__body.sentence p.mon-greeting__sign { margin-top: 32px; font-size: 13px; letter-spacing: .1em; color: var(--mon-main-dark); text-align: right; }

/* ---------- TOP: Philosophy ---------- */
.mon-philosophy { display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(24px, 3vw, 40px); }
.mon-philosophy__box { background: #fff; padding: clamp(32px, 4vw, 56px); display: flex; flex-direction: column; gap: 28px; }
.mon-philosophy__head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; border-bottom: 1px solid var(--mon-line); padding-bottom: 18px; }
.mon-philosophy__head h3 { font-size: 19px; font-weight: 700; letter-spacing: .1em; line-height: 1.7; }
.mon-philosophy__head span { font-family: var(--mon-f-en); font-size: 11px; letter-spacing: .24em; color: var(--mon-main-dark); }
.mon-num-list { display: flex; flex-direction: column; gap: 16px; }
.mon-num-list--wide { gap: 22px; }
.mon-num-list li { display: grid; grid-template-columns: 40px 1fr; gap: 8px; align-items: baseline; font-size: 15px; line-height: 1.9; letter-spacing: .04em; }
.mon-num-list--wide li { line-height: 2; }
.mon-num-list__no { font-family: var(--mon-f-en); font-size: 20px; color: var(--mon-main); }

/* ---------- TOP: Menu ---------- */
.mon-feature-link { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); background: var(--mon-main); color: #fff; }
.mon-feature-link:hover { color: #fff; opacity: .94; }
.mon-feature-link__img { position: relative; min-height: 300px; overflow: hidden; background: #3f4c4d; }
.mon-feature-link__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 60% 30%; transition: transform .6s ease; }
.mon-feature-link:hover .mon-feature-link__img img { transform: scale(1.03); }
.mon-feature-link__body { padding: clamp(32px, 4vw, 56px); display: flex; flex-direction: column; justify-content: center; gap: 18px; }
.mon-feature-link__en { font-family: var(--mon-f-en); font-size: 12px; letter-spacing: .28em; }
.mon-feature-link__title { font-size: clamp(22px, 2.4vw, 28px); font-weight: 700; letter-spacing: .08em; line-height: 1.7; }
.mon-feature-link__text { font-size: 14px; line-height: 2; }

.mon-sub-links { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--mon-line); border: 1px solid var(--mon-line); }
.mon-sub-links__item { background: #fff; padding: 36px 28px; display: flex; flex-direction: column; gap: 14px; color: var(--mon-ink); min-height: 200px; line-height: 1.7; }
.mon-sub-links__item:hover { background: var(--mon-main-pale); color: var(--mon-ink); }
.mon-sub-links__item:hover .mon-more::after { width: 44px; }
.mon-sub-links__en { font-family: var(--mon-f-en); font-size: 12px; letter-spacing: .24em; color: var(--mon-main-dark); }
.mon-sub-links__ja { font-size: 18px; font-weight: 700; letter-spacing: .08em; }
.mon-sub-links__desc { font-size: 13px; line-height: 1.9; color: var(--mon-sub); flex: 1; }
@media (max-width: 699px) { .mon-sub-links { grid-template-columns: 1fr; } }

/* ---------- Company ---------- */
.mon-message { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: clamp(40px, 6vw, 88px); align-items: start; }
.mon-message__body { font-size: 15px; line-height: 2.2; letter-spacing: .04em; color: var(--mon-text); }
.mon-message__body.sentence p + p { margin-top: 22px; }
.mon-message__body.sentence p.mon-message__sign { margin-top: 38px; display: flex; align-items: baseline; justify-content: flex-end; gap: 16px; color: var(--mon-ink); font-size: 13px; letter-spacing: .1em; }
.mon-message__name { font-size: 22px; font-weight: 500; letter-spacing: .2em; }
.mon-message__sign-img { display: block; width: 200px; max-width: 100%; height: auto; }
@media (max-width: 599px) { .mon-message__sign-img { width: 160px; } }
.mon-message__photo { display: flex; flex-direction: column; gap: 12px; }
.mon-message__frame { position: relative; }
.mon-message__frame::before { content: ""; position: absolute; top: 20px; left: 20px; right: -20px; bottom: -20px; background: #e3f4f6; }
.mon-message__frame img { position: relative; display: block; width: 100%; height: auto; }
.mon-message__caption { margin-top: 20px; font-family: var(--mon-f-en); font-size: 11px; letter-spacing: .24em; color: var(--mon-main-dark); }
@media (max-width: 599px) { .mon-message__frame::before { top: 10px; left: 10px; right: -10px; bottom: -10px; } }
@media (min-width: 1200px) { .mon-message { grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); } }
.mon-message__photo { justify-self: center; width: 100%; max-width: 340px; }

.mon-profile { background: #fff; padding: clamp(8px, 2vw, 24px) clamp(20px, 4vw, 56px); }
.mon-profile__row { display: grid; grid-template-columns: 200px 1fr; gap: 6px 24px; padding: 24px 0; border-bottom: 1px solid var(--mon-line); }
.mon-profile__row:last-child { border-bottom: 0; }
.mon-profile dt { font-size: 14px; font-weight: 700; letter-spacing: .08em; color: var(--mon-main-dark); line-height: 1.7; }
.mon-profile dd { font-size: 15px; line-height: 1.9; letter-spacing: .04em; }
@media (max-width: 599px) { .mon-profile__row { grid-template-columns: 1fr; } }

.mon-access__address { margin-top: 20px; font-size: 15px; line-height: 1.9; letter-spacing: .04em; }
.mon-map.embed { aspect-ratio: 16 / 7; min-height: 300px; border-radius: 0; background: var(--mon-line); }
.mon-map iframe { filter: grayscale(.4); }

/* ---------- Service ---------- */
.mon-consults { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); gap: clamp(20px, 2.4vw, 32px); }
.mon-consult { display: flex; flex-direction: column; gap: 18px; }
.mon-consult__img { position: relative; aspect-ratio: 4 / 3; background: #e7eaea; overflow: hidden; }
.mon-consult__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.mon-consult__no { position: absolute; top: 0; left: 0; background: var(--mon-main); color: #fff; font-family: var(--mon-f-en); font-size: 13px; letter-spacing: .1em; line-height: 1.7; padding: 8px 14px; }
.mon-consult__en { font-family: var(--mon-f-en); font-size: 11px; letter-spacing: .22em; color: var(--mon-main-dark); }
.mon-consult__title { margin-top: -8px; font-size: 18px; font-weight: 700; letter-spacing: .08em; line-height: 1.7; padding-bottom: 16px; border-bottom: 1px solid var(--mon-line); }
.mon-consult__text { font-size: 14px; line-height: 2; color: var(--mon-text); }

.mon-categories { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
.mon-category { background: #fff; padding: 44px 32px; display: flex; flex-direction: column; align-items: center; gap: 14px; text-align: center; border: 1px solid var(--mon-line); }
.mon-category__en { font-family: var(--mon-f-en); font-size: 12px; letter-spacing: .24em; color: var(--mon-main-dark); }
.mon-category__title { font-size: 22px; font-weight: 700; letter-spacing: .1em; line-height: 1.7; }
.mon-category__text { font-size: 14px; line-height: 1.9; color: var(--mon-text); }
.mon-category--accent { background: var(--mon-main); border-color: var(--mon-main); color: #fff; }
.mon-category--accent .mon-category__en,
.mon-category--accent .mon-category__text { color: #fff; }
.mon-category__both { display: flex; align-items: center; gap: 10px; margin-top: 4px; font-size: 11px; letter-spacing: .1em; }
.mon-category__both::before,
.mon-category__both::after { content: ""; display: block; width: 18px; height: 1px; background: #fff; }

.mon-lineup { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); border-top: 1px solid var(--mon-line); }
.mon-lineup li { display: flex; align-items: center; gap: 14px; padding: 20px 8px; border-bottom: 1px solid var(--mon-line); font-size: 15px; letter-spacing: .04em; line-height: 1.7; }
.mon-lineup li::before { content: ""; display: block; width: 6px; height: 6px; background: var(--mon-main); flex-shrink: 0; }
.mon-lineup__etc { margin-top: 16px; font-size: 13px; color: var(--mon-sub); text-align: right; }
.mon-individual { background: var(--mon-gray); padding: clamp(28px, 3.4vw, 44px); display: grid; grid-template-columns: minmax(200px, 1fr) 2fr; gap: 20px 40px; align-items: center; }
.mon-individual__en { display: block; margin-bottom: 8px; font-family: var(--mon-f-en); font-size: 11px; letter-spacing: .22em; color: var(--mon-main-dark); }
.mon-individual__title { font-size: 16px; font-weight: 700; letter-spacing: .08em; line-height: 1.7; }
.mon-individual__text { font-size: 14px; line-height: 2; color: var(--mon-text); }
@media (max-width: 699px) { .mon-individual { grid-template-columns: 1fr; } }

/* ---------- Insurance ---------- */
.mon-partners { display: flex; flex-direction: column; gap: clamp(32px, 4vw, 48px); }
.mon-partners__group { display: grid; grid-template-columns: minmax(200px, 1fr) 2fr; gap: 20px 48px; padding-bottom: clamp(32px, 4vw, 48px); border-bottom: 1px solid var(--mon-line); }
.mon-partners__group:last-child { padding-bottom: 0; border-bottom: 0; }
.mon-partners__en { display: block; margin-bottom: 8px; font-family: var(--mon-f-en); font-size: 11px; letter-spacing: .22em; color: var(--mon-main-dark); line-height: 1.7; }
.mon-partners__title { font-size: 18px; font-weight: 700; letter-spacing: .08em; line-height: 1.7; }
.mon-partners__list { display: flex; flex-direction: column; gap: 12px; }
.mon-partners__list li { padding: 22px 28px; background: var(--mon-gray); border-left: 3px solid var(--mon-main); font-size: 17px; font-weight: 500; letter-spacing: .08em; line-height: 1.7; }
@media (max-width: 699px) { .mon-partners__group { grid-template-columns: 1fr; } }

/* ---------- Harassment ---------- */
.mon-media { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr)); gap: clamp(40px, 6vw, 88px); align-items: center; }
.mon-media__body { display: flex; flex-direction: column; gap: 24px; }
.mon-media__img { position: relative; overflow: hidden; background: #e7eaea; }
.mon-aspect-5-4 { aspect-ratio: 5 / 4; }
.mon-media__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 799px) { .mon-media--reverse .mon-media__img { order: 2; } }
.mon-dash-list { display: flex; flex-direction: column; gap: 10px; }
.mon-dash-list li { display: flex; gap: 12px; font-size: 14px; line-height: 1.9; }
.mon-dash-list li::before { content: "—"; color: var(--mon-main); font-weight: 700; }

.mon-merits { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: clamp(24px, 3vw, 40px); }
.mon-merit { display: flex; flex-direction: column; gap: 18px; }
.mon-merit__img { position: relative; overflow: hidden; background: #e7eaea; }
.mon-merit__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.mon-merit__head { display: flex; align-items: baseline; gap: 14px; }
.mon-merit__no { font-family: var(--mon-f-en); font-size: 34px; line-height: 1; color: var(--mon-main); }
.mon-merit__title { font-size: 17px; font-weight: 700; letter-spacing: .06em; line-height: 1.6; }
.mon-merit__text { font-size: 14px; line-height: 2; color: var(--mon-text); padding-top: 16px; border-top: 1px solid var(--mon-line); }

/* ---------- Contact ---------- */
.mon-tel-box { background: var(--mon-gray); padding: clamp(28px, 3.4vw, 44px); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 40px; }
.mon-tel-box__num { font-family: var(--mon-f-en); font-size: clamp(28px, 3.4vw, 38px); letter-spacing: .08em; line-height: 1.2; color: var(--mon-ink); }
.mon-tel-box__num:hover { color: var(--mon-main-dark); }
.mon-tel-box__hours { font-size: 14px; line-height: 1.9; color: var(--mon-text); }

.mon-form { display: flex; flex-direction: column; border-top: 1px solid var(--mon-line); }
.mon-form__row { display: grid; grid-template-columns: 220px 1fr; gap: 10px 24px; padding: 24px 0; border-bottom: 1px solid var(--mon-line); align-items: start; }
.mon-form__label { display: flex; align-items: center; gap: 10px; padding-top: 12px; font-size: 14px; font-weight: 500; line-height: 1.7; }
.mon-badge { font-size: 11px; padding: 2px 8px; background: var(--mon-line); color: var(--mon-text); line-height: 1.6; }
.mon-badge--req { background: var(--mon-main); color: #fff; }
.mon-form .form-input { padding: 14px 16px; border: 1px solid var(--mon-line); border-radius: 0; background: #fafbfb; font-size: 15px; color: var(--mon-ink); }
.mon-form input.form-input { height: 52px; padding: 0 16px; }
.mon-form textarea.form-input { line-height: 1.8; resize: vertical; }
.mon-form .form-input:focus { border-color: var(--mon-line); outline: 2px solid var(--mon-main); outline-offset: -1px; background: #fff; }
.mon-form__agree.form-checkbox { justify-content: center; gap: 12px; padding: 36px 0 32px; font-size: 14px; }
.mon-form__agree a { color: var(--mon-main-dark); text-decoration: underline; }
.mon-form__submit { display: flex; justify-content: center; }
.mon-form__submit .mon-btn { font-family: inherit; }
@media (max-width: 699px) { .mon-form__row { grid-template-columns: 1fr; } .mon-form__label { padding-top: 0; } }

.mon-acc-list { display: flex; flex-direction: column; gap: 12px; }
.mon-acc.accordion { border: 0; border-radius: 0; background: #fff; }
.mon-acc .accordion__head { gap: 20px; padding: 26px clamp(20px, 3vw, 36px); background: #fff; font-family: inherit; }
.mon-acc .accordion__head:hover { background: #fff; }
.mon-acc .accordion__head::after { display: none; }
.mon-acc__title { display: flex; align-items: baseline; gap: 18px; font-size: 17px; font-weight: 700; letter-spacing: .08em; line-height: 1.7; color: var(--mon-ink); }
.mon-acc__no { font-family: var(--mon-f-en); font-size: 13px; font-weight: 400; color: var(--mon-main-dark); }
.mon-acc__icon { position: relative; flex-shrink: 0; width: 32px; height: 32px; border: 1px solid var(--mon-main); }
.mon-acc__icon::before,
.mon-acc__icon::after { content: ""; position: absolute; top: 50%; left: 50%; width: 12px; height: 1px; background: var(--mon-main-dark); transform: translate(-50%, -50%); transition: transform .3s; }
.mon-acc__icon::after { transform: translate(-50%, -50%) rotate(90deg); }
.mon-acc.is-open .mon-acc__icon::after { transform: translate(-50%, -50%) rotate(0deg); }
.mon-acc.accordion--smooth .accordion__body,
.mon-acc.accordion--smooth.is-open .accordion__body { padding: 0; border-top: 0; background: #fff; }
.mon-acc__inner { margin: 0 clamp(20px, 3vw, 36px); padding: 28px 0 40px; border-top: 1px solid var(--mon-line); display: flex; flex-direction: column; gap: 14px; font-size: 14px; line-height: 2; color: var(--mon-text); }
.mon-acc__inner h4 { margin-top: 8px; font-size: 15px; color: var(--mon-ink); }
.mon-acc__inner h4:first-child { margin-top: 0; }
.mon-acc__inner .mon-acc__lead { font-size: 16px; }
.mon-acc__inner ul { padding-left: 1.2em; list-style: disc; display: flex; flex-direction: column; gap: 4px; }
.mon-acc__inner a { color: var(--mon-main-dark); }
.mon-acc__inner .mon-acc__indent { padding-left: 1em; }
.mon-acc__break { word-break: break-all; }
.mon-acc__box { background: var(--mon-gray); padding: 24px 28px; }
.mon-acc__box-title { margin-bottom: 6px; font-weight: 700; color: var(--mon-ink); }
.mon-acc__note { font-size: 13px; }
.mon-acc__sign { margin-top: 16px; text-align: right; font-size: 13px; line-height: 1.9; }

/* ---------- Contact CTA ---------- */
.mon-cta { background: #fff; padding: clamp(32px, 4vw, 56px); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 32px clamp(40px, 6vw, 88px); align-items: center; }
.mon-cta__body { display: flex; flex-direction: column; gap: 24px; align-items: flex-start; }
.mon-cta__tel { display: flex; flex-direction: column; gap: 4px; }
.mon-cta__label { font-family: var(--mon-f-en); font-size: 12px; letter-spacing: .24em; color: var(--mon-main-dark); }
.mon-cta__num { font-family: var(--mon-f-en); font-size: clamp(28px, 3.4vw, 38px); letter-spacing: .08em; line-height: 1.2; color: var(--mon-ink); }
.mon-cta__num:hover { color: var(--mon-main-dark); }
.mon-cta__hours { font-size: 13px; line-height: 1.9; color: var(--mon-text); }

/* ---------- Footer ---------- */
.mon-footer { border-top: 1px solid var(--mon-line); background: #fff; }
.mon-footer__inner { max-width: 1120px; margin: 0 auto; padding: clamp(64px, 8vw, 96px) var(--mon-pad-x) 48px; display: flex; flex-direction: column; align-items: center; gap: 32px; text-align: center; }
.mon-footer__logo { line-height: 0; }
.mon-footer__logo img { height: 130px; width: auto; }
.mon-footer__info { font-style: normal; font-size: 13px; line-height: 2; color: var(--mon-text); }
.mon-footer__info a { color: inherit; }
.mon-footer__nav { width: 100%; padding-top: 32px; border-top: 1px solid var(--mon-line-soft); display: flex; flex-wrap: wrap; justify-content: center; gap: 12px clamp(20px, 3vw, 40px); }
.mon-footer__nav a { display: flex; align-items: center; gap: 10px; font-size: 13px; color: var(--mon-ink); line-height: 1.7; }
.mon-footer__nav a::before { content: ""; display: block; width: 10px; height: 1px; background: var(--mon-main); }
.mon-footer__nav a:hover { color: var(--mon-main-dark); }
.mon-footer__bottom.footer-bottom { padding: 16px 20px; background: var(--mon-main); }
.mon-footer__bottom .footer-bottom__copyright { font-size: 11px; letter-spacing: .2em; color: #fff; line-height: 1.7; }
/* 1文字だけの改行（孤立文字）を防ぐ */
body { text-wrap: pretty; }
h1, h2, h3, h4, .mon-acc__title, .mon-merit__title, .mon-category__text { text-wrap: balance; }
.mon-btn { white-space: nowrap; }
@media (max-width: 639px) { .mon-btn { width: 100%; min-width: 0; padding: 20px 20px; gap: 16px; } .mon-cta__body { align-items: stretch; } }
.mon-br-sp { display: none; }
@media (max-width: 1199px) { .mon-br-pc { display: none; } }
@media (max-width: 699px) {
  .mon-br-sp { display: inline; }
  .mon-footer__nav { display: none; }
}

/* CMSフォーム（form-pattern-1）を .mon-form のデザインに合わせて上書き */
.form-contents.form-pattern-1 { padding: 0 !important; background: transparent !important; color: var(--mon-ink); }
.form-pattern-1 form dl { margin-bottom: 0 !important; border-top: 1px solid var(--mon-line); }
.form-pattern-1 form dl dt:not(.pattern-exclusion) { width: 220px !important; padding-top: 37px !important; font-size: 14px !important; font-weight: 500 !important; line-height: 1.7 !important; color: var(--mon-ink) !important; }
.form-pattern-1 form dl dd:not(.pattern-exclusion) { padding: 24px 0 24px 244px !important; border-bottom: 1px solid var(--mon-line) !important; }
.form-pattern-1 dl dt:not(.pattern-exclusion) span::before { display: inline-block; margin-right: 10px !important; padding: 2px 8px !important; font-size: 11px !important; font-weight: 500 !important; line-height: 1.6 !important; letter-spacing: .05em; border-radius: 0 !important; top: -1px !important; }
.form-pattern-1 dl dt:not(.pattern-exclusion) span.required::before { content: '必須' !important; color: #fff !important; background: var(--mon-main) !important; }
.form-pattern-1 dl dt:not(.pattern-exclusion) span.optional::before { content: '任意' !important; color: var(--mon-text) !important; background: var(--mon-line) !important; }
.form-pattern-1 dd:not(.pattern-exclusion) .textarea,
.form-pattern-1 dd:not(.pattern-exclusion) .textarea-serect,
.form-pattern-1 dd:not(.pattern-exclusion) .textarea-date,
.form-pattern-1 dd:not(.pattern-exclusion) .textarea-time,
.form-pattern-1 dd:not(.pattern-exclusion) .textarea-datetime,
.form-pattern-1 dd:not(.pattern-exclusion) .textarea-datetimepicker { padding: 14px 16px !important; border: 1px solid var(--mon-line) !important; border-radius: 0 !important; background: #fafbfb !important; font-family: inherit; font-size: 15px !important; color: var(--mon-ink) !important; line-height: 1.8; transition: background .3s; }
.form-pattern-1 dd:not(.pattern-exclusion) input.textarea,
.form-pattern-1 dd:not(.pattern-exclusion) .textarea-serect { height: 52px !important; padding: 0 16px !important; }
.form-pattern-1 dd:not(.pattern-exclusion) textarea.textarea { resize: vertical; }
.form-pattern-1 dd:not(.pattern-exclusion) .textarea::placeholder { color: #a3abab; }
.form-pattern-1 dd:not(.pattern-exclusion) .textarea:focus,
.form-pattern-1 dd:not(.pattern-exclusion) .textarea-serect:focus { outline: 2px solid var(--mon-main) !important; outline-offset: -1px; background: #fff !important; }
.form-pattern-1 dd:not(.pattern-exclusion) .upload-area { border: 1px dashed var(--mon-main) !important; background: var(--mon-main-pale) !important; }
.form-pattern-1 dd:not(.pattern-exclusion) .upload-area .upload-msg p { color: var(--mon-text) !important; font-weight: 500; }
.form-pattern-1 dd:not(.pattern-exclusion) .upload-msg button { border: 1px solid var(--mon-main) !important; border-radius: 0 !important; background: #fff !important; color: var(--mon-main-dark) !important; font-weight: 500 !important; }
.form-pattern-1 dd:not(.pattern-exclusion) .upload-msg button::before { background-color: var(--mon-main-dark) !important; }
.form-pattern-1 dd:not(.pattern-exclusion) .input-file-clear { border: 1px solid var(--mon-line) !important; border-radius: 0 !important; background: #fff !important; color: var(--mon-text) !important; font-weight: 500 !important; }
.form-pattern-1 .form-err-msg { padding: 16px 20px !important; border: 1px solid #d9534f !important; background: #fdf3f3 !important; color: #c0392b !important; font-size: 14px; line-height: 1.8; }
.form-pattern-1 .form-thanks-msg { padding: clamp(28px, 4vw, 48px) 24px !important; border: 1px solid var(--mon-line) !important; background: #fff !important; line-height: 2; color: var(--mon-text); }
.form-pattern-1 .form-thanks-msg .back-home-btn { width: min(100%, 320px) !important; }
.form-pattern-1 .form-thanks-msg .back-home-btn a { padding: 22px 32px !important; border: 1px solid var(--mon-main) !important; border-radius: 0 !important; background: #fff !important; color: var(--mon-main-dark) !important; font-size: 15px !important; font-weight: 500 !important; letter-spacing: .1em !important; }
.form-pattern-1 .form-thanks-msg .back-home-btn a:hover { background: var(--mon-main) !important; color: #fff !important; }
.submit-btn { display: block !important; width: min(100%, 320px) !important; max-width: 100% !important; margin: 40px auto 0 !important; padding: 22px 32px !important; border: 1px solid var(--mon-main) !important; border-radius: 0 !important; background: #fff !important; color: var(--mon-main-dark) !important; font-family: inherit !important; font-size: 15px !important; font-weight: 500 !important; letter-spacing: .1em !important; text-align: center !important; box-shadow: none !important; cursor: pointer; transition: background .3s, color .3s, border-color .3s !important; }
.submit-btn:hover { background: var(--mon-main) !important; border-color: var(--mon-main) !important; color: #fff !important; opacity: 1 !important; }
.submit-btn::before { background-color: var(--mon-main-dark) !important; transition: background-color .3s; }
.submit-btn:hover::before { background-color: #fff !important; }
@media (max-width: 1024px) {
  .form-pattern-1 form dl dt:not(.pattern-exclusion) { margin-bottom: 0 !important; }
}
@media (max-width: 699px) {
  .form-pattern-1 form dl dt:not(.pattern-exclusion) { float: none !important; width: 100% !important; padding-top: 24px !important; }
  .form-pattern-1 form dl dd:not(.pattern-exclusion) { padding: 10px 0 24px !important; }
  .submit-btn { margin-top: 32px !important; }
}

.mon-thanks { gap: 28px; text-align: center; }
.mon-thanks .mon-lead { margin: 0 auto; }
.mon-thanks .mon-lead a { color: var(--mon-main-dark); }
.mon-thanks__title { font-size: clamp(20px, 2.4vw, 26px); font-weight: 500; letter-spacing: .08em; line-height: 1.6; color: var(--mon-ink); }
.mon-thanks__btn { display: flex; justify-content: center; }
