/* ══ Reset ══════════════════════════════════════════════ */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html,body{margin:0;padding:0}
html{scroll-behavior:smooth}
html{background:#eef4f9}
body{font-family:'Noto Sans JP',sans-serif;color:#0a1929;background:#eef4f9;overflow-x:hidden}
a{text-decoration:none;color:inherit}
img{display:block;width:100%;height:100%;object-fit:cover}

/* ══ Variables ══════════════════════════════════════════ */
:root{
  --blue:#1d5e8d;
  --blue-deep:#143f5f;
  --blue-mid:#2c7fb8;
  --green:#2c7fb8;
  --green-deep:#1d5e8d;
  --green-light:#e6f1f9;
  --navy:#0a1a2e;
  --navy2:#0e2240;
  --white:#ffffff;
  --off:#f7f7f7;
  --gray:#f0f4f8;
  --border:#dce4ef;
  --text:#252525;
  --muted:#5a7a96;
  --shadow-sm:0 2px 12px rgba(10,25,60,.06);
  --shadow-md:0 8px 32px rgba(10,25,60,.10);
  --shadow-lg:0 20px 60px rgba(10,25,60,.14);
}

/* ══ FadeIn ═════════════════════════════════════════════ */
.fi{opacity:0;transform:translateY(36px);transition:opacity .8s cubic-bezier(.22,1,.36,1),transform .8s cubic-bezier(.22,1,.36,1)}
.fi.fl{transform:translateX(-36px)}
.fi.fr{transform:translateX(36px)}
.fi.vis{opacity:1;transform:translate(0,0)}
.fi.d1{transition-delay:.1s}.fi.d2{transition-delay:.2s}.fi.d3{transition-delay:.3s}
.fi.d4{transition-delay:.4s}.fi.d5{transition-delay:.5s}

/* ══ Layout ═════════════════════════════════════════════ */
.wrap{max-width:1200px;margin:0 auto;padding:0 48px}
@media(max-width:768px){.wrap{padding:0 20px}}

/* ══ SecLabel ═══════════════════════════════════════════ */
.sl{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.sl::before{content:'';display:block;width:32px;height:1.5px;background:var(--green);flex-shrink:0}
.sl span{font-family:'DM Sans',sans-serif;font-size:10px;letter-spacing:.26em;color:var(--green);font-weight:700;text-transform:uppercase}

/* ══ Arrow SVG ══════════════════════════════════════════ */
.arr{display:inline-block;transition:transform .3s cubic-bezier(.22,1,.36,1)}

/* ══════════════════════════════════════════════════════ */
/* HEADER (全ページ共通)                                    */
/* ══════════════════════════════════════════════════════ */
#hd{
  position:fixed;top:0;left:0;right:0;z-index:200;
  transition:background .5s,box-shadow .5s,backdrop-filter .5s;
}
.hd-inner{max-width:1200px;margin:0 auto;padding:0 48px;height:72px;display:flex;align-items:center;justify-content:space-between}
@media(max-width:768px){.hd-inner{padding:0 20px}}

/* デフォルト：透過＋白文字（ダークなページヒーロー上で使用） */
.logo{display:inline-flex;align-items:center;height:44px}
.logo img{height:100%;width:auto;display:block;object-fit:contain;transition:filter .4s}
.logo .logo-txt{
  display:inline-flex;align-items:center;align-self:stretch;
  margin-left:14px;padding-left:14px;
  border-left:1px solid rgba(10,26,46,.18);
  font-family:'DM Sans',sans-serif;font-weight:500;font-size:17px;
  letter-spacing:.02em;color:var(--navy);line-height:1;
  transition:color .4s,border-color .4s;
}
.nav{display:flex;gap:36px;align-items:center;list-style:none}
.nav a{font-family:'Noto Sans JP',sans-serif;font-size:12px;letter-spacing:.04em;color:rgba(255,255,255,.75);transition:color .25s}
.nav a:hover{color:var(--green)!important}

/* スクロール時：白背景＋ナビ文字 */
#hd.on{
  background:rgba(255,255,255,.95);
  box-shadow:0 1px 0 rgba(0,0,0,.07);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
}
#hd.on .nav a{color:var(--muted)}

/* CONTACTボタン */
.nav a.nav-cta{
  display:inline-flex;align-items:center;
  font-family:'DM Sans',sans-serif;font-size:11px;font-weight:700;letter-spacing:.12em;
  padding:10px 24px;border-radius:2px;
  border:1.5px solid var(--green);color:var(--green)!important;
  position:relative;overflow:hidden;transition:color .3s!important;
}
.nav a.nav-cta::before{
  content:'';position:absolute;inset:0;background:var(--green);
  transform:translateX(-101%);transition:transform .35s cubic-bezier(.22,1,.36,1);
}
.nav a.nav-cta:hover{color:#fff!important}
.nav a.nav-cta:hover::before{transform:translateX(0)}
.nav a.nav-cta span{position:relative;z-index:1}

/* ハンバーガー */
.hbg{display:none;flex-direction:column;gap:6px;padding:4px;background:none;border:none;cursor:pointer}
.hbg i{display:block;width:24px;height:1.5px;background:#fff;transition:transform .35s,opacity .35s,background .4s}
#hd.on .hbg i{background:var(--navy)}
.hbg.op i:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.hbg.op i:nth-child(2){opacity:0}
.hbg.op i:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
#mnav{display:none;background:#fff;border-top:1px solid var(--border);padding:8px 20px 24px}
#mnav a{display:block;padding:15px 0;border-bottom:1px solid var(--border);font-family:'Noto Sans JP',sans-serif;font-size:13px;color:var(--text)}
@media(max-width:900px){.nav{display:none}.hbg{display:flex}}

/* トップページ用：ライトなヒーロー上で使うため、初期状態をネイビー文字に上書き */
.page-top .nav a{color:var(--muted)}
.page-top .hbg i{background:var(--navy)}
.page-top #hd.on{background:#ffffff;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:0 1px 0 rgba(0,0,0,.08)}

/* ══════════════════════════════════════════════════════ */
/* PAGE HERO (下層ページ共通)                              */
/* ══════════════════════════════════════════════════════ */
#page-hero{
  min-height:52vh;background:var(--navy);
  display:flex;align-items:flex-end;
  position:relative;overflow:hidden;
  padding:140px 48px 72px;
}
@media(max-width:768px){#page-hero{padding:120px 20px 52px;min-height:44vh}}
.page-hero-bg{
  position:absolute;inset:0;
  background:
    radial-gradient(circle at 78% 20%,rgba(44,127,184,.18),transparent 34%),
    linear-gradient(135deg,var(--navy) 0%,var(--navy2) 58%,#071422 100%);
  opacity:1;z-index:0;
}
#page-hero::before{
  content:'';position:absolute;inset:0;z-index:1;
  background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);
  background-size:72px 72px;
}
#page-hero::after{
  content:'';position:absolute;z-index:1;
  top:0;right:0;width:55%;height:100%;
  background:linear-gradient(135deg,transparent 40%,rgba(44,127,184,.05) 100%);
  clip-path:polygon(20% 0,100% 0,100% 100%,0 100%);
}
.ph-ring{position:absolute;border-radius:50%;border:1px solid rgba(44,127,184,.12);pointer-events:none}
.ph-ring:nth-child(1){width:600px;height:600px;top:-30%;right:-8%;z-index:1}
.ph-ring:nth-child(2){width:380px;height:380px;top:-10%;right:4%;border-color:rgba(44,127,184,.08);z-index:1}
.ph-ring:nth-child(3){width:200px;height:200px;bottom:8%;left:-3%;border-color:rgba(29,94,141,.16);z-index:1}
.page-hero-c{max-width:1200px;margin:0 auto;width:100%;position:relative;z-index:2}
.ph-eyebrow{
  font-family:'DM Sans',sans-serif;font-size:10px;font-weight:500;letter-spacing:.28em;
  color:var(--green);display:flex;align-items:center;gap:14px;margin-bottom:20px;
  animation:fuUp .9s cubic-bezier(.22,1,.36,1) both;
}
.ph-eyebrow::before{content:'';display:block;width:28px;height:1.5px;background:var(--green)}
.ph-h1{
  font-family:'DM Sans',sans-serif;font-weight:800;
  font-size:clamp(36px,6vw,80px);
  color:#fff;line-height:1;letter-spacing:-.02em;margin-bottom:10px;
  animation:fuUp .9s cubic-bezier(.22,1,.36,1) .1s both;
}
.ph-sub{
  font-family:'Noto Sans JP',sans-serif;font-size:13px;font-weight:300;
  color:rgba(255,255,255,.35);letter-spacing:.04em;
  animation:fuUp .9s cubic-bezier(.22,1,.36,1) .2s both;
}
.breadcrumb{
  display:flex;align-items:center;gap:8px;margin-top:28px;
  font-family:'DM Sans',sans-serif;font-size:10px;letter-spacing:.12em;
  color:rgba(255,255,255,.3);
  animation:fuUp .9s cubic-bezier(.22,1,.36,1) .3s both;
}
.breadcrumb a{color:rgba(255,255,255,.3);transition:color .25s}
.breadcrumb a:hover{color:var(--green)}
.breadcrumb-sep{opacity:.4}

/* ══════════════════════════════════════════════════════ */
/* FOOTER (全ページ共通)                                    */
/* ══════════════════════════════════════════════════════ */
footer{
  background:
    radial-gradient(circle at 82% 10%,rgba(44,127,184,.22),transparent 34%),
    linear-gradient(135deg,var(--navy) 0%,var(--navy2) 58%,#071422 100%);
  padding:60px 0 32px;
  border-top:1px solid rgba(44,127,184,.18);
  position:relative;
  overflow:hidden;
}
footer::before{
  content:'';
  position:absolute;
  inset:0 0 auto auto;
  width:min(70vw,1180px);
  height:280px;
  background:
    linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
  background-size:64px 64px;
  background-position:top right;
  mask-image:linear-gradient(180deg,#000 0%,transparent 100%);
  -webkit-mask-image:linear-gradient(180deg,#000 0%,transparent 100%);
  pointer-events:none;
}
.ft-inner{max-width:1200px;margin:0 auto;padding:0 48px;position:relative;z-index:1}
@media(max-width:768px){.ft-inner{padding:0 20px}}
.ft-top{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:36px;padding-bottom:44px;border-bottom:1px solid rgba(255,255,255,.07);margin-bottom:28px}
.ft-logo{display:inline-flex;align-items:center;height:60px;margin-bottom:30px}
.ft-logo img{height:100%;width:auto;display:block;object-fit:contain}
.ft-logo .logo-txt{
  display:inline-flex;align-items:center;align-self:stretch;
  margin-left:14px;padding-left:14px;
  border-left:1px solid rgba(255,255,255,.18);
  font-family:'DM Sans',sans-serif;font-weight:500;font-size:16px;
  letter-spacing:.02em;color:#fff;line-height:1;
}
.ft-addr{
  font-family:'Noto Sans JP',sans-serif;font-size:11px;color:#fff;line-height:2.1;
  max-width:420px;
}
.ft-links{display:flex;gap:28px;flex-wrap:wrap;list-style:none;align-items:center}
.ft-links a{font-family:'Noto Sans JP',sans-serif;font-size:11px;color:#fff;transition:color .25s}
.ft-links a:hover{color:var(--green)}
.ft-copy{font-family:'DM Sans',sans-serif;font-size:10px;color:#fff;letter-spacing:.08em;text-align:center}

/* ══ Keyframes ══════════════════════════════════════════ */
@keyframes fuUp{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}
