
:root{--accent:#19b6e6;--green:#20b47b;--deep:#182638;--ink:#152235;--muted:#657386;--soft:#f4f8fb;--line:#dce8ef;--white:#fff;--shadow:0 24px 70px rgba(21,34,53,.14)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",system-ui,sans-serif;color:var(--ink);line-height:1.8;background:#fff}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}.skip{position:absolute;left:-999px}.skip:focus{left:10px;top:10px;background:#fff;padding:10px;z-index:9999}.loader{position:fixed;inset:0;background:linear-gradient(135deg,var(--deep),#07384a);color:#fff;z-index:9999;display:grid;place-content:center;text-align:center;transition:opacity .65s,visibility .65s}.loader.hide{opacity:0;visibility:hidden}.loader-mark{font-size:44px;font-weight:950;letter-spacing:.2em;border:1px solid rgba(255,255,255,.35);padding:24px 36px}.loader p{letter-spacing:.22em;color:#bfefff;font-weight:900}.header{position:sticky;top:0;z-index:1000;height:72px;display:flex;align-items:center;gap:28px;padding:0 4.5vw;background:rgba(255,255,255,.94);backdrop-filter:blur(16px);box-shadow:0 8px 28px rgba(0,0,0,.06)}.brand span{font-size:28px;font-weight:950;color:var(--accent);letter-spacing:.1em}.brand small{display:block;font-size:11px;color:var(--muted)}.nav{display:flex;gap:28px;margin-left:auto;font-size:15px;font-weight:900}.nav a.active,.nav a:hover{color:var(--accent)}.head-actions{display:flex;gap:14px;align-items:center}.pill{border:1px solid var(--accent);border-radius:999px;padding:10px 20px;font-weight:900;color:var(--accent)}.pill.fill{background:var(--accent);color:#fff}.menu{display:none;background:var(--deep);color:#fff;border:0;border-radius:999px;padding:10px 14px}.layer{position:relative;overflow:hidden}.hero{min-height:560px;background:var(--deep);display:grid;place-items:center;text-align:center;color:#fff}.hero-slides{position:absolute;inset:0}.slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.2s,transform 7s;transform:scale(1.06)}.slide.active{opacity:1;transform:scale(1)}.hero:after,.subhero:after,.footer-cta:after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(12,24,39,.76),rgba(12,24,39,.72));z-index:1}.hero-copy{position:relative;z-index:2;width:min(760px,90%);padding-top:18px}.en{font-size:13px;letter-spacing:.2em;font-weight:950;color:var(--accent)}.hero h1{font-size:clamp(42px,6vw,74px);line-height:1.22;margin:14px 0;font-weight:950;letter-spacing:-.04em}.hero-copy p:not(.en){font-weight:800}.btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:28px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:12px 24px;border-radius:999px;border:1px solid currentColor;font-weight:950}.btn.fill{background:var(--accent);color:#fff}.btn.ghost{color:#fff;background:transparent}.section{padding:90px 7vw}.section-title h2{font-size:clamp(34px,5vw,60px);line-height:1.18;margin:0 0 30px;font-weight:950}.section-title span{display:block;color:var(--accent);font-size:.42em;letter-spacing:.12em;margin-top:4px}.news-list{display:grid;gap:14px}.news-list article{display:grid;grid-template-columns:140px 90px 1fr;gap:20px;background:#fff;border-bottom:1px solid var(--line);padding:20px 0;align-items:center}.news-list b{background:var(--soft);border-radius:999px;text-align:center;color:var(--accent);padding:5px 10px}.message,.split{display:grid;grid-template-columns:.85fr 1.15fr;gap:60px;align-items:center}.image-layer{position:relative;border-radius:22px;overflow:hidden;box-shadow:var(--shadow)}.image-layer img{height:500px;width:100%;object-fit:cover}.image-layer:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(25,182,230,.35),transparent)}.image-layer span{position:absolute;left:24px;bottom:18px;color:#fff;font-size:34px;font-weight:950;letter-spacing:.1em}.lead,.message-copy .lead{font-size:30px;font-weight:950}.text-link{color:var(--accent);font-weight:950}.parallax{min-height:470px;background-size:cover;background-position:center;background-attachment:fixed;display:grid;place-items:center;color:#fff;text-align:center}.parallax h2{font-size:clamp(38px,6vw,78px);line-height:1.16;margin:0;font-weight:950}.light{background:var(--soft)}.center{text-align:center}.service-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.service-card{background:#fff;border-radius:20px;padding:34px;box-shadow:var(--shadow);display:grid;gap:18px;transition:.3s}.service-card:hover{transform:translateY(-8px)}.service-card img{height:220px;width:100%;object-fit:cover;border-radius:16px}.service-card h3{font-size:28px;margin:0;color:var(--accent)}.company-table{width:100%;border-collapse:collapse;background:#fff;box-shadow:var(--shadow)}th,td{border:1px solid var(--line);padding:20px;text-align:left}th{background:var(--soft);width:28%}.carousel{padding:90px 0;background:#fff;overflow:hidden}.carousel .section-title{padding:0 7vw}.carousel-track{display:flex;gap:20px;width:max-content;animation:marquee 42s linear infinite}.marquee-card{width:320px;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 10px 30px rgba(21,34,53,.08)}.marquee-card img{height:205px;width:100%;object-fit:cover}.marquee-card span{display:block;padding:14px 18px;color:var(--accent);font-weight:950}@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}.footer-cta{min-height:420px;display:grid;place-items:center;color:#fff;text-align:center}.cta-bg{position:absolute;inset:0;background:url('https://images.unsplash.com/photo-1551434678-e076c223a692?auto=format&fit=crop&w=1600&q=80') center/cover}.cta-inner{position:relative;z-index:2;max-width:960px;padding:0 24px}.cta-inner h2{font-size:clamp(32px,5vw,64px);line-height:1.18}.footer{background:var(--deep);color:#fff;padding:70px 7vw 24px}.footer-grid{display:grid;grid-template-columns:1.1fr 1fr 1.1fr;gap:50px;border-bottom:1px solid rgba(255,255,255,.18);padding-bottom:42px}.footer-logo{font-size:42px;font-weight:950;color:#9eeaff}.footer ul{list-style:none;padding:0;margin:0;columns:2}.subhero{min-height:430px;display:grid;align-items:end;color:#fff;padding:140px 7vw 80px}.sub-bg{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.08)}.subhero:after{background:linear-gradient(90deg,rgba(12,24,39,.86),rgba(25,182,230,.28))}.sub-copy{position:relative;z-index:2;max-width:900px}.sub-copy h1{font-size:clamp(52px,8vw,104px);line-height:1;margin:12px 0}.service-detail{display:grid;gap:42px}.service-detail article{display:grid;grid-template-columns:42% 1fr;gap:42px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px;box-shadow:0 12px 40px rgba(21,34,53,.08)}.service-detail img{height:300px;width:100%;object-fit:cover;border-radius:14px}.service-detail h2{font-size:34px;color:var(--accent)}.company{display:grid;grid-template-columns:.8fr 1.2fr;gap:60px}.map iframe{width:100%;height:430px;border:0;border-radius:18px;box-shadow:var(--shadow)}.recruit,.contact{display:grid;grid-template-columns:1fr 1fr;gap:55px;background:var(--soft)}.recruit h2,.contact h2,.company h2,.split h2{font-size:clamp(34px,5vw,64px);line-height:1.2}dl{display:grid;grid-template-columns:130px 1fr;gap:16px;background:#fff;padding:34px;box-shadow:var(--shadow)}dt{font-weight:950;color:var(--accent)}.contact-info,.form{background:#fff;border-radius:18px;padding:34px;box-shadow:var(--shadow)}.phone a{font-size:clamp(32px,5vw,58px);color:var(--accent);font-weight:950}.form{display:grid;gap:16px}.form label{display:grid;gap:7px;font-weight:900}input,textarea{padding:14px;border:1px solid var(--line);font:inherit}.privacy{padding-top:34px}.reveal{opacity:1;transform:none;transition:opacity .8s ease,transform .8s ease}body.motion-ready .reveal{opacity:.78;transform:translateY(22px)}body.motion-ready .reveal.in{opacity:1;transform:none}:focus-visible{outline:3px solid var(--accent);outline-offset:4px}@media(max-width:900px){.header{height:72px;padding:0 18px}.brand small,.pill{display:none}.nav{position:fixed;inset:72px 0 auto 0;background:#fff;display:none;flex-direction:column;padding:24px}.nav.open{display:flex}.menu{display:block}.hero{min-height:640px}.hero h1{font-size:42px}.section{padding:70px 22px}.news-list article,.message,.split,.service-grid,.footer-grid,.service-detail article,.company,.recruit,.contact{grid-template-columns:1fr}.parallax{background-attachment:scroll}.image-layer img{height:320px}.marquee-card{width:260px}}
