:root{--blue:#063883;--deep:#02275e;--sky:#eef6ff;--ink:#10233f;--muted:#64748b;--line:#dce5ef;--yellow:#ffc400;--white:#fff;--shadow:0 16px 45px rgba(8,42,89,.12)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;line-height:1.8;background:#fff}a{color:inherit;text-decoration:none}img{display:block;width:100%}button,input,textarea,select{font:inherit}.container{width:min(1120px,calc(100% - 40px));margin:auto}.eyebrow{color:var(--blue);font-weight:800;letter-spacing:.14em;font-size:.8rem;text-transform:uppercase}.section{padding:96px 0}.section.alt{background:#f5f8fc}.section-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:42px}.section-title{font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.3;margin:5px 0 0}.section-title:after{content:"";display:block;width:54px;height:3px;background:var(--blue);margin-top:15px}.lead{font-size:1.08rem;color:#42526a;max-width:720px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:28px;min-height:56px;padding:10px 24px;background:var(--blue);color:#fff;font-weight:700;border:1px solid var(--blue);transition:.25s}.btn:after{content:"→"}.btn:hover{background:var(--deep);transform:translateY(-2px)}.btn.light{background:#fff;color:var(--blue)}.btn.outline{background:transparent;color:var(--blue)}
.site-header{height:92px;background:rgba(255,255,255,.96);position:sticky;top:0;z-index:30;border-bottom:1px solid rgba(220,229,239,.8);backdrop-filter:blur(10px)}.header-inner{height:100%;display:flex;align-items:center;gap:38px}.brand{display:flex;align-items:center;margin-right:auto}.brand-logo{width:clamp(245px,24vw,352px);height:auto}.footer-logo{width:min(352px,100%);height:auto}.nav{display:flex;align-items:center;height:100%;gap:28px;font-size:.88rem;font-weight:700}.nav a{position:relative}.nav a:not(.nav-contact):after{content:"";position:absolute;height:2px;left:50%;right:50%;bottom:-12px;background:var(--blue);transition:.2s}.nav a:hover:after,.nav a.active:after{left:0;right:0}.nav-contact{align-self:stretch;display:flex;align-items:center;background:var(--blue);color:#fff;padding:0 25px;margin-right:-20px}.menu-toggle{display:none;border:0;background:none;width:44px;height:44px;font-size:1.5rem;color:var(--blue)}
.hero{min-height:650px;display:grid;align-items:center;background:linear-gradient(90deg,rgba(255,255,255,1) 0%,rgba(255,255,255,.97) 36%,rgba(255,255,255,.16) 62%),url('images/hero-elevator.png') center/cover}.hero-copy{max-width:560px;padding:90px 0 130px}.hero h1{font-size:clamp(2.2rem,4.5vw,4rem);line-height:1.45;letter-spacing:.1em;color:var(--blue);margin:12px 0 22px}.hero p{font-weight:600;margin-bottom:34px}.strengths{margin-top:-78px;position:relative;z-index:2}.strength-grid{display:grid;grid-template-columns:repeat(4,1fr);background:#fff;box-shadow:var(--shadow)}.strength{padding:34px 25px;text-align:center;border-right:1px solid var(--line)}.strength:last-child{border:0}.icon{width:56px;height:56px;margin:0 auto 14px;color:var(--blue);display:grid;place-items:center;font-size:2rem;border:2px solid currentColor;border-radius:18px}.strength h3{font-size:1rem;color:var(--blue);margin:0 0 8px}.strength p{font-size:.8rem;color:#5a6a80;margin:0}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.card{background:#fff;border:1px solid var(--line);padding:30px;transition:.25s}.card:hover{box-shadow:var(--shadow);transform:translateY(-4px)}.card-visual{height:180px;margin:-30px -30px 25px;display:grid;place-items:center;overflow:hidden;background:linear-gradient(145deg,#edf5ff,#c6d8ec);position:relative}.card-visual svg{width:70%;height:70%}.card h3{font-size:1.35rem;color:var(--blue);margin:5px 0 12px}.tag{display:inline-block;font-size:.72rem;font-weight:800;color:var(--blue);background:#eaf2ff;padding:3px 10px;border-radius:30px}.text-link{font-weight:800;color:var(--blue);display:inline-flex;gap:20px;margin-top:10px}.recruit-banner{min-height:360px;background:linear-gradient(90deg,rgba(2,39,94,.98) 0%,rgba(2,39,94,.85) 42%,rgba(2,39,94,0) 70%),url('images/recruit-team.png') center/cover;color:#fff;display:flex;align-items:center}.recruit-banner h2{font-size:clamp(1.8rem,3vw,2.7rem);letter-spacing:.08em}.recruit-banner p{max-width:520px}.news-list{border-top:1px solid var(--line)}.news-item{display:grid;grid-template-columns:140px 1fr;gap:20px;padding:20px 0;border-bottom:1px solid var(--line)}.news-item time{color:var(--blue);font-weight:700}.trust{background:linear-gradient(120deg,#f8fbff,#e5f1fc);border:1px solid #aac9ec;padding:42px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:40px}.trust-badge{display:flex;align-items:center;gap:20px;color:var(--blue);font-weight:900}.trust-badge .seal{width:74px;height:74px;border-radius:50%;background:var(--yellow);border:14px solid var(--blue)}
.page-hero{padding:92px 0 78px;background:linear-gradient(120deg,#f3f8ff,#d9e9f8);position:relative;overflow:hidden}.page-hero:after{content:"";position:absolute;width:440px;height:440px;border:80px solid rgba(255,255,255,.45);border-radius:50%;right:-90px;top:-210px}.page-hero h1{font-size:clamp(2.3rem,4vw,3.7rem);color:var(--blue);margin:8px 0}.breadcrumb{font-size:.8rem;color:#65758b}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}.statement{font-size:clamp(1.6rem,2.8vw,2.5rem);line-height:1.55;color:var(--blue);font-weight:800}.photo-panel{min-height:420px;background:url('images/hero-elevator.png') center/cover;box-shadow:var(--shadow)}.profile{width:100%;border-collapse:collapse}.profile th,.profile td{text-align:left;padding:18px 22px;border-bottom:1px solid var(--line)}.profile th{width:28%;color:var(--blue);background:#f6f9fd}.service-grid,.benefit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.service{padding:32px;background:#fff;border-top:4px solid var(--blue);box-shadow:0 6px 24px rgba(8,42,89,.07)}.service b{font-size:2rem;color:#d9e6f5}.process{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line)}.process-step{background:#fff;padding:28px}.process-step span{color:var(--blue);font-weight:900}.product-feature{display:grid;grid-template-columns:1fr 1.25fr;gap:55px;padding:55px 0;border-bottom:1px solid var(--line)}.product-visual{min-height:330px;border-radius:2px;background:linear-gradient(145deg,#eaf3fc,#c8d9eb);display:grid;place-items:center}.product-visual svg{width:72%;height:260px}.specs{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}.specs span{background:#f0f5fb;color:#24486f;padding:6px 12px;font-size:.8rem}.job-hero{padding:100px 0;background:linear-gradient(90deg,rgba(2,39,94,.96),rgba(2,39,94,.2)),url('images/recruit-team.png') center/cover;color:#fff}.job-hero h1{font-size:clamp(2.5rem,5vw,4.5rem);line-height:1.35}.benefit{text-align:center;padding:34px 24px;background:#fff;border:1px solid var(--line)}.benefit .num{font-size:2.4rem;font-weight:900;color:var(--yellow);-webkit-text-stroke:1px var(--blue)}.requirements{border:1px solid var(--line);padding:0 35px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.field.full{grid-column:1/-1}.field label{display:block;font-weight:700;margin-bottom:7px}.required{color:#c73535;font-size:.7rem;margin-left:8px}.field input,.field select,.field textarea{width:100%;border:1px solid #bdcad9;background:#fff;padding:14px;border-radius:0}.field textarea{min-height:180px;resize:vertical}.contact-info{background:var(--deep);color:#fff;padding:40px}.phone{font-size:2rem;font-weight:900;letter-spacing:.04em}
.site-footer{background:linear-gradient(120deg,var(--deep),var(--blue));color:#fff;padding:55px 0 20px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:60px}.footer-nav{display:grid;gap:8px;font-size:.86rem}.footer-bottom{border-top:1px solid rgba(255,255,255,.2);margin-top:38px;padding-top:18px;font-size:.72rem;text-align:center;opacity:.75}.footer-brand .brand{margin-bottom:18px}.footer-brand address{font-style:normal;font-size:.85rem;opacity:.86}
.reveal{opacity:0;transform:translateY(24px);transition:.7s ease}.reveal.visible{opacity:1;transform:none}
@media(max-width:900px){.site-header{height:72px}.brand-logo{width:245px}.nav{position:fixed;inset:72px 0 auto;background:#fff;display:none;height:auto;padding:25px 30px;flex-direction:column;align-items:stretch;gap:0;box-shadow:var(--shadow)}.nav.open{display:flex}.nav a{padding:13px 0;border-bottom:1px solid var(--line)}.nav-contact{margin:10px 0 0;padding:12px 18px}.menu-toggle{display:block}.hero{min-height:600px;background:linear-gradient(90deg,rgba(255,255,255,.98),rgba(255,255,255,.84)),url('images/hero-elevator.png') 65% center/cover}.hero-copy{padding:70px 0 125px}.strength-grid{grid-template-columns:1fr 1fr}.strength:nth-child(2){border-right:0}.cards,.service-grid,.benefit-grid{grid-template-columns:1fr 1fr}.two-col,.product-feature{grid-template-columns:1fr}.process{grid-template-columns:1fr 1fr}.footer-grid{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}.section{padding:72px 0}}
@media(max-width:600px){.container{width:min(100% - 28px,1120px)}.section{padding:58px 0}.section-head{display:block}.hero h1{font-size:2rem}.hero{min-height:540px}.strengths{margin-top:-45px}.strength-grid,.cards,.service-grid,.benefit-grid,.form-grid{grid-template-columns:1fr}.strength{border-right:0;border-bottom:1px solid var(--line)}.two-col{gap:35px}.process{grid-template-columns:1fr}.product-feature{gap:26px;padding:40px 0}.profile th,.profile td{display:block;width:100%;padding:12px 15px}.profile th{border-bottom:0}.field.full{grid-column:auto}.trust{grid-template-columns:1fr;padding:28px}.footer-grid{grid-template-columns:1fr;gap:30px}.footer-brand{grid-column:auto}.news-item{grid-template-columns:1fr;gap:2px}.job-hero{padding:70px 0}.contact-info{padding:28px}.phone{font-size:1.55rem}}
@media(max-width:600px){.brand-logo{width:205px}.header-inner{gap:18px}}
.trust-badge .seal{display:block;width:400px;height:110px;max-width:100%;border:0;border-radius:0;background:url('images/oemu-logo.gif') center/contain no-repeat}.trust-badge span:last-child{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.recruit-new-hero{background:linear-gradient(90deg,rgba(2,28,66,.98) 0%,rgba(2,39,94,.84) 40%,rgba(2,39,94,.08) 72%),url('images/recruit-maintenance.png') center/cover}.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:14px}.recruit-outline{background:transparent;border-color:rgba(255,255,255,.7)}.recruit-outline:hover{background:#fff;color:var(--blue)}.recruit-intro{background:var(--blue);color:#fff;padding:52px 0}.recruit-intro-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:60px;align-items:center}.recruit-intro h2{font-size:clamp(1.7rem,3vw,2.5rem);line-height:1.5;margin:5px 0}.recruit-intro .eyebrow{color:#fff}.recruit-intro p{margin:0;color:#e5effd}.recruit-points{display:grid;gap:0;border-top:1px solid var(--line)}.recruit-point{display:grid;grid-template-columns:110px 1fr;gap:28px;padding:38px 0;border-bottom:1px solid var(--line)}.recruit-point h3{font-size:1.35rem;color:var(--blue);margin:3px 0 8px}.recruit-point p{margin:0;color:#526278}.point-no{font-size:2.8rem;font-weight:900;color:#d8e5f4;line-height:1}.recruit-work-photo{min-height:520px;background:url('images/recruit-maintenance.png') 70% center/cover;box-shadow:var(--shadow)}.check-list{list-style:none;padding:0;margin:25px 0;display:grid;grid-template-columns:1fr 1fr;gap:10px}.check-list li{background:#fff;padding:12px 14px;border-left:3px solid var(--blue);font-weight:700}.salary-cards{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:28px}.salary-cards>div{background:linear-gradient(130deg,var(--deep),var(--blue));color:#fff;padding:28px 32px;display:grid;gap:3px}.salary-cards span{font-size:.85rem}.salary-cards strong{font-size:clamp(1.4rem,2.5vw,2rem)}.salary-cards small{opacity:.8}.recruit-cta{padding:85px 0;background:linear-gradient(120deg,var(--blue),#0758a5);color:#fff;text-align:center}.recruit-cta h2{font-size:clamp(1.8rem,3.5vw,3rem);line-height:1.5}.recruit-cta .hero-actions{justify-content:center}.recruit-phone{font-size:1.25rem;font-weight:900;padding:12px 18px}
@media(max-width:700px){.recruit-intro-grid{grid-template-columns:1fr;gap:16px}.recruit-point{grid-template-columns:58px 1fr;gap:15px}.point-no{font-size:2rem}.salary-cards,.check-list{grid-template-columns:1fr}.recruit-new-hero{background:linear-gradient(90deg,rgba(2,28,66,.94),rgba(2,39,94,.55)),url('images/recruit-maintenance.png') 62% center/cover}.recruit-work-photo{min-height:360px}}
.btn.down-link:after{content:"↓"}
.product-audience,.contact-audience{background:var(--deep);color:#fff}.audience-grid{display:grid;grid-template-columns:1fr 1fr}.audience-grid>div{padding:28px 34px;display:grid;gap:3px;border-right:1px solid rgba(255,255,255,.22)}.audience-grid>div:last-child{border-right:0}.audience-grid strong{font-size:1.2rem}.audience-grid span{font-size:.86rem;color:#d9e8fb}.company-note{font-size:.72rem;color:#718096;margin-left:6px;font-weight:400}
.product-visual img,.card-visual img{width:100%;height:100%;object-fit:cover}.product-visual img{min-height:330px}.card-visual img{transition:transform .4s ease}.card:hover .card-visual img{transform:scale(1.035)}
@media(max-width:600px){.audience-grid{grid-template-columns:1fr}.audience-grid>div{padding:20px 22px;border-right:0;border-bottom:1px solid rgba(255,255,255,.2)}.audience-grid>div:last-child{border-bottom:0}}
.trust{min-height:220px;padding:44px 48px;border:1px solid #8db7e5;border-radius:6px;grid-template-columns:1fr 1.15fr;background:linear-gradient(90deg,rgba(248,251,255,1) 0%,rgba(248,251,255,.96) 43%,rgba(248,251,255,.58) 68%,rgba(248,251,255,.14) 100%),url('images/okinawa-skyline.png') right center/cover no-repeat;overflow:hidden}.trust .section-title{font-size:1.7rem}.trust .section-title:after{width:48px;margin-top:10px}.trust p{font-weight:700;margin-bottom:0}.trust-badge{justify-content:flex-start}.trust-badge .seal{width:340px;height:94px}
@media(max-width:700px){.trust{padding:30px 25px;grid-template-columns:1fr;gap:25px;background:linear-gradient(180deg,rgba(248,251,255,.98) 0%,rgba(248,251,255,.92) 60%,rgba(248,251,255,.55) 100%),url('images/okinawa-skyline.png') 72% bottom/cover no-repeat}.trust-badge{justify-content:center}.trust-badge .seal{width:280px;height:78px}}
.trust .eyebrow{display:none}.trust-badge .seal{mix-blend-mode:multiply}
.trust{background-size:100% 100%,auto 100%;background-position:center,right bottom}
@media(max-width:700px){.trust{background-size:100% 100%,auto 62%;background-position:center,right bottom}}
.home-actions .outline{background:rgba(255,255,255,.9)}.home-solutions{background:linear-gradient(180deg,#fff 0%,#f4f8fd 100%)}.home-intro{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:end;margin-bottom:50px}.home-intro .lead{margin-top:0}.home-note{font-weight:700;color:var(--blue)}.home-solution-grid{display:grid;gap:28px}.home-solution-card{display:grid;grid-template-columns:1fr 1fr;background:#fff;box-shadow:var(--shadow);min-height:470px}.home-solution-card.reverse .home-solution-image{order:2}.home-solution-image{overflow:hidden}.home-solution-image img{width:100%;height:100%;object-fit:cover}.home-solution-copy{padding:48px;align-self:center}.solution-for{color:var(--blue);font-size:.82rem;font-weight:800;letter-spacing:.06em}.home-solution-copy h3{font-size:clamp(1.6rem,2.7vw,2.35rem);line-height:1.4;color:var(--blue);margin:8px 0 18px}.home-solution-copy ul{padding-left:1.25rem;margin:20px 0 26px}.home-solution-copy li{margin:6px 0}.home-solution-copy li::marker{color:var(--yellow)}
@media(max-width:800px){.home-intro{grid-template-columns:1fr;gap:18px}.home-solution-card{grid-template-columns:1fr}.home-solution-card.reverse .home-solution-image{order:0}.home-solution-image{height:310px}.home-solution-copy{padding:32px 28px}}
.strength .icon{width:76px;height:76px;border:0;border-radius:22px;background:linear-gradient(145deg,#f8fbff,#e8f1fc);box-shadow:inset 0 0 0 1px #c8d9ee,0 8px 20px rgba(6,56,131,.08);padding:13px}.strength .icon svg{width:100%;height:100%;fill:none;stroke:var(--blue);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.strength .icon .accent{stroke:var(--yellow);stroke-width:4}.strength .icon .accent-fill{fill:var(--yellow);stroke:var(--yellow)}.strength:hover .icon{transform:translateY(-4px);box-shadow:inset 0 0 0 1px #a9c6e8,0 12px 24px rgba(6,56,131,.14)}.strength .icon{transition:.25s ease}
.hero-heading span{display:block;white-space:nowrap}.hero-heading{font-size:clamp(1.72rem,4.05vw,4rem)}
