/* ===================================================
  1. 基本設定
================================================== */
:root{
  --main-color:#003c8f;
  --light-bg:#F8FAFF;
  --text-color:#333;
  --font-jp:"Yu Gothic","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box;}
body{font-family:var(--font-jp);line-height:1.7;color:var(--text-color);padding-top:72px;}

/* ===================================================
  2. 汎用レイアウト
================================================== */
.section{width:100%;padding:4rem 1rem;}           /* 全幅に修正 */
.section.bg{background:var(--light-bg);}
.section-inner{max-width:960px;margin:0 auto;}     /* 新規追加 */
.sec-title{font-size:2rem;text-align:center;margin-bottom:3rem;color:var(--main-color);}
.sec-title span{display:block;font-size:.9rem;color:#666;margin-top:.3rem;}
.btn{display:inline-block;background:var(--main-color);color:#fff;padding:.75rem 2rem;border-radius:4px;text-decoration:none;}
.btn:hover{opacity:.9}
.bgcolor {background-color: #f0f7ff;}
/* ===================================================
  3.  固定ヘッダー & レスポンシブナビ
=================================================== */
.global-header{
  position: fixed;
  height: 60px;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 999;
  background-color: rgb(255 255 255 / 16%);
  backdrop-filter: blur(20px);
}
.header-inner{
  height: 60px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: 1280px;
  margin: 0 auto;
  padding: .5rem 1rem;
}
img.hlogo {
  width: 120px;
  object-fit: contain;
}
/* --- ハンバーガー --- */
.hamburger{
  display: none;
  position: absolute;
  width: 32px;
  height: 24px;
  border: 0;
  background: none;
  cursor: pointer;
  z-index: 1001;
  right: 18px;
}
.hamburger span{
  position:absolute;left:0;width:100%;height:3px;background:var(--main-color);transition:.3s;
}
.hamburger span:nth-child(1){top:0;}
.hamburger span:nth-child(2){top:10px;}
.hamburger span:nth-child(3){top:20px;}

/* × 形状 */
.global-header.open .hamburger span:nth-child(1){transform:translateY(10px) rotate(45deg);}
.global-header.open .hamburger span:nth-child(2){opacity:0;}
.global-header.open .hamburger span:nth-child(3){transform:translateY(-10px) rotate(-45deg);}
.global-header.open .hamburger span{background: var(--main-color);}

/* --- デスクトップナビ --- */
.gnav{
  display:flex;gap:1.5rem;font-size:.9rem;
}
.gnav a{color:var(--main-color);text-decoration:none;}
.gnav a:hover{opacity:.7;}
li {list-style: none;}
/* --- モバイルドロワー --- */
@media(max-width:768px){
  .hamburger{display:block;}

  .gnav{
    position:fixed;top:0;right:0;height:100%;width:80%;
    background:#fff;border-left:1px solid #e5e5e5;
    flex-direction:column;gap:0;padding-top:72px;
    transform:translateX(100%);transition:.35s ease;
  }
  .gnav li{border-bottom:1px solid #f0f0f0;}
  .gnav a{display:block;padding:1rem 1.5rem;}

  .global-header.open .gnav{
    transform: translateX(0);
    width: 100%;
    height: 100vh;
    background-color: #fff;
  }
  body.drawer-open{overflow:hidden;}
}

/* ===================================================
  4.  キービジュアル
=================================================== */
.kv            {
  text-align: center;
  color: #fff;
  top: -13px;
  margin-bottom: 50px;
  padding: 0;
  width: 100%;
  position: relative;
  height: 600px;
}
.kvwrap {
  overflow: hidden;
  width: 100%;
  position: relative;
  height: 600px;
}
.kv-overlay    {position:absolute;inset:0;background:rgba(0,0,0,.55);}
.kv-inner      {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  gap: 0.5rem;
  padding: 6rem;
  box-sizing: border-box;
}
.kv-tagline    {font-size:.9rem;line-height:1.7;}
.thumb-strip   {
  display: flex;
  gap: 1rem;
  overflow-x: auto;
  padding: 1rem 0;
  z-index: 10;
  position: absolute;
  bottom: -86px;
}
.thumb         {
  width: 140px;
  height: 220px;
  object-fit: cover;
  border-radius: 4px;
  flex: 0 0 auto;
}
img.kv-logo {
  width: 111px;
  object-fit: contain;
}
/* ===================================================
  5.  私たちについて（Aboutus）
=================================================== */
p.lead {
  text-align: center;
}

/* ===================================================
  5.  サービス（Solutions）
=================================================== */
.service               {display:flex;flex-wrap:wrap;align-items:center;gap:2rem;margin-bottom:4rem;}
.service.reverse>.service-img{order:2;}
.service-img           {flex:1 1 45%;}
.service-img img       {width:100%;border-radius:6px;}
.service-body          {flex:1 1 45%;}
.service-ttl           {font-size:1.5rem;margin-bottom:.5rem;line-height:1.3;color:var(--main-color);}
.service-ttl span      {font-size:.9rem;color:#666;}

/* ===================================================
  6.  強み（Strength）
=================================================== */
.strength-list{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;}
.strength-list li{
  flex:1 1 200px;background:#fff;border:1px solid #e2e6ef;border-radius:6px;
  padding:1.2rem 1rem;text-align:center;position:relative;
}
.strength-list li span{
  position:absolute;top:-14px;left:50%;transform:translateX(-50%);
  background:var(--main-color);color:#fff;width:28px;height:28px;line-height:28px;
  border-radius:50%;font-size:.9rem;font-weight:bold;
}

/* ===================================================
  7.  導入フロー（Flow）
=================================================== */
.flow-list     {display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;}
.flow-list li  {background:var(--main-color);color:#fff;border-radius:6px;
  padding:1rem 1.4rem;flex:1 1 140px;text-align:center;}
  .flow-list li strong{display:block;font-size:1.2rem;margin-bottom:.2rem;}

/* ===================================================
  8.  その他セクション
=================================================== */
.area-desc     {text-align:center;line-height:1.8;}

.company-table {width:100%;max-width:800px;margin:0 auto;border-collapse:collapse;}
.company-table th,
.company-table td{border:1px solid #e5e5e5;padding:.7rem .6rem;text-align:left;}
.company-table th{width:160px;background:#f4f6fb;}

.contact-form  {max-width:600px;margin:0 auto;}
.contact-form>div{margin-bottom:1rem;}
.contact-form input,
.contact-form textarea{width:100%;padding:.55rem;border:1px solid #cdd3df;border-radius:4px;}
.contact-form textarea{resize:vertical;}
.contact-form .btn{margin-top:.5rem;}

.footer        {background:#0b0b0b;color:#bfbfbf;text-align:center;padding:1rem;font-size:.85rem;}
.footer a      {color:#bfbfbf;text-decoration:underline;}
.footer a:hover{color:#fff;}


/* ===== Area デザイン ===== */
.area-sec{
  background: linear-gradient(135deg,#f0f7ff 0%,#eef4ff 100%);
}

.area-card{
  display:flex;gap:3rem;align-items:flex-start;
  max-width:960px;margin:0 auto;padding:2.5rem 2rem;
  background:#fff;border-radius:14px;box-shadow:0 6px 18px rgba(0,0,0,.08);
}

.area-txt{
  flex:1;font-size:.95rem;line-height:2;letter-spacing:.02em;
}

.area-list-wrap{flex:1;}
.area-subttl{
  font-size:1.1rem;margin-bottom:.6rem;color:var(--main-color);font-weight:600;
}
.area-list{
  padding-left:1.2rem;line-height:1.9;
}
.area-list li{list-style:disc;}

/* モバイル：縦並び＆中央寄せ */
@media(max-width:768px){
  .area-card{flex-direction:column;text-align:left;padding:2rem 1.5rem;}
  .area-txt{margin-bottom:1.5rem;}
}
/* === スクロール時フェードイン (s_ / ss_ 画像) =============== */
.reveal{opacity:0;transform:translateY(40px);transition:all .6s ease-out;}
.reveal.show{opacity:1;transform:none;}
/* ===== KV Background slideshow ===== */
.kv-bg{
  position:absolute;inset:0;width:100%;height:600px;
  object-fit:cover;opacity:0;transform:scale(1);
  animation:kvSlide 15s ease-in-out infinite;
}

/* 各枚の開始タイミングをずらす（5s 間隔） */
.kv-bg:nth-child(1){animation-delay:0s;}
.kv-bg:nth-child(2){animation-delay:5s;}
.kv-bg:nth-child(3){animation-delay:10s;}

@keyframes kvSlide{
  /* 0%        : 前の画像がフェードアウト済み（透明）*/
  0%   {opacity:0;transform:scale(1);}
  /* 0–6.67%   : フェードイン 1s */
  6.67%{opacity:1;}
  /* 6.67–26.67%: 表示しながら 3s かけてズーム */
  26.67%{opacity:1;transform:scale(1.1);}
  /* 26.67–33.33%: フェードアウト 1s */
  33.33%{opacity:0;transform:scale(1.1);}
  /* 100%       : 待機（透明）*/
  100%{opacity:0;transform:scale(1);}
}


/* ===== 固定フッターボタン ===== */
.cta-footer{
  position:fixed;right:20px;bottom:20px;
  display:flex;align-items:center;justify-content:center;
  padding:.9rem 2rem;border-radius:40px;
  background:var(--main-color);color:#fff;font-weight:600;
  box-shadow:0 6px 18px rgba(0,0,0,.15);
  text-decoration:none;z-index:1000;transition:.25s;
}
.cta-footer:hover{transform:translateY(-3px);box-shadow:0 8px 22px rgba(0,0,0,.2);}
@media (max-width:768px){
  .cta-footer{
    right:15px;bottom:15px;padding:.8rem 1.6rem;font-size:.9rem;
  }
}


/* ===================================================
  9.  レスポンシブ調整
=================================================== */
@media(max-width:768px){


  /* サービス, カード1カラム */
  .service-body,.service-img{flex:1 1 100%;}
  .strength-list li,
  .flow-list li{flex:1 1 100%;}
  .company-table th{width:110px;}
  /* ↓ 追加：reverse でも画像を先頭に戻す */
  .service.reverse > .service-img{ order:0; }

  /* すでにある 1 カラム化設定はそのまま */
  .service-body, .service-img{ flex:1 1 100%; }

  .strength-list li,
  .flow-list li{ flex:1 1 100%; }
  .company-table th{ width:110px; }
}
