:root{
  --primary:#0F4C75;
  --base:#FFFFFF;
  --accent:#FF6B35;
  --ink:#1f2937;
  --muted:#6b7280;
  --line:#e5e7eb;
}
html{scroll-behavior:smooth}
body{font-family:'Noto Sans JP',system-ui,-apple-system,'Segoe UI',sans-serif;color:var(--ink);background:#fff;-webkit-font-smoothing:antialiased}
.section-title{font-weight:700;letter-spacing:.02em;color:var(--primary)}
.section-title::before{content:'';display:inline-block;width:36px;height:3px;background:var(--accent);vertical-align:middle;margin-right:.6rem;border-radius:2px}
.btn-primary{background:var(--primary);color:#fff;transition:transform .15s,filter .15s}
.btn-primary:hover{filter:brightness(1.1);transform:translateY(-1px)}
.btn-accent{background:var(--accent);color:#fff;transition:transform .15s,filter .15s}
.btn-accent:hover{filter:brightness(1.05);transform:translateY(-1px)}
.hero{position:relative;background:#0F4C75;color:#fff;overflow:hidden;min-height:580px}
.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%;opacity:.7;filter:saturate(.9);transform:scaleX(-1)}
.hero::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,76,117,.95) 0%,rgba(15,76,117,.85) 30%,rgba(15,76,117,.55) 60%,rgba(15,76,117,.25) 100%);z-index:1;pointer-events:none}
.hero::after{content:'';position:absolute;inset:0;background:radial-gradient(circle at 78% 30%,rgba(255,107,53,.18),transparent 55%);z-index:1;pointer-events:none}
.hero > .max-w-6xl{position:relative;z-index:2}
@media(max-width:768px){.hero-image{opacity:.45;object-position:center center;transform:scaleX(-1)}.hero::before{background:linear-gradient(180deg,rgba(15,76,117,.55) 0%,rgba(15,76,117,.85) 60%,rgba(16,58,90,.95) 100%)}}
.card{background:#fff;border:1px solid var(--line);border-radius:14px;transition:transform .2s,box-shadow .2s}
.card:hover{transform:translateY(-4px);box-shadow:0 12px 30px -10px rgba(15,76,117,.18)}
.tag{display:inline-block;padding:.15rem .55rem;border-radius:999px;font-size:.7rem;background:#eef4f9;color:var(--primary);font-weight:600}
.tag-accent{background:#FFEDE3;color:var(--accent)}
.divider{height:1px;background:var(--line);margin:2.5rem 0}
.area-pill{display:inline-flex;align-items:center;padding:.4rem .9rem;border-radius:999px;background:#fff;border:1.5px solid var(--primary);color:var(--primary);font-weight:600;font-size:.85rem}
.flow-num{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:999px;background:var(--accent);color:#fff;font-weight:700;font-size:.95rem;flex-shrink:0}
.spec-table{width:100%;border-collapse:collapse}
.spec-table th,.spec-table td{padding:.9rem 1rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;font-size:.92rem}
.spec-table th{background:#f7fafc;color:var(--primary);font-weight:600;width:32%;white-space:nowrap}
.float-cta{position:fixed;right:14px;bottom:14px;z-index:50;display:none}
@media(max-width:768px){.float-cta{display:flex}}
.headline{font-weight:800;letter-spacing:-.01em;line-height:1.2}
.kicker{display:inline-block;padding:.3rem .8rem;background:rgba(255,107,53,.18);color:#FFD9C7;border:1px solid rgba(255,107,53,.4);border-radius:999px;font-size:.78rem;font-weight:600;letter-spacing:.05em}
.nav-link{position:relative;color:#1f2937;font-weight:500}
.nav-link::after{content:'';position:absolute;left:0;bottom:-4px;width:0;height:2px;background:var(--accent);transition:width .2s}
.nav-link:hover::after{width:100%}
.bullet{display:flex;gap:.6rem;align-items:flex-start}
.bullet::before{content:'';flex-shrink:0;margin-top:.55rem;width:8px;height:8px;border-radius:2px;background:var(--accent);transform:rotate(45deg)}
