:root{--bg:#eaeaea;--ink:#2f3541;--acc:#ffbc58;--acc-d:#f0a530;--mut:#5f6673;--card:#f6f6f6;--line:#d3d4d7;--r:4px}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth}
body{font-family:"Play","Noto Sans JP",system-ui,sans-serif;color:var(--ink);background:var(--bg);line-height:1.75}
a{color:var(--ink);text-decoration:none}
img{max-width:100%}
.wrap{max-width:1080px;margin:0 auto;padding:0 16px}
header{position:sticky;top:0;z-index:10;background:var(--bg);border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;justify-content:space-between;height:64px;gap:12px}
.logo{font-weight:700;font-size:1.35rem;letter-spacing:.06em}
.logo:before{content:"";width:14px;height:14px;background:var(--acc);display:inline-block;margin-right:10px}
.logo span{color:var(--ink)}
nav{display:flex;gap:24px;align-items:center}
nav a{font-size:.92rem;padding:4px 0;border-bottom:2px solid transparent}
nav a:hover,nav a.on{border-bottom-color:var(--acc)}
.lang{display:flex;border:1px solid var(--ink);border-radius:var(--r);overflow:hidden}
.lang button{border:0;background:none;padding:5px 10px;font:inherit;font-size:.78rem;cursor:pointer;color:var(--ink)}
.lang button.on{background:var(--ink);color:var(--bg)}
.menu{display:none;border:0;background:none;font-size:1.6rem;cursor:pointer;color:var(--ink)}
.hero{background:var(--ink);color:var(--bg);padding:104px 0;position:relative;overflow:hidden}
.hero:after{content:"";position:absolute;right:-60px;top:50%;width:260px;height:260px;background:var(--acc);transform:translateY(-50%) rotate(45deg);opacity:.95}
.hero .wrap{position:relative;z-index:1}
.hero h1{font-size:clamp(1.8rem,5vw,2.9rem);line-height:1.3;max-width:700px}
.hero p{margin:18px 0 30px;max-width:600px;opacity:.85}
.btn{display:inline-block;background:var(--acc);color:var(--ink);padding:12px 28px;border-radius:var(--r);font:inherit;font-weight:700;border:0;cursor:pointer}
.btn:hover,.btn.p:hover{background:var(--acc-d)}
.btn.p{background:var(--acc);color:var(--ink)}
.page-h{padding:48px 0 28px;border-bottom:1px solid var(--line)}
.page-h h1{font-size:clamp(1.6rem,4vw,2.1rem);padding-left:16px;border-left:6px solid var(--acc)}
section{padding:64px 0}
section.alt{background:#e0e0e0}
h2{font-size:1.5rem;margin-bottom:28px;padding-left:14px;border-left:6px solid var(--acc)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}
.card{background:var(--card);border:1px solid var(--line);border-top:4px solid var(--acc);border-radius:var(--r);padding:24px}
.card h3{margin-bottom:8px;font-size:1.1rem}
.card p{color:var(--mut);font-size:.93rem}
.ico{font-size:1.6rem;margin-bottom:10px;filter:grayscale(1)}
table.info{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line)}
.info th,.info td{padding:14px 18px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
.info th{width:30%;background:#dedfe1;font-weight:700}
.about-grid{display:grid;grid-template-columns:260px 1fr;gap:24px;align-items:start}
.ceo{width:100%;aspect-ratio:1;object-fit:cover;object-position:50% 25%;border-radius:var(--r);border:1px solid var(--line);border-bottom:4px solid var(--acc)}
.news{list-style:none;padding:0}
.news li{padding:18px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:110px 100px 1fr;gap:12px}
.news time{color:var(--mut);font-size:.9rem}
.tag{font-size:.75rem;background:var(--acc);color:var(--ink);border-radius:var(--r);padding:2px 10px;height:fit-content;text-align:center;font-weight:700}
.news h3{font-size:1rem}
.news p{color:var(--mut);font-size:.9rem}
form{display:grid;gap:16px;max-width:620px}
label{font-weight:700;font-size:.9rem;display:grid;gap:6px}
input,textarea{font:inherit;padding:11px 13px;border:1px solid var(--line);border-radius:var(--r);width:100%;background:#fff;color:var(--ink)}
input:focus,textarea:focus{outline:2px solid var(--acc);border-color:var(--ink)}
textarea{min-height:150px}
.hp{position:absolute;left:-9999px}
.msg{padding:12px;border-radius:var(--r);display:none}
.msg.ok{display:block;background:#e7f1e4;color:#25562a}
.msg.ng{display:block;background:#f6e3e3;color:#8a1c1c}
footer{background:var(--ink);color:#c8cbd2;padding:32px 0;font-size:.88rem;border-top:4px solid var(--acc)}
footer a{color:var(--acc)}
.fl{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}
@media(max-width:760px){
 .menu{display:block}
 nav{position:absolute;top:64px;left:0;right:0;background:var(--bg);flex-direction:column;align-items:flex-start;padding:16px;border-bottom:1px solid var(--line);display:none}
 nav.open{display:flex}
 .news li{grid-template-columns:1fr}
 .about-grid{grid-template-columns:1fr}
 .ceo{max-width:260px}
 .info th{width:38%}
 .hero{padding:64px 0}
 .hero:after{width:140px;height:140px;right:-50px;top:auto;bottom:-40px;transform:rotate(45deg)}
}
