
:root {
  --primary:#1096e0; --primary-dark:#0a78bc; --primary-soft:#eaf7ff; --accent:#103d63;
  --text:#17324d; --muted:#5b7289; --line:#d7e7f2; --bg:#f7fbfe; --card:#ffffff;
  --shadow:0 18px 48px rgba(19,70,104,.08); --radius:24px; --max:1180px;
}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;font-family:"Hiragino Kaku Gothic ProN","Yu Gothic","Meiryo",sans-serif;color:var(--text);background:linear-gradient(180deg,#fbfeff 0%,#f7fbfe 100%);line-height:1.8}
a{color:var(--primary-dark);text-decoration:none} a:hover{text-decoration:underline}
img{max-width:100%;display:block}
.container{width:min(100% - 32px,var(--max));margin:0 auto}
.section{padding:86px 0}.band{background:linear-gradient(180deg,rgba(16,150,224,.05),rgba(255,255,255,.7));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.section-title{margin:0 0 12px;font-size:clamp(1.9rem,3vw,2.5rem);line-height:1.28;color:var(--accent)}
.section-lead{margin:0 0 28px;color:var(--muted);max-width:900px}
.site-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);border-bottom:1px solid rgba(215,231,242,.9)}
.site-header-inner{min-height:80px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{display:flex;align-items:center;gap:14px}.brand img{width:58px;height:58px;object-fit:contain;border-radius:14px;background:#fff}.brand-title{margin:0;font-size:1.08rem;font-weight:800;color:var(--accent);line-height:1.4}.brand-title small{display:block;color:var(--muted);font-size:.78rem;font-weight:600}
nav ul{list-style:none;display:flex;flex-wrap:wrap;gap:16px;margin:0;padding:0}.site-header nav a{font-size:.95rem;font-weight:700;color:var(--accent)}
.hero{padding:88px 0 74px}.hero-panel{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(320px,480px);gap:30px;align-items:center;background:linear-gradient(135deg,#fff 0%,#f1fbff 100%);border:1px solid var(--line);border-radius:34px;padding:44px;box-shadow:var(--shadow);overflow:hidden}
.eyebrow{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border-radius:999px;background:var(--primary-soft);color:var(--primary-dark);font-size:.84rem;font-weight:800;margin-bottom:18px}
.hero h1{margin:0 0 16px;font-size:clamp(2.1rem,4.2vw,3.9rem);line-height:1.16;color:var(--accent)}
.hero .lead{margin:0 0 22px;color:var(--muted);font-size:1.05rem;max-width:700px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin:0 0 24px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:13px 18px;border-radius:12px;font-weight:800;transition:transform .18s ease,box-shadow .18s ease}.btn:hover{text-decoration:none;transform:translateY(-1px)}
.btn-primary{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;box-shadow:0 12px 24px rgba(16,150,224,.2)} .btn-secondary{background:#fff;color:var(--accent);border:1px solid var(--line)}
.points{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.point{background:rgba(255,255,255,.88);border:1px solid var(--line);border-radius:16px;padding:14px}.point strong{display:block;color:var(--accent);margin-bottom:4px;font-size:.96rem}.point span{color:var(--muted);font-size:.88rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px}
.grid{display:grid;gap:20px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.feature-media{border-radius:26px;background:linear-gradient(180deg,#fff,#f4fbff);padding:16px;border:1px solid var(--line);box-shadow:var(--shadow)}
.service-card,.scene-card,.measure-card,.news-item{overflow:hidden}.service-card img,.scene-card img,.measure-card img{width:100%;aspect-ratio:16/10;object-fit:cover;background:#f4fbff;border-radius:18px;margin-bottom:16px;border:1px solid var(--line)}
.service-card h3,.scene-card h3,.measure-card h3,.news-item h3,.profile-card h3,.contact-card h3,.info-card h3{margin:0 0 10px;color:var(--accent);font-size:1.08rem}
.service-card p,.scene-card p,.measure-card p,.news-item p,.profile-card p,.contact-card p,.info-card p,.card p{margin:0;color:var(--muted)}
.news-list{display:grid;gap:16px}.news-item{padding:22px}.news-date{font-size:.88rem;color:var(--primary-dark);font-weight:700;margin-bottom:8px}
.simple-list,.feature-list{margin:0;padding-left:1.2em}.simple-list li + li,.feature-list li + li{margin-top:8px}
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.kpi{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:20px}.kpi strong{display:block;color:var(--accent);font-size:1.26rem;margin-bottom:6px}.kpi span{color:var(--muted)}
.flow{counter-reset:step;list-style:none;margin:0;padding:0;display:grid;gap:16px}.flow li{position:relative;padding:20px 20px 20px 68px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.flow li::before{counter-increment:step;content:counter(step);position:absolute;left:20px;top:18px;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:800;background:linear-gradient(135deg,var(--primary),var(--primary-dark))}
.tabs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px}.tab-button{appearance:none;border:1px solid var(--line);background:#fff;color:var(--accent);padding:12px 16px;border-radius:12px;font-weight:800;cursor:pointer}.tab-button.active{background:linear-gradient(135deg,var(--primary),var(--primary-dark));border-color:transparent;color:#fff}.pamphlet-panel{display:none}.pamphlet-panel.active{display:block}.pamphlet-frame{width:100%;min-height:1100px;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:var(--shadow)}
.contact-grid{display:grid;gap:12px;margin-top:16px}.contact-row{padding:12px 14px;background:rgba(255,255,255,.85);border:1px solid var(--line);border-radius:14px}
.footer{padding:28px 0 44px;color:var(--muted);font-size:.94rem}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:20px;border-top:1px solid var(--line)}.footer-brand{display:flex;align-items:center;gap:12px}.footer-brand img{width:42px;height:42px;object-fit:contain}
@media (max-width:980px){.hero-panel,.grid-2,.grid-3,.kpis,.points{grid-template-columns:1fr}}
@media (max-width:860px){.site-header-inner{flex-direction:column;align-items:flex-start;padding:12px 0}.hero-panel{padding:28px}.pamphlet-frame{min-height:900px}}
