@charset "UTF-8";
/*
 * ======================================
 * 株式会社おきぎんサクセスパートナーズ — サイト固有CSS（site.css）
 * ======================================
 * 配色・フォントは scss/main.scss の @use "vars" with(...) で上書きし
 * main.css にコンパイル済み（base=#27a7c9 / sub=#063f4c / accent=#e0b300 /
 * dark=#063f4c・#04333e / sup1=#d12129 / font=Noto Sans JP + Barlow）。
 * 本ファイルは claude-design-output の固有レイアウト・余白・装飾を
 * osp- プレフィックスで再現する（共通クラスで再現できない差分のみ）。
 * 見出しは 'Zen Kaku Gothic New'、英字ラベルは Barlow。
 *
 * --------------------------------------
 * 追加クラス一覧（共通SCSS取り込み検討用）
 * --------------------------------------
 * レイアウト   : .osp-wrap(--1120/1000/960/900/820) / .osp-sec(--80/88/96/100)
 * 共通パーツ   : .osp-header / .osp-gnav / .osp-spnav / .osp-burger / .osp-footer
 *               .osp-eyebrow / .osp-secttl / .osp-h2 / .osp-lead
 *               .osp-btn(--teal/gold/red/outline/ghost/lg/sm) / .osp-textlink(--white/gold)
 *               .osp-telblock / .osp-badge-red / .osp-phero / .osp-newslist
 *               .osp-ctabox / .osp-barhead / .osp-pagetop
 * TOP          : .osp-hero / .osp-story / .osp-nayami / .osp-band / .osp-strength
 *               .osp-diag / .osp-svcgrid / .osp-duo / .osp-finalcta
 * service      : .osp-flowimg / .osp-mixgrid / .osp-svcgroup
 * company      : .osp-philo / .osp-proftable / .osp-access
 * news / case  : .osp-newstab / .osp-pager / .osp-casecard / .osp-cf（成約事例フォーマット）
 * contact      : .osp-form / .osp-radiocard / .osp-req / .osp-any / .osp-consent
 *
 * --------------------------------------
 * 共通SCSSに不足していたもの（5分類）
 * --------------------------------------
 * ・構造不足：英字uppercaseラベル(eyebrow)＋和文見出し＋リードの3段セクション
 *             ヘッダー、動画背景ヒーロー、グラデーション帯見出し(barhead)、
 *             グラデCTAボックス(ctabox)、番号付き強みカード、V-COMPASS診断ブロック
 * ・装飾パターン不足：ダーク背景上のゴールドアクセント、radialグロー装飾、
 *             一般的なM&Aの流れ図（flow.png を横スクロール枠に掲載して再現）
 * ・値の粒度不足：design固有の余白(56/72/88/96/112px)・角丸(2/4/6/8/10/12/14px)・
 *             clamp可変フォントが共通utilityの刻みに無く個別指定
 * ・状態不足：ヘッダーのスクロール連動、フォームradioカードの選択(:has)強調
 * ・指定方向不足：—
 *
 * ※「一般的なM&Aの流れ」は claude-design-output では writing-mode の縦組み
 *   HTMLで flow.png を再現しているが、視覚的に完全一致する原図 flow.png を
 *   横スクロール枠に配置する方式で再現した（可読性・堅牢性・SP対応のため）。
 */

/* =====================================================================
   0. globals / layout
   ===================================================================== */
.osp-wrap{max-width:1220px;margin:0 auto;padding:0 40px}
.osp-wrap--1120{max-width:1120px;margin:0 auto}
.osp-wrap--1000{max-width:1000px;margin:0 auto;padding:0 40px}
.osp-wrap--960{max-width:960px;margin:0 auto;padding:0 40px}
.osp-wrap--900{max-width:900px;margin:0 auto;padding:0 40px}
.osp-wrap--820{max-width:820px;margin:0 auto;padding:0 40px}

.osp-sec{padding-top:112px;padding-bottom:112px}
.osp-sec--80{padding-top:80px;padding-bottom:80px}
.osp-sec--88{padding-top:88px;padding-bottom:88px}
.osp-sec--96{padding-top:96px;padding-bottom:96px}
.osp-sec--100{padding-top:100px;padding-bottom:100px}
.osp-sec--svc1{padding-top:56px;padding-bottom:96px}
.osp-sec--svc2{padding-top:88px;padding-bottom:40px}
.osp-sec--news1{padding-top:80px;padding-bottom:80px}
.osp-sec--ct-form{padding-top:40px;padding-bottom:96px}
.osp-sec--ct-intro{padding:72px 0 40px}
.osp-bg-sec{background:#f5f8f9}
.osp-bg-white{background:#fff}

@media(max-width:1024px){
  .osp-wrap,.osp-wrap--1120,.osp-wrap--1000,.osp-wrap--960,.osp-wrap--900,.osp-wrap--820{padding-left:22px;padding-right:22px}
  .osp-sec,.osp-sec--80,.osp-sec--88,.osp-sec--96,.osp-sec--100{padding-top:64px;padding-bottom:64px}
  .osp-sec--svc1{padding-top:48px;padding-bottom:64px}
  .osp-sec--svc2{padding-top:64px;padding-bottom:32px}
}

/* =====================================================================
   1. header
   ===================================================================== */
.osp-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid #e2eaec}
.osp-header__inner{height:78px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.osp-header__logo{display:flex;align-items:center;flex:none}
.osp-header__logo img{height:50px;width:auto;display:block}
.osp-gnav{display:flex;align-items:center;gap:20px}
.osp-gnav__link{font-family:"Zen Kaku Gothic New",sans-serif;font-weight:500;font-size:1.4rem;line-height:1;white-space:nowrap;color:#17323a;transition:color .2s}
.osp-gnav__link:hover{color:#27a7c9;opacity:1}
.osp-gnav__link.is-current{font-weight:700;color:#27a7c9}
.osp-header__util{display:flex;align-items:center;gap:18px;flex:none}
.osp-header__tel{display:flex;flex-direction:column;align-items:flex-end;line-height:1.2}
.osp-header__telnum{font-family:Barlow,sans-serif;font-weight:700;font-size:1.9rem;line-height:1;color:#075e70;letter-spacing:.01em}
.osp-header__telnote{font-size:1.05rem;color:#5c7078;margin-top:3px}
.osp-header__map{display:inline-flex;align-items:center;gap:6px;background:#27a7c9;color:#fff;font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:1.3rem;padding:13px 18px;border-radius:2px;flex:none}
.osp-header__map:hover{opacity:1;background:#063f4c}
.osp-header__map i{font-size:1.4rem}
.osp-burger{display:none;align-items:center;justify-content:center;flex-direction:column;gap:5px;width:44px;height:44px;background:none;border:1px solid #cfe0e4;border-radius:2px;cursor:pointer}
.osp-burger__line{display:block;width:20px;height:2px;background:#075e70;border-radius:2px;transition:transform .3s,opacity .3s}
.osp-header.is-open .osp-burger__line:nth-child(1){transform:translateY(7px) rotate(45deg)}
.osp-header.is-open .osp-burger__line:nth-child(2){opacity:0}
.osp-header.is-open .osp-burger__line:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.osp-spnav{display:none;flex-direction:column;border-top:1px solid #e2eaec;background:#fff;padding:10px 22px 22px}
.osp-header.is-open .osp-spnav{display:flex}
.osp-spnav__link{padding:14px 4px;border-bottom:1px solid #eef3f4;font-family:"Zen Kaku Gothic New",sans-serif;font-weight:500;font-size:1.5rem;color:#17323a}
.osp-spnav__cta{margin-top:14px;text-align:center;background:#27a7c9;color:#fff;padding:14px;border-radius:2px;font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:1.4rem}
.osp-spnav__tel{margin-top:10px;text-align:center;font-family:Barlow,sans-serif;font-weight:700;font-size:1.8rem;color:#075e70;display:flex;align-items:center;justify-content:center;gap:8px}
@media(max-width:1024px){
  .osp-header__inner{height:64px}
  .osp-gnav,.osp-header__tel,.osp-header__map{display:none}
  .osp-burger{display:flex}
}

/* =====================================================================
   2. footer
   ===================================================================== */
.osp-footer{background:#04333e;color:#cfe0e4}
.osp-footer__inner{padding-top:64px;padding-bottom:40px;display:grid;grid-template-columns:1.4fr 1fr;gap:48px}
.osp-footer__logo{margin-bottom:20px}
.osp-footer__logo img{height:40px;width:auto;display:block;filter:brightness(0) invert(1)}
.osp-footer__addr{font-size:1.3rem;line-height:1.9;margin:0;color:#a7c4cb}
.osp-footer__label{display:block;font-family:Barlow,sans-serif;font-weight:600;font-size:1.1rem;letter-spacing:.24em;color:#7cc4d1;text-transform:uppercase;margin-bottom:14px}
.osp-footer__sitemap{display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px}
.osp-footer__sitemap a{color:#cfe0e4;font-size:1.35rem}
.osp-footer__sitemap a:hover{color:#fff;opacity:1}
.osp-footer__extlink{color:#7cc4d1;font-size:1.25rem;margin-top:16px;display:inline-flex;align-items:center;gap:6px}
.osp-footer__extlink i{font-size:1.1rem}
.osp-footer__btns{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}
.osp-footer__btn{display:inline-flex;align-items:center;gap:7px;border:1px solid rgba(255,255,255,.25);color:#cfe0e4;font-size:1.25rem;padding:9px 16px;border-radius:2px}
.osp-footer__btn--fill{background:#27a7c9;border-color:#27a7c9;color:#fff}
.osp-footer__btn:hover{opacity:.85}
/* footer : グループ会社ロゴ帯 */
.osp-footer__group{background:#fff;padding:24px 0}
.osp-footer__grouplist{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:18px 48px}
.osp-footer__grouplist img{width:auto;height:auto;max-height:32px;max-width:200px;object-fit:contain;display:block}
.osp-footer__grouplist img.osp-footer__grouplogo--ofg{max-height:40px;max-width:400px}
.osp-footer__grouplist a:hover{opacity:.75}
.osp-footer__grouptext{display:inline-flex;align-items:center;font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:1.4rem;line-height:1;color:#17323a}
@media(max-width:640px){.osp-footer__group{padding:20px 0}.osp-footer__grouplist{gap:14px 24px}.osp-footer__grouplist img{max-height:26px;max-width:160px}.osp-footer__grouplist img.osp-footer__grouplogo--ofg{max-height:38px;max-width:280px}.osp-footer__grouptext{font-size:1.25rem}}
.osp-footer__policy{border-top:1px solid #e6eef0;padding:18px 0;background:#F8F8F8}
.osp-footer__policylist{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px 30px}
.osp-footer__policylist li{position:relative}
.osp-footer__policylist a{display:inline-flex;align-items:center;gap:7px;color:#17323a;font-size:1.2rem;line-height:1.5;letter-spacing:.03em}
.osp-footer__policylist a:hover{color:#27a7c9;opacity:1}
.osp-footer__policylist i{font-size:1.15rem;color:#27a7c9}
.osp-footer__bottom{border-top:1px solid rgba(255,255,255,.12);padding:20px 0}
.osp-footer__copy{font-size:1.15rem;color:#7c9aa1;text-align:center}
@media(max-width:1024px){
  .osp-footer__inner{grid-template-columns:1fr;gap:32px}
}

/* =====================================================================
   3. common parts : eyebrow / section title / headings / lead
   ===================================================================== */
.osp-eyebrow{display:inline-block;font-family:Barlow,sans-serif;font-weight:600;font-size:1.2rem;line-height:1;letter-spacing:.28em;color:#27a7c9;text-transform:uppercase}
.osp-eyebrow--lg{font-size:1.3rem;letter-spacing:.3em}
.osp-eyebrow--gold{color:#e0b300}
.osp-h2{font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:3.2rem;line-height:1.4;color:#17323a}
.osp-h2--lg{font-size:clamp(2.8rem,3.4vw,4rem);line-height:1.5}
.osp-h2--md{font-size:clamp(2.6rem,3vw,3.2rem);line-height:1.5}
.osp-h2--sm{font-size:2.8rem;line-height:1.5}
.osp-h2--white{color:#fff}
.osp-lead{font-size:1.5rem;line-height:2;color:#3a5259;margin-top:16px}
.osp-secttl{margin-bottom:48px}
.osp-secttl--center{text-align:center}
.osp-secttl__row{display:flex;align-items:center;gap:14px;margin-bottom:12px}
.osp-secttl--center .osp-secttl__row{justify-content:center}
.osp-secttl__lead{margin-top:16px;color:#3a5259;font-size:1.5rem;line-height:1.9}
.osp-secttl--center .osp-secttl__lead{max-width:720px;margin-left:auto;margin-right:auto;font-size:1.38rem;line-height:2}

/* =====================================================================
   4. buttons / text links / tel block / badges
   ===================================================================== */
.osp-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:1.6rem;line-height:1;padding:18px 32px;border-radius:2px;border:1px solid transparent;cursor:pointer;transition:opacity .2s,background .2s,color .2s;text-align:center}
.osp-btn:hover{opacity:.86}
.osp-btn i{font-size:.95em}
.osp-btn--teal{background:#27a7c9;color:#fff}
.osp-btn--gold{background:#e0b300;color:#17323a}
.osp-btn--red{background:#d12129;color:#fff}
.osp-btn--outline{background:transparent;border-color:#27a7c9;color:#27a7c9;font-size:1.4rem;padding:15px 30px}
.osp-btn--ghost{background:rgba(6,63,76,.55);color:#fff;border:1px solid rgba(255,255,255,.55);box-shadow:0 6px 20px rgba(0,0,0,.22)}
.osp-btn--lg{font-size:1.7rem;padding:20px 44px}
.osp-btn--sm{font-size:1.5rem;padding:15px 30px}
.osp-btn--shadow{box-shadow:0 6px 20px rgba(0,0,0,.22)}

.osp-textlink{display:inline-flex;align-items:center;gap:9px;color:#27a7c9;font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:1.5rem}
.osp-textlink i{font-size:.9em}
.osp-textlink--sm{font-size:1.4rem}
.osp-textlink--white{color:#fff}
.osp-textlink--gold-underline{color:#fff;border-bottom:1px solid #e0b300;padding-bottom:4px}
.osp-textlink__note{font-size:1.1rem;color:#5c7078;font-weight:500}

.osp-telblock{display:inline-flex;flex-direction:column;align-items:center;padding:6px 8px}
.osp-telblock__note{font-size:1.1rem;color:#5c7078}
.osp-telblock__num{font-family:Barlow,sans-serif;font-weight:700;font-size:2.6rem;line-height:1.1;color:#075e70}
.osp-telblock--white .osp-telblock__note{color:rgba(255,255,255,.8)}
.osp-telblock--white .osp-telblock__num{color:#fff}

.osp-badge-red{display:inline-block;background:#d12129;color:#fff;font-size:1.7rem;font-weight:700;letter-spacing:.08em;padding:7px 20px;border-radius:2px}

/* =====================================================================
   5. page hero (下層共通)
   ===================================================================== */
.osp-phero{position:relative;overflow:hidden;background:linear-gradient(120deg,#063f4c,#27a7c9);padding:64px 0}
.osp-phero::after{content:"";position:absolute;inset:0;opacity:.12;background-image:radial-gradient(circle at 88% 20%,#7cc4d1 0,transparent 45%);pointer-events:none}
.osp-phero__inner{position:relative}
.osp-phero__crumb{display:flex;align-items:center;gap:10px;font-size:1.2rem;color:rgba(255,255,255,.7);margin-bottom:18px}
.osp-phero__crumb a{color:rgba(255,255,255,.7)}
.osp-phero__crumb a:hover{color:#fff;opacity:1}
.osp-phero__crumb .cur{color:#fff}
.osp-phero__en{display:block;font-family:Barlow,sans-serif;font-weight:600;font-size:1.3rem;line-height:1;letter-spacing:.3em;color:#e0b300;text-transform:uppercase;margin-bottom:10px}
.osp-phero__ttl{font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:clamp(3rem,4vw,4.4rem);line-height:1.3;color:#fff;margin:0}

/* =====================================================================
   6. news list (TOP埋め込み & 新着情報ページ共通)
   ===================================================================== */
.osp-newslist{border-top:1px solid #e2eaec}
.osp-newsrow{display:flex;gap:22px;align-items:center;padding:20px 6px;border-bottom:1px solid #e2eaec;color:#17323a}
.osp-newsrow:hover{opacity:1;background:#f8fbfc}
.osp-newsrow__date{font-family:Barlow,sans-serif;font-weight:600;font-size:1.4rem;line-height:1;color:#5c7078;flex:0 0 auto;width:90px}
.osp-newsrow__cat{flex:0 0 auto;font-size:1.1rem;font-weight:700;color:#27a7c9;border:1px solid #b9dce3;border-radius:2px;padding:4px 10px;min-width:112px;text-align:center;line-height:1.4}
.osp-newsrow__title{font-size:1.5rem;flex:1 1 0;line-height:1.7}
@media(max-width:640px){
  .osp-newsrow{flex-wrap:wrap;gap:8px 14px;padding:18px 4px}
  .osp-newsrow__title{flex:1 1 100%}
}

/* =====================================================================
   7. gradient CTA box (contact-cta.php) / barhead
   ===================================================================== */
.osp-ctabox{position:relative;overflow:hidden;background:linear-gradient(135deg,#063f4c,#27a7c9);border-radius:12px;padding:56px 48px;text-align:center}
.osp-ctabox::after{content:"";position:absolute;inset:0;opacity:.14;background-image:radial-gradient(circle at 85% 25%,#e0b300 0,transparent 40%);pointer-events:none}
.osp-ctabox__inner{position:relative}
.osp-ctabox__ttl{font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:clamp(2.4rem,3vw,3.2rem);line-height:1.5;color:#fff;margin:0 0 16px}
.osp-ctabox .osp-badge-red{margin-bottom:16px}
.osp-ctabox__text{font-size:1.5rem;line-height:2;color:rgba(255,255,255,.9);max-width:720px;margin:0 auto 32px}
.osp-ctabox__text b{color:#e0b300}
.osp-ctabox__actions{display:inline-flex;gap:16px;align-items:center;flex-wrap:wrap;justify-content:center}
@media(max-width:640px){.osp-ctabox{padding:44px 24px}.osp-ctabox__actions{flex-direction:column}}

.osp-barhead{background:linear-gradient(90deg,#0a6f86,#27a7c9 55%,#93d2de);color:#fff;font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:clamp(1.9rem,2.4vw,2.4rem);line-height:1.4;padding:12px 24px;letter-spacing:.04em;border-radius:2px}

/* =====================================================================
   8. page-top button
   ===================================================================== */
.osp-pagetop{position:fixed;right:20px;bottom:20px;z-index:80;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#27a7c9;color:#fff;border-radius:50%;box-shadow:0 4px 16px rgba(0,0,0,.18);opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .3s,transform .3s,visibility .3s}
.osp-pagetop.is-visible{opacity:1;visibility:visible;transform:translateY(0)}
.osp-pagetop:hover{opacity:.85}

/* SP固定フッターバー（ハンバーガー表示域=≤1024pxで表示） */
.osp-spbar{display:none}
@media(max-width:1024px){
  .osp-spbar{display:grid;grid-template-columns:1fr 1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:95;box-shadow:0 -2px 12px rgba(6,63,76,.16)}
  .osp-spbar__btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:9px 6px 8px;font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:1.1rem;line-height:1.2;color:#fff;text-align:center}
  .osp-spbar__btn i{font-size:1.9rem}
  .osp-spbar__btn:hover{opacity:1}
  .osp-spbar__btn--contact{background:#27a7c9}
  .osp-spbar__btn--tel{background:#e0b300;color:#17323a}
  .osp-spbar__btn--map{background:#063f4c}
  .osp-footer{padding-bottom:70px}
  .osp-pagetop{bottom:72px}
}
/* アンカー遷移時に固定ヘッダーへ隠れない余白 */
#form{scroll-margin-top:90px}

/* =====================================================================
   9. TOP : hero
   ===================================================================== */
.osp-hero{position:relative;margin-top:-79px;aspect-ratio:16/9;display:flex;align-items:flex-end;justify-content:center;padding:0 40px 12%;background:#063f4c;overflow:hidden}
.osp-hero__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.osp-hero__actions{position:relative;z-index:2;display:flex;gap:16px;flex-wrap:wrap;justify-content:center}
@media(max-width:1024px){
  .osp-hero{aspect-ratio:auto;display:block;margin-top:0;padding:0;background:#063f4c}
  .osp-hero__video{position:relative;inset:auto;width:100%;height:auto;aspect-ratio:16/10;display:block}
  .osp-hero__actions{position:static;z-index:auto;flex-direction:column;align-items:stretch;gap:12px;width:100%;max-width:360px;margin:0 auto;padding:22px 22px 28px}
}
@media(max-width:640px){.osp-hero__actions{padding:16px 16px 24px}}

/* TOP : intro (キャッチ / 水色背景に白い丸がぶわっと広がり中央に文字) */
.osp-intro-sec{background:#e9f4f8;padding:52px 0;overflow:hidden}
.osp-intro{position:relative;display:flex;align-items:center;justify-content:center;min-height:440px}
.osp-intro__circle{position:absolute;top:50%;left:50%;width:180vw;aspect-ratio:1/1;transform:translate(-50%,-50%) scale(0);background:rgba(255,255,255,.7);border-radius:50%;z-index:0;will-change:transform,opacity}
.osp-intro.is-inview .osp-intro__circle{animation:osp-burst 1.9s cubic-bezier(.25,.4,.25,1) forwards}
@keyframes osp-burst{0%{transform:translate(-50%,-50%) scale(0);opacity:0}25%{opacity:1}100%{transform:translate(-50%,-50%) scale(1);opacity:1}}
.osp-intro__inner{position:relative;z-index:1;text-align:center;max-width:560px;padding:30px 24px}
.osp-intro__en{display:block;font-family:Barlow,sans-serif;font-weight:500;font-size:1.3rem;line-height:1;letter-spacing:.32em;color:#27a7c9;text-transform:uppercase;margin:0 0 24px}
.osp-intro__ttl{font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:clamp(2.8rem,4.4vw,5rem);line-height:1.42;color:#17323a;letter-spacing:.01em;margin:0}
.osp-intro__mark{position:relative;white-space:nowrap}
.osp-intro__mark::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:5px;background:#e0b300;border-radius:2px}
.osp-intro__text{margin:30px auto 0;font-size:1.6rem;line-height:2.1;color:#3a5259;text-align:center;text-wrap:balance;word-break:auto-phrase}
@media(max-width:640px){
  .osp-intro-sec{padding:40px 0}
  .osp-intro{min-height:300px}
  .osp-intro__circle{width:200vw}
  .osp-intro__inner{max-width:92vw;padding:12px 14px}
  .osp-intro__en{font-size:1.15rem;margin:0 0 14px}
  .osp-intro__text{font-size:1.35rem;line-height:2;margin-top:18px;text-align:left;text-wrap:wrap;word-break:normal}
}
@media(prefers-reduced-motion:reduce){
  .osp-intro__circle{transform:translate(-50%,-50%) scale(1);opacity:1}
  .osp-intro.is-inview .osp-intro__circle{animation:none}
}
/* SP改行制御ユーティリティ（br-pc=SPで消す / br-sp=SPだけ改行） */
.br-sp{display:none}
@media(max-width:640px){.br-pc{display:none}.br-sp{display:inline}}

/* スクロール連動フェードイン（トップページ各ブロック） */
.osp-reveal{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.22,.61,.36,1),transform .7s cubic-bezier(.22,.61,.36,1);will-change:opacity,transform}
.osp-reveal.is-inview{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.osp-reveal{opacity:1!important;transform:none!important;transition:none!important}}
/* パララックス帯：transform / will-change:transform を持つと background-attachment:fixed が
   要素基準になり画面固定の動きが消えるため、バンドだけ移動なし（フェードのみ）にする */
.osp-band.osp-reveal{transform:none;will-change:opacity}

/* TOP : news block (0.3fr 1fr) */
.osp-newsblock{display:grid;grid-template-columns:.3fr 1fr;gap:56px;align-items:start}
@media(max-width:1024px){.osp-newsblock{grid-template-columns:1fr;gap:28px}}

/* TOP : story */
.osp-story{background:linear-gradient(108deg,#F8FCFD 0,#F8FCFD 47%,#ffffff 47%,#f6f7f8 100%);position:relative;overflow:hidden}
.osp-story__grid{display:grid;grid-template-columns:.85fr 1fr;gap:56px;align-items:center;position:relative;z-index:1}
.osp-story__media{position:relative;aspect-ratio:4/5;border-radius:10px;overflow:hidden;box-shadow:0 20px 50px rgba(6,63,76,.14)}
.osp-story__media img{width:100%;height:100%;object-fit:cover;display:block}
@media(max-width:1024px){.osp-story__grid{grid-template-columns:1fr;gap:32px}.osp-story{background:#f3f4f5}.osp-story__media{aspect-ratio:16/10;max-height:400px}}

/* TOP : nayami (お悩み) */
.osp-nayami{display:grid;grid-template-columns:1fr 1fr;gap:16px;max-width:990px;margin:0 auto}
.osp-nayami__item{display:flex;gap:16px;align-items:flex-start;background:#f5f8f9;border:1px solid #e6eef0;border-radius:4px;padding:22px 24px}
.osp-nayami__check{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;background:#27a7c9;border-radius:3px;margin-top:2px;color:#fff;font-size:1.3rem}
.osp-nayami__text{font-size:1.5rem;line-height:1.8;color:#26424a}
.osp-nayami-note{display:flex;align-items:center;gap:14px;justify-content:center;max-width:820px;margin:48px auto 0;background:#063f4c;border-radius:4px;padding:24px 30px}
.osp-nayami-note p{margin:0;color:#fff;font-size:1.5rem;line-height:1.8}
.osp-nayami-note b{color:#e0b300}
@media(max-width:640px){.osp-nayami{grid-template-columns:1fr}}

/* TOP : parallax band */
.osp-band{position:relative;width:100%;height:clamp(240px,32vw,420px);overflow:hidden;background-image:url('https://ros-cdn.s3.ap-northeast-1.amazonaws.com/hp/img/ros_keiyaku/28451/band.jpg');background-size:cover;background-position:center 30%;background-attachment:fixed}
.osp-band::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(6,63,76,.12),rgba(6,63,76,.42));pointer-events:none}

/* TOP : strengths */
.osp-strength{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.osp-strength__item{background:#fff;border:1px solid #e6eef0;border-radius:6px;padding:38px 34px;display:flex;flex-direction:column;gap:14px}
.osp-strength__head{display:flex;align-items:center;gap:16px}
.osp-strength__num{font-family:Barlow,sans-serif;font-weight:600;font-size:3rem;line-height:1;color:#27a7c9}
.osp-strength__line{height:1px;flex:1 1 0;background:#e6eef0}
.osp-strength__ttl{font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:1.9rem;line-height:1.6;color:#17323a;margin:0}
.osp-strength__text{margin:0;font-size:1.45rem;line-height:1.95;color:#3a5259}
@media(max-width:640px){.osp-strength{grid-template-columns:1fr}.osp-strength__item{padding:30px 28px}.osp-strength__ttl{font-size:1.8rem}}

/* TOP : diagnosis (V-COMPASS) */
.osp-diag{background:linear-gradient(135deg,#063f4c,#27a7c9)}
.osp-diag__head{text-align:center;color:#fff}
.osp-diag__badgerow{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;margin-bottom:20px}
.osp-diag__ttl{font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:clamp(2.6rem,3.4vw,3.8rem);line-height:1.5;color:#fff;margin:0}
.osp-diag__text{max-width:760px;margin:22px auto 0;font-size:1.6rem;line-height:2;color:rgba(255,255,255,.9)}
.osp-diag__text b{color:#e0b300}
.osp-diag__triggers{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;margin-top:48px}
.osp-diag__trigger{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2);border-radius:6px;padding:28px 26px}
.osp-diag__trigger h3{display:flex;align-items:center;gap:11px;font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:1.7rem;line-height:1.5;margin:0 0 8px;color:#fff}
.osp-diag__trigger h3::before{content:"";flex:0 0 auto;width:4px;height:20px;background:#e0b300;border-radius:2px}
.osp-diag__trigger p{margin:0;font-size:1.35rem;line-height:1.85;color:rgba(255,255,255,.82)}
.osp-diag__panel{background:#fff;border-radius:8px;padding:44px 44px 40px;margin-top:26px}
.osp-diag__panel-ttl{font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:1.9rem;line-height:1.5;margin:0 0 28px;color:#17323a;text-align:center}
@media(max-width:640px){
  .osp-diag__text{text-align:left}
  .osp-diag__panel-ttl{text-align:center;text-wrap:balance;word-break:auto-phrase}
}
.osp-diag__panel-ttl span{display:block;width:48px;height:3px;background:#e0b300;border-radius:2px;margin:14px auto 0}
.osp-diag__features{display:grid;grid-template-columns:1fr 1fr;gap:18px 40px}
.osp-diag__feature{display:flex;gap:14px;align-items:flex-start;padding-bottom:18px;border-bottom:1px dashed #e2eaec}
.osp-diag__feature-num{flex:0 0 auto;font-family:Barlow,sans-serif;font-weight:600;font-size:1.5rem;line-height:1;color:#fff;background:#27a7c9;width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;margin-top:2px}
.osp-diag__feature b{font-size:1.45rem;color:#17323a}
.osp-diag__feature p{margin:4px 0 0;font-size:1.3rem;line-height:1.8;color:#5c7078}
.osp-diag__compare{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:34px}
.osp-diag__cmpcard{border-radius:6px;padding:24px 26px}
.osp-diag__cmpcard--gray{background:#f5f8f9}
.osp-diag__cmpcard--gray h4{color:#5c7078}
.osp-diag__cmpcard--gray p{color:#5c7078}
.osp-diag__cmpcard--teal{background:#eaf5f7;border:1px solid #cfe7ec}
.osp-diag__cmpcard--teal h4{color:#27a7c9}
.osp-diag__cmpcard--teal p{color:#26424a}
.osp-diag__cmpcard h4{margin:0 0 10px;font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:1.5rem}
.osp-diag__cmpcard p{margin:0;font-size:1.3rem;line-height:1.9}
.osp-diag__panel-btn{text-align:center;margin-top:36px}
@media(max-width:1024px){.osp-diag__triggers{grid-template-columns:1fr}.osp-diag__features{grid-template-columns:1fr}.osp-diag__compare{grid-template-columns:1fr}.osp-diag__panel{padding:32px 24px 28px}}

/* TOP : service grid (photo bg) */
.osp-svcband{position:relative;overflow:hidden}
.osp-svcband__bg{position:absolute;inset:0;background:#dfe8ea}
.osp-svcband__bg::after{content:"";position:absolute;inset:0;background:rgba(238,243,244,.84)}
.osp-svcband__inner{position:relative}
.osp-svcgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;grid-auto-rows:1fr}
.osp-svccard{background:rgba(255,255,255,.95);border-radius:14px;padding:36px 18px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:18px;box-shadow:0 10px 28px rgba(6,63,76,.1)}
.osp-svccard__icon{width:100px;height:100px;display:inline-flex;align-items:center;justify-content:center;color:#27a7c9;font-size:3.2rem}
.osp-svccard__icon img{width:100%;height:100%;object-fit:contain;display:block}
.osp-svccard__ttl{font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:1.5rem;line-height:1.75;margin:0;color:#17323a;text-align:center;text-wrap:balance;word-break:auto-phrase}
@media(max-width:1024px){.osp-svcgrid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.osp-svcgrid{grid-template-columns:1fr;grid-auto-rows:auto;gap:10px}.osp-svccard{flex-direction:row;align-items:center;text-align:left;padding:16px 18px;gap:16px}.osp-svccard__icon{width:64px;height:64px;flex:0 0 auto}.osp-svccard__ttl{font-size:1.5rem;line-height:1.6;text-align:left}}

/* TOP : case + company duo */
.osp-duo{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.osp-duo__card{border-radius:8px;padding:48px 44px;display:flex;flex-direction:column}
.osp-duo__card--light{background:#fff;border:1px solid #e6eef0}
.osp-duo__card--dark{background:#063f4c;color:#fff}
.osp-duo__ttl{font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:2.6rem;line-height:1.5;margin:14px 0 16px}
.osp-duo__card--dark .osp-duo__ttl{color:#fff}
.osp-duo__text{margin:0 0 28px;font-size:1.45rem;line-height:1.95;color:#3a5259;flex:1 1 0}
.osp-duo__profile{border-top:1px solid rgba(255,255,255,.16);flex:1 1 0}
.osp-duo__prow{display:flex;gap:16px;padding:16px 0;border-bottom:1px solid rgba(255,255,255,.16)}
.osp-duo__plabel{width:66px;flex:0 0 auto;font-size:1.3rem;color:#e0b300}
.osp-duo__pval{font-size:1.4rem}
@media(max-width:1024px){.osp-duo{grid-template-columns:1fr}.osp-duo__card{padding:36px 28px}}

/* TOP : final CTA (plain white) */
.osp-finalcta{text-align:center}
.osp-finalcta__ttl{font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:clamp(2.4rem,3vw,3.2rem);line-height:1.5;margin:0 0 16px;color:#17323a}
.osp-finalcta__text{font-size:1.5rem;line-height:2;color:#3a5259;margin:0 0 32px}
.osp-finalcta__actions{display:inline-flex;gap:16px;align-items:center;flex-wrap:wrap;justify-content:center}
@media(max-width:640px){.osp-finalcta__actions{flex-direction:column}}

/* =====================================================================
   10. service page
   ===================================================================== */
.osp-flowimg{overflow:hidden;padding-bottom:0}
.osp-flowimg img{width:auto;max-width:100%;height:auto}
/* 全デバイスで横スクロール無し：固定設計幅960pxを、コンテナ幅にJSで自動縮小(transform:scale)して収める */
.osp-flowimg>div{width:max-content;max-width:none;margin:0 auto;transform-origin:top left}
.osp-flownote{display:none;margin:12px 0 0;font-size:1.25rem;color:#5c7078}

.osp-svcfeat__lead{font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:clamp(1.7rem,2.1vw,2.1rem);line-height:1.85;color:#17323a;margin:0 0 22px}
.osp-svcfeat__list{display:flex;flex-direction:column;gap:10px;margin-bottom:44px}
.osp-svcfeat__li{display:flex;gap:10px;align-items:flex-start}
.osp-svcfeat__li span{flex:0 0 auto;color:#27a7c9;margin-top:4px}
.osp-svcfeat__li p{margin:0;font-size:1.45rem;line-height:1.9;color:#3a5259}
.osp-mixgrid{display:grid;grid-template-columns:1fr 1fr;gap:36px;max-width:960px;margin:0 auto}
.osp-mixcol__ttl{text-align:center;font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:1.8rem;line-height:1;margin-bottom:16px;display:flex;align-items:center;justify-content:center;gap:8px}
.osp-mixcol__ttl--red{color:#9e1b41}
.osp-mixcol__ttl--teal{color:#0d5560}
.osp-mixcol__boxes{display:flex;flex-direction:column;gap:12px}
.osp-mixbox{color:#fff;border-radius:8px;padding:18px 20px;text-align:center;font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:1.55rem;line-height:1.6;min-height:92px;display:flex;align-items:center;justify-content:center}
.osp-mixbox--red{background:#9e1b41}
.osp-mixbox--teal{background:#0d5560}
.osp-mixsummary{text-align:center;margin:32px 0 0;font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:clamp(1.4rem,1.8vw,1.7rem);line-height:1.8;color:#17323a}
@media(max-width:640px){.osp-mixgrid{grid-template-columns:1fr;gap:28px}}

.osp-svcgroup{margin-bottom:32px;background:#fff;border:1px solid #e6eef0;border-radius:10px;overflow:hidden}
.osp-svcgroup__head{display:flex;align-items:center;gap:14px;background:#063f4c;padding:22px 30px}
.osp-svcgroup__head h3{font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:2rem;line-height:1.4;color:#fff;margin:0}
.osp-svcgroup__body{padding:14px 30px 26px}
.osp-svcgroup__item{padding:18px 0;border-bottom:1px solid #eef3f4}
.osp-svcgroup__item:last-child{border-bottom:none}
.osp-svcgroup__item h4{font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:1.6rem;line-height:1.6;margin:0 0 8px;color:#17323a}
.osp-svcgroup__item p{margin:0;font-size:1.4rem;line-height:1.95;color:#3a5259}

/* =====================================================================
   11. company page
   ===================================================================== */
.osp-philo{position:relative;overflow:hidden}
.osp-philo__bgtext{position:absolute;top:60px;left:50%;transform:translateX(-50%);font-family:Barlow,sans-serif;font-weight:600;font-size:clamp(6rem,12vw,15rem);line-height:1;color:#eaf0f2;user-select:none;white-space:nowrap;pointer-events:none}
.osp-philo__inner{position:relative;text-align:center}
.osp-philo__icon{display:inline-flex;align-items:center;justify-content:center;margin-bottom:22px}
.osp-philo__icon img{width:64px;height:auto;display:block}
.osp-philo__en{display:block;font-family:Barlow,sans-serif;font-weight:600;font-size:1.4rem;line-height:1;letter-spacing:.28em;color:#27a7c9;text-transform:uppercase;margin:0 0 14px}
.osp-philo__ttl{font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:clamp(3.2rem,5vw,5.6rem);line-height:1.3;color:#075e70;letter-spacing:.01em;margin:0 0 40px}
.osp-philo__body{font-size:1.7rem;line-height:2.4;color:#26424a}
.osp-philo__body p{margin:0 0 26px}
.osp-philo__body p:last-child{margin-bottom:0}
.osp-philo__body b{color:#d12129}
.osp-philo__lead{font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:clamp(1.8rem,2.4vw,2.4rem);line-height:1.9;color:#17323a}

.osp-proftable{border-top:2px solid #27a7c9}
.osp-profrow{display:flex;align-items:stretch;border-bottom:1px solid #e6eef0}
.osp-profrow__label{width:190px;flex:0 0 auto;background:#f5f8f9;border-right:1px solid #e6eef0;padding:20px 24px;font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:1.4rem;line-height:1.6;color:#17323a}
.osp-profrow__val{flex:1 1 0;padding:20px 26px;font-size:1.45rem;line-height:1.9;color:#3a5259}
.osp-profrow__val a{color:#27a7c9;text-decoration:underline;text-underline-offset:3px}
.osp-profrow__val a i{margin-left:7px;font-size:1.15rem}
@media(max-width:640px){.osp-profrow{flex-direction:column}.osp-profrow__label{width:100%;border-right:none;border-bottom:1px solid #e6eef0}}

.osp-access{display:grid;grid-template-columns:1.3fr 1fr;gap:28px;align-items:start}
.osp-access__map{border-radius:8px;overflow:hidden;border:1px solid #e6eef0;background:#dfe8ea;aspect-ratio:16/10}
.osp-access__map .embed,.osp-access__map iframe{width:100%;height:100%}
.osp-access__mapph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;color:#7c9aa1;flex-direction:column;gap:8px}
.osp-access__mapph i{font-size:4rem;color:#a9c1c7}
.osp-access__mapph span{font-size:1.25rem;line-height:1.6}
.osp-access__mapph small{font-size:1.1rem}
.osp-access__card{background:#fff;border:1px solid #e6eef0;border-radius:8px;padding:34px 32px}
.osp-access__card h3{font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:1.7rem;line-height:1.5;margin:0 0 18px;color:#17323a}
.osp-access__addr{margin:0 0 22px;font-size:1.45rem;line-height:1.95;color:#3a5259}
.osp-access__routes{border-top:1px solid #eef3f4;padding-top:20px;display:flex;flex-direction:column;gap:14px}
.osp-access__route{display:flex;gap:12px;align-items:flex-start}
.osp-access__route i{flex:0 0 auto;color:#27a7c9;font-size:1.8rem;margin-top:2px}
.osp-access__route span{font-size:1.35rem;line-height:1.8;color:#3a5259}
.osp-access__route b{color:#17323a}
@media(max-width:1024px){.osp-access{grid-template-columns:1fr}}

/* =====================================================================
   12. news page : tabs / pager
   ===================================================================== */
.osp-newstabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:36px;border-bottom:1px solid #e2eaec;padding-bottom:24px}
.osp-newstab{cursor:pointer;border:1px solid #d3dfe2;background:#fff;color:#5c7078;font-family:"Zen Kaku Gothic New",sans-serif;font-weight:500;font-size:1.3rem;line-height:1;padding:11px 18px;border-radius:2px;transition:background .2s,color .2s,border-color .2s}
.osp-newstab:hover{border-color:#27a7c9;color:#27a7c9}
.osp-newstab.is-active{background:#27a7c9;border-color:#27a7c9;color:#fff}
.osp-newslist--page .osp-newsrow{padding:24px 6px;border-bottom:1px solid #e6eef0}
.osp-newslist--page{border-top:none}
/* 一覧が12件を超えたら枠内スクロール（約12行ぶんで頭打ち） */
.osp-newslist--page{max-height:888px;overflow-y:auto;overscroll-behavior:contain}
.osp-newslist--page::-webkit-scrollbar{width:8px}
.osp-newslist--page::-webkit-scrollbar-thumb{background:#b9dce3;border-radius:4px}
.osp-newslist--page::-webkit-scrollbar-track{background:#eef4f6}
/* 一覧ページは記事間ページャを表示しない（全件スクロール表示のため） */
.osp-newslist--page .pages{display:none}
.osp-newsrow.is-hidden{display:none}
.osp-pager{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:48px}
.osp-pager__item{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #e2eaec;border-radius:2px;color:#5c7078;font-family:Barlow,sans-serif;font-weight:600;font-size:1.4rem}
.osp-pager__item.is-current{background:#27a7c9;border-color:#27a7c9;color:#fff}
.osp-pager__item.is-disabled{color:#c4d6da}
a.osp-pager__item:hover{opacity:.8}

/* =====================================================================
   13. case page
   ===================================================================== */
.osp-casegrid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.osp-casecard{border:1px solid #e6eef0;border-radius:10px;overflow:hidden;background:#fff;display:block;color:inherit}
.osp-casecard:hover{opacity:1;box-shadow:0 10px 28px rgba(6,63,76,.1)}
.osp-casecard__thumb{aspect-ratio:16/10;background:repeating-linear-gradient(135deg,#f2f6f7,#f2f6f7 12px,#eef3f4 12px,#eef3f4 24px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#a9c1c7}
.osp-casecard__thumb i{font-size:3rem}
.osp-casecard__thumb span{font-family:Barlow,sans-serif;font-weight:600;font-size:1.1rem;line-height:1;letter-spacing:.18em;text-transform:uppercase}
.osp-casecard__thumb img{width:100%;height:100%;object-fit:cover;display:block}
.osp-casecard__body{padding:24px 24px 26px}
.osp-casecard__ttl{font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:1.6rem;line-height:1.6;margin:0 0 8px;color:#27a7c9}
.osp-casecard__text{margin:0;font-size:1.3rem;line-height:1.8;color:#5c7078}
.osp-sec--case-intro{padding:80px 0 40px}
.osp-sec--case-grid{padding:24px 0 80px}
.osp-note-muted{font-size:1.35rem;color:#5c7078}
@media(max-width:1024px){.osp-casegrid{grid-template-columns:1fr 1fr}.osp-sec--case-intro{padding:56px 0 32px}.osp-sec--case-grid{padding:16px 0 56px}}
@media(max-width:640px){.osp-casegrid{grid-template-columns:1fr}}

/* 成約事例フォーマット（case.php・1事例＝1つの .osp-cf ブロック）
   左：案件概要コメント＋画像 ／ 右：譲渡企業・譲受企業の表 */
.osp-cf{border:1px solid #e6eef0;border-radius:10px;background:#fff;padding:40px;box-shadow:0 6px 20px rgba(6,63,76,.05)}
.osp-cf+.osp-cf{margin-top:40px}
.osp-cf__cols{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}
.osp-cf__ttl{font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:2rem;line-height:1.6;color:#27a7c9;margin:0 0 10px}
.osp-cf__comment{font-size:1.5rem;line-height:2;color:#3a5259;margin:0 0 26px}
.osp-cf__figure{margin:0;aspect-ratio:4/3;border:1px solid #e6eef0;border-radius:8px;overflow:hidden;background:repeating-linear-gradient(135deg,#f2f6f7,#f2f6f7 12px,#eef3f4 12px,#eef3f4 24px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#a9c1c7}
.osp-cf__figure i{font-size:3rem}
.osp-cf__figure span{font-family:Barlow,sans-serif;font-weight:600;font-size:1.1rem;line-height:1;letter-spacing:.18em;text-transform:uppercase}
.osp-cf__figure img{width:100%;height:100%;object-fit:cover;display:block}
.osp-cf__group+.osp-cf__group{margin-top:26px}
.osp-cf__label{margin:0 0 6px;padding:10px 12px;border-radius:4px;background:#27a7c9;color:#fff;font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:1.6rem;line-height:1.4;letter-spacing:.08em;text-align:center}
.osp-cf__label--buy{background:#063f4c}
.osp-cf__table{width:100%;border-collapse:separate;border-spacing:0 4px;table-layout:fixed;margin:0}
.osp-cf__table th{width:7.5em;padding:11px 10px;background:#e4edef;color:#17323a;font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:1.4rem;line-height:1.6;text-align:center;vertical-align:top}
.osp-cf__table td{padding:11px 14px;background:#f2f6f7;color:#17323a;font-size:1.4rem;line-height:1.6;text-align:left;vertical-align:top;word-break:break-all}
@media(max-width:900px){
  .osp-cf{padding:28px 22px 30px}
  .osp-cf+.osp-cf{margin-top:28px}
  .osp-cf__cols{grid-template-columns:1fr;gap:28px}
  .osp-cf__ttl{font-size:1.8rem}
  .osp-cf__table th{width:6.5em;padding:10px 6px;font-size:1.3rem}
  .osp-cf__table td{padding:10px 12px;font-size:1.3rem}
}

/* =====================================================================
   14. contact form
   ===================================================================== */
.osp-form-intro{font-size:1.5rem;line-height:2.1;color:#3a5259;margin:0 0 40px}
.osp-ct-cards{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.osp-ct-card{border-radius:10px;padding:32px 30px}
.osp-ct-card--dark{background:#063f4c;color:#fff}
.osp-ct-card--dark h3{font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:1.6rem;margin:0;color:#fff}
.osp-ct-card--dark p{margin:0;font-size:1.35rem;line-height:1.95;color:rgba(255,255,255,.85)}
.osp-ct-card__head{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.osp-ct-card__icon{width:38px;height:38px;border-radius:50%;background:rgba(224,179,0,.16);display:flex;align-items:center;justify-content:center;color:#e0b300;font-size:1.8rem;flex:0 0 auto}
.osp-ct-card--tel{background:#f5f8f9;border:1px solid #e6eef0;display:flex;flex-direction:column;justify-content:center}
.osp-ct-card--tel .osp-ct-card__note{font-size:1.25rem;color:#5c7078;margin-bottom:6px}
.osp-ct-card__telnum{font-family:Barlow,sans-serif;font-weight:700;font-size:3.4rem;line-height:1.1;color:#075e70;display:inline-flex;align-items:center;gap:10px}
.osp-ct-card__telnum i{font-size:2.4rem}
.osp-ct-card__note2{font-size:1.25rem;color:#5c7078;margin-top:10px;line-height:1.7}
.osp-ct-card__formtext{margin:14px 0 0;font-size:1.3rem;line-height:1.85;color:#5c7078}
/* お問い合わせフォーム：個人情報の取り扱いについて（CMSカスタム項目） */
.osp-form .osp-privacy-note{margin:0 0 14px;font-size:1.4rem;line-height:1.9;color:#3a5259}
.osp-form .osp-privacy-note a{color:#27a7c9;text-decoration:underline;text-underline-offset:3px}
.osp-form .osp-privacy-check{display:flex;align-items:center;justify-content:flex-start;text-align:left;gap:10px;margin:0;width:fit-content;max-width:100%;padding:16px 20px;border:1px solid #e6eef0;border-radius:8px;background:#f5f8f9;font-size:1.45rem;font-weight:700;line-height:1.6;color:#17323a;cursor:pointer}
.osp-form .osp-privacy-check input{flex:0 0 auto;width:18px;height:18px;margin:0;accent-color:#27a7c9;cursor:pointer}
@media(max-width:640px){.osp-form .osp-privacy-check{font-size:1.3rem;padding:14px 16px}}
/* CMSフォーム本体：SPの余白（CMS側CSSより優先させる） */
@media(max-width:640px){.osp-form .form-contents{padding:35px 15px!important}}
@media(max-width:1024px){.osp-ct-cards{grid-template-columns:1fr}}

.osp-form{max-width:900px;margin:0 auto}
.osp-form__block{margin-bottom:26px}
.osp-form__label{display:flex;align-items:center;gap:8px;margin-bottom:10px;font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:1.4rem;color:#17323a}
.osp-req{font-size:1rem;color:#fff;background:#d12129;padding:3px 8px;border-radius:2px;font-weight:700;line-height:1.4}
.osp-any{font-size:1rem;color:#5c7078;background:#eef3f4;padding:2px 7px;border-radius:2px;font-weight:500;line-height:1.4}
.osp-form__grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-bottom:22px}
.osp-form__grid .osp-form__full{grid-column:1/-1}
.osp-radiolist{display:flex;flex-direction:column;gap:10px}
.osp-radiocard{display:flex;align-items:flex-start;gap:12px;background:#f5f8f9;border:1px solid #e6eef0;border-radius:4px;padding:14px 18px;cursor:pointer;font-size:1.45rem;color:#26424a;transition:border-color .2s,background .2s}
.osp-radiocard input{width:auto;margin-top:4px;accent-color:#27a7c9}
.osp-radiocard:has(input:checked){border-color:#27a7c9;background:#eaf5f7}
.osp-pilllist{display:flex;flex-wrap:wrap;gap:10px}
.osp-pill{display:inline-flex;align-items:center;gap:8px;border:1px solid #cfdadd;border-radius:999px;padding:9px 16px;cursor:pointer;font-size:1.35rem;color:#26424a}
.osp-pill input{width:auto;accent-color:#27a7c9}
.osp-pill:has(input:checked){border-color:#27a7c9;color:#27a7c9}
.osp-areapick{display:flex;gap:10px}
.osp-areapick label{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #cfdadd;border-radius:4px;padding:12px;cursor:pointer;font-size:1.4rem;color:#26424a}
.osp-areapick input{width:auto;accent-color:#27a7c9}
.osp-areapick label:has(input:checked){border-color:#27a7c9;color:#27a7c9;background:#eaf5f7}
.osp-consent{display:flex;align-items:flex-start;gap:12px;background:#f5f8f9;border:1px solid #e6eef0;border-radius:6px;padding:20px 22px;cursor:pointer;margin-bottom:34px}
.osp-consent input{width:auto;margin-top:4px;accent-color:#27a7c9}
.osp-consent span{font-size:1.4rem;line-height:1.9;color:#26424a}
.osp-consent b{color:#d12129}
.osp-consent a{border-bottom:1px solid #b9dce3}
.osp-form__submit{text-align:center}
.osp-form__submit .osp-btn{width:auto}
.osp-form__note{margin:16px 0 0;font-size:1.2rem;color:#8ba4ab}
.osp-form-done{display:none;background:#eaf5f7;border:1px solid #b9dce3;border-radius:12px;padding:56px 40px;text-align:center}
.osp-form-done.is-visible{display:block}
.osp-form-done__icon{display:inline-flex;width:64px;height:64px;border-radius:50%;background:#27a7c9;align-items:center;justify-content:center;margin-bottom:20px;color:#fff;font-size:3rem}
.osp-form-done h2{font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:2.4rem;margin:0 0 14px;color:#17323a}
.osp-form-done p{margin:0 0 26px;font-size:1.5rem;line-height:2;color:#3a5259}
@media(max-width:640px){.osp-form__grid{grid-template-columns:1fr}.osp-ct-card__telnum{font-size:2.8rem}}

/* =====================================================================
   15. entry (blog / case detail)
   ===================================================================== */
.osp-article__meta{display:flex;align-items:center;gap:14px;margin-bottom:18px}
.osp-article__date{font-family:Barlow,sans-serif;font-weight:600;font-size:1.4rem;color:#5c7078}
.osp-article__title{font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:clamp(2.2rem,3vw,3rem);line-height:1.5;color:#17323a;margin:0 0 28px;padding-bottom:28px;border-bottom:2px solid #27a7c9}
.osp-article__body{font-size:1.55rem;line-height:2.1;color:#3a5259}
.osp-article__body p{margin:0 0 22px}
.osp-article__body p:last-child{margin-bottom:0}
.osp-article__body h2{font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:2rem;color:#17323a;margin:36px 0 14px}
.osp-article__body img{max-width:100%;height:auto;border-radius:8px;margin:8px 0}
.osp-article__figure{margin:0 0 28px}
.osp-article__figure img{width:100%;height:auto;border-radius:8px;display:block}
.osp-article__pager{margin-top:48px}
.osp-article__pager .pages{display:flex;justify-content:space-between;align-items:stretch;gap:14px;flex-wrap:wrap}
.osp-article__pager .page_next,.osp-article__pager .page_prev{flex:1 1 0;min-width:0;display:flex}
.osp-article__pager .page_prev{justify-content:flex-end;margin-left:auto}
.osp-article__pager .pages a{display:inline-flex;align-items:center;gap:8px;max-width:100%;color:#27a7c9;font-weight:700;font-size:1.4rem;line-height:1.6;border:1px solid #b9dce3;border-radius:4px;padding:12px 18px;background:#fff;transition:background .2s,color .2s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.osp-article__pager .pages a:hover{background:#27a7c9;color:#fff;opacity:1}
.osp-article__pager:empty{display:none}
/* privacy policy */
.osp-privacy{font-size:1.45rem;line-height:1.9;color:#3a5259;max-height:360px;overflow-y:auto;border:1px solid #e6eef0;border-radius:8px;background:#fff;padding:24px 28px;overscroll-behavior:contain}
.osp-privacy::-webkit-scrollbar{width:8px}
.osp-privacy::-webkit-scrollbar-thumb{background:#b9dce3;border-radius:4px}
.osp-privacy::-webkit-scrollbar-track{background:#eef4f6}
.osp-privacy p{margin:0 0 18px}
.osp-privacy h3{font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:1.7rem;color:#17323a;margin:28px 0 8px}
.osp-privacy ul{margin:0 0 18px;padding-left:1.4em;list-style:disc}
.osp-privacy li{margin:0 0 6px}
@media(max-width:640px){.osp-article__pager .pages a{font-size:1.3rem;padding:10px 14px}}

/* global form controls (design準拠) */
.osp-form input[type=text],.osp-form input[type=tel],.osp-form input[type=email],.osp-form select,.osp-form textarea{width:100%;font-family:inherit;font-size:1.5rem;color:#17323a;padding:13px 15px;border:1px solid #cfdadd;border-radius:3px;background:#fff;outline:none;transition:border-color .2s,box-shadow .2s}
.osp-form textarea{resize:vertical;line-height:1.8}
.osp-form input:focus,.osp-form select:focus,.osp-form textarea:focus{border-color:#27a7c9;box-shadow:0 0 0 3px rgba(39,167,201,.12)}

/* ===== スマホ用フォント/レイアウト調整（body 13px 基準・rem=10px維持） ===== */
@media(max-width:640px){
  body{font-size:1.3rem}
  .osp-h2{font-size:2.3rem;text-align:center;text-wrap:balance;word-break:auto-phrase}
  .osp-h2--lg{font-size:2.5rem}
  .osp-h2--md{font-size:2.5rem}
  .osp-phero__ttl{font-size:2.4rem}
  .osp-ctabox__ttl{font-size:2rem}
  .osp-finalcta__ttl{font-size:2rem}
  .osp-diag__ttl{font-size:2rem}
  .osp-barhead{font-size:1.7rem}
  .osp-article__title{font-size:1.9rem}
  .osp-philo__ttl{font-size:2.6rem}
  .osp-philo__lead{font-size:1.5rem;text-align:left}
  .osp-svcfeat__lead{font-size:1.5rem}
  .osp-mixsummary{font-size:1.35rem;text-align:left}
  .osp-philo__body{text-align:left}
  .osp-access__route span{font-size:1.2rem}
  .osp-header__logo img{height:38px}
  .osp-secttl__lead{text-align:left}
  .osp-svcfeat__lead{text-align:left}
  .osp-ctabox__text{text-align:left}
  .osp-btn{font-size:1.3rem;padding:16px 22px;line-height:1.45}
  .osp-philo__body p{font-size:1.4rem}
  .osp-h2--sm{font-size:1.8rem}
  .osp-lead{text-align:left;font-size:1.38rem}
  .osp-footer__label,.osp-footer__sitemap{display:none}
  .osp-footer__logo img{height:32px}
  .osp-footer__policylist{gap:8px 16px}
  .osp-footer__policylist a{font-size:1.2rem}
  .osp-duo__plabel{width:44px}
  .osp-finalcta__text{text-align:center;text-wrap:balance;word-break:auto-phrase}
  .osp-secttl__row{justify-content:center}
}
