/* Shared header and footer foundation, matched to the corporate hub. */

/* ===== Design Tokens ===== */
:root{
  --blue:#1a6fb5;--blue-dark:#145a9a;--blue-mid:#2589d4;
  --blue-soft:#e8f2fb;--blue-line:#b8d8f5;
  --gray:#e9ecea;--gray-soft:#f4f6f8;--gray-line:#dde2e8;
  --white:#ffffff;--ink:#1c2832;--ink-mid:#4a5560;--ink-sub:#8a96a0;
  --radius:4px;
  --green:#1e9c33;--green-dark:#168a2a;--green-soft:#e7f5ea;--green-line:#c8e8d0;
  --orange:#e37b1c;--orange-dark:#b35f12;--orange-soft:#fdf3e8;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;color:var(--ink);background:var(--white);line-height:1.9;font-size:16px;font-weight:400;-webkit-font-smoothing:antialiased;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
.container{max-width:1160px;margin:0 auto;padding:0 40px;}
.section{padding:110px 0;}
.section-alt{background:var(--gray-soft);}
.section-dark{background:var(--ink);color:#fff;}
/* ===== Topbar ===== */
.topbar{background:var(--blue);color:#fff;font-size:13.5px;padding:9px 0;letter-spacing:.06em;}
.topbar .row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;}
.topbar .badges{display:flex;gap:24px;flex-wrap:wrap;}
.topbar .badge-item{display:flex;align-items:center;gap:8px;font-weight:500;}
.topbar .badge-item::before{content:"";width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,.7);flex-shrink:0;}
/* ===== Header ===== */
.site-header{background:#fff;border-bottom:1px solid var(--gray-line);position:sticky;top:0;z-index:200;box-shadow:0 2px 16px rgba(0,0,0,.06);}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:14px 0;}
.brand{display:flex;align-items:center;gap:14px;}
.brand-logo-img{width:60px;height:60px;flex-shrink:0;object-fit:contain;border-radius:var(--radius);display:block;}
.brand-name{font-weight:700;font-size:15.5px;line-height:1.45;letter-spacing:.04em;}
.brand-name small{display:block;font-size:12px;color:var(--ink-sub);font-weight:500;letter-spacing:.14em;}
.head-right{display:flex;align-items:center;gap:28px;}
.head-tel{text-align:right;line-height:1.4;}
.head-tel small{display:block;font-size:12px;color:var(--ink-sub);letter-spacing:.06em;}
.head-tel a{font-family:"Montserrat",sans-serif;font-weight:700;font-size:24px;color:var(--ink);display:block;margin-top:4px;letter-spacing:.02em;line-height:1;transition:color .2s;}
.head-tel a:hover{color:var(--blue);}
.ham{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:8px;background:none;border:none;}
.ham span{display:block;width:22px;height:2px;background:var(--ink);border-radius:2px;transition:all .25s;}
/* ===== Site Nav ===== */
.site-nav{display:flex;align-items:center;gap:2px;}
.site-nav>a,.nav-item>button{font-size:13.5px;font-weight:600;color:var(--ink-mid);padding:8px 13px;border-radius:var(--radius);transition:all .2s;letter-spacing:.04em;white-space:nowrap;border:none;background:none;cursor:pointer;display:flex;align-items:center;gap:4px;}
.site-nav>a:hover,.nav-item>button:hover{color:var(--blue);background:var(--blue-soft);}
.site-nav .nav-cta{background:var(--blue);color:#fff !important;margin-left:6px;padding:8px 16px;border-radius:var(--radius);}
.site-nav .nav-cta:hover{background:var(--blue-dark) !important;}
/* Dropdown */
.nav-item{position:relative;}
.nav-item>button svg{width:11px;height:11px;transition:transform .2s;}
.nav-item.open>button svg{transform:rotate(180deg);}
.nav-item.open>button{color:var(--blue);background:var(--blue-soft);}
.nav-dropdown{position:absolute;top:calc(100% + 8px);left:0;min-width:320px;background:#fff;border:1px solid var(--gray-line);border-radius:var(--radius);box-shadow:0 8px 32px rgba(0,0,0,.1);padding:6px;z-index:300;opacity:0;pointer-events:none;transform:translateY(-6px);transition:all .18s;}
.nav-item.open .nav-dropdown{opacity:1;pointer-events:auto;transform:translateY(0);}
.nav-dropdown a{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:calc(var(--radius) - 1px);font-size:13.5px;font-weight:600;color:var(--ink);letter-spacing:.03em;transition:background .15s;white-space:nowrap;}
.nav-dropdown a:hover{background:var(--blue-soft);color:var(--blue);}
.nav-dropdown .nd-badge{font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:20px;letter-spacing:.06em;flex-shrink:0;}
.nd-badge.corp{background:var(--green-soft);color:var(--green-dark);}
.nd-badge.pers{background:var(--blue-soft);color:var(--blue-dark);}
.nd-badge.spec{background:var(--orange-soft);color:var(--orange-dark);}
.nav-dropdown hr{border:none;border-top:1px solid var(--gray-line);margin:4px 0;}
.nav-dropdown .nd-all{font-size:12.5px;color:var(--ink-sub);}
/* ===== Drawer ===== */
.nav-drawer{position:fixed;inset:0;background:rgba(0,0,0,.48);z-index:400;opacity:0;pointer-events:none;transition:opacity .25s;}
.nav-drawer.open{opacity:1;pointer-events:auto;}
.drawer-panel{position:absolute;top:0;right:0;width:min(300px,88vw);height:100%;background:#fff;padding:0;display:flex;flex-direction:column;transform:translateX(100%);transition:transform .28s cubic-bezier(.4,0,.2,1);}
.nav-drawer.open .drawer-panel{transform:translateX(0);}
.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border-bottom:1px solid var(--gray-line);}
.drawer-head strong{font-size:13px;letter-spacing:.14em;color:var(--ink-sub);}
.drawer-close{font-size:20px;cursor:pointer;color:var(--ink-mid);line-height:1;padding:4px;background:none;border:none;}
.drawer-links{list-style:none;flex:1;overflow-y:auto;}
.drawer-links li a{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border-bottom:1px solid var(--gray-line);font-size:15.5px;font-weight:600;color:var(--ink);letter-spacing:.04em;transition:background .15s;}
.drawer-links li a:hover{background:var(--blue-soft);color:var(--blue);}
.drawer-links li a::after{content:"›";font-size:18px;color:var(--ink-sub);}
.drawer-foot{padding:20px 24px;border-top:1px solid var(--gray-line);}
.drawer-foot small{font-size:12px;color:var(--ink-sub);display:block;margin-bottom:6px;letter-spacing:.06em;}
.drawer-foot a{font-family:"Montserrat",sans-serif;font-size:22px;font-weight:700;color:var(--ink);letter-spacing:.02em;display:block;}
/* ===== Footer ===== */
.site-footer{background:var(--ink);color:rgba(255,255,255,.7);padding:80px 0 40px;font-size:15px;}
.footer-row{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:56px;margin-bottom:56px;}
.footer-brand h3{font-family:"Zen Old Mincho",serif;font-size:18px;font-weight:500;color:#fff;letter-spacing:.04em;margin-bottom:6px;}
.footer-brand .sub{font-size:11px;color:rgba(255,255,255,.4);letter-spacing:.12em;margin-bottom:20px;}
.footer-brand p{font-size:14px;line-height:2;color:rgba(255,255,255,.6);}
.footer-tel{font-family:"Montserrat",sans-serif;font-size:22px;font-weight:700;color:#fff;margin-top:16px;}
.footer-tel span{font-size:12px;color:rgba(255,255,255,.4);font-weight:400;font-family:"Zen Kaku Gothic New",sans-serif;display:block;margin-bottom:4px;letter-spacing:.08em;}
.footer-col h4{font-family:"Montserrat",sans-serif;font-size:11px;font-weight:700;letter-spacing:.22em;color:rgba(255,255,255,.4);margin-bottom:16px;text-transform:uppercase;}
.footer-col ul{list-style:none;}
.footer-col li{padding:6px 0;font-size:14.5px;}
.footer-col a{color:rgba(255,255,255,.7);transition:color .2s;}
.footer-col a:hover{color:#fff;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.08);padding-top:24px;display:flex;justify-content:space-between;font-size:12.5px;color:rgba(255,255,255,.35);}
.footer-links{display:flex;gap:24px;}
.footer-links a{color:rgba(255,255,255,.35);}
.footer-links a:hover{color:rgba(255,255,255,.7);}
.footer-identity{display:flex;align-items:center;gap:14px;color:inherit;text-decoration:none;margin-bottom:16px;}
.footer-logo{width:56px;height:56px;border-radius:var(--radius);object-fit:contain;flex-shrink:0;}
.footer-socials{display:flex;gap:12px;margin-top:16px;}
.footer-social-link{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.1);color:rgba(255,255,255,.7);transition:background .2s,color .2s;}
.footer-social-link:hover{background:var(--blue);color:#fff;}
.footer-social-link svg{width:18px;height:18px;}
.site-overview-nav{border-top:1px solid rgba(255,255,255,.08);padding:20px 0;margin-bottom:8px;display:flex;align-items:baseline;gap:24px;flex-wrap:wrap;}
.site-overview-nav p{font-size:11px;color:rgba(255,255,255,.3);letter-spacing:.12em;white-space:nowrap;font-family:"Montserrat",sans-serif;text-transform:uppercase;}
.site-overview-nav ul{display:flex;list-style:none;flex-wrap:wrap;gap:6px 20px;}
.site-overview-nav li{font-size:12.5px;}
.site-overview-nav a{color:rgba(255,255,255,.45);transition:color .2s;}
.site-overview-nav a:hover{color:rgba(255,255,255,.85);}
