
:root{--bg:#f7f9fc;--surface:#fff;--text:#0f172a;--muted:#475569;--brand:#1e40af;--brand-2:#2563eb;--border:#e5e7eb;--shadow:0 10px 30px rgba(2,6,23,.08);--maxw:1200px;--radius:16px;--gap:22px;--fs-h1:clamp(36px,5vw,52px);--fs-h2:clamp(26px,3.5vw,34px);--fs-lead:clamp(16px,2.4vw,19px)}
*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"Noto Sans","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;line-height:1.65}
a{color:var(--brand-2);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%;height:auto;display:block}
.container{max-width:var(--maxw);margin:0 auto;padding:0 22px}.lead{font-size:var(--fs-lead);color:#334155}.muted{color:var(--muted)}.tiny{font-size:12px}
.nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.86);backdrop-filter:saturate(1.2) blur(10px);border-bottom:1px solid var(--border)}
.nav .inner{display:flex;gap:18px;align-items:center;justify-content:space-between;padding:14px 0}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;color:var(--text)}.brand-logo{width:32px;height:32px;border-radius:8px;object-fit:contain}
.nav ul{display:flex;gap:18px;list-style:none;margin:0;padding:0}.nav a{padding:10px 12px;border-radius:10px;color:#0b1324;font-weight:600}.nav a.active,.nav a:hover{background:#eef2ff}
.btn{display:inline-block;padding:12px 18px;border-radius:12px;font-weight:700;border:1px solid #dbe1f1;transition:transform .06s ease,background .2s ease}.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--brand-2);color:#fff;border-color:transparent}.btn-primary:hover{background:#1d4ed8}.btn-outline{background:#fff;color:#0b1324}.btn-outline:hover{background:#f4f7ff}
.hero{position:relative;color:#0b1324;padding:108px 0 120px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,.86))}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(255,255,255,.0),rgba(247,249,252,.92)),var(--hero-img,none) center/cover no-repeat;filter:saturate(1.05) contrast(1.02)}
.hero-diagonal{clip-path:polygon(0 0,100% 0,100% 82%,0 100%)}
.kicker{letter-spacing:.14em;text-transform:uppercase;font-size:12px;color:#334155;margin:0 0 6px}.hero h1{margin:8px 0 12px;font-size:var(--fs-h1);line-height:1.12}.hero .sub{font-size:20px;color:#1f2937;margin:0 0 20px}
.cta{display:flex;gap:12px;flex-wrap:wrap}.section{padding:72px 0;border-bottom:1px solid var(--border)}.about-diagonal{background:var(--surface);clip-path:polygon(0 0,100% 6%,100% 100%,0 94%)}
.section h2{font-size:var(--fs-h2);margin:0 0 14px}.grid{display:grid;gap:var(--gap)}.cards{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-top:18px}
.card{background:var(--surface);border:1px solid var(--border);padding:18px;border-radius:var(--radius);box-shadow:var(--shadow)}.card h3{margin:4px 0 10px}.card p{margin:0}
input,select,textarea{width:100%;padding:12px;border-radius:12px;border:1px solid var(--border);background:#fff;color:var(--text)}label{font-size:14px;color:var(--muted)}.full{grid-column:1/-1}
.footer-light{background:var(--surface)}footer .cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--gap);padding:32px 0}footer h4{margin:0 0 10px}
.cookie-backdrop{position:fixed;inset:0;background:rgba(2,6,23,.45);-webkit-backdrop-filter:saturate(1.1) blur(2px);backdrop-filter:saturate(1.1) blur(2px);display:none;z-index:1000}
.cookie-modal{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:min(560px,92vw);background:#fff;color:#0f172a;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 24px 60px rgba(15,23,42,.18);padding:18px;display:none;z-index:1001}
.cookie-modal.show,.cookie-backdrop.show{display:block}.cookie-modal h3{margin:6px 0 8px;font-size:20px}.cookie-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:12px}
.cookie-btn{padding:10px 14px;border-radius:10px;border:1px solid #dbe1f1;font-weight:700;cursor:pointer}.cookie-btn.primary{background:#2563eb;color:#fff;border-color:transparent}.cookie-btn.ghost{background:#fff}
@media (max-width:860px){.nav ul{gap:10px}.hero{padding:88px 0 96px}.cards{grid-template-columns:1fr}}
