:root{
  --navy:#16243f;
  --navy-d:#0f1c33;
  --navy-deep:#101d36;
  --yellow:#f5c518;
  --yellow-d:#e8b800;
  --cream:#faf6ef;
  --gray:#efebe4;
  --text:#2a2a2a;
  --text-light:#5a5f6a;
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
  color:var(--text);
  background:var(--cream);
  line-height:1.8;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{text-decoration:none;color:inherit;}
.container{max-width:1100px;margin:0 auto;padding:0 24px;}

/* eyebrow / labels */
.eyebrow{font-family:"Montserrat",sans-serif;letter-spacing:.22em;font-weight:700;font-size:13px;}
.eyebrow-y{color:var(--yellow);}
.eyebrow-c{color:#9aa0aa;font-weight:600;}
.center{text-align:center;}

/* ===== Header ===== */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  background:rgba(16,29,54,.92);
  backdrop-filter:blur(6px);
}
.header-inner{
  max-width:1280px;margin:0 auto;padding:0 28px;height:64px;
  display:flex;align-items:center;justify-content:space-between;
}
.logo{color:#fff;font-weight:700;font-size:17px;letter-spacing:.04em;}
.gnav{display:flex;gap:34px;margin-left:auto;margin-right:28px;}
.gnav a{color:#e9ecf2;font-size:13px;font-weight:500;transition:color .2s;}
.gnav a:hover{color:var(--yellow);}
.btn-entry-sm{
  background:var(--yellow);color:var(--navy-d);
  font-weight:700;font-size:12.5px;
  padding:9px 18px;border-radius:3px;transition:.2s;
}
.btn-entry-sm:hover{background:#fff;}

/* ===== Hero ===== */
.hero{position:relative;height:100vh;min-height:620px;overflow:hidden;display:flex;align-items:center;}
.hero-bg{
  position:absolute;inset:0;
  background:url("images/hero.jpg") center/cover no-repeat;
}
.hero-overlay{
  position:absolute;inset:0;
  background:linear-gradient(105deg,rgba(13,24,46,.92) 0%,rgba(15,28,51,.78) 38%,rgba(15,28,51,.25) 75%,rgba(15,28,51,.15) 100%);
}
.hero-content{position:relative;z-index:2;max-width:1100px;margin:0 auto;padding:0 40px;width:100%;}

/* ===== Opening Motion（オープニング） ===== */
body.intro-lock{overflow:hidden;}
.intro{
  position:fixed;inset:0;z-index:9999;
  background:radial-gradient(120% 120% at 50% 40%,#16243f 0%,#0c1830 70%,#0a1428 100%);
  display:flex;align-items:center;justify-content:center;overflow:hidden;
  transition:transform .9s cubic-bezier(.76,0,.24,1);
}
.intro--done{transform:translateY(-100%);}
.intro-grid{
  position:absolute;inset:-20% -20%;
  background-image:linear-gradient(rgba(245,197,24,.10) 1px,transparent 1px),linear-gradient(90deg,rgba(245,197,24,.10) 1px,transparent 1px);
  background-size:46px 46px;
  transform:perspective(600px) rotateX(58deg) translateY(0);
  animation:introGrid 2.4s linear infinite;opacity:.5;
}
@keyframes introGrid{from{background-position:0 0;}to{background-position:0 46px;}}
.intro-inner{position:relative;z-index:2;text-align:center;color:#fff;}
.intro-bolt{
  display:inline-flex;align-items:center;justify-content:center;
  width:150px;height:150px;
  transform:scale(.4);opacity:0;
  animation:boltIn .8s cubic-bezier(.2,1.4,.4,1) .1s forwards;
}
.bolt-svg{width:150px;height:150px;overflow:visible;
  filter:drop-shadow(0 0 14px rgba(245,197,24,.45));
  animation:boltFloat 3s ease-in-out 1s infinite;}
.bolt-ring{fill:none;stroke-linecap:round;transform-box:fill-box;transform-origin:center;}
.bolt-ring1{stroke:rgba(245,197,24,.55);stroke-width:2;stroke-dasharray:5 12;animation:spin 7s linear infinite;}
.bolt-ring2{stroke:rgba(255,255,255,.30);stroke-width:1.5;stroke-dasharray:2 10;animation:spinRev 5s linear infinite;}
.bolt-core{fill:rgba(245,197,24,.10);stroke:rgba(245,197,24,.35);stroke-width:1;animation:corePulse 1.8s ease-out .9s infinite;}
.bolt-path{
  fill:url(#boltGrad);fill-opacity:0;
  stroke:#fff2b0;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round;
  stroke-dasharray:240;stroke-dashoffset:240;
  filter:drop-shadow(0 0 8px rgba(245,197,24,.8));
  animation:boltDraw .8s ease .3s forwards, boltFill .35s ease .95s forwards;
}
@keyframes boltIn{0%{transform:scale(.4) rotate(-30deg);opacity:0;}60%{transform:scale(1.1) rotate(5deg);}100%{transform:scale(1) rotate(0);opacity:1;}}
@keyframes boltFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-6px);}}
@keyframes spin{to{transform:rotate(360deg);}}
@keyframes spinRev{to{transform:rotate(-360deg);}}
@keyframes corePulse{0%{transform:scale(1);opacity:.9;}70%{transform:scale(1.25);opacity:0;}100%{opacity:0;}}
@keyframes boltDraw{to{stroke-dashoffset:0;}}
@keyframes boltFill{to{fill-opacity:1;}}
.intro-copy{
  font-family:"Noto Serif JP","Yu Mincho",serif;font-weight:700;
  font-size:clamp(20px,3.4vw,30px);margin-top:28px;letter-spacing:.06em;
  opacity:0;transform:translateY(18px);animation:introUp .8s ease .55s forwards;
}
.intro-logo{
  font-size:13px;letter-spacing:.3em;color:var(--yellow);margin-top:16px;
  opacity:0;transform:translateY(14px);animation:introUp .8s ease .95s forwards;
}
@keyframes introUp{to{opacity:1;transform:none;}}
.intro-flash{
  position:fixed;inset:0;z-index:10000;pointer-events:none;opacity:0;
  background:radial-gradient(circle at 50% 42%,#ffffff 0%,#ffffff 38%,#fff7d6 68%,#ffe9a0 100%);
  transition:opacity .25s ease-in;
}
.intro-flash.flash-on{opacity:1;}
.intro-flash.flash-off{opacity:0;transition:opacity .6s ease-out;}

/* ヒーロー要素の登場（フラッシュと同時に見出しが浮き上がる） */
.hero-title .bar{transform:scaleY(0);transform-origin:center;transition:transform .55s cubic-bezier(.2,.8,.2,1);}
.ht-line{display:block;opacity:0;transform:translateY(64px);filter:blur(4px);
  transition:opacity .9s cubic-bezier(.16,.84,.28,1),transform .9s cubic-bezier(.16,.84,.28,1),filter .9s ease;}
.hero-sub,.hero-btns{opacity:0;transform:translateY(22px);transition:opacity .8s ease,transform .8s ease;}
.scroll-ind{opacity:0;transition:opacity .8s ease;}
body.hero-in .hero-title .bar{transform:scaleY(1);transition-delay:0s;}
body.hero-in .hero-title .ht-line:nth-child(2){opacity:1;transform:none;filter:none;transition-delay:.05s;}
body.hero-in .hero-title .ht-line:nth-child(3){opacity:1;transform:none;filter:none;transition-delay:.2s;}
body.hero-in .hero-title{animation:titleGlow 1.2s ease .05s both;}
body.hero-in .hero-sub{opacity:1;transform:none;transition-delay:.6s;}
body.hero-in .hero-btns{opacity:1;transform:none;transition-delay:.78s;}
body.hero-in .scroll-ind{opacity:1;transition-delay:1s;}
@keyframes titleGlow{
  0%{text-shadow:0 0 30px rgba(245,197,24,.95),0 0 60px rgba(245,197,24,.55);}
  100%{text-shadow:0 2px 14px rgba(0,0,0,.4);}
}
@media(prefers-reduced-motion:reduce){
  .hero-title .bar,.ht-line,.hero-sub,.hero-btns,.scroll-ind{opacity:1;transform:none;filter:none;transition:none;}
  body.hero-in .hero-title{animation:none;}
}
.hero-title{
  position:relative;color:#fff;font-weight:900;
  font-family:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;
  font-size:clamp(38px,6vw,76px);line-height:1.3;letter-spacing:.02em;
  padding-left:30px;text-shadow:0 2px 14px rgba(0,0,0,.4);
}
.hero-title .bar{
  position:absolute;left:0;top:6px;bottom:6px;width:8px;
  background:var(--yellow);
}
.ht-line{display:block;}
.hero-sub{color:#ffffff;margin-top:26px;font-size:15px;line-height:1.9;text-shadow:0 1px 8px rgba(0,0,0,.6);}
.hero-btns{margin-top:38px;display:flex;gap:18px;flex-wrap:wrap;}
.btn{
  display:inline-block;padding:15px 40px;font-weight:700;font-size:14px;
  border-radius:3px;transition:.22s;cursor:pointer;
}
.btn-yellow{background:var(--yellow);color:var(--navy-d);}
.btn-yellow:hover{background:#fff;transform:translateY(-2px);}
.btn-outline{border:2px solid #fff;color:#fff;}
.btn-outline:hover{background:#fff;color:var(--navy-d);}
.scroll-ind{
  position:absolute;left:50%;bottom:26px;transform:translateX(-50%);z-index:3;
  color:#fff;font-family:"Montserrat",sans-serif;font-size:11px;letter-spacing:.2em;
  display:flex;flex-direction:column;align-items:center;gap:4px;
}
.scroll-ind .chev{font-size:18px;animation:bob 1.6s infinite;}
@keyframes bob{0%,100%{transform:translateY(0);}50%{transform:translateY(6px);}}

/* ===== Message ===== */
.message{background:var(--navy);color:#fff;text-align:center;padding:96px 0 104px;}
.msg-head{
  font-family:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;
  font-size:clamp(26px,4vw,40px);font-weight:700;margin:20px 0 0;
  display:inline-block;padding-bottom:18px;position:relative;
}
.msg-head::after{
  content:"";position:absolute;left:50%;bottom:0;transform:translateX(-50%);
  width:54px;height:3px;background:var(--yellow);
}
.msg-text{margin-top:34px;font-size:14.5px;line-height:2.3;color:#cdd4e0;}

/* ===== Works 01（施工事例 / marquee） ===== */
.works-feature{background:var(--cream);padding:70px 0 80px;overflow:hidden;}
.works-dome{
  position:relative;
  width:calc(100% - 96px);max-width:1240px;margin:0 auto;
  background:var(--navy);
  border-radius:50% 50% 26px 26px / 88px 88px 26px 26px;
  padding:94px 0 68px;
}
.dome-mark{
  position:absolute;top:-26px;left:50%;transform:translateX(-50%);
  width:52px;height:52px;background:var(--yellow);color:var(--navy);
  border-radius:50%;display:flex;align-items:center;justify-content:center;
  box-shadow:0 6px 16px rgba(0,0,0,.25);
}
.dome-mark svg{width:26px;height:26px;}
.works-intro{text-align:center;color:#fff;}
.works-num{font-family:"Montserrat",sans-serif;font-weight:800;font-style:italic;color:var(--yellow);font-size:20px;letter-spacing:.1em;}
.works-head{font-size:clamp(30px,5vw,52px);font-weight:900;letter-spacing:.06em;margin-top:4px;}
.works-lead{margin-top:22px;font-size:14px;line-height:2;color:#cdd4e0;}
.marquee{
  position:relative;width:100vw;left:50%;margin-left:-50vw;
  margin-top:46px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
}
.marquee-track{display:flex;width:max-content;gap:24px;animation:marquee 48s linear infinite;}
.marquee:hover .marquee-track{animation-play-state:paused;}
@keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}
.work-card{flex:0 0 auto;width:300px;text-decoration:none;}
.work-thumb{width:300px;height:200px;overflow:hidden;border-radius:4px;background:#0c1830;box-shadow:0 10px 24px rgba(0,0,0,.18);}
.work-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .5s;}
.work-card:hover .work-thumb img{transform:scale(1.06);}
.work-name{margin-top:14px;font-size:13px;font-weight:700;color:#fff;text-align:center;letter-spacing:.02em;}
.works-more{text-align:center;margin-top:46px;}
.more-btn{
  display:inline-flex;align-items:center;gap:22px;
  border:1.5px solid rgba(255,255,255,.6);color:#fff;border-radius:40px;
  font-family:"Montserrat",sans-serif;font-weight:700;letter-spacing:.18em;font-size:14px;
  padding:16px 44px;transition:.25s;
}
.more-btn .arrow{transition:transform .25s;}
.more-btn:hover{background:var(--yellow);border-color:var(--yellow);color:var(--navy-d);}
.more-btn:hover .arrow{transform:translateX(6px);}

/* ===== Positions（ドーム内・静止カード） ===== */
.pos-cards{max-width:940px;margin:46px auto 0;}
.pos-cards .cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.pos-cards .card{box-shadow:0 16px 34px rgba(0,0,0,.30);border-color:#e7e7e7;}

/* ===== Works List Page ===== */
.works-list-section{background:var(--cream);padding:56px 0 90px;}
.work-filters{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-bottom:44px;}
.wfilter{
  font-family:inherit;font-size:13px;font-weight:700;cursor:pointer;
  padding:9px 22px;border-radius:30px;border:1.5px solid #c9cdd5;background:#fff;color:#54606f;transition:.2s;
}
.wfilter:hover{border-color:var(--navy);color:var(--navy);}
.wfilter.active{background:var(--navy);border-color:var(--navy);color:#fff;}
.works-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;}
.wl-card{background:#fff;border:1px solid #e3e3e3;border-radius:6px;overflow:hidden;box-shadow:6px 6px 0 rgba(22,36,63,.85);transition:transform .2s;}
.wl-card:hover{transform:translateY(-4px);}
.wl-thumb{position:relative;width:100%;aspect-ratio:3/2;overflow:hidden;background:#0c1830;}
.wl-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .5s;}
.wl-card:hover .wl-thumb img{transform:scale(1.05);}
.wl-cat{position:absolute;top:0;left:0;background:var(--yellow);color:var(--navy-d);font-size:11px;font-weight:700;padding:5px 14px;}
.wl-body{padding:20px 20px 24px;}
.wl-body h3{font-size:16px;font-weight:700;color:var(--navy);line-height:1.5;}
.wl-body dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:14px 0 14px;font-size:12.5px;}
.wl-body dt{color:#8a94a3;font-weight:700;}
.wl-body dd{color:var(--text);}
.wl-body p{font-size:12.5px;color:var(--text-light);line-height:1.9;padding-top:14px;border-top:1px solid #eee;}
.works-empty{text-align:center;color:#8a94a3;padding:50px 0;}
.works-back{text-align:center;margin-top:54px;}

/* ===== Positions ===== */
.positions{background:var(--gray);padding:84px 0 96px;}
.section-pill{text-align:center;margin:14px 0 50px;}
.section-pill span{
  display:inline-block;background:var(--navy);color:var(--yellow);
  font-weight:700;font-size:15px;padding:9px 26px;letter-spacing:.06em;
}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.card{
  position:relative;background:#fff;padding:0 0 34px;overflow:hidden;
  border:1px solid #d9d9d9;box-shadow:7px 7px 0 rgba(22,36,63,.9);
}
.card-corner{
  position:absolute;top:0;right:0;z-index:3;width:0;height:0;
  border-style:solid;border-width:0 34px 34px 0;
  border-color:transparent var(--navy) transparent transparent;
}
.card-photo{width:100%;aspect-ratio:4/3;overflow:hidden;margin-bottom:24px;background:#222;}
.card-photo img{width:100%;height:100%;object-fit:cover;}
.card-title,.card-desc,.card-list{padding-left:28px;padding-right:28px;}
.card-title{font-size:19px;font-weight:700;color:var(--navy);margin-bottom:14px;}
.card-desc{font-size:13px;color:var(--text-light);line-height:2;}
.card-list{list-style:none;margin-top:20px;}
.card-list li{font-size:13px;font-weight:700;color:var(--navy);padding-left:18px;position:relative;margin-top:8px;}
.card-list li::before{content:"";position:absolute;left:0;top:.7em;width:8px;height:8px;background:var(--yellow);}

/* ===== Schedule ===== */
.schedule{background:var(--cream);padding:80px 0 90px;}
.sched-tabs{display:flex;justify-content:center;gap:0;margin-top:26px;}
.sched-tab{
  font-family:inherit;font-size:15px;font-weight:700;cursor:pointer;
  padding:12px 40px;border:2px solid var(--navy);background:#fff;color:var(--navy);
  transition:.2s;
}
.sched-tab:first-child{border-right:none;}
.sched-tab.active{background:var(--navy);color:var(--yellow);}
.tl-pane{display:none;}
.tl-pane.active{display:block;}
.timeline{position:relative;margin-top:48px;}
.tl-line{position:absolute;left:50%;top:0;bottom:0;width:2px;background:var(--navy);transform:translateX(-50%);}
.tl-item{
  position:relative;display:grid;grid-template-columns:1fr 70px 1fr;
  align-items:center;min-height:120px;
}
.tl-text{padding:0 44px;}
.tl-time{font-family:"Montserrat",sans-serif;font-weight:700;font-size:30px;color:#2a2a2a;padding:0 44px;}
/* left item: text | dot | time */
.tl-item.left .tl-text{grid-column:1;text-align:right;}
.tl-item.left .tl-time{grid-column:3;text-align:left;}
/* right item: time | dot | text */
.tl-item.right .tl-time{grid-column:1;text-align:right;}
.tl-item.right .tl-text{grid-column:3;text-align:left;}
.tl-dot{
  grid-column:2;justify-self:center;
  transform:rotate(45deg);
  width:24px;height:24px;background:var(--yellow);border:2px solid var(--navy);z-index:2;
}
.tl-title{font-weight:700;color:var(--navy);font-size:15px;}
.tl-desc{font-size:12.5px;color:var(--text-light);margin-top:4px;line-height:1.9;}

/* ===== Stats ===== */
.stats{
  background:var(--navy-d);color:#fff;padding:74px 0;
  clip-path:polygon(0 22px,18% 6px,42% 14px,68% 2px,100% 18px,100% 100%,0 100%);
  margin-top:-10px;
}
.stats-inner{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.stat{text-align:center;}
.stat-num{
  font-family:"Montserrat",sans-serif;font-style:italic;font-weight:800;
  color:var(--yellow);font-size:clamp(44px,6vw,68px);line-height:1;
}
.stat-label{
  font-size:13px;color:#d6dbe6;margin-top:18px;padding-top:16px;
  border-top:1px solid rgba(255,255,255,.25);
}

/* ===== Welfare ===== */
.welfare{background:var(--cream);padding:84px 0 92px;}
.welfare-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:42px;}
.wf-card{
  background:#fff;border:1px solid #e0e0e0;padding:24px 22px;
  display:flex;gap:16px;box-shadow:4px 4px 0 rgba(22,36,63,.85);
}
.wf-icon{flex-shrink:0;width:38px;height:38px;color:#bf9b46;display:flex;align-items:center;justify-content:center;}
.wf-icon svg{width:38px;height:38px;display:block;}
.wf-card h4{font-size:15px;font-weight:700;color:var(--navy);margin-bottom:6px;}
.wf-card p{font-size:12px;color:var(--text-light);line-height:1.85;}

/* ===== Guarantee ===== */
.guarantee{background:var(--yellow);padding:80px 0;}
.guarantee-inner{display:flex;gap:56px;align-items:center;}
.g-text{flex:1;}
.g-head{font-size:clamp(22px,3vw,32px);font-weight:900;color:var(--navy-d);line-height:1.5;}
.g-desc{margin-top:22px;font-size:13.5px;color:#3a3320;line-height:2.1;}
.g-stats{display:flex;align-items:center;gap:28px;margin-top:34px;}
.g-stat{background:#fff;padding:18px 26px;border:2px solid var(--navy-d);text-align:center;}
.g-num{font-family:"Montserrat",sans-serif;font-weight:800;font-size:34px;color:var(--navy-d);line-height:1;}
.g-num span{font-size:20px;}
.g-cap{font-size:11px;font-weight:700;color:var(--navy-d);margin-top:6px;}
.g-divider{width:1px;height:48px;background:var(--navy-d);opacity:.4;}
.g-img{flex:0 0 42%;transform:rotate(-2deg);}
.g-img img{box-shadow:14px 14px 0 var(--navy-d);border:4px solid #fff;}

/* ===== Recruitment ===== */
.recruitment{background:var(--cream);padding:84px 0 96px;}
.recruit-table{width:100%;border-collapse:collapse;margin-top:38px;border:1px solid #d7d7d7;}
.recruit-table th{
  background:var(--navy);color:#fff;font-weight:700;font-size:14px;
  width:170px;text-align:left;padding:22px 24px;vertical-align:middle;
  border-bottom:1px solid rgba(255,255,255,.12);
}
.recruit-table td{
  background:#fff;padding:22px 28px;font-size:13.5px;color:var(--text);
  border-bottom:1px solid #e4e4e4;line-height:1.9;
}
.recruit-table tr:last-child th,.recruit-table tr:last-child td{border-bottom:none;}

/* ===== CTA ===== */
.cta{
  background:linear-gradient(180deg,#16243f 0%,#0f1c33 100%);
  color:#fff;text-align:center;padding:96px 0 0;position:relative;
}
.cta-head{font-family:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;font-size:clamp(30px,5vw,56px);font-weight:900;letter-spacing:.02em;}
.cta-sub{margin-top:18px;font-size:13px;color:var(--yellow);font-weight:500;}
.cta-btns{margin-top:40px;display:flex;gap:22px;justify-content:center;flex-wrap:wrap;padding-bottom:80px;}
.btn-line{background:rgba(255,255,255,.04);border:2px solid #3a4d6e;color:#fff;}
.btn-line:hover{background:#fff;color:var(--navy-d);}
.cta-divider{height:3px;background:var(--yellow);}

/* ===== Footer ===== */
.site-footer{background:var(--navy-d);color:#fff;text-align:center;padding:54px 20px 40px;}
.footer-logo{font-weight:700;font-size:17px;letter-spacing:.05em;}
.footer-nav{display:flex;gap:32px;justify-content:center;margin:26px 0;flex-wrap:wrap;}
.footer-nav a{font-size:12.5px;color:#cdd4e0;transition:.2s;}
.footer-nav a:hover{color:var(--yellow);}
.copyright{font-size:10.5px;color:#5b6577;letter-spacing:.05em;}

/* ===== Entry Form Page ===== */
.btn-navy{background:var(--navy);color:#fff;}
.btn-navy:hover{background:var(--navy-d);}
.form-hero{
  background:linear-gradient(180deg,#16243f 0%,#0f1c33 100%);
  color:#fff;text-align:center;padding:140px 0 70px;
}
.form-hero-title{font-size:clamp(28px,5vw,44px);font-weight:900;margin-top:8px;letter-spacing:.04em;}
.form-hero-sub{margin-top:18px;font-size:14px;color:#cdd4e0;line-height:1.9;}
.form-section{background:var(--cream);padding:60px 0 90px;}
.form-container{max-width:760px;}
.entry-form{background:#fff;border:1px solid #e2e2e2;border-radius:8px;padding:44px 44px 40px;box-shadow:6px 6px 0 rgba(22,36,63,.85);}
.field{margin-bottom:24px;}
.field > label{display:block;font-size:14px;font-weight:700;color:var(--navy);margin-bottom:9px;}
.req{display:inline-block;background:var(--yellow);color:var(--navy-d);font-size:10px;font-weight:700;padding:2px 8px;border-radius:3px;margin-left:6px;vertical-align:middle;}
.field input[type=text],.field input[type=tel],.field input[type=email],.field input[type=number],.field select,.field textarea{
  width:100%;padding:13px 14px;border:1px solid #cfd4dc;border-radius:5px;font-family:inherit;font-size:15px;color:var(--text);background:#fdfdfd;transition:border .2s;
}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(22,36,63,.08);}
.field textarea{resize:vertical;line-height:1.7;}
.field-row{display:flex;gap:20px;}
.field-row .field{flex:1;}
.radio-row{display:flex;gap:22px;flex-wrap:wrap;padding-top:4px;}
.radio{font-size:14px;font-weight:500;color:var(--text);cursor:pointer;display:flex;align-items:center;gap:7px;}
.radio input{width:17px;height:17px;accent-color:var(--navy);}
.consent{background:#f6f4ef;border:1px solid #e6e2d8;border-radius:6px;padding:18px 20px;margin-top:8px;}
.checkbox{display:flex;align-items:flex-start;gap:10px;font-size:14px;font-weight:700;color:var(--navy);cursor:pointer;}
.checkbox input{width:18px;height:18px;margin-top:2px;accent-color:var(--navy);flex-shrink:0;}
.consent-note{font-size:12px;color:var(--text-light);margin-top:10px;line-height:1.7;}
.form-actions{text-align:center;margin-top:34px;}
.form-actions .btn{min-width:300px;padding:17px 40px;font-size:15px;}
.form-actions .btn:disabled{opacity:.6;cursor:not-allowed;}
.form-error{color:#c0392b;font-size:13px;text-align:center;margin-top:16px;min-height:18px;}
.form-success{background:#fff;border:1px solid #e2e2e2;border-radius:8px;padding:60px 40px;text-align:center;box-shadow:6px 6px 0 rgba(22,36,63,.85);}
.success-icon{width:72px;height:72px;margin:0 auto 24px;color:#1d8a4c;}
.success-icon svg{width:72px;height:72px;}
.form-success h2{font-size:24px;color:var(--navy);font-weight:900;margin-bottom:16px;}
.form-success p{font-size:14px;color:var(--text-light);line-height:1.9;margin-bottom:30px;}

/* ===== Responsive ===== */
@media(max-width:880px){
  .gnav{display:none;}
  .entry-form{padding:30px 22px;}
  .field-row{flex-direction:column;gap:0;}
  .cards{grid-template-columns:1fr;}
  .welfare-grid{grid-template-columns:1fr;}
  .stats-inner{grid-template-columns:repeat(2,1fr);gap:40px 20px;}
  .guarantee-inner{flex-direction:column;}
  .g-img{width:100%;}
  .works-grid{grid-template-columns:repeat(2,1fr);gap:20px;}
  .works-dome{width:calc(100% - 32px);border-radius:50% 50% 18px 18px / 46px 46px 18px 18px;padding:70px 0 56px;}
}
@media(max-width:560px){
  .works-grid{grid-template-columns:1fr;}
  .work-card,.work-thumb{width:240px;}
  .work-thumb{height:160px;}
}
@media(max-width:560px){
  .tl-line{left:18px;}
  .tl-item{grid-template-columns:36px 1fr;}
  .tl-dot{grid-column:1;justify-self:center;}
  .tl-item.left .tl-time,.tl-item.right .tl-time{grid-column:2;grid-row:1;text-align:left;padding:0 0 0 16px;}
  .tl-item.left .tl-text,.tl-item.right .tl-text{grid-column:2;grid-row:2;text-align:left;padding:0 0 0 16px;}
  .tl-dot{grid-row:1;}
  .recruit-table th{width:110px;padding:16px;font-size:12px;}
}
