/* 現行サイトの白・グレーの構成とロゴカラーを引き継ぐ。 */
:root{--blue:#54c3f1;--yellow:#f8b73d;--ink:#4c4948;--heading:#58656e;--muted:#657078;--line:#e2e7e9;--pale:#f6f8f9}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;color:var(--ink);background:#fff;font-family:"Noto Sans JP","Yu Gothic",YuGothic,"Hiragino Kaku Gothic ProN",Meiryo,sans-serif;font-size:16px;line-height:1.9;-webkit-font-smoothing:antialiased}img{display:block;max-width:100%;height:auto}a{color:inherit;text-underline-offset:5px}button,input,textarea{font:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #16749b;outline-offset:5px}h1,h2,h3,p,figure{margin:0}h2,h3{font-weight:600}h3{font-size:clamp(22px,2.1vw,30px);line-height:1.65;letter-spacing:.035em}p+p{margin-top:1em}.wrap{max-width:1080px;margin-inline:auto;width:calc(100% - 80px)}.skip-link{position:fixed;z-index:20;left:16px;top:-80px;padding:12px;background:#fff}.skip-link:focus{top:12px}
.site-header{height:84px;padding:0 42px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #edf0f1;background:#fffffff5;position:sticky;top:0;z-index:10;backdrop-filter:blur(12px)}.brand{width:196px;flex-shrink:0}.site-header nav{display:flex;gap:32px;font-size:13px;font-weight:600}.site-header nav a{text-decoration:none;position:relative;padding:8px 0}.site-header nav a:after{content:"";position:absolute;bottom:0;left:0;width:100%;height:2px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .25s}.site-header nav a:hover:after,.site-header nav a:focus-visible:after{transform:scaleX(1)}
.hero{height:480px;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}.hero h1{width:365px}.hero img{width:100%}.scroll-link{display:flex;align-items:center;gap:20px;font-size:11px;letter-spacing:.1em;text-decoration:none;position:absolute;bottom:25px}.scroll-link span{font-size:20px;color:#1686b4;animation:scroll-cue 2.4s ease-in-out infinite}@keyframes scroll-cue{0%,100%{transform:translateY(-3px)}50%{transform:translateY(3px)}}
.section-heading{background:var(--heading);color:#fff;text-align:center;padding:34px 24px 39px}.eyebrow{font-size:10px;letter-spacing:.22em;color:#d3e9f3;display:block;margin-bottom:5px}.section-heading h2{font-size:26px;letter-spacing:.13em;line-height:1.6}.section-heading p{font-size:13px;margin-top:9px;letter-spacing:.025em}.service{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;padding:75px 0;border-bottom:1px solid var(--line)}.service:last-child{border-bottom:0}.service-number{display:block;color:#2188b1;font-family:Arial,sans-serif;font-size:15px;font-weight:bold;letter-spacing:.08em;margin-bottom:13px}.service-number:after{content:"";display:inline-block;vertical-align:middle;width:38px;height:2px;margin-left:16px;background:var(--blue)}.service-copy p{font-size:15px;margin-top:25px}.service-image{overflow:hidden;background:var(--pale)}.service-image img{width:100%;transition:transform .65s ease}.service-image:hover img{transform:scale(1.025)}.logo-process{background:#fff}.service-description{font-size:15px}.service-text{padding-block:58px}.service-text h3{font-size:25px}
.recruit-content{padding-block:68px;display:flex;justify-content:space-between;align-items:center;gap:40px}.recruit-content h3{font-size:23px;margin-bottom:15px}.recruit-content p{font-size:14px}.button{min-width:224px;display:inline-flex;justify-content:space-between;align-items:center;gap:36px;padding:17px 26px;background:var(--blue);border:1px solid transparent;color:#173642;text-decoration:none;cursor:pointer;font-size:14px;font-weight:600;transition:background .2s,transform .2s}.button:hover{background:#83d3f4;transform:translateY(-2px)}.button span{transition:transform .2s}.button:hover span{transform:translateX(4px)}.button:disabled{opacity:.6;cursor:wait;transform:none}
.company-content{display:grid;grid-template-columns:1fr 1fr;gap:60px;padding-block:70px}.details{margin:0;font-size:14px}.details>div{display:grid;grid-template-columns:100px 1fr;gap:15px;padding:17px 0;border-bottom:1px solid var(--line)}.details>div:first-child{padding-top:0}.details dt{font-weight:600}.details dd{margin:0}.map{min-height:330px;background:var(--pale)}.map iframe{width:100%;height:100%;min-height:330px;border:0;display:block}
.contact-content{max-width:740px;padding-block:60px 75px}.form-intro{font-size:13px;color:var(--muted);margin-bottom:28px}.contact-form{position:relative}.contact-form>label{display:block;font-size:14px;font-weight:600;margin-bottom:23px}.contact-form input:not([type=hidden]),.contact-form textarea{display:block;width:100%;background:#fafbfc;color:var(--ink);border:1px solid #cad2d7;border-radius:0;padding:12px 14px;margin-top:9px;font-size:16px;font-weight:400;line-height:1.6;transition:border-color .2s,background .2s}.contact-form input:focus,.contact-form textarea:focus{background:#fff;border-color:#1583af}.contact-form textarea{resize:vertical;min-height:180px}.required{font-size:10px;font-weight:500;color:#176b8f;background:#e8f6fc;padding:3px 7px;margin-left:10px}.trap{position:absolute;left:-10000px;top:0;width:1px;height:1px;overflow:hidden}.form-status:empty{display:none}.form-status{margin:20px 0;font-size:14px;color:#963d2b;background:#fff4ef;padding:14px 18px}.contact-phone{border-top:1px solid var(--line);margin-top:35px;padding-top:25px;font-size:13px;color:var(--muted)}.contact-phone a{display:inline-block;font-size:20px;margin-left:20px;color:var(--ink);text-decoration:none;letter-spacing:.03em}
.site-footer{background:var(--pale);border-top:1px solid var(--line)}.footer-content{padding-block:44px;display:flex;align-items:flex-end;justify-content:space-between;gap:30px}.footer-content img{width:200px;margin-bottom:24px}.footer-content p{font-size:12px;line-height:1.9}.back-top{font-size:12px;text-decoration:none}.copyright{text-align:center;border-top:1px solid var(--line);padding:18px;font-size:10px;color:var(--muted);letter-spacing:.04em}
/* 読み込み失敗やJavaScript無効時も本文を表示したままにする。 */
.reveal.is-visible{animation:reveal .65s ease both}@keyframes reveal{from{opacity:.4;transform:translateY(17px)}to{opacity:1;transform:translateY(0)}}
.page-heading{padding:60px 0;background:var(--heading);color:white}.page-heading h1{font-size:32px;letter-spacing:.1em;font-weight:600}.breadcrumb{font-size:12px;margin-bottom:25px;color:#d8e6ec}.document{max-width:840px;padding-block:60px 80px}.document h2{font-size:27px;margin-bottom:15px}.document .details{margin:36px 0}.document .details>div{grid-template-columns:145px 1fr}.document .details>div:first-child{padding-top:17px;border-top:1px solid var(--line)}.document .apply{padding:30px;background:var(--pale);border-left:3px solid var(--blue);margin:35px 0}.document .apply h3{font-size:20px;margin-bottom:15px}.document .apply a{overflow-wrap:anywhere}.document p{font-size:15px}.document .note{font-size:13px;color:var(--muted);margin-top:20px}.message-page{min-height:calc(100vh - 155px)}.message-page .button{margin-top:30px}
.section-heading p{text-wrap:balance}
.map{display:flex;flex-direction:column}.map iframe{height:330px;flex:1}.map-link{font-size:12px;padding:8px 12px;background:white;align-self:flex-end}.visually-hidden{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}.completion-title{word-break:keep-all}.message-page h2{text-wrap:balance}
@media(max-width:800px){html{scroll-padding-top:115px}.wrap{width:calc(100% - 48px)}.site-header{height:auto;min-height:92px;padding:16px 24px 10px;flex-direction:column;gap:9px}.brand{width:175px}.site-header nav{gap:24px;font-size:12px}.site-header nav a{padding:3px 0}.hero{height:390px}.hero h1{width:310px}.section-heading{padding:28px 20px 32px}.section-heading h2{font-size:24px}.section-heading p{font-size:12px}.service{gap:35px;padding:45px 0}.service-text h3{font-size:22px}.service-copy p,.service-description{font-size:14px}.recruit-content{padding-block:45px;align-items:flex-start;flex-direction:column;gap:25px}.company-content{gap:35px;grid-template-columns:1fr;padding-block:45px}.map{min-height:300px}.contact-content{padding-block:40px 50px}}
@media(max-width:520px){.wrap{width:calc(100% - 40px)}.site-header nav{gap:19px;font-size:11px}.hero{height:350px}.hero h1{width:280px}.scroll-link{bottom:18px}.service{grid-template-columns:1fr;gap:25px}.service-copy h3 br,.service-text h3 br{display:none}.service-copy h3,.service-text h3{font-size:23px}.service-copy p{margin-top:18px}.service-number{margin-bottom:9px}.service-text{gap:20px}.section-heading p{max-width:280px;margin-inline:auto}.recruit-content h3{font-size:21px}.recruit-content p br{display:none}.details>div{grid-template-columns:80px 1fr;gap:15px;font-size:13px}.contact-phone a{display:block;margin:7px 0 0}.footer-content{align-items:flex-start;flex-direction:column;padding-block:35px}.document{padding-block:38px 55px}.page-heading{padding-block:36px}.page-heading h1{font-size:27px}.document .details>div{grid-template-columns:1fr;gap:6px}.document .apply{padding:22px}.document h2{font-size:24px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
