/* =========================================================
   re-bond.co.jp 共通スタイル
   数値は元サイト（Studio 版）の computed styles 実測値。
   フォントのみ モリサワ新ゴ系 → Zen Kaku Gothic New に置換。
   ウェイト対応: 新ゴ DB→700 / 新ゴ R→400 / UD新ゴ L→300
   ========================================================= */

/* ---- リセット ---- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
img { max-width: 100%; display: block; }
a { text-decoration: none; color: inherit; }
ul, ol { list-style: none; }
button { font: inherit; border: none; background: none; cursor: pointer; }

:root {
  --font-jp: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", sans-serif;
  --font-en: "Josefin Sans", sans-serif;
  --fw-db: 700;  /* 新ゴ DB 相当 */
  --fw-r: 400;   /* 新ゴ R 相当 */
  --fw-l: 300;   /* UD新ゴ L 相当 */
  --color-accent: rgb(238, 115, 0);
  --color-text: rgb(51, 51, 51);
  --color-text-dark: rgb(17, 17, 17);
}

html { -webkit-text-size-adjust: 100%; }
body {
  font-family: var(--font-jp);
  font-size: 16px;
  line-height: 16px;
  color: var(--color-text);
  background: #fff;
}

/* ---- ヘッダー（実測: 高さ54px 固定・白背景・z-index 3） ---- */
.site-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  height: 54px;
  background: #fff;
  z-index: 3;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.site-header__inner {
  display: flex;
  width: 100%;
  height: 48px;
  padding: 0 24px;
  justify-content: space-between;
  align-items: center;
}
.site-header__logo {
  display: flex;
  width: 119px;
  height: 38px;
  justify-content: center;
  align-items: center;
}
.site-header__logo img { width: 101px; height: auto; }

.site-nav {
  display: flex;
  height: 48px;
  align-items: center;
}
.site-nav__link {
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 12px;
  font-weight: var(--fw-l);
  line-height: 12px;
  letter-spacing: 1.2px;
  text-align: center;
  color: var(--color-text-dark);
  padding: 0 12px;
  margin-right: 12px;
}
.btn-contact {
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 12px;
  font-weight: var(--fw-db);
  line-height: 12px;
  letter-spacing: 1.8px;
  text-align: center;
  color: #fff;
  background: var(--color-accent);
  margin: 6px 0 6px 12px;
  padding: 12px 24px;
  border-radius: 80px;
}

/* モバイルメニュー（768px 以下でハンバーガー表示・実測） */
.site-menu-btn { display: none; }
.site-menu-overlay { display: none; }
@media (max-width: 768px) {
  .site-header__inner { height: 50px; padding: 0; }
  .site-nav { display: none; }
  .site-menu-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 72px;
    height: 50px;
    padding: 12px 24px;
    color: var(--color-text);
  }
  .site-menu-overlay {
    position: fixed;
    inset: 0;
    background: #fff;
    z-index: 10;
    display: none;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 32px;
  }
  .site-menu-overlay.is-open { display: flex; }
  .site-menu-overlay a {
    font-size: 14px;
    font-weight: var(--fw-l);
    letter-spacing: 1.4px;
    color: var(--color-text-dark);
  }
  .site-menu-overlay .btn-contact { color: #fff; }
  .site-menu-close {
    position: absolute;
    top: 8px; right: 16px;
    width: 40px; height: 40px;
    display: flex; align-items: center; justify-content: center;
    color: var(--color-text);
  }
}

/* ---- フッター（実測: 内側 max-width 1080 / margin 96px 0） ---- */
.site-footer {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.site-footer__inner {
  display: flex;
  width: 100%;
  max-width: 1080px;
  margin: 96px 0;
  padding: 0 24px;
  justify-content: space-between;
}
.site-footer__left {
  display: flex;
  flex-direction: column;
  width: 198px;
}
.site-footer__logo {
  width: 198px;
  height: 50px;
  background: url("/images/footer-logo.webp") center / cover no-repeat;
}
.site-footer__addr {
  font-size: 14px;
  font-weight: var(--fw-l);
  line-height: 22.4px;
  letter-spacing: 1.4px;
  color: var(--color-text);
  margin-top: 24px;
  text-align: left;
}
.site-footer__map {
  display: flex;
  align-items: center;
  margin-top: 12px;
}
.site-footer__map svg { width: 12px; height: 18px; }
.site-footer__map span {
  font-family: var(--font-en);
  font-size: 12px;
  font-weight: 500;
  line-height: 19.2px;
  letter-spacing: 1.2px;
  color: var(--color-text);
  margin-left: 6px;
}

.site-footer__right {
  display: flex;
  flex-direction: column;
}
.site-footer__nav {
  display: flex;
  justify-content: flex-end;
  align-items: center;
}
.site-footer__nav a {
  font-size: 12px;
  font-weight: var(--fw-l);
  line-height: 12px;
  letter-spacing: 1.2px;
  text-align: center;
  color: var(--color-text-dark);
  padding: 0 12px;
  margin-right: 12px;
}
.site-footer__nav a:last-child { padding-right: 0; margin-right: 0; }
.site-footer__sns {
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
  margin-top: 18px;
}
.site-footer__sns a {
  display: flex;
  align-items: flex-end;
  margin-left: 12px;
}
.site-footer__sns a:first-child { margin-left: 0; }
.site-footer__sns svg, .site-footer__sns img { width: 18px; height: 18px; }
.site-footer__sns span {
  font-family: var(--font-en);
  font-size: 12px;
  font-weight: 500;
  line-height: 19.2px;
  letter-spacing: 1.2px;
  color: var(--color-text);
  margin-left: 6px;
}
.site-footer__copy {
  display: flex;
  justify-content: flex-end;
  margin-top: 12px;
  font-family: var(--font-en);
  font-size: 10px;
  font-weight: 400;
  line-height: 16px;
  letter-spacing: 1px;
  color: var(--color-text);
}

/* フッター ≤768（実測: ナビ非表示・左列中央・SNS右寄せ・margin 48/24） */
@media (max-width: 768px) {
  .site-footer__inner {
    flex-direction: column;
    align-items: center;
    margin: 48px 0 24px;
  }
  .site-footer__left { align-items: center; }
  .site-footer__addr { text-align: center; }
  .site-footer__nav { display: none; }
  .site-footer__right {
    width: 100%;
    margin-top: 24px;
    align-items: flex-end;
  }
  .site-footer__sns { margin-top: 0; }
}

/* =========================================================
   ホーム（実測値: extraction/pages/home.json）
   ========================================================= */
/* 元サイト同様、はみ出す装飾・列は viewport でクリップ（clip はスクロール領域も広げない） */
html, body { overflow-x: clip; }

/* 汎用: 白背景・橙枠のボタン */
.btn-outline {
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 15px;
  font-weight: var(--fw-db);
  line-height: 24px;
  letter-spacing: 2.25px;
  color: var(--color-accent);
  background: #fff;
  border: 2px solid var(--color-accent);
  border-radius: 10px;
  padding: 5px 15px;
  height: 45px;
  margin: 48px 0 6px;
}
.btn-outline--lg { font-size: 16px; letter-spacing: 2.4px; }
/* 各ボタンの幅・マージン（旧インラインstyle。≤480で上書きするためクラス化） */
.btn-outline--mission { width: 100%; max-width: 50%; }
.btn-outline--card-sw { width: 100%; max-width: 50%; margin: 20px 0 6px; }
.btn-outline--card-rs { width: 240px; margin: 30px 0 6px; }
.btn-outline--card-bm { width: 100%; max-width: 50%; margin: 30px 0 6px; }

/* ヒーロー（高さ575・ヘッダー分52を上padding） */
.home-hero {
  display: flex;
  height: 575px;
  padding-top: 52px;
  justify-content: center;
  align-items: center;
}
.home-hero__inner {
  display: flex;
  width: 100%;
  height: 100%;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.home-hero__logo {
  width: 521px;
  max-width: 100%;
  height: 396px;
  background: url("/images/hero-logo.gif") center / cover no-repeat;
}
.home-hero__copy {
  font-size: 28px;
  font-weight: var(--fw-l);
  line-height: 39.2px;
  color: var(--color-text);
  padding-top: 16px;
  text-align: center;
}

/* 理念（Studio はセクション高さを固定指定: 574px） */
.home-mission {
  display: flex;
  height: 574px;
  flex-direction: column;
  align-items: center;
}
.home-mission__container {
  display: flex;
  width: 100%;
  max-width: 1057px;
  margin: 96px 0;
  padding: 0 24px;
  justify-content: space-between;
}
.home-mission__text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  max-width: 48%;
  padding-right: 24px;
}
.home-mission__text h2 {
  font-size: 32px;
  font-weight: var(--fw-db);
  line-height: 44.8px;
  letter-spacing: 3.2px;
  color: var(--color-text-dark);
  width: 430px;
  max-width: 100%;
  text-align: left;
}
.home-mission__text p {
  font-size: 14px;
  font-weight: var(--fw-r);
  line-height: 22.4px;
  letter-spacing: 1.4px;
  color: var(--color-text);
  margin-top: 20px;
  padding-top: 1px;
  width: 430px;
  max-width: 100%;
}
.home-mission__photo {
  width: 453px;
  max-width: 100%;
  height: 298px;
  background: url("/images/home-family.jpg") center / cover no-repeat;
}

/* 事業内容 見出し */
.home-business-head {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.home-business-head__container {
  display: flex;
  width: 100%;
  max-width: 1080px;
  padding: 0 24px;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.home-business-head h2 {
  font-size: 48px;
  font-weight: var(--fw-db);
  line-height: 67.2px;
  letter-spacing: 4.8px;
  color: var(--color-text-dark);
  text-align: center;
}
.home-business-head p {
  font-size: 14px;
  font-weight: var(--fw-r);
  line-height: 22.4px;
  letter-spacing: 1.4px;
  color: var(--color-text);
  margin-top: 30px;
  width: 700px;
  max-width: 100%;
  text-align: center;
}

/* 事業カード（画像左・テキスト右 / row-reverse） */
.home-card {
  display: flex;
  position: relative;
  flex-direction: column;
  align-items: center;
}
.home-card__container {
  display: flex;
  width: 100%;
  max-width: 1080px;
  margin: 96px 0;
  padding: 0 24px;
  flex-direction: row-reverse;
  justify-content: space-between;
}
.home-card__text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-self: flex-start;
  max-width: 48%;
  padding-left: 24px;
}
.home-card__text h2 {
  font-size: 32px;
  font-weight: var(--fw-db);
  line-height: 44.8px;
  letter-spacing: 3.2px;
  color: var(--color-text-dark);
  width: 430px;
  max-width: 100%;
  text-align: left;
}
.home-card__text p {
  font-size: 14px;
  font-weight: var(--fw-r);
  line-height: 22.4px;
  letter-spacing: 1.4px;
  color: var(--color-text);
  margin-top: 48px;
  width: 430px;
  max-width: 100%;
}
.home-card__tags {
  display: flex;
  align-items: center;
  width: 430px;
  max-width: 100%;
  height: 44px;
  margin-top: 1px;
}
.tag {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 150px;
  height: 34px;
  background: rgb(238, 238, 238);
  border-radius: 8px;
}
.tag p {
  font-size: 12px;
  font-weight: var(--fw-l);
  line-height: 16.8px;
  color: var(--color-text-dark);
  text-align: center;
  margin: 0;
  width: auto;
}
.home-card__imgbox {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: center;
  width: calc(48% - 14px);
  margin: 0 14px 14px 0;
  box-shadow: rgba(238, 115, 0, 0.55) 14px 14px 0 0;
}
/* カード2・3は箱と画像の高さを 340px に固定（元サイトは画像をやや圧縮表示） */
.home-card__imgbox img { width: 100%; height: 340px; flex: none; }
.home-card__imgbox--overflow {
  justify-content: center;
  background: #fff;
  height: 292px;
  overflow: hidden;
}
/* カード1（水回り）のみ画像が箱から上下にはみ出す（natural 361px） */
.home-card__imgbox--overflow img { width: 100%; height: auto; }

/* 装飾テクスチャ（opacity .2 / z-index -1） */
.home-deco {
  position: absolute;
  z-index: -1;
  opacity: 0.2;
}
.home-deco--1 {
  top: -5px;
  left: -173px;
  width: 492px;
  height: 476px;
  background: url("/images/deco-1.webp") center / cover no-repeat;
}
.home-deco--2 {
  top: 0;
  left: -310px;
  width: 587px;
  height: 485px;
  background: url("/images/deco-2.webp") center / cover no-repeat;
}

/* Instagram */
.home-insta {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-bottom: 120px;
  background-image: linear-gradient(rgba(250, 250, 250, 0.98) 0%, rgb(250, 250, 250) 100%);
}
.home-insta__head {
  display: flex;
  width: 100%;
  margin-bottom: 40px;
  flex-direction: column;
  align-items: center;
}
.home-insta__head h2 {
  font-family: var(--font-jp);
  font-size: 54px;
  font-weight: 900;
  line-height: 64.8px;
  color: #000;
  margin-bottom: 20px;
  text-align: center;
}
.home-insta__head p {
  font-size: 18px;
  font-weight: var(--fw-l);
  line-height: 25.2px;
  color: var(--color-text);
  text-align: center;
}
.home-insta__row {
  display: flex;
  width: 100%;
  height: 337px;
  overflow-x: auto;
  overflow-y: hidden;
}
.home-insta__cell {
  display: flex;
  flex: none;
  flex-direction: column;
  width: 310px;
  height: 300px;
  padding: 0 5px;
}
.home-insta__tile {
  width: 300px;
  height: 300px;
  box-shadow: rgba(0, 0, 0, 0.2) 3px 6px 17px 0;
  background-size: cover;
  background-position: center;
}

/* =========================================================
   ホーム タブレット以下 ≤768（実測: extraction/pages/home-768.json / home-500.json）
   ========================================================= */
@media (max-width: 768px) {
  .home-hero__logo { max-width: 100%; }

  .home-mission { height: 406px; }
  .home-mission__container {
    max-width: 100%;
    margin: 15px 0 96px;
    justify-content: center;
  }
  .home-mission__text { width: 428px; max-width: none; flex: none; }
  .home-mission__text h2, .home-mission__text p { width: 404px; max-width: 100%; }
  .home-mission__photo { width: 290px; height: 178px; flex: none; }

  .home-business-head__container { max-width: 90%; }
  .home-business-head h2 { font-size: 32px; line-height: 44.8px; letter-spacing: 3.2px; }
  .home-business-head p { width: 100%; }

  /* ≤768 はテキスト左・画像右に反転（実測） */
  .home-card__container { flex-direction: row; }
  .home-card__text h2, .home-card__text p, .home-card__tags { width: 100%; }
  .home-card__imgbox { height: 240px; }
  .home-card__imgbox img { height: 240px; }
  .home-card__imgbox--overflow { height: 240px; }
  .home-card__imgbox--overflow img { height: auto; }

  .home-insta__head { padding: 0 40px; }
  .home-insta__head h2 { font-size: 40px; line-height: 48px; }

  /* ≤768 では装飾透かしを非表示（実測: 元サイトは 1x1 に collapse） */
  .home-deco { display: none; }

  /* 行高端数の丸め差による累積ズレを防ぐため、元サイトの実測高さで固定 */
  .home-card--sw { height: 535.16px; }
  .home-card--rs { height: 521.77px; }
  .home-card--bm { height: 566.56px; }
}

/* =========================================================
   パンくず（company/business 等の下層ページ共通・実測）
   ========================================================= */
.breadcrumb-band {
  display: flex;
  width: 100%;
  height: 102px;
  padding-top: 52px;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.breadcrumb {
  display: flex;
  width: 100%;
  max-width: 1080px;
  padding: 0 24px;
  align-items: center;
}
.breadcrumb a, .breadcrumb p {
  font-size: 12px;
  font-weight: var(--fw-l);
  line-height: 12px;
  letter-spacing: 1.2px;
  color: var(--color-text);
  margin-right: 12px;
  text-align: center;
}

/* =========================================================
   会社概要（実測: extraction/pages/company.json）
   ========================================================= */
.company-hero {
  display: flex;
  height: 371px;
  background: rgb(238, 238, 238) url("/images/company-hero.webp") center / cover no-repeat;
  flex-direction: column;
  justify-content: center;
}
.company-hero__title {
  display: flex;
  margin: 0 0 25px 60px;
  align-items: center;
}
.company-hero__title p {
  font-size: 40px;
  font-weight: 500;
  line-height: 40px;
  color: #fff;
}
.company-table-sec {
  display: flex;
  height: 854px;
  flex-direction: column;
  align-items: center;
}
.company-table {
  display: flex;
  width: 1000px;
  max-width: calc(100% - 80px);
  margin: 92px 40px 0;
  flex-direction: column;
}
.company-row {
  display: flex;
  align-items: flex-start;
  margin-bottom: 6px;
  height: var(--row-h);
}
.company-row__label {
  display: flex;
  width: 240px;
  height: calc(var(--row-h) - 1px);
  flex: none;
  background: rgb(238, 238, 238);
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.company-row__label p {
  font-weight: 500;
  line-height: 22.4px;
  text-align: center;
}
.company-row__value {
  display: flex;
  width: 760px;
  height: calc(var(--row-h) - 1px);
  background: #fff;
  padding: 0 30px;
  align-items: center;
}
.company-row__value--between { justify-content: space-between; }
.company-row__value p {
  font-weight: var(--fw-l);
  line-height: 22.4px;
}
.company-row__value h3 {
  font-size: 18.72px;
  font-weight: var(--fw-l);
  line-height: 26.208px;
}
.company-map-btn {
  font-size: 14px;
  font-weight: var(--fw-l);
  line-height: 19.6px;
  color: rgb(66, 66, 66);
  padding: 10px 30px;
  border: 1px solid rgb(238, 238, 238);
  border-radius: 21px;
}

/* =========================================================
   共通パーツ: 見出しのオレンジバー / お問い合わせフォーム
   ========================================================= */
.accent-bar {
  width: 50px;
  height: 4px;
  background: var(--color-accent);
}

.contact-block {
  display: flex;
  margin-top: 30px;
  flex-direction: column;
  align-items: center;
}
.contact-block__sec {
  display: flex;
  width: 100%;
  padding-bottom: 12px;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.contact-block__container {
  display: flex;
  width: 1000px;
  max-width: calc(100% - 80px);
  margin: 0 40px;
  flex-direction: column;
  align-items: center;
}
.contact-block--business { height: 946px; }
.contact-block--contact { height: 928px; }
.contact-block__head {
  display: flex;
  height: 104px;
  margin-top: 10px;
  width: 705px;
  max-width: 100%;
  flex-direction: column;
}
.contact-block__title {
  display: flex;
  margin-bottom: 10px;
  align-items: center;
}
.contact-block__title p {
  font-size: 40px;
  font-weight: var(--fw-db);
  line-height: 48px;
  color: rgb(33, 33, 33);
  margin-right: 20px;
}
.contact-block__lead {
  font-size: 14px;
  font-weight: var(--fw-r);
  line-height: 19.6px;
  color: var(--color-text);
  margin-top: 10px;
  align-self: center;
  text-align: center;
}
.contact-form {
  display: flex;
  width: 698px;
  max-width: calc(100% - 40px);
  margin: 20px;
  flex-direction: column;
}
.contact-form__field {
  display: flex;
  margin-bottom: 20px;
  flex-direction: column;
}
.contact-form__field--company { width: 500px; max-width: 100%; }
.contact-form__label {
  display: flex;
  margin-bottom: 10px;
}
.contact-form__label p {
  font-size: 15px;
  font-weight: var(--fw-db);
  line-height: 21px;
  color: var(--color-text);
}
.contact-form__label .req {
  color: rgb(242, 58, 60);
  margin-left: 5px;
}
.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form textarea {
  font-family: var(--font-jp);
  font-size: 16px;
  line-height: 22.4px;
  color: var(--color-text);
  background: #fff;
  width: 100%;
  height: 50px;
  padding: 10px;
  border: 1px solid rgb(238, 238, 238);
  border-radius: 4px;
}
.contact-form textarea { height: 160px; resize: vertical; }
.contact-form__confirm {
  display: flex;
  margin-bottom: 20px;
  align-items: center;
}
.contact-form__confirm input { margin-right: 10px; width: 13px; height: 13px; }
.contact-form__confirm span {
  font-size: 15px;
  font-weight: var(--fw-r);
  line-height: 21px;
  color: var(--color-text);
}
.contact-form__submit {
  display: flex;
  width: 100%;
  height: 50px;
  margin-top: 20px;
  padding: 15px;
  background: var(--color-accent);
  border-radius: 4px;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.contact-form__submit p {
  font-size: 18px;
  font-weight: var(--fw-db);
  line-height: 18px;
  color: #fff;
  padding-bottom: 2px;
  text-align: center;
}
.contact-form__status {
  font-size: 14px;
  line-height: 21px;
  margin-top: 12px;
  text-align: center;
  min-height: 0;
}
.contact-form__status:empty { display: none; }

/* =========================================================
   法人向けサービス /business（実測: extraction/pages/business.json）
   ========================================================= */
.biz-main {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.biz-container {
  display: flex;
  width: 100%;
  max-width: 1080px;
  padding: 0 24px;
  flex-direction: column;
}
/* タイトル+オレンジバーは高さ45px固定のブロック（実測: Studio が高さを固定） */
.page-title-block {
  display: flex;
  height: 45px;
  flex-direction: column;
}
.page-title-row {
  display: flex;
  margin-bottom: 8px;
  align-items: center;
}
.page-title-row p {
  font-size: 28px;
  font-weight: var(--fw-db);
  line-height: 33.6px;
  color: rgb(33, 33, 33);
  margin-right: 20px;
}
.biz-lead {
  display: flex;
  align-items: center;
  font-size: 14px;
  font-weight: var(--fw-r);
  letter-spacing: 1.4px;
  line-height: 26.6px;
  color: var(--color-text);
  margin: 4px 0 0;
  height: 98px;
}
.biz-lead span { display: block; }
.biz-box {
  display: flex;
  width: 100%;
  margin-bottom: 31px;
  padding: 49px 100px 60px;
  background: rgb(250, 250, 250);
  border-radius: 10px;
  flex-direction: column;
  align-items: center;
}
.biz-box h3 {
  font-size: 24px;
  font-weight: var(--fw-r);
  line-height: 33.6px;
  color: var(--color-text-dark);
  margin-bottom: 6px;
  text-align: center;
}
.biz-box__sub {
  font-weight: var(--fw-l);
  line-height: 22.4px;
  height: 22.4px;
  color: var(--color-text);
  margin-bottom: 14px;
  text-align: center;
}
.biz-items {
  display: flex;
  width: 100%;
  max-width: 832px;
  flex-wrap: wrap;
}
.biz-item {
  display: flex;
  width: calc(50% - 20px);
  height: 34px;
  margin: 5px 10px;
  padding: 0 15px;
  background: #fff;
  border: 1px solid rgb(204, 204, 204);
  justify-content: center;
  align-items: center;
}
.biz-item p {
  font-weight: var(--fw-db);
  line-height: 22.4px;
  color: var(--color-text);
  text-align: center;
}

/* business パンくず帯（旧インラインstyle height:99px） */
.breadcrumb-band--biz { height: 99px; }

/* business / フォーム ≤768（実測値: title 32px / box pad 80,40 / 項目1列 / main pad 43px） */
@media (max-width: 768px) {
  .biz-main { height: auto !important; padding: 43px 0; }
  .page-title-row p { font-size: 32px; line-height: 38.4px; }
  .biz-box {
    width: auto;
    align-self: stretch;
    margin: 0 30px 60px;
    padding: 80px 40px;
  }
  .biz-box h3 { font-size: 18px; line-height: 25.2px; }
  .biz-item { width: 100%; margin: 0 0 20px; }
  .contact-block--business { margin-top: 0; height: 970px; }
  .contact-block__title p { font-size: 32px; line-height: 38.4px; }
  .contact-form { max-width: calc(100% - 80px); }
  .contact-form__field--company { width: 100%; }
}

/* =========================================================
   水のトラブル修理 /service-warter（実測: extraction/pages/service-warter.json）
   ========================================================= */
.sw-page {
  display: flex;
  padding-top: 15px;
  background: #fff;
  flex-direction: column;
  align-items: center;
}
.sw-container {
  display: flex;
  width: 1000px;
  max-width: 100%;
  flex-direction: column;
}
.sw-title-block {
  display: flex;
  height: 91px;
  flex-direction: column;
}
.sw-title-row {
  display: flex;
  margin-bottom: 25px;
  align-items: center;
  height: 48px;
}
.sw-title-row p {
  font-size: 40px;
  font-weight: var(--fw-db);
  line-height: 48px;
  color: rgb(33, 33, 33);
}
.sw-lead {
  font-size: 18px;
  font-weight: var(--fw-r);
  line-height: 32.4px;
  color: rgb(66, 66, 66);
  margin: 0 14px 20px 15px;
  padding-top: 29px;
  height: 156px;
}
.sw-cards {
  display: flex;
  width: 100%;
  flex-wrap: wrap;
}
.sw-card {
  display: flex;
  width: calc(50% - 30px);
  height: 545px;
  margin: 0 15px 50px;
  background: rgb(242, 242, 242);
  border-radius: 20px;
  flex-direction: column;
}
.sw-card__title {
  display: flex;
  height: 65px;
  font-size: 24px;
  font-weight: 900;
  line-height: 33.6px;
  color: var(--color-text-dark);
  justify-content: center;
  align-items: center;
  text-align: center;
}
.sw-card__img {
  height: 306px;
  background-size: cover;
  background-position: center;
}
.sw-card__desc {
  font-size: 16px;
  font-weight: var(--fw-r);
  line-height: 28.8px;
  color: #000;
  margin: 10px 15px 0;
  padding: 0 10px;
  height: 86.4px;
  overflow: hidden;
}
.sw-card__price {
  display: flex;
  height: 61px;
  margin: 5px 20px 0;
  padding: 0 10px 0 0;
  background: #fff;
  border-radius: 12px;
  justify-content: space-between;
  align-items: center;
}
.sw-card__price-label {
  font-size: 24px;
  font-weight: var(--fw-db);
  line-height: 28.8px;
  color: rgb(33, 33, 33);
  margin: 10px 0;
  width: 181px;
  text-align: right;
}
.sw-card__price-num {
  font-size: 40px;
  font-weight: 900;
  line-height: 48px;
  color: var(--color-accent);
  margin: 9px 0 10px;
  width: 147px;
  text-align: right;
}
.sw-card__price-unit {
  font-size: 20px;
  font-weight: var(--fw-db);
  line-height: 24px;
  color: rgb(33, 33, 33);
  padding-top: 9px;
  width: 64px;
  text-align: left;
}

/* Flow */
.sw-flow-head {
  display: flex;
  width: 1000px;
  max-width: 100%;
  margin-top: 52px;
  flex-direction: column;
}
.sw-title-block--flow { height: 117px; }
.sw-flow-en {
  font-family: "Open Sans", sans-serif;
  font-weight: 700;
}
.sw-flow-jp {
  font-size: 24px !important;
  margin-left: 20px;
}
.sw-flow {
  display: flex;
  width: 1000px;
  max-width: 100%;
  height: 341px;
  justify-content: center;
}
.sw-flow__row {
  display: flex;
  width: 985px;
  max-width: 100%;
  height: 319px;
  justify-content: center;
}
.sw-step {
  display: flex;
  width: 185px;
  margin: 0 6px;
  flex-direction: column;
  align-items: center;
}
.sw-step__title {
  display: flex;
  width: 185px;
  height: 43px;
  margin-top: 35.5px;
  background: rgb(255, 219, 0);
  border-radius: 10px;
  justify-content: center;
  align-items: center;
  font-size: 20px;
  font-weight: 900;
  line-height: 28px;
  color: var(--color-text);
  text-align: center;
}
.sw-step__icon {
  display: flex;
  height: 159.5px;
  justify-content: center;
  align-items: center;
}
.sw-step__desc {
  font-size: 12px;
  font-weight: var(--fw-r);
  line-height: 16.8px;
  color: var(--color-text);
  height: 45px;
  overflow: hidden;
  text-align: center;
}

/* =========================================================
   ローラーストーン /rollerstone（実測: extraction/pages/rollerstone.json）
   ========================================================= */
.rs-main {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.rs-hero {
  display: flex;
  position: relative;
  width: 100%;
  height: 420px;
  background: rgb(238, 238, 238);
  justify-content: center;
  align-items: center;
}
/* 背景写真は brightness(0.8) 付き（実測）。ロゴに影響しないよう擬似要素に分離 */
.rs-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("/images/rs-hero.webp") center / cover no-repeat;
  filter: brightness(0.8);
}
.rs-hero__logo { position: relative; }
.rs-hero__logo {
  width: 640px;
  max-width: 100%;
  height: 68px;
  background: url("/images/rs-logo-banner.webp") center / cover no-repeat;
}
.rs-intro {
  display: flex;
  width: 100%;
  height: 279.36px;
  padding-bottom: 33px;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.rs-intro__inner {
  display: flex;
  width: 100%;
  max-width: 1080px;
  margin: 40px 0;
  padding: 0 111px;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.rs-intro__inner h2 {
  margin-top: 24px;
  font-size: 32px;
  font-weight: var(--fw-db);
  line-height: 51.2px;
  letter-spacing: 3.2px;
  color: var(--color-text-dark);
  text-align: center;
}
.rs-intro__inner p {
  font-size: 16px;
  font-weight: var(--fw-r);
  line-height: 30.4px;
  letter-spacing: 1.6px;
  color: var(--color-text);
  text-align: center;
}
.rs-features-title {
  width: 100%;
  font-size: 32px;
  font-weight: var(--fw-db);
  line-height: 51.2px;
  letter-spacing: 3.2px;
  color: var(--color-text-dark);
  margin-top: 24px;
  text-align: center;
}
.rs-feature {
  display: flex;
  width: 100%;
  height: 396px;
  justify-content: center;
  align-items: center;
}
.rs-feature__row {
  display: flex;
  width: 1040px;
  max-width: 100%;
  height: 320px;
  align-items: center;
}
.rs-feature__photo {
  width: 468px;
  height: 320px;
  flex: none;
  background-size: cover;
  background-position: center;
}
.rs-feature__text {
  display: flex;
  width: 522px;
  height: 320px;
  margin-left: 50px;
  flex-direction: column;
}
.rs-feature__h {
  display: flex;
  height: 42.4px;
  margin-left: 6px;
  flex-direction: column;
  justify-content: center;
}
.rs-feature__h h3 {
  font-size: 24px;
  font-weight: var(--fw-db);
  line-height: 38.4px;
  color: #000;
}
.rs-feature__text > p {
  font-size: 16px;
  font-weight: 500;
  line-height: 32px;
  color: var(--color-text);
  margin-top: 20px;
}
.rs-video {
  display: flex;
  width: 100%;
  height: 565px;
  background: #fff;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.rs-video__head, .rs-cases__head {
  display: flex;
  width: 100%;
  height: 110px;
  margin-bottom: 40px;
  flex-direction: column;
  align-items: center;
}
.rs-video__head h2, .rs-cases__head h2 {
  font-size: 54px;
  font-weight: 900;
  line-height: 64.8px;
  color: #000;
  margin-bottom: 20px;
  text-align: center;
}
.rs-video__head p, .rs-cases__head p {
  font-size: 18px;
  font-weight: var(--fw-l);
  line-height: 25.2px;
  color: var(--color-text);
  text-align: center;
}
.rs-video__frame {
  display: flex;
  width: 566px;
  max-width: 100%;
  height: 309px;
  flex-direction: column;
  align-items: center;
}
.rs-video__frame iframe { width: 100%; height: 100%; border: 0; }
.rs-cases {
  display: flex;
  width: 100%;
  height: 693px;
  background: #fff;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.rs-cases__row {
  display: flex;
  width: 100%;
  height: 428px;
  padding-left: 100px;
  overflow-x: auto;
  overflow-y: hidden;
}
.rs-case {
  display: flex;
  width: 640px;
  height: 428px;
  padding: 30px 20px 0;
  flex: none;
  flex-direction: column;
}
.rs-case__img {
  width: 600px;
  height: 378px;
  background-size: cover;
  background-position: center;
}

/* rollerstone パンくず帯（旧インラインstyle height:110px） */
.breadcrumb-band--rs { height: 110px; }

/* rollerstone ≤768（実測: ヒーロー240・特長=テキスト上/写真下 pad82,40・cases 587px） */
@media (max-width: 768px) {
  .rs-hero { height: 240px; }
  .rs-intro { height: auto; }
  .rs-feature { padding: 0 40px; justify-content: center; align-items: center; }
  .rs-feature--1 { height: 642px; margin-bottom: 30px; }
  .rs-feature--2 { height: 627px; }
  .rs-feature--3 { height: 592px; }
  .rs-feature--4 { height: 596px; }
  .rs-feature--5 { height: 546px; }
  .rs-feature__row {
    height: auto;
    flex-direction: column-reverse;
  }
  .rs-feature__photo { width: 100%; height: 320px; margin-top: 5px; }
  /* ≤768 は元サイト同様 middle 変種を配信 */
  .rs-hero::before { background-image: url("/images/rs-hero-m.webp"); }
  .rs-feature--1 .rs-feature__photo { background-image: url("/images/rs-case-1-m.webp") !important; }
  .rs-feature--2 .rs-feature__photo { background-image: url("/images/home-photo-2-m.webp") !important; }
  .rs-feature--3 .rs-feature__photo { background-image: url("/images/rs-case-2-m.webp") !important; }
  .rs-feature--4 .rs-feature__photo { background-image: url("/images/rs-case-3-m.webp") !important; }
  .rs-feature--5 .rs-feature__photo { background-image: url("/images/rs-case-4-m.webp") !important; }
  .rs-feature__text { width: 100%; height: auto; margin: 0; }
  .rs-feature__text > p { margin-top: 15px; overflow: hidden; }
  .rs-feature--1 .rs-feature__text > p, .rs-feature--2 .rs-feature__text > p { height: 96px; }
  .rs-feature--3 .rs-feature__text > p, .rs-feature--5 .rs-feature__text > p { height: 64px; }
  .rs-feature--4 .rs-feature__text > p { height: 128px; }
  .rs-cases { height: 587px; }
  .rs-video__head h2, .rs-cases__head h2 { font-size: 40px; line-height: 48px; }
  .rs-cases__row { padding-left: 20px; }
}

/* 電話/LINE 相談CTA */
.consult {
  display: flex;
  width: 100%;
  height: 366px;
  justify-content: center;
  align-items: center;
}
.consult__half {
  display: flex;
  width: 50%;
  height: 366px;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.consult__half--tel { padding: 25px 24px 30px 30px; }
.consult__half--line { padding: 25px 30px 30px 22px; }
.consult__box {
  display: flex;
  width: 100%;
  height: 235px;
  padding-top: 25px;
  background: rgba(238, 238, 238, 0.43);
  border-radius: 10px;
  flex-direction: column;
  align-items: center;
}
.consult__box h3 {
  font-size: 24px;
  font-weight: var(--fw-db);
  line-height: 38.4px;
  color: var(--color-text);
}
.consult__note {
  font-size: 16px;
  font-weight: var(--fw-l);
  line-height: 22.4px;
  color: var(--color-text);
  margin-top: 20px;
  text-align: center;
}
.consult__btn-wrap { display: flex; margin-top: 38px; }
.consult__btn {
  display: flex;
  height: 50px;
  padding: 0 30px;
  border-radius: 27px;
  justify-content: center;
  align-items: center;
  cursor: pointer;
}
.consult__btn--tel { background: var(--color-accent); width: 284px; }
.consult__btn--line { background: rgb(0, 185, 0); width: 243px; }
.consult__btn svg { width: 24px; height: 24px; color: #fff; margin-right: 8px; }
.consult__btn p {
  font-size: 18px;
  font-weight: 500;
  line-height: 20px;
  color: #fff;
}

.sw-tail { height: 139px; }

/* service-warter ≤768（実測: カード1列 幅100%・コンテナpad 20・CTA横並び維持・フロー横スクロール） */
@media (max-width: 768px) {
  .sw-title-row p { font-size: 32px; line-height: 38.4px; }
  .sw-flow-head { margin-top: 42px; }
  .sw-tail { height: 50px; }
  .sw-container { padding: 0 20px; }
  .sw-card { width: 100%; margin: 0 0 40px; }
  .sw-flow__row {
    justify-content: flex-start;
    padding-left: 12px;
    overflow-x: auto;
  }
  .sw-step { flex: none; }
}

/* 会社概要 ≤768（実測: ヒーロー240px・テーブル縦積み） */
@media (max-width: 768px) {
  .company-hero { height: 240px; }
  .company-hero__title p { font-size: 32px; }
  .company-table-sec { height: auto; padding-bottom: 122.6px; }
  .company-table { width: calc(100% - 120px); max-width: none; margin: 0 60px; }
  .company-row {
    flex-direction: column;
    align-items: stretch;
    height: auto;
    margin-bottom: 1px;
  }
  .company-row__label { width: 100%; height: 50px; }
  .company-row__value { width: 100%; padding: 0 30px; }
  .company-row:nth-child(1) .company-row__value { height: 81.2px; }
  .company-row:nth-child(2) .company-row__value { height: 101px; }
  .company-row:nth-child(3) .company-row__value,
  .company-row:nth-child(4) .company-row__value,
  .company-row:nth-child(5) .company-row__value { height: 70px; }
  .company-row:nth-child(6) .company-row__value { height: 127.2px; }
  .company-row:nth-child(7) .company-row__value { height: 172px; }
}

/* business + 共通フォーム ≤480（実測: main2292固定・項目1列45px/radius10・title18px） */
@media (max-width: 480px) {
  .breadcrumb-band--biz { height: 96px; }
  .biz-main {
    height: 2292px !important;
    padding: 0;
    overflow: hidden;
  }
  .biz-container { margin: 48px 0; padding: 0 12px; }
  .page-title-block { height: 70px; }
  .page-title-row p { font-size: 18px; line-height: 21.6px; }
  .biz-lead { height: 174px; }
  .biz-box {
    width: 100%;
    align-self: auto;
    margin: 0 0 20px;
    padding: 60px 5px;
  }
  .biz-box h3 { font-size: 24px; line-height: 33.6px; }
  .biz-box__sub { font-size: 15px; line-height: 21px; }
  .biz-items { padding: 0 10px; }
  .biz-item {
    width: 100%;
    height: 45px;
    margin: 0 0 15px;
    padding: 0 20px;
    border-radius: 10px;
  }
  .biz-item p { font-size: 15px; line-height: 21px; }
  /* メンテナンス2項目目のみ元サイトはフォント縮小で1行に収める
     （biz-container 内の div は title-block, box×3 の順なので nth-of-type(2) が最初の box） */
  .biz-box:nth-of-type(2) .biz-item:nth-child(2) p { font-size: 14px; line-height: 19.6px; }

  /* 共通お問い合わせブロック */
  .contact-block__container {
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0 20px;
  }
  .contact-block__title p { font-size: 24px; line-height: 28.8px; }
  .contact-form { max-width: calc(100% - 40px); }
}

/* rollerstone ≤480（実測: ロゴ253x28・特長にピンク下線・写真260px・動画/事例縮小） */
@media (max-width: 480px) {
  .breadcrumb-band--rs { height: 106px; }
  .rs-hero__logo { width: 253px; height: 28px; }
  .rs-intro { height: 305px; padding: 0; }
  .rs-intro__inner { margin: 48px 0; padding: 0 16px; overflow: hidden; }
  .rs-intro__inner h2 { font-size: 22px; line-height: 35.2px; margin: 15px 0 10px; }
  .rs-features-title { font-size: 24px; line-height: 38.4px; margin: 24px 0 38px; }

  .rs-feature { padding: 0 10px; }
  .rs-feature--1 { height: 468px; margin-bottom: 0; }
  .rs-feature--2 { height: 573px; }
  .rs-feature--3 { height: 508px; }
  .rs-feature--4 { height: 646px; }
  .rs-feature--5 { height: 550px; }
  /* column-reverse + flex-start = 写真を下端基準に配置（元サイトはテキストが上にはみ出す） */
  .rs-feature__row { height: 100%; justify-content: flex-start; }
  .rs-feature__photo { height: 260px; }
  .rs-feature--1 .rs-feature__photo { margin: 0; }
  .rs-feature--2 .rs-feature__photo { margin: 46px 0 0; }
  .rs-feature--3 .rs-feature__photo { margin: 16px 0 0; }
  .rs-feature--4 .rs-feature__photo { margin: 15px 0 14px; }
  .rs-feature--5 .rs-feature__photo { margin: 30px 0 55px; }
  .rs-feature__h {
    height: 36px;
    margin: 0;
    border-bottom: 4px solid rgb(254, 23, 140);
    align-self: flex-start;
  }
  .rs-feature__h h3 { font-size: 20px; line-height: 32px; }
  .rs-feature__text > p { margin-top: 17px; }
  .rs-feature--1 .rs-feature__text > p { height: 160px; }
  .rs-feature--2 .rs-feature__text > p { height: 192px; }
  .rs-feature--3 .rs-feature__text > p { height: 128px; }
  .rs-feature--4 .rs-feature__text > p { height: 214px; margin-top: 30px; }
  .rs-feature--5 .rs-feature__text > p { height: 96px; }

  .rs-video { height: 451px; }
  .rs-video__head, .rs-cases__head { height: 71px; padding: 0 30px; margin-bottom: 40px; }
  .rs-video__head h2, .rs-cases__head h2 { font-size: 24px; line-height: 28.8px; }
  .rs-video__head p, .rs-cases__head p {
    font-size: 16px;
    line-height: 22.4px;
    font-weight: var(--fw-r);
  }
  .rs-video__frame { width: 428px; height: 242px; }
  .rs-cases {
    height: 395px;
    justify-content: flex-start;
    padding-top: 44px;
  }
  .rs-cases__row { height: 253px; padding-left: 20px; }
  .rs-case { width: 320px; height: 253px; padding: 20px 15px 30px; }
  .rs-case__img { width: 290px; height: 183px; }
}

/* service-warter ≤480（実測: title24px・リード15px/27px・カード毎固定高・CTA縦積み） */
@media (max-width: 480px) {
  .sw-title-row { height: 29px; margin-bottom: 25px; }
  .sw-title-row p { font-size: 24px; line-height: 28.8px; }
  .sw-lead {
    font-size: 15px;
    line-height: 27px;
    height: 219px;
    margin: 0 14px 15px 15px;
  }
  /* カード高さと説明文はStudioの実測固定値（フォント置換で行数が変わるため固定） */
  .sw-card:nth-child(1) { height: 553px; }
  .sw-card:nth-child(2) { height: 585px; }
  .sw-card:nth-child(3) { height: 585px; }
  .sw-card:nth-child(4) { height: 585px; }
  .sw-card:nth-child(5) { height: 557px; }
  .sw-card:nth-child(6) { height: 554px; }
  .sw-card:nth-child(1) .sw-card__desc,
  .sw-card:nth-child(5) .sw-card__desc,
  .sw-card:nth-child(6) .sw-card__desc { height: 115px; }
  .sw-card:nth-child(2) .sw-card__desc,
  .sw-card:nth-child(3) .sw-card__desc,
  .sw-card:nth-child(4) .sw-card__desc { height: 144px; }
  .sw-card__price {
    height: 38px;
    padding: 0;
    justify-content: center;
  }
  .sw-card__price-label {
    font-size: 15px;
    line-height: 18px;
    margin: 10px 0;
    width: 91px;
  }
  .sw-card__price-num {
    font-size: 24px;
    line-height: 28.8px;
    width: 119px;
  }
  .sw-card__price-unit {
    font-size: 15px;
    line-height: 18px;
    width: 55px;
    padding-top: 9px;
  }
  .sw-flow-head { margin-top: 52px; padding: 0 20px; }
  .sw-title-block--flow { height: 98px; }
  .sw-flow-jp { line-height: 24px; font-weight: 500; }
  .sw-tail { height: 0; }

  /* 相談CTA: LINE上・電話下の縦積み */
  .consult {
    height: 615px;
    flex-direction: column-reverse;
    justify-content: center;
    align-items: center;
  }
  .consult__half { width: 100%; height: 296px; }
  .consult__half--tel { padding: 0 30px 5px; }
  .consult__half--line { padding: 5px 30px 0; }
  .consult__box { height: 270px; padding: 30px 0 0; width: 100%; }
  .consult__box h3 { font-size: 20px; line-height: 32px; }
  .consult__note {
    font-size: 12px;
    line-height: 24px;
    font-weight: 500;
    margin: 20px 0 0;
    padding-left: 40px;
  }
  .consult__btn-wrap { margin-top: 30px; }
  /* 元サイトは新ゴ字幅で2行に折返す。字幅差を高さ固定で吸収 */
  .consult__half--tel .consult__note { height: 48px; }
  .consult__btn--tel { width: 243px; }
  .consult__btn p { line-height: 18px; font-weight: 700; }
  /* 元サイトはページラッパー固定高の余りでフッター下に26pxの余白 */
  .site-footer--sw { margin-bottom: 26px; }
}

/* 会社概要 ≤480（実測: タイトル中央24px・ラベル行32px・本文15px/21px） */
@media (max-width: 480px) {
  .breadcrumb p { font-weight: 500; }
  .company-hero__title { height: 55px; margin: 0 0 25px; justify-content: center; }
  .company-hero__title p {
    font-size: 24px;
    line-height: 24px;
    height: 48px;
    display: flex;
    align-items: center;
  }
  .company-table-sec { padding-bottom: 41px; }
  .company-table {
    width: calc(100% - 10px);
    max-width: none;
    margin: 35px 5px 0;
    padding: 0 20px;
  }
  .company-row { margin-bottom: 0; }
  .company-row__label { height: 32px; }
  .company-row__label p { font-weight: 400; }
  .company-row__value { padding: 0; }
  .company-row__value p,
  .company-row__value h3 { font-size: 15px; line-height: 21px; font-weight: 400; }
  .company-row:nth-child(1) .company-row__value {
    height: 77px;
    align-items: flex-start;
    padding-top: 20px;
  }
  .company-row:nth-child(2) .company-row__value {
    height: auto;
    flex-direction: column;
    align-items: flex-start;
    padding: 30px 0;
  }
  .company-row:nth-child(3) .company-row__value,
  .company-row:nth-child(4) .company-row__value,
  .company-row:nth-child(5) .company-row__value { height: 71px; justify-content: center; }
  .company-row:nth-child(6) .company-row__value { height: 124px; }
  .company-row:nth-child(7) .company-row__value { height: 165px; }
  .company-map-btn {
    width: calc(100% - 100px);
    max-width: calc(100% - 100px);
    margin: 20px 50px 0;
    text-align: center;
  }
}

/* モバイル 481〜540（実測: extraction/pages/home-500.json。Studioのタブレット帯） */
@media (max-width: 540px) and (min-width: 481px) {
  .home-card--sw { height: 669.53px; }
  .home-card--rs { height: 656.14px; }
  .home-card--bm { height: 656.14px; }
}

/* =========================================================
   モバイル ≤480（本番 Studio の screen and (max-width:480px) 実測値。
   375px 実機比較: diff/prod-480-map-*.json）
   ========================================================= */
@media (max-width: 480px) {
  /* ヘッダー: メニューボタンは 48x50（padding 12） */
  .site-menu-btn { width: 48px; padding: 12px; }

  /* ヒーロー: 507px・ロゴ292x284・コピー24px */
  .home-hero { height: 507px; }
  .home-hero__logo { width: 292px; height: 284px; }
  .home-hero__copy {
    font-size: 24px;
    line-height: 33.6px;
    font-weight: var(--fw-r);
    height: 60px;
    display: flex;
    justify-content: center;
    align-items: center;
  }

  /* 理念: 写真非表示・縦積み・セクション391px */
  .home-mission { height: 391px; }
  .home-mission__container {
    flex-direction: column-reverse;
    height: 364px;
    margin: 15px 0 64px;
  }
  .home-mission__text { width: 100%; max-width: 100%; padding: 0; align-items: center; }
  .home-mission__text h2, .home-mission__text p { width: 100%; }
  .home-mission__photo { display: none; }
  .btn-outline--mission { width: 318px; max-width: 100%; margin: 58px 0 6px; }

  /* 事業内容 見出し: リード文は左寄せ */
  .home-business-head__container { max-width: 100%; margin-top: 48px; }
  .home-business-head p { text-align: left; }

  /* 事業カード: 画像上・テキスト下の縦積み・箱影なし */
  .home-card { justify-content: center; }
  .home-card--sw { height: 761px; }
  .home-card--rs { height: auto; }
  .home-card--bm { height: auto; }
  .home-card__container { flex-direction: column-reverse; }
  .home-card__text {
    width: 100%;
    max-width: 100%;
    margin: 48px 0 0;
    padding: 0;
    align-self: auto;
  }
  .home-card__imgbox {
    width: 100%;
    height: 240px;
    margin: 0 0 14px;
    box-shadow: none;
  }
  .home-card__imgbox img { width: 100%; height: auto; }
  .home-card__imgbox--overflow { height: 240px; overflow: visible; }
  .tag p { font-weight: var(--fw-r); letter-spacing: normal; }
  .btn-outline--card-sw { width: 314px; max-width: 100%; }
  .btn-outline--card-bm { width: 240px; max-width: 100%; }

  /* Instagram: 見出し32px・説明16px */
  .home-insta { padding: 80px 0; }
  .home-insta__head { padding: 0 30px; }
  .home-insta__head h2 { font-size: 32px; line-height: 38.4px; }
  .home-insta__head p { font-size: 16px; line-height: 22.4px; font-weight: var(--fw-r); }
  .home-insta__row { padding-left: 20px; }
  .home-insta__cell:first-child { width: 300px; }
  .home-insta__cell:first-child .home-insta__tile { width: 290px; }

  /* フッター: 住所12px・SNS 11px+下線・中央寄せ */
  .site-footer__inner { margin: 52px 0; }
  .site-footer__addr {
    font-size: 12px;
    line-height: 19.2px;
    letter-spacing: 1.2px;
    font-weight: var(--fw-r);
  }
  .site-footer__right { align-items: center; margin-top: 24px; }
  .site-footer__sns svg, .site-footer__sns img { width: 16px; height: 16px; }
  .site-footer__sns span {
    font-size: 11px;
    position: relative;
    margin-left: 8px;
  }
  .site-footer__sns span::after {
    content: "";
    position: absolute;
    left: 0; right: -4px;
    bottom: -7px;
    border-bottom: 1px solid var(--color-text);
  }
  .site-footer__sns a:last-child {
    flex-direction: row-reverse;
    margin-left: 34px;
  }
  .site-footer__sns a:last-child span { margin: 0 8px 0 0; }
  .site-footer__copy { justify-content: center; margin-top: 24px; }
}

