/*
 * ======================================
 * 追加クラス一覧（共通SCSS取り込み検討用）
 * ======================================
 *
 * .om-header / .om-nav / .om-brand / .om-burger / .om-drawer  - サイト固有ヘッダー（受付ラベル付き電話＋MAPボタン＋スティッキー白バー）
 * .om-mv                          - トップ メインビュー（左下寄せ・斜めグラデ暗幕・ハイライト見出し）
 * .om-eyebrow / .om-sec-head / .om-sec-title / .om-sec-lead   - 英小見出し（オレンジダッシュ付き）＋大日本語タイトルの見出しセット
 * .om-greet                       - 代表挨拶（写真左・テキスト右、写真に名前タブ）
 * .om-reasons / .om-reason        - 選ばれる理由カード（左カラーバー＋大ナンバー透かし＋角丸）
 * .om-promo                       - 債務整理／相続 訴求バナー（写真＋本文の2分割カード）
 * .om-linkgrid / .om-lcard        - 取扱業務リンクカード（イラスト＋EN＋タイトル＋矢印）
 * .om-worry                       - こんなお悩みリスト（?バッジ＋2列）＋ダーク注記
 * .om-steps / .om-step            - ご相談の流れ（STEPナンバー丸＋点線区切り）
 * .om-prep / .om-callout          - ご用意いただくもの（チェックリスト＋オレンジ枠注記）
 * .om-info-card / .om-info-row    - 事務所概要テーブル（dt/dd 2カラム）
 * .om-svc                         - 事業内容 詳細（番号タイル＋写真＋サポート内容リスト）
 * .om-cta-band                    - 下部CTA帯（フォレストグリーン＋オレンジ発光＋大電話番号）
 * .om-contact-grid / .om-form / .om-side-card  - お問い合わせフォーム＋サイド情報
 * .om-map                         - Googleマップ代替プレースホルダー（差し替え用）
 * .om-footer                      - フッター（ブランド＋メニュー＋アクセス、フォレスト背景）
 * .om-mobile-bar                  - SP下部固定アクションバー（電話／問い合わせ）
 * .reveal                         - スクロール表示アニメーション
 *
 * ======================================
 * 共通SCSSに不足していたもの（5分類）
 * ======================================
 * ・構造不足：写真に名前タブが食い込む代表挨拶レイアウト、左下寄せ斜めグラデMV、
 *   受付時間ラベル付き縦組み電話番号ヘッダー、番号丸＋点線フローの簡易ステップ。
 * ・装飾パターン不足：CTA帯のオレンジ放射状グロー、page-hero右上のオレンジ放射光、
 *   見出し英字のオレンジ短ダッシュ（eyebrow）。
 * ・値の粒度不足：コンテナ幅1260px／narrow 1000px、各セクションの clamp 余白。
 * ※ 配色・フォント・共通余白は scss/site.scss で _vars を上書きし main.css に反映済み。
 */

/* ========================================================= ルート変数（デザイン基準値） */
:root{
  --om-green:#46a879;          /* メイン */
  --om-green-bright:#2f8d5f;   /* hover */
  --om-forest:#18523a;         /* footer / hero / heading 濃緑 */
  --om-blue:#1f57d6;           /* サブ青 */
  --om-orange:#ee7748;         /* 看板オレンジ */
  --om-orange-deep:#d4602f;
  --om-base:#f8f8f8;
  --om-ink:#1c1c2b;
  --om-ink-soft:#55566a;
  --om-line:#e4e4ec;
  --om-line-soft:#eeeef3;
  --om-maxw:1260px;
  --om-pad:clamp(15px,5vw,40px);
  --om-r:10px;
  --om-r-lg:18px;
  --om-shadow:0 18px 50px -28px rgba(13,13,90,.28);
  --om-shadow-soft:0 10px 30px -20px rgba(13,13,90,.22);
  --om-ja:"Noto Sans JP",-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  --om-head:"Zen Kaku Gothic New",var(--om-ja);
  --om-en:"Montserrat",sans-serif;
}

/* base tweaks to match design rhythm */
body{font-family:var(--om-ja);color:var(--om-ink);background:var(--om-base);line-height:1.9;letter-spacing:0;font-size:1.6rem;}
.om-head{font-family:var(--om-head);}

.om-wrap{max-width:var(--om-maxw);margin:0 auto;padding-inline:var(--om-pad);}
.om-wrap.narrow{max-width:1000px;}

/* ========================================================= sections */
.om-block{padding-block:clamp(64px,9vw,118px);position:relative;}
.om-block.base{background:var(--om-base);}
.om-block.white{background:#fff;}
.om-block.tint{background:linear-gradient(180deg,#fff,#eef4f0);}

/* ========================================================= eyebrow + section heading */
.om-eyebrow{font-family:var(--om-en);font-weight:600;font-size:13px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--om-green);display:inline-flex;align-items:center;gap:.7em;}
.om-eyebrow::before{content:"";width:30px;height:2px;background:var(--om-orange);}
.om-eyebrow.center{justify-content:center;}
.om-eyebrow.on-dark{color:#fff;}
.om-sec-head{margin-bottom:clamp(36px,5vw,56px);}
.om-sec-head.center{text-align:center;}
.om-sec-title{font-family:var(--om-head);font-weight:700;font-size:clamp(23px,4vw,40px);line-height:1.45;margin-top:14px;color:var(--om-ink);}
.om-sec-title .accent{color:var(--om-green);}
.om-sec-title .accent.sm{font-size:.7em;}
.om-sec-title .accent.xs{font-size:.66em;}
.om-sec-title .step-count{display:inline-block;font-size:.6em;margin-top:8px;}
.om-sec-head.mb0{margin-bottom:0;}
.om-sec-lead{margin-top:18px;color:var(--om-ink-soft);font-size:clamp(15px,1.6vw,17px);max-width:680px;}
.om-sec-head.center .om-sec-lead{margin-inline:auto;}
.om-sp{display:none;}

/* ========================================================= buttons */
.om-btn{display:inline-flex;align-items:center;justify-content:center;gap:.6em;font-weight:700;font-size:15px;
  letter-spacing:.04em;padding:15px 30px;border-radius:999px;border:2px solid transparent;transition:.22s ease;
  white-space:nowrap;line-height:1.2;font-family:var(--om-ja);}
.om-btn .ico{width:18px;height:18px;flex:none;}
.om-btn.orange{background:var(--om-orange);color:#fff;box-shadow:0 12px 26px -14px rgba(242,111,68,.7);}
.om-btn.orange:hover{background:var(--om-orange-deep);transform:translateY(-2px);}
.om-btn.green{background:var(--om-green);color:#fff;}
.om-btn.green:hover{background:var(--om-green-bright);transform:translateY(-2px);}
.om-btn.blue{background:var(--om-blue);color:#fff;}
.om-btn.blue:hover{background:#1742b8;transform:translateY(-2px);}
.om-btn.ghost{background:transparent;color:var(--om-green);border-color:currentColor;}
.om-btn.ghost:hover{background:var(--om-green);color:#fff;border-color:var(--om-green);}
.om-btn.white{background:#fff;color:var(--om-green);}
.om-btn.white:hover{transform:translateY(-2px);}
.om-btn.lg{padding:18px 40px;font-size:16px;}
.om-btn.full{width:100%;}

/* ========================================================= HEADER */
.om-header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--om-line);}
.om-header__inner{display:flex;align-items:center;gap:16px;height:74px;max-width:1320px;margin:0 auto;padding-inline:28px;}
.om-brand{display:flex;align-items:center;gap:12px;margin-right:auto;flex-shrink:0;}
.om-brand__name{display:flex;flex-direction:column;line-height:1.32;}
.om-brand__name b{font-family:var(--om-head);font-size:20px;letter-spacing:.01em;color:var(--om-forest);font-weight:700;white-space:nowrap;}

.om-nav{display:flex;align-items:center;gap:2px;}
.om-nav a{position:relative;padding:8px 11px;font-size:14px;font-weight:500;color:var(--om-ink);border-radius:8px;transition:.18s;white-space:nowrap;text-align:center;}
.om-nav a .en{display:block;font-family:var(--om-en);font-size:9.5px;letter-spacing:.16em;color:var(--om-green);text-transform:uppercase;margin-bottom:1px;font-weight:600;}
.om-nav a:hover{color:var(--om-green);}
.om-nav a.is-current{color:var(--om-green);}
.om-nav a.is-current::after{content:"";position:absolute;left:11px;right:11px;bottom:4px;height:2px;background:var(--om-orange);}

.om-header__cta{display:flex;align-items:center;gap:12px;}
.om-header__tel{display:flex;flex-direction:column;align-items:flex-end;line-height:1.15;}
.om-header__tel .lbl{font-size:10px;letter-spacing:.12em;color:var(--om-ink-soft);}
.om-header__tel .num{font-family:var(--om-en);font-weight:700;font-size:18.5px;color:var(--om-forest);display:flex;align-items:center;gap:5px;white-space:nowrap;}
.om-header__tel .num i{font-size:14px;color:var(--om-orange);}
.om-header__map{display:inline-flex;align-items:center;gap:5px;padding:10px 16px;font-size:14px;font-weight:700;border-radius:999px;
  background:var(--om-orange);color:#fff;box-shadow:0 12px 26px -14px rgba(242,111,68,.7);}
.om-header__map:hover{background:var(--om-orange-deep);transform:translateY(-2px);}
.om-header__map i{font-size:16px;}

.om-burger{display:none;flex-direction:column;gap:5px;width:46px;height:46px;border:1px solid var(--om-line);border-radius:10px;background:#fff;align-items:center;justify-content:center;}
.om-burger span{width:20px;height:2px;background:var(--om-forest);transition:.25s;}
.om-burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.om-burger.open span:nth-child(2){opacity:0;}
.om-burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* drawer */
.om-drawer{position:fixed;inset:0;z-index:55;background:rgba(10,10,60,.4);opacity:0;visibility:hidden;transition:.3s;}
.om-drawer.open{opacity:1;visibility:visible;}
.om-drawer__panel{position:absolute;top:0;right:0;height:100%;width:min(84vw,360px);background:#fff;transform:translateX(100%);
  transition:.32s cubic-bezier(.4,0,.2,1);padding:90px 28px 40px;overflow-y:auto;}
.om-drawer.open .om-drawer__panel{transform:translateX(0);}
.om-drawer__panel a.dnav{display:block;padding:16px 6px;border-bottom:1px solid var(--om-line-soft);font-weight:500;font-size:16px;color:var(--om-ink);}
.om-drawer__panel a.dnav .en{font-family:var(--om-en);font-size:10px;letter-spacing:.16em;color:var(--om-green);text-transform:uppercase;display:block;}
.om-drawer__tel{margin-top:28px;text-align:center;}
.om-drawer__tel .num{font-family:var(--om-en);font-weight:700;font-size:28px;color:var(--om-forest);}
.om-drawer__tel .lbl{font-size:12px;color:var(--om-ink-soft);}
.om-drawer__cta{display:grid;gap:12px;margin-top:18px;}

/* ========================================================= PAGE HERO + breadcrumb */
.om-hero{position:relative;background:var(--om-forest);color:#fff;overflow:hidden;}
.om-hero::after{content:"";position:absolute;right:-80px;top:-80px;width:340px;height:340px;border-radius:50%;
  background:radial-gradient(circle,rgba(238,119,72,.5),transparent 70%);}
.om-hero .om-wrap{position:relative;padding-top:clamp(56px,8vw,90px);padding-bottom:clamp(56px,8vw,90px);}
.om-hero .om-eyebrow{color:#fff;}
.om-hero h1{font-family:var(--om-head);font-size:clamp(28px,5vw,46px);margin-top:14px;}
.om-hero p{margin-top:16px;color:rgba(255,255,255,.82);max-width:640px;}

.om-crumb{background:#fff;border-bottom:1px solid var(--om-line);}
.om-crumb ul{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:14px 0;font-size:13px;color:var(--om-ink-soft);}
.om-crumb a:hover{color:var(--om-green);}
.om-crumb li+li::before{content:"›";margin-right:8px;color:var(--om-line);}

/* ========================================================= HOME MV */
.om-mv{position:relative;min-height:min(92vh,860px);display:flex;align-items:center;overflow:hidden;color:#fff;}
.om-mv__photo{position:absolute;inset:0;}
.om-mv__photo img{width:100%;height:100%;object-fit:cover;object-position:center 38%;}
.om-mv__photo::after{content:"";position:absolute;inset:0;
  background:linear-gradient(75deg,rgba(18,64,42,.88) 0%,rgba(18,64,42,.62) 40%,rgba(18,64,42,.28) 72%,rgba(18,64,42,.2) 100%);}
.om-mv__inner{position:relative;z-index:2;padding-bottom:clamp(60px,8vw,108px);padding-top:200px;margin-left:clamp(20px,5vw,110px);margin-right:auto;}
.om-mv h1{font-family:var(--om-head);font-size:clamp(23px,5.2vw,56px);line-height:1.4;letter-spacing:.02em;text-shadow:0 4px 30px rgba(0,0,0,.3);}
.om-mv h1 .hl{color:#fff;background:linear-gradient(transparent 62%,rgba(238,119,72,.9) 62%);padding:0 .12em;}
.om-mv .lead{margin-top:26px;max-width:620px;font-size:clamp(15px,1.7vw,18px);color:rgba(255,255,255,.92);line-height:2;}
.om-mv__btns{margin-top:42px;display:flex;flex-wrap:wrap;gap:14px;}

/* ========================================================= VIDEO（紹介動画／YouTube埋め込み・16:9レスポンシブ） */
.om-video{position:relative;width:100%;aspect-ratio:16/9;border-radius:var(--om-r-lg);overflow:hidden;box-shadow:var(--om-shadow-soft);}
.om-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}

/* ========================================================= GREETING */
.om-greet{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(32px,5vw,68px);align-items:center;}
.om-greet__photo{position:relative;aspect-ratio:4/5;border-radius:var(--om-r-lg);overflow:hidden;box-shadow:var(--om-shadow);}
.om-greet__photo>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.om-greet__photo .tab{position:absolute;left:0;bottom:26px;background:var(--om-green);color:#fff;padding:12px 22px;border-radius:0 8px 8px 0;z-index:2;}
.om-greet__photo .tab b{font-family:var(--om-head);font-size:18px;display:block;}
.om-greet__photo .tab span{font-size:11px;letter-spacing:.1em;opacity:.85;}
.om-greet__body h2{font-family:var(--om-head);font-size:clamp(22px,3vw,33px);line-height:1.55;margin-top:14px;}
.om-greet__body h2 .accent{color:var(--om-green);}
.om-greet__text{color:var(--om-ink);font-size:15.5px;margin-top:26px;}
.om-greet__text p+p{margin-top:18px;}
.om-greet__text b{color:var(--om-green);}
.om-greet__body .sig{margin-top:30px;font-size:14px;color:var(--om-ink-soft);}
.om-greet__body .sig b{font-family:var(--om-head);font-size:22px;color:var(--om-ink);margin-left:10px;}
.om-greet__body .btnrow{margin-top:24px;}

/* ========================================================= REASONS */
.om-reasons{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.om-reasons.col2{grid-template-columns:repeat(2,1fr);}
.om-reason{background:#fff;border:1px solid var(--om-line);border-radius:var(--om-r-lg);padding:38px 30px 34px;position:relative;transition:.25s;overflow:hidden;}
.om-reason:hover{transform:translateY(-6px);box-shadow:var(--om-shadow);border-color:transparent;}
.om-reason .no{font-family:var(--om-en);font-weight:700;font-size:54px;line-height:.8;color:var(--om-green);opacity:.16;}
.om-reason .ic{position:absolute;top:32px;right:30px;font-size:46px;color:var(--om-orange);}
.om-reason h3{font-family:var(--om-head);font-size:20px;margin-top:14px;line-height:1.5;}
.om-reason h3 .u{background:linear-gradient(transparent 60%,rgba(238,119,72,.42) 60%);}
.om-reason h3 .req-note{display:inline-block;margin-top:6px;font-size:13px;font-weight:500;color:var(--om-ink-soft);}
.om-reason p{margin-top:14px;color:var(--om-ink-soft);font-size:14.5px;line-height:1.95;}
.om-reason .bar{position:absolute;left:0;top:0;bottom:0;width:5px;background:linear-gradient(var(--om-green),var(--om-orange));}

/* ========================================================= PROMO */
.om-promo{display:grid;grid-template-columns:1.05fr .95fr;gap:0;border-radius:var(--om-r-lg);overflow:hidden;box-shadow:var(--om-shadow);background:#fff;}
.om-promo.rev{grid-template-columns:.74fr 1.26fr;}
.om-promo.img-sm{grid-template-columns:.74fr 1.26fr;}
.om-promo__media{position:relative;min-height:340px;}
.om-promo__media>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.om-promo__body{padding:clamp(25px,4vw,52px);display:flex;flex-direction:column;justify-content:center;}
.om-promo .kicker{display:inline-flex;align-items:flex-start;gap:8px;font-weight:700;color:var(--om-green);font-size:14px;line-height:1.5;margin-bottom:8px;}
.om-promo .kicker i{font-size:18px;color:var(--om-orange);flex:none;margin-top:1px;}
.om-promo h3{font-family:var(--om-head);font-size:clamp(19px,2.6vw,29px);line-height:1.5;}
.om-promo .plist{margin-top:22px;display:grid;gap:12px;}
.om-promo .plist li{display:flex;gap:12px;align-items:flex-start;font-size:15px;line-height:1.7;}
.om-promo .plist li i{font-size:17px;flex:none;color:var(--om-orange);margin-top:3px;}
.om-promo .note{margin-top:22px;color:var(--om-ink-soft);font-size:14px;}
.om-promo .link{margin-top:26px;}

/* ========================================================= LINK CARDS */
.om-linkgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.om-linkgrid.col2{grid-template-columns:repeat(2,1fr);}
.om-lcard{position:relative;background:#fff;border:1px solid var(--om-line);border-radius:var(--om-r-lg);overflow:hidden;transition:.25s;display:flex;flex-direction:column;}
.om-lcard:hover{transform:translateY(-6px);box-shadow:var(--om-shadow);border-color:transparent;}
.om-lcard .top{position:relative;aspect-ratio:16/10;background:#fbfaf3;display:flex;align-items:center;justify-content:center;}
.om-lcard .top img{width:100%;height:80%;object-fit:contain;}
.om-lcard .top .num{display:none;}
.om-lcard .body{padding:22px 22px 24px;flex:1;display:flex;flex-direction:column;}
.om-lcard .en{font-family:var(--om-en);font-size:10px;letter-spacing:.18em;color:var(--om-orange);text-transform:uppercase;font-weight:600;}
.om-lcard h3{font-family:var(--om-head);font-size:18px;margin-top:6px;}
.om-lcard p{margin-top:10px;color:var(--om-ink-soft);font-size:13.5px;line-height:1.8;flex:1;}
.om-lcard .go{margin-top:16px;display:inline-flex;align-items:center;gap:6px;color:var(--om-green);font-weight:700;font-size:13.5px;}
.om-lcard .go i{font-size:15px;transition:.2s;}
.om-lcard:hover .go i{transform:translateX(4px);}

/* ========================================================= WORRY */
.om-worry-ill{display:block;margin:0 auto clamp(28px,4vw,46px);max-width:200px;width:100%;height:auto;}
.om-worry{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;}
.om-worry li{display:flex;gap:16px;align-items:flex-start;background:#fff;border:1px solid var(--om-line);border-radius:var(--om-r);padding:22px 24px;font-size:15.5px;line-height:1.7;}
.om-worry li .qm{flex:none;width:34px;height:34px;border-radius:50%;background:var(--om-green);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--om-head);font-weight:700;font-size:18px;}
.om-worry-note{margin-top:30px;background:var(--om-forest);color:#fff;border-radius:var(--om-r-lg);padding:30px 34px;}
.om-worry-note b{color:var(--om-orange);}

/* ========================================================= STEPS */
.om-steps{display:grid;gap:0;counter-reset:step;}
.om-step{display:grid;grid-template-columns:auto 1fr;gap:26px;padding:28px 0;border-bottom:1px dashed var(--om-line);position:relative;}
.om-step:last-child{border-bottom:0;}
.om-step .n{counter-increment:step;width:62px;height:62px;border-radius:50%;background:#fff;border:2px solid var(--om-green);color:var(--om-green);
  display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;flex:none;}
.om-step .n::before{content:"STEP";font-family:var(--om-en);font-size:8px;letter-spacing:.12em;}
.om-step .n::after{content:counter(step);font-family:var(--om-en);font-size:24px;font-weight:700;}
.om-step.alt .n{background:var(--om-orange);border-color:var(--om-orange);color:#fff;}
.om-step__body h4{font-family:var(--om-head);font-size:18px;}
.om-step__body p{margin-top:8px;color:var(--om-ink-soft);font-size:14.5px;}
.om-step__body .free{display:inline-block;margin-top:10px;font-size:12px;font-weight:700;color:var(--om-green);background:#e9f5ee;padding:3px 12px;border-radius:999px;}

/* ========================================================= PREP */
.om-prep-2col{display:grid;grid-template-columns:.52fr 1.48fr;gap:clamp(22px,4vw,46px);align-items:center;}
.om-prep-ill{width:100%;height:auto;max-width:180px;margin:0 auto;display:block;}
.om-prep{background:#fff;border:1px solid var(--om-line);border-radius:var(--om-r-lg);padding:clamp(20px,4vw,44px);margin-top:clamp(30px,4vw,48px);}
.om-prep h3{font-family:var(--om-head);font-size:20px;line-height:1.5;display:flex;align-items:flex-start;gap:10px;}
.om-prep h3 i{font-size:18px;color:var(--om-orange);flex:none;margin-top:4px;}
.om-prep .items{margin-top:22px;display:grid;gap:14px;}
.om-prep .items>li{display:flex;gap:12px;align-items:flex-start;font-size:15px;line-height:1.7;padding-bottom:14px;border-bottom:1px solid var(--om-line-soft);}
.om-prep .items>li:last-child{border-bottom:0;padding-bottom:0;}
.om-prep .items>li>i{font-size:20px;flex:none;color:var(--om-green);margin-top:3px;}
.om-prep .sub{margin-top:8px;display:grid;gap:6px;}
.om-prep .sub li{font-size:13.5px;color:var(--om-ink-soft);padding-left:18px;position:relative;}
.om-prep .sub li::before{content:"";position:absolute;left:4px;top:11px;width:5px;height:5px;border-radius:50%;background:var(--om-orange);}
.om-callout{margin-top:24px;border-left:4px solid var(--om-orange);background:#fff6f1;border-radius:0 var(--om-r) var(--om-r) 0;padding:20px 24px;font-size:14.5px;line-height:1.85;}
.om-callout b{color:var(--om-orange-deep);}

/* ========================================================= ABOUT info table */
.om-info-card{background:#fff;border:1px solid var(--om-line);border-radius:var(--om-r-lg);overflow:hidden;box-shadow:var(--om-shadow-soft);}
.om-info-row{display:grid;grid-template-columns:200px 1fr;border-bottom:1px solid var(--om-line-soft);}
.om-info-row:last-child{border-bottom:0;}
.om-info-row dt{background:var(--om-base);padding:22px 28px;font-weight:700;font-size:15px;color:var(--om-forest);border-right:1px solid var(--om-line-soft);}
.om-info-row dd{margin:0;padding:22px 28px;font-size:15.5px;}
.om-info-row dd .tel-big{font-family:var(--om-en);font-weight:700;font-size:22px;color:var(--om-green);letter-spacing:.02em;}

/* ========================================================= SERVICE detail */
.om-svc{display:grid;grid-template-columns:64px 1fr;gap:24px;}
.om-svc__num{font-family:var(--om-en);font-weight:700;font-size:18px;color:#fff;background:var(--om-green);width:54px;height:54px;border-radius:14px;display:flex;align-items:center;justify-content:center;}
.om-svc.alt .om-svc__num{background:var(--om-orange);}
.om-svc__head .sub{color:var(--om-green);font-weight:700;font-size:15px;margin-bottom:4px;}
.om-svc.alt .om-svc__head .sub{color:var(--om-orange-deep);}
.om-svc h2{font-family:var(--om-head);font-size:clamp(22px,3vw,30px);}
.om-svc__body{margin-top:18px;font-size:15.5px;color:var(--om-ink);}
.om-svc__cols{display:grid;grid-template-columns:.82fr 1.18fr;gap:clamp(22px,3vw,42px);align-items:start;margin-top:22px;}
.om-svc__cols .om-svc-photo{order:1;position:sticky;top:96px;}
.om-svc__cols .om-svc-media{order:1;position:sticky;top:96px;align-self:start;}
.om-svc__cols .om-svc-media .om-svc-photo{position:static;}
.om-svc__cols .om-svc-detail{order:2;}
.om-svc.alt .om-svc__cols{grid-template-columns:1.18fr .82fr;}
.om-svc.alt .om-svc__cols .om-svc-photo,.om-svc.alt .om-svc__cols .om-svc-media{order:2;}
.om-svc.alt .om-svc__cols .om-svc-detail{order:1;}
.om-svc__cols .om-svc__body{margin-top:0;}
.om-svc__cap{margin-top:10px;font-size:13px;font-weight:700;color:var(--om-orange-deep);text-align:center;line-height:1.5;}
.om-svc-photo{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--om-r-lg);margin:0;box-shadow:var(--om-shadow-soft);}
.om-svc-list{margin-top:22px;background:var(--om-base);border-radius:var(--om-r-lg);padding:26px 30px;}
.om-svc-list>b{display:flex;align-items:center;gap:8px;font-size:15px;color:var(--om-forest);}
.om-svc-list>b i{font-size:18px;color:var(--om-orange);flex:none;}
.om-svc-list ul{margin-top:14px;display:grid;gap:10px;}
.om-svc-list ul li{display:flex;gap:10px;align-items:flex-start;font-size:14.5px;line-height:1.75;}
.om-svc-list ul li i{font-size:16px;flex:none;color:var(--om-green);margin-top:4px;}
.om-svc-divider{height:1px;background:var(--om-line);margin-block:clamp(48px,7vw,82px);}

/* ========================================================= CONTACT form */
.om-contact-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:clamp(30px,4vw,56px);align-items:start;}
.om-form{background:#fff;border:1px solid var(--om-line);border-radius:var(--om-r-lg);padding:clamp(28px,4vw,42px);box-shadow:var(--om-shadow-soft);}
.om-field{margin-bottom:22px;}
.om-field label{display:block;font-weight:700;font-size:14px;margin-bottom:9px;color:var(--om-forest);}
.om-field label .req{color:#fff;background:var(--om-orange);font-size:10px;font-weight:700;padding:2px 8px;border-radius:4px;margin-left:8px;letter-spacing:.06em;}
.om-field input,.om-field select,.om-field textarea{width:100%;font-family:inherit;font-size:15px;padding:13px 16px;border:1.5px solid var(--om-line);border-radius:var(--om-r);background:#fff;color:var(--om-ink);transition:.18s;}
.om-field input:focus,.om-field select:focus,.om-field textarea:focus{outline:none;border-color:var(--om-green);box-shadow:0 0 0 3px rgba(70,168,121,.18);}
.om-field textarea{min-height:140px;resize:vertical;}
.om-radio-grid{display:grid;gap:10px;}
.om-radio-grid label{display:flex;align-items:center;gap:12px;font-weight:500;border:1.5px solid var(--om-line);border-radius:var(--om-r);padding:13px 16px;cursor:pointer;transition:.18s;margin:0;color:var(--om-ink);}
.om-radio-grid label:hover{border-color:var(--om-green);background:#f3faf6;}
.om-radio-grid input{width:auto;accent-color:var(--om-green);}
.om-privacy{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;color:var(--om-ink-soft);margin-bottom:22px;}
.om-privacy input{width:auto;margin-top:4px;accent-color:var(--om-green);}
.om-side-card{background:var(--om-forest);color:#fff;border-radius:var(--om-r-lg);padding:clamp(28px,4vw,38px);}
.om-side-card .tel-row{margin-top:18px;}
.om-side-card .tel-row .num{font-family:var(--om-en);font-weight:700;font-size:30px;display:flex;align-items:center;gap:10px;color:#81c9a6;}
.om-side-card .tel-row .num i{font-size:22px;color:var(--om-orange);}
.om-side-card .hours{margin-top:14px;font-size:14px;color:rgba(255,255,255,.8);}
.om-side-card .hours b{color:#fff;}
.om-thanks{display:none;text-align:center;padding:40px 20px;}
.om-thanks.show{display:block;}
.om-thanks i{display:block;text-align:center;font-size:60px;color:var(--om-green);margin-bottom:16px;}
.om-thanks h2{font-family:var(--om-head);font-size:26px;}
.om-thanks p{margin-top:12px;color:var(--om-ink-soft);}
.om-side-card .lead{margin-top:14px;color:rgba(255,255,255,.85);}
.om-contact-aside .access{margin-top:20px;}
.om-contact-aside .access .addr{margin-top:12px;margin-bottom:5px;color:var(--om-ink-soft);font-size:14.5px;}
.om-contact-aside .access .om-footer__map{margin-top:14px;}

/* ========================================================= MAP placeholder */
.om-map{position:relative;display:block;width:100%;aspect-ratio:16/7;border-radius:var(--om-r-lg);overflow:hidden;border:1px solid var(--om-line);background:linear-gradient(135deg,#e9ebf5,#f3f4fb);}
.om-map .pin{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);text-align:center;}
.om-map .pin i{font-size:40px;color:var(--om-orange);filter:drop-shadow(0 6px 10px rgba(0,0,0,.18));}
.om-map .pin b{display:block;margin-top:8px;font-size:14px;color:var(--om-forest);background:#fff;padding:6px 14px;border-radius:999px;box-shadow:var(--om-shadow-soft);}
.om-map .grid-lines{position:absolute;inset:0;background-image:linear-gradient(rgba(13,13,90,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(13,13,90,.05) 1px,transparent 1px);background-size:46px 46px;}
.om-map .roadv{position:absolute;left:0;right:0;top:58%;height:18px;background:rgba(255,255,255,.6);transform:rotate(-4deg);}
.om-map .roadh{position:absolute;top:0;bottom:0;left:38%;width:14px;background:rgba(255,255,255,.6);}
.om-map.r16-6{aspect-ratio:16/6;}
.om-map.r16-10{aspect-ratio:16/10;}
.om-map-embed{position:relative;width:100%;aspect-ratio:16/7;border-radius:var(--om-r-lg);overflow:hidden;border:1px solid var(--om-line);}
.om-map-embed.r16-6{aspect-ratio:16/6;}
.om-map-embed.r16-7{aspect-ratio:16/7;}
.om-map-embed.r16-10{aspect-ratio:16/10;}
.om-map-embed iframe{position:absolute;inset:0;width:100%;height:100%;}
.om-map-link{margin-top:10px;text-align:right;font-size:13.5px;}
.om-map-link a{color:var(--om-green);font-weight:700;}

/* ========================================================= CTA band */
.om-cta-band{position:relative;background:var(--om-green);color:#fff;overflow:hidden;}
.om-cta-band::before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,var(--om-green),var(--om-green-bright) 58%,#1f6e4a);}
.om-cta-band::after{content:"";position:absolute;right:-60px;bottom:-90px;width:320px;height:320px;border-radius:50%;background:radial-gradient(circle,rgba(238,119,72,.55),transparent 70%);}
.om-cta-band .om-wrap{position:relative;z-index:2;text-align:center;padding-block:clamp(54px,7vw,84px);}
.om-cta-band h2{font-family:var(--om-head);font-size:clamp(24px,3.4vw,38px);margin-top:14px;text-align:center;text-wrap:balance;word-break:auto-phrase;}
.om-cta-band p{margin-top:16px;color:rgba(255,255,255,.9);max-width:600px;margin-inline:auto;text-align:left;}
.om-cta-band .tel{margin-top:30px;font-family:var(--om-en);font-weight:700;font-size:clamp(30px,4.5vw,48px);letter-spacing:.02em;}
.om-cta-band .sub{font-size:13px;letter-spacing:.06em;color:rgba(255,255,255,.8);}
.om-cta-band .btns{margin-top:28px;display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}

/* ========================================================= FOOTER */
.om-footer{background:var(--om-forest);color:rgba(255,255,255,.82);padding-top:clamp(54px,7vw,76px);}
.om-footer__top{display:grid;grid-template-columns:1.2fr .7fr 1.55fr;gap:40px;padding-bottom:46px;border-bottom:1px solid rgba(255,255,255,.14);}
.om-footer__brand .name b{font-family:var(--om-head);font-size:19px;color:#fff;display:block;}
.om-footer__brand address{font-style:normal;margin-top:18px;font-size:14px;line-height:2;}
.om-footer__tel{margin-top:18px;}
.om-footer__tel .num{font-family:var(--om-en);font-weight:700;font-size:26px;color:#fff;display:flex;align-items:center;gap:10px;}
.om-footer__tel .num i{font-size:20px;color:var(--om-orange);}
.om-footer__tel .hours{font-size:12.5px;color:rgba(255,255,255,.6);margin-top:4px;}
.om-footer__col h4{font-family:var(--om-en);font-size:11px;letter-spacing:.18em;color:var(--om-orange);text-transform:uppercase;margin-bottom:16px;}
.om-footer__col a{display:block;padding:7px 0;font-size:14px;color:rgba(255,255,255,.8);}
.om-footer__col a:hover{color:#fff;}
.om-footer__map{margin-top:0;}
.om-footer__map .om-map,.om-footer__map .om-map-embed{aspect-ratio:16/9;}
.om-footer__bottom{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:24px 0 30px;font-size:12px;color:rgba(255,255,255,.55);flex-wrap:wrap;}

/* sticky mobile action bar */
.om-mobile-bar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:50;background:#fff;border-top:1px solid var(--om-line);grid-template-columns:1fr 1fr;box-shadow:0 -8px 24px -16px rgba(0,0,0,.3);}
.om-mobile-bar a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:11px;font-size:11px;font-weight:700;}
.om-mobile-bar a i{font-size:20px;}
.om-mobile-bar a.tel{color:var(--om-green);}
.om-mobile-bar a.contact{background:var(--om-orange);color:#fff;}

/* ========================================================= reveal */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease;}
.reveal.in{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none;}}

/* ========================================================= RESPONSIVE */
@media (max-width:1140px){
  .om-nav{display:none;}
  .om-burger{display:flex;}
  .om-header__tel .lbl{display:none;}
  .om-reasons,.om-reasons.col2{grid-template-columns:1fr;}
  .om-linkgrid{grid-template-columns:repeat(2,1fr);}
  .om-footer__col--menu{display:none;}
}
@media (max-width:860px){
  body{font-size:15.5px;}
  .om-greet{grid-template-columns:1fr;}
  .om-greet__photo{max-width:420px;aspect-ratio:5/4;}
  .om-promo,.om-promo.rev,.om-promo.img-sm{grid-template-columns:1fr;}
  .om-promo__media{min-height:240px;}
  .om-promo.rev .om-promo__media{order:-1;}
  .om-promo__media>img{position:absolute;}
  .om-worry{grid-template-columns:1fr;}
  .om-contact-grid{grid-template-columns:1fr;}
  .om-info-row{grid-template-columns:130px 1fr;}
  .om-footer__top{grid-template-columns:1fr;gap:32px;}
  .om-mobile-bar{display:grid;}
  body{padding-bottom:58px;}
  .om-header__tel{display:none;}
  .om-brand__name b{font-size:17px;}
  .om-mv__inner{padding-top:96px;}
  .om-header__map{padding:10px 12px;gap:0;}
  .om-header__map-txt{display:none;}
  .om-footer__tel .hours .om-sp{display:inline;}
}
@media (max-width:760px){
  .om-prep-2col{grid-template-columns:1fr;}
  .om-svc__cols,.om-svc.alt .om-svc__cols{grid-template-columns:1fr;}
  .om-svc__cols .om-svc-photo,.om-svc__cols .om-svc-media,
  .om-svc.alt .om-svc__cols .om-svc-photo,.om-svc.alt .om-svc__cols .om-svc-media{order:0;position:static;}
  .om-svc__cols .om-svc-photo{aspect-ratio:16/9;}
  .om-svc__cols .om-svc-detail,.om-svc.alt .om-svc__cols .om-svc-detail{order:1;}
  .om-sec-lead{text-align:left;}
}
@media (max-width:520px){
  .om-linkgrid,.om-linkgrid.col2{grid-template-columns:1fr;}
  .om-svc{grid-template-columns:1fr;gap:14px;}
  .om-info-row{grid-template-columns:1fr;}
  .om-info-row dt{border-right:0;border-bottom:1px solid var(--om-line-soft);}
  .om-step{grid-template-columns:48px 1fr;gap:16px;}
  .om-step .n{width:48px;height:48px;}
  .om-btn{padding:13px 22px;font-size:14px;}
  .om-brand__name b{font-size:15px;}
  .om-mv{min-height:min(84vh,640px);align-items:flex-end;}
  .om-mv__inner{padding-top:40px;padding-bottom:clamp(40px,9vw,64px);margin-left:0;}
  .om-mv__btns{gap:8px;flex-wrap:nowrap;}
  .om-mv__btns .om-btn{flex:1 1 0;min-width:0;padding:12px 10px;font-size:13px;}
  .om-sp{display:inline;}
  .om-prep h3{font-size:18px;}
  .om-side-card{padding:24px;}
  .om-side-card .tel-row .num{font-size:27px;}
  .om-side-card .hours{font-size:13.5px;line-height:1.9;}
}
