/* ========== ANSHIN MAP — COMMON CSS ========== */
/* Loaded by all pages (index.html + subpages). */

/* ========== RESET & VARS ========== */
*{margin:0;padding:0;box-sizing:border-box}
:root{
  --primary:#12766E;--primary-light:#1a9e93;--primary-dark:#0e5d57;
  --primary-bg:rgba(18,118,110,.06);--primary-bg2:rgba(18,118,110,.12);
  --white:#fff;--g50:#f8fafa;--g100:#f0f3f3;--g200:#e2e8e7;--g300:#c5d0cf;
  --g400:#8fa3a0;--g500:#6b817e;--g600:#4a5c5a;--g700:#344140;--g800:#1e2a29;
  --dk:#060a11;--dk1:#0c1219;--dk2:#121c28;--dk3:#1a2840;
  --dkb:#1f3050;--dkbl:#2a4068;--dt1:#e4ecf8;--dt2:#8fa0c4;--dt3:#5a7098;
  --red:#ef4444;--blue:#3b82f6;--teal:#14b8a6;--amber:#f59e0b;--green:#22c55e;--purple:#a78bfa;
  --font:'Noto Sans JP','Hiragino Kaku Gothic ProN',sans-serif;
  --fen:'DM Sans','Noto Sans JP',sans-serif;
}
html{scroll-behavior:smooth;overflow-x:hidden}
body{font-family:var(--font);line-height:1.75;-webkit-font-smoothing:antialiased;background:var(--white);color:var(--g800);overflow-x:hidden}
.container{max-width:1100px;margin:0 auto;padding:0 20px}
.en{font-family:var(--fen)}
img{max-width:100%;height:auto}

/* ========== ANIMATIONS (shared) ========== */
@keyframes pulse{0%,100%{opacity:.4}50%{opacity:.9}}
.an{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease}
.an.v{opacity:1;transform:translateY(0)}
.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:200;background:rgba(255,255,255,.9);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--g200);transition:background .3s,border-color .3s}
nav.dk{background:rgba(6,10,17,.9);border-color:var(--dkb)}
nav .inner{padding:0 16px;height:52px;display:flex;align-items:center;justify-content:space-between;max-width:1100px;margin:0 auto}
.logo{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--g800)}
nav.dk .logo{color:var(--dt1)}
.logo-ic{width:30px;height:30px;border-radius:7px;background:var(--primary);display:flex;align-items:center;justify-content:center}
.logo-ic svg{width:16px;height:16px}
.logo-t{font-weight:600;font-size:14px;letter-spacing:-.2px}
.logo-s{font-size:9px;color:var(--g400);margin-top:-1px}
nav.dk .logo-s{color:var(--dt3)}
.nav-r{display:flex;align-items:center;gap:8px}
.nav-r a.nl{display:none;color:var(--g500);text-decoration:none;font-size:12px}
nav.dk .nav-r a.nl{color:var(--dt3)}
.nav-cta{padding:6px 14px;border-radius:7px;background:var(--primary);color:#fff!important;font-size:11px;font-weight:600;text-decoration:none;white-space:nowrap}

/* ========== BUTTONS ========== */
.btn-p{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:14px 24px;border-radius:12px;background:var(--primary);color:#fff;font-size:15px;font-weight:600;text-decoration:none;border:none;cursor:pointer;font-family:inherit;width:100%;transition:background .2s}
.btn-p:hover{background:var(--primary-dark)}
.btn-s{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:14px 24px;border-radius:12px;background:transparent;border:1px solid var(--g300);color:var(--g600);font-size:15px;font-weight:500;text-decoration:none;cursor:pointer;font-family:inherit;width:100%;transition:all .2s}
.btn-s:hover{border-color:var(--primary);color:var(--primary)}
.btn-pd{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:14px 24px;border-radius:12px;background:var(--primary);color:#fff;font-size:15px;font-weight:600;text-decoration:none;width:100%}
.btn-sd{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:14px 24px;border-radius:12px;background:transparent;border:1px solid var(--dkbl);color:var(--dt2);font-size:15px;font-weight:500;text-decoration:none;width:100%}

/* ========== FOOTER BASE ========== */
footer{background:var(--dk);border-top:1px solid var(--dkb);padding:0}

/* ========== FOOTER GRID ========== */
.footer-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:32px;
  padding:52px 0 0;
}
.footer-col{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.footer-logo{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:6px;
}
.footer-logo .logo-ic{
  width:34px;height:34px;border-radius:8px;background:#12766E;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.footer-logo .logo-ic svg{width:18px;height:18px}
.footer-logo-t{font-weight:600;font-size:15px;color:#e4ecf8}
.footer-logo-s{font-size:10px;color:#5a7098;font-family:'DM Sans','Noto Sans JP',sans-serif}
.footer-desc{font-size:13px;color:#8fa0c4;line-height:1.7}
.footer-h{
  font-size:11px;font-weight:600;color:#e4ecf8;
  letter-spacing:.8px;text-transform:uppercase;margin-bottom:6px;
}
.footer-col a{
  font-size:14px;color:#8fa0c4;text-decoration:none;
  transition:color .15s;line-height:2;
}
.footer-col a:hover{color:#1a9e93}
.footer-bottom{
  border-top:1px solid #1f3050;
  padding:20px 0;
  display:flex;
  flex-direction:column;
  gap:4px;
  align-items:center;
  text-align:center;
}
.footer-bottom p{font-size:12px;color:#5a7098}
.footer-legal{font-size:12px;color:#5a7098}

/* ========== DESKTOP ========== */
@media(min-width:769px){
  .container{padding:0 24px}
  nav .inner{height:58px;padding:0 24px}
  .nav-r a.nl{display:inline}
  .nav-r{gap:24px}
  .btn-p,.btn-s,.btn-pd,.btn-sd{width:auto;padding:12px 28px;font-size:14px}
  .footer-grid{grid-template-columns:1.5fr 1fr 1fr 1fr;gap:40px}
  .footer-bottom{flex-direction:row;justify-content:space-between;text-align:left}
}
