/* ============================================================
   法人TOP (houjin.html) — 設計PDF「法人.pdf」完全再現
   設計実測: 1000pt幅ラスタ2084px ÷1.5 = CSS(PC基準幅1389px)
   帯色: mint #A3D6C5 → green #D5EAD4 → pale #EBF5F0 → white
   波形: 実測Catmull-Rom (端が低く中央が高い単峰・振幅73px)
   ============================================================ */

body.houjin{background:#fff}
.houjin .frame{max-width:none;box-shadow:none;background:#fff}

:root{
  --hj-mint:#A3D6C5;
  --hj-green:#D5EAD4;
  --hj-pale:#EBF5F0;
  --hj-box:#A4C2B8;
  --hj-ink:#1F211F;
  --hj-tri:#C5E3D3;
  --hj-maxw:1389px;
}

/* ---------- Hero (写真フルブリード + 浮遊白バー) ---------- */
.hj-hero{position:relative;width:100%}
.hj-hero__img{display:block;width:100%;aspect-ratio:1389/1167;object-fit:cover;object-position:center 42%}

.hj-hdr{
  position:absolute;top:34px;left:44px;right:44px;height:120px;
  background:#fff;border-radius:26px;z-index:60;
  display:flex;align-items:center;justify-content:center;
}
.hj-hdr__logo{display:block;height:84px}
.hj-hdr__logo img{display:block;height:100%;width:auto}
.hj-burger{
  position:absolute;right:38px;top:50%;transform:translateY(-50%);
  width:48px;height:40px;background:none;border:0;cursor:pointer;
  display:flex;flex-direction:column;justify-content:center;gap:9px;padding:0;
}
.hj-burger span{display:block;height:3px;background:#4E4238;border-radius:2px}
.hj-burger small{display:none}

/* ---------- 全画面メニュー (法人版・00-menu.pdf) ---------- */
.houjin .menu{gap:59px;background:#E5EFEA;justify-content:flex-start;padding-top:250px}
/* バーガー: メニュー開時はミント円+白✕ (設計 00-menu) */
.houjin .hj-burger{transition:background .3s;border-radius:50%}
.houjin .hj-burger.is-open{
  width:62px;height:62px;background:#ABC7BF;right:30px;
  align-items:center;justify-content:center;gap:0;
}
.houjin .hj-burger.is-open span{position:absolute;width:26px;height:3px;background:#fff}
.houjin .hj-burger.is-open span:nth-child(1){transform:rotate(45deg)}
.houjin .hj-burger.is-open span:nth-child(2){opacity:0}
.houjin .hj-burger.is-open span:nth-child(3){transform:rotate(-45deg)}
/* メニュー開時もヘッダーを最前面に保つ */
.hj-hdr{z-index:60}
.houjin .menu .menu__item::before,
.houjin .menu .menu__item::after{content:none}
.houjin .menu .menu__item{white-space:nowrap;width:auto;max-width:none;padding:8px 0}
.hj-menu-group{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 44px}
.houjin .menu .menu__item{display:inline-flex;align-items:center;gap:10px;font-size:19px}
.hj-tri{width:0;height:0;border-left:11px solid var(--hj-tri);border-top:7px solid transparent;border-bottom:7px solid transparent;flex:none}
.hj-mi-pre{font-size:.66em;letter-spacing:.06em;margin-right:2px}

/* ---------- 帯(バンド) ---------- */
.hj-band{position:relative;width:100%}
.hj-band--mint{background:var(--hj-mint)}
.hj-band--green{background:var(--hj-green)}
.hj-band--pale{background:var(--hj-pale)}
.hj-wave{display:block;width:100%;height:100px}

/* ---------- ミッション文 (白・3行・行間広め=実測pitch89px) ---------- */
.hj-mission{padding:76px 24px 0;text-align:center}
.hj-mission p{
  font-family:var(--font-g);color:#fff;font-weight:500;
  font-size:22px;line-height:2.4;letter-spacing:.27em;
}

/* ---------- セクション見出し + 点線 ---------- */
.hj-sec-head{
  font-family:var(--font-r);color:var(--hj-ink);font-weight:600;
  font-size:29px;letter-spacing:.22em;text-align:center;text-indent:.22em;
}
.hj-dots{
  height:6px;margin:14px auto 0;max-width:1000px;width:86%;
  background-image:radial-gradient(circle,rgba(31,33,31,.78) 1.7px,transparent 1.9px);
  background-size:10px 6px;background-position:center;background-repeat:repeat-x;
}
.hj-mission + .hj-sec-head{margin-top:164px}

/* ---------- カード列 ---------- */
.hj-cards{display:flex;justify-content:center;gap:117px;position:relative;z-index:2}
.hj-unit{width:308px}
.hj-card{display:block;width:308px;height:206px;border-radius:18px;overflow:hidden}
.hj-card img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease-soft)}
.hj-card:hover img{transform:scale(1.045)}
.hj-lab{
  margin-top:25px;text-align:center;font-family:var(--font-r);
  color:var(--hj-ink);font-size:18px;font-weight:700;letter-spacing:.14em;line-height:1.5;
}
.hj-lab--biz{text-align:left;padding-left:6px}
.hj-lab--biz .pre{display:block;font-size:12.5px;font-weight:500;letter-spacing:.1em;margin-bottom:4px}
.hj-lab--biz .name{display:block;font-size:18px;letter-spacing:.12em}

/* 帯をまたぐカード列: 波(h100)の直後に置き負マージンで引上げ */
.hj-band--green .hj-cards--pull{margin-top:-131px}
.hj-band--pale  .hj-cards--pull{margin-top:-77px}

/* セクション間隔 (設計との実測差分で補正済) */
.hj-sp-114{margin-top:93px}
.hj-sp-83{margin-top:73px}
.hj-sp-240{margin-top:220px}
.hj-sp-115{margin-top:94px}
.hj-dots + .hj-cards{margin-top:41px}
.hj-dots + .hj-cards--solo{margin-top:41px}

/* 帯下端の余白 (波の手前) */
.hj-band--mint{padding-bottom:72px}
.hj-band--green{padding-bottom:0}
.hj-band--green .hj-tail{padding-bottom:37px}
.hj-band--pale .hj-tail{padding-bottom:113px}

/* ---------- お問い合わせボックス ---------- */
.hj-contact-box{
  width:min(970px,92%);margin:57px auto 0;border-radius:22px;
  background:var(--hj-box);color:#fff;text-align:center;
  padding:42px 24px 46px;font-family:var(--font-r);
  display:block;
}
.hj-contact-box .tel-cap{font-size:17px;letter-spacing:.3em;text-indent:.3em;font-weight:600}
.hj-contact-box .tel-num{display:block;margin-top:10px;font-size:25px;letter-spacing:.14em;font-weight:500;color:#fff;text-decoration:none}
.hj-contact-box .form-link{
  display:inline-block;margin-top:36px;font-size:18px;letter-spacing:.22em;
  color:#fff;text-decoration:none;font-weight:600;
  border-bottom:1px solid rgba(255,255,255,0);transition:border-color .3s;
}
.hj-contact-box .form-link:hover{border-bottom-color:rgba(255,255,255,.85)}

/* ---------- PAGE TOP: 設計に無いため非表示 (WP抽出マーカーとしてDOMには残す) ---------- */
.houjin .pagetop{display:none}

/* ---------- フッター (白・3段ナビ + 点線 + 施設ロゴ) ---------- */
.hj-foot{background:#fff}
.hj-foot__nav{max-width:var(--hj-maxw);margin:0 auto;padding:83px 24px 0}
.hj-fnav-row{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 52px}
.hj-fnav-row + .hj-fnav-row{margin-top:65px}
.hj-fnav-row a{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--font-r);color:#1C1C1C;font-size:19px;font-weight:600;
  letter-spacing:.1em;text-decoration:none;transition:opacity .3s;
}
.hj-fnav-row a:hover{opacity:.6}
.hj-fnav-row .hj-mi-pre{font-size:.72em}
.hj-foot__dots{
  height:6px;margin:65px auto 0;max-width:1100px;width:88%;border:0;
  background-image:radial-gradient(circle,rgba(31,33,31,.78) 1.7px,transparent 1.9px);
  background-size:11px 6px;background-position:center;background-repeat:repeat-x;
}
.hj-foot__body{
  max-width:960px;margin:33px auto 0;padding:0 24px 95px;
  display:flex;align-items:center;justify-content:center;gap:34px;
}
.hj-foot__logo{display:block;flex:none}
.hj-foot__logo img{display:block;height:112px;width:auto}
.hj-foot__info{font-family:var(--font-g);color:#262626;font-size:14.5px;line-height:2.1;letter-spacing:.05em}
.hj-foot__info span{display:flex;align-items:center;gap:7px}
.hj-foot__info svg{width:15px;height:15px;flex:none;color:#262626}
.hj-foot__info a{color:#262626;text-decoration:none}

/* ============================================================
   SP (〜859px): 当社最適化リフロー (配色・書体・素材は維持)
   ============================================================ */
@media (max-width:859px){
  .hj-hero__img{aspect-ratio:390/300}
  .hj-hdr{top:14px;left:14px;right:14px;height:64px;border-radius:16px}
  .hj-hdr__logo{height:44px}
  .hj-burger{right:16px;width:38px;gap:7px}
  .hj-burger span{height:2.5px}

  .hj-menu-group{flex-direction:column;align-items:center;gap:18px}
  .houjin .menu .menu__item .hj-mi-pre{font-size:.6em}
  .houjin .menu{gap:34px;align-items:center}
  .houjin .menu .menu__item{font-size:17px}

  .hj-wave{height:48px}
  .hj-mission{padding:30px 20px 0}
  .hj-mission p{font-size:14px;line-height:2.5;letter-spacing:.14em}
  .hj-mission + .hj-sec-head{margin-top:64px}

  .hj-sec-head{font-size:20px;letter-spacing:.18em}
  .hj-dots{width:80%;margin-top:10px}

  .hj-cards{flex-direction:column;align-items:center;gap:34px}
  .hj-unit{width:min(86%,340px)}
  .hj-card{width:100%;height:auto;aspect-ratio:3/2;border-radius:14px}
  .hj-lab{margin-top:14px;font-size:15px}
  .hj-lab--biz{text-align:center;padding-left:0}
  .hj-lab--biz .name{font-size:16px}

  .hj-band--green .hj-cards--pull{margin-top:-58px}
  .hj-band--pale  .hj-cards--pull{margin-top:-54px}
  .hj-band--mint{padding-bottom:34px}
  .hj-band--green .hj-tail{padding-bottom:22px}
  .hj-band--pale .hj-tail{padding-bottom:56px}
  .hj-dots + .hj-cards,.hj-dots + .hj-cards--solo{margin-top:26px}
  .hj-sp-114,.hj-sp-115{margin-top:56px}
  .hj-sp-83{margin-top:48px}
  .hj-sp-240{margin-top:88px}

  .hj-contact-box{margin-top:26px;padding:28px 18px 32px;border-radius:16px}
  .hj-contact-box .tel-num{font-size:22px}
  .hj-contact-box .form-link{font-size:16px;margin-top:22px}

  .hj-foot__nav{padding:44px 18px 0}
  .hj-fnav-row{flex-direction:column;align-items:center;gap:16px}
  .hj-fnav-row + .hj-fnav-row{margin-top:16px}
  .hj-fnav-row a{font-size:15.5px}
  .hj-foot__dots{margin-top:40px}
  .hj-foot__body{flex-direction:column;gap:16px;margin-top:24px;padding-bottom:56px}
  .hj-foot__logo img{height:72px}
  .hj-foot__info{text-align:center}
  .hj-foot__info span{justify-content:center}
}

/* PC細部 */
@media (min-width:860px){
}
