/*
Theme Name: NEXORA v370
Theme URI: https://nexora-base.com/
Author: NEXORA
Description: ドローン点検・空撮・イベントサービス「NEXORA」の固定ページ対応WordPressテーマ。
Version: 3.7.2
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: nexora-v370
*/

/* ===== style-block-1 ===== */
/* ═══ DESIGN TOKENS ═══════════════════════════ */
:root{
  /* ── ベース ── */
  --dark:   #ffffff;   /* ベース背景: 白 */
  --dark2:  #f5fafc;   /* セクション交互: 青みのある淡 */
  --dark3:  #eaf4fa;   /* カード/帯背景 */
  --card:   #f0f8fc;
  --bdr:    #e3edf3;   /* 青みのある淡ボーダー */
  --text:   #1f2937;   /* メインテキスト: 黒を少し柔らかく */
  --text2:  #5a6878;
  --text3:  #9aa5b4;
  /* ── カラー ── */
  --blue:   #41aadc;   /* ベース: 明るく爽やかなシアン寄りブルー */
  --blue2:  #2d92c5;   /* ホバー */
  --blue3:  #c8e6f5;   /* 淡ブルー: タグ/帯 */
  --blue4:  #f0f8fc;   /* 極淡: セクション背景 */
  --bluebg: rgba(65,170,220,.08);
  --yellow: #FFCB00;   /* アクセント: 黄（最重要CTA・タグ・ハイライト用） */
  --yellow2:#e0b800;
  --white:  #ffffff;
  --surface:#f5fafc;
  /* ── 角丸 ── */
  --r-sm:   8px;
  --r-md:   16px;
  --r-lg:   24px;
  --r-full: 100px;
  /* ── 影（青みのある柔らかい影） ── */
  --shadow-sm: 0 4px 12px rgba(65,170,220,.08);
  --shadow-md: 0 8px 24px rgba(65,170,220,.12);
  --shadow-lg: 0 16px 40px rgba(65,170,220,.16);
  /* ── フォント ── */
  --serif:  "Zen Kaku Gothic New", sans-serif;  /* 互換用に残置 */
  --sans:   "Zen Kaku Gothic New", sans-serif;   /* 本文・見出し: あおとゴシック近似 */
  --num:    "Zen Maru Gothic", sans-serif;       /* 数字: 新丸ゴ近似 */
  --eng:    "Outfit", sans-serif;
  --w:      1120px;
  --px:     40px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{overflow-x:hidden}
body{
  background:#ffffff;color:#111827;
  font-family:var(--sans);font-size:15px;
  line-height:1.85;font-weight:400;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
  letter-spacing:.02em;
}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.W{max-width:var(--w);margin:0 auto;padding:0 var(--px)}

/* reveal */
.rv{opacity:0;transform:translateY(20px);transition:opacity .7s,transform .7s}
.rv.in{opacity:1;transform:none}
.d1{transition-delay:.1s}.d2{transition-delay:.2s}.d3{transition-delay:.3s}.d4{transition-delay:.4s}

/* ─── NAV ────────────────────────────── */
#nav{
  position:fixed;top:0;left:0;right:0;z-index:900;
  background:#ffffff;
  border-bottom:1px solid #e0e8f0;
  box-shadow:0 2px 16px rgba(0,0,0,.08);
  transition:box-shadow .3s;
}
.nw{
  max-width:var(--w);margin:0 auto;padding:0 var(--px);
  height:70px;display:flex;align-items:center;justify-content:space-between;
}
.nl img{height:40px;width:auto}
.nm{display:flex;align-items:center;gap:2px;list-style:none}
.nm li a{
  font-family:var(--eng);font-size:11px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;
  color:#1a2a3e;padding:8px 13px;
  transition:color .2s;
}
.nm li a:hover,.nm li a.cur{color:var(--blue)}
.nm li.sub-p{position:relative}
.nm li.sub-p>a::after{content:" ▾";font-size:9px}
.nm-sub{
  position:absolute;top:calc(100% + 4px);left:0;
  background:#fff;border:1px solid #dce8f4;
  min-width:200px;list-style:none;padding:8px;
  opacity:0;pointer-events:none;transform:translateY(-6px);
  transition:opacity .2s,transform .2s;
  box-shadow:0 8px 32px rgba(0,50,100,.12);
  border-radius:8px;
}
.nm li.sub-p:hover .nm-sub,
.nm li.sub-p.op .nm-sub{opacity:1;pointer-events:auto;transform:none}
.nm-sub li a{
  display:block;padding:10px 14px;
  font-family:var(--sans);font-size:13px;font-weight:400;
  color:#3a4a60;transition:background .15s,color .15s;
  letter-spacing:.02em;text-transform:none;border-radius:8px;
}
.nm-sub li a:hover{background:var(--bluebg);color:var(--blue)}
.nc{
  font-family:var(--eng);font-size:11px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;
  background:var(--blue);color:#fff;
  padding:10px 22px;
  transition:background .2s,transform .15s;
  white-space:nowrap;border-radius:8px;
}
.nc:hover{background:var(--blue2);transform:translateY(-1px)}
.hm{
  display:none;flex-direction:column;gap:5px;
  cursor:pointer;padding:8px;background:none;border:none;
}
.hm span{display:block;width:22px;height:2px;background:#1a2a40;
  border-radius:8px;transition:.3s}
.hm.op span:first-child{transform:rotate(45deg) translate(5px,5px)}
.hm.op span:nth-child(2){opacity:0}
.hm.op span:last-child{transform:rotate(-45deg) translate(5px,-5px)}

/* ─── HERO ───────────────────────────── */
.hero{position:relative;width:100%;height:100vh;min-height:600px;overflow:hidden}
.hv{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.hf{
  position:absolute;inset:0;z-index:0;
  background:linear-gradient(170deg,#0a1628 0%,#0d1e3a 40%,#091422 100%);
}
.hf::before{
  content:"";position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(0,148,216,.03) 1px,transparent 1px),
    linear-gradient(90deg,rgba(0,148,216,.03) 1px,transparent 1px);
  background-size:60px 60px;
}
.hf::after{
  content:"";position:absolute;top:-20%;left:30%;
  width:70vw;height:70vw;
  background:radial-gradient(ellipse,rgba(0,148,216,.05) 0%,transparent 60%);
}
.ho{
  position:absolute;inset:0;z-index:2;
  background:
    linear-gradient(to top,rgba(6,11,22,.95) 0%,rgba(6,11,22,.4) 50%,transparent 100%),
    linear-gradient(to right,rgba(6,11,22,.6) 0%,transparent 60%);
}
.hc{position:absolute;bottom:0;left:0;right:0;z-index:2;padding:0 0 80px}
.hi{max-width:var(--w);margin:0 auto;padding:0 var(--px)}
.hl{
  font-family:var(--eng);font-size:10px;font-weight:600;
  letter-spacing:.3em;color:var(--blue);text-transform:uppercase;
  display:flex;align-items:center;gap:14px;margin-bottom:20px;
}
.hl::before{content:"";width:36px;height:1px;background:var(--blue);flex-shrink:0}
.hh1{
  font-family:var(--eng);font-size:clamp(34px,5.5vw,72px);
  font-weight:600;line-height:1.1;color:var(--white);
  letter-spacing:.02em;margin-bottom:6px;
}
.hh2{
  font-family:var(--sans);font-size:clamp(14px,2vw,20px);
  font-weight:400;line-height:1.6;color:rgba(200,216,232,.6);
  margin-bottom:24px;letter-spacing:.04em;
}
.hb{
  font-family:var(--sans);font-size:13px;font-weight:400;
  color:rgba(200,216,232,.7);line-height:2;margin-bottom:34px;
  max-width:420px;letter-spacing:.04em;
}
.hbtns{display:flex;gap:12px;flex-wrap:wrap}
.hscrll{
  position:absolute;right:var(--px);bottom:32px;z-index:2;
  display:flex;flex-direction:column;align-items:center;gap:8px;
}
.hsline{width:1px;height:48px;background:linear-gradient(var(--blue),transparent);animation:sp 1.8s ease-in-out infinite;box-shadow:0 0 8px var(--blue)}
.hstxt{font-family:var(--eng);font-size:8px;font-weight:600;letter-spacing:.25em;color:rgba(200,216,232,.4);writing-mode:vertical-rl}
@keyframes sp{0%,100%{opacity:.5;transform:scaleY(1)}50%{opacity:1;transform:scaleY(.5)}}

/* ─── BUTTONS ─────────────────────────── */
.bp{
  display:inline-flex;align-items:center;gap:10px;
  padding:14px 30px;background:var(--blue);color:#fff;
  font-family:var(--sans);font-size:13px;font-weight:700;letter-spacing:.05em;
  border-radius:var(--r-full);
  transition:background .25s,transform .2s,box-shadow .25s;
  box-shadow:var(--shadow-sm);
}
.bp:hover{background:var(--blue2);transform:translateY(-2px);box-shadow:var(--shadow-md)}
.bp svg{transition:transform .25s}.bp:hover svg{transform:translateX(4px)}
.bs{
  display:inline-flex;align-items:center;gap:10px;
  padding:13px 28px;border:1.5px solid var(--blue);
  background:#ffffff;color:var(--blue);
  font-family:var(--sans);font-size:13px;font-weight:700;letter-spacing:.05em;
  border-radius:var(--r-full);
  transition:background .25s,border-color .25s,color .25s,transform .2s;
}
.bs:hover{background:var(--blue);color:#ffffff;transform:translateY(-2px)}
.bs svg{transition:transform .25s}.bs:hover svg{transform:translateX(4px)}
/* アクセントCTAボタン: 黄色塗り（最重要箇所用） */
.bac{
  display:inline-flex;align-items:center;gap:10px;
  padding:14px 30px;background:var(--yellow);color:#1f2937;
  font-family:var(--sans);font-size:13px;font-weight:800;letter-spacing:.04em;
  border-radius:var(--r-full);
  transition:background .25s,transform .2s,box-shadow .25s;
  box-shadow:0 4px 16px rgba(255,203,0,.3);
}
.bac:hover{background:var(--yellow2);transform:translateY(-2px);box-shadow:0 8px 24px rgba(255,203,0,.4)}
.bac svg{transition:transform .25s}.bac:hover svg{transform:translateX(4px)}

/* ─── TICKER ─────────────────────────── */
.tt{display:flex;white-space:nowrap;animation:tL 28s linear infinite}
.tt.rev{animation:tR 28s linear infinite}
.tt:hover{animation-play-state:paused}
@keyframes tL{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes tR{from{transform:translateX(-50%)}to{transform:translateX(0)}}
.ti{
  font-family:var(--eng);font-size:10px;font-weight:700;
  letter-spacing:.22em;color:rgba(255,255,255,.95);text-transform:uppercase;
  padding:0 26px;display:inline-flex;align-items:center;gap:26px;
}
.ti::after{content:"✦";opacity:.5;font-size:7px}

/* ─── NEWS BAR ───────────────────────── */
.nbar{background:#edf2f7;border-bottom:1px solid var(--bdr);padding:11px 0}
.nbar-in{
  max-width:var(--w);margin:0 auto;padding:0 var(--px);
  display:flex;align-items:center;gap:18px;
}
.ntag{font-family:var(--eng);font-size:9px;font-weight:700;letter-spacing:.15em;color:var(--blue);background:var(--bluebg);padding:4px 10px;text-transform:uppercase;white-space:nowrap}
.ndate{font-family:var(--eng);font-size:10px;color:var(--text3);white-space:nowrap;letter-spacing:.06em}
.ntxt{font-family:var(--sans);font-size:12.5px;color:#4a5568;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nall{font-family:var(--eng);font-size:9px;font-weight:700;letter-spacing:.14em;color:var(--text3);white-space:nowrap;margin-left:auto;text-transform:uppercase;transition:color .2s}
.nall:hover{color:var(--blue)}

/* ─── SECTION COMMON ─────────────────── */
.en{font-family:var(--eng);font-size:10px;font-weight:700;letter-spacing:.28em;color:var(--blue);text-transform:uppercase;display:block;margin-bottom:14px}
.ttl{font-family:var(--sans);font-size:clamp(20px,2.5vw,30px);font-weight:700;color:#111827;line-height:1.55;letter-spacing:.04em;margin-bottom:14px}
.desc{font-family:var(--sans);font-size:13px;font-weight:400;color:#4a5568;line-height:2.1;max-width:560px;letter-spacing:.03em}
.bar{width:36px;height:1px;background:var(--blue);margin:16px 0;opacity:.7}

/* ─── HOME ABOUT ─────────────────────── */
.sa{padding:96px 0;background:var(--dark)}
.ag{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.fl{display:flex;flex-direction:column;border-top:1px solid var(--bdr)}
.fi{display:grid;grid-template-columns:38px 1fr;gap:16px;padding:20px 0;border-bottom:1px solid var(--bdr);align-items:start}
.fn{font-family:var(--eng);font-size:10px;font-weight:700;width:30px;height:30px;border-radius:50%;background:var(--bluebg);border:1px solid rgba(0,148,216,.3);display:flex;align-items:center;justify-content:center;color:var(--blue);flex-shrink:0;margin-top:3px}
.fi h4{font-family:var(--sans);font-size:13.5px;font-weight:700;color:#111827;margin-bottom:3px;letter-spacing:.03em}
.fi p{font-family:var(--sans);font-size:12px;font-weight:400;color:#4a5568;line-height:1.9}

/* ─── HOME SERVICE ───────────────────── */
.ss{padding:96px 0;background:#161b27;border-top:1px solid #1a2a3e}
.sg{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--bdr)}
.sc{background:#1a2233;cursor:pointer;position:relative;overflow:hidden;transition:transform .3s}
.sc:hover{transform:translateY(-3px)}
.sci{aspect-ratio:16/10;position:relative;overflow:hidden;background:var(--dark3)}
.sci img{width:100%;height:100%;object-fit:cover;filter:brightness(.72);transition:transform .7s,filter .3s}
.sc:hover .sci img{transform:scale(1.06);filter:brightness(.88)}
.scn{position:absolute;top:14px;right:14px;font-family:var(--eng);font-size:10px;font-weight:700;letter-spacing:.12em;color:#fff;background:rgba(0,148,216,.75);padding:4px 10px}
.scb{padding:20px 20px 24px;border-top:2px solid var(--blue);background:#1a2233}
.scb h3{font-family:var(--sans);font-size:15px;font-weight:700;color:#111827;margin-bottom:8px;letter-spacing:.03em}
.scb p{font-family:var(--sans);font-size:12px;font-weight:400;color:#4a5568;line-height:1.9}
.scm{display:inline-flex;align-items:center;gap:6px;margin-top:12px;font-family:var(--eng);font-size:9.5px;font-weight:700;letter-spacing:.1em;color:var(--blue);text-transform:uppercase;border-bottom:1px solid rgba(0,148,216,.3);padding-bottom:1px;transition:gap .2s}
.sc:hover .scm{gap:10px}

/* ─── HOME TRUST ─────────────────────── */
.st{padding:96px 0;background:var(--dark);border-top:1px solid var(--bdr)}
.tg{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--bdr);margin-top:48px}
.tc{
  background:var(--card);padding:32px 28px;
  border-top:2px solid var(--blue);
  transition:background .25s;
}
.tc:hover{background:var(--dark3)}
.tcen{font-family:var(--eng);font-size:9px;font-weight:700;letter-spacing:.2em;color:var(--blue);display:block;margin-bottom:14px;text-transform:uppercase}
.tc h3{font-family:var(--sans);font-size:14.5px;font-weight:700;color:#111827;margin-bottom:10px;letter-spacing:.03em}
.tc p{font-family:var(--sans);font-size:12.5px;font-weight:400;color:#4a5568;line-height:1.95}

/* ─── CTA BAND ───────────────────────── */
.ctab{background:#f0f6ff;border-top:2px solid var(--blue);border-bottom:1px solid #dce8f4;padding:72px 0}
.ctab-in{max-width:var(--w);margin:0 auto;padding:0 var(--px);display:flex;align-items:center;justify-content:space-between;gap:48px;flex-wrap:wrap}
.ctab-h{font-family:var(--sans);font-size:clamp(17px,2vw,24px);font-weight:700;color:#111827;line-height:1.6;letter-spacing:.04em;margin-bottom:6px}
.ctab-sub{font-family:var(--sans);font-size:13px;font-weight:400;color:#4a5568;line-height:1.9}
.ctab-btns{display:flex;gap:10px;flex-wrap:wrap;flex-shrink:0}

/* ─── FOOTER ─────────────────────────── */
.footer{background:#ffffff;border-top:1px solid #e0e8f0;padding:64px 0 0}
.footer-in{max-width:var(--w);margin:0 auto;padding:0 var(--px)}
.ftop{display:grid;grid-template-columns:220px 1fr;gap:64px;padding-bottom:48px;border-bottom:1px solid #e0e8f0}
.flogo{display:inline-block;margin-bottom:12px}
.flogo img{height:32px;width:auto;display:block}

/* footer-logo クラス（各ページフッター用） */
.footer-logo{display:inline-block;margin-bottom:12px}
.footer-logo img{height:32px;width:auto;display:block}
.fcatch{font-family:var(--eng);font-size:10px;letter-spacing:.1em;color:#9aabbf;display:block;margin-bottom:16px;text-transform:uppercase}
.fsocial,.footer-social{display:flex;gap:8px}
.fsocial a,.footer-social a{font-family:var(--eng);font-size:10px;font-weight:600;letter-spacing:.08em;color:#3a4a60;padding:7px 14px;border:1px solid #c0d4e8;border-radius:8px;transition:border-color .2s,color .2s;text-transform:uppercase}
.fsocial a:hover,.footer-social a:hover{border-color:var(--blue);color:var(--blue)}
.fnav{display:grid;grid-template-columns:repeat(4,1fr);gap:0;align-content:start}
.fnav a{font-family:var(--sans);font-size:12.5px;font-weight:400;letter-spacing:.04em;color:#3a4a60;padding:10px 0;transition:color .2s;display:block}
.fnav a:hover{color:var(--blue)}
.fbtm{border-top:1px solid #e0e8f0;padding:22px 0 48px;display:flex;align-items:center;justify-content:space-between}
.fcopy{font-family:var(--eng);font-size:9px;letter-spacing:.1em;color:#9aabbf}
.fptop{font-family:var(--eng);font-size:9px;font-weight:700;letter-spacing:.18em;color:#9aabbf;cursor:pointer;text-transform:uppercase;display:flex;align-items:center;gap:6px;transition:color .2s}
.fptop:hover{color:var(--blue)}

/* ─── PAGE SYSTEM ─────────────────────── */
.page[id^="page-"]{display:none}.page[id^="page-"].active{display:block}

/* ─── PAGE HEADER ─────────────────────── */
.ph{padding:116px 0 68px;background:var(--dark2);border-bottom:1px solid var(--bdr);margin-top:68px;position:relative;overflow:hidden}
.ph::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 60% 100% at 20% 50%,rgba(65,170,220,.04) 0%,transparent 70%)}
.phi{max-width:var(--w);margin:0 auto;padding:0 var(--px);position:relative}
.phen{font-family:var(--eng);font-size:9px;font-weight:700;letter-spacing:.3em;color:var(--blue);text-transform:uppercase;display:block;margin-bottom:14px}
.phttl{font-family:var(--sans);font-size:clamp(22px,3.5vw,40px);font-weight:700;color:var(--white);line-height:1.45;letter-spacing:.04em;display:block;margin-bottom:14px}
.phsub{font-family:var(--sans);font-size:13px;font-weight:400;color:var(--text2);line-height:2.1;max-width:540px;letter-spacing:.03em}
.phrule{width:32px;height:1px;background:var(--blue);margin-top:22px;opacity:.6}

/* ─── CONTENT SECTIONS ───────────────── */
.s1{padding:84px 0;background:var(--dark)}
.s2{padding:84px 0;background:var(--dark2);border-top:1px solid var(--bdr)}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:start}
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--bdr)}
.card{background:var(--card);padding:28px 22px;border-top:2px solid var(--blue)}
.card-en{font-family:var(--eng);font-size:9px;font-weight:700;letter-spacing:.2em;color:var(--blue);display:block;margin-bottom:10px;text-transform:uppercase}
.card h3{font-family:var(--sans);font-size:14px;font-weight:700;color:var(--white);margin-bottom:10px;letter-spacing:.03em}
.card p{font-family:var(--sans);font-size:12px;font-weight:400;color:var(--text2);line-height:2}
.iph{background:var(--dark3);border:1px solid var(--bdr);aspect-ratio:4/3;display:flex;align-items:center;justify-content:center}
.iph p{font-family:var(--eng);font-size:10px;letter-spacing:.1em;color:var(--text3);text-transform:uppercase}

/* ─── PRICE ───────────────────────────── */
.pg{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--bdr);margin-top:52px}
.pc{background:var(--card);padding:28px 22px}
.pc.feat{background:var(--dark3);border:1px solid rgba(0,148,216,.25)}
.pcen{font-family:var(--eng);font-size:9px;font-weight:700;letter-spacing:.18em;color:var(--blue);display:block;margin-bottom:10px;text-transform:uppercase}
.pcnm{font-family:var(--sans);font-size:13px;font-weight:700;color:var(--white);margin-bottom:4px}
.pcdev{font-family:var(--eng);font-size:10px;color:var(--text3);letter-spacing:.06em;display:block;margin-bottom:10px}
.pcamp{font-family:var(--eng);font-size:30px;font-weight:800;color:var(--blue);line-height:1;margin:10px 0 3px;letter-spacing:-.02em}
.pcamp span{font-family:var(--sans);font-size:12px;font-weight:400;color:var(--text3)}
.pcdesc{font-family:var(--sans);font-size:12px;font-weight:400;color:var(--text2);line-height:2}
.pcnote{background:var(--dark3);border:1px solid var(--bdr);padding:16px 20px;margin-top:24px}
.pcnote p{font-family:var(--sans);font-size:11.5px;font-weight:400;color:var(--text3);line-height:2}

/* ─── LIMIT ───────────────────────────── */
.lml{display:flex;flex-direction:column;gap:1px}
.lmi{background:var(--card);padding:22px 26px;display:grid;grid-template-columns:76px 1fr;gap:22px;align-items:center}
.lmbg{font-family:var(--eng);font-size:8.5px;font-weight:700;letter-spacing:.1em;color:var(--blue);border:1px solid rgba(0,148,216,.3);padding:8px 6px;text-align:center;text-transform:uppercase;white-space:nowrap}
.lmt strong{font-weight:700;color:var(--white);display:block;margin-bottom:4px;font-family:var(--sans);font-size:13.5px}
.lmt p{font-family:var(--sans);font-size:12.5px;font-weight:400;color:var(--text2);line-height:1.9}

/* ─── PAGE CTA ────────────────────────── */
.pgcta{background:var(--dark3);border-top:1px solid var(--bdr);border-bottom:1px solid var(--bdr)}
.pgcta-in{max-width:var(--w);margin:0 auto;padding:40px var(--px);display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap}
.pgcta-en{font-family:var(--eng);font-size:9px;font-weight:700;letter-spacing:.2em;color:var(--blue);display:block;margin-bottom:7px;text-transform:uppercase}
.pgcta-h{font-family:var(--sans);font-size:clamp(14px,1.8vw,19px);font-weight:400;color:var(--white);letter-spacing:.04em;margin-bottom:4px}
.pgcta-sub{font-family:var(--sans);font-size:12px;font-weight:400;color:var(--text2)}
.pgcta-btns{display:flex;gap:10px;flex-wrap:wrap;flex-shrink:0}

/* ─── FAQ ─────────────────────────────── */
.faq-lay{display:grid;grid-template-columns:190px 1fr;gap:52px;align-items:start}
.faq-nav-en{font-family:var(--eng);font-size:9px;font-weight:700;letter-spacing:.22em;color:var(--blue);display:block;margin-bottom:12px;text-transform:uppercase}
.faq-nl{display:flex;flex-direction:column;border:1px solid var(--bdr);list-style:none}
.faq-nb{display:flex;align-items:center;gap:8px;width:100%;padding:12px 14px;background:transparent;border:none;border-bottom:1px solid var(--bdr);font-family:var(--sans);font-size:12.5px;font-weight:400;color:var(--text2);cursor:pointer;text-align:left;transition:background .15s,color .15s}
.faq-nb:last-child{border-bottom:none}
.faq-nb:hover,.faq-nb.act{background:var(--bluebg);color:var(--blue)}
.faq-dot{width:5px;height:5px;border-radius:50%;background:var(--blue);flex-shrink:0;opacity:.45}
.faq-nb.act .faq-dot{opacity:1}
.faq-blk{display:none}
.faq-blk.act{display:block}
.faq-bh{padding-bottom:18px;border-bottom:1px solid var(--blue);margin-bottom:0;opacity:.5}
.faq-bh h3{font-family:var(--sans);font-size:17px;font-weight:700;color:#111827}
.faq-bh p{font-family:var(--sans);font-size:12px;font-weight:400;color:var(--text2);margin-top:5px}
.faq-item{border-bottom:1px solid var(--bdr)}
.faq-item:first-of-type{border-top:1px solid var(--bdr)}
.faq-q{padding:15px 0;display:flex;align-items:center;gap:12px;cursor:pointer;transition:color .15s}
.faq-q:hover{color:var(--blue)}
.faq-ql{font-family:var(--eng);font-size:13px;font-weight:800;color:var(--blue);width:20px;flex-shrink:0}
.faq-qt{font-family:var(--sans);font-size:15px;font-weight:600;flex:1;color:#111827;letter-spacing:.02em}
.faq-qi{width:22px;height:22px;border:1px solid var(--bdr);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--text3);flex-shrink:0;transition:all .15s}
.faq-item.op .faq-qi{background:var(--blue);border-color:var(--blue);color:#fff}
.faq-a{display:none;padding:0 0 18px 32px}
.faq-item.op .faq-a{display:block}
.faq-a p{font-family:var(--sans);font-size:12.5px;font-weight:400;color:var(--text2);line-height:2.1}

/* ─── NEWS ────────────────────────────── */
.news-fs{display:flex;gap:8px;margin-bottom:36px;flex-wrap:wrap}
.news-fb{padding:6px 15px;border:1px solid var(--bdr);background:transparent;font-family:var(--eng);font-size:10px;font-weight:600;letter-spacing:.1em;color:var(--text3);cursor:pointer;text-transform:uppercase;transition:all .15s}
.news-fb:hover,.news-fb.act{background:var(--blue);border-color:var(--blue);color:#fff}
.arts{display:flex;flex-direction:column}
.art{display:grid;grid-template-columns:106px 1fr;gap:26px;padding:22px 0;border-bottom:1px solid var(--bdr);cursor:pointer;transition:color .2s}
.art:first-child{border-top:1px solid var(--bdr)}
.art:hover .art-ttl{color:var(--blue)}
.art-dt{font-family:var(--eng);font-size:10px;color:var(--text3);letter-spacing:.06em;padding-top:3px}
.art-cat{font-family:var(--eng);font-size:8.5px;font-weight:700;letter-spacing:.14em;color:var(--blue);background:var(--bluebg);padding:3px 9px;display:inline-block;margin-bottom:8px;text-transform:uppercase}
.art-ttl{font-family:var(--sans);font-size:15.5px;font-weight:700;color:#111827;margin-bottom:5px;line-height:1.55;transition:color .2s}
.art-exc{font-family:var(--sans);font-size:13px;font-weight:400;color:var(--text2);line-height:1.9}

/* ─── CONTACT ─────────────────────────── */
.cly{display:grid;grid-template-columns:1fr 440px;gap:72px;align-items:start}
.cil{border-top:1px solid var(--bdr);margin-top:24px}
.ci{display:flex;align-items:center;gap:14px;padding:15px 0;border-bottom:1px solid var(--bdr)}
.cion{width:36px;height:36px;border-radius:50%;background:var(--bluebg);border:1px solid rgba(0,148,216,.2);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ci-en{font-family:var(--eng);font-size:9px;font-weight:700;letter-spacing:.15em;color:var(--blue);display:block;margin-bottom:3px;text-transform:uppercase}
.ci-v{font-family:var(--sans);font-size:15px;font-weight:600;color:#111827}
.clnks{margin-top:24px;display:flex;flex-direction:column;gap:9px;align-items:flex-start}
.clnk{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border:1px solid var(--bdr);font-family:var(--sans);font-size:13px;color:var(--text2);transition:border-color .2s,color .2s}
.clnk:hover{border-color:var(--blue);color:var(--blue)}
.cfbox{background:#f5f7fa;border:1px solid var(--bdr);border-top:2px solid var(--blue);padding:32px}
.cfbox h3{font-family:var(--sans);font-size:16px;font-weight:700;color:#111827;margin-bottom:22px;padding-bottom:14px;border-bottom:1px solid var(--bdr)}
.fg{margin-bottom:13px}
.fg label{font-family:var(--sans);font-size:11.5px;font-weight:400;color:var(--text2);display:block;margin-bottom:5px;letter-spacing:.04em}
.fg label span{color:#e55;font-size:10px}
.fg input,.fg select,.fg textarea{width:100%;padding:9px 12px;background:var(--dark);color:var(--text);border:1px solid var(--bdr);font-family:var(--sans);font-size:13px;font-weight:400;transition:border-color .15s}
.fg input:focus,.fg select:focus,.fg textarea:focus{outline:none;border-color:var(--blue)}
.cfsub{display:block;width:100%;padding:14px 24px;background:#FFCB00;color:#1f2937;font-family:var(--sans);font-size:14px;font-weight:800;letter-spacing:.06em;text-align:center;border:none;border-radius:100px;cursor:pointer;transition:background .2s,transform .2s,box-shadow .2s;box-shadow:0 4px 16px rgba(255,203,0,.28)}
.cfsub:hover{background:#e8bd00;transform:translateY(-1px);box-shadow:0 8px 24px rgba(255,203,0,.38)}

/* ─── COMPANY ─────────────────────────── */
.cot{width:100%;border-collapse:collapse}
.cot tr{border-bottom:1px solid var(--bdr)}
.cot th{font-family:var(--eng);font-size:9.5px;font-weight:700;letter-spacing:.12em;color:var(--blue);padding:13px 14px;text-align:left;background:var(--dark3);width:136px;white-space:nowrap;text-transform:uppercase}
.cot td{font-family:var(--sans);font-size:13px;font-weight:400;color:#111827;padding:13px 14px;line-height:1.9}

/* ─── TIMELINE ────────────────────────── */
.tl{display:flex;flex-direction:column;border-top:1px solid var(--bdr)}
.tlr{display:grid;grid-template-columns:84px 1fr;gap:22px;padding:18px 0;border-bottom:1px solid var(--bdr);align-items:start}
.tlyr{font-family:var(--eng);font-size:12px;font-weight:700;color:var(--blue);letter-spacing:.04em}
.tlmo{font-family:var(--eng);font-size:10px;color:var(--text3);letter-spacing:.04em;display:block;margin-top:2px}
.tlr h4{font-family:var(--sans);font-size:13.5px;font-weight:500;color:#111827;margin-bottom:4px}
.tlr p{font-family:var(--sans);font-size:12px;font-weight:400;color:var(--text2);line-height:1.9}

/* ─── MAM ─────────────────────────────── */
.mtags{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:26px}
.mtag{font-family:var(--eng);font-size:9.5px;font-weight:600;letter-spacing:.08em;color:var(--blue);padding:5px 11px;border:1px solid rgba(0,148,216,.3);background:var(--bluebg);text-transform:uppercase}
.pg3{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--bdr);margin-top:44px}
.pbc{background:var(--card);padding:26px 20px;border-top:1px solid rgba(0,148,216,.2)}
.pben{font-family:var(--eng);font-size:9px;font-weight:700;letter-spacing:.2em;color:var(--blue);display:block;margin-bottom:9px;text-transform:uppercase}
.pbc h3{font-family:var(--sans);font-size:13.5px;font-weight:500;color:#111827;margin-bottom:8px}
.pbc p{font-family:var(--sans);font-size:12px;font-weight:400;color:var(--text2);line-height:1.9}

/* ─── PTOP ────────────────────────────── */
#ptop{position:fixed;bottom:22px;right:22px;z-index:800;width:42px;height:42px;background:var(--card);border:1px solid var(--bdr);display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .3s,transform .2s,background .2s}
#ptop.show{opacity:1;pointer-events:auto}
#ptop:hover{background:var(--blue);transform:translateY(-2px)}

/* ─── SCROLLBAR + SELECTION ──────────── */
::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--dark)}::-webkit-scrollbar-thumb{background:var(--bdr)}::-webkit-scrollbar-thumb:hover{background:var(--blue)}::selection{background:rgba(0,148,216,.3);color:#fff}

/* ─── TABLET ──────────────────────────── */
@media(max-width:1024px) and (min-width:769px){
  :root{--px:28px}
  .ag,.g2,.cly{grid-template-columns:1fr;gap:44px}
  .sg,.tg{grid-template-columns:repeat(2,1fr)}
  .sg .sc:last-child{grid-column:span 2}
  .g3,.pg,.pg3{grid-template-columns:repeat(2,1fr)}
  .ftop{grid-template-columns:1fr;gap:32px}
  .fnav{grid-template-columns:repeat(3,1fr)}
}

/* ─── MOBILE ──────────────────────────── */
@media(max-width:768px){
  :root{--px:20px}
  body{font-size:15px;line-height:1.8;font-weight:400}
  /* NAV */
  .nw{height:56px;padding:0 18px}
  .nl img{height:30px}
  .nm{display:none}
  .nm.op{display:flex;flex-direction:column;position:fixed;top:56px;left:0;right:0;bottom:0;background:#ffffff;padding:8px 0 32px;gap:0;overflow-y:auto;box-shadow:0 8px 24px rgba(0,0,0,.08);z-index:899}
  .nm.op > li{width:100%;list-style:none}
  .nm.op > li > a{padding:16px 24px;font-size:15px;letter-spacing:.04em;border-bottom:1px solid #eef2f7;display:flex;align-items:center;justify-content:space-between;text-transform:none;color:#1a2a40;font-family:var(--sans);font-weight:600;text-align:left;background:transparent}
  .nm.op > li > a:hover{background:#f8fafc}
  .nm.op > li.sub-p > a::after{content:"＋";font-size:16px;color:#9aabbf;transition:transform .2s;font-family:var(--sans)}
  .nm.op > li.sub-p.op > a::after{content:"−"}
  .nm-sub{position:static;opacity:1;pointer-events:auto;transform:none;box-shadow:none;border:none;min-width:unset;padding:0;background:#f8fafc;display:none;list-style:none}
  .nm li.sub-p.op .nm-sub{display:block}
  .nm-sub li{list-style:none}
  .nm-sub li a{padding:14px 24px 14px 36px;font-size:14px;border-bottom:1px solid #eef2f7;color:#3a4a60;display:block;font-family:var(--sans);font-weight:500;background:transparent}
  .nm-sub li a:hover{background:#f0f4f8;color:var(--blue)}
  /* モバイル時のお問い合わせボタン: 全幅CTA */
  .nm.op > li:last-child{margin-top:20px;padding:0 24px;border:none}
  #nav .nm.op > li > a.nc{display:block !important;width:100% !important;margin:0 !important;padding:16px 24px !important;background:var(--blue) !important;color:#ffffff !important;border:none !important;text-align:center !important;font-weight:700 !important;letter-spacing:.06em !important;border-bottom:none !important;border-radius:100px !important;font-size:14px !important;box-shadow:none !important}
  #nav .nm.op > li > a.nc:hover{background:var(--blue2) !important;color:#ffffff !important}
  .nc{display:none}
  .hm{display:flex}
  .nw{height:56px}
  /* HERO */
  .hero{height:auto;min-height:560px;max-height:720px}
  .hc{padding:0 0 52px}
  .hl{font-size:10px;margin-bottom:16px;font-weight:700}
  .hl::before{width:22px}
  .hh1{font-size:clamp(32px,9.5vw,48px);margin-bottom:6px;font-weight:600;line-height:1.15;letter-spacing:.02em}
  .hh2{font-size:clamp(14px,4vw,18px);margin-bottom:18px;font-weight:500}
  .hb{font-size:14px;margin-bottom:26px;max-width:100%;font-weight:400;line-height:1.9}
  .hbtns{flex-direction:column;align-items:flex-start;gap:10px}
  .bp,.bs{font-size:13px;padding:14px 26px;min-width:0;width:auto;display:inline-flex;font-weight:700}
  .hscrll{display:none}
  /* TICKER */
  .ti{font-size:10px;padding:0 18px;gap:18px;font-weight:600}
  /* NEWS BAR */
  .nbar-in{gap:10px;flex-wrap:wrap}
  .ndate{display:none}
  .ntxt{font-size:13.5px;white-space:normal;font-weight:400}
  /* SECTIONS */
  .sa,.ss,.st{padding:60px 0}
  .s1,.s2,.ctab{padding:56px 0}
  .en{font-size:10px;font-weight:700}
  .ttl,.phttl{font-size:clamp(22px,6.5vw,30px);font-weight:800;line-height:1.3}
  .desc,.phsub{font-size:14px;font-weight:400;line-height:1.9}
  /* GRIDS */
  .ag,.g2,.cly{grid-template-columns:1fr;gap:34px}
  .sg,.tg,.g3,.pg,.pg3{grid-template-columns:1fr;gap:1px}
  .sg .sc:last-child{grid-column:span 1}
  .fi{grid-template-columns:34px 1fr;gap:12px;padding:17px 0}
  .fi h4{font-size:15px;font-weight:700}
  .fi p{font-size:13.5px;font-weight:400;line-height:1.85}
  .fn{width:28px;height:28px;font-size:10.5px;font-weight:700}
  .sci{aspect-ratio:16/8}
  .scb{padding:18px 18px 22px}
  .scb h3{font-size:16px;font-weight:700}
  .scb p{font-size:13.5px;font-weight:400;line-height:1.85}
  .tc{padding:24px 20px}
  .tc h3{font-size:15.5px;font-weight:700}
  .tc p{font-size:13.5px;font-weight:400;line-height:1.85}
  .card{padding:24px 20px}
  .card h3{font-size:15px;font-weight:700}
  .card p{font-size:13px;font-weight:400}
  /* CTA BAND */
  .ctab-in{flex-direction:column;align-items:flex-start;gap:24px;padding:44px var(--px)}
  .ctab-h{font-size:20px;font-weight:700;line-height:1.45}
  .ctab-sub{font-size:13.5px;font-weight:400}
  .ctab-btns{flex-direction:column;align-items:flex-start;width:auto}
  .ctab-btns .bp,.ctab-btns .bs{justify-content:center;width:auto;align-self:flex-start}
  /* FOOTER */
  .footer{padding:48px 0 0}
  .ftop{grid-template-columns:1fr;gap:26px;padding-bottom:26px}
  .fnav{grid-template-columns:repeat(2,1fr)}
  .fnav a{font-size:13px;padding:9px 0;font-weight:500}
  .fbtm{flex-direction:column;gap:10px;align-items:flex-start;padding:14px 0}
  /* PAGE HEADER */
  .ph{padding:72px 0 44px;margin-top:56px}
  /* FAQ */
  .faq-lay{grid-template-columns:1fr;gap:22px}
  .faq-nl{flex-direction:row;flex-wrap:wrap;border:none;gap:8px}
  .faq-nb{flex:0 0 auto;width:auto;border:1px solid var(--bdr) !important;border-radius:100px;padding:8px 16px;font-size:12.5px;font-weight:600}
  /* NEWS */
  .art{grid-template-columns:1fr;gap:5px;padding:18px 0}
  /* CONTACT */
  .cly{grid-template-columns:1fr;gap:32px}
  .cfbox{padding:24px 18px}
  /* MISC */
  .lmi{grid-template-columns:1fr;gap:8px;padding:18px 20px}
  .tlr{grid-template-columns:70px 1fr;gap:16px;padding:15px 0}
  .pgcta-in{flex-direction:column;align-items:flex-start;gap:18px;padding:34px var(--px)}
  .pgcta-btns{flex-direction:column;align-items:flex-start;width:auto}
  .pgcta-btns .bp,.pgcta-btns .bs{justify-content:center;width:auto;align-self:flex-start}
  .mtag{font-size:10.5px;padding:5px 10px;font-weight:700}
  [style*="grid-template-columns:240px 1fr"]{grid-template-columns:1fr !important;gap:22px !important}
  [style*="grid-template-columns:96px 1fr"]{grid-template-columns:1fr !important;gap:8px !important}
  [style*="grid-template-columns:72px 1fr"]{grid-template-columns:1fr !important;gap:8px !important}
  [style*="grid-template-columns:1fr 1fr"]{grid-template-columns:1fr !important}
  [style*="grid-template-columns:repeat(2"]{grid-template-columns:1fr !important}
  [style*="grid-template-columns:repeat(3"]{grid-template-columns:1fr !important}
  #ptop{bottom:14px;right:14px;width:42px;height:42px}
}
@media(max-width:380px){
  body{font-size:14px}
  .hh1{font-size:28px}
  .ttl,.phttl{font-size:22px}
  .bp,.bs{min-width:0;width:auto}
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   HOME — ABOUT (SORABOT icon grid style)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.home-about{
  padding:100px 0;
  background:var(--dark);
  border-top:1px solid var(--bdr);
}
.ha-intro{margin-bottom:64px}
.ha-ttl{
  font-size:clamp(22px,2.4vw,30px);
  font-weight:800;
  line-height:1.4;
  letter-spacing:-.01em;
  max-width:780px;
}
.ha-desc{
  max-width:760px;margin-top:20px;
  font-size:15px;font-weight:400;
  line-height:2;
}
/* アイコングリッド 3×2 */
.ha-icons{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:var(--bdr);
  margin-bottom:48px;
}
.ha-icon-item{
  background:var(--dark2);
  padding:40px 28px;
  display:flex;flex-direction:column;align-items:center;
  gap:20px;text-align:center;
  transition:background .2s;
}
.ha-icon-item:hover{background:var(--dark3)}
.ha-icon-item:hover .ha-icon-box{border-color:var(--blue);background:rgba(56,182,255,.18);box-shadow:0 0 20px rgba(56,182,255,.2);}
.ha-icon-box{
  width:72px;height:72px;
  border-radius:50%;
  border:1px solid rgba(56,182,255,.4);
  background:rgba(56,182,255,.1);
  display:flex;align-items:center;justify-content:center;
  color:var(--blue);
  flex-shrink:0;
  transition:border-color .25s,background .25s;
}
.ha-icon-box svg{width:36px;height:36px}
.ha-icon-item p{
  font-family:var(--sans);
  font-size:14px;font-weight:600;
  color:var(--text);line-height:1.6;
  letter-spacing:.01em;
}
.ha-cta{display:flex;gap:14px;flex-wrap:wrap}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   HOME — SERVICE (SORABOT overlay card style)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.home-service{
  background:#f8fafc;
  border-top:1px solid #e0e8f0;
  padding:88px 0 0;
}
.hs-hdr{
  max-width:var(--w);margin:0 auto;padding:0 var(--px) 56px;
  display:flex;align-items:flex-end;justify-content:space-between;
  gap:40px;flex-wrap:wrap;
  border-bottom:1px solid #dce8f4;
  margin-bottom:0;
}
.hs-hdr-left .en{margin-bottom:12px}
.hs-hdr-left .ttl{margin-bottom:0;font-size:clamp(22px,2.6vw,32px);font-weight:800;line-height:1.4}
.hs-hdr-right{
  font-family:var(--sans);font-size:14px;font-weight:400;
  color:var(--text2);line-height:1.9;max-width:420px;
}

/* ── 各サービス行 ────────────────────── */
.hs-cards{display:flex;flex-direction:column;gap:24px}
.svc-row{
  display:grid;
  grid-template-columns:400px 1fr;
  min-height:480px;
  border-bottom:1px solid #dce8f4;
  position:relative;
  overflow:hidden;
}
.svc-row:first-child{border-top:none}

/* ── 左: テキストカード ────────────── */
.svc-row-card{
  background:#ffffff;
  padding:52px 48px;
  display:flex;flex-direction:column;justify-content:center;
  position:relative;z-index:2;
  border-right:1px solid var(--bdr);
}
/* 縦線アクセント */
.svc-row-card::before{
  content:"";
  position:absolute;left:0;top:15%;bottom:15%;
  width:2px;
  background:linear-gradient(to bottom,transparent,#41aadc 40%,#41aadc 60%,transparent);
}
/* Service ─── 01 ラベル */
.svc-row-label{
  display:flex;align-items:center;gap:16px;
  margin-bottom:28px;
}
.svc-row-label-text{
  font-family:var(--eng);font-size:10px;font-weight:700;
  letter-spacing:.22em;color:var(--blue);text-transform:uppercase;
}
.svc-row-label-line{
  flex:1;max-width:56px;height:1px;
  background:rgba(0,148,216,.4);
}
.svc-row-num{
  font-family:var(--eng);font-size:28px;font-weight:800;
  color:#41aadc;letter-spacing:-.02em;line-height:1;
}
.svc-row h3{
  font-family:var(--sans);
  font-size:clamp(22px,2.2vw,28px);
  font-weight:800;color:#111827;
  line-height:1.4;letter-spacing:-.01em;
  margin-bottom:20px;
  padding-bottom:20px;
  border-bottom:1px solid #dce8f4;
}
.svc-row p{
  font-family:var(--sans);font-size:14px;font-weight:400;
  color:#4a5568;line-height:2;
  margin-bottom:32px;flex:1;
}
/* ボタン: テキスト + 丸アイコン（SORABOT完全準拠） */
.svc-row-btn{
  display:inline-flex;align-items:center;gap:16px;
  cursor:pointer;border:none;background:none;padding:0;
  text-decoration:none;align-self:flex-start;
}
.svc-row-btn-text{
  font-family:var(--sans);font-size:14px;font-weight:600;
  color:#111827;letter-spacing:.04em;
  transition:color .2s;
}
.svc-row-btn-circle{
  width:44px;height:44px;border-radius:50%;
  background:var(--blue);
  display:flex;align-items:center;justify-content:center;
  transition:background .2s,transform .25s,box-shadow .2s;
  flex-shrink:0;
  box-shadow:0 0 12px rgba(0,170,255,.35);
}
.svc-row-btn-circle svg{color:#fff}
.svc-row:hover .svc-row-btn-text{color:#41aadc}
.svc-row:hover .svc-row-btn-circle{
  background:var(--blue2);transform:translateX(6px)
}

/* ── 右: メディア（画像 or 動画） ──── */
.svc-row-media{
  position:relative;overflow:hidden;
  background:var(--dark3);
}
/* 動画 */
.svc-row-media video{
  position:absolute;inset:0;
  width:100%;height:100%;object-fit:cover;
  z-index:1;
}
/* 画像（動画なし時のフォールバック） */
.svc-row-media img{
  position:absolute;inset:0;
  width:100%;height:100%;object-fit:cover;
  filter:brightness(.78);
  transition:transform .8s ease,filter .4s;
  z-index:0;
}
.svc-row:hover .svc-row-media img{
  transform:scale(1.04);filter:brightness(.9);
}
/* ビデオ表示時はimgを非表示にするJS連携用クラス */
.svc-row-media.has-video img{opacity:0}
/* 左から薄いグラデーションで境界を馴染ませる */
.svc-row-media::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to right,var(--dark) 0%,transparent 18%);
  z-index:2;pointer-events:none;
}
/* 「動画」プレースホルダー表示 */
.svc-media-ph{
  position:absolute;inset:0;z-index:0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:12px;color:var(--text3);
}
.svc-media-ph svg{opacity:.25;width:56px;height:56px}
.svc-media-ph p{font-family:var(--eng);font-size:9px;letter-spacing:.18em;text-transform:uppercase;opacity:.4}

/* ── MOBILE ──────────────────────────── */
@media(max-width:768px){
  .home-service{padding:56px 0 0}
  .hs-hdr{flex-direction:column;align-items:flex-start;gap:16px;padding-bottom:32px}
  .hs-hdr-right{max-width:100%}
  .svc-row{grid-template-columns:1fr;min-height:auto}
  .svc-row-card{
    padding:28px var(--px) 28px;order:2;
    border-right:none;border-top:2px solid #41aadc;
    background:#ffffff;
  }
  .svc-row-card::before{display:none}
  .svc-row-media{height:260px;order:1}
  .svc-row-media::before{
    background:linear-gradient(to top,var(--dark) 0%,transparent 30%);
  }
  .svc-row h3{font-size:20px}
  .svc-row-label{margin-bottom:20px}
  .svc-row-num{font-size:22px}
}
@media(max-width:1024px) and (min-width:769px){
  .svc-row{grid-template-columns:340px 1fr;min-height:460px}
  .svc-row-card{padding:48px 36px}
}
/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   HOME — PHOTO SLIDER (SORABOT style)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.home-slider{
  overflow:hidden;
  background:var(--dark);
  border-top:1px solid var(--bdr);
  border-bottom:1px solid var(--bdr);
  padding:0;
  margin-top:56px;
}
.hs-track{overflow:hidden}
.hs-inner{
  display:flex;gap:2px;
  animation:slideL 120s linear infinite;
  width:max-content;
}
.hs-inner:hover{animation-play-state:paused}
@keyframes slideL{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}
.hs-slide{
  width:320px;height:220px;
  flex-shrink:0;overflow:hidden;
  background:var(--dark3);
}
.hs-slide img{
  width:100%;height:100%;object-fit:cover;
  filter:brightness(.7);
  transition:filter .3s;
}
.hs-slide:hover img{filter:brightness(.95)}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   HOME — NEWS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.home-news{
  padding:96px 0;
  background:var(--dark);
  border-top:1px solid var(--bdr);
}
.hn-head{
  display:flex;align-items:center;justify-content:center;flex-direction:column;
  margin-bottom:36px;gap:8px;text-align:center;
}
.hn-list{
  display:flex;flex-direction:column;
  border-top:1px solid var(--bdr);
  margin-bottom:40px;
}
.hn-item{
  display:grid;
  grid-template-columns:100px 90px 1fr 28px;
  gap:0 20px;align-items:center;
  padding:18px 0;
  border-bottom:1px solid var(--bdr);
  cursor:pointer;
  transition:background .15s;
}
.hn-item:hover{background:rgba(0,170,255,.04);margin:0 -20px;padding:18px 20px;border-left:2px solid var(--blue);padding-left:18px}
.hn-date{
  font-family:var(--eng);font-size:10px;letter-spacing:.06em;
  color:var(--text3);white-space:nowrap;
}
.hn-cat{
  font-family:var(--eng);font-size:8.5px;font-weight:700;letter-spacing:.14em;
  color:var(--blue);background:var(--bluebg);
  padding:3px 9px;text-align:center;
  text-transform:uppercase;white-space:nowrap;
  display:inline-block;
}
.hn-ttl{
  font-family:var(--sans);font-size:13.5px;font-weight:400;
  color:#111827;line-height:1.55;
  transition:color .2s;
}
.hn-item:hover .hn-ttl{color:var(--blue)}
.hn-arr{
  font-family:var(--eng);font-size:12px;color:var(--text3);
  justify-self:end;
  transition:color .2s,transform .2s;
}
.hn-item:hover .hn-arr{color:var(--blue);transform:translateX(4px)}
.hn-more{display:flex;justify-content:flex-start}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   MOBILE overrides for new sections
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media(max-width:768px){
  .home-about{padding:64px 0}
  .ha-intro{margin-bottom:40px}
  .ha-ttl{font-size:clamp(22px,6.2vw,28px);font-weight:800;line-height:1.4}
  .ha-desc{font-size:14px;line-height:1.9;margin-top:16px}
  .ha-icons{grid-template-columns:repeat(2,1fr)}
  .ha-icon-item{padding:28px 14px;gap:14px}
  .ha-icon-item p{font-size:13px;font-weight:600;line-height:1.55}
  .ha-icon-box{width:56px;height:56px}
  .ha-icon-box svg{width:28px;height:28px}
  .ha-cta{flex-direction:column;align-items:flex-start;gap:10px}
  .ha-cta .bp,.ha-cta .bs{width:auto;align-self:flex-start}

  .home-service{padding:60px 0}
  .hs-head{grid-template-columns:1fr;gap:24px;padding-bottom:32px;margin-bottom:40px}
  .hs-label{writing-mode:horizontal-tb;flex-direction:row;border-right:none;padding-right:0;border-bottom:none;margin-bottom:0}
  .hs-label span{writing-mode:horizontal-tb}
  .hs-ttl{grid-column:1;font-size:clamp(22px,6.5vw,30px);font-weight:800}
  .hs-desc{grid-column:1;font-size:14px;font-weight:400}
  .hs-card{grid-template-columns:1fr;min-height:auto}
  .hs-card-alt{direction:ltr}
  .hs-card-img{aspect-ratio:16/9;height:220px}
  .hs-card-num{font-size:36px}
  .hs-card-body{padding:28px 22px}
  .hs-card-body h3{font-size:18px;margin-bottom:14px;padding-bottom:14px;font-weight:700}
  .hs-card-body p{font-size:13.5px;margin-bottom:20px;font-weight:400}

  .hs-slide{width:220px;height:156px}

  .home-news{padding:60px 0}
  .hn-head{flex-direction:column;align-items:flex-start;gap:0;margin-bottom:24px}
  .hn-item{grid-template-columns:80px 1fr 22px;gap:0 12px}
  .hn-cat{display:none}
  .hn-ttl{font-size:14px;font-weight:500}
  .hn-item:hover{margin:0;padding:18px 0;background:transparent}
}
@media(max-width:1024px) and (min-width:769px){
  .ha-icons{grid-template-columns:repeat(3,1fr)}
  .hs-card{grid-template-columns:1fr 1fr}
  .hs-card-body{padding:36px 32px}
  .hs-head{grid-template-columns:auto 1fr;gap:0 48px}
}

/* OLD INSP CSS REMOVED */

/* ── HERO ──────────────────────────── */
.insp-hero{
  position:relative;height:100vh;min-height:620px;
  overflow:hidden;display:flex;align-items:flex-end;
  margin-top:70px;
}
.insp-hero-img{position:absolute;inset:0}
.insp-hero-img img{width:100%;height:100%;object-fit:cover;filter:brightness(.45)}
.insp-hero-overlay{
  position:absolute;inset:0;
  background:linear-gradient(
    to top,rgba(13,17,23,.98) 0%,rgba(13,17,23,.6) 45%,rgba(13,17,23,.15) 100%
  );
}
.insp-hero-content{
  position:relative;z-index:2;
  width:100%;padding-bottom:72px;
}
.insp-hero-en{
  font-family:var(--eng);font-size:10px;font-weight:700;
  letter-spacing:.3em;color:var(--blue);text-transform:uppercase;
  display:flex;align-items:center;gap:14px;margin-bottom:20px;
}
.insp-hero-en::before{content:"";width:36px;height:1px;background:var(--blue)}
.insp-hero-ttl{
  font-family:var(--eng);font-size:clamp(36px,6vw,76px);
  font-weight:800;line-height:1.05;color:#fff;
  letter-spacing:-.02em;margin-bottom:14px;
}
.insp-hero-sub{
  font-family:var(--sans);font-size:14px;font-weight:400;
  color:rgba(240,246,255,.75);line-height:2;
  margin-bottom:36px;letter-spacing:.04em;
}
/* スタッツバー */
.insp-hero-stats{
  display:flex;align-items:center;gap:0;
  margin-bottom:36px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.12);
  backdrop-filter:blur(8px);
  padding:20px 28px;
  width:fit-content;
}
.insp-stat{display:flex;flex-direction:column;gap:4px;padding:0 32px}
.insp-stat:first-child{padding-left:0}
.insp-stat-num{
  font-family:var(--eng);font-size:32px;font-weight:800;
  color:#fff;line-height:1;letter-spacing:-.02em;
}
.insp-stat-num small{font-size:13px;font-weight:400;letter-spacing:.04em;opacity:.7}
.insp-stat-label{
  font-family:var(--eng);font-size:9px;font-weight:600;
  letter-spacing:.18em;color:var(--blue);text-transform:uppercase;
}
.insp-stat-div{width:1px;height:40px;background:rgba(255,255,255,.15);flex-shrink:0}

/* ── BUY vs HIRE ──────────────────── */
.insp-bvh{padding:96px 0;background:var(--dark2);border-top:1px solid var(--bdr)}
.insp-bvh-head{margin-bottom:48px}
.insp-q-ttl{font-size:clamp(22px,3vw,36px)}
.insp-cross{
  position:relative;color:var(--text3);
  text-decoration:none;
}
.insp-cross::after{
  content:"";position:absolute;
  left:-2px;right:-2px;top:50%;
  height:2px;background:var(--text3);
  transform:translateY(-50%);
}
.insp-bvh-alert{
  display:flex;align-items:flex-start;gap:18px;
  background:rgba(56,182,255,.06);
  border:1px solid rgba(56,182,255,.2);
  border-left:3px solid var(--blue);
  padding:20px 24px;margin-bottom:44px;
}
.insp-alert-icon{
  color:var(--blue);flex-shrink:0;margin-top:2px;
  width:36px;height:36px;
  background:rgba(56,182,255,.1);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
}
.insp-alert-ttl{
  font-family:var(--sans);font-size:14px;font-weight:500;
  color:var(--white);margin-bottom:5px;
}
.insp-alert-sub{
  font-family:var(--sans);font-size:12.5px;font-weight:400;
  color:var(--text2);line-height:1.8;
}
/* 3カード */
.insp-bvh-cards{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:2px;margin-bottom:2px;
}
.insp-bvh-card{
  background:var(--card);padding:36px 28px;
  display:flex;flex-direction:column;gap:12px;
  border-top:2px solid var(--blue);
  transition:background .25s;
}
.insp-bvh-card:hover{background:var(--dark3)}
.insp-bvh-icon{
  width:52px;height:52px;border-radius:50%;
  background:rgba(56,182,255,.1);border:1px solid rgba(56,182,255,.25);
  display:flex;align-items:center;justify-content:center;
  color:var(--blue);margin-bottom:4px;
}
.insp-bvh-yen{
  font-family:var(--eng);font-size:36px;font-weight:800;
  color:var(--blue);line-height:1;letter-spacing:-.02em;
}
.insp-bvh-card h3{
  font-family:var(--sans);font-size:15px;font-weight:500;
  color:var(--white);letter-spacing:.03em;
}
.insp-bvh-card p{
  font-family:var(--sans);font-size:12.5px;font-weight:400;
  color:var(--text2);line-height:2;
}
/* 電話バー */
.insp-tel-bar{
  background:var(--dark);border:1px solid var(--bdr);
  padding:22px 28px;
  display:flex;align-items:center;justify-content:space-between;
  gap:24px;flex-wrap:wrap;
  border-top:none;
}
.insp-tel-main{
  font-family:var(--sans);font-size:14px;font-weight:500;
  color:var(--blue);margin-bottom:4px;
}
.insp-tel-sub{
  font-family:var(--eng);font-size:10px;color:var(--text3);letter-spacing:.08em;
}

/* ── FLOW ─────────────────────────── */
.insp-flow{padding:96px 0;background:var(--dark);border-top:1px solid var(--bdr)}
.insp-flow-list{
  display:grid;grid-template-columns:1fr 24px 1fr 24px 1fr 24px 1fr;
  gap:0;align-items:start;margin-top:48px;
}
.insp-flow-item{
  background:var(--card);padding:28px 22px;
  border-top:2px solid var(--blue);
  height:100%;
}
.insp-flow-num{
  font-family:var(--eng);font-size:28px;font-weight:800;
  color:rgba(56,182,255,.25);line-height:1;margin-bottom:12px;
  letter-spacing:-.02em;
}
.insp-flow-body h4{
  font-family:var(--sans);font-size:13.5px;font-weight:500;
  color:var(--white);margin-bottom:10px;letter-spacing:.03em;
}
.insp-flow-body p{
  font-family:var(--sans);font-size:12px;font-weight:400;
  color:var(--text2);line-height:1.9;
}
.insp-flow-arrow{
  display:flex;align-items:center;justify-content:center;
  color:var(--blue);font-size:18px;padding-top:28px;
  opacity:.5;
}

/* ── HONEST ───────────────────────── */
.insp-honest{padding:96px 0;background:var(--dark2);border-top:1px solid var(--bdr)}
.insp-honest-head{margin-bottom:56px}
.insp-limits{display:flex;flex-direction:column;gap:2px}
.insp-limit{
  display:grid;grid-template-columns:120px 1fr;gap:0;
  background:var(--card);
  transition:background .25s;overflow:hidden;
}
.insp-limit:hover{background:var(--dark3)}
.insp-limit-badge{
  background:var(--dark);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--eng);font-size:9px;font-weight:700;
  letter-spacing:.14em;color:var(--blue);text-transform:uppercase;
  border-right:1px solid var(--bdr);writing-mode:vertical-rl;
  text-orientation:mixed;padding:28px 0;
}
.insp-limit-content{padding:28px 32px}
.insp-limit-content h4{
  font-family:var(--sans);font-size:15px;font-weight:500;
  color:var(--white);margin-bottom:10px;letter-spacing:.03em;
}
.insp-limit-content p{
  font-family:var(--sans);font-size:12.5px;font-weight:400;
  color:var(--text2);line-height:2;
}

/* ── PRICE ────────────────────────── */
.insp-price{padding:96px 0;background:var(--dark);border-top:1px solid var(--bdr)}
.insp-price-grid{
  display:grid;grid-template-columns:1.2fr 1fr 1fr;
  gap:2px;margin-bottom:2px;
}
.insp-pc{
  background:var(--card);padding:36px 28px;
  display:flex;flex-direction:column;gap:12px;
}
.insp-pc-feat{
  background:var(--dark3);
  border:1px solid rgba(56,182,255,.25);
  position:relative;
}
.insp-pc-badge{
  position:absolute;top:-1px;right:20px;
  font-family:var(--eng);font-size:8px;font-weight:800;
  letter-spacing:.18em;color:var(--dark);
  background:var(--blue);padding:4px 12px;text-transform:uppercase;
}
.insp-pc-en{
  font-family:var(--sans);font-size:13px;font-weight:500;
  color:var(--white);letter-spacing:.03em;margin-top:12px;
}
.insp-pc-amount{
  font-family:var(--eng);font-size:36px;font-weight:800;
  color:var(--blue);line-height:1;letter-spacing:-.02em;
}
.insp-pc-amount span{font-family:var(--sans);font-size:13px;font-weight:400;color:var(--text3)}
.insp-pc-device{
  font-family:var(--eng);font-size:10px;font-weight:600;
  color:var(--text3);letter-spacing:.06em;
  padding:8px 12px;background:rgba(0,0,0,.2);border-left:2px solid var(--bdr);
}
.insp-pc-tag{
  font-family:var(--eng);font-size:9px;font-weight:700;
  letter-spacing:.12em;color:var(--blue);text-transform:uppercase;
}
.insp-pc-list{
  list-style:none;display:flex;flex-direction:column;gap:8px;
  margin:4px 0;flex:1;
}
.insp-pc-list li{
  font-family:var(--sans);font-size:12px;font-weight:400;
  color:var(--text2);line-height:1.7;
  display:flex;align-items:flex-start;gap:8px;
}
.insp-pc-list li::before{content:"—";color:var(--blue);flex-shrink:0;font-size:10px;margin-top:2px}
.insp-price-note{
  background:var(--card);border:1px solid var(--bdr);
  padding:18px 24px;
}
.insp-price-note p{
  font-family:var(--sans);font-size:11.5px;font-weight:400;
  color:var(--text3);line-height:2;
}

/* ── DEMO CTA ─────────────────────── */
.insp-demo{
  background:linear-gradient(135deg,#0a2045 0%,#0d2d60 50%,#0a2045 100%);
  border-top:1px solid rgba(56,182,255,.2);
  padding:72px 0;
  position:relative;overflow:hidden;
}
.insp-demo::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(ellipse 60% 120% at 80% 50%,rgba(56,182,255,.08) 0%,transparent 70%);
}
.insp-demo-inner{
  position:relative;
  display:flex;align-items:center;justify-content:space-between;
  gap:48px;flex-wrap:wrap;
}

/* ── MOBILE ───────────────────────── */
@media(max-width:768px){
  .insp-hero{height:100svh;min-height:560px;margin-top:56px}
  .insp-hero-content{padding-bottom:48px}
  .insp-hero-ttl{font-size:clamp(30px,9vw,44px)}
  .insp-hero-stats{flex-direction:column;gap:20px;padding:20px;width:100%;max-width:280px}
  .insp-stat{padding:0}
  .insp-stat-div{width:100%;height:1px}
  .insp-bvh,.insp-flow,.insp-honest,.insp-price{padding:60px 0}
  .insp-bvh-cards{grid-template-columns:1fr;gap:2px}
  .insp-tel-bar{flex-direction:column;align-items:flex-start;gap:16px}
  .insp-flow-list{grid-template-columns:1fr;gap:2px}
  .insp-flow-arrow{transform:rotate(0deg);padding:4px 0}
  .insp-limit{grid-template-columns:1fr}
  .insp-limit-badge{writing-mode:horizontal-tb;text-orientation:mixed;padding:12px 16px;border-right:none;border-bottom:1px solid var(--bdr)}
  .insp-price-grid{grid-template-columns:1fr;gap:2px}
  .insp-pc-badge{right:auto;left:0}
  .insp-demo{padding:48px 0}
  .insp-demo-inner{flex-direction:column;align-items:flex-start;gap:28px}
}
@media(max-width:1024px) and (min-width:769px){
  .insp-bvh-cards{grid-template-columns:repeat(3,1fr)}
  .insp-flow-list{grid-template-columns:1fr 20px 1fr 20px 1fr 20px 1fr}
  .insp-price-grid{grid-template-columns:repeat(3,1fr)}
}

/* ══════════════════════════════════════════
   建物点検ページ SORABOT準拠CSS
══════════════════════════════════════════ */

/* ── EYECATCH ── */
.ip-eyecatch{
  position:relative;height:480px;overflow:hidden;margin-top:70px;
}
.ip-eyecatch img{
  width:100%;height:100%;object-fit:cover;filter:brightness(.45);
}
.ip-eyecatch-text{
  position:absolute;inset:0;display:flex;align-items:flex-end;
  padding-bottom:56px;
}
.ip-label{
  font-family:var(--eng);font-size:10px;font-weight:700;
  letter-spacing:.28em;color:var(--blue);text-transform:uppercase;
  display:block;margin-bottom:12px;
}
.ip-h1{
  font-family:var(--sans);font-size:clamp(22px,3vw,36px);
  font-weight:400;color:#fff;line-height:1.3;letter-spacing:.06em;
  margin-bottom:12px;
}
.ip-bread{
  font-family:var(--sans);font-size:12px;font-weight:400;
  color:rgba(255,255,255,.5);
}
.ip-bread a{color:rgba(255,255,255,.5);transition:color .2s}
.ip-bread a:hover{color:#38b6ff}

/* ── SECTION COMMON ── */
.ip-sec{padding:88px 0}
.ip-sec-light{background:#f5f7fa}
.ip-sec-dark{background:#ffffff}
.ip-sec:first-of-type{border-top:none}
.ip-sec + .ip-sec,.ip-sec-light + .ip-sec-dark,.ip-sec-dark + .ip-sec-light{border-top:1px solid var(--bdr)}
.ip-sec-head{margin-bottom:52px}
.ip-sec-en{
  font-family:var(--eng);font-size:10px;font-weight:700;
  letter-spacing:.28em;color:var(--blue);text-transform:uppercase;
  display:block;margin-bottom:14px;
}
.ip-sec-ttl{
  font-family:var(--sans);font-size:clamp(18px,2vw,24px);
  font-weight:400;color:#111827;line-height:1.5;letter-spacing:.04em;
}
.ip-sec-body{
  font-family:var(--sans);font-size:14px;font-weight:400;
  color:#4a5568;line-height:2.1;max-width:760px;
  margin-bottom:48px;letter-spacing:.03em;
}
.ip-sub-ttl{
  font-family:var(--sans);font-size:18px;font-weight:700;
  color:var(--white);margin-bottom:28px;letter-spacing:.04em;
  padding-top:12px;border-top:1px solid var(--bdr);
}

/* ── CHALLENGES ── */
.ip-challenges{
  display:grid;grid-template-columns:1fr 360px;gap:64px;align-items:start;
}
.ip-challenge-list{
  list-style:none;display:flex;flex-direction:column;gap:0;
  border-top:1px solid var(--bdr);
}
.ip-challenge-list li{
  font-family:var(--sans);font-size:14px;font-weight:400;
  color:var(--text2);line-height:1.8;
  padding:16px 0 16px 24px;
  border-bottom:1px solid var(--bdr);
  position:relative;
}
.ip-challenge-list li::before{
  content:"";position:absolute;left:0;top:24px;
  width:8px;height:8px;border-radius:50%;
  background:var(--blue);
}
.ip-challenge-cta{
  background:var(--card);border-top:2px solid var(--blue);
  padding:32px 28px;display:flex;flex-direction:column;gap:20px;
  position:sticky;top:90px;
}
.ip-challenge-cta-ttl{
  font-family:var(--sans);font-size:17px;font-weight:700;
  color:#111827;line-height:1.6;letter-spacing:.03em;
}
.ip-challenge-cta .bp{justify-content:center;text-align:center}

/* ── EXAMPLES GRID (6 photos) ── */
.ip-examples{
  display:grid;grid-template-columns:repeat(3,1fr);gap:2px;
}
.ip-example{cursor:default}
.ip-example-img{aspect-ratio:4/3;overflow:hidden;background:var(--card)}
.ip-example-ph{
  width:100%;height:100%;
  background:linear-gradient(135deg,var(--dark3) 0%,var(--card) 100%);
  display:flex;align-items:center;justify-content:center;
}
.ip-example-ph::after{
  content:"Photo";
  font-family:var(--eng);font-size:9px;letter-spacing:.12em;
  color:var(--text3);text-transform:uppercase;
}
.ip-example p{
  font-family:var(--sans);font-size:13px;font-weight:400;
  color:var(--text2);padding:10px 4px;text-align:center;
}

/* ── FEATURES ── */
.ip-features{display:flex;flex-direction:column;gap:2px}
.ip-feature{
  display:grid;grid-template-columns:120px 1fr 360px;gap:0;
  background:var(--card);border-bottom:1px solid var(--bdr);
  overflow:hidden;
}
.ip-feature:last-child{border-bottom:none}
.ip-feature-rev{direction:rtl}
.ip-feature-rev>*{direction:ltr}
.ip-feature-num{
  background:var(--dark);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:4px;border-right:1px solid var(--bdr);padding:36px 16px;
}
.ip-fn-label{
  font-family:var(--eng);font-size:8px;font-weight:700;
  letter-spacing:.16em;color:var(--blue);text-transform:uppercase;
}
.ip-fn-num{
  font-family:var(--eng);font-size:44px;font-weight:800;
  color:rgba(56,182,255,.2);line-height:1;letter-spacing:-.02em;
}
.ip-feature-body{padding:40px 36px;display:flex;flex-direction:column;justify-content:center}
.ip-feature-body h3{
  font-family:var(--sans);font-size:17px;font-weight:700;
  color:#111827;margin-bottom:14px;line-height:1.5;letter-spacing:.03em;
}
.ip-feature-body p{
  font-family:var(--sans);font-size:13px;font-weight:400;
  color:var(--text2);line-height:2;
}
.ip-feature-img{background:var(--dark3);min-height:220px}
.ip-fph{
  width:100%;height:100%;min-height:220px;
  background:linear-gradient(135deg,var(--dark2),var(--dark3));
  display:flex;align-items:center;justify-content:center;
}
.ip-fph::after{
  content:"Photo / Video";
  font-family:var(--eng);font-size:9px;letter-spacing:.12em;
  color:var(--text3);text-transform:uppercase;
}

/* ── INFRARED CASES ── */
.ip-infrared{
  display:grid;grid-template-columns:repeat(4,1fr);gap:2px;margin-bottom:64px;
}
.ip-ir-item{background:var(--card)}
.ip-ir-img{aspect-ratio:4/3;background:var(--dark3)}
.ip-ir-ph{
  background:linear-gradient(135deg,#1a0a30,#2a1540);
  display:flex;align-items:center;justify-content:center;
}
.ip-ir-ph::after{
  content:"赤外線画像";
  font-family:var(--sans);font-size:11px;color:rgba(180,120,255,.4);
}
.ip-ir-item p{
  font-family:var(--sans);font-size:12.5px;font-weight:400;
  color:var(--text2);padding:10px 14px;text-align:center;
}

/* ── IMPACT NUMBER ── */
.ip-impact{
  background:linear-gradient(135deg,#f8fbfd 0%,#eef6fb 50%,#e3f0f8 100%);
  border:1px solid rgba(65,170,220,.18);
  border-radius:var(--r-lg);
  padding:64px 56px;text-align:center;
  position:relative;overflow:hidden;
}
.ip-impact::before{
  content:"";position:absolute;
  top:-60px;right:-60px;width:240px;height:240px;
  background:radial-gradient(circle,rgba(65,170,220,.12) 0%,transparent 70%);
  pointer-events:none;
}
.ip-impact::after{
  content:"";position:absolute;
  bottom:-80px;left:-80px;width:280px;height:280px;
  background:radial-gradient(circle,rgba(255,203,0,.08) 0%,transparent 70%);
  pointer-events:none;
}
.ip-impact-inner{position:relative;z-index:1;max-width:680px;margin:0 auto}
.ip-impact-en{
  font-family:var(--eng);font-size:11px;font-weight:700;
  letter-spacing:.28em;color:var(--blue);text-transform:uppercase;
  display:inline-block;margin-bottom:24px;
  padding:6px 18px;background:rgba(255,255,255,.7);
  border:1px solid rgba(65,170,220,.25);border-radius:var(--r-full);
}
.ip-impact-num{
  font-family:var(--num);font-size:clamp(72px,11vw,120px);font-weight:700;
  color:var(--blue);line-height:1;letter-spacing:-.04em;margin-bottom:8px;
  background:linear-gradient(135deg,#41aadc 0%,#2d92c5 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.ip-impact-unit{font-family:var(--sans);font-size:clamp(20px,3vw,30px);font-weight:700;color:var(--blue);-webkit-text-fill-color:var(--blue);margin-left:6px}
.ip-impact-label{
  font-family:var(--sans);font-size:17px;font-weight:800;
  color:var(--text);margin-bottom:36px;letter-spacing:-.005em;
}
.ip-impact-compare{
  display:flex;flex-direction:column;gap:14px;
  background:rgba(255,255,255,.6);
  border-radius:var(--r-md);
  padding:24px 28px;margin-bottom:24px;
  text-align:left;
}
.ip-impact-row{
  display:grid;grid-template-columns:90px 1fr 100px;
  align-items:center;gap:16px;
}
.ip-impact-row-label{
  font-family:var(--sans);font-size:13px;font-weight:700;
  color:var(--text);letter-spacing:.02em;
}
.ip-impact-bar{
  position:relative;height:10px;
  background:rgba(0,0,0,.04);border-radius:var(--r-full);overflow:hidden;
}
.ip-impact-bar-fill{
  position:absolute;left:0;top:0;height:100%;
  background:linear-gradient(90deg,var(--blue),#5dc0e8);
  border-radius:var(--r-full);
  transition:width .8s ease;
}
.ip-impact-bar-old{
  background:linear-gradient(90deg,#b8c4d0,#94a3b3);
}
.ip-impact-row-time{
  font-family:var(--num);font-size:14px;font-weight:700;
  color:var(--text);text-align:right;
}
.ip-impact-row.is-old .ip-impact-row-time{color:var(--text2);font-weight:600}
.ip-impact-note{
  font-family:var(--sans);font-size:12px;font-weight:400;
  color:var(--text3);line-height:1.7;
}

/* ── MERIT ── */
.ip-merit-wrap{
  display:grid;grid-template-columns:1fr 1fr;gap:2px;
}
.ip-merit-group{background:var(--card);padding:40px 36px}
.ip-merit-group-ttl{
  font-family:var(--sans);font-size:17px;font-weight:700;
  color:#111827;margin-bottom:28px;padding-bottom:18px;
  border-bottom:2px solid var(--blue);letter-spacing:.03em;
}
.ip-merits{display:flex;flex-direction:column;gap:0}
.ip-merit{
  display:grid;grid-template-columns:76px 1fr;gap:14px;
  padding:16px 0;border-bottom:1px solid var(--bdr);align-items:start;
}
.ip-merit:last-child{border-bottom:none}
.ip-merit-num{
  font-family:var(--eng);font-size:9px;font-weight:700;
  letter-spacing:.12em;color:var(--blue);
  background:var(--bluebg);border:1px solid rgba(56,182,255,.2);
  padding:5px 8px;text-align:center;white-space:nowrap;text-transform:uppercase;
}
.ip-merit p{
  font-family:var(--sans);font-size:13px;font-weight:400;
  color:var(--text2);line-height:1.8;padding-top:2px;
}

/* ── PRICE TABLE ── */
.ip-price-table-wrap{max-width:800px;margin:0 auto}
.ip-price-table{width:100%;border-collapse:collapse}
.ip-price-table tr{border-bottom:1px solid var(--bdr)}
.ip-price-table tr:first-child{border-top:1px solid var(--bdr)}
.ip-price-featured{background:rgba(56,182,255,.06)}
.ip-price-table th{
  font-family:var(--sans);font-size:14px;font-weight:400;
  color:#111827;padding:18px 20px;text-align:left;
  width:50%;position:relative;
}
.ip-price-badge{
  font-family:var(--eng);font-size:8px;font-weight:800;
  letter-spacing:.14em;color:#fff;background:var(--blue);
  padding:3px 9px;margin-left:10px;text-transform:uppercase;
  vertical-align:middle;
}
.ip-price-table td{
  font-family:var(--sans);font-size:14px;font-weight:400;
  color:var(--text2);padding:18px 20px;
  white-space:nowrap;
}
.ip-price-table td strong{
  font-family:var(--eng);font-size:22px;font-weight:700;
  color:var(--blue);
}
.ip-price-table td small{
  font-family:var(--sans);font-size:12px;font-weight:400;
  color:var(--text3);margin-left:4px;
}
.ip-price-device{
  font-family:var(--eng);font-size:10px;font-weight:400;
  color:var(--text3) !important;letter-spacing:.06em;
}
.ip-price-note{
  font-family:var(--sans);font-size:13px;font-weight:400;
  color:var(--text3);line-height:1.9;margin-top:20px;
  padding:16px 20px;background:var(--card);border:1px solid var(--bdr);
}

/* ── FLOW ── */
.ip-flow{
  display:grid;grid-template-columns:repeat(4,1fr);gap:2px;
  counter-reset:flow-step;
}
.ip-flow-item{
  background:var(--card);padding:32px 24px;
  border-top:2px solid var(--blue);
}
.ip-flow-step{
  font-family:var(--eng);font-size:28px;font-weight:800;
  color:var(--blue);line-height:1;margin-bottom:14px;
}
.ip-flow-item h4{
  font-family:var(--sans);font-size:14px;font-weight:500;
  color:#111827;margin-bottom:12px;letter-spacing:.03em;line-height:1.5;
}
.ip-flow-item p{
  font-family:var(--sans);font-size:12.5px;font-weight:400;
  color:var(--text2);line-height:1.9;
}

/* ── FINAL CTA ── */
.ip-final-cta{
  background:var(--dark2);border-top:1px solid var(--bdr);
  border-bottom:1px solid var(--bdr);padding:48px 0;text-align:center;
}
.ip-final-cta-inner{
  display:flex;flex-direction:column;align-items:center;gap:24px;
}
.ip-final-cta h2{
  font-family:var(--sans);font-size:clamp(14px,1.8vw,18px);
  font-weight:400;color:#111827;line-height:1.7;letter-spacing:.05em;
}

/* ── MOBILE ── */
@media(max-width:768px){
  .ip-eyecatch{height:320px;margin-top:56px}
  .ip-h1{font-size:clamp(28px,8.5vw,40px);font-weight:800}
  .ip-sec{padding:60px 0}
  .ip-sec-ttl{font-size:clamp(15px,4.6vw,20px);font-weight:800;line-height:1.4;letter-spacing:-.01em}
  .ip-sec-body{font-size:14px;font-weight:400;line-height:1.9}
  .ip-sub-ttl{font-size:17px;font-weight:700}
  .ip-challenges{grid-template-columns:1fr;gap:36px}
  .ip-challenge-cta{position:static}
  .ip-examples{grid-template-columns:repeat(2,1fr);gap:2px}
  .ip-feature{display:flex;flex-direction:column;min-height:auto;border-bottom:none;border:1px solid var(--bdr);border-radius:16px;overflow:hidden;margin-bottom:16px;background:#ffffff !important}
  .ip-feature-img{display:block;order:-1;width:100%;min-height:0;aspect-ratio:16/9}
  .ip-fph{min-height:0;height:100%;aspect-ratio:16/9}
  .ip-feature-rev{direction:ltr}
  .ip-fn-num{font-size:26px}
  .ip-fn-label{font-size:7px}
  .ip-feature-num{flex-direction:row;align-items:center;justify-content:flex-start;gap:8px;padding:14px 20px 0;border-right:none;background:#ffffff !important}
  .ip-feature-body{padding:12px 20px 22px;background:#ffffff !important}
  .ip-feature-body h3{font-size:17px;font-weight:700;color:#111827 !important}
  .ip-feature-body p{font-size:13.5px;font-weight:400;color:#4a5568 !important}
  .ip-infrared{grid-template-columns:repeat(2,1fr)}
  .ip-impact{padding:40px 22px;border-radius:var(--r-md)}
  .ip-impact-en{font-size:9.5px;padding:5px 14px;letter-spacing:.22em;margin-bottom:18px}
  .ip-impact-label{font-size:14.5px;margin-bottom:28px}
  .ip-impact-compare{padding:18px 16px;margin-bottom:18px;gap:12px}
  .ip-impact-row{grid-template-columns:64px 1fr 70px;gap:10px}
  .ip-impact-row-label{font-size:11px}
  .ip-impact-row-time{font-size:12px}
  .ip-impact-bar{height:8px}
  .ip-impact-note{font-size:11px}
  .ip-merit-wrap{grid-template-columns:1fr;gap:2px}
  .ip-merit-group{padding:28px 20px}
  .ip-price-table th,.ip-price-table td{padding:14px 12px;font-size:13.5px}
  .ip-price-device{display:none}
  .ip-price-table td strong{font-size:18px;font-weight:800}
  .ip-flow{grid-template-columns:1fr;gap:2px}
  .ip-final-cta{padding:56px 0}
  .ip-final-cta h2{font-size:clamp(15px,4.4vw,19px);font-weight:800;line-height:1.5;letter-spacing:-.01em}
}
@media(max-width:1024px) and (min-width:769px){
  .ip-challenges{grid-template-columns:1fr 300px;gap:40px}
  .ip-feature{grid-template-columns:100px 1fr 280px}
  .ip-infrared{grid-template-columns:repeat(4,1fr)}
  .ip-flow{grid-template-columns:repeat(2,1fr)}
}

/* ════ 青い線：光が流れるアニメーション ════ */
@keyframes flowLine{
  0%  { background-position: -200% center }
  100%{ background-position:  200% center }
}

/* .bar / .phrule / .sec-bar / ip-sec-ttl下のルール など全適用 */
.bar,.phrule,.sec-bar,.ph-rule,.page-header-rule{
  background: linear-gradient(
    90deg,
    transparent 0%,
    var(--blue) 30%,
    #a0deff 50%,
    var(--blue) 70%,
    transparent 100%
  );
  background-size: 200% 100%;
  animation: flowLine 2.4s ease-in-out infinite;
  height:1px;
  border:none;
}

/* ip-sec 区切り線も同様 */
.ip-merit-group-ttl{
  border-bottom: none;
  position:relative;
}
.ip-merit-group-ttl::after{
  content:"";display:block;
  height:2px;
  margin-top:14px;
  background: linear-gradient(
    90deg,
    transparent 0%,
    var(--blue) 30%,
    #a0deff 50%,
    var(--blue) 70%,
    transparent 100%
  );
  background-size: 200% 100%;
  animation: flowLine 2.4s ease-in-out infinite;
}

/* ヒーロー下のスクロールライン */
.hsline{
  background: linear-gradient(
    to bottom,
    transparent,
    var(--blue) 40%,
    #a0deff 60%,
    transparent
  );
  animation: sp 1.8s ease-in-out infinite, flowLine 2.4s ease-in-out infinite;
}

/* 導入の流れ: 固定の青線（アニメーションなし） */
.ip-flow-item{
  border-top: 2px solid var(--blue);
}

/* ══ ナビ文字色 強制上書き（白背景対応） ══ */
#nav .nm li > a,
#nav .nm > li > a {
  color: #1a2a3e !important;
}
#nav .nm li > a:hover,
#nav .nm > li > a:hover,
#nav .nm li > a.cur {
  color: var(--blue) !important;
}
#nav .nc {
  color: var(--blue) !important;
  background: #ffffff !important;
  border: 1px solid var(--blue) !important;
}
#nav .nc:hover,
#nav .nc.cur,
#nav .nm li > a.nc.cur {
  background: var(--blue) !important;
  color: #ffffff !important;
}

/* フッター: ダーク背景に合わせた文字色 */
.footer .fnav a, .footer .footer-nav a { color: #a8c0d8 !important; border-color: rgba(255,255,255,.1) !important; }
.footer .fnav a:hover, .footer .footer-nav a:hover { color: var(--blue) !important; }
.footer .fsocial a, .footer .footer-social a { color: #a8c0d8 !important; border-color: rgba(255,255,255,.15) !important; }
.footer .fsocial a:hover, .footer .footer-social a:hover { color: var(--blue) !important; }
.footer .fcatch, .footer .footer-catch { color: #5a7a98 !important; }
.footer .fcopy, .footer .footer-copy { color: #5a7a98 !important; }
.footer .fptop, .footer .footer-ptop { color: #5a7a98 !important; }
.footer .fptop:hover, .footer .footer-ptop:hover { color: var(--blue) !important; }
.footer .fbtm, .footer .footer-bottom { border-color: rgba(255,255,255,.08) !important; }
.footer .ftop, .footer .footer-top { border-color: rgba(255,255,255,.08) !important; }

/* ══ 空撮ページ 価格ノートボックス ══ */
.aerial-price-note-box{
  background:rgba(65,170,220,.06);
  border:1px solid rgba(65,170,220,.2);
  border-left:3px solid var(--blue);
  padding:18px 22px;margin:16px 0 10px;
}
.aerial-price-note-ttl{
  font-family:var(--sans);font-size:14px;font-weight:500;
  color:#111827;line-height:1.8;
}

/* ═══════════════════════════════════════════════
   空撮ページ専用CSS — シネマティック
═══════════════════════════════════════════════ */
.ae-hero{position:relative;height:92vh;min-height:560px;overflow:hidden;margin-top:70px;display:flex;align-items:center;justify-content:center;text-align:center}
.ae-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.35)}
.ae-hero-overlay{position:absolute;inset:0;background:radial-gradient(ellipse 80% 80% at 50% 60%,rgba(0,0,0,.2) 0%,rgba(0,0,0,.7) 100%)}
.ae-hero-inner{position:relative;z-index:2;padding:0 20px}
.ae-hero-label{font-family:var(--eng);font-size:10px;font-weight:700;letter-spacing:.3em;color:var(--blue);text-transform:uppercase;display:block;margin-bottom:20px}
.ae-hero-ttl{font-family:var(--sans);font-size:clamp(22px,3vw,36px);font-weight:800;color:#fff;line-height:1.3;letter-spacing:.04em;margin-bottom:14px}
.ae-hero-sub{font-family:var(--sans);font-size:clamp(13px,1.8vw,16px);font-weight:400;color:rgba(255,255,255,.7);line-height:1.9;margin-bottom:32px;letter-spacing:.04em}
.ae-hero-btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.ae-hero-bread{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);font-family:var(--sans);font-size:11px;color:rgba(255,255,255,.4);white-space:nowrap;z-index:2}
.ae-hero-bread a{color:rgba(255,255,255,.4);transition:color .2s}.ae-hero-bread a:hover{color:#38b6ff}

/* 活用シーン */
.ae-scene-sec{background:var(--dark);padding-bottom:0}
.ae-scene-head{padding:80px 0 48px;border-bottom:1px solid var(--bdr)}
.ae-scene-head .en{display:block;margin-bottom:12px}
.ae-scenes{display:flex;flex-direction:column;gap:24px}
.ae-scene-row{display:grid;grid-template-columns:1fr 420px;min-height:400px;border-bottom:1px solid var(--bdr)}
.ae-scene-row-rev{direction:rtl}.ae-scene-row-rev>*{direction:ltr}
.ae-scene-img{overflow:hidden;background:var(--dark3)}
.ae-scene-ph{width:100%;height:100%;min-height:300px;background:linear-gradient(135deg,var(--dark2),var(--card));display:flex;align-items:center;justify-content:center}
.ae-scene-ph::after{content:"Photo / Video";font-family:var(--eng);font-size:9px;letter-spacing:.14em;color:var(--text3);text-transform:uppercase}
.ae-scene-body{padding:52px 44px;display:flex;flex-direction:column;justify-content:center;background:var(--dark2)}
.ae-scene-num{font-family:var(--eng);font-size:48px;font-weight:800;color:rgba(65,170,220,.15);line-height:1;display:block;margin-bottom:10px;letter-spacing:-.02em}
.ae-scene-body h3{font-family:var(--sans);font-size:clamp(18px,2vw,24px);font-weight:800;color:var(--white);margin-bottom:14px;letter-spacing:.03em;padding-bottom:14px;border-bottom:1px solid var(--bdr)}
.ae-scene-body p{font-family:var(--sans);font-size:13px;font-weight:400;color:var(--text2);line-height:2;margin-bottom:12px}
.ae-scene-device{font-family:var(--eng);font-size:10px;font-weight:600;color:var(--text3);letter-spacing:.06em;background:var(--dark);padding:8px 12px;border-left:2px solid var(--bdr);margin-top:auto}

/* 特徴 */
.ae-feat-sec{background:var(--dark2);padding:80px 0;border-top:1px solid var(--bdr)}
.ae-feats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--bdr);margin-top:48px}
.ae-feat{background:var(--dark);padding:32px 24px;display:flex;flex-direction:column;gap:14px;transition:background .2s}
.ae-feat:hover{background:var(--card)}
.ae-feat-icon{width:52px;height:52px;border-radius:12px;background:var(--bluebg);border:1px solid rgba(65,170,220,.2);display:flex;align-items:center;justify-content:center;color:var(--blue)}
.ae-feat h4{font-family:var(--sans);font-size:15px;font-weight:700;color:var(--white);letter-spacing:.03em}
.ae-feat p{font-family:var(--sans);font-size:12.5px;font-weight:400;color:var(--text2);line-height:1.9}

/* 価格 */
.ae-price-sec{background:var(--dark);padding:80px 0;border-top:1px solid var(--bdr)}
.ae-price-head{margin-bottom:48px}
.ae-price-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:2px}
.ae-pc{background:var(--card);padding:32px 26px;display:flex;flex-direction:column;gap:12px;border-top:2px solid var(--bdr)}
.ae-pc-main{background:var(--dark3);border:1px solid rgba(65,170,220,.25);border-top:2px solid var(--blue);position:relative}
.ae-pc-badge{position:absolute;top:-1px;right:20px;font-family:var(--eng);font-size:8px;font-weight:800;letter-spacing:.16em;color:#fff;background:var(--blue);padding:4px 12px;text-transform:uppercase}
.ae-pc-en{font-family:var(--sans);font-size:14px;font-weight:700;color:var(--white);letter-spacing:.03em;margin-top:8px}
.ae-pc-amount{font-family:var(--eng);font-size:34px;font-weight:800;color:var(--blue);line-height:1;letter-spacing:-.02em}
.ae-pc-amount span{font-family:var(--sans);font-size:13px;font-weight:400;color:var(--text3)}
.ae-pc-device{font-family:var(--eng);font-size:10px;color:var(--text3);letter-spacing:.06em;padding:8px 12px;background:rgba(0,0,0,.15);border-left:2px solid var(--bdr)}
.ae-pc-list{list-style:none;display:flex;flex-direction:column;gap:8px;flex:1}
.ae-pc-list li{font-family:var(--sans);font-size:12px;font-weight:400;color:var(--text2);display:flex;align-items:flex-start;gap:8px}
.ae-pc-list li::before{content:"—";color:var(--blue);font-size:10px;margin-top:2px;flex-shrink:0}
.ae-price-note{font-family:var(--sans);font-size:12px;font-weight:400;color:var(--text3);line-height:1.9;margin-top:16px}

/* CTA */
.ae-cta{background:linear-gradient(135deg,#e8f0fa,#f0f6ff);border-top:1px solid #c8daf0;padding:72px 0}
.ae-cta-inner{display:flex;align-items:center;justify-content:space-between;gap:48px;flex-wrap:wrap}
.ae-cta-ttl{font-family:var(--sans);font-size:clamp(18px,2.5vw,28px);font-weight:800;color:#fff;line-height:1.5;margin-bottom:10px}
.ae-cta-sub{font-family:var(--sans);font-size:13px;font-weight:400;color:rgba(255,255,255,.6);line-height:1.9}

/* ═══════════════════════════════════════════════
   イベントページ専用CSS — エネルギッシュ
═══════════════════════════════════════════════ */
.ev-hero{position:relative;height:320px;min-height:280px;overflow:hidden;margin-top:70px}
.ev-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.4)}
.ev-hero-overlay{position:absolute;inset:0;background:linear-gradient(to right,rgba(0,0,0,.85) 0%,rgba(0,0,0,.3) 60%,transparent 100%)}
.ev-hero-inner{position:absolute;inset:0;display:flex;align-items:center;z-index:2}
.ev-hero-label{font-family:var(--eng);font-size:10px;font-weight:700;letter-spacing:.3em;color:var(--blue);text-transform:uppercase;display:block;margin-bottom:18px}
.ev-hero-ttl{font-family:var(--sans);font-size:clamp(22px,3.5vw,36px);font-weight:800;color:#fff;line-height:1.3;letter-spacing:.03em;margin-bottom:10px}
.ev-hero-ttl em{font-style:normal;color:var(--blue)}
.ev-hero-sub{font-family:var(--sans);font-size:12px;font-weight:400;color:rgba(255,255,255,.7);line-height:1.9;letter-spacing:.04em;margin-bottom:0}
.ev-hero-bread{position:absolute;bottom:20px;left:0;right:0;z-index:2}
.ev-hero-bread a,.ev-hero-bread{font-family:var(--sans);font-size:11px;color:rgba(255,255,255,.4)}
.ev-hero-bread a:hover{color:#38b6ff}

/* メニューカード — 写真上・テキスト下 */
.ev-menu-sec{background:var(--dark2);padding:72px 0;border-top:1px solid var(--bdr)}
.ev-menus{display:grid;grid-template-columns:repeat(2,1fr);gap:2px;margin-top:40px}
.ev-menu-card{
  background:var(--dark);display:flex;flex-direction:column;
  transition:background .25s;overflow:hidden;
}
.ev-menu-card:hover{background:var(--card)}
.ev-menu-card:hover .ev-menu-ph-top{filter:brightness(.9)}
/* 写真エリア（上・大きく） */
.ev-menu-img-top{
  position:relative;overflow:hidden;
}
.ev-menu-ph-top{
  width:100%;aspect-ratio:16/8;
  background:linear-gradient(135deg,var(--dark3),#0d2040);
  display:flex;align-items:center;justify-content:center;
  transition:filter .3s;
}
.ev-menu-ph-top::after{
  content:"Photo";font-family:var(--eng);font-size:9px;
  letter-spacing:.14em;color:var(--text3);text-transform:uppercase;
}
/* 番号バッジ（写真左下に重ねる） */
.ev-menu-num{
  position:absolute;bottom:0;left:0;
  font-family:var(--eng);font-size:13px;font-weight:800;
  letter-spacing:.1em;color:#fff;
  background:var(--blue);padding:6px 16px;
  line-height:1.4;
}
/* テキストエリア（下） */
.ev-menu-body{
  padding:20px 22px 24px;
  display:flex;flex-direction:column;
  border-top:none;flex:1;
}
.ev-menu-body h3{
  font-family:var(--sans);font-size:16px;font-weight:700;
  color:var(--white);margin-bottom:8px;
  letter-spacing:.02em;line-height:1.5;
  padding-bottom:10px;border-bottom:1px solid var(--bdr);
}
.ev-menu-body p{
  font-family:var(--sans);font-size:13.5px;font-weight:400;
  color:var(--text2);line-height:1.9;margin:10px 0 12px;
}
.ev-check{list-style:none;display:flex;flex-direction:column;gap:5px;margin-top:auto}
.ev-check li{
  font-family:var(--sans);font-size:12.5px;font-weight:400;
  color:var(--text2);display:flex;align-items:center;gap:7px;
}
.ev-check li::before{
  content:"✓";color:var(--blue);font-weight:700;
  font-size:10px;flex-shrink:0;
}

/* フロー */
.ev-flow-sec{background:var(--dark);padding:80px 0;border-top:1px solid var(--bdr)}
.ev-flow{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:48px}
.ev-flow-item{padding:32px 24px;text-align:center;position:relative}
.ev-flow-item:not(:last-child)::after{content:"→";position:absolute;right:-12px;top:42px;font-size:20px;color:var(--blue);opacity:.4}
.ev-flow-num{font-family:var(--eng);font-size:40px;font-weight:800;color:var(--blue);line-height:1;margin-bottom:12px;opacity:.8}
.ev-flow-line{width:40px;height:2px;background:var(--blue);margin:0 auto 16px;opacity:.3}
.ev-flow-item h4{font-family:var(--sans);font-size:15px;font-weight:700;color:var(--white);margin-bottom:10px;letter-spacing:.03em}
.ev-flow-item p{font-family:var(--sans);font-size:13px;font-weight:400;color:var(--text2);line-height:1.9}

/* 価格 */
.ev-price-sec{background:var(--dark2);padding:80px 0;border-top:1px solid var(--bdr)}
.ev-price-inner{display:grid;grid-template-columns:1fr 360px;gap:64px;align-items:start}
.ev-price-items{display:flex;flex-direction:column;gap:0;margin-top:24px;border-top:1px solid var(--bdr)}
.ev-price-item{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--bdr);gap:16px}
.ev-price-label{font-family:var(--sans);font-size:13px;font-weight:400;color:var(--text2)}
.ev-price-val{font-family:var(--sans);font-size:14px;font-weight:700;color:var(--white);white-space:nowrap}
.ev-cta-box{background:var(--dark);border:1px solid var(--bdr);border-top:2px solid var(--blue);padding:32px 28px;display:flex;flex-direction:column;gap:0}
.ev-cta-lead{font-family:var(--sans);font-size:clamp(19px,2.2vw,26px);font-weight:800;color:var(--white);line-height:1.5;margin-bottom:24px;letter-spacing:.04em}

/* ═══ MOBILE ═══ */
@media(max-width:768px){
  /* 空撮 */
  .ae-hero{height:100svh;margin-top:56px}
  .ae-hero-ttl{font-size:clamp(24px,7vw,34px);font-weight:800;line-height:1.3}
  .ae-hero-sub{font-size:14px;font-weight:400;line-height:1.85}
  .ae-scene-row{grid-template-columns:1fr;min-height:auto}
  .ae-scene-row-rev{direction:ltr}
  .ae-scene-img{height:240px}
  .ae-scene-body{padding:28px var(--px)}
  .ae-scene-body h3{font-size:18px;font-weight:800}
  .ae-scene-body p{font-size:13.5px;font-weight:400;line-height:1.9}
  .ae-feats{grid-template-columns:repeat(2,1fr)}
  .ae-feat h4{font-size:15px;font-weight:700}
  .ae-feat p{font-size:13px;font-weight:400}
  .ae-price-cards{grid-template-columns:1fr}
  .ae-cta-inner{flex-direction:column;gap:28px}
  /* イベント */
  .ev-hero{height:100svh;margin-top:56px}
  .ev-menus{grid-template-columns:1fr}
  .ev-flow{grid-template-columns:repeat(2,1fr)}
  .ev-flow-item::after{display:none}
  .ev-price-inner{grid-template-columns:1fr}
}
@media(max-width:1024px) and (min-width:769px){
  .ae-scene-row{grid-template-columns:1fr 340px}
  .ae-feats{grid-template-columns:repeat(2,1fr)}
  .ev-menus{grid-template-columns:repeat(2,1fr)}
}

/* ═══ COMPANY ════════════════════════════ */
.co-hero{background:var(--dark2);border-top:none;margin-top:70px}
.co-hero-top{padding:40px 0 0;border-bottom:1px solid #dce8f4;background:#f0f4f8}
.co-hero-en{font-family:var(--eng);font-size:9px;font-weight:700;letter-spacing:.3em;color:var(--blue);text-transform:uppercase;display:block;margin-bottom:10px}
.co-hero-ttl{font-family:var(--eng);font-size:clamp(22px,3vw,32px);font-weight:700;color:#0d1f3c;line-height:1.1;letter-spacing:-.01em;margin-bottom:6px}
.co-hero-sub{font-family:var(--sans);font-size:12px;font-weight:400;color:var(--text2);letter-spacing:.06em;padding-bottom:24px}
/* スタッツバー */
.co-stats{background:var(--dark);border-bottom:1px solid var(--bdr)}
.co-stat-row{display:flex;align-items:stretch}
.co-stat{flex:1;padding:22px 28px;display:flex;flex-direction:column;gap:4px}
.co-stat-num{font-family:var(--eng);font-size:26px;font-weight:800;color:var(--blue);line-height:1;letter-spacing:-.01em}
.co-stat-num span{font-family:var(--sans);font-size:12px;font-weight:400;color:var(--text3);letter-spacing:.04em}
.co-stat-label{font-family:var(--sans);font-size:12px;font-weight:400;color:var(--text3);letter-spacing:.06em}
.co-stat-div{width:1px;background:var(--bdr);flex-shrink:0}
/* セクション */
.co-sec{padding:72px 0;border-top:1px solid var(--bdr)}
.co-sec-white{background:var(--dark2)}
.co-sec-dark{background:var(--dark)}
/* 情報レイアウト */
.co-info-layout{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
/* 資格バッジ */
.co-badges{display:flex;flex-direction:column;gap:2px}
.co-badge{display:flex;align-items:flex-start;gap:16px;background:var(--card);padding:18px 20px;border-left:2px solid var(--blue);transition:background .2s}
.co-badge:hover{background:var(--dark3)}
.co-badge-icon{width:40px;height:40px;border-radius:50%;background:var(--bluebg);border:1px solid rgba(65,170,220,.2);display:flex;align-items:center;justify-content:center;color:var(--blue);flex-shrink:0}
.co-badge-ttl{font-family:var(--sans);font-size:13px;font-weight:500;color:var(--white);margin-bottom:3px;letter-spacing:.02em}
.co-badge-sub{font-family:var(--eng);font-size:9px;font-weight:600;color:var(--text3);letter-spacing:.1em;text-transform:uppercase}
/* Why */
.co-why-head{margin-bottom:44px}
.co-why-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2px}
.co-why{background:var(--card);padding:28px 24px;border-top:2px solid var(--blue);display:flex;flex-direction:column;gap:10px;transition:background .2s}
.co-why:hover{background:var(--dark3)}
.co-why-num{font-family:var(--eng);font-size:11px;font-weight:700;letter-spacing:.1em;color:var(--blue);text-transform:uppercase}
.co-why h4{font-family:var(--sans);font-size:14px;font-weight:500;color:var(--white);letter-spacing:.03em;line-height:1.5}
.co-why p{font-family:var(--sans);font-size:12.5px;font-weight:400;color:var(--text2);line-height:1.9}
/* タイムライン */
.co-timeline{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;margin-top:44px;position:relative}
.co-tl-item{background:var(--card);padding:28px 24px;position:relative}
.co-tl-dot{width:10px;height:10px;border-radius:50%;background:var(--blue);margin-bottom:14px;box-shadow:0 0 12px rgba(65,170,220,.5)}
.co-tl-date{display:flex;align-items:baseline;gap:6px;margin-bottom:12px}
.co-tl-yr{font-family:var(--eng);font-size:20px;font-weight:800;color:var(--blue);letter-spacing:-.01em}
.co-tl-mo{font-family:var(--eng);font-size:10px;font-weight:600;color:var(--text3);letter-spacing:.08em;text-transform:uppercase}
.co-tl-item h4{font-family:var(--sans);font-size:13.5px;font-weight:500;color:var(--white);margin-bottom:8px;letter-spacing:.03em;line-height:1.5}
.co-tl-item p{font-family:var(--sans);font-size:12px;font-weight:400;color:var(--text2);line-height:1.9}

/* ═══ FAQ ════════════════════════════════ */
.fq-hero{background:#f0f4f8;padding:32px 0 22px;margin-top:70px;border-bottom:1px solid #dce8f4}
.fq-hero-en{font-family:var(--eng);font-size:9px;font-weight:700;letter-spacing:.3em;color:var(--blue);text-transform:uppercase;display:block;margin-bottom:8px}
.fq-hero-ttl{font-family:var(--sans);font-size:clamp(15px,1.4vw,17px);font-weight:500;color:#0d1f3c;line-height:1.3;margin-bottom:4px}
.fq-hero-sub{font-family:var(--sans);font-size:11px;font-weight:400;color:#4a5568;letter-spacing:.04em}
/* タブ */
.fq-body{background:#f8fafc;padding:56px 0 80px}
.fq-tabs{display:flex;gap:0;border-bottom:2px solid #dce8f4;margin-bottom:40px;overflow-x:auto;background:#fff}
.fq-tab{font-family:var(--eng);font-size:10px;font-weight:700;letter-spacing:.12em;color:#6a849e;text-transform:uppercase;padding:12px 22px;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;white-space:nowrap;transition:color .2s,border-color .2s}
.fq-tab:hover{color:var(--blue)}
.fq-tab.act{color:var(--blue);border-bottom-color:var(--blue)}
/* パネル */
.fq-panels{margin-bottom:48px}
.fq-panel-head{padding:24px 0 20px;border-bottom:1px solid #dce8f4;margin-bottom:0;background:#f8fafc}
.fq-panel-head h2{font-family:var(--sans);font-size:18px;font-weight:700;color:#111827;margin-bottom:5px}
.fq-panel-head p{font-family:var(--sans);font-size:12px;font-weight:400;color:#4a5568}
.fq-list{display:flex;flex-direction:column}
/* 大きなアコーディオン */
.fq-list .faq-item{border-bottom:1px solid #dce8f4;background:#fff}
.fq-list .faq-q{padding:20px 0;gap:16px}
.fq-list .faq-ql{font-family:var(--eng);font-size:14px;font-weight:800;color:var(--blue);width:24px}
.fq-list .faq-qt{font-family:var(--sans);font-size:15px;font-weight:600;color:#111827;letter-spacing:.02em}
.fq-list .faq-qi{width:28px;height:28px;border-radius:50%;border:1px solid #c0ccd8;display:flex;align-items:center;justify-content:center;font-size:16px;color:#6a849e;flex-shrink:0;transition:all .15s}
.fq-list .faq-item.op .faq-qi{background:var(--blue);border-color:var(--blue);color:#fff}
.fq-list .faq-a{padding:0 0 20px 40px}
.fq-list .faq-a p{font-family:var(--sans);font-size:13.5px;font-weight:400;color:#4a5568;line-height:2.1}
/* CTA bar */
.fq-contact-bar{background:#eef4fb;border:1px solid #c0d8f0;border-left:3px solid var(--blue);padding:22px 28px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.fq-contact-bar p{font-family:var(--sans);font-size:14px;font-weight:400;color:#111827}

/* ═══ NEWS ════════════════════════════════ */
.nw-hero{background:#f0f4f8;padding:32px 0 22px;margin-top:70px;border-bottom:1px solid #dce8f4}
.nw-hero-en{font-family:var(--eng);font-size:9px;font-weight:700;letter-spacing:.3em;color:var(--blue);text-transform:uppercase;display:block;margin-bottom:8px}
.nw-hero-ttl{font-family:var(--sans);font-size:clamp(15px,1.4vw,17px);font-weight:500;color:#111827;line-height:1.3}
.nw-body{background:var(--dark);padding:56px 0 80px}
.nw-filters{display:flex;gap:8px;margin-bottom:36px;flex-wrap:wrap}
.nw-filter{font-family:var(--eng);font-size:10px;font-weight:700;letter-spacing:.14em;color:var(--text3);padding:7px 18px;background:transparent;border:1px solid var(--bdr);cursor:pointer;text-transform:uppercase;transition:all .15s}
.nw-filter:hover,.nw-filter.act{background:var(--blue);border-color:var(--blue);color:#fff}
/* カードグリッド */
.nw-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px}
.nw-card{background:var(--card);cursor:pointer;transition:transform .2s}
.nw-card:hover{transform:translateY(-4px)}
.nw-card:hover .nw-card-ttl{color:var(--blue)}
.nw-card-img{overflow:hidden}
.nw-card-ph{width:100%;aspect-ratio:16/9;background:linear-gradient(135deg,var(--dark2),var(--dark3));display:flex;align-items:center;justify-content:center}
.nw-card-ph::after{content:"Photo";font-family:var(--eng);font-size:9px;letter-spacing:.12em;color:var(--text3)}
.nw-card-body{padding:18px 18px 22px;border-top:2px solid var(--blue)}
.nw-card-meta{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.nw-card-cat{font-family:var(--eng);font-size:8.5px;font-weight:700;letter-spacing:.14em;color:var(--blue);background:var(--bluebg);padding:3px 9px;text-transform:uppercase}
.nw-card-date{font-family:var(--eng);font-size:10px;color:var(--text3);letter-spacing:.06em}
.nw-card-ttl{font-family:var(--sans);font-size:14px;font-weight:500;color:var(--white);line-height:1.55;margin-bottom:8px;transition:color .2s;letter-spacing:.02em}
.nw-card-exc{font-family:var(--sans);font-size:12px;font-weight:400;color:var(--text2);line-height:1.9}

/* ═══ CONTACT ════════════════════════════ */
.ct-layout{display:grid;grid-template-columns:420px 1fr;min-height:calc(100vh - 70px);margin-top:70px}
.ct-info{background:var(--dark2);border-right:1px solid var(--bdr);position:sticky;top:70px;height:calc(100vh - 70px);overflow-y:auto}
.ct-info-inner{padding:56px 44px}
.ct-info-en{font-family:var(--eng);font-size:9px;font-weight:700;letter-spacing:.3em;color:var(--blue);text-transform:uppercase;display:block;margin-bottom:16px}
.ct-info-ttl{font-family:var(--sans);font-size:clamp(24px,3vw,36px);font-weight:800;color:var(--white);line-height:1.4;margin-bottom:14px;letter-spacing:.03em}
.ct-info-sub{font-family:var(--sans);font-size:13px;font-weight:400;color:var(--text2);line-height:2;margin-bottom:36px}
.ct-info-items{display:flex;flex-direction:column;gap:2px;margin-bottom:28px}
.ct-info-item{display:flex;align-items:center;gap:14px;padding:14px 16px;background:var(--dark);border:none;color:inherit;transition:background .15s;text-decoration:none}
.ct-info-item:hover{background:var(--card)}
.ct-info-icon{width:34px;height:34px;border-radius:50%;background:var(--bluebg);border:1px solid rgba(65,170,220,.2);display:flex;align-items:center;justify-content:center;color:var(--blue);flex-shrink:0}
.ct-info-label{font-family:var(--eng);font-size:8.5px;font-weight:700;letter-spacing:.16em;color:var(--blue);text-transform:uppercase;display:block;margin-bottom:2px}
.ct-info-val{font-family:var(--sans);font-size:13.5px;font-weight:400;color:var(--white);display:block}
.ct-info-links{display:flex;flex-direction:column;gap:8px}
.ct-link-btn{display:block;padding:11px 16px;border:1px solid var(--bdr);font-family:var(--sans);font-size:13px;font-weight:400;color:var(--text2);text-align:center;transition:border-color .2s,color .2s}
.ct-link-btn:hover{border-color:var(--blue);color:var(--blue)}
/* フォーム */
.ct-form-wrap{background:var(--dark);display:flex;align-items:flex-start;justify-content:center;padding:56px 48px}
.ct-form-inner{width:100%;max-width:520px}
.ct-form-ttl{font-family:var(--sans);font-size:18px;font-weight:700;color:var(--white);margin-bottom:28px;padding-bottom:16px;border-bottom:1px solid var(--bdr);letter-spacing:.04em}
.ct-form-inner .fg input,
.ct-form-inner .fg select,
.ct-form-inner .fg textarea{background:var(--dark2);color:var(--white);border:1px solid var(--bdr)}
.ct-form-inner .fg input:focus,
.ct-form-inner .fg select:focus,
.ct-form-inner .fg textarea:focus{border-color:var(--blue);outline:none}
.ct-form-inner .fg label{color:var(--text2)}
.ct-form-inner .fg label span{color:#e55}

/* ═══ MOBILE ════════════════════════════ */
@media(max-width:768px){
  /* company */
  .co-hero{margin-top:56px}
  .co-stat-row{flex-wrap:wrap}
  .co-stat{flex:1 1 45%;border-bottom:1px solid var(--bdr)}
  .co-stat-div{display:none}
  .co-info-layout{grid-template-columns:1fr;gap:36px}
  .co-why-grid{grid-template-columns:1fr}
  .co-timeline{grid-template-columns:1fr;gap:2px}
  /* faq */
  .fq-hero{margin-top:56px;padding:72px 0 40px}
  .fq-tabs{gap:0;overflow-x:auto}
  .fq-tab{padding:10px 14px;font-size:9px}
  .fq-list .faq-qt{font-size:13.5px}
  .fq-contact-bar{flex-direction:column;gap:14px}
  /* news */
  .nw-hero{margin-top:56px;padding:72px 0 36px}
  #page-news .nw-grid{grid-template-columns:minmax(0,1fr)}
  #page-news .nw-card{min-width:0}
  /* Keep long news titles from widening the mobile grid. */
  #page-news .nw-card-ttl{
    word-break:normal !important;
    overflow-wrap:anywhere !important;
  }
  /* contact */
  .ct-layout{grid-template-columns:1fr;min-height:auto;margin-top:56px}
  .ct-info{position:static;height:auto}
  .ct-info-inner{padding:36px var(--px)}
  .ct-form-wrap{padding:36px var(--px)}
}
@media(max-width:1024px) and (min-width:769px){
  .ct-layout{grid-template-columns:360px 1fr}
  .ct-form-wrap{padding:44px 32px}
  .co-timeline{grid-template-columns:repeat(3,1fr)}
  .nw-grid{grid-template-columns:repeat(2,1fr)}
  .co-info-layout{gap:40px}
}

/* フッター白背景対応 */
.footer .fnav a,.footer .footer-nav a{color:#2a3a50 !important;border-color:#dce8f4 !important}
.footer .fnav a:hover,.footer .footer-nav a:hover{color:var(--blue) !important}
.footer .fsocial a,.footer .footer-social a{color:#2a3a50 !important;border-color:#c0d4e8 !important}
.footer .fsocial a:hover,.footer .footer-social a:hover{color:var(--blue) !important;border-color:var(--blue) !important}
.footer .fcatch,.footer .footer-catch{color:#6a849e !important}
.footer .fcopy,.footer .footer-copy{color:#9aabbf !important}
.footer .fptop,.footer .footer-ptop{color:#9aabbf !important}
.footer .fptop:hover,.footer .footer-ptop:hover{color:var(--blue) !important}
.footer .fbtm,.footer .footer-bottom{border-color:#e0e8f0 !important}
.footer .ftop{border-color:#e0e8f0 !important}

/* フッター下余白 確実に適用 */
.footer-bottom,
.fbtm {
  padding-top: 20px !important;
  padding-bottom: 48px !important;
}

/* ダーク背景セクション内のテキストは白に戻す */
.hero *,.hf *,.ae-hero *,.ev-hero *,
.co-hero-top *,.co-stats *,.co-sec-dark *,
.ip-eyecatch *,.ae-hero-bread,.ev-hero-bread,
.ae-cta *,.ev-price-sec .ev-cta-box *,
.insp-hero *,.insp-bvh *,.insp-flow *,.insp-honest *,
.insp-price *,.insp-demo *,
.ae-scene-sec *,.ae-feat-sec *,.ae-price-sec *,
.ev-flow-sec *,.ev-menu-card *,
.fq-hero *,
.nw-hero *,
.ct-info *,
.svc-row-card *,
.home-about *,.home-service *,.home-slider *,.home-news *,
.sec-about *,.sec-service *,.sec-trust *,
.ctab *,
.footer * { color: inherit }

/* ダーク背景の直下テキストを白に */
.hero .hl,.hero .hh1,.hero .hh2,.hero .hb{ color: #ffffff }
.ae-hero-ttl,.ae-hero-sub,.ae-hero-label{ color: #ffffff }
.ev-hero-ttl,.ev-hero-sub,.ev-hero-label{ color: #ffffff }
.co-hero-sub{ color: rgba(200,216,232,.8) }
.insp-hero-ttl,.insp-hero-sub,.insp-hero-en{ color: #ffffff }
.ip-h1,.ip-label{ color: #ffffff }
.ip-bread,.ip-bread a{ color: rgba(255,255,255,.5) }
.svc-row h3,.svc-row p,.svc-row-btn-text{ color: #ffffff }

/* ダーク背景カードのテキスト */
.ae-feat h4,.ae-feat p{ color: var(--text) }
.ae-scene-body h3{ color: #ffffff }
.ae-scene-body p,.ae-scene-device{ color: var(--text2) }
.ae-pc-en,.ae-pc-list li{ color: var(--text2) }
.ae-cta-ttl{ color: #ffffff }
.ae-cta-sub{ color: rgba(200,216,232,.75) }
.ev-menu-body h3{ color: #ffffff }
.ev-menu-body p,.ev-check li{ color: var(--text2) }
.ev-flow-item h4{ color: #ffffff }
.ev-flow-item p{ color: var(--text2) }
.ev-price-label{ color: var(--text2) }
.ev-price-val{ color: #ffffff }
.ev-cta-lead{ color: #ffffff }
.co-stat-num{ color: var(--blue) }
.co-stat-label{ color: var(--text3) }
.co-why h4{ color: #ffffff }
.co-why p{ color: var(--text2) }
.co-tl-item h4{ color: #ffffff }
.co-tl-item p{ color: var(--text2) }
.co-badge-ttl{ color: #ffffff }
.nw-hero-ttl{ color: var(--dark2) }
.fq-hero-ttl{ color: var(--dark2) }
.fq-contact-bar p{ color: #111827 }
.ct-info-ttl{ color: #ffffff }
.ct-info-sub{ color: var(--text2) }
.ct-info-val{ color: #ffffff }
.ct-form-ttl{ color: #ffffff }
.ip-sec-ttl,.ip-sec-body,.ip-sub-ttl{ color: #111827 }
.ip-sec-dark .ip-sec-ttl,.ip-sec-dark .ip-sec-body,.ip-sec-dark .ip-sub-ttl{ color: #111827 }
.ip-sec-dark .ip-example p,.ip-sec-dark .ip-sec-body{ color: #4a5568 }
.ip-impact-label,.ip-impact-note{ color: #111827 }
.ip-challenge-cta-ttl{ color: #111827 }
.ip-merit p,.ip-merit-group-ttl{ color: #111827 }
.ip-price-table th{ color: #111827 }
.ip-flow-item h4{ color: #111827 }
.ip-final-cta h2{ color: #111827 }
.ip-feature-body h3{ color: #111827 }
.ip-bvh-card h3{ color: #111827 }
.ip-ir-item p{ color: #111827 }
.ip-honest-head .ttl,.ip-limits .insp-limit-content h4{ color: #111827 }
.insp-limit-content h4{ color: #111827 }
.insp-limit-content p{ color: #4a5568 }
.insp-alert-ttl{ color: #111827 }
.insp-tel-main{ color: var(--blue) }
.insp-bvh-card h3,.insp-bvh-card p{ color: #111827 }
.aerial-price-note-ttl{ color: #111827 }

/* ホームページのダーク背景 */
.sa .ttl,.sa .fi h4,.ss .scb h3,.st .tc h3,.ctab .ctab-h{ color: #ffffff }
.sa .desc,.sa .fi p,.ss .scb p,.st .tc p,.ctab .ctab-sub{ color: var(--text2) }
.hn-ttl{ color: #ffffff }
.hn-date,.hn-arr{ color: var(--text3) }
.ha-icon-item p{ color: var(--text2) }

/* フッター */
.footer .fnav a,.footer .footer-nav a{ color: #2a3a50 !important }
.footer .fcatch,.footer .footer-catch{ color: #9aabbf !important }
.footer .fcopy,.footer .footer-copy{ color: #9aabbf !important }
.footer .fptop,.footer .footer-ptop{ color: #9aabbf !important }

/* サービスカード文字色 強制黒 */
.svc-row-card,
.svc-row-card *:not(.svc-row-btn-circle):not(.svc-row-btn-circle *) {
  color: #111827 !important;
}
.svc-row-card .svc-row-num { color: #41aadc !important; }
.svc-row-card .svc-row-label-text { color: #41aadc !important; }
.svc-row-card .svc-row-btn-text { color: #111827 !important; }
.svc-row:hover .svc-row-card .svc-row-btn-text { color: #41aadc !important; }
.svc-row-card .svc-row-btn-circle,
.svc-row-card .svc-row-btn-circle * { color: #ffffff !important; }

/* お知らせ・よくある質問 タイトル強制表示 */
.nw-hero-ttl {
  color: #111827 !important;
  -webkit-text-stroke: 0 !important;
  text-shadow: none !important;
}
.fq-hero-ttl {
  color: #0d1f3c !important;
  -webkit-text-stroke: 0 !important;
  text-shadow: none !important;
}

/* ダーク背景内ホバー色 — より見やすい明るいブルー */
.home-service .svc-row:hover .svc-row-btn-text,
.home-about .fi h4:hover,
.home-news .hn-item:hover .hn-ttl,
.home-news .hn-item:hover .hn-arr,
.sa .fl .fi h4,
.ip-challenges .ip-challenge-list li,
.ae-scene-sec .ae-scene-body h3,
.ev-flow-sec .ev-flow-item h4,
.co-sec-dark .co-why h4,
.faq-q:hover .faq-qt,
.fq-list .faq-q:hover .faq-qt,
.nw-card:hover .nw-card-ttl { 
  color: #38b6ff !important; 
}

/* ダーク背景内のリンク・ナビhover */
.ae-cta a:hover,
.ev-price-sec .ev-cta-box a:hover,
.insp-tel-bar a:hover,
.ip-final-cta a:hover { 
  color: #38b6ff !important;
  border-color: #38b6ff !important;
}
/* LINE等セカンダリ(.bs)ボタン: ホバー時は青背景+白文字で可読性確保 */
.ae-hero a.bs:hover,
.ctab a.bs:hover,
.wk-cta-btns a.bs:hover,
.ctab-btns a.bs:hover {
  background: var(--blue) !important;
  color: #ffffff !important;
  border-color: var(--blue) !important;
}

/* ダーク背景内の白文字をライトグレーに変更 */
/* 見出し: やや明るめグレー */
.ae-scene-body h3,
.ae-feat h4,
.ev-menu-body h3,
.ev-flow-item h4,
.ev-price-val,
.ev-cta-lead,
.co-why h4,
.co-tl-item h4,
.co-badge-ttl,
.co-hero-sub,
.ct-info-sub,
.ct-info-val,
.ct-form-ttl,
.ip-challenge-cta-ttl,
.insp-alert-ttl,
.insp-tel-main,
.fq-panel-head h2,
.fq-contact-bar p,
.ae-pc-en,
.ip-feat h3,
.insp-bvh-card h3 {
  color: #d4e4f4 !important;
}

/* 本文: もう少し暗めグレー */
.ae-scene-body p,
.ae-feat p,
.ev-menu-body p,
.ev-check li,
.ev-flow-item p,
.co-why p,
.co-tl-item p,
.ae-cta-sub {
  color: #9ab8d0 !important;
}

/* サービスカード（ホーム）のテキストもグレーに */
.svc-row h3 { color: #1a2a40 !important; }
.svc-row p { color: #4a5568 !important; }
.svc-row-btn-text { color: #2a3a50 !important; }

/* ヒーローテキスト */
.hero .hh2 { color: rgba(180,210,240,.75) !important; }
.hero .hb { color: rgba(160,195,230,.7) !important; }
.ae-hero-sub { color: rgba(180,210,240,.8) !important; }
.ev-hero-sub { color: rgba(180,210,240,.8) !important; }

/* ホームニュース 文字色強制 */
.hn-ttl { color: #111827 !important; }
.hn-date { color: #6a849e !important; }
.hn-arr { color: #9aabbf !important; }
.hn-cat { color: #41aadc !important; background: rgba(65,170,220,.1) !important; }
.hn-item:hover .hn-ttl { color: #41aadc !important; }
.hn-item:hover .hn-arr { color: #41aadc !important; }

/* ヒーローセクションのセカンダリボタン: 黒文字 */
.hero .bs,
.hbtns .bs {
  color: #1f2937 !important;
  border-color: var(--blue) !important;
  background: #ffffff !important;
}
.hero .bs:hover,
.hbtns .bs:hover {
  color: #0f172a !important;
  background: #FFCB00 !important;
  border-color: #FFCB00 !important;
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(255,203,0,.4);
}

/* CTAバンド 文字色強制 */
.ctab .ctab-h { color: #111827 !important; }
.ctab .ctab-sub { color: #4a5568 !important; }
.ctab .en { color: var(--blue) !important; }
.ctab .bs {
  color: #2a3a50 !important;
  border-color: #c0d4e8 !important;
}
.ctab .bs:hover {
  background: var(--blue) !important;
  color: #ffffff !important;
  border-color: var(--blue) !important;
}

/* 会社概要ヒーローのサブテキスト強制 */
.co-hero-sub { color: #4a5568 !important; }
.co-hero-en { color: var(--blue) !important; }

/* 会社概要スタッツ 文字色強制 */
.co-stat-num { color: #111827 !important; }
.co-stat-num span { color: #4a5568 !important; font-size: 0.6em !important; }
.co-stat-label { color: #6a849e !important; }
/* ¥マークだけ青を維持 */
.co-stat-num .yen-mark { color: #0055aa !important; }

/* 会社概要 Why NEXORA カードの文字色 */
.co-why-num { color: #9ab8d4 !important; }
.co-why h4 { color: #111827 !important; }
.co-why p { color: #4a5568 !important; }

/* 会社概要 Why NEXORAカード見出し 強制黒 */
.co-sec-dark .co-why h4,
.co-why h4 { color: #111827 !important; }
.co-sec-dark .co-why p,
.co-why p { color: #4a5568 !important; }
.co-why { background: #f8fafc !important; }
.co-why:hover { background: #edf2f7 !important; }
.co-why-num { color: #41aadc !important; font-size: 10px !important; }

/* 会社概要スタッツ 数字を青に戻す */
.co-stat-num { color: var(--blue) !important; }
.co-stat-num span { color: #6a849e !important; font-size: 0.6em !important; }
.yen-mark { color: #0055aa !important; }

/* 会社概要 資格バッジ 文字色強制 */
.co-badge-ttl { color: #111827 !important; }
.co-badge-sub { color: #4a5568 !important; }
.co-badge-icon { color: var(--blue) !important; }
.co-badges-block .en { color: var(--blue) !important; }
.co-badges-block .ttl { color: #111827 !important; }

/* ページヘッダー文字色 強制黒 */
.phttl { color: #111827 !important; -webkit-text-stroke: 0 !important; text-shadow: none !important; }
.phsub { color: #4a5568 !important; }
.phen  { color: var(--blue) !important; }

/* ══ ビデオ/画像ページヘッダー ══ */
.vph{
  position:relative;height:420px;overflow:hidden;
  margin-top:70px;background:#0a1628;
}
.vph-media{position:absolute;inset:0;z-index:0}
.vph-video{width:100%;height:100%;object-fit:cover;opacity:.6}
.vph-placeholder{
  position:absolute;inset:0;
  background:linear-gradient(135deg,#0a1628 0%,#0d2040 50%,#071428 100%);
  display:flex;align-items:center;justify-content:center;
}
.vph-video[src=""]+.vph-placeholder,
.vph-placeholder:has(+ video[src=""]){ display:flex }
.vph-ph-inner{
  display:flex;flex-direction:column;align-items:center;gap:12px;
  text-align:center;
}
.vph-ph-inner p{
  font-family:var(--eng);font-size:11px;font-weight:600;
  letter-spacing:.16em;color:rgba(255,255,255,.35);
  text-transform:uppercase;
}
.vph-ph-inner span{
  font-family:var(--eng);font-size:9px;
  color:rgba(255,255,255,.2);letter-spacing:.08em;
}
/* 動画が空の時だけプレースホルダーを表示 */
.vph-video:not([src]){ display:none }
.vph-video[src=""]{ display:none }
.vph-overlay{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(
    to right,
    rgba(5,15,35,.75) 0%,
    rgba(5,15,35,.4) 50%,
    transparent 100%
  );
}
.vph-text{
  position:absolute;inset:0;z-index:2;
  display:flex;align-items:center;
}
.vph-en{
  font-family:var(--eng);font-size:9px;font-weight:700;
  letter-spacing:.3em;color:var(--blue);
  text-transform:uppercase;display:block;margin-bottom:14px;
}
.vph-ttl{
  font-family:var(--sans);font-size:clamp(26px,3.8vw,46px);
  font-weight:800;color:#ffffff;
  line-height:1.25;letter-spacing:.02em;margin-bottom:14px;
}
.vph-sub{
  font-family:var(--sans);font-size:14px;font-weight:400;
  color:rgba(200,220,240,.85);line-height:1.9;
  max-width:480px;letter-spacing:.03em;
}
@media(max-width:768px){
  .vph{height:280px;margin-top:56px}
  .vph-ttl{font-size:clamp(22px,6vw,32px);font-weight:800}
  .vph-sub{font-size:13.5px}
}

/* 空撮CTAセクション 文字色（明るい背景用） */
.ae-cta .ae-cta-ttl { color: #111827 !important; }
.ae-cta .ae-cta-sub { color: #4a5568 !important; }
.ae-cta .en { color: var(--blue) !important; }
.ae-cta .bs {
  color: #2a3a50 !important;
  border-color: #c0d4e8 !important;
}
.ae-cta .bs:hover {
  color: var(--blue) !important;
  border-color: var(--blue) !important;
}

/* 空撮料金カード テキスト濃く */
.ae-pc-en { color: #111827 !important; font-weight: 600 !important; }
.ae-pc-list li { color: #4a5568 !important; }
.ae-pc-device { color: #4a5568 !important; }
.ae-pc { background: #f0f4f8 !important; }
.ae-pc-main { background: #ffffff !important; border: 1px solid rgba(65,170,220,.3) !important; }
.ae-price-cards { background: #e0e8f0 !important; }

/* プレースホルダー 白背景・見やすく上書き */
.vph-placeholder {
  background: #f0f4f8 !important;
}
.vph-ph-inner svg {
  stroke: #7aaac8 !important;
  width: 52px !important; height: 52px !important;
}
.vph-ph-inner p {
  color: #4a7a9e !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .2em !important;
}
.vph-ph-inner span {
  color: #7aaac8 !important;
  font-size: 11px !important;
  border: 1px dashed #a0c4d8 !important;
  padding: 6px 16px !important;
  font-family: var(--sans) !important;
}
/* テキスト部分はダーク背景の上に重なるのでそのまま白でOK */
/* ただしプレースホルダー時はテキストを黒に */
.vph-overlay {
  background: linear-gradient(
    to right,
    rgba(240,244,248,.0) 0%,
    rgba(240,244,248,.0) 100%
  ) !important;
}
.vph-en { color: var(--blue) !important; }
.vph-ttl { color: #111827 !important; }
.vph-sub { color: #4a5568 !important; }

/* プレースホルダーヘッダー 高さ拡大・アイコン上に */
.vph { height: 560px !important; }
.vph-placeholder { align-items: flex-start !important; padding-top: 48px !important; }
.vph-ph-inner { align-items: center !important; }
.vph-text { align-items: flex-end !important; padding-bottom: 64px !important; }
@media(max-width:768px){
  .vph { height: 360px !important; }
  .vph-text { padding-bottom: 40px !important; }
  .vph-placeholder { padding-top: 28px !important; }
}

/* ビデオヘッダー タイトル */
.vph-ttl { font-size: clamp(22px, 3vw, 34px) !important; font-weight:800 !important; }
.vph-sub { font-size: 13px !important; font-weight:400 !important; }

/* ビデオヘッダーのサブテキスト 折り返しなし */
.vph-sub { white-space: nowrap !important; }
@media(max-width:768px){
  .vph-sub { white-space: normal !important; }
}

/* イベントメニューカード 文字色強制 */
.ev-menu-body h3 { color: #111827 !important; }
.ev-menu-body p  { color: #4a5568 !important; }
.ev-check li     { color: #4a5568 !important; }
.ev-menu-card    { background: #ffffff !important; }
.ev-menu-card:hover { background: #f5f8fc !important; }
.ev-menus        { background: #e8eef4 !important; }

/* イベント料金・CTAボックス 文字色・ボタン幅 */
.ev-price-label { color: #4a5568 !important; }
.ev-price-val   { color: #111827 !important; }
.ev-cta-lead    { color: #111827 !important; font-size: 16px !important; line-height: 1.6 !important; }
.ev-cta-box     { background: #f8fafc !important; border-color: #dce8f4 !important; }
.ev-cta-box .bp { width: auto !important; padding-left: 28px !important; padding-right: 28px !important; }
.ev-cta-box .bs { width: auto !important; padding-left: 20px !important; padding-right: 20px !important; }

/* 建物点検 課題CTAボックス 文字色強制 */
.ip-challenge-cta-ttl { color: #111827 !important; font-size: 16px !important; }
.ip-challenge-cta {
  background: #ffffff !important;
  border: 1px solid #c8daf0 !important;
  border-top: 3px solid var(--blue) !important;
}

/* ═══ 統一プレースホルダー（画像/動画が入る部分） ══════════ */
.nw-card-ph,
.ip-example-ph,
.ip-fph,
.ip-ir-ph,
.svc-media-ph,
.ae-scene-ph,
.ev-menu-ph-top,
.vph-placeholder {
  background: #eef1f5 !important;
  background-image: none !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 14px !important;
  position: relative !important;
  border: none !important;
  overflow: hidden !important;
}
/* 既存の擬似要素コンテンツを無効化 */
.nw-card-ph::after,
.ip-example-ph::after,
.ip-fph::after,
.ip-ir-ph::after,
.svc-media-ph::after,
.ae-scene-ph::after,
.ev-menu-ph-top::after{
  content: none !important;
}
/* 既存の子要素（SVG・p）を非表示にして擬似要素に任せる */
.svc-media-ph > svg,
.svc-media-ph > p,
.ev-menu-ph-top > *,
.ae-scene-ph > * {
  display: none !important;
}
/* 統一アイコン（白枠の再生アイコン） */
.nw-card-ph::before,
.ip-example-ph::before,
.ip-fph::before,
.ip-ir-ph::before,
.svc-media-ph::before,
.ae-scene-ph::before,
.ev-menu-ph-top::before,
.vph-ph-icon {
  content: "";
  display: block;
  width: 56px;
  height: 40px;
  background: #ffffff url("assets/img/play-icon.svg") no-repeat center center;
  border: 1px solid #d8e0ea;
  border-radius:12px;
  flex-shrink: 0;
}
/* 注釈テキスト「動画または写真が入ります」 */
.nw-card-ph,
.ip-example-ph,
.ip-fph,
.ip-ir-ph,
.svc-media-ph,
.ae-scene-ph,
.ev-menu-ph-top{
  font-size: 0;
}
.nw-card-ph::after,
.ip-example-ph::after,
.ip-fph::after,
.ip-ir-ph::after,
.svc-media-ph::after,
.ae-scene-ph::after,
.ev-menu-ph-top::after{
  content: "動画または写真が入ります" !important;
  display: block !important;
  font-family: var(--sans) !important;
  font-size: 11px !important;
  font-weight:400 !important;
  letter-spacing: .04em !important;
  color: #9aabbf !important;
  line-height: 1 !important;
}
/* 小さいコマ（例: ip-ir-ph, ip-example-ph）でははみ出さないよう調整 */
.ip-example-ph::before,
.ip-ir-ph::before {
  width: 42px;
  height: 30px;
  background-size: 16px 16px;
}
.ip-example-ph::after,
.ip-ir-ph::after {
  font-size: 10px !important;
}
/* 大型のヒーロー vph は元のテキスト構造を維持 */
.vph-placeholder {
  align-items: center !important;
  justify-content: center !important;
}
.vph-ph-inner {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 14px !important;
}
.vph-ph-inner svg { display: none !important; }
.vph-ph-inner p {
  font-family: var(--sans) !important;
  font-size: 11px !important;
  font-weight:400 !important;
  color: #9aabbf !important;
  letter-spacing: .04em !important;
  margin: 0 !important;
}
.vph-ph-inner p::before {
  content: "";
  display: block;
  width: 56px;
  height: 40px;
  margin: 0 auto 14px;
  background: #ffffff url("assets/img/play-icon.svg") no-repeat center center;
  border: 1px solid #d8e0ea;
  border-radius:12px;
}
.vph-ph-inner span { display: none !important; }

/* ═══ 文字色: 白背景で読めない箇所を黒系に統一 ═══════════════ */
/* Contact 左パネル */
.ct-info-ttl              { color: #111827 !important; }
.ct-info-sub              { color: #4a5568 !important; }
.ct-info-val              { color: #111827 !important; }
.ct-info-label            { color: var(--blue) !important; }
.ct-info-item             { background: #ffffff !important; border: 1px solid #e0e8f0 !important; }
.ct-info-item:hover       { background: #f5f7fa !important; }
.ct-link-btn              { color: #2a3a50 !important; border: 1px solid #c0d4e8 !important; background: #ffffff !important; }
.ct-link-btn:hover        { color: var(--blue) !important; border-color: var(--blue) !important; }
/* Contact フォームタイトル */
.ct-form-ttl              { color: #111827 !important; }
.ct-form-inner .fg label  { color: #4a5568 !important; }
.ct-form-inner .fg input,
.ct-form-inner .fg select,
.ct-form-inner .fg textarea { background: #ffffff !important; color: #111827 !important; border: 1px solid #d8e2ec !important; }
/* News カード見出し */
.nw-card-ttl              { color: #111827 !important; }
.nw-card-ttl:hover        { color: var(--blue) !important; }
.nw-card-exc              { color: #4a5568 !important; }
.nw-card-cat              { color: var(--blue) !important; background: var(--bluebg) !important; }
.nw-card                  { background: #f5f7fa !important; border: 1px solid #e8eef4 !important; }
/* FAQ カテゴリ見出し */
.fq-panel-head h2         { color: #111827 !important; }
.fq-panel-head p          { color: #4a5568 !important; }
.fq-hero-ttl              { color: #111827 !important; }
.nw-hero-ttl              { color: #111827 !important; }
.fq-contact-bar p         { color: #111827 !important; }
/* 事業の歩み（タイムライン）の見出しと本文を黒字に */
.co-tl-item h4            { color: #111827 !important; }
.co-tl-item p             { color: #4a5568 !important; }

/* 空撮ページ FEATURES セクション 文字を濃く */
.ae-feat h4               { color: #111827 !important; font-weight: 600 !important; }
.ae-feat p                { color: #4a5568 !important; }

/* ═══ ヒーロー (vph) を統一ライトテーマに揃える ═══════════ */
.vph                      { background: #eef1f5 !important; height: 480px !important; }
.vph-placeholder          { background: #eef1f5 !important; background-image: none !important; }
.vph-overlay              { background: none !important; }
.vph-en                   { color: var(--blue) !important; }
.vph-ttl                  { color: #111827 !important; font-size: clamp(24px, 2.8vw, 36px) !important; font-weight:800 !important; }
.vph-sub                  { color: #4a5568 !important; font-weight:400 !important; }
/* テキスト位置: プレースホルダーアイコンと重ならないよう下寄せ */
.vph-text                 { align-items: flex-end !important; padding-bottom: 32px !important; }
.vph-placeholder          { align-items: center !important; justify-content: flex-start !important; padding-top: 32px !important; }
.vph-ph-inner             { align-items: center !important; }
@media(max-width:768px){
  .vph                    { height: 360px !important; }
  .vph-ttl                { font-size: clamp(20px, 5.5vw, 28px) !important; font-weight:800 !important; }
  .vph-sub                { font-size: 13px !important; }
}
@media(max-width:1024px){
}

/* [問題1] タブレット: HOMEヒーローをコンパクト化 */
@media(max-width:1024px) and (min-width:769px){
  .hero { min-height: 520px !important; height: 70vh !important; max-height: 720px !important; }
  .hc   { padding: 0 0 48px !important; bottom: auto !important; top: 48% !important; }
}

/* [問題2] タブレット: 各サービスページのヒーロー(vph)をコンパクト化 */
@media(max-width:1024px) and (min-width:769px){
  .vph              { height: 380px !important; }
  .vph-placeholder  { padding-top: 20px !important; }
  .vph-text         { padding-bottom: 24px !important; }
  .vph-ttl          { font-size: 24px !important; font-weight:800 !important; }
  .vph-sub          { font-size: 13px !important; }
}

/* [問題4] タブレット: イベントメニューカード画像の高さ調整 */
@media(max-width:1024px){
  .ev-menu-ph-top { aspect-ratio: 16/7 !important; max-height: 180px !important; }
}

/* [問題5] タブレット: 空撮シーンの左右カラム比率調整 */
@media(max-width:1024px) and (min-width:769px){
  .ae-scene { grid-template-columns: 1fr 1fr !important; }
  .ae-scene-body { padding: 36px 28px !important; }
}

/* [問題7] 小型端末(320px)のヒーローボタンを縦積み・全幅に */
@media(max-width:380px){
  .hbtns { flex-direction: column !important; width: 100% !important; }
  .hbtns .bp, .hbtns .bs { width: 100% !important; justify-content: center !important; }
}

/* [問題8] モバイルフッター: アイテム間スペース確保 */
@media(max-width:768px){
  .fsocial { gap: 10px !important; flex-wrap: wrap !important; }
  .fnav { grid-template-columns: repeat(2,1fr) !important; gap: 0 20px !important; }
  .fnav a { padding: 10px 0 !important; }
  .footer .ftop { gap: 28px !important; }
}

/* [問題9] タブレット: FAQタブの各ボタン均等割付 */
@media(max-width:1024px){
  .fq-tabs { flex-wrap: wrap !important; gap: 4px !important; }
  .fq-tab { padding: 10px 14px !important; font-size: 12px !important; }
}

/* [問題10] タブレット: CHALLENGES見出しを1行に収める */
@media(max-width:1024px) and (min-width:769px){
  .ip-challenges-ttl, .insp-challenges h2 { font-size: 20px !important; line-height: 1.4 !important; }
}

/* ═══ Phase 1 補強: 角丸/影/アクセント ═══════════════ */
/* カード・ボックス系を丸く */
.card, .scb, .tc, .cfbox, .lmi, .art-card,
.hs-card, .svc-row, .ip-feature, .ip-merit-group,
.ae-scene-row, .ae-feat, .ae-price-card,
.ev-menu, .ev-flow-item, .ev-price-card,
.co-badge, .co-tl-item,
.fq-list .faq-item, .faq-q, .faq-item,
.ct-info-card, .ct-form,
.ha-icon-item, .hn-item,
.cfbox{
  border-radius: var(--r-md);
}

.ip-eyecatch, .ae-hero, .ev-hero,
.ae-scene-img, .ip-feature-img, .ip-example-ph, .hs-card-img,
.art-img, .hn-thumb, .ha-icon-box{
  border-radius: var(--r-md);
}

.scb img, .tc img, .hs-card-img img,
.ae-scene-img img, .ip-feature-img img, .art-img img, .hn-thumb img{
  border-radius: 0; /* 親に当たっていればOK */
}

/* タグ・チップ */
.mtag, .faq-nb, .hn-cat, .art-tag{
  border-radius: var(--r-full);
}

/* スクロールバー風数字バッジ */
.fn{ border-radius: 50%; }

/* 影をブルー基調に置換 (既存カードに新シャドウ付与) */
.scb, .tc, .cfbox, .ha-icon-item:hover, .ev-menu,
.ae-price-card, .ev-price-card{
  box-shadow: var(--shadow-sm);
}
.scb:hover, .tc:hover, .ev-menu:hover,
.ae-feat:hover{
  box-shadow: var(--shadow-md);
}

/* セクション交互背景: 白 / 淡ブルー */
.home-about{ background: var(--surface) !important; }
.home-service{ background: #ffffff !important; }
.home-news{ background: var(--surface) !important; }

/* 黄色アクセントの定型配置: タグ・ハイライト */
.tag-yellow{
  display:inline-flex;align-items:center;gap:6px;
  padding:6px 14px;background:var(--yellow);color:#1f2937;
  font-size:11px;font-weight:800;letter-spacing:.06em;
  border-radius:var(--r-full);
}

/* セクション "en" ラベルの装飾を黄色アクセントに（ドット箇所） */
.en::before{
  background-color: var(--yellow) !important;
}

/* 数字フォント適用 */
.num, [class*="num"] strong,
.ip-fn-num, .ae-feat-num, .ev-flow-num,
.co-tl-year,
.ev-price-val, .hs-card-num{
  font-family: var(--num);
  font-weight: 700;
}

/* fpost: 価格表示・統計などに丸ゴ風 */
.ip-price-table td strong, .ae-price-card .price-val,
.ev-price-val,
.co-badge-num, .stat-num{
  font-family: var(--num);
}

/* ヒーローボタンも丸ボタン化 (Phase1ボタン基本に従う) */
.hbtns .bp, .hbtns .bs{
  border-radius: var(--r-full);
}

/* ──── やわらかさ調整 ──── */
/* 1px ボーダーを背景色面に置換しすぎると激変するので、
   トーンを淡ブルー側に寄せるだけに留める */

/* ===== style-block-2 ===== */
/* ヒーロー実例ボタンのホバー改善 (要望#2) */
    .hbtns .bs{background:#ffffff;color:#0f172a;border:1.5px solid #ffffff;transition:all .25s ease}
    .hbtns .bs:hover{background:#FFCB00 !important;color:#0f172a !important;border-color:#FFCB00 !important;transform:translateY(-1px);box-shadow:0 6px 20px rgba(255,203,0,.4)}
    .hbtns .bs:hover svg path{stroke:#0f172a !important}

/* ===== style-block-3 ===== */
/* ═══ 要望書 #3: メガメニュー ═══ */
.mega-p{position:static}
.mega-caret{font-size:.7em;margin-left:4px;opacity:.6;display:inline-block;transition:transform .2s}
.mega-p.open .mega-caret{transform:rotate(180deg)}
.mega-menu{
  position:fixed;top:64px;left:0;right:0;
  background:rgba(255,255,255,.97);
  backdrop-filter:saturate(180%) blur(20px);
  -webkit-backdrop-filter:saturate(180%) blur(20px);
  border-top:1px solid #e7eef5;border-bottom:1px solid #e7eef5;
  padding:28px 0;
  opacity:0;visibility:hidden;transform:translateY(-10px);
  transition:opacity .3s ease,visibility .3s,transform .3s ease;
  z-index:998;
}
.mega-p.open .mega-menu,.mega-p:hover .mega-menu{
  opacity:1;visibility:visible;transform:translateY(0);
}
.mega-grid{
  max-width:1280px;margin:0 auto;padding:0 40px;
  display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:36px;align-items:start;
}
.mega-col{display:flex;flex-direction:column;gap:8px}
.mega-col-ttl{
  font-family:var(--eng);font-size:10.5px;font-weight:700;
  letter-spacing:.22em;color:#41aadc;text-transform:uppercase;
  padding-bottom:8px;border-bottom:1px solid #e7eef5;margin-bottom:4px;
}
.mega-link{
  display:flex;align-items:center;gap:16px;
  padding:9px 8px;border-radius:8px;text-decoration:none;
  color:#0f172a;transition:background .2s;cursor:pointer;
}
.mega-link:hover{background:#f0f7fb}
.mega-link-num{
  font-family:var(--num);font-size:18px;font-weight:700;
  color:#41aadc;line-height:1;flex-shrink:0;width:32px;
}
.mega-link-text{display:flex;flex-direction:column;gap:4px}
.mega-link-ttl{font-family:var(--sans);font-size:14px;font-weight:700;color:#0f172a}
.mega-link-sub{font-family:var(--sans);font-size:11.5px;font-weight:400;color:#5a6a7b}
.mega-link-s{
  font-family:var(--sans);font-size:13px;font-weight:500;
  color:#1f2937;padding:8px 8px;text-decoration:none;
  border-radius:6px;transition:background .2s,color .2s;cursor:pointer;
}
.mega-link-s:hover{background:#f0f7fb;color:#41aadc}
.mega-cta{background:#f7fafd;border-radius:12px;padding:16px;gap:10px}
.mega-cta .mega-col-ttl{padding-bottom:0;border-bottom:none;margin-bottom:0}
.mega-cta-text{font-family:var(--sans);font-size:12px;color:#5a6a7b;line-height:1.6;margin:0}
.mega-cta-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:var(--sans);font-size:13px;font-weight:700;
  background:#FFCB00;color:#1f2937;text-decoration:none;
  padding:10px 18px;border-radius:100px;transition:transform .2s,background .2s;cursor:pointer;margin-top:2px;
}
.mega-cta-btn:hover{background:#e8bd00;transform:translateY(-1px)}

@media(max-width:1024px){
  /* スマホ: メガメニューをアコーディオン縦表示に */
  .mega-p{position:relative}
  .mega-menu{
    position:static;top:auto;left:auto;right:auto;
    background:#f8fafc;backdrop-filter:none;-webkit-backdrop-filter:none;
    border:none;border-top:1px solid #eef2f7;
    padding:0;
    max-height:0;overflow:hidden;
    opacity:1;visibility:visible;transform:none;
    transition:max-height .35s ease;
  }
  .mega-p.open .mega-menu{max-height:1200px;padding:8px 0 16px}
  .mega-grid{
    display:block;padding:0;max-width:none;
  }
  .mega-col{gap:0;padding:0 12px}
  .mega-col-ttl{
    padding:14px 12px 8px;margin-bottom:0;border-bottom:none;font-size:10px;
  }
  .mega-link{padding:14px 12px;border-radius:8px}
  .mega-link-num{font-size:16px;width:28px}
  .mega-link-ttl{font-size:14px}
  .mega-link-sub{font-size:11px}
  .mega-link-s{padding:12px 12px;font-size:13px}
  .mega-cta{margin:8px 12px 0;padding:16px}
  .mega-cta-btn{width:100%;padding:12px 18px}
}

/* ═══ 要望書 #4: パンくずリスト (スタイリッシュ・全ページ統一) ═══ */
.breadcrumb{
  padding:80px 0 0;background:transparent;
}
.breadcrumb-inner{
  max-width:1280px;margin:0 auto;padding:14px 40px 6px;
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  font-family:var(--sans);font-size:10.5px;letter-spacing:.03em;color:#9ca8b8;
}
.breadcrumb a{color:#9ca8b8;text-decoration:none;cursor:pointer;transition:color .2s;font-weight:500}
.breadcrumb a:hover{color:#41aadc}
.breadcrumb-sep{color:#cfd8e3;font-size:9px}
.breadcrumb-current{color:#1f2937;font-weight:600}

/* === 全ページのトップ余白を統一 (パンくず後) === */
/* margin-top:70px 系のページ → 9px に */
.breadcrumb ~ .vph,
.breadcrumb ~ .co-hero,
.breadcrumb ~ .ct-layout{margin-top:9px !important}
/* padding 系のページ → margin-top と padding-top を上書きして 9px に統一 */
.breadcrumb ~ .wk-hero,
.breadcrumb ~ .fq-hero,
.breadcrumb ~ .nw-hero{margin-top:0 !important;padding-top:9px !important;padding-bottom:22px !important}

@media(max-width:768px){
  .breadcrumb{padding:60px 0 0}
  .breadcrumb-inner{padding:10px 20px 5px;font-size:10px;gap:8px}
  .breadcrumb ~ .vph,
  .breadcrumb ~ .co-hero,
  .breadcrumb ~ .ct-layout{margin-top:8px !important}
  .breadcrumb ~ .wk-hero,
  .breadcrumb ~ .fq-hero,
  .breadcrumb ~ .nw-hero{margin-top:0 !important;padding-top:8px !important;padding-bottom:18px !important}
}

/* ═══ 要望書 #5: サービス3本柱をカードグリッドに ═══ */
.home-service-cards{
  background:#ffffff;padding:120px 0;
}
.hsc-head{max-width:1280px;margin:0 auto;padding:0 40px 64px;text-align:center}
.hsc-en{
  font-family:var(--eng);font-size:11px;font-weight:700;
  letter-spacing:.28em;color:#41aadc;text-transform:uppercase;
  display:block;margin-bottom:14px;
}
.hsc-ttl{
  font-family:var(--sans);font-size:clamp(22px,2.4vw,30px);
  font-weight:800;color:#0f172a;letter-spacing:-.02em;line-height:1.3;
}
.hsc-grid{
  max-width:1280px;margin:0 auto;padding:0 40px;
  display:grid;grid-template-columns:repeat(3,1fr);gap:32px;
}
.hsc-card{
  background:#ffffff;border:1px solid #e7eef5;border-radius:24px;
  overflow:hidden;cursor:pointer;display:flex;flex-direction:column;
  transition:transform .35s cubic-bezier(.2,.8,.3,1),box-shadow .35s,border-color .35s;
  position:relative;
}
.hsc-card:hover{
  transform:translateY(-6px);
  box-shadow:0 24px 60px rgba(65,170,220,.18);
  border-color:#41aadc;
}
.hsc-card-media{
  aspect-ratio:5/3;background:linear-gradient(135deg,#f5f8fa 0%,#eef3f7 100%);
  overflow:hidden;position:relative;
}
.hsc-card-media img,.hsc-card-media video{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .6s ease;
}
.hsc-card:hover .hsc-card-media img,.hsc-card:hover .hsc-card-media video{transform:scale(1.04)}
.hsc-card-num{
  position:absolute;top:18px;left:20px;z-index:2;
  font-family:var(--num);font-size:14px;font-weight:700;
  color:#fff;background:#41aadc;padding:6px 14px;border-radius:100px;
  letter-spacing:.05em;
}
.hsc-card-body{padding:32px 28px 36px;flex:1;display:flex;flex-direction:column;gap:14px}
.hsc-card-cat{
  font-family:var(--eng);font-size:10.5px;font-weight:600;
  letter-spacing:.22em;color:#94a3b3;text-transform:uppercase;
}
.hsc-card-ttl{
  font-family:var(--sans);font-size:22px;font-weight:800;
  color:#0f172a;letter-spacing:-.01em;line-height:1.4;
}
.hsc-card-desc{
  font-family:var(--sans);font-size:13.5px;font-weight:400;
  color:#5a6a7b;line-height:1.85;flex:1;
}
.hsc-card-arrow{
  display:inline-flex;align-items:center;gap:8px;margin-top:8px;
  font-family:var(--eng);font-size:11px;font-weight:700;
  letter-spacing:.16em;color:#41aadc;text-transform:uppercase;
  transition:gap .25s;
}
.hsc-card:hover .hsc-card-arrow{gap:14px}
.hsc-card-arrow svg{transition:transform .25s}
.hsc-card:hover .hsc-card-arrow svg{transform:translateX(3px)}

@media(max-width:1024px){
  .home-service-cards{padding:88px 0}
  .hsc-grid{grid-template-columns:1fr;gap:24px}
  .hsc-card-media{aspect-ratio:16/9}
}
@media(max-width:768px){
  .home-service-cards{padding:64px 0}
  .hsc-head{padding:0 20px 40px}
  .hsc-grid{padding:0 20px}
  .hsc-card-body{padding:24px 20px 28px}
  .hsc-card-ttl{font-size:19px}
}

/* ═══ 要望書 #6: スマホ版フッターのSNSボタンを大きく ═══ */
@media(max-width:768px){
  .footer-social,.fsocial{display:flex;gap:12px;flex-wrap:wrap;justify-content:flex-start}
  .footer-social a,.fsocial a{
    display:inline-flex !important;align-items:center;justify-content:center;
    min-width:130px;min-height:52px;padding:14px 22px !important;
    font-size:14px !important;font-weight:700 !important;
    border-radius:100px !important;border:1.5px solid #1f2937 !important;
    color:#1f2937 !important;text-decoration:none !important;
    background:#ffffff !important;
    transition:all .2s !important;
  }
  .footer-social a:hover,.fsocial a:hover{
    background:#1f2937 !important;color:#fff !important;
  }
}

/* ═══ 要望書 #7: ブランドカラー(イエロー)の戦略的活用 ═══ */
/* お問い合わせ系ボタンにイエロー強調 */
.nc{
  background:#FFCB00 !important;color:#1f2937 !important;
  padding:10px 18px !important;border-radius:100px !important;
  font-weight:700 !important;transition:transform .2s,background .2s !important;
}
.nc:hover{background:#e8bd00 !important;transform:translateY(-1px)}

/* CTA bp ボタンも統一感 (ヒーロー以外) */
.home-contact .bp,.ct-form .bp{background:#FFCB00;color:#1f2937;border:none}
.home-contact .bp:hover,.ct-form .bp:hover{background:#e8bd00;color:#1f2937}

/* ═══ 要望書 #8: イベントLINE モーダル ═══ */
.line-modal-backdrop{
  display:none;position:fixed;inset:0;z-index:9999;
  background:rgba(15,23,42,.6);backdrop-filter:blur(8px);
  align-items:center;justify-content:center;padding:20px;
  animation:lmFadeIn .25s ease;
}
.line-modal-backdrop.open{display:flex}
@keyframes lmFadeIn{from{opacity:0}to{opacity:1}}
.line-modal{
  background:#fff;border-radius:24px;padding:40px;max-width:440px;width:100%;
  position:relative;text-align:center;
  box-shadow:0 24px 80px rgba(0,0,0,.3);
  animation:lmSlideUp .3s cubic-bezier(.2,.8,.3,1);
}
@keyframes lmSlideUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.line-modal-close{
  position:absolute;top:16px;right:16px;background:none;border:none;
  width:36px;height:36px;border-radius:50%;cursor:pointer;
  font-size:24px;color:#5a6a7b;line-height:1;
  display:flex;align-items:center;justify-content:center;
  transition:background .2s;
}
.line-modal-close:hover{background:#f0f7fb;color:#0f172a}
.line-modal-en{
  font-family:var(--eng);font-size:11px;font-weight:700;
  letter-spacing:.22em;color:#06c755;text-transform:uppercase;
  margin-bottom:12px;
}
.line-modal-ttl{
  font-family:var(--sans);font-size:22px;font-weight:800;
  color:#0f172a;margin-bottom:8px;letter-spacing:-.01em;
}
.line-modal-sub{
  font-family:var(--sans);font-size:13px;color:#5a6a7b;
  line-height:1.7;margin-bottom:24px;
}
.line-modal-qr{
  width:220px;height:220px;margin:0 auto 20px;
  background:#f7fafd;border:1px solid #e7eef5;border-radius:12px;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;
}
.line-modal-qr img{width:100%;height:100%;object-fit:contain;padding:8px}
.line-modal-hint{
  font-family:var(--sans);font-size:12px;color:#5a6a7b;
  line-height:1.7;
}

/* ===== media-placeholder-style ===== */
/* 動画・写真が入ります プレースホルダー */
.media-ph{
  position:absolute;inset:0;width:100%;height:100%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
  background:linear-gradient(135deg,#f5f8fa 0%,#eef3f7 100%);
  color:#9aabbf;text-align:center;padding:12px;
}
.media-ph svg{width:38px;height:38px;opacity:.65;stroke:#b6c4d4}
.media-ph span{font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.04em;color:#8696a8}
/* Worksカードのプレースホルダーにラベル追加 */
.wk-card-ph .wk-ph-label{
  position:absolute;left:0;right:0;bottom:26px;text-align:center;
  font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.04em;color:#8696a8;
}
/* スライダーのプレースホルダースライド */
.hs-slide-ph{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
  background:linear-gradient(135deg,#f5f8fa 0%,#eef3f7 100%);
}
.hs-slide-ph svg{width:32px;height:32px;opacity:.6;stroke:#b6c4d4}
.hs-slide-ph span{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.04em;color:#8696a8}

/* ===== style-block-5 ===== */
.hero-mq{
    position:relative;overflow:hidden;
    background:#ffffff;
    padding:16px 0;
    border-top:1px solid #e0e8f0;
    border-bottom:1px solid #e0e8f0;
    -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 10%,#000 90%,transparent 100%);
            mask-image:linear-gradient(90deg,transparent 0%,#000 10%,#000 90%,transparent 100%);
  }
  .hero-mq-track{
    display:flex;white-space:nowrap;
    animation:heroMqScroll 50s linear infinite;
    will-change:transform;
  }
  .hero-mq-track:hover{animation-play-state:paused}
  .hero-mq-item{
    font-family:var(--eng);
    font-size:clamp(20px,2.6vw,34px);
    font-weight:700;
    letter-spacing:.01em;
    line-height:1;
    text-transform:uppercase;
    padding:0 22px;
    white-space:nowrap;
    flex-shrink:0;
    display:inline-flex;align-items:center;gap:22px;
    color:#41aadc;
  }
  .hero-mq-item::before{
    content:"";
    width:5px;height:5px;
    background:#41aadc;
    border-radius:50%;
    flex-shrink:0;
    margin-right:6px;
  }
  @keyframes heroMqScroll{
    from{transform:translateX(0)}
    to{transform:translateX(-50%)}
  }
  @media(max-width:768px){
    .hero-mq{padding:12px 0}
    .hero-mq-item{font-size:clamp(16px,5vw,24px);padding:0 14px;gap:14px}
    .hero-mq-item::before{width:4px;height:4px;margin-right:4px}
  }

/* ===== style-block-6 ===== */
/* ヒーローの直下イントロ */
  .ap-intro{padding:88px 0 56px;background:#ffffff;text-align:center}
  .ap-intro-en{font-family:var(--eng);font-size:12px;font-weight:700;letter-spacing:.28em;color:var(--blue);text-transform:uppercase;display:block;margin-bottom:18px}
  .ap-intro-ttl{font-family:var(--sans);font-size:clamp(20px,2vw,25px);font-weight:800;color:var(--text);line-height:1.45;margin-bottom:20px;letter-spacing:-.01em}
  .ap-intro-sub{font-family:var(--sans);font-size:15px;font-weight:400;color:var(--text2);line-height:2;max-width:720px;margin:0 auto}

  /* 実写真版 ap-item-bg */
  img.ap-item-bg{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.8,.3,1)}
  .ap-item:hover img.ap-item-bg{transform:scale(1.05)}

  /* ─── GALLERY ─── */
  .ap-gal{padding:32px 0 96px;background:#ffffff}
  .ap-gal-head{text-align:left;margin-bottom:40px;max-width:680px}
  .ap-gal-filter{display:flex;gap:0;border-bottom:2px solid #dce8f4;margin-bottom:48px;overflow-x:auto;background:#fff;justify-content:center}
  .ap-chip{font-family:var(--eng);font-size:10px;font-weight:700;letter-spacing:.12em;color:#6a849e;text-transform:uppercase;padding:12px 22px;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;white-space:nowrap;transition:color .2s,border-color .2s}
  .ap-chip:hover{color:var(--blue)}
  .ap-chip.act{color:var(--blue);border-bottom-color:var(--blue)}
  /* Grid */
  .ap-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:52px 32px}
  .ap-item{grid-column:span 2;cursor:pointer;display:flex;flex-direction:column;gap:22px;transition:transform .4s cubic-bezier(.2,.8,.3,1)}
  .ap-item:hover{transform:translateY(-6px)}
  .ap-item.span-2{grid-column:span 3}
  .ap-item.span-tall{grid-column:span 3}
  /* Media area */
  .ap-item-media{position:relative;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4/3}
  .ap-item.span-2 .ap-item-media{aspect-ratio:5/3}
  .ap-item.span-tall .ap-item-media{aspect-ratio:5/3}
  .ap-item-bg{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;transition:transform .6s cubic-bezier(.2,.8,.3,1)}
  .ap-item:hover .ap-item-bg{transform:scale(1.05)}
  /* カテゴリ別グラデーション */
  .ap-item-bg.cat-realestate{background:linear-gradient(135deg,#41aadc 0%,#2d92c5 50%,#1a6c98 100%)}
  .ap-item-bg.cat-construction{background:linear-gradient(135deg,#5dc0e8 0%,#41aadc 100%)}
  .ap-item-bg.cat-tourism{background:linear-gradient(165deg,#a8d8eb 0%,#5dc0e8 50%,#41aadc 100%)}
  .ap-item-bg.cat-event{background:linear-gradient(135deg,#FFCB00 0%,#f0b900 100%)}
  .ap-item-bg.cat-promo{background:linear-gradient(135deg,#1a5d8f 0%,#0d3d63 100%)}
  /* 微妙なドットパターンオーバーレイ */
  .ap-item-media::before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle,rgba(255,255,255,.15) 1px,transparent 1px);background-size:24px 24px;opacity:.55;pointer-events:none;z-index:2}
  /* 抽象的な装飾円 (左下と右上に控えめに) */
  .ap-item-media::after{content:"";position:absolute;width:160px;height:160px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.18) 0%,rgba(255,255,255,0) 70%);top:-40px;right:-40px;pointer-events:none;z-index:1}
  /* ドローンシルエット (右上) */
  .ap-item-drone{position:absolute;top:18px;right:18px;z-index:3;color:rgba(255,255,255,.7);transition:transform .4s ease}
  .ap-item:hover .ap-item-drone{transform:translateY(-4px)}
  .ap-item-drone svg{width:24px;height:24px;display:block}
  /* 番号 (左下、半透明) */
  .ap-item-num{position:absolute;left:24px;bottom:20px;z-index:3;font-family:var(--num);font-size:42px;font-weight:700;color:rgba(255,255,255,.5);line-height:1;letter-spacing:-.02em;mix-blend-mode:overlay}
  .ap-item.span-2 .ap-item-num,.ap-item.span-tall .ap-item-num{font-size:56px}
  /* Info 部 (画像下) */
  .ap-item-info{padding:0 4px;display:flex;flex-direction:column;gap:8px}
  .ap-item-info-cat{font-family:var(--eng);font-size:10.5px;font-weight:700;letter-spacing:.16em;color:var(--blue);text-transform:uppercase}
  .ap-item-info-ttl{font-family:var(--sans);font-size:17px;font-weight:800;color:var(--text);line-height:1.55;letter-spacing:-.005em}
  .ap-item.span-2 .ap-item-info-ttl,.ap-item.span-tall .ap-item-info-ttl{font-size:22px;line-height:1.45}
  .ap-item-info-loc{font-family:var(--num);font-size:11.5px;font-weight:500;color:var(--text3);letter-spacing:.03em;margin-top:2px}
  /* 旧構造のフォールバック */
  .ap-photo,.ap-illust{display:none}

  /* USE CASES (4分割) */
  .ap-use{padding:96px 0;background:var(--surface)}
  .ap-use-head{text-align:center;margin-bottom:56px}
  .ap-use-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
  .ap-use-card{background:#ffffff;border:1px solid var(--bdr);border-radius:var(--r-md);padding:32px 24px;transition:transform .3s,box-shadow .3s}
  .ap-use-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
  .ap-use-icon{width:56px;height:56px;border-radius:var(--r-md);background:var(--blue4);color:var(--blue);display:flex;align-items:center;justify-content:center;margin-bottom:22px}
  .ap-use-icon svg{width:32px;height:32px}
  .ap-use-card h3{font-family:var(--sans);font-size:17px;font-weight:800;color:var(--text);margin-bottom:12px;line-height:1.4}
  .ap-use-card p{font-family:var(--sans);font-size:13.5px;font-weight:400;color:var(--text2);line-height:1.85}

  /* EQUIPMENT */
  .ap-eq{padding:96px 0;background:#ffffff}
  .ap-eq-head{text-align:center;margin-bottom:48px}
  .ap-eq-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
  .ap-eq-item{background:var(--surface);border-radius:var(--r-md);padding:28px 20px;text-align:center;transition:background .25s}
  .ap-eq-item:hover{background:var(--blue4)}
  .ap-eq-name{font-family:var(--sans);font-size:15px;font-weight:800;color:var(--text);margin-bottom:6px;letter-spacing:-.01em}
  .ap-eq-spec{font-family:var(--num);font-size:12px;font-weight:500;color:var(--text2);line-height:1.6}

  /* WORKFLOW */
  .ap-flow{padding:96px 0;background:var(--surface)}
  .ap-flow-head{text-align:center;margin-bottom:48px}
  .ap-flow-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;position:relative}
  .ap-flow-step{background:#ffffff;border-radius:var(--r-md);padding:32px 24px;border:1px solid var(--bdr);position:relative}
  .ap-flow-num{font-family:var(--num);font-size:38px;font-weight:700;color:var(--blue);line-height:1;margin-bottom:14px}
  .ap-flow-step h4{font-family:var(--sans);font-size:16px;font-weight:800;color:var(--text);margin-bottom:10px}
  .ap-flow-step p{font-family:var(--sans);font-size:13px;font-weight:400;color:var(--text2);line-height:1.85}

  /* PRICE */
  .ap-pr{padding:96px 0;background:#ffffff}
  .ap-pr-head{text-align:center;margin-bottom:48px}
  .ap-pr-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
  .ap-pr-card{background:#ffffff;border:1px solid var(--bdr);border-radius:var(--r-md);padding:34px 28px;display:flex;flex-direction:column;transition:transform .3s,box-shadow .3s}
  .ap-pr-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
  .ap-pr-card.featured{border:2px solid var(--blue);position:relative}
  .ap-pr-card.featured::before{content:"Most Popular";position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:var(--yellow);color:#1f2937;font-family:var(--sans);font-size:10.5px;font-weight:800;letter-spacing:.06em;padding:5px 14px;border-radius:var(--r-full)}
  .ap-pr-name{font-family:var(--eng);font-size:11.5px;font-weight:700;letter-spacing:.18em;color:var(--blue);text-transform:uppercase;margin-bottom:14px}
  .ap-pr-amt{font-family:var(--num);font-size:36px;font-weight:700;color:var(--text);line-height:1;margin-bottom:6px;letter-spacing:-.02em}
  .ap-pr-amt small{font-family:var(--sans);font-size:13px;font-weight:600;color:var(--text2);margin-left:4px}
  .ap-pr-device{font-family:var(--sans);font-size:12.5px;font-weight:600;color:var(--text2);margin-bottom:20px;padding-bottom:20px;border-bottom:1px solid var(--bdr)}
  .ap-pr-list{list-style:none;padding:0;margin:0;flex:1}
  .ap-pr-list li{font-family:var(--sans);font-size:13.5px;font-weight:400;color:var(--text2);line-height:1.7;padding:8px 0;padding-left:24px;position:relative}
  .ap-pr-list li::before{content:"";position:absolute;left:0;top:14px;width:14px;height:9px;border-left:2px solid var(--blue);border-bottom:2px solid var(--blue);transform:rotate(-45deg)}
  .ap-pr-note{margin-top:32px;font-family:var(--sans);font-size:12.5px;color:var(--text3);text-align:center;line-height:1.85}

  /* CTA */
  .ap-cta{padding:96px 0;background:var(--surface)}
  .ap-cta-inner{background:linear-gradient(135deg,var(--blue) 0%,#2d92c5 100%);border-radius:var(--r-lg);padding:64px 56px;display:grid;grid-template-columns:1.5fr 1fr;gap:48px;align-items:center;color:#ffffff}
  .ap-cta-inner .ap-cta-en{font-family:var(--eng);font-size:11px;font-weight:700;letter-spacing:.28em;color:rgba(255,255,255,.85);text-transform:uppercase;display:block;margin-bottom:14px}
  .ap-cta-ttl{font-family:var(--sans);font-size:clamp(18px,2.2vw,26px);font-weight:800;color:#ffffff;line-height:1.4;margin-bottom:14px;white-space:nowrap;letter-spacing:-.01em}
  @media(max-width:480px){.ap-cta-ttl{white-space:normal;font-size:18px;line-height:1.5}}
  .ap-cta-sub{font-family:var(--sans);font-size:14px;font-weight:400;color:rgba(255,255,255,.85);line-height:1.85}
  .ap-cta-btns{display:flex;flex-direction:column;gap:12px}
  .ap-cta-btns .bp{background:var(--yellow);color:#1f2937;box-shadow:0 4px 16px rgba(255,203,0,.3)}
  .ap-cta-btns .bp:hover{background:var(--yellow2);color:#1f2937}
  .ap-cta-btns .bs{background:transparent;color:#ffffff;border-color:rgba(255,255,255,.6)}
  .ap-cta-btns .bs:hover{background:#ffffff;color:var(--blue)}

  /* MOBILE */
  @media(max-width:1024px){
    .ap-grid{grid-template-columns:repeat(4,1fr);gap:36px 20px}
    .ap-item{grid-column:span 2}
    .ap-item.span-2,.ap-item.span-tall{grid-column:span 4}
    .ap-use-grid{grid-template-columns:repeat(2,1fr)}
    .ap-eq-row{grid-template-columns:repeat(3,1fr)}
    .ap-flow-grid{grid-template-columns:repeat(2,1fr)}
    .ap-pr-grid{grid-template-columns:1fr}
    .ap-cta-inner{grid-template-columns:1fr;padding:48px 32px;gap:28px}
  }
  @media(max-width:768px){
    .ap-intro{padding:64px 0 40px}
    .ap-gal{padding:24px 0 64px}
    .ap-gal-head{margin-bottom:28px}
    .ap-grid{grid-template-columns:1fr;gap:32px}
    .ap-item,.ap-item.span-2,.ap-item.span-tall{grid-column:span 1}
    .ap-item.span-2 .ap-item-media,.ap-item.span-tall .ap-item-media{aspect-ratio:4/3}
    .ap-item-num,.ap-item.span-2 .ap-item-num,.ap-item.span-tall .ap-item-num{font-size:36px;left:18px;bottom:16px}
    .ap-item-info-ttl,.ap-item.span-2 .ap-item-info-ttl,.ap-item.span-tall .ap-item-info-ttl{font-size:15px}
    .ap-gal-filter{justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap}
    .ap-chip{font-size:9px;padding:10px 14px;letter-spacing:.1em}
    .ap-use,.ap-eq,.ap-flow,.ap-pr,.ap-cta{padding:64px 0}
    .ap-use-grid{grid-template-columns:1fr;gap:14px}
    .ap-use-card{padding:24px 20px}
    .ap-eq-row{grid-template-columns:repeat(2,1fr);gap:10px}
    .ap-eq-item{padding:20px 14px}
    .ap-flow-grid{grid-template-columns:1fr;gap:14px}
    .ap-pr-card{padding:28px 22px}
    .ap-cta-inner{padding:36px 22px}
    .ap-cta-btns .bp,.ap-cta-btns .bs{justify-content:center}
  }

  /* 旧ギャラリースタイル削除 (今は使用しない) */

/* ===== style-block-7 ===== */
/* ─── Hero — FAQ完全準拠 ─── */
    .wk-hero{background:#f0f4f8;padding:32px 0 22px;margin-top:70px;border-bottom:1px solid #dce8f4}
    .wk-hero-en{font-family:var(--eng);font-size:9px;font-weight:700;letter-spacing:.3em;color:var(--blue);text-transform:uppercase;display:block;margin-bottom:8px}
    .wk-hero-ttl{font-family:var(--sans);font-size:clamp(15px,1.4vw,17px);font-weight:500;color:#111827;line-height:1.3;margin-bottom:4px}
    .wk-hero-sub{font-family:var(--sans);font-size:11px;font-weight:400;color:#4a5568;letter-spacing:.04em}

    /* ═══ Apple風ギャラリー: 作品を魅せるUI ═══ */
    .wk-body{padding:96px 0 200px;background:#ffffff}

    /* ─── タブ: 超ミニマル ─── */
    .wk-tabs{
      display:flex;justify-content:center;gap:48px;
      margin-bottom:120px;padding-bottom:0;
      border:none;background:transparent;flex-wrap:wrap;
    }
    .wk-tab{
      font-family:var(--eng);font-size:11px;font-weight:500;
      letter-spacing:.22em;color:#9ca8b8;text-transform:uppercase;
      padding:8px 2px;background:none;border:none;
      cursor:pointer;white-space:nowrap;position:relative;
      transition:color .35s ease;
    }
    .wk-tab::after{
      content:"";position:absolute;left:50%;bottom:-6px;
      width:0;height:1px;background:#0f172a;
      transform:translateX(-50%);transition:width .35s ease;
    }
    .wk-tab:hover{color:#0f172a}
    .wk-tab.act{color:#0f172a;font-weight:600}
    .wk-tab.act::after{width:24px}

    /* ─── ギャラリーグリッド ─── */
    .wk-grid{
      display:grid;grid-template-columns:repeat(2,1fr);
      gap:120px 64px;
    }
    .wk-card{
      grid-column:span 1;cursor:pointer;
      display:block;text-decoration:none;color:inherit;
    }
    /* 1番目はヒーロー扱い (横幅2col) */
    .wk-card--hero{grid-column:span 2}
    .wk-card--hero .wk-card-img{aspect-ratio:21/9}
    .wk-card--hero .wk-card-ttl{font-size:clamp(26px,2.6vw,34px)}

    /* ─── プレースホルダー枠 (高級感ある単色) ─── */
    .wk-card-img,.wk-card-ph{
      width:100%;aspect-ratio:16/9;
      background:linear-gradient(135deg,#f5f8fa 0%,#eef3f7 100%);
      border-radius:12px;overflow:hidden;
      position:relative;display:flex;align-items:center;justify-content:center;
      transition:transform .7s cubic-bezier(.2,.8,.3,1),box-shadow .5s ease;
    }
    .wk-card:hover .wk-card-img,
    .wk-card:hover .wk-card-ph{transform:scale(1.012)}
    .wk-card-ph::after{
      content:"";width:48px;height:48px;
      background-image:url("assets/img/image-placeholder.svg");
      background-size:contain;background-repeat:no-repeat;opacity:.6;
    }
    .wk-card--hero .wk-card-ph::after{width:64px;height:64px}

    /* ─── カード内動画 ─── */
    .wk-card-video-wrap{background:#0f172a}
    .wk-card-video-wrap::after{display:none}
    .wk-card-video{
      width:100%;height:100%;
      object-fit:cover;display:block;
      transition:transform .7s cubic-bezier(.2,.8,.3,1);
    }
    .wk-card:hover .wk-card-video{transform:scale(1.025)}

    /* ─── カード情報部: 余白広く、字数少なく ─── */
    .wk-card-info{
      margin-top:28px;padding:0 4px;
      display:flex;flex-direction:column;gap:10px;
    }
    .wk-card-cat{
      font-family:var(--eng);font-size:10.5px;font-weight:500;
      letter-spacing:.22em;color:#94a3b3;text-transform:uppercase;
    }
    .wk-card-ttl{
      font-family:var(--sans);font-size:clamp(18px,1.8vw,22px);
      font-weight:700;color:#0f172a;line-height:1.45;
      letter-spacing:-.015em;margin:0;
    }

    /* ─── パネル切替 ─── */
    .wk-panel{display:none}
    .wk-panel.act{display:block;animation:wkFade .5s ease}
    @keyframes wkFade{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}

    /* ─── CTA (既存維持) ─── */
    .wk-cta{margin-top:200px;padding:80px 56px;background:linear-gradient(135deg,var(--blue4) 0%,#eaf4fa 100%);border-radius:var(--r-lg);text-align:center;position:relative;overflow:hidden}
    .wk-cta-deco{position:absolute;top:-50px;right:-50px;width:220px;height:220px;background:var(--yellow);opacity:.16;border-radius:50%;pointer-events:none}
    .wk-cta-en{font-family:var(--eng);font-size:11px;font-weight:700;letter-spacing:.28em;color:var(--blue);text-transform:uppercase;display:block;margin-bottom:16px;position:relative}
    .wk-cta-ttl{font-family:var(--sans);font-size:26px;font-weight:800;color:var(--text);margin-bottom:14px;letter-spacing:-.01em;position:relative}
    .wk-cta-sub{font-family:var(--sans);font-size:14px;color:var(--text2);margin-bottom:32px;position:relative}
    .wk-cta-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;position:relative}

    /* ─── タブレット ─── */
    @media(max-width:1024px){
      .wk-body{padding:72px 0 160px}
      .wk-tabs{gap:28px;margin-bottom:80px}
      .wk-grid{gap:80px 40px}
      .wk-card--hero .wk-card-img{aspect-ratio:16/9}
    }

    /* ─── モバイル ─── */
    @media(max-width:768px){
      .wk-body{padding:56px 0 120px}
      .wk-tabs{gap:18px;margin-bottom:56px;justify-content:flex-start;overflow-x:auto;padding:0 4px 8px}
      .wk-tab{font-size:10px;letter-spacing:.18em;flex-shrink:0}
      .wk-grid{grid-template-columns:1fr;gap:56px}
      .wk-card{grid-column:span 1}
      .wk-card--hero{grid-column:span 1}
      .wk-card--hero .wk-card-img{aspect-ratio:16/9}
      .wk-card--hero .wk-card-ttl{font-size:22px}
      .wk-card-info{margin-top:18px;gap:8px}
      .wk-card-cat{font-size:10px;letter-spacing:.18em}
      .wk-card-ttl{font-size:17px;line-height:1.45}
      .wk-card-ph::after,.wk-card--hero .wk-card-ph::after{width:42px;height:42px}
      .wk-cta{margin-top:120px;padding:56px 28px}
      .wk-cta-ttl{font-size:20px}
      .wk-cta-btns{flex-direction:column;align-items:stretch}
      .wk-cta-btns .bp,.wk-cta-btns .bs{justify-content:center}
    }

/* ===== style-block-8 ===== */
.wd-hero{padding:18px 0 70px;background:var(--surface)}
    .wd-back{display:inline-flex;align-items:center;gap:8px;font-family:var(--sans);font-size:13px;font-weight:600;color:var(--text2);cursor:pointer;margin-bottom:32px;transition:color .2s}
    .wd-back:hover{color:var(--blue)}
    .wd-back svg{transition:transform .2s}
    .wd-back:hover svg{transform:translateX(-3px)}
    .wd-tag{display:inline-block;background:var(--yellow);color:#1f2937;font-size:11px;font-weight:800;letter-spacing:.05em;padding:6px 16px;border-radius:var(--r-full);font-family:var(--sans);margin-bottom:18px}
    .wd-ttl{font-family:var(--sans);font-size:clamp(26px,3.2vw,40px);font-weight:800;color:var(--text);line-height:1.4;margin-bottom:18px;letter-spacing:-.01em}
    .wd-meta{display:flex;flex-wrap:wrap;gap:24px;font-family:var(--num);font-size:14px;font-weight:600;color:var(--text2)}
    .wd-meta span strong{color:var(--text);font-weight:700;margin-left:6px}
    .wd-img{margin:32px 0 0;aspect-ratio:21/9;border-radius:var(--r-lg);overflow:hidden;display:flex;align-items:center;justify-content:center;position:relative}
    .wd-img svg{width:96px;height:96px;color:rgba(255,255,255,.85)}
    .wd-img.cat-inspection{background:linear-gradient(135deg,#41aadc 0%,#2d92c5 100%)}
    .wd-img.cat-aerial{background:linear-gradient(135deg,#5dc0e8 0%,#41aadc 100%)}
    .wd-img.cat-event{background:linear-gradient(135deg,#FFCB00 0%,#f0b900 100%)}
    .wd-body{padding:88px 0;background:#ffffff}
    .wd-body .W{max-width:840px}
    .wd-sec{margin-bottom:64px}
    .wd-sec:last-child{margin-bottom:0}
    .wd-sec-en{font-family:var(--eng);font-size:11px;font-weight:700;letter-spacing:.28em;color:var(--blue);text-transform:uppercase;display:block;margin-bottom:14px}
    .wd-sec-ttl{font-family:var(--sans);font-size:24px;font-weight:800;color:var(--text);margin-bottom:24px;padding-bottom:18px;border-bottom:2px solid var(--blue);display:inline-block}
    .wd-sec p{font-family:var(--sans);font-size:15px;font-weight:400;color:var(--text2);line-height:2.05;margin-bottom:14px}
    .wd-list{list-style:none;padding:0;margin:0}
    .wd-list li{font-family:var(--sans);font-size:15px;font-weight:400;color:var(--text2);line-height:1.95;padding:10px 0 10px 30px;position:relative}
    .wd-list li::before{content:"";position:absolute;left:0;top:18px;width:14px;height:9px;border-left:2.5px solid var(--blue);border-bottom:2.5px solid var(--blue);transform:rotate(-45deg)}
    .wd-list li strong{color:var(--text);font-weight:800}
    .wd-voice{background:var(--surface);border-radius:var(--r-lg);padding:36px 36px 32px;position:relative}
    .wd-voice::before{content:"\201C";position:absolute;top:6px;left:24px;font-size:80px;color:var(--blue3);font-family:Georgia,serif;line-height:1}
    .wd-voice p{font-family:var(--sans);font-size:15.5px;font-weight:500;color:var(--text);line-height:2;margin:0;padding-left:36px;font-style:italic}
    .wd-cta{padding:80px 0;background:var(--surface);text-align:center}
    .wd-cta-ttl{font-family:var(--sans);font-size:22px;font-weight:800;color:var(--text);margin-bottom:12px}
    .wd-cta-sub{font-family:var(--sans);font-size:14px;color:var(--text2);margin-bottom:24px}
    .wd-cta-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
    @media(max-width:768px){
      .wd-hero{padding:12px 0 40px}
      .wd-back{margin-bottom:20px;font-size:12px}
      .wd-meta{gap:14px;font-size:13px}
      .wd-img{aspect-ratio:16/10;border-radius:var(--r-md)}
      .wd-img svg{width:64px;height:64px}
      .wd-body{padding:56px 0}
      .wd-sec{margin-bottom:44px}
      .wd-sec-ttl{font-size:20px;margin-bottom:18px}
      .wd-sec p,.wd-list li{font-size:14px;line-height:1.9}
      .wd-voice{padding:28px 22px 24px}
      .wd-voice::before{font-size:60px;top:2px;left:14px}
      .wd-voice p{font-size:14px;padding-left:22px}
      .wd-cta{padding:56px 0}
      .wd-cta-btns{flex-direction:column;align-items:stretch}
      .wd-cta-btns .bp,.wd-cta-btns .bs{justify-content:center}
    }

/* ===== style-block-9 ===== */
/* ═══ 実画像オーバーレイ: プレースホルダを実画像に置換 ═══════════════════ */
/* プレースホルダのテキストを非表示 */
.nw-card-ph::after, .ip-example-ph::after, .ip-fph::after, .ip-ir-ph::after,
.svc-media-ph::after, .ae-scene-ph::after, .ev-menu-ph-top::after{
  content: "" !important;
}

/* SVG アイコンも非表示 */
.svc-media-ph svg, .ip-example-ph svg, .ip-fph svg, .ip-ir-ph svg,
.ae-scene-ph svg, .ev-menu-ph-top svg, .nw-card-ph svg{
  display: none !important;
}

/* ──── ホーム: 3サービスプレビュー ──── */
.home-service .svc-row:nth-child(1) .svc-media-ph {
  background-image: url("assets/img/inspection-dji-0026.jpg") !important;
  background-size: cover !important; background-position: center !important;
  background-color: transparent !important; border: none !important;
}
.home-service .svc-row:nth-child(2) .svc-media-ph {
  background-image: url("assets/img/aerial-dji-0189.jpg") !important;
  background-size: cover !important; background-position: center !important;
  background-color: transparent !important; border: none !important;
}
.home-service .svc-row:nth-child(3) .svc-media-ph {
  background-image: url("assets/img/event-dji-20251026.jpg") !important;
  background-size: cover !important; background-position: center !important;
  background-color: transparent !important; border: none !important;
}

/* ──── 建物点検: 例示画像 (Drone Inspection Examples) ──── */
.ip-example-ph,
.ip-fph,
.ip-ir-ph {
  background-image: url("assets/img/inspection-dji-0026.jpg") !important;
  background-size: cover !important; background-position: center !important;
  background-color: transparent !important; border: none !important;
}
/* 個別に変える: 2番目以降は別画像 */
.ip-examples .ip-example:nth-child(2) .ip-example-ph {
  background-image: url("assets/img/inspection-dji-0391.jpg") !important;
}
.ip-examples .ip-example:nth-child(3) .ip-example-ph {
  background-image: url("assets/img/inspection-img-2290.jpeg") !important;
}
.ip-examples .ip-example:nth-child(4) .ip-example-ph {
  background-image: url("assets/img/inspection-dji-0026.jpg") !important;
}
/* 赤外線セクションの画像 */
.ip-ir-ph {
  background-image: url("assets/img/inspection-dji-0391.jpg") !important;
}

/* ──── 空撮: シーン画像 ──── */
.ae-scene-ph {
  background-image: url("assets/img/aerial-dji-0189.jpg") !important;
  background-size: cover !important; background-position: center !important;
  background-color: transparent !important; border: none !important;
}
.ae-scene-sec .ae-scene-item:nth-child(2) .ae-scene-ph {
  background-image: url("assets/img/aerial-scene-1.jpg") !important;
}
.ae-scene-sec .ae-scene-item:nth-child(3) .ae-scene-ph {
  background-image: url("assets/img/event-dji-20251026.jpg") !important;
}

/* ──── イベント: メニュー画像 ──── */
.ev-menu-ph-top {
  background-image: url("assets/img/event-dji-20251026.jpg") !important;
  background-size: cover !important; background-position: center !important;
  background-color: transparent !important; border: none !important;
}
.ev-menu .ev-menu-item:nth-child(2) .ev-menu-ph-top {
  background-image: url("assets/img/event-drone-show.jpg") !important;
}
.ev-menu .ev-menu-item:nth-child(3) .ev-menu-ph-top {
  background-image: url("assets/img/event-workshop.jpg") !important;
}

/* ──── お知らせカード ──── */
.nw-card-ph {
  background-image: url("assets/img/aerial-dji-0189.jpg") !important;
  background-size: cover !important; background-position: center !important;
  background-color: transparent !important; border: none !important;
}
.nw-grid .nw-card:nth-child(2) .nw-card-ph {
  background-image: url("assets/img/inspection-dji-0026.jpg") !important;
}
.nw-grid .nw-card:nth-child(3) .nw-card-ph {
  background-image: url("assets/img/event-dji-20251026.jpg") !important;
}

/* ===== bs-color-lock ===== */
/* === 「実例はこちら」ボタンの色を絶対に固定 === */
/* 通常: 白背景＋黒文字 */
.hero .hbtns a.bs,
.hero .hbtns a.bs:link,
.hero .hbtns a.bs:visited{
  background: #ffffff !important;
  color: #0f172a !important;
  border: 1.5px solid #ffffff !important;
}
.hero .hbtns a.bs svg,
.hero .hbtns a.bs svg path{
  stroke: #0f172a !important;
  color: #0f172a !important;
}

/* ホバー: イエロー背景＋黒文字 */
.hero .hbtns a.bs:hover,
.hero .hbtns a.bs:focus,
.hero .hbtns a.bs:active{
  background: #FFCB00 !important;
  color: #0f172a !important;
  border-color: #FFCB00 !important;
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(255,203,0,.4);
}
.hero .hbtns a.bs:hover svg,
.hero .hbtns a.bs:hover svg path,
.hero .hbtns a.bs:focus svg path{
  stroke: #0f172a !important;
  color: #0f172a !important;
}

/* ===== hero-title-upsize ===== */
/* === 実績/FAQ/お知らせ ヒーロータイトルを大きく === */
.wk-hero-ttl,
.fq-hero-ttl,
.nw-hero-ttl{
  font-family:var(--sans) !important;
  font-size:clamp(18px,1.6vw,22px) !important;
  font-weight:700 !important;
  line-height:1.3 !important;
  letter-spacing:-.01em !important;
  margin-bottom:8px !important;
}
.wk-hero-en,
.fq-hero-en,
.nw-hero-en{
  font-size:10px !important;
  letter-spacing:.26em !important;
  margin-bottom:10px !important;
}
.wk-hero-sub,
.fq-hero-sub,
.nw-hero-sub{
  font-size:12px !important;
  line-height:1.7 !important;
  color:#5a6a7b !important;
}
@media(max-width:768px){
  .wk-hero-ttl,
  .fq-hero-ttl,
  .nw-hero-ttl{font-size:18px !important}
  .wk-hero-en,
  .fq-hero-en,
  .nw-hero-en{font-size:10px !important;margin-bottom:8px !important}
  .wk-hero-sub,
  .fq-hero-sub,
  .nw-hero-sub{font-size:11.5px !important}
}

/* ===== co-hero-title-size ===== */
/* === Company ページの NEXORA タイトルを統一サイズに === */
.co-hero-ttl{
  font-family:var(--sans) !important;
  font-size:clamp(18px,1.6vw,22px) !important;
  font-weight:700 !important;
  line-height:1.3 !important;
  letter-spacing:-.01em !important;
  margin-bottom:8px !important;
}
.co-hero-en{
  font-size:10px !important;
  letter-spacing:.26em !important;
  margin-bottom:10px !important;
}
.co-hero-sub{
  font-size:12px !important;
  line-height:1.7 !important;
}
@media(max-width:768px){
  .co-hero-ttl{font-size:18px !important}
  .co-hero-en{font-size:10px !important;margin-bottom:8px !important}
  .co-hero-sub{font-size:11.5px !important}
}

/* ===== ev-line-banner-style ===== */
/* === イベントページ専用 LINEバナーボタン === */
.ev-line-banner{
  display:flex !important;align-items:center;gap:14px;
  width:100%;padding:14px 20px;
  background:#ffffff !important;
  border:1.5px solid #06c755 !important;color:#1f2937 !important;
  border-radius:100px !important;text-decoration:none;
  font-family:var(--sans);font-size:14px;font-weight:700;
  transition:all .2s ease;cursor:pointer;
  box-shadow:0 2px 8px rgba(6,199,85,.08);
}
.ev-line-banner:hover{
  background:#06c755 !important;color:#ffffff !important;
  transform:translateY(-1px);box-shadow:0 6px 16px rgba(6,199,85,.3);
}
.ev-line-banner:hover .ev-line-icon svg{fill:#ffffff !important}
.ev-line-banner:hover .ev-line-arrow{color:#ffffff}
.ev-line-icon{
  flex-shrink:0;width:30px;height:30px;
  display:flex;align-items:center;justify-content:center;
}
.ev-line-icon svg{transition:fill .2s ease}
.ev-line-text{
  flex:1;display:flex;flex-direction:column;align-items:flex-start;
  line-height:1.2;
}
.ev-line-ttl{font-size:14px;font-weight:700}
.ev-line-sub{font-size:10.5px;font-weight:500;opacity:.7;margin-top:2px;letter-spacing:.04em}
.ev-line-arrow{
  font-size:18px;font-weight:300;opacity:.7;
  transition:transform .2s,color .2s;
}
.ev-line-banner:hover .ev-line-arrow{transform:translateX(4px);opacity:1}

@media(max-width:768px){
  .ev-line-banner{padding:14px 18px;gap:10px}
  .ev-line-ttl{font-size:13.5px}
  .ev-line-sub{font-size:10px}
}

/* ===== reqs-6-7-enhanced ===== */
/* === 要件 #6 強化: スマホ版フッターSNSボタン (アイコン+大型化) === */
@media(max-width:768px){
  .footer-social,.fsocial{
    display:flex !important;gap:14px !important;flex-wrap:wrap;justify-content:flex-start;margin-top:12px;
  }
  .footer-social a,.fsocial a{
    display:inline-flex !important;align-items:center;justify-content:center;gap:8px;
    min-width:160px !important;min-height:56px !important;padding:16px 28px !important;
    font-size:15px !important;font-weight:700 !important;
    border-radius:100px !important;border:1.5px solid #1f2937 !important;
    color:#1f2937 !important;text-decoration:none !important;
    background:#ffffff !important;
    transition:all .2s !important;
    letter-spacing:.02em;
  }
  /* LINE ボタンには緑アクセント */
  .footer-social a[href*="lin.ee"],.fsocial a[href*="lin.ee"]{
    border-color:#06c755 !important;color:#06c755 !important;
  }
  .footer-social a[href*="lin.ee"]:hover,.fsocial a[href*="lin.ee"]:hover{
    background:#06c755 !important;color:#ffffff !important;border-color:#06c755 !important;
  }
  /* Instagram ボタンには紫グラデアクセント */
  .footer-social a[href*="instagram"],.fsocial a[href*="instagram"]{
    border-color:#c13584 !important;color:#c13584 !important;
  }
  .footer-social a[href*="instagram"]:hover,.fsocial a[href*="instagram"]:hover{
    background:linear-gradient(135deg,#f09433 0%,#dc2743 50%,#bc1888 100%) !important;
    color:#ffffff !important;border-color:transparent !important;
  }
}

/* === 要件 #7 強化: ブランドイエローを「お問い合わせ系CTA」に戦略的展開 === */
/* Worksページの最終CTAボタン */
.wk-cta .bp{
  background:#FFCB00 !important;color:#1f2937 !important;
  border-color:#FFCB00 !important;
  box-shadow:0 4px 16px rgba(255,203,0,.3);
}
.wk-cta .bp:hover{
  background:#e8bd00 !important;color:#1f2937 !important;
  transform:translateY(-2px);box-shadow:0 8px 22px rgba(255,203,0,.4);
}

/* イベントページの「イベントを相談する」CTA */
.ev-cta-box .bp{
  background:#FFCB00 !important;color:#1f2937 !important;
  border-color:#FFCB00 !important;
  box-shadow:0 4px 16px rgba(255,203,0,.3);
}
.ev-cta-box .bp:hover{
  background:#e8bd00 !important;color:#1f2937 !important;
  transform:translateY(-2px);box-shadow:0 8px 22px rgba(255,203,0,.4);
}

/* 建物点検ページの「お問い合わせ」CTA */
.ip-cta .bp,
.ip-quote .bp{
  background:#FFCB00 !important;color:#1f2937 !important;
  border-color:#FFCB00 !important;
  box-shadow:0 4px 16px rgba(255,203,0,.3);
}
.ip-cta .bp:hover,
.ip-quote .bp:hover{
  background:#e8bd00 !important;color:#1f2937 !important;
  transform:translateY(-2px);box-shadow:0 8px 22px rgba(255,203,0,.4);
}

/* 空撮ページの「見積もり依頼」CTA */
.ap-cta-btns .bp{
  background:#FFCB00 !important;color:#1f2937 !important;
  border-color:#FFCB00 !important;
  box-shadow:0 4px 16px rgba(255,203,0,.3);
}
.ap-cta-btns .bp:hover{
  background:#e8bd00 !important;color:#1f2937 !important;
  transform:translateY(-2px);box-shadow:0 8px 22px rgba(255,203,0,.4);
}

/* FAQページの「お問い合わせ」 */
.fq-contact-bar .bp{
  background:#FFCB00 !important;color:#1f2937 !important;
  border-color:#FFCB00 !important;
}
.fq-contact-bar .bp:hover{
  background:#e8bd00 !important;color:#1f2937 !important;
}

/* ===== all-titles-30px-unified ===== */
/* === 全ページの主要タイトルを 30px に統一 === */
.vph-ttl,
.wk-hero-ttl,
.fq-hero-ttl,
.nw-hero-ttl,
.co-hero-ttl,
.ha-ttl,
.hsc-ttl{
  font-family:var(--sans) !important;
  font-size:clamp(22px,2.4vw,30px) !important;
  font-weight:800 !important;
  line-height:1.35 !important;
  letter-spacing:-.01em !important;
}
@media(max-width:768px){
  .vph-ttl,
  .wk-hero-ttl,
  .fq-hero-ttl,
  .nw-hero-ttl,
  .co-hero-ttl,
  .ha-ttl,
  .hsc-ttl{
    font-size:22px !important;
  }
}

/* ===== inspection-ph-restore ===== */
/* 建物点検: 重複していた実写真をプレースホルダー「動画・写真が入ります」に戻す
   （ヒーローの実写真は別要素 .vph-img なので影響なし） */
#page-inspection .ip-example-ph,
#page-inspection .ip-fph,
#page-inspection .ip-ir-ph{
  background-image:none !important;
  background:linear-gradient(135deg,#f5f8fa 0%,#eef3f7 100%) !important;
  display:flex !important;flex-direction:column !important;
  align-items:center !important;justify-content:center !important;
  gap:12px !important;border:none !important;position:relative !important;overflow:hidden !important;
  font-size:0 !important;
}
/* 統一アイコン（白枠の再生アイコン） */
#page-inspection .ip-example-ph::before,
#page-inspection .ip-fph::before,
#page-inspection .ip-ir-ph::before{
  content:"" !important;display:block !important;
  width:56px !important;height:40px !important;
  background:#ffffff url("assets/img/play-icon.svg") no-repeat center center !important;
  border:1px solid #d8e0ea !important;border-radius:12px !important;flex-shrink:0 !important;
}
/* 注釈テキスト */
#page-inspection .ip-example-ph::after,
#page-inspection .ip-fph::after,
#page-inspection .ip-ir-ph::after{
  content:"動画・写真が入ります" !important;display:block !important;
  font-family:var(--sans) !important;font-size:11px !important;font-weight:600 !important;
  color:#8696a8 !important;letter-spacing:.04em !important;line-height:1 !important;
}
/* 小コマ（赤外線・対象例）はアイコンを少し小さく */
#page-inspection .ip-example-ph::before,
#page-inspection .ip-ir-ph::before{
  width:46px !important;height:32px !important;background-size:16px 16px !important;
}

/* ===== vph-text-white-on-photo ===== */
/* 実写真ヒーロー(vph): 暗い写真の上でテキストを白にして可読性を確保
   建物点検・空撮・イベントの3ページ共通 */
.vph .vph-overlay{
  background:linear-gradient(to right,
    rgba(8,16,32,.72) 0%,
    rgba(8,16,32,.48) 45%,
    rgba(8,16,32,.18) 100%) !important;
}
.vph .vph-en{ color:#8fd2f0 !important; }
.vph .vph-ttl{ color:#ffffff !important; text-shadow:0 2px 14px rgba(0,0,0,.45) !important; }
.vph .vph-sub{ color:rgba(255,255,255,.92) !important; text-shadow:0 1px 10px rgba(0,0,0,.45) !important; }

/* ===== aerial-gallery-ph ===== */
/* 空撮ギャラリー: 実写真をプレースホルダー「動画・写真が入ります」に */
#page-aerial .ap-item-ph{
  position:absolute !important;inset:0 !important;width:100% !important;height:100% !important;
  background:linear-gradient(135deg,#f5f8fa 0%,#eef3f7 100%) !important;
  display:flex !important;flex-direction:column !important;
  align-items:center !important;justify-content:center !important;gap:10px !important;
}
#page-aerial .ap-item-ph::before{
  content:"" !important;display:block !important;width:56px !important;height:40px !important;
  background:#ffffff url("assets/img/play-icon.svg") no-repeat center center !important;
  border:1px solid #d8e0ea !important;border-radius:12px !important;flex-shrink:0 !important;
}
#page-aerial .ap-item-ph::after{
  content:"動画・写真が入ります" !important;display:block !important;
  font-family:var(--sans) !important;font-size:11px !important;font-weight:600 !important;
  color:#8696a8 !important;letter-spacing:.04em !important;line-height:1 !important;
}
/* 番号バッジは薄いグレーで残す（白オーバーレイだと消えるため） */
#page-aerial .ap-item-num{ color:rgba(120,140,160,.45) !important; mix-blend-mode:normal !important; }

/* ===== brand-yellow-cta-strategy ===== */
/* ═══ 要件#7強化: ブランドカラー(イエロー)を「クリックしてほしい場所」に徹底適用 ═══
   サイト全体はネイビー/白基調を維持しつつ、
   問い合わせ・相談・見積りなど “コンバージョン” ボタンだけをイエローに統一して視線誘導する。
   ※ ナビゲーション系(「〜を見る」「一覧」)は青のままにして役割を区別する */
a.bp[onclick*="contact"]{
  background:#FFCB00 !important;color:#1f2937 !important;border:none !important;
  box-shadow:0 4px 16px rgba(255,203,0,.3) !important;
}
a.bp[onclick*="contact"]:hover{
  background:#e8bd00 !important;color:#1f2937 !important;
  transform:translateY(-2px);box-shadow:0 8px 24px rgba(255,203,0,.42) !important;
}
a.bp[onclick*="contact"] svg path{ stroke:#1f2937 !important; }

/* CTAバンド(ホーム)の主ボタンもイエロー基調に */
.ctab-btns a.bp{
  background:#FFCB00 !important;color:#1f2937 !important;border:none !important;
  box-shadow:0 4px 16px rgba(255,203,0,.3) !important;
}
.ctab-btns a.bp:hover{ background:#e8bd00 !important;color:#1f2937 !important; }
.ctab-btns a.bp svg path{ stroke:#1f2937 !important; }

/* お知らせバー(重要なお知らせ)のタグをブランドイエローで強調 */
.nbar .ntag{
  background:rgba(255,203,0,.18) !important;color:#9a7b00 !important;
}
/* ホームニュースの「お知らせ一覧を見る」はナビ扱いのため青のまま(変更なし) */

/* ===== line-consult-btn-green ===== */
/* 「LINEで相談する」ボタン: LINEブランドの緑に統一（黄色のお問い合わせと役割を区別） */
a.bs[href*="lin.ee"]{
  border:1.5px solid #06c755 !important;
  color:#06c755 !important;
  background:#ffffff !important;
}
a.bs[href*="lin.ee"]:hover{
  background:#06c755 !important;
  color:#ffffff !important;
  border-color:#06c755 !important;
  transform:translateY(-2px);
  box-shadow:0 6px 18px rgba(6,199,85,.3);
}
a.bs[href*="lin.ee"] svg path{ stroke:currentColor !important; }

/* ===== line-instagram-unify-all ===== */
/* ═══ LINE=緑 / Instagram=ピンク を全ページ・全デバイスで統一 ═══ */
/* フッターSNS（PCでも緑/ピンクに。従来はモバイルのみだった） */
.footer .fsocial a[href*="lin.ee"],
.footer .footer-social a[href*="lin.ee"]{
  border-color:#06c755 !important;color:#06c755 !important;
}
.footer .fsocial a[href*="lin.ee"]:hover,
.footer .footer-social a[href*="lin.ee"]:hover{
  background:#06c755 !important;color:#ffffff !important;border-color:#06c755 !important;
}
.footer .fsocial a[href*="instagram"],
.footer .footer-social a[href*="instagram"]{
  border-color:#c13584 !important;color:#c13584 !important;
}
.footer .fsocial a[href*="instagram"]:hover,
.footer .footer-social a[href*="instagram"]:hover{
  background:linear-gradient(135deg,#f09433 0%,#dc2743 50%,#bc1888 100%) !important;
  color:#ffffff !important;border-color:transparent !important;
}
/* お問い合わせページの「LINE で相談する」リンクも緑に */
a.ct-link-btn[href*="lin.ee"]{
  border-color:#06c755 !important;color:#06c755 !important;
}
a.ct-link-btn[href*="lin.ee"]:hover{
  background:#06c755 !important;color:#ffffff !important;border-color:#06c755 !important;
}
/* お問い合わせページの Instagram リンクもピンクに */
a.ct-link-btn[href*="instagram"]{
  border-color:#c13584 !important;color:#c13584 !important;
}
a.ct-link-btn[href*="instagram"]:hover{
  background:linear-gradient(135deg,#f09433 0%,#dc2743 50%,#bc1888 100%) !important;
  color:#ffffff !important;border-color:transparent !important;
}

/* ===== nav-contact-yellow ===== */
/* ナビ「お問い合わせ」をブランドイエローに統一
   （従来は青枠→ホバーで水色背景＋白文字になり可読性が低かった） */
#nav .nc,
#nav .nm li > a.nc{
  background:#FFCB00 !important;
  color:#1f2937 !important;
  border:none !important;
}
#nav .nc:hover,
#nav .nm li > a.nc:hover,
#nav .nc.cur,
#nav .nm li > a.nc.cur{
  background:#e8bd00 !important;
  color:#1f2937 !important;
  border:none !important;
}
/* モバイルの全幅お問い合わせボタンも同色に */
#nav .nm.op > li > a.nc{
  background:#FFCB00 !important;color:#1f2937 !important;
}
#nav .nm.op > li > a.nc:hover{
  background:#e8bd00 !important;color:#1f2937 !important;
}

/* ===== button-overhaul-v270 ===== */
/* ═══ HERO & CTAバンド: 同サイズ統一 + ホバー反転(白bg + 元色文字) ═══ */
.hbtns,
.ctab-btns{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:14px !important;
  justify-content:center !important;
  align-items:center !important;
}
.hero .hbtns a.bp,
.hero .hbtns a.bs,
.ctab-btns a.bp,
.ctab-btns a.bs{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:8px !important;
  min-width:220px !important;
  padding:14px 28px !important;
  font-size:14px !important;
  border-radius:100px !important;
  font-weight:700 !important;
  border:2px solid transparent !important;
  transition:background .25s ease,color .25s ease,border-color .25s ease,transform .25s ease,box-shadow .25s ease !important;
  box-sizing:border-box !important;
  letter-spacing:.02em !important;
  cursor:pointer !important;
}
@media (max-width:768px){
  .hero .hbtns a.bp,.hero .hbtns a.bs,
  .ctab-btns a.bp,.ctab-btns a.bs{
    width:280px !important;
    max-width:88vw !important;
    min-width:auto !important;
  }
}

/* 黄ボタン(まずは相談する / お問い合わせ) → ホバーで白bg・黄文字 */
.hero .hbtns a.bp,
.ctab-btns a.bp{
  background:#FFCB00 !important;
  color:#1f2937 !important;
  border-color:#FFCB00 !important;
  box-shadow:0 4px 16px rgba(255,203,0,.3) !important;
}
.hero .hbtns a.bp:hover,
.ctab-btns a.bp:hover{
  background:#ffffff !important;
  color:#FFCB00 !important;
  border-color:#FFCB00 !important;
  transform:translateY(-2px) !important;
  box-shadow:0 6px 20px rgba(255,203,0,.4) !important;
}
.hero .hbtns a.bp svg path,
.hero .hbtns a.bp:hover svg path,
.ctab-btns a.bp svg path,
.ctab-btns a.bp:hover svg path{ stroke:currentColor !important; }

/* 青ボタン(実例はこちら) → ホバーで白bg・青文字 */
.hero .hbtns a.bs,
.hero .hbtns a.bs:link,
.hero .hbtns a.bs:visited{
  background:#41aadc !important;
  color:#ffffff !important;
  border:2px solid #41aadc !important;
  box-shadow:0 4px 16px rgba(65,170,220,.3) !important;
}
.hero .hbtns a.bs:hover,
.hero .hbtns a.bs:focus,
.hero .hbtns a.bs:active{
  background:#ffffff !important;
  color:#41aadc !important;
  border-color:#41aadc !important;
  transform:translateY(-2px) !important;
  box-shadow:0 6px 20px rgba(65,170,220,.4) !important;
}
.hero .hbtns a.bs svg,
.hero .hbtns a.bs svg path,
.hero .hbtns a.bs:hover svg path{ stroke:currentColor !important;color:currentColor !important; }

/* 緑ボタン(LINEで相談する) → ホバーで白bg・緑文字 */
.ctab-btns a.bs[href*="lin.ee"],
a.bs[href*="lin.ee"]{
  background:#06c755 !important;
  color:#ffffff !important;
  border:2px solid #06c755 !important;
  box-shadow:0 4px 16px rgba(6,199,85,.3) !important;
}
.ctab-btns a.bs[href*="lin.ee"]:hover,
a.bs[href*="lin.ee"]:hover{
  background:#ffffff !important;
  color:#06c755 !important;
  border-color:#06c755 !important;
  transform:translateY(-2px) !important;
  box-shadow:0 6px 20px rgba(6,199,85,.4) !important;
}

/* ═══ 青背景の .bp (点検サービスを見る等) の文字を白で固定 ═══ */
a.bp:not([onclick*="contact"]){ color:#ffffff !important; }
a.bp:not([onclick*="contact"]) svg path{ stroke:#ffffff !important; }

/* ═══ フッターSNS: LINE=緑塗り / Instagram=公式風ラジアルグラデ塗り ═══ */
.footer .fsocial a[href*="lin.ee"],
.footer .footer-social a[href*="lin.ee"]{
  background:#06c755 !important;
  color:#ffffff !important;
  border:none !important;
  font-weight:700 !important;
}
.footer .fsocial a[href*="lin.ee"]:hover,
.footer .footer-social a[href*="lin.ee"]:hover{
  background:#05a847 !important;
  color:#ffffff !important;
  transform:translateY(-2px) !important;
  box-shadow:0 6px 18px rgba(6,199,85,.4) !important;
}
.footer .fsocial a[href*="instagram"],
.footer .footer-social a[href*="instagram"]{
  background:radial-gradient(circle at 30% 107%,
    #fdf497 0%,#fdf497 5%,#fd5949 45%,
    #d6249f 60%,#285AEB 90%) !important;
  color:#ffffff !important;
  border:none !important;
  font-weight:700 !important;
}
.footer .fsocial a[href*="instagram"]:hover,
.footer .footer-social a[href*="instagram"]:hover{
  transform:translateY(-2px) !important;
  box-shadow:0 6px 18px rgba(214,36,159,.45) !important;
  filter:saturate(1.15) brightness(1.05);
  color:#ffffff !important;
}

/* ===== hero-buttons-fix-v272 ===== */
/* HEROボタン: 左寄せに修正のみ。色は v270 の「通常=塗り／ホバー=白bg+色文字」に戻す
   - 通常: まずは相談する=黄塗り+黒文字 / 実例はこちら=青塗り+白文字
   - ホバー: 白背景 + 元の塗り色の文字 + 元色の枠線 */
.hero .hbtns{
  justify-content:flex-start !important;
}

/* ===== footer-sns-uniform-size ===== */
/* フッターSNSボタン: LINE と Instagram のサイズを完全に統一 */
.footer .fsocial,
.footer .footer-social{
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:nowrap !important;
  gap:10px !important;
  align-items:center !important;
  justify-content:flex-start !important;
}
.footer .fsocial a,
.footer .footer-social a{
  min-width:150px !important;
  padding:9px 20px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  box-sizing:border-box !important;
  font-weight:700 !important;
  font-size:13px !important;
  letter-spacing:.04em !important;
  border-radius:100px !important;
  white-space:nowrap !important;
}
@media (max-width:768px){
  .footer .fsocial a,
  .footer .footer-social a{
    flex:1 1 0 !important;
    min-width:0 !important;
    padding:10px 14px !important;
    font-size:12px !important;
  }
}
/* 並び順: LINE を左 → Instagram を右 (flex-orderで強制) */
.footer .fsocial a[href*="lin.ee"],
.footer .footer-social a[href*="lin.ee"]{ order:1 !important; }
.footer .fsocial a[href*="instagram"],
.footer .footer-social a[href*="instagram"]{ order:2 !important; }
.footer .fsocial a[href*="youtube"],
.footer .footer-social a[href*="youtube"]{ order:3 !important; }

/* Instagram背景: 公式アイコンから抽出した色で再構築
   (左下=黄/オレンジ→中心=ピンク→外側=紫マゼンタ) */
.footer .fsocial a[href*="instagram"],
.footer .footer-social a[href*="instagram"]{
  background:radial-gradient(circle at 20% 100%,
    #FFE17A 0%,
    #FFC107 10%,
    #F58529 25%,
    #FD1D1D 42%,
    #DC2A7B 60%,
    #C837AB 80%,
    #833AB4 100%) !important;
  color:#ffffff !important;
  border:none !important;
}
.footer .fsocial a[href*="instagram"]:hover,
.footer .footer-social a[href*="instagram"]:hover{
  filter:saturate(1.15) brightness(1.05);
  transform:translateY(-2px) !important;
  box-shadow:0 6px 18px rgba(200,55,171,.45) !important;
}

/* ===== final-button-color-fix-v276 ===== */
:root{
  --nexora-blue-final:#41aadc;
  --nexora-blue-hover-final:#2d92c5;
  --nexora-yellow-final:#FFCB00;
  --nexora-line-final:#06c755;
  --nexora-instagram-main:#c13584;
  --nexora-instagram-gradient:
    radial-gradient(circle at 20% 100%,
      #FFE17A 0%,
      #FFC107 10%,
      #F58529 25%,
      #FD1D1D 42%,
      #DC2A7B 60%,
      #C837AB 80%,
      #833AB4 100%);
}

/* ==============================
   共通：対象ボタンのサイズ統一
============================== */
.hero .hbtns,
.ctab .ctab-btns{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:14px !important;
  align-items:center !important;
}

.hero .hbtns{
  justify-content:flex-start !important;
}

.ctab .ctab-btns{
  justify-content:flex-start !important;
}

.hero .hbtns a.bp,
.hero .hbtns a.bs,
.ctab .ctab-btns a.bp,
.ctab .ctab-btns a.bs,
.home-about .ha-cta a.bp{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:10px !important;
  min-width:220px !important;
  height:64px !important;
  padding:0 32px !important;
  border-radius:100px !important;
  border:2px solid transparent !important;
  box-sizing:border-box !important;
  font-family:var(--sans) !important;
  font-size:15px !important;
  font-weight:800 !important;
  letter-spacing:.04em !important;
  line-height:1 !important;
  text-align:center !important;
  white-space:nowrap !important;
  cursor:pointer !important;
  transition:
    background .25s ease,
    color .25s ease,
    border-color .25s ease,
    transform .25s ease,
    box-shadow .25s ease !important;
}

@media(max-width:768px){
  .hero .hbtns a.bp,
  .hero .hbtns a.bs,
  .ctab .ctab-btns a.bp,
  .ctab .ctab-btns a.bs{
    width:280px !important;
    max-width:88vw !important;
    min-width:auto !important;
  }
}

/* ==============================
   HOMEヒーロー
   まずは相談する：青
============================== */
.hero .hbtns a.bp,
.hero .hbtns a.bp:link,
.hero .hbtns a.bp:visited{
  background:var(--nexora-blue-final) !important;
  color:#ffffff !important;
  border-color:var(--nexora-blue-final) !important;
  box-shadow:0 4px 16px rgba(65,170,220,.35) !important;
}

.hero .hbtns a.bp:hover,
.hero .hbtns a.bp:focus,
.hero .hbtns a.bp:active{
  background:#ffffff !important;
  color:var(--nexora-blue-final) !important;
  border-color:var(--nexora-blue-final) !important;
  transform:translateY(-2px) !important;
  box-shadow:0 6px 20px rgba(65,170,220,.35) !important;
}

/* ==============================
   HOMEヒーロー
   実例はこちら：黄
============================== */
.hero .hbtns a.bs,
.hero .hbtns a.bs:link,
.hero .hbtns a.bs:visited{
  background:var(--nexora-yellow-final) !important;
  color:#ffffff !important;
  border-color:var(--nexora-yellow-final) !important;
  box-shadow:0 4px 16px rgba(255,203,0,.35) !important;
}

.hero .hbtns a.bs:hover,
.hero .hbtns a.bs:focus,
.hero .hbtns a.bs:active{
  background:#ffffff !important;
  color:var(--nexora-yellow-final) !important;
  border-color:var(--nexora-yellow-final) !important;
  transform:translateY(-2px) !important;
  box-shadow:0 6px 20px rgba(255,203,0,.35) !important;
}

/* ==============================
   点検サービスを見る：青 + 白文字
============================== */
.home-about .ha-cta a.bp,
.home-about .ha-cta a.bp:link,
.home-about .ha-cta a.bp:visited{
  background:var(--nexora-blue-final) !important;
  color:#ffffff !important;
  border-color:var(--nexora-blue-final) !important;
  box-shadow:0 4px 16px rgba(65,170,220,.35) !important;
}

.home-about .ha-cta a.bp:hover,
.home-about .ha-cta a.bp:focus,
.home-about .ha-cta a.bp:active{
  background:#ffffff !important;
  color:var(--nexora-blue-final) !important;
  border-color:var(--nexora-blue-final) !important;
  transform:translateY(-2px) !important;
  box-shadow:0 6px 20px rgba(65,170,220,.35) !important;
}

/* ==============================
   CONTACT CTA：お問い合わせ＝青
============================== */
.ctab .ctab-btns a.bp,
.ctab .ctab-btns a.bp:link,
.ctab .ctab-btns a.bp:visited{
  background:var(--nexora-blue-final) !important;
  color:#ffffff !important;
  border-color:var(--nexora-blue-final) !important;
  box-shadow:0 4px 16px rgba(65,170,220,.35) !important;
}

.ctab .ctab-btns a.bp:hover,
.ctab .ctab-btns a.bp:focus,
.ctab .ctab-btns a.bp:active{
  background:#ffffff !important;
  color:var(--nexora-blue-final) !important;
  border-color:var(--nexora-blue-final) !important;
  transform:translateY(-2px) !important;
  box-shadow:0 6px 20px rgba(65,170,220,.35) !important;
}

/* ==============================
   CONTACT CTA：LINE＝緑
============================== */
.ctab .ctab-btns a.bs[href*="lin.ee"],
.ctab .ctab-btns a.bs[href*="lin.ee"]:link,
.ctab .ctab-btns a.bs[href*="lin.ee"]:visited{
  background:var(--nexora-line-final) !important;
  color:#ffffff !important;
  border-color:var(--nexora-line-final) !important;
  box-shadow:0 4px 16px rgba(6,199,85,.32) !important;
}

.ctab .ctab-btns a.bs[href*="lin.ee"]:hover,
.ctab .ctab-btns a.bs[href*="lin.ee"]:focus,
.ctab .ctab-btns a.bs[href*="lin.ee"]:active{
  background:#ffffff !important;
  color:var(--nexora-line-final) !important;
  border-color:var(--nexora-line-final) !important;
  transform:translateY(-2px) !important;
  box-shadow:0 6px 20px rgba(6,199,85,.32) !important;
}

/* ==============================
   SVG矢印:文字色と連動
============================== */
.hero .hbtns a svg,
.hero .hbtns a svg path,
.ctab .ctab-btns a svg,
.ctab .ctab-btns a svg path,
.home-about .ha-cta a svg,
.home-about .ha-cta a svg path{
  color:currentColor !important;
  stroke:currentColor !important;
}

/* ==============================
   フッターSNS：サイズ統一
============================== */
.footer .fsocial,
.footer .footer-social{
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:nowrap !important;
  gap:12px !important;
  align-items:center !important;
  justify-content:flex-start !important;
}

.footer .fsocial a,
.footer .footer-social a{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-width:150px !important;
  height:56px !important;
  padding:0 24px !important;
  border-radius:100px !important;
  border:2px solid transparent !important;
  box-sizing:border-box !important;
  font-family:var(--eng) !important;
  font-size:14px !important;
  font-weight:800 !important;
  letter-spacing:.05em !important;
  line-height:1 !important;
  text-align:center !important;
  white-space:nowrap !important;
  transition:
    background .25s ease,
    color .25s ease,
    border-color .25s ease,
    transform .25s ease,
    box-shadow .25s ease,
    filter .25s ease !important;
}

@media(max-width:768px){
  .footer .fsocial a,
  .footer .footer-social a{
    flex:1 1 0 !important;
    min-width:0 !important;
    height:60px !important;
    padding:0 14px !important;
    font-size:13px !important;
  }
}

/* LINE：通常＝緑背景 + 白文字 */
.footer .fsocial a[href*="lin.ee"],
.footer .footer-social a[href*="lin.ee"]{
  order:1 !important;
  background:var(--nexora-line-final) !important;
  color:#ffffff !important;
  border-color:var(--nexora-line-final) !important;
  box-shadow:0 4px 16px rgba(6,199,85,.28) !important;
}

.footer .fsocial a[href*="lin.ee"]:hover,
.footer .footer-social a[href*="lin.ee"]:hover{
  background:#ffffff !important;
  color:var(--nexora-line-final) !important;
  border-color:var(--nexora-line-final) !important;
  transform:translateY(-2px) !important;
  box-shadow:0 6px 20px rgba(6,199,85,.28) !important;
}

/* Instagram：通常＝公式風グラデ + 白文字 */
.footer .fsocial a[href*="instagram"],
.footer .footer-social a[href*="instagram"]{
  order:2 !important;
  background:var(--nexora-instagram-gradient) !important;
  color:#ffffff !important;
  border-color:transparent !important;
  box-shadow:0 4px 16px rgba(200,55,171,.28) !important;
}

.footer .fsocial a[href*="instagram"]:hover,
.footer .footer-social a[href*="instagram"]:hover{
  background:#ffffff !important;
  color:var(--nexora-instagram-main) !important;
  border-color:var(--nexora-instagram-main) !important;
  transform:translateY(-2px) !important;
  box-shadow:0 6px 20px rgba(200,55,171,.28) !important;
}

/* ==============================
   念のため：既存の青/黄/緑競合を抑制
============================== */
.ctab a.bs:hover,
.ctab-btns a.bs:hover,
a.bs[href*="lin.ee"]:hover{
  color:inherit;
}

/* ===== mobile-buttons-smaller-v277 ===== */
/* モバイル: すべてのボタンを同じ高さ・同じ文字サイズで小さく統一
   (v276の最後にさらに上書き。高さ48px / フォント13px) */
@media(max-width:768px){
  /* HERO / CTAバンド / About CTA: 縮小 + 統一 */
  .hero .hbtns a.bp,
  .hero .hbtns a.bs,
  .ctab .ctab-btns a.bp,
  .ctab .ctab-btns a.bs,
  .home-about .ha-cta a.bp{
    width:220px !important;
    max-width:78vw !important;
    min-width:auto !important;
    height:48px !important;
    padding:0 18px !important;
    font-size:13px !important;
    letter-spacing:.03em !important;
    gap:6px !important;
  }
  .hero .hbtns,
  .ctab .ctab-btns{
    gap:10px !important;
  }

  /* フッターSNS: 高さとフォントを他ボタンと統一(横並び維持) */
  .footer .fsocial,
  .footer .footer-social{
    gap:10px !important;
  }
  .footer .fsocial a,
  .footer .footer-social a{
    flex:1 1 0 !important;
    min-width:0 !important;
    height:48px !important;
    padding:0 12px !important;
    font-size:12px !important;
    letter-spacing:.04em !important;
  }
}

/* ===== hero-left-align-v278 ===== */
/* HEROボタン: 左寄せに統一
   モバイルでは flex-direction:column のため、align-items が水平方向を制御する。
   v276 で align-items:center にしていたのを flex-start に戻す。 */
.hero .hbtns{
  align-items:flex-start !important;
  justify-content:flex-start !important;
}
@media(max-width:768px){
  .hero .hbtns{
    flex-direction:column !important;
    align-items:flex-start !important;
  }
}

/* ===== remove-button-shadow-v279 ===== */
/* お問い合わせ・相談・SNS 各ボタンから box-shadow を完全に削除
   通常時・ホバー時・フォーカス時すべて。translateY による浮き上がりは残す */
.hero .hbtns a.bp,
.hero .hbtns a.bp:link,
.hero .hbtns a.bp:visited,
.hero .hbtns a.bp:hover,
.hero .hbtns a.bp:focus,
.hero .hbtns a.bp:active,
.hero .hbtns a.bs,
.hero .hbtns a.bs:link,
.hero .hbtns a.bs:visited,
.hero .hbtns a.bs:hover,
.hero .hbtns a.bs:focus,
.hero .hbtns a.bs:active,
.ctab .ctab-btns a.bp,
.ctab .ctab-btns a.bp:link,
.ctab .ctab-btns a.bp:visited,
.ctab .ctab-btns a.bp:hover,
.ctab .ctab-btns a.bp:focus,
.ctab .ctab-btns a.bp:active,
.ctab .ctab-btns a.bs,
.ctab .ctab-btns a.bs:link,
.ctab .ctab-btns a.bs:visited,
.ctab .ctab-btns a.bs:hover,
.ctab .ctab-btns a.bs:focus,
.ctab .ctab-btns a.bs:active,
.ctab .ctab-btns a.bs[href*="lin.ee"],
.ctab .ctab-btns a.bs[href*="lin.ee"]:hover,
.ctab .ctab-btns a.bs[href*="lin.ee"]:focus,
.ctab .ctab-btns a.bs[href*="lin.ee"]:active,
.home-about .ha-cta a.bp,
.home-about .ha-cta a.bp:link,
.home-about .ha-cta a.bp:visited,
.home-about .ha-cta a.bp:hover,
.home-about .ha-cta a.bp:focus,
.home-about .ha-cta a.bp:active,
.footer .fsocial a[href*="lin.ee"],
.footer .fsocial a[href*="lin.ee"]:hover,
.footer .footer-social a[href*="lin.ee"],
.footer .footer-social a[href*="lin.ee"]:hover,
.footer .fsocial a[href*="instagram"],
.footer .fsocial a[href*="instagram"]:hover,
.footer .footer-social a[href*="instagram"],
.footer .footer-social a[href*="instagram"]:hover{
  box-shadow:none !important;
}

/* ===== remove-all-button-shadows-v280 ===== */
/* すべての .bp / .bs / LINEバナー / フッターSNS ボタンから box-shadow を完全削除
   (v279で見落としていた works/event/inspection/aerial 各ページのCTAも網羅) */
a.bp, a.bp:link, a.bp:visited, a.bp:hover, a.bp:focus, a.bp:active,
a.bs, a.bs:link, a.bs:visited, a.bs:hover, a.bs:focus, a.bs:active,
.bp, .bp:hover, .bp:focus, .bp:active,
.bs, .bs:hover, .bs:focus, .bs:active,
.ev-line-banner, .ev-line-banner:hover, .ev-line-banner:focus,
.footer .fsocial a, .footer .fsocial a:hover,
.footer .footer-social a, .footer .footer-social a:hover,
.wk-cta .bp, .wk-cta .bp:hover,
.ev-cta-box .bp, .ev-cta-box .bp:hover,
.ip-quote .bp, .ip-quote .bp:hover,
.ap-cta-btns .bp, .ap-cta-btns .bp:hover{
  box-shadow:none !important;
}

/* ===== typography-sizes-v283 ===== */
/* ═══ ユーザー指定サイズ ═══
   HEROタイトル 80px / セクション見出し 40px / 本文 18px */

/* HERO タイトル(NEXORA) */
.hero .hh1{
  font-size:clamp(48px,10vw,80px) !important;
  line-height:1.05 !important;
  letter-spacing:-0.02em !important;
  font-weight:700 !important;
}
@media(max-width:768px){
  .hero .hh1{
    font-size:clamp(40px,12vw,56px) !important;
  }
}

/* セクション見出し(全ページ h2 共通) */
h2.ttl, h2.ha-ttl, h2.hsc-ttl, h2.ip-sec-ttl,
h2.ap-intro-ttl, h2.ap-cta-ttl,
h2.wk-cta-ttl, h2.wd-cta-ttl, h2.wd-sec-ttl, h2.ct-form-ttl,
h2.ctab-h{
  font-size:clamp(24px,5vw,30px) !important;
  line-height:1.3 !important;
  letter-spacing:-0.015em !important;
  font-weight:700 !important;
}
@media(max-width:768px){
  h2.ttl, h2.ha-ttl, h2.hsc-ttl, h2.ip-sec-ttl,
  h2.ap-intro-ttl, h2.ap-cta-ttl,
  h2.wk-cta-ttl, h2.wd-cta-ttl, h2.wd-sec-ttl, h2.ct-form-ttl,
  h2.ctab-h{
    font-size:clamp(20px,6vw,24px) !important;
  }
}

/* 本文(body) */
body{
  font-size:18px !important;
  line-height:1.85 !important;
}
@media(max-width:768px){
  body{ font-size:16px !important; }
}

/* ===== hero-subtext-white-v284 ===== */
/* HEROサブテキストを白文字に統一(2296行付近の薄い水色を上書き) */
.hero .hh2{
  color:#ffffff !important;
}
.hero .hb{
  color:rgba(255,255,255,0.9) !important;
}

/* ===== hero-body-size-v285 ===== */
/* HERO本文(.hb)を18pxに拡大 + 行間タイト */
.hero .hb{
  font-size:18px !important;
  line-height:1.5 !important;
  max-width:600px !important;
}
@media(max-width:768px){
  .hero .hb{
    font-size:15px !important;
    line-height:1.55 !important;
    max-width:100% !important;
  }
}

/* ===== ctab-h-size-v287 ===== */
/* CTA帯見出し「まずは、お気軽にご相談ください」を30pxに */
h2.ctab-h{
  font-size:30px !important;
  line-height:1.4 !important;
  letter-spacing:-0.01em !important;
}
@media(max-width:768px){
  h2.ctab-h{
    font-size:22px !important;
    line-height:1.45 !important;
  }
}

/* ===== remove-hover-movement-v291 ===== */
/* お問い合わせ・相談・SNS 各ボタンの hover 時の物理的な動き(translateY)を削除
   色の切り替え(白背景+色文字反転)は維持 */
.hero .hbtns a.bp:hover, .hero .hbtns a.bp:focus, .hero .hbtns a.bp:active,
.hero .hbtns a.bs:hover, .hero .hbtns a.bs:focus, .hero .hbtns a.bs:active,
.ctab .ctab-btns a.bp:hover, .ctab .ctab-btns a.bp:focus, .ctab .ctab-btns a.bp:active,
.ctab .ctab-btns a.bs:hover, .ctab .ctab-btns a.bs:focus, .ctab .ctab-btns a.bs:active,
.home-about .ha-cta a.bp:hover, .home-about .ha-cta a.bp:focus, .home-about .ha-cta a.bp:active,
a.bp:hover, a.bp:focus, a.bp:active,
a.bs:hover, a.bs:focus, a.bs:active,
.footer .fsocial a:hover, .footer .footer-social a:hover,
.ev-line-banner:hover,
.wk-cta .bp:hover,
.ev-cta-box .bp:hover,
.ip-quote .bp:hover,
.ap-cta-btns .bp:hover{
  transform:none !important;
}

/* ===== polish-package-v292 ===== */
/* ═══════════════════════════════════════════════════════
   おしゃれ演出パッケージ v292
   参考3サイト共通の「英字ラベル+水平アクセントバー」を
   全ページで統一。HEROラベル(.hl)のスタイルを .hsc-en / .vph-en
   にも展開して、サイト全体でデザイン言語を揃える
   ═══════════════════════════════════════════════════════ */

/* サービスセクション英字ラベル(Our Services)にバー追加 */
.hsc-en{
  display:inline-flex !important;
  align-items:center !important;
  gap:14px !important;
}
.hsc-en::before{
  content:'' !important;
  display:inline-block !important;
  width:36px !important;
  height:1px !important;
  background:currentColor !important;
  flex-shrink:0 !important;
  opacity:.9 !important;
}
@media(max-width:768px){
  .hsc-en::before{ width:24px !important; }
}

/* 下層ページのヒーロー英字ラベル(POINT / AERIAL PHOTOGRAPHY 等)にバー追加 */
.vph-en{
  display:inline-flex !important;
  align-items:center !important;
  gap:14px !important;
}
.vph-en::before{
  content:'' !important;
  display:inline-block !important;
  width:36px !important;
  height:1px !important;
  background:currentColor !important;
  flex-shrink:0 !important;
  opacity:.9 !important;
}
@media(max-width:768px){
  .vph-en::before{ width:24px !important; }
}

/* ===== section-breathing-v293 ===== */
/* ═══════════════════════════════════════════════════════
   セクション間の呼吸感を拡大 v293
   参考3サイト級のゆったりした縦リズムを作る
   88-120px → 140-160px（PC）
   モバイルは 64-72px に抑えて詰まりを防ぐ
   ═══════════════════════════════════════════════════════ */

/* トップページ主要セクション */
.home-about{ padding:60px 0 !important; }
.home-news{ padding:60px 0 !important; }
.home-service-cards{ padding:20px 0 60px 0 !important; }
.home-service{ padding:60px 0 !important; }
.home-slider{ padding:60px 0 !important; }

/* 下層ページ主要セクション */
.ip-sec{ padding:120px 0 !important; }
.co-sec{ padding:120px 0 !important; }
.ev-menu-sec{ padding:120px 0 !important; }
.ev-flow-sec{ padding:120px 0 !important; }
.ev-price-sec{ padding:120px 0 !important; }

/* モバイル: 詰まらないよう縮小 */
@media(max-width:768px){
  .home-about,
  .home-news,
  .home-service,
  .home-slider{ padding:40px 0 !important; }
  .home-service-cards{ padding:16px 0 40px 0 !important; }
  .ip-sec,
  .co-sec,
  .ev-menu-sec,
  .ev-flow-sec,
  .ev-price-sec{ padding:64px 0 !important; }
}

/* ===== subpage-hero-titles-v294 ===== */
/* 各下層ページのヒーロータイトルを30pxに統一
   現状バラバラ(17px〜46px)なのを揃える */
.vph-ttl,
.wk-hero-ttl,
.ct-info-ttl,
.fq-hero-ttl,
.nw-hero-ttl,
.co-hero-ttl,
.wd-ttl{
  font-size:30px !important;
  line-height:1.3 !important;
  letter-spacing:-0.01em !important;
  font-weight:700 !important;
}
@media(max-width:768px){
  .vph-ttl,
  .wk-hero-ttl,
  .ct-info-ttl,
  .fq-hero-ttl,
  .nw-hero-ttl,
  .co-hero-ttl,
  .wd-ttl{
    font-size:24px !important;
  }
}

/* ===== button-hover-border-v297 ===== */
/* ボタンのホバー時、枠線を確実に残す(2px solid)
   通常時も同じ枠線を明示、ホバー時に消えないように */

/* HERO まずは相談する(青) */
.hero .hbtns a.bp,
.hero .hbtns a.bp:hover,
.hero .hbtns a.bp:focus{
  border:2px solid var(--nexora-blue-final,#41aadc) !important;
}

/* HERO 実例はこちら(黄) */
.hero .hbtns a.bs,
.hero .hbtns a.bs:hover,
.hero .hbtns a.bs:focus{
  border:2px solid var(--nexora-yellow-final,#FFCB00) !important;
}

/* 点検サービスを見る(青) */
.home-about .ha-cta a.bp,
.home-about .ha-cta a.bp:hover,
.home-about .ha-cta a.bp:focus{
  border:2px solid var(--nexora-blue-final,#41aadc) !important;
}

/* CTA帯 お問い合わせ(青) */
.ctab .ctab-btns a.bp,
.ctab .ctab-btns a.bp:hover,
.ctab .ctab-btns a.bp:focus{
  border:2px solid var(--nexora-blue-final,#41aadc) !important;
}

/* CTA帯 LINEで相談する(緑) */
.ctab .ctab-btns a.bs[href*="lin.ee"],
.ctab .ctab-btns a.bs[href*="lin.ee"]:hover,
.ctab .ctab-btns a.bs[href*="lin.ee"]:focus,
a.bs[href*="lin.ee"],
a.bs[href*="lin.ee"]:hover,
a.bs[href*="lin.ee"]:focus{
  border:2px solid var(--nexora-line-final,#06c755) !important;
}

/* フッター LINE(緑) */
.footer .fsocial a[href*="lin.ee"],
.footer .footer-social a[href*="lin.ee"],
.footer .fsocial a[href*="lin.ee"]:hover,
.footer .footer-social a[href*="lin.ee"]:hover{
  border:2px solid var(--nexora-line-final,#06c755) !important;
}

/* フッター Instagram(マゼンタ) */
.footer .fsocial a[href*="instagram"],
.footer .footer-social a[href*="instagram"],
.footer .fsocial a[href*="instagram"]:hover,
.footer .footer-social a[href*="instagram"]:hover{
  border:2px solid var(--nexora-instagram-main,#c13584) !important;
}

/* 各下層ページのCTA(お問い合わせ・相談)は黄) */
.wk-cta .bp, .wk-cta .bp:hover,
.ev-cta-box .bp, .ev-cta-box .bp:hover,
.ip-quote .bp, .ip-quote .bp:hover,
.ap-cta-btns .bp, .ap-cta-btns .bp:hover,
a.bp[onclick*="contact"], a.bp[onclick*="contact"]:hover{
  border:2px solid var(--nexora-yellow-final,#FFCB00) !important;
}

/* ===== copyright-center-v298 ===== */
/* コピーライトを最下段の中央に揃える + サイズを 9px → 12px に */
.footer .fbtm,
.footer .footer-bottom{
  position:relative !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
}
.footer .fcopy,
.footer .footer-copy{
  margin:0 auto !important;
  text-align:center !important;
  font-size:12px !important;
  letter-spacing:0.06em !important;
}
.footer .fptop,
.footer .footer-ptop{
  position:absolute !important;
  right:0 !important;
  top:50% !important;
  transform:translateY(-50%) !important;
}
@media(max-width:768px){
  .footer .fptop,
  .footer .footer-ptop{
    right:16px !important;
  }
  .footer .fcopy,
  .footer .footer-copy{
    font-size:11px !important;
  }
}

/* ===== footer-logo-larger-v300 ===== */
/* フッターロゴを 32px → 48px に拡大 */
.footer .flogo img,
.footer .footer-logo img{
  height:48px !important;
}
.footer .flogo,
.footer .footer-logo{
  margin-bottom:20px !important;
}
@media(max-width:768px){
  .footer .flogo img,
  .footer .footer-logo img{
    height:40px !important;
  }
}

/* ===== footer-3col-layout-v301 ===== */
/* 案B: フッターを3カラム整理型に(ロゴ列 / Service / Company)
   HTMLは変更せず、CSSのみで再配置 */

/* .ftop / .footer-top を3カラムに */
.footer .ftop,
.footer .footer-top{
  display:grid !important;
  grid-template-columns:minmax(320px, 1.3fr) 1fr 1fr !important;
  gap:48px !important;
  padding-bottom:48px !important;
}

/* .fnav / .footer-nav を Service列(1) + Company列(2) の
   2列 x [ラベル+4項目] 構造に再配置 */
.footer .fnav,
.footer .footer-nav{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  grid-template-rows:auto repeat(4, auto) !important;
  gap:0 32px !important;
  align-content:start !important;
  grid-column:2 / span 2 !important;
}

/* カテゴリラベル: Service (左カラム上) */
.footer .fnav::before,
.footer .footer-nav::before{
  content:'SERVICE' !important;
  grid-column:1 !important;
  grid-row:1 !important;
  font-family:'Inter','Outfit',sans-serif !important;
  font-size:11px !important;
  font-weight:700 !important;
  letter-spacing:0.22em !important;
  color:#5a7a98 !important;
  padding-bottom:14px !important;
  border-bottom:1px solid #d8e0ea !important;
  margin-bottom:6px !important;
}

/* カテゴリラベル: About (右カラム上) */
.footer .fnav::after,
.footer .footer-nav::after{
  content:'ABOUT' !important;
  grid-column:2 !important;
  grid-row:1 !important;
  font-family:'Inter','Outfit',sans-serif !important;
  font-size:11px !important;
  font-weight:700 !important;
  letter-spacing:0.22em !important;
  color:#5a7a98 !important;
  padding-bottom:14px !important;
  border-bottom:1px solid #d8e0ea !important;
  margin-bottom:6px !important;
}

/* リンクを2列×4行に配置(HTML順に自然に振り分け) */
.footer .fnav a:nth-child(1),
.footer .footer-nav a:nth-child(1){grid-column:1 !important;grid-row:2 !important;}
.footer .fnav a:nth-child(2),
.footer .footer-nav a:nth-child(2){grid-column:1 !important;grid-row:3 !important;}
.footer .fnav a:nth-child(3),
.footer .footer-nav a:nth-child(3){grid-column:1 !important;grid-row:4 !important;}
.footer .fnav a:nth-child(4),
.footer .footer-nav a:nth-child(4){grid-column:1 !important;grid-row:5 !important;}
.footer .fnav a:nth-child(5),
.footer .footer-nav a:nth-child(5){grid-column:2 !important;grid-row:2 !important;}
.footer .fnav a:nth-child(6),
.footer .footer-nav a:nth-child(6){grid-column:2 !important;grid-row:3 !important;}
.footer .fnav a:nth-child(7),
.footer .footer-nav a:nth-child(7){grid-column:2 !important;grid-row:4 !important;}
.footer .fnav a:nth-child(8),
.footer .footer-nav a:nth-child(8){grid-column:2 !important;grid-row:5 !important;}

.footer .fnav a,
.footer .footer-nav a{
  padding:8px 0 !important;
}

/* モバイル: 3カラム→1カラム化、ナビは2列維持 */
@media(max-width:768px){
  .footer .ftop,
  .footer .footer-top{
    grid-template-columns:1fr !important;
    gap:32px !important;
  }
  .footer .fnav,
  .footer .footer-nav{
    gap:0 20px !important;
    grid-column:auto !important;
  }
}

/* ===== cta-band-center-v303 ===== */
/* CTA帯を全体中央揃えに */
.ctab .ctab-in{
  text-align:center !important;
  justify-items:center !important;
}
.ctab .ctab-in > div:first-child{
  text-align:center !important;
  width:100% !important;
  max-width:800px !important;
  margin:0 auto !important;
}
.ctab .ctab-in .en,
.ctab .ctab-in .ctab-h,
.ctab .ctab-in .ctab-sub{
  text-align:center !important;
}
/* 英字ラベルの横バーは中央揃えに合わせて表示形式を調整 */
.ctab .ctab-in .en{
  display:inline-flex !important;
  align-items:center !important;
  gap:14px !important;
  justify-content:center !important;
}
/* ボタン群も中央揃え */
.ctab .ctab-btns{
  justify-content:center !important;
  margin:0 auto !important;
}

/* ===== hn-more-center-v304 ===== */
/* 「お知らせ一覧を見る」ボタンを中央揃えに */
.home-news .hn-more{
  text-align:center !important;
  display:flex !important;
  justify-content:center !important;
  align-items:center !important;
  width:100% !important;
  margin-top:32px !important;
}

/* ===== unify-small-fonts-13px-v305 ===== */
/* PC版の 7〜12px 指定を すべて 13px に統一
   (15px はバッジ崩れリスクがあるため 13px に調整) */

/* 7px - フットノートラベル、スクロールインジケーター */
.ti::after,
.ip-fn-label,

/* 8px - Scroll文字、バッジ類 */
.hstxt,
.insp-pc-badge,
.ip-price-badge,
.ae-pc-badge,

/* 9px - ニュースタグ、その他ラベル */
.ntag,
.nall,
.tcen,

/* 10px - ヒーローラベル、日付、汎用ラベル */
.hl,
.ti,
.ndate,

/* 11px - ナビ、キャプション */
.nc,
.ip-ir-ph::after,
.ip-impact-en,

/* -en系ラベル */
.hsc-en,
.vph-en,
.ha-en,
.hs-en,
.co-hero-en,
.ct-info-en,
.fq-hero-en,
.nw-hero-en,
.ap-intro-en,
.ap-cta-en,

/* 12px - コピーライト、サブ */
.fcopy,
.footer-copy,
.hb-sub,
.co-hero-sub,
.fq-hero-sub,
.hn-cat,
.hn-date{
  font-size:13px !important;
}

/* モバイルは 12px でやや詰める */
@media(max-width:768px){
  .ti::after,
  .ip-fn-label,
  .hstxt,
  .insp-pc-badge,
  .ip-price-badge,
  .ae-pc-badge,
  .ntag,
  .nall,
  .tcen,
  .hl,
  .ti,
  .ndate,
  .nc,
  .ip-ir-ph::after,
  .ip-impact-en,
  .hsc-en,
  .vph-en,
  .ha-en,
  .fcopy,
  .footer-copy{
    font-size:12px !important;
  }
}

/* ===== mega-menu-13px-v306 ===== */
/* メガメニュー内の小テキスト(10.5-12px)を13pxに統一 */
.mega-col-ttl{
  font-size:13px !important;
}
.mega-link-ttl{
  font-size:13px !important;
}
.mega-link-sub{
  font-size:13px !important;
}
.mega-link-s{
  font-size:13px !important;
}
.mega-cta-text{
  font-size:13px !important;
}
/* 01, 02, 03 の数字は装飾要素として維持 */

/* ===== company-page-15px-v307 ===== */
/* 会社概要ページの左テーブル・右資格カード文字を15pxに */
.cot th{
  font-size:15px !important;
}
.cot td{
  font-size:15px !important;
}
.co-badge-ttl{
  font-size:15px !important;
}
.co-badge-sub{
  font-size:15px !important;
}

/* ===== readability-plan-x-v308 ===== */
/* ═══════════════════════════════════════════════════════
   案X: 本文の認識性(可読性)を4方向から改善
   1. 行間 1.5 → 1.8 (日本語適正化)
   2. 太さ 400 → 500 (Medium で文字を明瞭に)
   3. 本文色を濃く (コントラスト向上)
   4. アンチエイリアス最適化 (Windowsでもクッキリ)
   ═══════════════════════════════════════════════════════ */

/* 全体のアンチエイリアス最適化 */
html{
  -webkit-font-smoothing:antialiased !important;
  -moz-osx-font-smoothing:grayscale !important;
  text-rendering:optimizeLegibility !important;
}

/* ─── 一般本文の可読性UP ─── */
body,p,li,dd,dt,td,th{
  font-weight:500 !important;
  letter-spacing:0.02em !important;
}

/* 段落・リストの行間を日本語適正値に */
p,li{
  line-height:1.85 !important;
}

/* ─── 本文カラーを濃くしてコントラストUP ─── */
/* 明るいグレー→濃いグレーで視認性向上 */
p,li,dd,td{
  color:#334155 !important;
}
/* 補足テキストは少し薄めに(階層維持) */
.hn-cat,.hn-date,.co-badge-sub,
.mega-link-sub,.mega-cta-text{
  color:#5a6878 !important;
}

/* ─── HERO本文(暗背景上)の可読性 ─── */
.hero .hb{
  font-weight:500 !important;
  line-height:1.8 !important;
  color:rgba(255,255,255,0.92) !important;
  letter-spacing:0.03em !important;
}

/* ─── 下層ページヒーローサブ ─── */
.vph-sub,
.co-hero-sub,
.ct-info-sub,
.fq-hero-sub,
.nw-hero-sub{
  font-weight:500 !important;
  line-height:1.8 !important;
}

/* ─── 会社概要テーブルの読みやすさ ─── */
.cot td{
  font-weight:500 !important;
  line-height:1.8 !important;
  color:#334155 !important;
}
.cot th{
  font-weight:700 !important;
}

/* ===== pc-font-enlarge-v309 ===== */
/* ═══════════════════════════════════════════════════════
   Step 1 — PC版の文字拡大 v309
   テック感・トレンド感を強化するため、PC版の主要要素を拡大
   モバイル版は現状維持(画面制約を考慮)
   ═══════════════════════════════════════════════════════ */

/* HERO タイトル: 80 → 100 */
.hero .hh1{
  font-size:100px !important;
  line-height:1.02 !important;
  letter-spacing:-0.03em !important;
}
@media(max-width:768px){
  .hero .hh1{
    font-size:clamp(48px,15vw,64px) !important;
  }
}

/* セクション見出し(h2): 30 → 36 */
h2.ttl, h2.ha-ttl, h2.hsc-ttl, h2.ip-sec-ttl,
h2.ap-intro-ttl, h2.ap-cta-ttl,
h2.wk-cta-ttl, h2.wd-cta-ttl, h2.wd-sec-ttl,
h2.ct-form-ttl, h2.ctab-h{
  font-size:36px !important;
  line-height:1.3 !important;
  letter-spacing:-0.02em !important;
}
@media(max-width:768px){
  h2.ttl, h2.ha-ttl, h2.hsc-ttl, h2.ip-sec-ttl,
  h2.ap-intro-ttl, h2.ap-cta-ttl,
  h2.wk-cta-ttl, h2.wd-cta-ttl, h2.wd-sec-ttl,
  h2.ct-form-ttl, h2.ctab-h{
    font-size:clamp(22px,6vw,28px) !important;
  }
}

/* 下層ページヒーロータイトル: 30 → 40 */
.vph-ttl,
.wk-hero-ttl,
.ct-info-ttl,
.fq-hero-ttl,
.nw-hero-ttl,
.co-hero-ttl,
.wd-ttl{
  font-size:40px !important;
  line-height:1.25 !important;
  letter-spacing:-0.02em !important;
}
@media(max-width:768px){
  .vph-ttl,
  .wk-hero-ttl,
  .ct-info-ttl,
  .fq-hero-ttl,
  .nw-hero-ttl,
  .co-hero-ttl,
  .wd-ttl{
    font-size:26px !important;
  }
}

/* 本文: 18 → 20 */
body{
  font-size:20px !important;
}
@media(max-width:768px){
  body{ font-size:16px !important; }
}

/* HERO本文: 18 → 20 */
.hero .hb{
  font-size:20px !important;
  max-width:640px !important;
}
@media(max-width:768px){
  .hero .hb{
    font-size:15px !important;
  }
}

/* 会社概要テーブル: 15 → 17 */
.cot th,
.cot td{
  font-size:17px !important;
}
.co-badge-ttl,
.co-badge-sub{
  font-size:17px !important;
}
@media(max-width:768px){
  .cot th,
  .cot td,
  .co-badge-ttl,
  .co-badge-sub{
    font-size:14px !important;
  }
}

/* メガメニューの小テキスト: 13 → 15 */
.mega-col-ttl,
.mega-link-ttl,
.mega-link-sub,
.mega-link-s,
.mega-cta-text{
  font-size:15px !important;
}

/* フッターナビ: 拡大 */
.footer .fnav a,
.footer .footer-nav a{
  font-size:15px !important;
}
.footer .fnav::before,
.footer .fnav::after,
.footer .footer-nav::before,
.footer .footer-nav::after{
  font-size:13px !important;
}
@media(max-width:768px){
  .footer .fnav a,
  .footer .footer-nav a{
    font-size:14px !important;
  }
}

/* コピーライトも少し上げる: 13 → 14 */
.footer .fcopy,
.footer .footer-copy{
  font-size:14px !important;
}

/* ===== paragraph-override-v310 ===== */
/* v309 で body を 20px にしたが、
   個別クラス(.card p, .faq-a p 等)が独自に12px前後で
   上書きしていたため、それらを17pxに強制上書き */
.fi p,
.scb p,
.tc p,
.card p,
.pcnote p,
.lmt p,
.faq-bh p,
.faq-a p,
.tlr p,
.co-tl-item p,
.ha-body,
.ha-lead,
.hsc-card p,
.ap-intro-text,
.ip-body,
.ev-intro-text,
.wk-card p,
.nw-card p,
.hn-item p{
  font-size:17px !important;
  line-height:1.85 !important;
  color:#334155 !important;
}

@media(max-width:768px){
  .fi p,
  .scb p,
  .tc p,
  .card p,
  .pcnote p,
  .lmt p,
  .faq-bh p,
  .faq-a p,
  .tlr p,
  .co-tl-item p,
  .ha-body,
  .ha-lead,
  .hsc-card p,
  .ap-intro-text,
  .ip-body,
  .ev-intro-text,
  .wk-card p,
  .nw-card p,
  .hn-item p{
    font-size:14px !important;
  }
}

/* ===== header-nav-larger-v311 ===== */
/* ヘッダーナビメニュー(11px→14px)拡大 */
#nav .nm li a,
#nav .nm > li > a{
  font-size:14px !important;
  letter-spacing:.08em !important;
  padding:10px 15px !important;
}
#nav .nc{
  font-size:14px !important;
  letter-spacing:.08em !important;
}
/* サブメニューのリンクも少し拡大 */
.nm-sub li a{
  font-size:14px !important;
}
@media(max-width:768px){
  #nav .nm li a,
  #nav .nm > li > a{
    font-size:15px !important;
  }
  #nav .nc{
    font-size:15px !important;
  }
}

/* ===== mobile-tiny-fonts-13px-v312 ===== */
/* モバイル版の極小サイズ(7-12.5px)を13pxに統一 */
@media(max-width:768px){
  .ip-fn-label,
  .fq-tab,
  .ap-chip,
  .ip-impact-en,
  .breadcrumb-inner,
  .co-hero-en,
  .wk-card-cat,
  .wk-hero-en,
  .fq-hero-en,
  .nw-hero-en,
  .ti,
  .en,
  .wk-tab,
  .hl,
  .ev-line-sub,
  .fn,
  .mtag,
  .footer .fcopy,
  .footer .footer-copy,
  .ip-impact-row-label,
  .ip-impact-note,
  .co-hero-sub,
  .wk-hero-sub,
  .fq-hero-sub,
  .nw-hero-sub,
  .footer .fsocial a,
  .footer .footer-social a,
  .wd-back,
  .ip-impact-row-time,
  .faq-nb{
    font-size:13px !important;
  }
}

/* ===== mobile-remaining-13px-v313 ===== */
/* v312 で捕らえきれなかった 12px 指定を 13px に */
@media(max-width:768px){
  .nall,
  .nc,
  .ntag,
  .ip-price-badge,
  .hsc-en,
  .ndate,
  .vph-en,
  .ha-en,
  .ae-pc-badge,
  .insp-pc-badge,
  .ip-ir-ph::after,
  .tcen,
  .hstxt{
    font-size:13px !important;
  }
}

/* ===== mobile-japanese-linebreak-v314 ===== */
/* ═══════════════════════════════════════════════════════
   モバイル版のみ:日本語改行の適正化
   - 見出し類: keep-all で熟語を分断しない
   - 本文類: normal + overflow-wrap で自然な折り返し
   - 全体的に禁則処理 strict で美しい改行に
   ═══════════════════════════════════════════════════════ */

@media(max-width:768px){
  /* 見出し類: 熟語(建物点検・空撮など)を分断しない */
  h1, h2, h3, h4, h5, h6,
  .hh1, .hh2, .hl,
  .vph-ttl, .vph-sub, .vph-en,
  .wk-hero-ttl, .ct-info-ttl, .fq-hero-ttl,
  .nw-hero-ttl, .co-hero-ttl, .wd-ttl,
  .ttl, .ha-ttl, .hsc-ttl, .ip-sec-ttl,
  .ap-intro-ttl, .ap-cta-ttl,
  .ctab-h, .wk-cta-ttl, .wd-cta-ttl, .ct-form-ttl,
  .mega-col-ttl, .mega-link-ttl,
  .hsc-card h3, .card h3, .fi h4,
  .co-tl-item h4, .co-badge-ttl,
  .hs-card-body h3{
    word-break:keep-all !important;
    overflow-wrap:break-word !important;
    line-break:strict !important;
  }

  /* 本文類: 自然な単語区切りで折り返す */
  body, p, li, dd, dt, td, th, span, a{
    word-break:normal !important;
    overflow-wrap:anywhere !important;
    line-break:strict !important;
    /* 単語区切りが不明瞭な箇所を許容 */
    hanging-punctuation:allow-end !important;
  }

  /* 見出しの補足サブテキスト */
  .hh2, .hb, .vph-sub, .co-hero-sub,
  .ct-info-sub, .fq-hero-sub, .nw-hero-sub{
    word-break:normal !important;
    overflow-wrap:break-word !important;
    line-break:strict !important;
  }

  /* ボタン内テキスト: 折り返し禁止(はみ出るならCSSで制御済み) */
  a.bp, a.bs, .bp, .bs,
  .footer .fsocial a, .footer .footer-social a,
  .nc, .mega-cta-btn{
    word-break:keep-all !important;
    white-space:nowrap !important;
  }
}

/* ===== sp-br-mobile-linebreak-v315 ===== */
/* モバイル専用の改行タグ (br.sp-br)
   PCでは無視、モバイルのみ改行として機能 */
br.sp-br{ display:none; }
@media(max-width:768px){
  br.sp-br{ display:inline; }
}

/* ===== ip-sec-ttl-mobile-fit-v316 ===== */
/* 建物点検ページのセクション見出しをモバイルで少し縮小
   「ドローンで点検業務の課題を解決！」を1行に収める */
@media(max-width:768px){
  #page-inspection h2.ip-sec-ttl{
    font-size:clamp(19px,5.2vw,24px) !important;
  }
}

/* ===== subpage-mobile-larger-v317 ===== */
/* 下層ページのモバイル見出しを拡大
   - ヒーロータイトル: 26px → 32px
   - セクション見出し: 28px → 32px
   - 建物点検ip-sec-ttl: 24px → 30px */
@media(max-width:768px){
  /* 下層ヒーロータイトル: 26 → 32 */
  .vph-ttl,
  .wk-hero-ttl,
  .ct-info-ttl,
  .fq-hero-ttl,
  .nw-hero-ttl,
  .co-hero-ttl,
  .wd-ttl{
    font-size:32px !important;
    line-height:1.25 !important;
  }

  /* セクション見出し h2 (全ページ): 28 → 32 */
  h2.ttl, h2.ha-ttl, h2.hsc-ttl,
  h2.ap-intro-ttl, h2.ap-cta-ttl,
  h2.wk-cta-ttl, h2.wd-cta-ttl, h2.wd-sec-ttl,
  h2.ct-form-ttl, h2.ctab-h{
    font-size:clamp(24px,7vw,32px) !important;
  }

  /* 建物点検セクション見出し ip-sec-ttl: 24 → 30
     (v316の「！」問題は下記のsp-brで対応) */
  #page-inspection h2.ip-sec-ttl{
    font-size:clamp(22px,6.5vw,30px) !important;
  }
}

/* ===== subpage-mobile-body-16px-v318 ===== */
/* 下層ページのモバイル本文サイズを 16px → 16px に統一
   (可読性向上、他要素とのバランス調整) */
@media(max-width:768px){
  /* 段落・本文系クラス */
  .fi p,
  .scb p,
  .tc p,
  .card p,
  .pcnote p,
  .lmt p,
  .faq-bh p,
  .faq-a p,
  .tlr p,
  .co-tl-item p,
  .ha-body,
  .ha-lead,
  .ha-desc,
  .hsc-card p,
  .ap-intro-text,
  .ip-body,
  .ev-intro-text,
  .wk-card p,
  .nw-card p,
  .hn-item p,
  /* リード文・説明文系 */
  .desc,
  .co-desc,
  .fq-desc,
  .wk-desc{
    font-size:16px !important;
    line-height:1.85 !important;
  }
}

/* ===== subpage-mobile-body-complete-v319 ===== */
/* v318で漏れた本文クラスを追加で16pxに統一
   これで全ページのモバイル本文が16px統一 */
@media(max-width:768px){
  /* 13.5px系 */
  .ctab-sub,
  .hs-card-body p,
  .ip-feature-body p,
  .ip-price-table td,
  .ip-price-table th,
  .ae-scene-body p,
  .fq-list .faq-qt,
  .vph-sub,
  .ntxt,
  /* 16px系(未対応分) */
  .ae-hero-sub,
  .hn-ttl,
  .hs-desc,
  .ip-sec-body,
  .wd-list li,
  .wd-sec p,
  .wd-voice p,
  .hb{
    font-size:16px !important;
    line-height:1.85 !important;
  }
}

/* ===== ha-ttl-mobile-fit-v321 ===== */
/* トップページ About見出し(.ha-ttl)を
   モバイルで3行構成に確実に収める */
@media(max-width:768px){
  h2.ha-ttl{
    font-size:clamp(20px,5.6vw,26px) !important;
    line-height:1.4 !important;
    letter-spacing:-0.01em !important;
  }
}

/* ===== mobile-body-16px-complete-v322 ===== */
/* モバイル本文完全統一: 残っていた例外を16pxに */
@media(max-width:768px){
  .ctab-sub,
  .hero .hb,
  .hb{
    font-size:16px !important;
    line-height:1.85 !important;
  }
}

/* ===== ctab-h-mobile-18px-v323 ===== */
/* CTA帯見出し「まずは、お気軽にご相談ください」
   モバイル版を18pxに */
@media(max-width:768px){
  h2.ctab-h{
    font-size:18px !important;
    line-height:1.4 !important;
    letter-spacing:-0.01em !important;
  }
}

/* ===== section-number-decorations-v324 ===== */
/* ═══════════════════════════════════════════════════════
   セクション背景に巨大な番号装飾を追加 v324
   参考サイト(Sensyn等)の共通デザイン言語
   レイアウトは変更せず、背景装飾のみ
   ═══════════════════════════════════════════════════════ */

/* トップページのメインセクションに番号カウンター */
#page-home{
  counter-reset:sec;
}
#page-home .home-about,
#page-home .home-service-cards,
#page-home .home-slider,
#page-home .home-news{
  counter-increment:sec;
  position:relative !important;
  overflow:hidden !important;
}

/* 巨大な番号を背景に配置(絶対配置・低透明度アウトライン) */
#page-home .home-about::before,
#page-home .home-service-cards::before,
#page-home .home-slider::before,
#page-home .home-news::before{
  content:"0" counter(sec);
  position:absolute !important;
  top:20px !important;
  right:24px !important;
  font-family:'Inter','Outfit',sans-serif !important;
  font-size:clamp(140px,18vw,240px) !important;
  font-weight:900 !important;
  line-height:0.9 !important;
  letter-spacing:-0.05em !important;
  color:transparent !important;
  -webkit-text-stroke:1.5px rgba(65,170,220,0.08) !important;
  z-index:0 !important;
  pointer-events:none !important;
  user-select:none !important;
}

/* コンテンツを番号より前面に */
#page-home .home-about > *,
#page-home .home-service-cards > *,
#page-home .home-slider > *,
#page-home .home-news > *{
  position:relative;
  z-index:1;
}

/* モバイルは少し控えめに */
@media(max-width:768px){
  #page-home .home-about::before,
  #page-home .home-service-cards::before,
  #page-home .home-slider::before,
  #page-home .home-news::before{
    font-size:clamp(80px,22vw,140px) !important;
    top:10px !important;
    right:14px !important;
    -webkit-text-stroke:1px rgba(65,170,220,0.1) !important;
  }
}

/* ===== company-page-lighter-v325 ===== */
/* 会社概要ページの文字を細文字に統一 */

/* 左の会社情報テーブル */
#page-company .cot th{
  font-weight:500 !important;
}
#page-company .cot td{
  font-weight:400 !important;
}

/* 右の資格・認証カード */
#page-company .co-badge-ttl{
  font-weight:500 !important;
}
#page-company .co-badge-sub{
  font-weight:400 !important;
}

/* ヒーロー(会社案内タイトル) */
#page-company .co-hero-ttl{
  font-weight:600 !important;
}
#page-company .co-hero-sub{
  font-weight:400 !important;
}
#page-company .co-hero-en{
  font-weight:500 !important;
}

/* 沿革タイムライン */
#page-company .co-tl-item h4{
  font-weight:500 !important;
}
#page-company .co-tl-item p{
  font-weight:400 !important;
}
#page-company .co-tl-yr{
  font-weight:700 !important;
}
#page-company .co-tl-mo{
  font-weight:500 !important;
}

/* 数字・統計 */
#page-company .co-stat-num{
  font-weight:600 !important;
}
#page-company .co-stat-label{
  font-weight:400 !important;
}

/* WHY セクション */
#page-company .co-why-num{
  font-weight:500 !important;
}
#page-company .co-why{
  font-weight:400 !important;
}

/* 会社概要ページ全体の本文系を細く */
#page-company p,
#page-company li,
#page-company dd,
#page-company dt{
  font-weight:400 !important;
}

/* ===== scroll-animations-v326 ===== */
/* ═══════════════════════════════════════════════════════
   参考3サイト級の「動き」演出 v326
   - スクロール入場アニメーション
   - カードホバー(影なし)
   - 時間差登場
   ═══════════════════════════════════════════════════════ */

/* スクロール入場対象: 初期状態(透明+下オフセット) */
.hero .hl,
.hero .hh1,
.hero .hh2,
.hero .hb,
.hero .hbtns,
h2.ttl, h2.ha-ttl, h2.hsc-ttl, h2.ip-sec-ttl,
h2.ap-intro-ttl, h2.ap-cta-ttl,
h2.wk-cta-ttl, h2.wd-cta-ttl, h2.ct-form-ttl, h2.ctab-h,
.ha-desc, .ha-body, .ha-lead, .desc, .ctab-sub,
.hsc-en, .vph-en, .ha-en,
.co-hero-ttl, .co-hero-sub, .co-hero-en,
.vph-ttl, .vph-sub,
.wk-hero-ttl, .fq-hero-ttl, .nw-hero-ttl, .co-hero-ttl, .ct-info-ttl,
.hsc-card, .fi, .card, .co-badge, .co-tl-item,
.ap-item, .wk-card, .nw-card, .hn-item,
.ip-feature, .ip-example, .ip-ir,
.ev-menu-card, .ap-flow-item{
  opacity:0;
  transform:translateY(28px);
  transition:opacity 0.9s cubic-bezier(0.16, 1, 0.3, 1),
             transform 0.9s cubic-bezier(0.16, 1, 0.3, 1);
  will-change:opacity, transform;
}

.reveal-in{
  opacity:1 !important;
  transform:translateY(0) !important;
}

/* カードホバー(影なし・枠線と背景の変化のみ) */
.hsc-card,
.co-badge,
.fi,
.hn-item,
.ap-item,
.wk-card,
.nw-card,
.ev-menu-card{
  transition:background 0.4s ease, border-color 0.4s ease, transform 0.4s ease;
}
.hsc-card:hover,
.co-badge:hover,
.fi:hover,
.hn-item:hover,
.ev-menu-card:hover{
  transform:translateY(-3px);
  background:rgba(65,170,220,0.03) !important;
}

/* カード内画像のズーム(影なし) */
.hsc-card img,
.wk-card-media img,
.hn-item img,
.hs-slide img,
.ap-item-bg,
.ap-item .ap-item-bg{
  transition:transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}
.hsc-card:hover img,
.wk-card:hover .wk-card-media img,
.hn-item:hover img,
.hs-slide:hover img,
.ap-item:hover .ap-item-bg{
  transform:scale(1.05);
}

/* スクロール入場アニメーションを支援するためのユーティリティ */
.reveal-target{ opacity:0; transform:translateY(28px); }

/* モーション低減設定を尊重(アクセシビリティ) */
@media (prefers-reduced-motion: reduce){
  .hero .hl,.hero .hh1,.hero .hh2,.hero .hb,.hero .hbtns,
  h2.ttl,h2.ha-ttl,h2.hsc-ttl,h2.ip-sec-ttl,h2.ap-intro-ttl,h2.ap-cta-ttl,
  h2.wk-cta-ttl,h2.wd-cta-ttl,h2.ct-form-ttl,h2.ctab-h,
  .ha-desc,.ha-body,.ha-lead,.desc,.ctab-sub,
  .hsc-en,.vph-en,.ha-en,
  .co-hero-ttl,.co-hero-sub,.co-hero-en,
  .vph-ttl,.vph-sub,
  .hsc-card,.fi,.card,.co-badge,.co-tl-item,
  .ap-item,.wk-card,.nw-card,.hn-item,
  .ip-feature,.ip-example,.ip-ir,
  .ev-menu-card,.ap-flow-item{
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
  }
}

/* ===== co-stats-card-shape-v330 ===== */
/* 数字セクションを「4つの独立した角丸カード」に */

/* 各カードを独立した角丸カード + 中央揃え + 余白拡大 */
.home-stats .co-stat{
  background:#ffffff !important;
  border:1px solid #e0e6ed !important;
  border-radius:12px !important;
  padding:40px 24px !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  gap:12px !important;
}

/* カード内の要素も中央揃え */
.home-stats .co-stat-num,
.home-stats .co-stat-label{
  text-align:center !important;
  width:100% !important;
}

/* カード間の縦線を非表示 */
.home-stats .co-stat-div{
  display:none !important;
}

/* カード間に隙間を作る + 全体の幅を縮小してカードを小さくする */
.home-stats .co-stat-row{
  gap:20px !important;
  align-items:center !important;
  max-width:960px !important;
  margin:0 auto !important;
}

/* コンテナの背景を薄いグレーに(カードが浮き上がって見える)
   グレー帯の内側(カードの上下)にも十分な余白 */
.home-stats{
  background:#fafbfc !important;
  padding:60px 0 60px 0 !important;
  margin:40px 0 !important;
}
.home-stats .co-stats{
  background:transparent !important;
  border:none !important;
  padding:0 !important;
  margin:0 !important;
}

/* 会社概要ページと同じ font-weight を適用 + 数字フォントを Noto Sans JP に */
.home-stats .co-stat-num{
  font-family:var(--sans) !important;
  font-weight:600 !important;
}
.home-stats .co-stat-label{
  font-weight:400 !important;
}

/* モバイル */
@media(max-width:768px){
  .home-stats .co-stat-row{
    gap:12px !important;
    flex-wrap:wrap !important;
  }
  .home-stats .co-stat{
    flex:1 1 45% !important;
    padding:28px 12px !important;
  }
  .home-stats{
    padding:32px 0 !important;
    margin:32px 0 !important;
  }
}

/* ===== home-about-aurora-blur-v346 ===== */
/* ═══════════════════════════════════════════════════════
   トップページ About セクションを
   ダーク+オーロラブラー化 v346 (案B) + アイコン統一
   ═══════════════════════════════════════════════════════ */

/* 背景をダークネイビーに(v346から少し明るく) */
#page-home .home-about{
  background:#0f1e38 !important;
  position:relative !important;
  overflow:hidden !important;
}

/* オーロラブラー1: 左上、明るい青 */
#page-home .home-about::before{
  content:"";
  position:absolute;
  top:-20%;
  left:-20%;
  width:80%;
  height:120%;
  background:radial-gradient(circle, rgba(65,170,220,0.45) 0%, transparent 60%);
  filter:blur(80px);
  animation:nexoraAuroraMove1 15s ease-in-out infinite;
  pointer-events:none;
  z-index:0;
}

/* オーロラブラー2: 右下、深い青 */
#page-home .home-about::after{
  content:"";
  position:absolute;
  bottom:-30%;
  right:-15%;
  width:80%;
  height:110%;
  background:radial-gradient(circle, rgba(28,80,180,0.5) 0%, transparent 60%);
  filter:blur(90px);
  animation:nexoraAuroraMove2 20s ease-in-out infinite;
  pointer-events:none;
  z-index:0;
}

@keyframes nexoraAuroraMove1{
  0%,100%{transform:translate(0,0) scale(1);}
  50%{transform:translate(30%,20%) scale(1.2);}
}
@keyframes nexoraAuroraMove2{
  0%,100%{transform:translate(0,0) scale(1);}
  50%{transform:translate(-30%,-15%) scale(1.15);}
}

/* コンテンツを前面に */
#page-home .home-about > .W,
#page-home .home-about > *{
  position:relative !important;
  z-index:1 !important;
}

/* テキストカラーを白系に */
#page-home .home-about .en,
#page-home .home-about .ha-en{
  color:#41aadc !important;
}
#page-home .home-about h2.ttl.ha-ttl,
#page-home .home-about .ha-ttl{
  color:#ffffff !important;
}
#page-home .home-about p.desc.ha-desc,
#page-home .home-about .ha-desc{
  color:rgba(255,255,255,0.85) !important;
}

/* ═══ 6つのアイコンカードを横一列リスト風に(案3) ═══ */
#page-home .home-about .ha-icons{
  display:grid !important;
  grid-template-columns:repeat(2, 1fr) !important;
  gap:0 !important;
  max-width:960px !important;
  margin:48px auto 0 auto !important;
  border-top:1px solid rgba(255,255,255,0.08) !important;
  border-left:1px solid rgba(255,255,255,0.08) !important;
  background:transparent !important;
  padding:0 !important;
}
#page-home .home-about .ha-icon-item{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  gap:20px !important;
  padding:22px 24px !important;
  background:transparent !important;
  border-right:1px solid rgba(255,255,255,0.08) !important;
  border-bottom:1px solid rgba(255,255,255,0.08) !important;
  border-radius:0 !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  transition:background 0.3s ease !important;
  text-align:left !important;
}
#page-home .home-about .ha-icon-item:hover{
  background:rgba(65,170,220,0.04) !important;
  border-color:rgba(65,170,220,0.15) !important;
}
#page-home .home-about .ha-icon-box{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:48px !important;
  height:48px !important;
  min-width:48px !important;
  background:linear-gradient(135deg, rgba(65,170,220,0.22) 0%, rgba(65,170,220,0.06) 100%) !important;
  border:1px solid rgba(65,170,220,0.35) !important;
  border-radius:10px !important;
  color:#7dcff0 !important;
  flex-shrink:0 !important;
  padding:0 !important;
  margin:0 !important;
  box-shadow:
    0 0 20px rgba(65,170,220,0.15),
    inset 0 1px 0 rgba(255,255,255,0.1),
    inset 0 0 12px rgba(65,170,220,0.08) !important;
  position:relative !important;
  transition:all 0.4s ease !important;
}
#page-home .home-about .ha-icon-item:hover .ha-icon-box{
  background:linear-gradient(135deg, rgba(65,170,220,0.32) 0%, rgba(65,170,220,0.1) 100%) !important;
  border-color:rgba(65,170,220,0.6) !important;
  box-shadow:
    0 0 32px rgba(65,170,220,0.35),
    inset 0 1px 0 rgba(255,255,255,0.15),
    inset 0 0 16px rgba(65,170,220,0.15) !important;
  transform:scale(1.08) !important;
}
#page-home .home-about .ha-icon-box svg{
  width:26px !important;
  height:26px !important;
  stroke:#7dcff0 !important;
  color:#7dcff0 !important;
  filter:drop-shadow(0 0 4px rgba(65,170,220,0.4)) !important;
  transition:filter 0.4s ease !important;
}
#page-home .home-about .ha-icon-item:hover .ha-icon-box svg{
  filter:drop-shadow(0 0 8px rgba(65,170,220,0.7)) !important;
}
#page-home .home-about .ha-icon-item p{
  font-family:'Noto Sans JP',sans-serif !important;
  font-size:15px !important;
  font-weight:600 !important;
  color:#ffffff !important;
  line-height:1.5 !important;
  margin:0 !important;
  flex:1 !important;
  text-align:left !important;
}
#page-home .home-about .ha-icon-item p br{
  display:none !important;
}
#page-home .home-about .ha-icon-sub{
  display:block !important;
  font-family:'Noto Sans JP',sans-serif !important;
  font-size:12px !important;
  font-weight:400 !important;
  color:rgba(255,255,255,0.6) !important;
  margin-top:3px !important;
  letter-spacing:0.02em !important;
}
/* モバイル: 1列 */
@media(max-width:768px){
  #page-home .home-about .ha-icons{
    grid-template-columns:1fr !important;
    margin:32px 0 0 0 !important;
  }
  #page-home .home-about .ha-icon-item{
    padding:16px 12px !important;
    gap:14px !important;
  }
  #page-home .home-about .ha-icon-box{
    width:40px !important;
    height:40px !important;
    min-width:40px !important;
  }
  #page-home .home-about .ha-icon-box svg{
    width:20px !important;
    height:20px !important;
  }
  #page-home .home-about .ha-icon-item p{
    font-size:14px !important;
  }
  #page-home .home-about .ha-icon-sub{
    font-size:11px !important;
  }
}

/* ボタン(暗背景でも視認性UP) */
#page-home .home-about .ha-cta{
  margin-top:64px !important;
}
#page-home .home-about a.bp{
  background:#41aadc !important;
  color:#ffffff !important;
  border-color:#41aadc !important;
}
#page-home .home-about a.bp:hover{
  background:#ffffff !important;
  color:#0f1e38 !important;
  border-color:#ffffff !important;
}

/* モーション低減設定を尊重 */
@media (prefers-reduced-motion: reduce){
  #page-home .home-about::before,
  #page-home .home-about::after{
    animation:none !important;
  }
}

/* ═══ モバイルでもオーロラグラデが確実に表示されるよう最適化 ═══ */
@media (max-width:768px){
  #page-home .home-about{
    background:#0f1e38 !important;
    position:relative !important;
    overflow:hidden !important;
  }
  #page-home .home-about::before{
    content:"" !important;
    position:absolute !important;
    top:-15% !important;
    left:-20% !important;
    width:100% !important;
    height:80% !important;
    background:radial-gradient(circle, rgba(65,170,220,0.55) 0%, transparent 60%) !important;
    filter:blur(50px) !important;
    animation:nexoraAuroraMove1 15s ease-in-out infinite !important;
    pointer-events:none !important;
    z-index:0 !important;
    display:block !important;
    opacity:1 !important;
  }
  #page-home .home-about::after{
    content:"" !important;
    position:absolute !important;
    bottom:-15% !important;
    right:-20% !important;
    width:100% !important;
    height:80% !important;
    background:radial-gradient(circle, rgba(28,80,180,0.6) 0%, transparent 60%) !important;
    filter:blur(60px) !important;
    animation:nexoraAuroraMove2 20s ease-in-out infinite !important;
    pointer-events:none !important;
    z-index:0 !important;
    display:block !important;
    opacity:1 !important;
  }
  #page-home .home-about > .W,
  #page-home .home-about > *{
    position:relative !important;
    z-index:1 !important;
  }
}

/* ===== ha-glass-white-cards-v364 ===== */
/* ═══ About アイコン6項目：A案 白ガラスカード分離型 v364 ═══ */
#page-home .home-about .ha-icons{
  display:grid !important;
  grid-template-columns:repeat(3, 1fr) !important;
  gap:14px !important;
  max-width:960px !important;
  margin:44px auto 0 auto !important;
  border:none !important;
  background:transparent !important;
  padding:0 !important;
}
#page-home .home-about .ha-icon-item{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  gap:16px !important;
  padding:20px 18px !important;
  background:rgba(255,255,255,0.93) !important;
  border:1px solid rgba(255,255,255,0.6) !important;
  border-radius:12px !important;
  backdrop-filter:blur(14px) !important;
  -webkit-backdrop-filter:blur(14px) !important;
  box-shadow:0 8px 26px rgba(0,0,0,0.22) !important;
  transition:background .3s ease, transform .3s ease, box-shadow .3s ease !important;
  text-align:left !important;
}
#page-home .home-about .ha-icon-item:hover{
  background:#ffffff !important;
  border-color:rgba(255,255,255,0.9) !important;
  transform:translateY(-3px) !important;
  box-shadow:0 12px 34px rgba(0,0,0,0.30) !important;
}
#page-home .home-about .ha-icon-box{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:46px !important;
  height:46px !important;
  min-width:46px !important;
  flex-shrink:0 !important;
  padding:0 !important;
  margin:0 !important;
  background:#e8f4fb !important;
  border:1px solid #bfe1f3 !important;
  border-radius:10px !important;
  color:#1a6c9c !important;
  box-shadow:none !important;
  transform:none !important;
  transition:background .3s ease, border-color .3s ease !important;
}
#page-home .home-about .ha-icon-item:hover .ha-icon-box{
  background:#d7ecf8 !important;
  border-color:#8fcbe8 !important;
  box-shadow:none !important;
  transform:none !important;
}
#page-home .home-about .ha-icon-box svg{
  width:24px !important;
  height:24px !important;
  stroke:#1a6c9c !important;
  color:#1a6c9c !important;
  filter:none !important;
}
#page-home .home-about .ha-icon-item:hover .ha-icon-box svg{
  filter:none !important;
}
#page-home .home-about .ha-icon-item p{
  font-family:'Noto Sans JP',sans-serif !important;
  font-size:15px !important;
  font-weight:700 !important;
  color:#0f1e38 !important;
  line-height:1.4 !important;
  margin:0 !important;
  flex:1 !important;
  text-align:left !important;
}
#page-home .home-about .ha-icon-sub{
  display:block !important;
  font-family:'Noto Sans JP',sans-serif !important;
  font-size:12.5px !important;
  font-weight:400 !important;
  color:#5d6a7a !important;
  margin-top:4px !important;
  letter-spacing:0.02em !important;
}
/* タブレット: 2列 */
@media(max-width:1024px){
  #page-home .home-about .ha-icons{
    grid-template-columns:repeat(2, 1fr) !important;
  }
}
/* モバイル: 1列 */
@media(max-width:768px){
  #page-home .home-about .ha-icons{
    grid-template-columns:1fr !important;
    gap:12px !important;
    margin:32px 0 0 0 !important;
  }
  #page-home .home-about .ha-icon-item{
    padding:16px 16px !important;
    gap:14px !important;
  }
  #page-home .home-about .ha-icon-box{
    width:42px !important;
    height:42px !important;
    min-width:42px !important;
  }
  #page-home .home-about .ha-icon-box svg{
    width:22px !important;
    height:22px !important;
  }
  #page-home .home-about .ha-icon-item p{
    font-size:14.5px !important;
  }
  #page-home .home-about .ha-icon-sub{
    font-size:12px !important;
  }
}

/* ===== ha-light-aurora-glass-v365 ===== */
/* ═══ About セクション全体を「うっすら白」基調へ v365 ═══
   背景：淡いブルーホワイトのオーロラ
   カード：うっすら白いガラス
   文字：濃紺（背景が明るいため反転）
   ═══════════════════════════════════════════════ */

/* ── 背景を白系オーロラに ── */
#page-home .home-about{
  background:#eaf2f9 !important;
  position:relative !important;
  overflow:hidden !important;
}
#page-home .home-about::before{
  content:"" !important;
  position:absolute !important;
  top:-20% !important; left:-20% !important;
  width:80% !important; height:120% !important;
  background:radial-gradient(circle, rgba(120,190,235,0.55) 0%, transparent 60%) !important;
  filter:blur(80px) !important;
  z-index:0 !important;
  opacity:1 !important;
}
#page-home .home-about::after{
  content:"" !important;
  position:absolute !important;
  bottom:-30% !important; right:-15% !important;
  width:80% !important; height:110% !important;
  background:radial-gradient(circle, rgba(255,255,255,0.9) 0%, transparent 62%) !important;
  filter:blur(90px) !important;
  z-index:0 !important;
  opacity:1 !important;
}
@media (max-width:768px){
  #page-home .home-about{ background:#eaf2f9 !important; }
  #page-home .home-about::before{
    top:-15% !important; left:-20% !important;
    width:100% !important; height:80% !important;
    background:radial-gradient(circle, rgba(120,190,235,0.6) 0%, transparent 60%) !important;
    filter:blur(50px) !important;
  }
  #page-home .home-about::after{
    bottom:-15% !important; right:-20% !important;
    width:100% !important; height:80% !important;
    background:radial-gradient(circle, rgba(255,255,255,0.95) 0%, transparent 62%) !important;
    filter:blur(60px) !important;
  }
}

/* ── テキストを濃色に反転 ── */
#page-home .home-about .en,
#page-home .home-about .ha-en{
  color:#1a6c9c !important;
}
#page-home .home-about h2.ttl.ha-ttl,
#page-home .home-about .ha-ttl{
  color:#0f1e38 !important;
}
#page-home .home-about p.desc.ha-desc,
#page-home .home-about .ha-desc{
  color:#42525f !important;
}

/* ── カード：うっすら白いガラス ── */
#page-home .home-about .ha-icons{
  display:grid !important;
  grid-template-columns:repeat(3, 1fr) !important;
  gap:14px !important;
  max-width:960px !important;
  margin:44px auto 0 auto !important;
  border:none !important;
  background:transparent !important;
  padding:0 !important;
}
#page-home .home-about .ha-icon-item{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  gap:16px !important;
  padding:20px 18px !important;
  background:rgba(255,255,255,0.55) !important;
  border:1px solid rgba(255,255,255,0.85) !important;
  border-radius:12px !important;
  backdrop-filter:blur(16px) !important;
  -webkit-backdrop-filter:blur(16px) !important;
  box-shadow:0 6px 22px rgba(20,60,100,0.10), inset 0 1px 0 rgba(255,255,255,0.7) !important;
  transition:background .3s ease, transform .3s ease, box-shadow .3s ease !important;
  text-align:left !important;
}
#page-home .home-about .ha-icon-item:hover{
  background:rgba(255,255,255,0.8) !important;
  transform:translateY(-3px) !important;
  box-shadow:0 12px 30px rgba(20,60,100,0.16), inset 0 1px 0 rgba(255,255,255,0.8) !important;
}
#page-home .home-about .ha-icon-box{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:46px !important; height:46px !important; min-width:46px !important;
  flex-shrink:0 !important;
  padding:0 !important; margin:0 !important;
  background:rgba(255,255,255,0.75) !important;
  border:1px solid rgba(26,108,156,0.28) !important;
  border-radius:10px !important;
  color:#1a6c9c !important;
  box-shadow:none !important;
  transform:none !important;
  transition:background .3s ease, border-color .3s ease !important;
}
#page-home .home-about .ha-icon-item:hover .ha-icon-box{
  background:#ffffff !important;
  border-color:rgba(26,108,156,0.5) !important;
  box-shadow:none !important;
  transform:none !important;
}
#page-home .home-about .ha-icon-box svg{
  width:24px !important; height:24px !important;
  stroke:#1a6c9c !important;
  color:#1a6c9c !important;
  filter:none !important;
}
#page-home .home-about .ha-icon-item:hover .ha-icon-box svg{ filter:none !important; }
#page-home .home-about .ha-icon-item p{
  font-family:'Noto Sans JP',sans-serif !important;
  font-size:15px !important;
  font-weight:700 !important;
  color:#0f1e38 !important;
  line-height:1.4 !important;
  margin:0 !important;
  flex:1 !important;
  text-align:left !important;
}
#page-home .home-about .ha-icon-sub{
  display:block !important;
  font-family:'Noto Sans JP',sans-serif !important;
  font-size:12.5px !important;
  font-weight:400 !important;
  color:#5d6a7a !important;
  margin-top:4px !important;
  letter-spacing:0.02em !important;
}
@media(max-width:1024px){
  #page-home .home-about .ha-icons{ grid-template-columns:repeat(2, 1fr) !important; }
}
@media(max-width:768px){
  #page-home .home-about .ha-icons{
    grid-template-columns:1fr !important;
    gap:12px !important;
    margin:32px 0 0 0 !important;
  }
  #page-home .home-about .ha-icon-item{ padding:16px !important; gap:14px !important; }
  #page-home .home-about .ha-icon-box{ width:42px !important; height:42px !important; min-width:42px !important; }
  #page-home .home-about .ha-icon-box svg{ width:22px !important; height:22px !important; }
  #page-home .home-about .ha-icon-item p{ font-size:14.5px !important; }
  #page-home .home-about .ha-icon-sub{ font-size:12px !important; }
}

/* ── ボタン（明るい背景でも視認性を確保） ── */
#page-home .home-about a.bp{
  background:#1a6c9c !important;
  color:#ffffff !important;
  border-color:#1a6c9c !important;
}
#page-home .home-about a.bp:hover{
  background:#0f1e38 !important;
  color:#ffffff !important;
  border-color:#0f1e38 !important;
}

/* ===== footer-unify-v367 ===== */
/* ═══ フッター統一・可読性修正 v367 ═══
   ・トップ(.f*)と下層(.footer-*)の二重クラスを同一の見た目に揃える
   ・コピーライト／PAGE TOP の色を可読レベルへ(2.35:1 → 5.5:1)
   ・PAGE TOP の文字サイズ差(9px / 20px)を11pxに統一
   ・下段の区切り線の有無を統一
   ═══════════════════════════════════════════ */

/* ── 下段：区切り線とレイアウトを統一 ── */
.footer .fbtm,
.footer .footer-bottom{
  border-top:1px solid #e0e8f0 !important;
  padding:22px 0 48px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:14px !important;
  flex-direction:column !important;
  text-align:center !important;
}

/* ── コピーライト：色を可読レベルへ ── */
.footer .fcopy,
.footer .footer-copy{
  color:#4d6c88 !important;
  font-family:var(--eng) !important;
  font-size:12px !important;
  font-weight:400 !important;
  letter-spacing:.1em !important;
  margin:0 !important;
}

/* ── PAGE TOP：サイズ統一＋色を可読レベルへ ── */
.footer .fptop,
.footer .footer-ptop{
  color:#4d6c88 !important;
  font-family:var(--eng) !important;
  font-size:11px !important;
  font-weight:700 !important;
  letter-spacing:.18em !important;
  cursor:pointer !important;
  text-transform:uppercase !important;
  display:inline-flex !important;
  align-items:center !important;
  gap:6px !important;
  transition:color .2s !important;
}
.footer .fptop:hover,
.footer .footer-ptop:hover{
  color:var(--blue) !important;
}

/* ── ナビ・SNS：トップと下層で色を統一 ── */
.footer .fnav a,
.footer .footer-nav a{
  color:#2a3a50 !important;
}
.footer .fnav a:hover,
.footer .footer-nav a:hover{
  color:var(--blue) !important;
}
.footer .fsocial a,
.footer .footer-social a{
  color:#2a3a50 !important;
  border-color:#c0d4e8 !important;
}
.footer .fsocial a:hover,
.footer .footer-social a:hover{
  color:var(--blue) !important;
  border-color:var(--blue) !important;
}

/* ── 上段：グリッドを統一 ── */
.footer .ftop,
.footer .footer-top{
  display:grid !important;
  grid-template-columns:minmax(280px,1.3fr) 1fr 1fr !important;
  gap:48px !important;
  padding-bottom:48px !important;
  border-bottom:1px solid #e0e8f0 !important;
}

@media(max-width:768px){
  .footer .ftop,
  .footer .footer-top{
    grid-template-columns:1fr !important;
    gap:26px !important;
    padding-bottom:26px !important;
  }
  .footer .fbtm,
  .footer .footer-bottom{
    padding:18px 0 32px !important;
    gap:12px !important;
  }
  .footer .fcopy,
  .footer .footer-copy{ font-size:11px !important; }
  .footer .fptop,
  .footer .footer-ptop{ font-size:11px !important; }
}

/* ===== brand-gradient-entry-exit-v368 ===== */
/* ═══════════════════════════════════════════════════
   ブランドグラデーション v368
   入口＝下層ページのヒーロー / 出口＝CTAバンド の2箇所のみ
   Aboutセクションと同系統の淡いオーロラで統一
   ═══════════════════════════════════════════════════ */

/* ── 共通ベース：対象8箇所 ── */
#page-home .ctab,
#page-inspection .ip-final-cta,
#page-aerial .ap-cta,
#page-event .ev-cta-box,
#page-company .co-hero-top,
#page-faq .fq-hero,
#page-works .wk-hero,
#page-news .nw-hero{
  position:relative !important;
  overflow:hidden !important;
  isolation:isolate !important;
}

/* ── 光1：青（左上） ── */
#page-home .ctab::before,
#page-inspection .ip-final-cta::before,
#page-aerial .ap-cta::before,
#page-event .ev-cta-box::before,
#page-company .co-hero-top::before,
#page-faq .fq-hero::before,
#page-works .wk-hero::before,
#page-news .nw-hero::before{
  content:"" !important;
  position:absolute !important;
  top:-40% !important;
  left:-15% !important;
  width:70% !important;
  height:180% !important;
  background:radial-gradient(circle, rgba(120,190,235,0.42) 0%, transparent 62%) !important;
  filter:blur(70px) !important;
  pointer-events:none !important;
  z-index:0 !important;
}

/* ── 光2：白（右下） ── */
#page-home .ctab::after,
#page-inspection .ip-final-cta::after,
#page-aerial .ap-cta::after,
#page-event .ev-cta-box::after,
#page-company .co-hero-top::after,
#page-faq .fq-hero::after,
#page-works .wk-hero::after,
#page-news .nw-hero::after{
  content:"" !important;
  position:absolute !important;
  bottom:-50% !important;
  right:-12% !important;
  width:66% !important;
  height:180% !important;
  background:radial-gradient(circle, rgba(255,255,255,0.92) 0%, transparent 64%) !important;
  filter:blur(75px) !important;
  pointer-events:none !important;
  z-index:0 !important;
}

/* ── 中身を必ず前面に ── */
#page-home .ctab > *,
#page-inspection .ip-final-cta > *,
#page-aerial .ap-cta > *,
#page-event .ev-cta-box > *,
#page-company .co-hero-top > *,
#page-faq .fq-hero > *,
#page-works .wk-hero > *,
#page-news .nw-hero > *{
  position:relative !important;
  z-index:1 !important;
}

/* ── ベース色（グラデが乗る土台） ── */
#page-home .ctab{ background:#e9f1f9 !important; }
#page-inspection .ip-final-cta{ background:#eaf2f9 !important; }
#page-aerial .ap-cta{ background:#eaf2f9 !important; }
#page-event .ev-cta-box{ background:#eef4fa !important; }
#page-company .co-hero-top,
#page-faq .fq-hero,
#page-works .wk-hero,
#page-news .nw-hero{ background:#eaf2f9 !important; }

/* ── CTAバンドだけ、ゆっくり動かす（行動を促す場所なので） ── */
@keyframes nexoraCtaDrift{
  0%,100%{ transform:translate(0,0) scale(1); }
  50%{ transform:translate(18%,10%) scale(1.14); }
}
#page-home .ctab::before,
#page-inspection .ip-final-cta::before,
#page-aerial .ap-cta::before,
#page-event .ev-cta-box::before{
  animation:nexoraCtaDrift 18s ease-in-out infinite !important;
}

/* ── ヒーローは静止（読ませる場所なので動かさない） ── */
#page-company .co-hero-top::before,
#page-faq .fq-hero::before,
#page-works .wk-hero::before,
#page-news .nw-hero::before{
  animation:none !important;
}

/* ── モバイル：ぼかしを軽くして描画負荷を下げる ── */
@media (max-width:768px){
  #page-home .ctab::before,
  #page-inspection .ip-final-cta::before,
  #page-aerial .ap-cta::before,
  #page-event .ev-cta-box::before,
  #page-company .co-hero-top::before,
  #page-faq .fq-hero::before,
  #page-works .wk-hero::before,
  #page-news .nw-hero::before{
    filter:blur(45px) !important;
    width:100% !important;
  }
  #page-home .ctab::after,
  #page-inspection .ip-final-cta::after,
  #page-aerial .ap-cta::after,
  #page-event .ev-cta-box::after,
  #page-company .co-hero-top::after,
  #page-faq .fq-hero::after,
  #page-works .wk-hero::after,
  #page-news .nw-hero::after{
    filter:blur(50px) !important;
    width:100% !important;
  }
}

/* ── モーション低減設定を尊重 ── */
@media (prefers-reduced-motion: reduce){
  #page-home .ctab::before,
  #page-inspection .ip-final-cta::before,
  #page-aerial .ap-cta::before,
  #page-event .ev-cta-box::before{
    animation:none !important;
  }
}

/* ===== aerial-cta-text-fix-v368 ===== */
/* ═══ 空撮ページ CTA：白文字→濃色（既存バグの修正） v368 ═══ */
#page-aerial .ap-cta .ap-cta-en{
  color:#1a6c9c !important;
}
#page-aerial .ap-cta .ap-cta-ttl{
  color:#0f1e38 !important;
}
#page-aerial .ap-cta .ap-cta-sub{
  color:#42525f !important;
}
/* 電話番号ボタン(白文字だった)を濃色ボーダーボタンに */
#page-aerial .ap-cta .ap-cta-btns .bs,
#page-aerial .ap-cta .ap-cta-btns a.bs{
  color:#0f1e38 !important;
  background:rgba(255,255,255,0.85) !important;
  border:1px solid rgba(15,30,56,0.28) !important;
}
#page-aerial .ap-cta .ap-cta-btns .bs:hover,
#page-aerial .ap-cta .ap-cta-btns a.bs:hover{
  color:#ffffff !important;
  background:#0f1e38 !important;
  border-color:#0f1e38 !important;
}

/* ===== home-stats-unify-v369 ===== */
/* ═══ 数字セクション：色とサイズを完全統一 v369 ═══
   単位(年/サービス/対応)が 15.6px グレーだったのを
   数字と同じ 26px 水色に揃える。¥マークの別色も統一。
   ═══════════════════════════════════════════════ */
#page-home .home-stats .co-stat-num,
#page-home .home-stats .co-stat-num span,
#page-home .home-stats .co-stat-num .yen-mark{
  font-size:26px !important;
  font-weight:600 !important;
  color:#41aadc !important;
  letter-spacing:.02em !important;
  line-height:1.3 !important;
  margin:0 !important;
}
/* 数字と単位の間に軽い間隔 */
#page-home .home-stats .co-stat-num span{
  margin-left:2px !important;
}
/* ¥マークは記号なので字形の都合だけ調整（サイズ・色は統一） */
#page-home .home-stats .co-stat-num .yen-mark{
  margin-right:1px !important;
}

@media(max-width:768px){
  #page-home .home-stats .co-stat-num,
  #page-home .home-stats .co-stat-num span,
  #page-home .home-stats .co-stat-num .yen-mark{
    font-size:21px !important;
  }
}

/* ===== home-stats-label-size-v370 ===== */
/* ═══ 数字セクション：ラベル文字を12px→14pxへ v370 ═══ */
#page-home .home-stats .co-stat-label{
  font-size:14px !important;
  font-weight:500 !important;
  letter-spacing:.08em !important;
  line-height:1.6 !important;
  color:#5d6a7a !important;
  margin-top:8px !important;
}
@media(max-width:768px){
  #page-home .home-stats .co-stat-label{
    font-size:13px !important;
    margin-top:6px !important;
  }
}

/* ===== HTMLから移動したインラインスタイル ===== */
.u-inline-01{cursor:pointer}
.u-inline-02{font-family:var(--sans);font-size:0.75em;font-weight:900}
.u-inline-03{margin-bottom:0}
.u-inline-04{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.u-inline-05{width:8%}
.u-inline-06{width:100%}
.u-inline-07{cursor:pointer;font-size:13px;padding:16px 40px}
.u-inline-08{margin-bottom:14px}
.u-inline-09{margin:0}
.u-inline-10{font-size:26px}
.u-inline-11{margin-left:8px}
.u-inline-12{cursor:pointer;justify-content:center}
.u-inline-13{justify-content:center}
.u-inline-14{opacity:0}
.u-inline-15{cursor:pointer;justify-content:center;width:100%}
.u-inline-16{margin-top:10px}
.u-inline-17{justify-content:center;width:100%;margin-top:10px}
.u-inline-18{font-size:clamp(16px,1.8vw,22px);margin-bottom:28px}

/* ===== WordPress integration ===== */
.admin-bar #nav{top:32px}
.wp-fallback{min-height:70vh;padding:150px 0 90px;background:var(--surface)}
.wp-fallback-card{max-width:840px;margin:0 auto;padding:48px;background:#fff;border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}
.wp-fallback-en{font-family:var(--eng);font-size:12px;font-weight:700;letter-spacing:.25em;color:var(--blue);text-transform:uppercase;margin-bottom:12px}
.wp-fallback-title{font-family:var(--sans);font-size:clamp(26px,4vw,42px);font-weight:800;color:var(--text);line-height:1.35;margin-bottom:24px}
.wp-fallback-copy,.wp-fallback-content{font-family:var(--sans);font-size:15px;color:var(--text2);line-height:2;margin-bottom:28px}
.wp-fallback-content > * + *{margin-top:1.25em}
@media(max-width:782px){.admin-bar #nav{top:46px}}
@media(max-width:768px){
  .wp-fallback{padding:110px 0 60px}
  .wp-fallback-card{padding:30px 22px}
}

/* ===== Mobile pricing and aerial contact layout (2026-09-14) ===== */
@media(max-width:1024px){
  /* Allow the single grid column and its contents to shrink to the card. */
  #page-aerial .ap-cta-inner{
    grid-template-columns:minmax(0,1fr);
  }
  #page-aerial .ap-cta-inner > div{
    min-width:0;
  }
  #page-aerial .ap-cta .ap-cta-ttl{
    white-space:normal;
    overflow-wrap:anywhere !important;
  }
  #page-aerial .ap-cta-btns > a{
    width:100%;
    min-width:0;
    max-width:100%;
    white-space:normal;
    text-align:center;
  }
}

@media(max-width:768px){
  /* Give each service name and price a full line on narrow screens. */
  #page-inspection .ip-price-table,
  #page-inspection .ip-price-table tbody,
  #page-inspection .ip-price-table tr{
    display:block;
    width:100%;
  }
  #page-inspection .ip-price-table tr{
    padding:18px 16px;
  }
  #page-inspection .ip-price-table th,
  #page-inspection .ip-price-table td:not(.ip-price-device){
    display:block;
    width:100%;
    padding:0;
    white-space:normal;
    line-height:1.6 !important;
  }
  #page-inspection .ip-price-table td:not(.ip-price-device){
    margin-top:10px;
  }
  #page-inspection .ip-price-badge{
    display:table;
    margin:8px 0 0;
    white-space:nowrap;
  }
  #page-inspection .ip-price-table td strong{
    font-size:22px;
    white-space:nowrap;
  }
  #page-inspection .ip-price-table td small{
    display:inline-block;
    white-space:nowrap;
  }
  #page-aerial .ap-cta .ap-cta-ttl{
    font-size:clamp(22px,5.4vw,26px) !important;
    line-height:1.5 !important;
    word-break:normal !important;
  }
  #page-aerial .ap-cta .ap-cta-sub{
    font-size:16px;
    line-height:1.85;
  }
  #page-aerial .ap-cta-btns > a{
    min-height:48px;
    padding:14px 16px;
  }
}

/* ===== Aerial contact buttons: keep each label on one line (2026-09-30) ===== */
#page-aerial .ap-cta-btns > a{
  white-space:nowrap;
  padding-inline:20px;
}
#page-aerial .ap-cta-btns > a svg{
  flex-shrink:0;
}
@media(min-width:1025px){
  #page-aerial .ap-cta-inner{
    grid-template-columns:minmax(0,1fr) 180px;
    column-gap:24px;
    padding-inline:40px;
  }
  #page-aerial .ap-cta-inner > div{
    min-width:0;
  }
  #page-aerial .ap-cta .ap-cta-ttl{
    white-space:normal;
    overflow-wrap:anywhere;
    text-wrap:balance;
  }
}

/* ===== NEXORA existing subpage photos 2026-10-01 ===== */
.nexora-content-photo{display:block;width:100%;height:100%;object-fit:cover;}
.ip-example-img,.ip-feature-img,.ip-ir-img,.wk-card-img,.wd-img{position:relative;overflow:hidden;}
.ip-example-img > .nexora-content-photo,
.ip-feature-img > .nexora-content-photo,
.ip-ir-img > .nexora-content-photo,
.wk-card-img > .nexora-content-photo,
.wd-img > .nexora-content-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
img.ap-item-bg.nexora-content-photo{width:100%;height:100%;object-fit:cover;}
.ev-menu-photo{display:block;width:100%;aspect-ratio:16/8;object-fit:cover;transition:filter .3s;}
.ev-menu-card:hover .ev-menu-photo{filter:brightness(.9);}
.nw-card-photo{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;}
.nexora-photo-note{font-family:var(--sans);font-size:12px;line-height:1.8;color:var(--text2);margin:12px 0 20px;}
