:root{
  --paper:#f3f8fc;
  --paper-dim:#e8f1f8;
  --ink:#122536;
  --ink-soft:#2a4156;
  --steel:#156eab;
  --steel-light:#5d96b8;
  --safety:#1578e8;
  --safety-dark:#0a64c9;
  --line:#cde0ee;
  --white:#ffffff;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth; overflow-x:hidden;}
body{
  font-family:'Noto Sans JP', sans-serif;
  font-size:18px;
  background:var(--paper);
  color:var(--ink);
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
.wrap{max-width:1120px; margin:0 auto; padding:0 28px;}
.sp-fixbar{display:none;}

/* ---------- header ---------- */
header{
  position:sticky; top:0; z-index:50;
  border-bottom:1px solid var(--line);
}
header::before{
  content:"";
  position:absolute; inset:0; z-index:-1;
  background:rgba(243,248,252,0.94);
  backdrop-filter:blur(6px);
}

.header-inner{
  max-width:1440px; margin:0 auto; padding:14px 40px;
  display:flex; align-items:center; justify-content:space-between; gap:24px;
}
.brand{display:flex; align-items:center; gap:12px; font-weight:900; font-size:18px; letter-spacing:.02em;}
.brand-logo{height:52px; width:auto; object-fit:contain; flex-shrink:0;}
.brand small{display:block; font-weight:500; font-size:13px; color:var(--ink-soft); letter-spacing:.04em;}
header nav{display:flex; align-items:center; gap:28px;}
header nav a{
  position:relative;
  font-size:16px; font-weight:500; color:var(--ink-soft); white-space:nowrap;
  padding-bottom:6px;
  transition:color .2s ease;
}
header nav a::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:2px;
  background:var(--safety);
  transform:scaleX(0); transform-origin:left center;
  transition:transform .25s ease;
}
header nav a:hover{color:var(--ink);}
header nav a:hover::after{transform:scaleX(1);}
.header-actions{display:flex; align-items:center; gap:14px;}
.tel-badge{display:flex; flex-direction:column; align-items:flex-end; line-height:1.3;}
.tel-badge .num{font-size:21px; font-weight:900; letter-spacing:.02em;}
.tel-badge .cap{font-size:12px; color:var(--ink-soft);}
.header-panel{display:flex; align-items:center; gap:28px; margin-left:auto;}
.nav-toggle{
  display:none; width:44px; height:44px; padding:0; border:0;
  background:transparent; cursor:pointer; flex-shrink:0; margin-left:auto;
  align-items:center; justify-content:center;
}
.nav-toggle span{
  display:block; width:22px; height:2px; background:var(--ink); position:relative;
}
.nav-toggle span::before,
.nav-toggle span::after{
  content:""; position:absolute; left:0; width:22px; height:2px; background:var(--ink);
  transition:transform .2s ease, top .2s ease;
}
.nav-toggle span::before{top:-7px;}
.nav-toggle span::after{top:7px;}
.nav-toggle[aria-expanded="true"] span{background:transparent;}
.nav-toggle[aria-expanded="true"] span::before{top:0; transform:rotate(45deg);}
.nav-toggle[aria-expanded="true"] span::after{top:0; transform:rotate(-45deg);}
.btn-cta,
.btn-outline{
  display:inline-flex; align-items:center; justify-content:center;
  box-sizing:border-box; font-family:inherit; font-weight:700; font-size:16px;
  line-height:1; width:280px; max-width:100%; min-height:48px; padding:0 28px;
  border-width:1px; border-style:solid;
}
.btn-cta{
  background:var(--safety); color:#fff;
  border-color:var(--safety); white-space:nowrap;
  transition:background .15s ease;
}
header .btn-cta{
  display:inline; width:auto; max-width:none; min-height:0;
  padding:11px 22px; line-height:inherit;
}
.btn-cta:hover{background:var(--safety-dark);}
.btn-outline{
  border-color:var(--ink); background:transparent;
}
.btn-cta::after,
.btn-outline::after{
  content:"→"; margin-left:8px; transition:transform .2s ease;
}
.btn-cta:hover::after,
.btn-outline:hover::after{transform:translateX(4px);}
header .btn-cta::after{content:none;}
.hero .btn-outline{border-color:#fff; color:#fff;}
.hero .btn-outline:hover{background:rgba(255,255,255,0.12);}
@media (max-width:1199px){
  .nav-toggle{display:flex;}
  .header-panel{
    display:flex; flex-direction:column; align-items:stretch; gap:0;
    position:fixed; top:83px; left:0; right:0; bottom:0;
    margin:0; padding:8px 20px 32px;
    background:var(--paper);
    transform:translateX(100%);
    transition:transform .25s ease;
    overflow:auto;
    z-index:40;
  }
  .header-panel.is-open{transform:none;}
  header nav{
    display:flex; flex-direction:column; align-items:stretch; gap:0;
  }
  header nav a{
    font-size:17px; padding:16px 0; border-bottom:1px solid var(--line);
  }
  header nav a::after{display:none;}
  .header-actions{
    flex-direction:column; align-items:stretch; gap:16px; margin-top:24px;
  }
  .tel-badge{align-items:flex-start;}
  .header-actions .btn-cta{text-align:center;}
  body.nav-open{overflow:hidden;}
}
@media (max-width:860px){
  .header-inner{padding:12px 16px; gap:8px;}
  header .brand{
    gap:8px; min-width:0; max-width:calc(100% - 52px); font-size:14px;
  }
  header .brand span{display:block; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
  header .brand small{display:none;}
  header .brand-logo{height:44px;}
  .header-panel{
    top:68px;
    bottom:calc(52px + env(safe-area-inset-bottom, 0px));
  }
}

/* ---------- hero ---------- */
.hero{
  position:relative; overflow:hidden;
  border-bottom:1px solid var(--line);
  color:#fff;
  min-height:520px;
}
.hero-slides{position:absolute; inset:0; z-index:0;}
.hero-slide{
  position:absolute; inset:0; overflow:hidden;
  opacity:0; z-index:0;
  transition:opacity 1.1s ease;
}
.hero-slide.is-active{opacity:1; z-index:1;}
.hero-slide-bg{
  position:absolute; inset:0;
  background-size:cover; background-position:center center; background-repeat:no-repeat;
  transform:scale(1); transform-origin:center center;
}
.hero-slide-bg img{
  width:100%; height:100%; object-fit:cover; display:block;
}
.hero-slide.is-active .hero-slide-bg{
  animation:hero-zoom 7s linear forwards;
}
@keyframes hero-zoom{
  from{transform:scale(1);}
  to{transform:scale(1.12);}
}
@media (prefers-reduced-motion: reduce){
  .hero-slide.is-active .hero-slide-bg{animation:none;}
  .hero-intro .hero-eyebrow,
  .hero-intro h1,
  .hero-intro .lead,
  .hero-intro .hero-ctas{
    opacity:1; transform:none; animation:none;
  }
  .hero-intro h1::after{transform:scaleX(1); animation:none;}
}
.hero::after{
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(100deg,
    rgba(10,28,48,0.88) 0%,
    rgba(10,28,48,0.62) 42%,
    rgba(10,28,48,0.34) 100%);
}
.hero-inner{
  position:relative; z-index:2;
  max-width:1120px; margin:0 auto; padding:64px 28px 88px;
  display:block;
}
.hero-eyebrow{font-size:15px; color:#7ab8ea; font-weight:700; margin-bottom:18px;}
.hero h1{
  position:relative;
  font-size:46px; font-weight:900; line-height:1.35; letter-spacing:.01em; margin-bottom:22px;
}
.hero h1::after{
  content:""; display:block; width:56px; height:2px; margin-top:16px;
  background:var(--safety); transform:scaleX(0); transform-origin:left center;
}
.hero p.lead{
  font-size:18px; color:rgba(255,255,255,0.9); max-width:none; margin-bottom:34px;
}
.hero p.lead span{display:block; white-space:nowrap;}
.hero-ctas{display:flex; gap:14px; flex-wrap:wrap;}
.hero-intro .hero-eyebrow,
.hero-intro h1,
.hero-intro .lead,
.hero-intro .hero-ctas{
  opacity:0; transform:translateY(12px);
  animation:hero-enter .7s ease-out both;
}
.hero-intro .hero-eyebrow{animation-delay:.08s;}
.hero-intro h1{animation-delay:.22s;}
.hero-intro h1::after{animation:hero-line .4s ease-out .34s forwards;}
.hero-intro .lead{animation-delay:.38s;}
.hero-intro .hero-ctas{animation-delay:.52s;}
@keyframes hero-enter{
  from{opacity:0; transform:translateY(12px);}
  to{opacity:1; transform:translateY(0);}
}
@keyframes hero-line{
  to{transform:scaleX(1);}
}
@media (max-width:860px){
  .hero{
    min-height:0;
  }
  .hero::after{
    background:linear-gradient(rgba(10,28,48,0.82), rgba(10,28,48,0.82));
  }
  .hero-inner{padding:56px 20px 48px;}
  .hero h1{font-size:34px;}
  .hero h1 br{display:none;}
  .hero-ctas{justify-content:center;}
  .hero p.lead span{white-space:normal;}
}

/* ---------- section shell ---------- */
section{padding:84px 0;}
.section-head{margin-bottom:48px;}
.section-tag{font-size:15px; font-weight:700; color:var(--safety); margin-bottom:10px;}
.section-head h2{font-size:38px; font-weight:900; line-height:1.45; margin-bottom:14px;}
.section-head p{color:var(--ink-soft); font-size:17px;}
.company-heading{font-size:38px; font-weight:900; line-height:1.45; margin-bottom:16px;}
.company-lead{color:var(--ink-soft); font-size:16.5px; margin-bottom:20px;}
.section-head h2,
.section-head p,
.recruit h2,
.recruit p,
.contact-cta h2,
.contact-cta p,
.company-heading,
.company-lead{
  white-space:nowrap;
}
@media (max-width:960px){
  .section-head h2,
  .recruit h2,
  .contact-cta h2,
  .company-heading{font-size:28px;}
  .section-head h2,
  .section-head p,
  .recruit h2,
  .recruit p,
  .contact-cta h2,
  .contact-cta p,
  .company-heading,
  .company-lead{
    white-space:normal;
    overflow-wrap:anywhere;
  }
}
.band-alt{background:var(--white); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}

/* ---------- 選ばれる理由 ---------- */
.reasons{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.reason-card{position:relative; overflow:hidden; background:var(--white); padding:32px 26px;}
.reason-deco{
  position:absolute; right:4px; top:2px;
  width:88px; height:88px;
  color:var(--steel); opacity:.12;
  pointer-events:none;
}
.reason-card h3{position:relative; z-index:1; font-size:22px; font-weight:700; margin:0 0 8px;}
.reason-card p{position:relative; z-index:1; font-size:15.5px; color:var(--ink-soft);}
@media (max-width:860px){
  .wrap{padding:0 16px;}
  .hero-inner{padding:48px 16px 56px; max-width:100%;}
  .hero h1{font-size:30px;}
  .hero-eyebrow{font-size:13px; white-space:normal;}
  .page-head h1{font-size:24px;}
  .contact-tel{font-size:22px;}
  .contact-info-tel{font-size:26px;}
  .reason-card{padding:24px 18px;}
  .reasons{grid-template-columns:1fr;}
  .company-table dl{display:block;}
  .company-table dt{width:auto; margin-bottom:4px;}
  .company-table dd{overflow-wrap:anywhere;}
  .btn-outline{white-space:normal;}
  .copyright{overflow-wrap:anywhere;}
  .recruit-float{display:none;}
  .sp-fixbar{
    display:grid; grid-template-columns:1fr 1fr;
    position:fixed; left:0; right:0; bottom:0; z-index:70;
    padding-bottom:env(safe-area-inset-bottom, 0px);
  }
  .sp-fixbar a{
    display:flex; align-items:center; justify-content:center;
    min-height:52px; font-size:15px; font-weight:700; color:#fff;
  }
  .sp-fixbar a:first-child{background:var(--safety);}
  .sp-fixbar a:last-child{background:var(--steel);}
  body{padding-bottom:calc(52px + env(safe-area-inset-bottom, 0px));}
  .contact-info-list > div{grid-template-columns:1fr; gap:4px;}
  .work-body h3{overflow-wrap:anywhere;}
  .biz-text h2{overflow-wrap:anywhere;}
}

/* ---------- 事業内容 spec grid ---------- */
.specs{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.spec-card{
  position:relative; border:1px solid var(--line); background:var(--paper);
  padding:26px 22px 24px;
}
.spec-card.has-photo{
  isolation:isolate;
  min-height:168px;
  padding:18px 20px 16px;
  display:flex; flex-direction:column; justify-content:flex-end;
  overflow:hidden;
  background-image:linear-gradient(180deg, rgba(10,28,48,.18) 0%, rgba(10,28,48,.82) 100%);
  background-color:#0a1c30;
  border-color:transparent;
  color:#fff;
}
.spec-card.has-photo img{
  position:absolute; inset:0; z-index:0;
  width:100%; height:100%; object-fit:cover;
}
.spec-card::before, .spec-card::after{
  content:""; position:absolute; width:9px; height:9px; border:1px solid var(--steel-light);
}
.spec-card.has-photo::before, .spec-card.has-photo::after{
  border-color:rgba(255,255,255,.7);
}
.spec-card::before{top:-1px; left:-1px; border-right:none; border-bottom:none;}
.spec-card::after{bottom:-1px; right:-1px; border-left:none; border-top:none;}
.spec-card.has-photo::before{
  content:"";
  position:absolute; inset:0; z-index:1;
  width:auto; height:auto; border:none;
  pointer-events:none;
  background:
    linear-gradient(rgba(255,255,255,.7), rgba(255,255,255,.7)) left top / 9px 1px no-repeat,
    linear-gradient(rgba(255,255,255,.7), rgba(255,255,255,.7)) left top / 1px 9px no-repeat,
    linear-gradient(180deg, rgba(10,28,48,.18) 0%, rgba(10,28,48,.82) 100%);
}
.spec-card.has-photo::after{z-index:2;}
.spec-card.has-photo h3,
.spec-card.has-photo p{position:relative; z-index:2;}
.spec-card h3{font-size:22px; font-weight:700; margin-bottom:10px;}
.spec-card.has-photo p{color:rgba(255,255,255,.92);}
.spec-card p{
  font-size:15.5px; color:var(--ink-soft);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
@media (max-width:860px){ .specs{grid-template-columns:1fr 1fr;} }
@media (max-width:560px){ .specs{grid-template-columns:1fr;} }

.specs-more{
  display:flex; align-items:center; justify-content:center;
  min-height:168px; margin:0;
}

/* ---------- 施工実績 ---------- */
.works{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.work-card{border:1px solid var(--line); background:var(--white); overflow:hidden; transition:border-color .2s ease, box-shadow .2s ease;}
.work-card:hover{border-color:var(--steel); box-shadow:0 8px 20px rgba(21,110,171,.12);}
.work-thumb{
  height:170px; background:
    linear-gradient(135deg, var(--steel) 0%, #348fc4 100%);
  position:relative; overflow:hidden;
  transition:transform .45s ease;
}
.work-thumb img{width:100%; height:100%; object-fit:cover;}
.work-card:hover .work-thumb{transform:scale(1.08);}
@media (prefers-reduced-motion: reduce){
  .work-thumb{transition:none;}
  .work-card:hover .work-thumb{transform:none;}
}
.work-body{padding:20px 20px 22px;}
.work-body h3{font-size:22px; font-weight:700; margin:0;}
.work-body .work-updated{font-size:14px; color:var(--ink-soft); margin:8px 0 0;}
.work-body p{font-size:15px; color:var(--ink-soft);}
a.work-card{display:block; color:inherit;}
@media (max-width:860px){ .works{grid-template-columns:1fr;} }

.work-hero{
  margin-bottom:40px; border:1px solid var(--line); background:var(--white); overflow:hidden;
}
.work-hero img,
.work-gallery.is-2 img{
  width:100%; height:auto; aspect-ratio:13/9; object-fit:cover;
}
.work-gallery{display:grid; grid-template-columns:1fr 1fr 1fr; gap:16px; margin-bottom:40px;}
.work-gallery.is-2{grid-template-columns:1fr 1fr;}
.work-gallery img{width:100%; height:160px; object-fit:cover; border:1px solid var(--line);}
.work-facts{max-width:520px;}
.work-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) 260px;
  gap:48px;
  align-items:start;
}
.work-side{
  position:sticky; top:92px;
  border-top:2px solid var(--steel);
  background:var(--white);
}
.work-side p{
  font-size:13px; font-weight:700; color:var(--steel);
  padding:14px 16px 10px; letter-spacing:.04em;
}
.work-side a{
  display:block; padding:12px 16px;
  border-top:1px solid var(--line);
  font-size:14px; color:var(--ink-soft); line-height:1.5;
}
.work-side .date{
  display:block; font-size:12px; color:var(--steel-light);
  margin-bottom:4px; font-weight:500;
}
.work-side a:hover,
.work-side a.is-current{color:var(--ink); background:var(--paper); font-weight:700;}
@media (max-width:860px){
  .work-layout{grid-template-columns:1fr; gap:36px;}
  .work-side{position:static;}
  .work-gallery{grid-template-columns:1fr;}
  .work-gallery.is-2{grid-template-columns:1fr;}
  .work-gallery img{height:180px;}
  .work-gallery.is-2 img{height:auto; aspect-ratio:13/9;}
}

.section-more{margin-top:40px; text-align:center;}
.section-more .btn-outline,
.company-grid .btn-outline,
.specs-more .btn-outline,
.recruit .btn-outline{
  display:inline-flex; align-items:center;
  transition:background .2s ease, color .2s ease, border-color .2s ease;
}
.section-more .btn-outline:hover,
.company-grid .btn-outline:hover,
.specs-more .btn-outline:hover{
  background:var(--steel); border-color:var(--steel); color:#fff;
}
.recruit .btn-outline:hover{
  background:#fff; border-color:#fff; color:var(--steel);
}

/* ---------- company excerpt ---------- */
.company-grid{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start;}
.company-table{border-top:1px solid var(--line);}
.company-table dl{display:flex; border-bottom:1px solid var(--line); padding:14px 0;}
.company-table dt{width:130px; flex-shrink:0; font-size:15px; color:var(--ink-soft); font-weight:700;}
.company-table dd{font-size:16px;}
@media (max-width:860px){ .company-grid{grid-template-columns:1fr; gap:32px;} }

/* ---------- recruit banner ---------- */
.recruit{
  position:relative; color:#fff; padding:72px 0;
  background:
    linear-gradient(100deg, rgba(10,28,48,.86) 0%, rgba(10,28,48,.58) 55%, rgba(10,28,48,.42) 100%),
    url('images/jigyou/4_tobidokou-800.webp') center/cover no-repeat;
}
.recruit .wrap{display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;}
.recruit h2{font-size:38px; font-weight:900; line-height:1.45; margin-bottom:10px;}
.recruit p{color:#d4ebf8; font-size:16px;}
.recruit .btn-outline{border-color:#fff; color:#fff;}

/* ---------- contact cta ---------- */
.contact-cta{background:var(--ink); color:#fff; padding:76px 0; text-align:center;}
.contact-cta h2{font-size:38px; font-weight:900; line-height:1.45; margin-bottom:16px;}
@media (max-width:960px){
  .recruit h2,
  .contact-cta h2{font-size:28px;}
}
.contact-cta p{color:#b7c9d8; font-size:17px; margin-bottom:36px;}
.contact-actions{display:flex; justify-content:center; gap:16px; flex-wrap:wrap;}
.contact-tel{font-size:28px; font-weight:900;}
.contact-tel .cap{display:block; font-size:14px; font-weight:500; color:#8aa3b5;}

/* ---------- footer ---------- */
footer{padding:48px 0 28px; border-top:1px solid var(--line); background:var(--paper);}
.footer-grid{display:flex; justify-content:space-between; gap:24px; flex-wrap:wrap; margin-bottom:32px;}
.footer-nav{display:flex; gap:22px; flex-wrap:wrap;}
.footer-nav a{font-size:15.5px; color:var(--ink-soft);}
address{font-style:normal; font-size:15px; color:var(--ink-soft); line-height:1.7;}
.copyright{font-size:14px; color:var(--steel-light);}

/* ---------- recruit float ---------- */
.recruit-float{
  display:none;
  position:fixed; right:max(24px, calc((100% - 1440px) / 2 + 24px)); bottom:24px; z-index:60;
  width:120px; height:120px; border-radius:50%;
  align-items:center; justify-content:center;
  background:var(--safety); color:#fff;
  font-size:15px; font-weight:700; line-height:1.4; text-align:center;
  letter-spacing:.04em;
  box-shadow:0 8px 24px rgba(21,120,232,.38);
  transition:transform .2s ease, background .2s ease, box-shadow .2s ease;
}
@media (min-width:861px){
  .recruit-float{display:flex;}
}
.recruit-float:hover{
  background:var(--safety-dark);
  transform:scale(1.06);
  box-shadow:0 10px 28px rgba(21,120,232,.5);
}
.recruit-float::before{
  content:""; position:absolute; inset:-6px; border-radius:50%;
  border:2px solid rgba(21,120,232,.45);
  animation:recruit-pulse 2.4s ease-out infinite;
  pointer-events:none;
}
@keyframes recruit-pulse{
  0%{transform:scale(.92); opacity:.7;}
  100%{transform:scale(1.18); opacity:0;}
}
@media (prefers-reduced-motion: reduce){
  .recruit-float::before{animation:none; display:none;}
}

/* ---------- subpage head ---------- */
.page-head{
  background:var(--white);
  border-bottom:1px solid var(--line);
  padding:36px 0 40px;
}
.breadcrumb{
  display:flex; flex-wrap:wrap; gap:8px; align-items:center;
  font-size:13px; color:var(--steel-light); margin-bottom:22px;
}
.breadcrumb a{color:var(--steel);}
.breadcrumb a:hover{text-decoration:underline;}
.breadcrumb span{color:var(--line);}
.page-tag{font-size:15px; font-weight:700; color:var(--safety); margin-bottom:10px;}
.page-head h1{font-size:34px; font-weight:900; line-height:1.4; margin-bottom:14px;}
.page-head .work-updated{font-size:15px; color:var(--ink-soft); margin-top:-6px;}
.page-head .lead{font-size:17px; color:var(--ink-soft); max-width:46em;}
@media (max-width:860px){
  .page-head{padding:28px 0 32px;}
  .page-head h1{font-size:26px;}
}

/* ---------- subpage layout ---------- */
.page-body{padding:56px 0 80px;}
.cms-table{width:100%; border-top:1px solid var(--line); margin:20px 0 28px; border-collapse:collapse;}
.cms-table.work-facts{max-width:520px; margin:0 0 48px;}
.cms-table th, .cms-table td{
  text-align:left; vertical-align:top; padding:14px 0;
  border-bottom:1px solid var(--line); font-size:16px;
}
.cms-table th{width:28%; color:var(--ink-soft); font-weight:700; padding-right:16px;}
.page-links{display:flex; gap:12px; flex-wrap:wrap; margin-top:40px;}
.profile-table{margin:0;}
.profile-table a{color:var(--steel); font-weight:700;}
.profile-table a:hover{text-decoration:underline;}
.profile-table .note-inline{display:inline-block; margin-top:8px; font-size:14px; color:var(--steel-light);}
@media (max-width:560px){
  .profile-table th, .profile-table td{display:block; width:auto; padding-right:0;}
  .profile-table th{padding-bottom:4px; border-bottom:none;}
  .profile-table td{padding-top:0;}
}

/* ---------- 事業内容詳細 ---------- */
.biz-item{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:48px;
  align-items:center;
  padding:48px 0;
  border-bottom:1px solid var(--line);
}
.biz-item:first-child{padding-top:0;}
.biz-item:last-child{border-bottom:none; padding-bottom:0;}
.biz-photo{overflow:hidden; background:var(--white); border:1px solid var(--line);}
.biz-photo img{width:100%; height:280px; object-fit:cover;}
.biz-text h2{font-size:26px; font-weight:900; line-height:1.45; margin-bottom:16px;}
.biz-text p{font-size:17px; color:var(--ink-soft); line-height:1.9;}
@media (max-width:860px){
  .biz-item{grid-template-columns:1fr; gap:20px; padding:36px 0;}
  .biz-photo img{height:220px;}
  .biz-text h2{font-size:22px;}
}

/* ---------- 採用情報 ---------- */
.recruit-points{margin-bottom:56px;}
.recruit-points.reasons{grid-template-columns:repeat(3,1fr);}
.recruit-heading{
  font-size:26px; font-weight:900; margin:0 0 12px;
  padding-bottom:10px; border-bottom:1px solid var(--line);
}
.recruit-note{font-size:16px; color:var(--ink-soft); margin:0 0 28px;}
.profile-table .salary{font-size:22px; font-weight:900; color:var(--steel);}
@media (max-width:860px){
  .recruit-points.reasons{grid-template-columns:1fr;}
}

/* ---------- お問い合わせ ---------- */
.contact-layout{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(0,0.9fr);
  gap:56px;
  align-items:start;
}
.contact-info h2,
.contact-form h2{
  font-size:22px; font-weight:900; margin-bottom:16px;
}
.contact-info-tel{
  display:block; font-size:32px; font-weight:900; color:var(--steel); line-height:1.2;
}
.contact-info-cap{font-size:14px; color:var(--ink-soft); margin:8px 0 28px;}
.contact-info-list{border-top:1px solid var(--line);}
.contact-info-list > div{
  display:grid; grid-template-columns:7.5em minmax(0,1fr);
  gap:12px; padding:14px 0; border-bottom:1px solid var(--line);
}
.contact-info-list dt{font-size:14px; font-weight:700; color:var(--ink-soft);}
.contact-info-list dd{font-size:16px;}
.contact-info-list a{color:var(--steel); font-weight:700;}
.contact-info-list a:hover{text-decoration:underline;}
.form-lead{font-size:15px; color:var(--ink-soft); margin-bottom:24px;}
.form-field{display:block; margin-bottom:18px;}
.form-field span{display:block; font-size:14px; font-weight:700; margin-bottom:8px;}
.form-field .req,
.form-lead .req{
  display:inline-block; margin-left:6px; padding:1px 7px;
  background:var(--safety); color:#fff; font-size:11px; font-style:normal; font-weight:700;
  vertical-align:middle;
}
.form-lead .req{margin:0 2px 0 0;}
.form-field input,
.form-field select,
.form-field textarea{
  width:100%; border:1px solid var(--line); background:var(--white);
  font:inherit; color:var(--ink); padding:11px 14px;
}
.form-field textarea{resize:vertical; min-height:160px;}
.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus{
  outline:2px solid rgba(21,120,232,.35); border-color:var(--safety);
}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
.form-privacy{font-size:13px; color:var(--steel-light); margin:8px 0 20px;}
.contact-form .cf-turnstile{margin:0 0 20px;}
.contact-form .btn-cta{cursor:pointer;}
@media (max-width:860px){
  .contact-layout{grid-template-columns:1fr; gap:40px;}
  .form-row{grid-template-columns:1fr;}
}

