/* ============================================================
   G-Trust 共有スタイル（サービス詳細・ブログ等のサブページ用）
   ※トップページ index.html はページ内CSSを使用
============================================================ */
:root{
  --bg:#ffffff;--bg-sub:#f1f7fb;--ink:#0f2942;--ink-sub:#5a6b7b;
  --primary:#0b3a66;--brand:#06b6d4;--brand-dark:#0891b2;--accent:#ff6a3d;--accent-dark:#ff5a2c;
  --success:#16b981;--line:#e4edf3;
  --grad-brand:linear-gradient(135deg,#06b6d4,#0b3a66);
  --grad-accent:linear-gradient(135deg,#ff7a4d,#ff5a2c);
  --shadow:0 12px 32px rgba(11,58,102,.10);--shadow-lg:0 22px 50px rgba(11,58,102,.16);
  --radius:20px;--maxw:1160px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Segoe UI",sans-serif;color:var(--ink);background:var(--bg);line-height:1.9;font-size:clamp(16px,2vw,18px);-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.eyebrow{font-family:"Poppins",sans-serif;font-weight:600;font-size:14px;letter-spacing:.14em;text-transform:uppercase;color:var(--brand);display:inline-block;margin-bottom:14px}

/* ボタン */
.btn{display:inline-flex;align-items:center;gap:10px;justify-content:center;font-weight:700;border-radius:999px;padding:16px 30px;font-size:16px;transition:transform .25s,box-shadow .25s,background .25s;cursor:pointer;border:none;white-space:nowrap}
.btn-accent{background:var(--grad-accent);color:#fff;box-shadow:0 12px 26px rgba(255,90,44,.34)}
.btn-accent:hover{transform:translateY(-3px);box-shadow:0 18px 34px rgba(255,90,44,.42)}
.btn-ghost{background:#fff;color:var(--primary);box-shadow:var(--shadow)}
.btn-ghost:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}
.btn-brand{background:var(--grad-brand);color:#fff;box-shadow:0 12px 26px rgba(8,145,178,.30)}
.btn-brand:hover{transform:translateY(-3px)}

/* 上部バー＋ヘッダー（index.htmlと共通の見た目） */
.topbar{background:#fff;border-bottom:1px solid var(--line)}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:48px;padding:6px 0}
.topbar-co{font-size:12.5px;color:var(--ink-sub);letter-spacing:.04em}
.topbar-co b{color:var(--primary);font-weight:700}
.badges{display:flex;align-items:center;gap:12px}
.badges img{height:38px;width:auto;display:block;transition:transform .2s}
.badges a:hover img{transform:translateY(-2px)}
.topbar-sec{font-size:12.5px;font-weight:700;color:var(--primary);white-space:nowrap;display:inline-flex;align-items:center;margin-right:4px}
.topbar-sec:hover{color:var(--brand)}

.header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);transition:box-shadow .3s,padding .3s;padding:12px 0}
.header.scrolled{box-shadow:0 4px 20px rgba(11,58,102,.10);padding:8px 0}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:20px}
.logo{display:flex;align-items:center;gap:11px}
.logo .mark{height:46px;display:flex;align-items:center;flex:none;transition:height .3s}
.logo .mark img{height:46px;width:auto;display:block;transition:height .3s}
.header.scrolled .logo .mark img{height:40px}
.logo-text b{font-family:"Poppins",sans-serif;font-size:18px;letter-spacing:.02em;color:var(--primary);display:block;line-height:1.2;white-space:nowrap}
.logo-text>span{font-size:10px;letter-spacing:.12em;color:var(--ink-sub);font-family:"Poppins",sans-serif;white-space:nowrap}
.nav{display:flex;align-items:center;gap:20px}
.nav a{font-size:14px;font-weight:500;color:var(--ink);transition:color .2s;white-space:nowrap}
.nav a:hover{color:var(--brand)}
.nav .nav-sec{display:none;color:var(--brand-dark);font-weight:700}
.header-cta{display:flex;align-items:center;gap:16px}
.header-tel{display:flex;flex-direction:column;line-height:1.2;text-align:right}
.header-tel small{font-size:11px;color:var(--ink-sub);white-space:nowrap}
.header-tel b{font-size:19px;color:var(--accent);font-family:"Poppins",sans-serif;white-space:nowrap}
.header .btn{padding:12px 22px;font-size:14.5px}
.hamburger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px}
.hamburger span{width:26px;height:2.5px;background:var(--primary);border-radius:2px;transition:.3s}

/* パンくず */
.breadcrumb{background:var(--bg-sub);font-size:13px;color:var(--ink-sub)}
.breadcrumb .wrap{padding-top:12px;padding-bottom:12px}
.breadcrumb a:hover{color:var(--brand)}
.breadcrumb span{margin:0 8px;opacity:.5}

/* ページヒーロー */
.page-hero{position:relative;color:#fff;overflow:hidden;padding:clamp(54px,8vw,90px) 0;background-image:radial-gradient(70% 120% at 100% 0,rgba(6,182,212,.5),transparent 55%),linear-gradient(135deg,#0b3a66,#0a2740)}
.page-hero .eyebrow{color:#67e8f9}
.page-hero h1{font-size:clamp(28px,5vw,46px);font-weight:800;line-height:1.3}
.page-hero p{margin-top:16px;font-size:clamp(15px,2vw,18px);color:rgba(255,255,255,.85);max-width:40em}
.page-hero .em{font-size:clamp(48px,8vw,72px);margin-bottom:8px;display:block}

/* セクション・本文 */
.section{padding:clamp(56px,9vw,104px) 0}
.bg-sub{background:var(--bg-sub)}
.lead{font-size:clamp(17px,2.2vw,20px);color:var(--ink-sub);max-width:42em;margin-bottom:8px}
.prose h2{font-size:clamp(22px,3.5vw,32px);font-weight:800;color:var(--primary);margin:0 0 18px;line-height:1.4}
.prose h2 .hl{background:var(--grad-brand);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.prose h3{font-size:20px;font-weight:700;margin:34px 0 12px}
.prose p{margin-bottom:16px}
.prose ul{list-style:none;display:grid;gap:12px;margin:18px 0}
.prose ul li{display:flex;gap:12px;align-items:flex-start;font-size:16px}
.prose ul li::before{content:"✓";color:var(--success);font-weight:800;flex:none}

/* 機能カード（料金目安・対応内容など） */
.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:8px}
.feature-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px}
.feature-card .ic{font-size:34px;margin-bottom:14px}
.feature-card h3{font-size:18px;margin-bottom:8px}
.feature-card p{font-size:14.5px;color:var(--ink-sub)}

/* 関連サービス */
.relcards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.relcard{display:block;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:26px;transition:transform .3s,box-shadow .3s}
.relcard:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
.relcard .ic{font-size:30px;margin-bottom:12px}
.relcard b{display:block;font-size:17px;margin-bottom:6px}
.relcard span{font-size:13.5px;color:var(--ink-sub)}
.relcard .go{margin-top:14px;color:var(--brand-dark);font-weight:700;font-size:14px}

/* CTAバンド */
.cta-band{background-image:linear-gradient(135deg,#0b3a66,#0c2c4d);color:#fff;border-radius:var(--radius);padding:clamp(34px,5vw,56px);text-align:center;box-shadow:var(--shadow-lg)}
.cta-band h2{font-size:clamp(22px,3.5vw,32px);font-weight:800;margin-bottom:10px}
.cta-band p{color:rgba(255,255,255,.82);margin-bottom:26px}
.cta-band .tel{font-family:"Poppins",sans-serif;font-size:clamp(26px,4vw,40px);font-weight:700;color:#fff;display:inline-block;margin-bottom:6px}
.cta-band .actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:18px}

/* フッター */
.footer{background:#0a2236;color:rgba(255,255,255,.72);padding:64px 0 0}
.footer-top{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;padding-bottom:44px}
.footer-logo{display:flex;align-items:center;gap:11px}
.footer-logo .mark{background:#fff;border-radius:9px;padding:6px 8px}
.footer-logo .mark img{height:42px;width:auto}
.footer .logo-text b{color:#fff}
.footer .logo-text>span{color:rgba(255,255,255,.5)}
.footer-about{margin-top:20px;font-size:14px;max-width:34em}
.footer-badges{display:flex;align-items:center;gap:12px;margin-top:22px}
.footer-badges img{height:46px;width:auto;background:#fff;border-radius:6px;padding:4px}
.footer h5{color:#fff;font-size:14px;letter-spacing:.08em;margin-bottom:18px;font-family:"Poppins",sans-serif}
.footer-links{list-style:none;display:flex;flex-direction:column;gap:11px}
.footer-links a{font-size:14px;transition:color .2s}
.footer-links a:hover{color:var(--brand)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding:22px 0;display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;font-size:12.5px}

/* ブログ一覧 */
.bloglist{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.bloglist a{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:transform .3s,box-shadow .3s}
.bloglist a:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg)}
.bloglist .thumb{height:160px;display:grid;place-items:center;font-size:52px;color:#fff}
.tb-news{background:linear-gradient(135deg,#0b3a66,#0c2c4d)}
.tb-ac{background:linear-gradient(135deg,#06b6d4,#0b3a66)}
.tb-eco{background:linear-gradient(135deg,#16b981,#0891b2)}
.bloglist .b{padding:22px 24px 26px}
.bloglist .m{display:flex;align-items:center;gap:9px;margin-bottom:12px;flex-wrap:wrap}
.bloglist .m time{font-size:12.5px;color:var(--ink-sub);font-family:"Poppins",sans-serif}
.chip{background:var(--bg-sub);color:var(--brand-dark);font-size:12.5px;font-weight:700;padding:4px 12px;border-radius:999px}
.tag-new{background:var(--accent);color:#fff;font-size:11px;font-weight:700;padding:3px 10px;border-radius:999px;font-family:"Poppins",sans-serif;letter-spacing:.05em}
.bloglist h3{font-size:17.5px;line-height:1.5;margin-bottom:10px}
.bloglist p{font-size:14px;color:var(--ink-sub)}

/* ブログ記事 */
.article{max-width:760px;margin:0 auto}
.article .ahead{margin-bottom:30px}
.article .m{display:flex;align-items:center;gap:9px;margin-bottom:16px;flex-wrap:wrap}
.article h1{font-size:clamp(24px,4vw,36px);font-weight:800;line-height:1.45}
.article .body{font-size:17px}
.article .body h2{font-size:22px;font-weight:800;color:var(--primary);margin:36px 0 14px;padding-left:13px;border-left:5px solid var(--brand);line-height:1.4}
.article .body h3{font-size:18px;font-weight:700;margin:26px 0 10px}
.article .body p{margin-bottom:16px}
.article .body ul,.article .body ol{margin:0 0 16px 1.4em}
.article .body li{margin-bottom:8px}
.article .body .note{background:var(--bg-sub);border-radius:14px;padding:18px 22px;font-size:15px;color:var(--ink-sub)}
.article .back{display:inline-block;margin-top:40px;color:var(--brand-dark);font-weight:700}

/* スクロール演出 */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s,transform .7s}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1!important;transform:none!important;transition:none!important}
  html{scroll-behavior:auto}
}

/* レスポンシブ */
@media(max-width:1024px){
  .nav{display:none}
  .hamburger{display:flex}
  .nav.open{display:flex;position:absolute;top:100%;left:0;right:0;flex-direction:column;background:#fff;padding:18px 24px;gap:4px;box-shadow:0 12px 24px rgba(11,58,102,.12)}
  .nav.open a{padding:11px 0;border-bottom:1px solid var(--line);width:100%;font-size:15px}
  .nav.open .nav-sec{display:block}
}
@media(max-width:960px){
  .feature-grid{grid-template-columns:1fr 1fr}
  .relcards{grid-template-columns:1fr}
  .bloglist{grid-template-columns:1fr 1fr}
  .footer-top{grid-template-columns:1fr 1fr}
  .footer-top>div:first-child{grid-column:1/-1}
}
@media(max-width:760px){
  .header-tel,.header-cta .btn{display:none}
  .topbar-co,.topbar-sec{display:none}.topbar-inner{justify-content:center}
  .badges img{height:32px}
  .logo-text>span{display:none}.logo-text b{font-size:17px}
  .feature-grid{grid-template-columns:1fr}
  .bloglist{grid-template-columns:1fr}
  .footer-top{grid-template-columns:1fr}
  .footer-bottom{flex-direction:column;text-align:center}
}
