@charset "UTF-8";
/* ==========================================================================
   親栄電設株式会社 — コーポレートサイト
   Figma: 親栄電設株式会社 (K8mgEpLpCctD3CpSV3JVc0) / デザイン幅 1920px
   --------------------------------------------------------------------------
   スケール方針
     ルート font-size を clamp(13px, 100vw/120, 16px) にすることで、
     Figma の px 値 ÷ 16 = rem がそのままデザイン比率になる。
       1920px 以上 …… root 16px（原寸）
       1560–1920px … 100vw/120 で流動（デザインを等比縮小）
       1560px 未満 … root 13px で固定（本文 16.25px を下回らせない）
       1024px 未満 … タブレット / SP レイアウトへ切替（root 16px + トークン差替）
   ========================================================================== */

/* --------------------------------------------------- 1. リセット ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:1.25rem}
body,h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd,ul,ol{margin:0}
:where(ul[class],ol[class],nav ul,nav ol,.footer ul){list-style:none;padding:0;margin:0}
img,picture,svg,video{display:block;max-width:100%}
img{height:auto}
input,button,textarea,select{font:inherit;color:inherit}
button{background:none;border:0;padding:0;cursor:pointer}
table{border-collapse:collapse;border-spacing:0}
a{color:inherit;text-decoration:none}
:where(a,button,input,textarea,select,summary):focus-visible{outline:3px solid var(--c-green);outline-offset:2px;border-radius:2px}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* --------------------------------------------------- 2. トークン ---------- */
:root{
  /* 色 */
  --c-green:#3b801c;          /* 見出し・リンクのグリーン */
  --c-green-bar:#41b436;      /* セクション見出しバー */
  --c-green-deep:#2f6b16;
  --c-ink:#231815;            /* 本文（すみ） */
  --c-black:#000;
  --c-white:#fff;
  --c-bg-soft:#efefef;        /* News セクション帯 */
  --c-line:#000;              /* お知らせ一覧の黒罫 */
  --c-line-soft:#4d4d4d;      /* 表組み罫線 */
  --c-dash:#3b801c;           /* 点線（基本方針・FAQ など） */
  --c-gray:#c8c9ca;

  /* イージング（自然な減速。bounce / elastic は使わない） */
  --ease-out-quart:cubic-bezier(.25,1,.5,1);
  --ease-out-quint:cubic-bezier(.22,1,.36,1);
  --ease-out-expo:cubic-bezier(.16,1,.3,1);

  /* グラデーション（Figma のラスタを使用） */
  --grad-hero:url("../img/bg/gradient-tall.webp") center/cover no-repeat;
  --grad-band:url("../img/bg/gradient-wide.webp") center/cover no-repeat;

  /* 書体 */
  --ff-jp:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Hiragino Sans","Noto Sans JP",Meiryo,sans-serif;
  --ff-en:"Baloo 2","Zen Kaku Gothic New",system-ui,sans-serif;

  /* 文字サイズ（Figma px ÷ 16） */
  --fs-hero:9.6875rem;        /* 155 illuminate / Recruitment */
  --fs-section-en:4.375rem;   /* 70  News */
  --fs-section-en-sm:3.125rem;/* 50  Construction Results / バナー英字 */
  --fs-banner-en:3.125rem;    /* 50  Company Profile */
  --fs-page-title:3.4375rem;  /* 55  お知らせ */
  --fs-lead:2.8125rem;        /* 45  親栄電設の今を、お届けします。 */
  --fs-bar:2.1875rem;         /* 35  セクションバー見出し */
  --fs-xl:1.875rem;           /* 30  page-title EN / バナー下キャプション */
  --fs-lg:1.5625rem;          /* 25  ナビ・フッター見出し・本文大 */
  --fs-md:1.4375rem;          /* 23  リード文 */
  --fs-base:1.25rem;          /* 20  本文 */
  --fs-sm:1.125rem;           /* 18  日付・カテゴリ */
  --fs-xs:1rem;               /* 16  注記 */
  --fs-copy:.9rem;            /* 14.4  コピーライト */

  /* レイアウト */
  --container:80rem;          /* 1280 */
  --container-wide:100rem;    /* 1600 */
  --gutter:1.5rem;
  --header-h:7.5rem;          /* 120 */
  --band-h:11.875rem;         /* 190  下層ページのグリーン帯 */
  --radius-pill:999px;
  --radius-btn:.625rem;       /* 10px  ボタン・セレクト・バナーラベル */
  --radius-tag:.9375rem;      /* 15px  タグ */
  --radius-bar:1.875rem;      /* 30px  セクションバー */

  /* 余白 */
  --sp-section:6.25rem;       /* 100 */
  --sp-block:3.125rem;        /* 50 */
  --sp-row:4.25rem;           /* 68  ニュース行高（+2px ボーダー = ピッチ 70）*/
}

html{font-size:clamp(13px,calc(100vw / 120),16px)}
body{
  font-family:var(--ff-jp);
  font-size:var(--fs-base);
  line-height:1.8;
  color:var(--c-ink);
  background:var(--c-white);
  overflow-wrap:anywhere;
}

/* --------------------------------------------------- 3. レイアウト -------- */
.l-container{width:min(var(--container),100% - var(--gutter)*2);margin-inline:auto}
.l-container--wide{width:min(var(--container-wide),100% - var(--gutter)*2)}
.l-bleed{width:100%;max-width:1920px;margin-inline:auto}
.l-main{display:block}
/* PC だけ／SP だけ（改行位置の出し分けなど） */
.u-sp{display:none}
.u-vh{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.skip-link{position:absolute;top:0;left:0;z-index:200;padding:.75rem 1.25rem;background:var(--c-green);color:#fff;transform:translateY(-120%)}
.skip-link:focus{transform:translateY(0)}

/* --------------------------------------------------- 4. ヘッダー ---------- */
/* ヘッダーは固定しない（スクロールで流れる）。
   ロゴ・ナビだけ 102 に上げ、page-hero のイラスト(101) をヘッダーの白背景より前面・
   ナビより背面に置く。 */
.header{
  position:relative;
  height:var(--header-h);
  background:var(--c-white);
  display:flex;align-items:center;
}
.header__inner{position:relative;z-index:102;width:100%;max-width:1920px;margin-inline:auto;padding-inline:10rem;display:flex;align-items:center;justify-content:space-between;gap:2rem}
.header__logo{display:block;width:26.8125rem;flex:none}   /* 429px */
.header__logo img{width:100%}
.gnav{display:block;margin-right:1.4375rem}
.gnav__list{display:flex;align-items:center;gap:3.15rem}
.gnav__item{position:relative}
.gnav__link{
  display:flex;align-items:center;gap:.5rem;
  font-size:var(--fs-lg);font-weight:700;line-height:1;letter-spacing:.02em;
  color:var(--c-black);white-space:nowrap;padding:.5rem 0;
  transition:color .2s;
}
.gnav__link:hover,.gnav__item.is-open>.gnav__link{color:var(--c-green)}
.gnav__link[aria-current="page"],.gnav__item.is-current>.gnav__link{color:var(--c-green)}
.gnav__caret{width:1rem;height:.5rem;flex:none;transition:transform .2s}
.gnav__item.is-open .gnav__caret{transform:rotate(180deg)}
.gnav__sub{
  position:absolute;top:100%;left:50%;translate:-50% 0;
  min-width:16rem;padding:.75rem 0;margin-top:1.25rem;
  background:var(--c-white);border:1px solid #e3e3e3;border-radius:.5rem;
  box-shadow:0 .5rem 1.5rem rgb(0 0 0 / .12);
  opacity:0;visibility:hidden;translate:-50% .5rem;
  transition:opacity .22s var(--ease-out-quart),translate .22s var(--ease-out-quart),visibility .22s;
}
.gnav__item:hover .gnav__sub,.gnav__item:focus-within .gnav__sub,.gnav__item.is-open .gnav__sub{opacity:1;visibility:visible;translate:-50% 0}
.gnav__sub a{display:block;padding:.6rem 1.5rem;font-size:var(--fs-base);white-space:pre-line;line-height:1.5}
.gnav__sub a:hover{background:#f3f8f0;color:var(--c-green)}
.nav-toggle{display:none}

/* --------------------------------------------------- 5. フッター ---------- */
.footer{padding:0 0 6.906rem;background:var(--c-white)}
/* Figma: 1600px 幅・5px・#3C873C。トップページにだけ入らない */
/* 罫は上の要素（サンクスページのイラストなど、下端を罫に乗せているもの）より前面に出す */
.footer__rule{position:relative;z-index:1;width:min(100rem,100% - 2.5rem);margin:0 auto;height:5px;background:#3c873c}
.home .footer__rule,
.page-home .footer__rule{display:none}
.footer__inner{width:100%;max-width:1920px;margin-inline:auto;padding:2.8125rem 10rem 0;display:grid;grid-template-columns:1fr auto;gap:2rem 4rem;align-items:start}
.footer__logo{display:block;width:26.8125rem;margin-bottom:1.391rem}
.footer__nav{display:grid;grid-template-columns:14.375rem 11.8125rem 10.625rem auto;gap:0;padding-left:10rem}
.footer__col h2,.footer__col .footer__head{font-size:var(--fs-lg);font-weight:700;color:var(--c-green);margin-bottom:.183rem;line-height:1.5}
.footer__col .footer__head a{font-size:inherit;line-height:inherit}
.footer__head + .footer__head{margin-top:.831rem}
.footer__col a{display:block;font-size:var(--fs-base);line-height:1.6;padding:.1rem 0;white-space:pre-line}
.footer__col > p a{white-space:nowrap}
.footer__col a:hover{color:var(--c-green);text-decoration:underline}
.footer__map{width:38.125rem}                     /* 610px */
/* Figma: 610x350。Google マップの埋め込みに置き換え */
.footer__map-frame{display:block;width:100%;aspect-ratio:610/350;height:auto;border:0;border-radius:.25rem}
.footer__address{margin-top:1.52rem;font-size:var(--fs-base);line-height:1.5;letter-spacing:.03em}
.footer__copy{margin-top:1rem;font-size:var(--fs-copy);color:var(--c-ink);text-align:right;letter-spacing:.06em}

/* --------------------------------------------------- 6. 共通パーツ -------- */
/* 下層ページのグリーン帯 */
.page-hero{position:relative;width:100%;max-width:1920px;margin-inline:auto;height:var(--band-h);background:var(--grad-band)}
.page-hero__inner{position:relative;height:100%;width:min(var(--container),100% - var(--gutter)*2);margin-inline:auto;display:flex;align-items:center;gap:2.975rem}
.page-hero__title{font-size:var(--fs-page-title);font-weight:700;color:#fff;line-height:1.2;letter-spacing:.275em;margin-right:-.275em}
.page-hero__en{font-family:var(--ff-en);font-weight:400;font-size:var(--fs-xl);color:#fff;line-height:1.2}
/* AI: 英字のベースラインは和文タイトルのベースラインの 10px 上。上下中央そろえのままだと
   和文が 2.5px 下・英字が 3px 上にずれるので、それぞれ戻す */
.page-hero__title,.page-hero__en{position:relative}
.page-hero__title{top:-.15625rem}
.page-hero__en{top:.1875rem}
/* AI のクリップ矩形どおり。下端は帯の下端（310）に揃い、上端は帯からはみ出してヘッダーより前面に出る */
.page-hero__illust{position:absolute;right:var(--ph-r,9.875rem);bottom:0;width:var(--ph-w,auto);height:var(--ph-h,100%);z-index:101;pointer-events:none}

/* 見出しバー */
/* Figma: 1280x64・角丸 30px・テキストは左から 30px */
.bar{
  display:flex;align-items:center;
  /* 文字の字面をバーの上下中央に置く（上下の余白が同じだと 1.5px 下がって見える） */
  min-height:4rem;padding:.40625rem 1.875rem .59375rem;
  background:var(--c-green-bar);border-radius:var(--radius-bar);
  color:#fff;font-size:var(--fs-bar);font-weight:700;line-height:1.3;letter-spacing:.27em;
}
.bar + *{margin-top:3.125rem}
.bar + .newslist{margin-top:2.925rem}
.bar + p{margin-top:2.725rem}
.bar + .voices{margin-top:2.03125rem}
.bar + .faq{margin-top:2.2525rem}

/* リード（各ページ冒頭） */
/* Figma: 見出し y=404、本文 y=480（行送り 38px）、次の要素まで 88px */
.lead{margin:0}
.lead + *{margin-top:5.5rem}
.lead + .filters{margin-top:1.8065rem}
.lead__title{font-size:var(--fs-lead);font-weight:700;color:var(--c-green);line-height:1.5;margin-bottom:.5rem}
.lead__text{font-size:var(--fs-md);font-weight:700;line-height:1.652}

/* セクション見出し（英字大 + 和文小） */
.sec-head{display:flex;align-items:baseline;gap:0;margin-bottom:1.5rem}
.sec-head--center{flex-direction:column;align-items:center;gap:0;padding-top:.51rem}
.sec-head--center .sec-head__ja{margin-top:-.41rem}
.sec-head--center .sec-head__en{font-size:var(--fs-section-en-sm);letter-spacing:0}
.hero__catch{font-weight:400}
.sec-head__en{font-family:var(--ff-en);font-weight:400;font-size:var(--fs-section-en);line-height:1.1;color:var(--c-black)}
.sec-head__ja{font-size:var(--fs-lg);color:var(--c-ink);position:relative;top:-2.2px}

/* ボタン */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.3125rem;
  min-width:11.85625rem;min-height:2.48875rem;padding:.25rem 1.25rem;
  border:1px solid var(--c-ink);border-radius:var(--radius-btn);
  background:#fff;font-size:var(--fs-base);line-height:1.4;color:var(--c-ink);
  transition:background .2s,color .2s,border-color .2s,transform .15s var(--ease-out-quart);
}
.btn:hover{background:var(--c-green);border-color:var(--c-green);color:#fff}
/* Figma: 600x60・角丸 10px・30px */
.btn--primary{
  width:37.5rem;max-width:100%;min-height:3.75rem;
  background:var(--c-green-bar);border-color:var(--c-green-bar);color:#fff;
  font-size:var(--fs-xl);font-weight:700;letter-spacing:.06em;
}
.btn--primary:hover{background:var(--c-green-deep);border-color:var(--c-green-deep)}
.btn-row{display:flex;justify-content:center;margin-top:2rem}

/* 定義テーブル（会社概要 / 募集内容 など） */
.dtable{width:100%;table-layout:fixed;font-size:var(--fs-sm)}
.dtable thead th{
  font-size:var(--fs-sm);font-weight:400;color:var(--c-ink);text-align:left;
  padding:0 1rem .21875rem 0;border-bottom:1px solid var(--c-line-soft);
  white-space:nowrap;letter-spacing:.05em;
}
.dtable thead th:last-child{padding-right:0}
.dtable thead th:first-child{color:var(--c-green)}
.dtable--plain thead th:first-child{color:var(--c-ink)}
.dtable thead th:first-child{width:var(--k-w,11.25rem)}
.dtable tbody tr{border-bottom:1px solid var(--c-line-soft)}
.dtable tbody tr:first-child{border-top:1px solid var(--c-line-soft)}
.dtable thead + tbody tr:first-child{border-top:0}
/* Figma: 本文 18px・行高 57.5px */
.dtable th{
  padding:.9469rem 1rem .9469rem 0;text-align:left;font-weight:700;
  color:var(--c-green);vertical-align:top;line-height:1.45;font-size:var(--fs-sm);letter-spacing:.04em;
}
.dtable tbody th{width:var(--k-w,11.1875rem)}
.dtable td.is-right{text-align:right;letter-spacing:.1em}
/* 官公庁格付の「格付」列は中央寄せ */
.dtable--plain td{text-align:center}
.dtable td{padding:.9469rem 0;vertical-align:top;line-height:1.45;font-size:var(--fs-sm)}
.dtable--plain th{color:var(--c-ink);font-weight:400}
/* デザイン: ［資料を見る］などのリンクは緑 */
.dtable a{color:var(--c-green)}
.dtable a:hover{text-decoration:underline}

/* 2カラム */
/* Figma: 615 + 50 + 615 = 1280 */
.cols2{display:grid;grid-template-columns:1fr 1fr;gap:3.125rem}
.cols2--tight{gap:1.25rem;margin-top:3.3625rem}
.cols2--tight img{display:block;width:100%;height:21.25rem;object-fit:cover}
.cols2--outline{grid-template-columns:42.8125rem 34.0625rem}   /* 会社概要 685 / 許可番号 545 */
.cols2--award{grid-template-columns:24.5625rem 52.3125rem}     /* 官公庁格付 393 / 受賞 837 */
/* 方針 / 目標。AI: 縦の点線の左右とも 30px あける（目標の本文は点線の 30 右 = x=1127.4）。
   Web はオプティカルカーニングがないぶん字幅が広く、AI の点線位置（x=1097.4）では方針の 3・4 行目が
   「ます。」だけ折り返すので、方針の最長行（18px × 44 字 = 792）が 1 行に収まる位置まで点線を右へ寄せる */
.cols2--iso{grid-template-columns:51.5rem 1fr;gap:0}
.cols2--iso > div:first-child{padding-right:1.875rem}
.cols2--iso > div + div{padding-left:1.875rem;background-image:var(--dash-y);background-repeat:no-repeat;background-position:left top;background-size:1px 100%}
.cols2--iso45{grid-template-columns:8.875rem 36.3125rem 1fr;gap:0} /* ロゴ 142 / 本文 581 / 規格 */
.cols2--effort{grid-template-columns:49.375rem 27.5rem}         /* 沿革表 790 / 写真 440 */

/* 小見出し（●つき） */
/* Figma: ●つき小見出しは 23px Bold #3b801c（● は本文に含める） */
.subhead{font-size:var(--fs-md);font-weight:700;color:var(--c-green);margin-bottom:1.11875rem;line-height:1.45;letter-spacing:.03em}
/* Figma: 品目グループ間は最終罫線から次の見出しまで 46.8px */
.prodgroup{margin-bottom:2.9125rem}
.prodgroup--r{margin-bottom:0}
.prodgroup--r + .prodgroup--r{margin-top:4.275rem}
.prodgroup:last-child{margin-bottom:0}

/* 罫線リスト（主要営業品目など） */
/* Figma: 行高 57.5px・18px */
.rulelist__head{font-size:var(--fs-sm);color:var(--c-ink);padding-bottom:.4rem}
.rulelist{border-top:1px solid var(--c-line-soft)}
.rulelist li{border-bottom:1px solid var(--c-line-soft);padding:.9469rem 0;font-size:var(--fs-sm);line-height:1.45}

/* --------------------------------------------------- 7. お知らせリスト ---- */
/* Figma: 上端 5px / 行間 2px の黒罫 */
.newslist{border-top:5px solid var(--c-line)}
.newslist__item{border-bottom:2px solid var(--c-line)}
/* カテゴリ名は最長の「社内の取り組み・活動」（10 字）でも収まる列幅にする */
.newslist__link{
  display:grid;grid-template-columns:10.1875rem 13.375rem 1fr;align-items:center;gap:0;
  min-height:var(--sp-row);padding:.35rem 0 .35rem 1.25rem;
  transition:background .2s var(--ease-out-quart);
}
.newslist__link:hover{background:#f3f8f0}
.newslist__date{font-size:var(--fs-sm);color:var(--c-ink);white-space:nowrap;letter-spacing:.08em}
/* Figma: 91.43x27.1・角丸なし・白背景・1px #3B801C */
/* 幅はデザインの 91.43px を最小にして、長いカテゴリ名は文字に合わせて広げる */
.newslist__cat{
  display:inline-flex;align-items:center;justify-content:center;justify-self:start;
  min-width:5.714rem;min-height:1.70625rem;padding:.1rem .375rem;
  background:var(--c-white);border:1px solid var(--c-green);border-radius:0;
  font-size:var(--fs-sm);line-height:1.3;color:var(--c-green);white-space:nowrap;
}
.newslist__title{font-size:var(--fs-base);line-height:1.6;color:var(--c-ink)}
.newslist__link:hover .newslist__title{color:var(--c-green)}
.newslist--home{border-top-width:.1875rem}

/* 絞り込み */
.filters{display:flex;justify-content:flex-end;gap:.625rem;margin-bottom:1.25rem}
/* 文字の上下位置：Safari は select の line-height を無視し、字面が 1px 下がる。
   高さを固定して line-height:normal にそろえ（Chrome も Safari と同じ組み方になる）、下の余白 2px で中央へ戻す */
.filters select{
  appearance:none;min-width:9.0025rem;height:2.48875rem;
  padding:0 2.5rem .125rem 1.25rem;
  border:1px solid var(--c-ink);border-radius:var(--radius-btn);background:#fff;
  font-size:var(--fs-base);line-height:normal;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='9' viewBox='0 0 16 9'%3E%3Cpath d='M1 1l7 7 7-7' fill='none' stroke='%23231815' stroke-width='1.6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 1rem center;
}

/* ページャ */
/* Figma: 最終行の 30px 下に「次のページ ≫」ボタン 1 つ（中央・172.67x39.32） */
.pager{display:flex;justify-content:center;gap:1.25rem;margin-top:1.71875rem;flex-wrap:wrap}
.pager .btn{min-width:0}

/* --------------------------------------------------- 8. トップページ ------ */
/* ヒーロー */
.hero{position:relative;width:100%;max-width:1920px;margin-inline:auto;aspect-ratio:1920/2201;background:var(--grad-hero);isolation:isolate;
  container-type:inline-size;z-index:1}
/* z-index:1 は必須。トリオのイラストは hero の下端を 71px はみ出して News
   セクション（不透明な #efefef 背景）に重なる。News 側が transform や
   opacity を持つとスタッキングコンテキストになり、DOM 順で後ろにあるぶん
   イラストの足元を覆ってしまうため、hero 自体を前面に固定しておく。
   ヘッダーの .header__inner は z-index:102 なのでナビは常に上に出る。*/
/* hero 内のテキストは rem ではなく cqw（＝hero 幅比）で指定する。
   ルートの font-size は clamp の下限 13px が幅 1560px で頭打ちになるため、
   rem のままだと aspect-ratio で縮み続ける hero に対して文字だけが縮まず、
   % 指定の配置と衝突する（キャッチとタグラインが接触する）。1920px 基準 ÷ 19.2。*/
/* AI の重ね順（前面→背面）: キャッチ 9 / トリオ 8 / 計測 7 / 指差 6 / 左白ビーム 5 /
   グレービーム 4 / 剪定 3 / メッセージ 2 / 右白ビーム 1
   （剪定の作業員は台の上面より下が白い面・グレーの側面の両方に隠れる） */
.hero__beam{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.hero__beam-sp,.hero__lead,.slider__arrow{display:none}
.hero__beam--l{z-index:5}
.hero__beam--g{z-index:4}
.hero__beam--r{z-index:1}
.hero__catch{position:absolute;left:47.45%;top:6.64%;z-index:9;color:var(--c-black)}
.hero__catch-en{font-family:var(--ff-en);font-weight:400;font-size:8.0729cqw;line-height:.9677}   /* 155 */
.hero__tagline{position:absolute;left:47.45%;top:20.5%;z-index:9;color:var(--c-black);
  font-size:1.8229cqw;font-weight:700;line-height:1.4;white-space:nowrap}      /* 35 */
.hero__tagline--anniv{left:56.15%;top:27.4%}
.hero__tagline .num{font-size:2.0833cqw}                                   /* 40 */
.hero__50th{position:absolute;left:55.47%;top:6.81%;z-index:9;width:27.86%}
.hero__50th img{width:100%}
/* 行は <br> で区切る。字送り 0.04em（AI のトラッキング 40）で最長行が 728px になるので、
   中心（34.79%）はそのままで枠を広げ、行の途中で折り返さないようにする */
.hero__message{position:absolute;left:14.79%;width:40%;top:42.98%;z-index:2;text-align:center;color:#fff;white-space:nowrap;
  font-size:1.3021cqw;font-weight:700;line-height:2;letter-spacing:.04em}                        /* 25 */
.hero__illust{position:absolute;pointer-events:none}
.hero__illust img,.hero__illust svg{width:100%;height:auto}
.hero__illust--cut{left:17.04%;top:4.543%;width:17.763%;z-index:3}   /* 剪定 341x832 @(327.2,220)・AI のクリップどおり上端 +573.5 で切った SVG */
.hero__illust--check{left:72.824%;top:22.909%;width:15.997%;z-index:7} /* 計測 307x676 @(1398.2,624.2) */
.hero__illust--trio{left:51.496%;top:67.59%;width:40.158%;z-index:8}  /* 3人 771x784 @(988.7,1607.6) クリップせず News に重なる */
.hero__illust--point{left:20.084%;top:76.278%;width:15.748%;height:23.677%;overflow:hidden;z-index:6}  /* 指差 302x692 @(385.6,1798.9)・下端 2320 でクリップ */
/* 50周年ver は 50th マークを避けて右の作業員と光が下がる（AI 入稿データ準拠） */
.hero--anniversary .hero__illust--check{top:38.473%}  /* @(1398.2,966.8) */

/* News 帯 */
.home-news{background:var(--c-bg-soft);padding:5.625rem 0 3.3125rem}
/* 動画（YouTube）。AI: 1280x720・グレー帯の上端から 100、動画の下端から News の見出しまで 90 */
.home-movie{position:relative;aspect-ratio:16 / 9;margin:.625rem 0 5.625rem;overflow:hidden;background:#000}
.home-movie__poster,.home-movie iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.home-movie__poster{object-fit:cover;transition:opacity .4s var(--ease-out-quart)}
.home-movie.is-ready .home-movie__poster,.home-movie.is-ready .home-movie__play{opacity:0;visibility:hidden;pointer-events:none}
/* 再生ボタン：AI の赤丸（直径 151 / 幅 1280） */
.home-movie__play{position:absolute;left:50%;top:50%;width:11.8%;aspect-ratio:1;translate:-50% -50%;border-radius:50%;
  background:#ee2c2a;box-shadow:0 .25rem 1rem rgb(0 0 0 / .25);transition:transform .2s var(--ease-out-quart),opacity .3s,visibility .3s}
.home-movie__play::before{content:"";position:absolute;left:54%;top:50%;translate:-50% -50%;width:34%;aspect-ratio:1 / 1.155;
  background:#fff;clip-path:polygon(0 0,100% 50%,0 100%)}
.home-movie__play:hover{transform:scale(1.06)}
.home-movie.is-loading .home-movie__play{opacity:.6}
.home-news .sec-head{margin-bottom:.375rem}
.home-news .btn-row{margin-top:1.6875rem}

/* バナー（会社概要 / 事業内容） */
.banner{position:relative;display:block;width:100%;max-width:1920px;margin-inline:auto;height:37.5rem;overflow:hidden}
.banner img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease-out-quart)}
.banner:hover img{transform:scale(1.04)}
.banner__label{
  position:absolute;left:50%;top:44.2%;translate:-50% 0;z-index:2;
  display:flex;align-items:center;justify-content:center;
  min-width:31.25rem;height:4.0625rem;padding:.5rem 1.25rem 0;border-radius:var(--radius-btn);white-space:nowrap;
  background:var(--c-white);
  font-family:var(--ff-en);font-weight:400;font-size:var(--fs-banner-en);line-height:1;color:var(--c-ink);
}
.banner__sub{position:absolute;left:0;right:0;top:56.9%;z-index:2;text-align:center;color:#fff;font-size:var(--fs-lg);text-shadow:0 1px 4px rgb(0 0 0 / .4)}
.banner + .banner{margin-top:3.125rem}
.banner-group{margin:3rem 0 0}

/* 施工実績スライダー */
.home-works{padding:1.9375rem 0 3.1125rem}
.home-works .sec-head{margin-bottom:1.115rem}
/* Figma: 360x250 のスライドを 20px 間隔で並べ、左端 20px から始まる */
.slider{position:relative;width:100%;max-width:1920px;margin-inline:auto;padding-inline:1.25rem}
.slider__viewport{overflow:hidden}
.slider__track{display:flex;gap:1.25rem;list-style:none;margin:0;padding:0;will-change:transform}
.slider__slide{flex:0 0 22.5rem}
.slider__slide img{width:100%;height:15.625rem;object-fit:cover;display:block}
.slider__dots{display:flex;justify-content:center;gap:.75rem;margin-top:1.75rem}
.slider__dot{width:.625rem;height:.625rem;padding:0;border:0;border-radius:50%;background:#cfcfcf;cursor:pointer;transition:background .2s}
.slider__dot:hover{background:#a9d79f}
.slider__dot[aria-current="true"]{background:var(--c-green-bar)}

/* Recruitment 帯 */
.recruit-band{position:relative;display:block;width:100%;max-width:1920px;margin-inline:auto;height:18.75rem;background:var(--grad-band);overflow:hidden}
.recruit-band__inner{position:relative;height:100%;width:min(var(--container),100% - var(--gutter)*2);margin-inline:auto;display:flex;flex-direction:column;justify-content:flex-start;padding-top:4.3106rem}
.recruit-band__en{font-family:var(--ff-en);font-weight:400;font-size:8.75rem;line-height:1;color:#fff;margin-left:-.724rem}
.recruit-band__ja{font-size:var(--fs-xl);font-weight:700;color:#fff;margin-top:-1.3756rem;letter-spacing:.04em}
/* Figma: 471x624 @ x=1092,y=4856（帯 4826-5126 でクリップされる） */
.recruit-band__illust{position:absolute;left:58.754%;top:10.123%;width:24.621%;height:auto}  /* 473x622 @(1128.1, 帯上端+30.4)・帯の下端で切る */

/* --------------------------------------------------- 9. 施工実績ページ ---- */
/* Figma: x=370 起点で 250/250/250/370px・間隔 20px、下端に 1px の罫線
   スクロール時はヘッダーの下に貼り付いて、区分を行き来できるようにする */
.tabs{
  position:sticky;top:0;z-index:20;
  display:flex;gap:1.25rem;margin:5.5rem 0 3.125rem;padding-left:3.125rem;
  background:var(--c-white);
  border-bottom:1px solid var(--c-ink);
}
/* 貼り付いたときに上の本文が覗かないよう、背景を上へ延ばす */
.tabs::before{
  content:"";position:absolute;left:0;right:0;bottom:100%;height:1.5rem;
  background:var(--c-white);
}
.tabs__btn{
  display:flex;align-items:center;justify-content:center;
  min-width:15.625rem;min-height:3.125rem;padding:.4rem 1.25rem;
  border:1px solid var(--c-ink);border-bottom:0;border-radius:.5rem .5rem 0 0;
  background:#fff;font-size:var(--fs-lg);font-weight:700;line-height:1.3;text-align:center;letter-spacing:.035em;
  white-space:nowrap;transition:background .2s var(--ease-out-quart),color .2s var(--ease-out-quart);
}
.tabs__btn:hover{background:#f3f8f0}
.tabs__btn[aria-selected="true"]{background:var(--c-green-bar);border-color:var(--c-green-bar);color:#fff}
.works-note{font-size:var(--fs-sm);margin:.75rem 0 1.25rem}
.qual__intro{margin-bottom:1.25rem}
.qual__note{text-align:right}
/* ［人数］は人数の列の右端にそろえる。AI: 人数の字面は罫の右端から 33 内側、［人数］の閉じ括弧は人数の 8 右 */
.qual .dtable thead th:last-child{text-align:right;padding-right:.6875rem}
.qual .dtable td.is-right{padding-right:1.6875rem}
.worktable{width:100%;table-layout:fixed;font-size:var(--fs-sm)}
.worktable thead th{
  font-size:var(--fs-sm);font-weight:400;text-align:left;padding-bottom:.35rem;letter-spacing:.05em;
  border-bottom:1px solid var(--c-line-soft);
}
.worktable thead th:first-child{color:var(--c-green)}
.worktable thead th:first-child{width:29.1%}
.worktable tbody tr{border-bottom:1px solid var(--c-line-soft)}
.worktable tbody th{width:29.1%;padding:.985rem 1rem .985rem 0;text-align:left;font-weight:700;color:var(--c-green);vertical-align:top;line-height:1.45;letter-spacing:.04em}
.worktable tbody td{padding:.985rem 0;vertical-align:top;line-height:1.45}
.works-section[hidden]{display:none}
.works-section .bar{scroll-margin-top:3.25rem}

/* --------------------------------------------------- 10. 会社概要 -------- */
/* Figma では写真が右に回り込み、本文がその下へ流れる */
.greeting{display:block}
.greeting__figure{float:right;width:20rem;margin:0 0 1.5rem 1.5rem}
.greeting__body{font-size:var(--fs-sm)}
/* Figma: 35px Bold #3b801c・行高 45px */
.greeting__body .greeting__name{font-size:var(--fs-bar);font-weight:700;color:var(--c-green);line-height:1.29;margin-bottom:1.75rem}
.greeting__body p{font-size:var(--fs-sm);line-height:1.6667;margin-bottom:1.875rem}
.greeting::after{content:"";display:block;clear:both}
.greeting__figure img{width:100%;aspect-ratio:320/450;object-fit:cover;object-position:center 30%}
.greeting__figure figcaption{margin-top:.5rem;text-align:right;font-size:var(--fs-sm);letter-spacing:.06em}
/* Figma の点線は 1px #3B801C・5px ダッシュ / 5px ギャップ */
:root{
  --dash-x:repeating-linear-gradient(to right,var(--c-dash) 0 5px,transparent 5px 10px);
  --dash-y:repeating-linear-gradient(to bottom,var(--c-dash) 0 5px,transparent 5px 10px);
}
.policy{display:grid;gap:0;margin-top:1.875rem}
/* Figma: バッジ 93px 円・本文は x=435（バッジ右から 21px）・区切りは緑の点線 */
.policy__item{
  display:grid;grid-template-columns:5.8125rem 1fr;gap:1.3125rem;align-items:center;
  padding:1.4375rem 0 1.1875rem;
  background-image:var(--dash-x);background-repeat:no-repeat;background-position:left bottom;background-size:100% 1px;
}
.policy__item:last-child{background-image:none}
.policy__badge{
  display:flex;align-items:center;justify-content:center;
  width:5.8125rem;height:5.8125rem;border-radius:50%;
  background:var(--c-green-bar);color:#fff;font-size:var(--fs-lg);font-weight:700;letter-spacing:.05em;
}
.policy__text{font-size:var(--fs-md);line-height:1.55}
/* Figma: 23px Bold・行高 35.5px */
.philosophy{font-size:var(--fs-md);font-weight:700;line-height:1.55}
/* Figma: ロゴ 320〜、本文 553〜 */
.iso{display:grid;grid-template-columns:14.5625rem 1fr;gap:0;align-items:start;margin-bottom:1.75rem}
.iso__logos{display:flex;gap:.61875rem;align-items:flex-start}
.iso__logos img{height:8.75rem;width:auto}
.iso__logos--single img{height:8.75rem;width:auto}
.iso__goal{font-size:var(--fs-sm);line-height:1.6}
/* Figma: 23px・行送り 38px。強調部は Bold #3b801c */
.iso__text{font-size:var(--fs-md);line-height:1.652}
.iso__text strong{color:var(--c-green);font-weight:700}
/* Figma: ラベル x=320/926、値 x=417/1032、行送り 30px */
.iso__meta{display:grid;grid-template-columns:6.875rem 31rem 6.875rem 1fr;gap:0;font-size:var(--fs-sm);line-height:1.6667;margin:1.75rem 0 2.25rem}
.iso__meta > dt,.iso__meta > dd{margin:0;min-height:1.875rem}
.iso__meta > dt{white-space:nowrap;color:var(--c-green)}
.iso__meta--single{grid-template-columns:6.875rem 1fr;margin:0}
.iso45{display:grid;align-items:start}
.iso45 .iso__logos{margin-top:-1.0125rem}
/* Figma: 高さ 32.34・角丸 15px・18px Bold・左 15px */
.tag{display:inline-flex;align-items:center;min-height:2.02rem;padding:.1rem .9375rem;border-radius:var(--radius-tag);background:var(--c-green-bar);color:#fff;font-size:var(--fs-sm);font-weight:700;letter-spacing:.05em;margin-bottom:.6rem}
.tag--outline{background:#fff;border:1px solid var(--c-green);color:var(--c-green)}
/* Figma: 18px・行送り 30px */
.numlist{font-size:var(--fs-sm);line-height:1.6667}
.numlist li{margin-bottom:0;padding-left:2em;text-indent:-2em;text-wrap:pretty}
.iso__goal{text-wrap:pretty}
/* AI: 目標の本文の下 23px に次のタグ（品質目標 → 環境目標） */
.iso__goal + .tag{margin-top:1.4375rem}

/* --------------------------------------------------- 11. 採用 ------------ */
.msg{display:grid;grid-template-columns:30.9375rem 1fr;gap:3.125rem;align-items:stretch}
.msg figure{position:relative;min-height:17.8125rem}
.msg img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}
/* 行の上下の半行送り（(38 - 20) / 2 = 9px）と字面の上下の余白ぶんだけ本文を外へ出す */
.msg__body{font-size:var(--fs-base);line-height:1.9;margin:-.625rem 0;word-break:auto-phrase}
/* 1 文 1 行。収まらない文は文節で折り返し、最後の行に数文字だけ残らないようにする */
.msg__line{display:block;text-wrap:pretty}
/* AI: 縦の点線 x=960。左の本文は点線の 30 手前で折り返し、右のイラストは点線の 30 右から。
   2 人のイラストは下端をそろえる（AI: どちらも y=1714.4）。点線は AI では上 17.4px・下 6.3px 分だけ短い */
.voices{display:grid;grid-template-columns:38.125rem 1fr;column-gap:3.75rem;
  background-image:var(--dash-y);background-repeat:no-repeat;
  background-position:40rem 1.0875rem;background-size:1px calc(100% - 1.48125rem)}
.voice{display:grid;grid-template-columns:10.125rem 1fr;gap:.5625rem;align-items:start;padding-right:0}
.voice__illust{align-self:end}
/* 2 人目のイラストは 175.8x160.4（AI）。本文はイラストの 6px 右 */
.voice:nth-child(even){padding:0;grid-template-columns:10.988rem 1fr;gap:.3875rem}
.voice > div{padding-top:.89rem}
.voice__title{font-size:var(--fs-md);font-weight:700;color:var(--c-green);margin-bottom:.35rem;line-height:1.45}
.voice__text{font-size:var(--fs-sm);line-height:1.667;word-break:auto-phrase;text-wrap:pretty}
/* Figma: 回答は x=348 から最大 1392 まで＝右に 208px の余白 */
.faq{position:relative}
.faq__item{
  padding:.656rem 0;
  background-image:var(--dash-x);background-repeat:no-repeat;background-position:left bottom;background-size:100% 1px;
}
/* Figma: 質問 23px Bold #3b801c / 回答 18px 黒（「A.」だけ 23px 緑・ぶら下げ） */
.faq__q{font-size:var(--fs-md);font-weight:700;color:var(--c-green);line-height:1.45;padding-right:13rem}
.faq__a{font-size:var(--fs-sm);line-height:1.45;margin-top:0;padding-left:1.75rem;padding-right:13rem;text-indent:-1.75rem}
.faq__a-mark{display:inline-block;width:1.75rem;text-indent:0;color:var(--c-green);font-weight:700;font-size:var(--fs-md);letter-spacing:.07em}
.faq__illust{position:absolute;right:1.8875rem;bottom:0;width:14.2875rem;pointer-events:none}
.movie-link{display:flex;align-items:center;gap:.625rem;margin-top:2.73125rem;font-size:var(--fs-md);line-height:1.45;color:var(--c-green);font-weight:700}
.movie-link .tag{margin:0}
.movie-link a{text-decoration:underline}
.recruit__entry{margin-top:6.25rem}
.voice__illust{display:block}
.voice__illust img{display:block;width:100%;height:auto}

/* --------------------------------------------------- 12. 取り組み -------- */
/* Figma: 表下端 3025.4 → 見出し 3072.2（+46.8）、行間の横点線 3395.1、2 行目見出し 3442 */
.effort{display:block}
.effort__row{display:grid;gap:0}
.effort__row--1{grid-template-columns:40rem 1fr}        /* 縦点線 x=960 */
.effort__row--2{grid-template-columns:31.2125rem 1fr}   /* 縦点線 x=819.4 */
/* 横の点線の上下は同じだけあける（上：本文の下 → 点線、下：点線 → 見出し） */
.effort__item{padding:2.7375rem 1.875rem 2.625rem 0}
.effort__row:last-child .effort__item{padding-bottom:0}
.effort__item:nth-of-type(even){padding-right:0;padding-left:1.875rem}
.effort__photo{margin-top:1.60625rem}
.effort__row--2 .effort__item:nth-of-type(odd){padding-right:1.875rem}
.effort__row--2 .effort__item:nth-of-type(even){padding-left:1.875rem}
/* 左カラムの右端に縦の点線。
   AI: 1 行目は上に表の罫線があるため見出しの高さ（行上端 +50px）から始まり、
   2 行目は行間の横点線に接して始まる。 */
.effort__item:nth-of-type(odd){background-image:var(--dash-y);background-repeat:no-repeat;background-position:right top;background-size:1px 100%}
.effort__row--1 .effort__item:nth-of-type(odd){background-position:right 3.125rem;background-size:1px calc(100% - 3.125rem)}
.effort__row-dash{
  display:block;height:1px;
  background-image:var(--dash-x);background-repeat:no-repeat;background-size:100% 1px;
}
.effort__title{font-size:var(--fs-md);font-weight:700;color:var(--c-green);letter-spacing:.045em;margin-bottom:.5rem}
.effort__body{display:grid;grid-template-columns:1fr auto;gap:.5rem;align-items:start}
.effort__text{font-size:var(--fs-sm);line-height:1.667}
/* Figma: 写真 440x340（元画像より縦長にトリミング） */
.effort__photo img{display:block;width:100%;height:21.25rem;object-fit:cover}
.effort__logos{display:flex;gap:.75rem;align-items:flex-start}
.effort__logos img{height:12.45rem;width:auto}
/* 認定証はデザインのドロップシャドウを含めて書き出してある（画像 156x210・証明書本体 135.7x189.9） */
.effort__logos img[src$="kenko-ninteisho.webp"]{height:13.125rem}
.effort__row--2 .effort__logos{margin-top:-2.9875rem}
.effort__row--2 .effort__logos img{height:11.7125rem}
.effort__logos img.is-small{height:8.5rem}

/* --------------------------------------------------- 13. フォーム -------- */
.form-intro{font-size:var(--fs-md);font-weight:700;line-height:1.652;margin-bottom:2.5rem}
/* Figma: ラベル 320〜810 / 必須 810(70x32.34) / 入力 900〜1600(700x60) / 行ピッチ 120px */
.form-row{display:grid;grid-template-columns:30.625rem 4.375rem 1fr;column-gap:0;row-gap:1rem;align-items:start;
  min-height:7.5rem;padding:1.84375rem 0;border-bottom:1px solid var(--c-line-soft)}
.form-row__label{grid-column:1}
.badge-req,.badge-opt{grid-column:2}
.form-field{grid-column:3;padding-left:1.25rem}
.form-row:first-of-type{border-top:1px solid var(--c-line-soft)}
.form-row__label{font-size:var(--fs-md);font-weight:700;color:var(--c-green);padding-top:.9rem;line-height:1.5;letter-spacing:.04em}
.badge-req{display:inline-flex;align-items:center;justify-content:center;width:4.375rem;height:2.02rem;
  border-radius:var(--radius-pill);background:#e8380d;color:#fff;font-size:var(--fs-xs);font-weight:700;letter-spacing:.03em;margin-top:.865rem}
.badge-opt{display:inline-flex;align-items:center;justify-content:center;width:4.375rem;height:2.02rem;
  border-radius:var(--radius-pill);background:#8b8b8b;color:#fff;font-size:var(--fs-xs);margin-top:.865rem}
.form-field input[type=text],.form-field input[type=email],.form-field input[type=tel],
.form-field input[type=number],.form-field select,.form-field textarea,
.wpcf7 input[type=text],.wpcf7 input[type=email],.wpcf7 input[type=tel],
.wpcf7 input[type=number],.wpcf7 select,.wpcf7 textarea{
  width:100%;padding:.8125rem 1rem;border:1px solid #d5d5d5;border-radius:.25rem;
  background:#e9e9e9;font-size:var(--fs-base);line-height:1.6;
  transition:background .2s var(--ease-out-quart),border-color .2s var(--ease-out-quart),box-shadow .2s var(--ease-out-quart);
}
.form-field textarea,.wpcf7 textarea{display:block;height:18.75rem;min-height:0;resize:vertical}
.form-field textarea[rows="2"],.wpcf7 textarea[rows="2"]{height:7.5rem}
.form-field input:focus,.wpcf7 input:focus,.wpcf7 textarea:focus,.wpcf7 select:focus{
  background:#fff;border-color:var(--c-green);outline:none;box-shadow:0 0 0 3px rgba(59,128,28,.18)}
.wpcf7-radio,.wpcf7-checkbox{display:flex;flex-wrap:wrap;gap:.5rem 1.75rem;padding:.8275rem 0 0 1.5625rem}
.wpcf7-list-item{margin:0}
.wpcf7-list-item label{display:inline-flex;align-items:center;gap:.4rem;font-size:var(--fs-md);cursor:pointer}
.wpcf7 input[type=radio],.wpcf7 input[type=checkbox]{width:1.125rem;height:1.125rem;accent-color:var(--c-green-bar)}
.privacy{margin:2.88125rem 0 0}
.privacy__title{font-size:var(--fs-md);font-weight:700;color:var(--c-green);margin-bottom:0;line-height:1.5}
.privacy__body{font-size:var(--fs-sm);line-height:1.5}
.privacy__head{margin-top:.75em;font-size:var(--fs-sm);font-weight:700;line-height:1.5}
.form-agree{display:flex;align-items:center;justify-content:center;gap:.4475rem;margin:2.607rem 0 0;font-size:var(--fs-md);font-weight:700}
.form-submit{display:flex;justify-content:center;margin-top:2.5015rem}
.wpcf7 input[type=submit],.form-submit button{
  -webkit-appearance:none;appearance:none;
  width:37.5rem;max-width:100%;height:3.75rem;padding:0 2rem;border:0;border-radius:var(--radius-btn);
  background:var(--c-green-bar);color:#fff;font-size:var(--fs-xl);font-weight:700;line-height:1;letter-spacing:.08em;cursor:pointer;
  transition:background .2s,transform .15s var(--ease-out-quart);
}
.wpcf7 input[type=submit]:hover,.form-submit button:hover{background:var(--c-green-deep)}
.wpcf7 form .wpcf7-response-output{margin:1.5rem 0 0;border-radius:.25rem;font-size:var(--fs-base)}
.wpcf7-not-valid-tip{color:#e8380d;font-size:var(--fs-xs);margin-top:.25rem}
.wpcf7-spinner{margin-left:1rem}
/* CF7 の送信中スピナー（非表示でも幅を持つ）をボタンの横に並べると、ボタンが中央から左へずれる。
   ボタンの下中央に重ねて表示する */
.form-submit{position:relative}
.form-submit .wpcf7-spinner{position:absolute;top:100%;left:50%;margin:.5rem 0 0 -12px}

/* --------------------------------------------------- 14. 記事本文 -------- */
.article{max-width:100%;margin:var(--sp-section) 0 0}
.article__meta{display:flex;align-items:center;gap:1.25rem;margin-bottom:1rem}
.article__date{font-size:var(--fs-sm)}
.article__title{font-size:var(--fs-lead);font-weight:700;color:var(--c-green);line-height:1.5;
  padding-bottom:1.25rem;border-bottom:.1875rem solid var(--c-line);margin-bottom:2.5rem}
.entry-content{font-size:var(--fs-base);line-height:1.9}
.entry-content > * + *{margin-top:1.5rem}
.entry-content h2{font-size:var(--fs-lg);font-weight:700;color:var(--c-green);border-left:.3125rem solid var(--c-green-bar);padding-left:.75rem;line-height:1.5}
.entry-content h3{font-size:var(--fs-base);font-weight:700;color:var(--c-ink)}
.entry-content a{color:var(--c-green);text-decoration:underline}
.entry-content ul{list-style:disc;padding-left:1.5em}
.entry-content ol{list-style:decimal;padding-left:1.5em}
.entry-content li + li{margin-top:.35rem}
.entry-content img{border-radius:.25rem}
/* 記事内の画像は大きくなりすぎないよう、幅 48rem・高さ 40rem までに収める（縦長の認定証など） */
.entry-content .wp-block-image img{width:auto;max-width:min(100%,48rem);max-height:40rem;height:auto}
.entry-content blockquote{border-left:.25rem solid var(--c-line-soft);padding-left:1.25rem;color:#555}
.entry-content table{width:100%}
.entry-content th,.entry-content td{border:1px solid var(--c-line-soft);padding:.6rem .8rem}
.post-nav{display:flex;justify-content:space-between;gap:1rem;margin-top:3.75rem;flex-wrap:wrap}
.notfound__title{margin-top:var(--sp-section)}

/* --------------------------------------------------- 15. その他 ---------- */
.sitemap{display:grid;grid-template-columns:repeat(4,1fr);gap:2.5rem}
.sitemap h2{font-size:var(--fs-lg);color:var(--c-green);margin-bottom:.5rem}
.sitemap a{display:block;padding:.2rem 0;font-size:var(--fs-base)}
.sitemap a:hover{color:var(--c-green);text-decoration:underline}
.thanks{text-align:left}
.thanks__title{font-size:var(--fs-lead);font-weight:700;color:var(--c-green);line-height:1.5;margin:-.375rem 0 .5rem}
.thanks__body{font-size:var(--fs-md);font-weight:700;line-height:1.652}
.thanks__illust{display:block;width:32.125rem;margin:4.125rem auto 0}
.thanks__actions{display:flex;justify-content:flex-end;margin:-5.5625rem -10rem 0 0}
.section{margin-bottom:5.9375rem}
.section:last-child{margin-bottom:0}
/* 下層ページ：グリーン帯から最初の見出しまで Figma では 100px（リードは 94px） */
.page-body{padding-top:var(--sp-section);padding-bottom:10rem}
.page-body > .lead:first-child{margin-top:-.375rem}
.page-thanks .page-body{padding-bottom:3.125rem}

/* --------------------------------------------------- 16. レスポンシブ ---- */
/* ~1279px : タブレット横〜 */
/* ~1559px : ルート font-size が 13px でクランプされ、1920 基準の等倍スケールが崩れる領域 */
@media (max-width:1559px){
  .header__inner{padding-inline:2rem}
  .footer__inner{padding-inline:2rem}
  .footer__nav{padding-left:0}
  /* 1920 幅でのみ外側コンテナ右端（1760）に寄せる */
  .thanks__actions{margin-right:0}
}

/* --------------------------------------------------- 17. SP ---------------- */
/* Illustrator の SP 入稿データ（アートボード幅 390px）に合わせる。
   ルートの font-size を 390px で 16px にしてあるので「デザイン px ÷ 16 = rem」。
   縦位置はベースライン基準で合わせてある（Zen Kaku Gothic New は
   行ボックス内のベースラインが 行高/2 + 0.43em、Baloo 2 は 行高/2 + 0.28em）。 */

/* 約物（、。「」など）だけを半角にするフォント。SP デザインは本文の約物を
   半角で組んでいる（Illustrator の文字組み）。Zen Kaku Gothic New の配信版は
   halt / palt を持たないため、約物だけこのフォントに差し替える。SP でのみ使う。 */
@font-face{font-family:YakuHanJP;font-style:normal;font-weight:400;font-display:swap;
  src:url("../fonts/YakuHanJP-Regular.woff2") format("woff2");
  unicode-range:U+3001,U+3002,U+3008-3011,U+3014,U+3015,U+30FB,U+FF01,U+FF08,U+FF09,U+FF1A,U+FF1B,U+FF1F,U+FF3B,U+FF3D,U+FF5B,U+FF5D}
@font-face{font-family:YakuHanJP;font-style:normal;font-weight:700;font-display:swap;
  src:url("../fonts/YakuHanJP-Bold.woff2") format("woff2");
  unicode-range:U+3001,U+3002,U+3008-3011,U+3014,U+3015,U+30FB,U+FF01,U+FF08,U+FF09,U+FF1A,U+FF1B,U+FF1F,U+FF3B,U+FF3D,U+FF5B,U+FF5D}

/* PC：大きめの和文の字送り（2026-09-30 修正指示）。
   Web はオプティカルカーニングがないため、見出しなど大きい文字ほど漢字が詰まって見える。
   見出しは 0.05em、太字の本文（リード文など）は 0.03em あける */
@media (min-width:1280px){
  .lead__title,.article__title,.thanks__title,.greeting__body .greeting__name,.hero__tagline,
  .voice__title,.subhead,.effort__title,.faq__q,.privacy__title,.form-row__label,.footer__col .footer__head{letter-spacing:.05em}
  .lead__text,.thanks__body,.philosophy,.iso__text,.form-intro,.form-agree,.movie-link{letter-spacing:.03em}
}

/* SP にしか無い要素は PC では出さない */
.breadcrumb,.gnav__sp,.footer__spnav{display:none}

@media (max-width:1279px){
  html{font-size:clamp(12px,calc(100vw / 24.375),20px)}
  :root{
    --ff-jp-sp:YakuHanJP,"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Hiragino Sans","Noto Sans JP",Meiryo,sans-serif;
    --fs-hero:2.8125rem;          /* 45 illuminate */
    --fs-section-en:2.1875rem;    /* 35 News */
    --fs-section-en-sm:1.5625rem; /* 25 Construction Results */
    --fs-banner-en:1.25rem;       /* 20 Company Profile */
    --fs-page-title:1.5625rem;    /* 25 */
    --fs-lead:1.4375rem;          /* 23 */
    --fs-bar:1rem;                /* 16 */
    --fs-xl:.9375rem;             /* 15 */
    --fs-lg:.875rem;              /* 14 */
    --fs-md:.8125rem;             /* 13 */
    --fs-base:.75rem;             /* 12 */
    --fs-sm:.75rem;               /* 12 */
    --fs-xs:.625rem;              /* 10 */
    --fs-copy:.5625rem;           /* 9 */
    --container:100%;
    --gutter:1.25rem;             /* 20 */
    --header-h:4.375rem;          /* 70 */
    --band-h:7.5rem;              /* 120 */
    --sp-section:0;
  }
  /* 字送りは詰めない（標準 0）。SP デザインはオプティカルカーニングでかなだけを詰めているが、
     CSS で一律に詰めると漢字・英字・数字まで詰まって読みにくくなるため（2026-09-29 修正指示）。
     見出し・表の見出し列・日付・住所など、入稿データで字送りを広げている要素だけ個別に空ける */
  /* 和欧間：AI は和文と数字・欧文の間に 1/4em あける。対応ブラウザ（Chrome 140〜）では 1/8em あけて近づける */
  body{font-family:var(--ff-jp-sp);line-height:1.5;text-autospace:normal}
  .u-pc{display:none}
  .u-sp{display:revert}
  br.u-sp{display:inline}

  /* ---------------------------------------------------------------- ヘッダー */
  /* AI: 高さ 70・ロゴ 230.9x30.1 @(20,20)・三本線 20px 幅 2.45px 太 @x350〜370 y25/35/45 */
  .header__inner{position:static;padding-inline:var(--gutter);gap:1rem}
  .header__logo{width:14.43rem}
  .nav-toggle{
    display:grid;place-content:center;gap:.4719rem;
    width:2.75rem;height:2.75rem;padding:0;margin-right:-.75rem;
    background:none;border:0;cursor:pointer;
  }
  .nav-toggle span[aria-hidden]{display:block;width:1.25rem;height:.1531rem;background:var(--c-green);transition:transform .25s,opacity .25s}
  .nav-toggle[aria-expanded="true"] span[aria-hidden]:nth-child(1){transform:translateY(.625rem) rotate(45deg)}
  .nav-toggle[aria-expanded="true"] span[aria-hidden]:nth-child(2){opacity:0}
  .nav-toggle[aria-expanded="true"] span[aria-hidden]:nth-child(3){transform:translateY(-.625rem) rotate(-45deg)}
  /* ドロワー：ヘッダーの直下から画面いっぱい。ヘッダーは固定しないので
     position:fixed ではなくヘッダー基準の absolute にする（少しスクロールしていてもずれない） */
  .gnav{
    position:absolute;left:0;right:0;top:100%;z-index:150;
    height:calc(100dvh - var(--header-h));overflow-y:auto;overscroll-behavior:contain;
    margin:0;padding:0 var(--gutter) 2.5rem;background:#fff;
    opacity:0;visibility:hidden;translate:0 -.5rem;
    transition:opacity .25s var(--ease-out-quart),translate .25s var(--ease-out-quart),visibility .25s;
  }
  .gnav.is-open{opacity:1;visibility:visible;translate:0 0}
  .gnav__list{display:none}
  .gnav__sp{display:block}

  /* ---------------------------------------------- SP ナビ（ドロワー・フッター） */
  /* AI（フッター）: 行ピッチ 35・上罫 1px #3b801c・12px Bold・ベースラインは罫の 22.5px 下、
     「＋」は右端から 24.6px（中心） */
  .spnav{border-bottom:1px solid var(--c-green)}
  .spnav__item{border-top:1px solid var(--c-green)}
  .spnav__row{position:relative;display:flex;align-items:flex-start}
  .spnav__link{
    flex:1;display:block;padding:.4588rem 0 .5413rem;
    font-size:.75rem;font-weight:700;line-height:1.5;color:var(--c-green);
  }
  .spnav__toggle{
    position:absolute;right:.475rem;top:0;width:2.125rem;height:2.125rem;
    padding:0;border:0;background:none;cursor:pointer;color:var(--c-green);
  }
  .spnav__toggle::before,.spnav__toggle::after{
    content:"";position:absolute;left:50%;top:50%;width:.6875rem;height:1px;background:currentColor;
    translate:-50% -50%;transition:rotate .25s var(--ease-out-quart),opacity .25s;
  }
  .spnav__toggle::after{rotate:90deg}
  .spnav__toggle[aria-expanded="true"]::after{rotate:0deg;opacity:0}
  .spnav__sub{padding:0 0 .625rem 1em}
  .spnav__sub a{display:block;padding:.3125rem 0;font-size:.75rem;line-height:1.5;color:var(--c-ink)}

  /* ------------------------------------------------------------------ フッター */
  /* AI: 緑罫 3px（下層のみ）→ 28.5 → ロゴ → 19.9 → ナビ → 30 → 地図 390x230（全幅）
         → 住所 12px（行送り 18）→ 0.5px 罫 → © 9px 中央 → 下端まで 48 */
  .footer{padding:0 0 3rem}
  .footer__rule{width:calc(100% - var(--gutter)*2);height:3px;background:var(--c-green)}
  .footer__inner{display:block;padding:1.875rem 0 0}
  .footer__rule + .footer__inner{padding-top:1.78125rem}
  .footer__inner > div:first-child{padding-inline:var(--gutter)}
  .footer__logo{width:14.43rem;margin-bottom:1.2437rem}
  .footer__nav{display:none}
  .footer__spnav{display:block}
  .footer__map{width:auto;margin-top:1.875rem}
  .footer__map-frame{width:100%;height:14.375rem;aspect-ratio:auto;border-radius:0}
  .footer__address{margin:1.0213rem var(--gutter) 0;font-size:.75rem;line-height:1.5}
  .footer__copy{
    margin:1.6663rem var(--gutter) 0;padding-top:.3925rem;border-top:.5px solid #000;
    font-size:.5625rem;line-height:1.5;text-align:center;color:var(--c-ink);
  }

  /* ---------------------------------------------------------- 下層のグリーン帯 */
  /* AI: 帯 70〜190（120）・タイトル 25px Bold 字送り 1.286em（ベースライン帯上端 +59.8）
     ・英字 Baloo 2 Regular 15px（+81.6）・イラストは帯の内側でクリップ（下端 = 帯下端） */
  .page-hero{overflow:hidden}
  .page-hero__inner{display:block;width:auto;height:auto;margin:0;padding:2.128rem var(--gutter) 0}
  .page-hero__title{font-size:var(--fs-page-title);line-height:1.2;letter-spacing:.286em;margin-right:0}
  .page-hero__title,.page-hero__en{top:0}
  .page-hero__en{margin-top:.2719rem;font-weight:400;font-size:var(--fs-xl);line-height:1.2}
  .page-hero__illust{
    right:var(--ph-sp-r,var(--gutter));width:var(--ph-sp-w,auto);height:var(--ph-sp-h,100%);
    z-index:auto;
  }

  /* パンくず（SP のみ）。AI: 12px・ベースラインは帯下端 +20.3・現在地は緑 */
  .breadcrumb{display:block;padding:.3838rem var(--gutter) 0;font-size:.75rem;line-height:1.5}
  .breadcrumb__list{display:flex;flex-wrap:wrap}
  .breadcrumb__item + .breadcrumb__item::before{content:">";padding:0 .28em;position:relative;top:-1px}
  .breadcrumb__item[aria-current]{color:var(--c-green)}
  .breadcrumb a:hover{color:var(--c-green)}

  /* ------------------------------------------------------------- 本文の骨格 */
  .page-body{padding-top:0;padding-bottom:0}
  .page-body > .lead:first-child{margin-top:1.3856rem}
  .page-body > .section:first-child{margin-top:1.7038rem}
  .section{margin-bottom:0}

  /* リード。AI: 見出し 23px Bold 緑・行送り 30 ／ 本文 13px Bold・行送り 23
     見出し最終行 → 本文 1 行目のベースライン差 33.6、本文 → 次の要素 31.4 */
  .lead{margin:0}
  .lead + *{margin-top:1.593rem}
  .lead__title{font-size:var(--fs-lead);line-height:1.3043;margin:0;letter-spacing:.03em}
  .lead__seg{display:inline-block}
  /* 行頭の中黒（箇条書き）は AI では全角のまま。YakuHanJP の半角字形との差を後ろに足す */
  .bullet{margin-right:.29em}
  .lead__text{margin-top:.7813rem;font-size:var(--fs-md);line-height:1.7692;text-align:justify}

  /* 見出しバー。AI: 350x30・角丸 13.48・16px Bold 字送り 1.29em・左 12.9・ベースラインは上端 +21.1 */
  .bar{
    min-height:1.875rem;padding:0 0 .0975rem .8063rem;border-radius:.8425rem;
    font-size:var(--fs-bar);line-height:1.25;letter-spacing:.29em;
  }
  .bar + *,.bar + p,.bar + .newslist,.bar + .voices,.bar + .faq{margin-top:1rem}
}

/* SP：共通の表・リスト・小見出し・タグ。
   AI: 罫 0.5px #4d4d4d・行ピッチ 41.6（1 行）／ +18（2 行目以降）・12px 行送り 18
       罫 → ベースライン 25.5、最終行ベースライン → 次の罫 16.1。キー列 114px（値は x=134）
       見出し行［…］は行頭の括弧を半角ぶら下げ（x=14）、ベースライン → 罫 11.0 */
@media (max-width:1279px){
  :root{--dash-x-sp:repeating-linear-gradient(to right,var(--c-dash) 0 3px,transparent 3px 6px)}
  /* 0.5px の破線を高さ 0.5px の背景で描くと、幅や画素密度によって丸められて消えることがある（360px・393px 幅など）。
     1px の破線を scaleY(.5) で縮めて描く（消えず、太さは AI の 0.5px のまま。レイアウトにも影響しない）。
     下端に引くものは ::after、上端に引くものは ::before。親は position:relative */
  .policy__item:not(:last-child)::after,
  .iso__meta:not(.iso__meta--single) > :nth-child(3)::before,
  .iso__meta:not(.iso__meta--single) > :nth-child(4)::before,
  .effort .effort__row .effort__item::before,
  .voice::after,
  .faq__item::after{
    content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
    background:var(--dash-x-sp);transform:scaleY(.5);transform-origin:0 100%;pointer-events:none;
  }
  .iso__meta:not(.iso__meta--single) > :nth-child(3)::before,
  .iso__meta:not(.iso__meta--single) > :nth-child(4)::before,
  .effort .effort__row .effort__item::before{top:0;bottom:auto;transform-origin:0 0}
  .effort .effort__row--1 .effort__item:first-child::before{content:none}
  .table-scroll{overflow:visible}
  .dtable,.dtable th,.dtable td,.dtable thead th{font-size:var(--fs-base);line-height:1.5}
  /* 0.5px の罫は border-collapse:collapse の表（行・セルの罫）だと iOS Safari で 0 に丸められて消える。
     SP では collapse をやめ、罫をセルに引く（通常の要素の 0.5px 罫は iOS でも細線で出る） */
  .dtable{border-collapse:separate}
  .dtable thead th{padding:0 0 .4319rem;border-bottom:.5px solid var(--c-line-soft)}
  .dtable thead th:first-child,.dtable tbody th{width:var(--k-sp,7.125rem)}
  .dtable tbody tr,.dtable tbody tr:first-child{border:0}
  .dtable tbody tr > *{border-bottom:.5px solid var(--c-line-soft)}
  .dtable tbody tr:first-child > *{border-top:.5px solid var(--c-line-soft)}
  .dtable thead + tbody tr:first-child > *{border-top:0}
  .dtable th{padding:.6931rem 0 .7194rem}
  /* 値が 1 行でキーが 2 行（沿革の和暦）のときは値を上下中央に置く（AI どおり） */
  .dtable td{padding:.6931rem 0 .7194rem;vertical-align:middle;word-break:auto-phrase}
  /* 和暦など末尾の（…）は次の行へ回す（AI の x=14 は行頭約物の半角詰め。YakuHanJP の半角括弧なら字面は揃う） */
  .dtable th .u-paren{display:block}
  .dtable--plain th .u-paren{display:inline;margin-left:0}
  /* 格付の表：左列は通常の文字、右列（格付）は右端 74px の中央 */
  .dtable--plain thead th:first-child,.dtable--plain tbody th{width:auto}
  .dtable--plain thead th:last-child,.dtable--plain td{width:4.625rem;text-align:center;text-indent:0}
  .dtable--plain thead th:last-child{text-indent:-.25em}

  .rulelist{border-top:.5px solid var(--c-line-soft)}
  .rulelist li{padding:.6931rem 0 .7194rem;border-bottom:.5px solid var(--c-line-soft);font-size:var(--fs-base);line-height:1.5}
  /* 受賞歴：括弧書きは次の行へ回す（AI は 1 件だけ 1 行に収めているが、データ入力に左右されない規則にそろえる） */
  .rulelist .u-paren{display:block}
  .rulelist__head{padding:0 0 .4319rem;font-size:var(--fs-base);line-height:1.5}

  /* ●つき小見出し。AI: 13px Bold 緑 */
  .subhead{margin:0;font-size:var(--fs-md);line-height:1.45}
  .subhead + .table-scroll,.subhead + .rulelist__head{margin-top:.2119rem}
  .subhead + .rulelist{margin-top:.45rem}
  * + .subhead,.cols2 > div + div > .subhead:first-child{margin-top:1.0125rem !important}
  .bar + .subhead{margin-top:1rem}

  /* タグ。AI: 高さ 20・左右 10.9・12px Bold 白 */
  .tag{min-height:1.25rem;margin:1.0875rem 0 0;padding:0 .6813rem;border-radius:.625rem;
    font-size:var(--fs-base);line-height:1.25;letter-spacing:.05em}
  /* 番号付きリスト。AI: 番号 x=20・本文 x=38（ぶら下げ 18px）・12px 行送り 18 */
  .numlist{margin-top:.3838rem;font-size:var(--fs-base);line-height:1.5}
  .numlist li{padding-left:1.5em;text-indent:-1.5em}
  /* 「１．」の「．」は全角のまま（約物半角フォントの対象外）なので、幅 18px の箱からはみ出させて
     本文と重ねる（ピリオドの字形は箱の左端にあり、右側は余白なので見た目は変わらない） */
  .numlist__no{display:inline-block;width:1.5em;text-indent:0;white-space:nowrap}
}

/* SP：会社概要 */
@media (max-width:1279px){
  /* 章（セクション）どうし。AI: 本文の最終ベースライン → 次の見出しバー 31.1、表の最終罫 → 30 */
  .section + .section{margin-top:1.58rem}
  .section:has(.table-scroll:last-child) + .section,
  .section:has(.rulelist:last-child) + .section{margin-top:1.8438rem}

  /* 社長挨拶：見出し → 写真（全幅 390x250）→ 肩書き → 本文 */
  .greeting{display:flex;flex-direction:column}
  .greeting__body{display:contents}
  .greeting__body .greeting__name{order:0;margin:0;font-size:1.125rem;line-height:1.3333}
  .greeting__figure{order:1;float:none;width:auto;margin:1.1025rem calc(var(--gutter) * -1) 0}
  /* AI: 写真は 414.2x276.8 を (-27.8, -29.4) にずらして 390x250 で切り抜き */
  /* AI の配置（414.2 幅を (-27.8, -29.4) にずらす）は写真が枠の右と下に 3.6 / 2.6 足りないため、
     同じ拡大率のまま枠の右下に合わせて、余白が出ないようにする */
  .greeting__photo{position:relative;display:block;aspect-ratio:390 / 250;overflow:hidden}
  .greeting__figure .greeting__photo img{position:absolute;right:0;bottom:0;width:106.205%;max-width:none;height:auto;aspect-ratio:auto;margin:0;object-fit:fill}
  /* AI: 肩書きのベースラインは写真の下端 +21.7、本文 1 行目は +54.5 */
  .greeting__figure figcaption{margin-top:.2375rem;text-align:center;font-size:var(--fs-base);line-height:1.5}
  .greeting__sep{display:none}
  .greeting__role::after{content:"/";margin:0 .7em 0 .1em}
  .greeting__pname{font-size:.9375rem;letter-spacing:.06em}
  .greeting__body p{order:2;margin:0 0 1.375rem;font-size:var(--fs-base);line-height:1.8333;text-align:justify}
  .greeting__body p.greeting__name + p{margin-top:.7375rem}
  .greeting__body p:last-child{margin-bottom:0}

  /* 基本理念。AI: 13px Bold・行送り 23 */
  .philosophy{font-size:var(--fs-md);line-height:1.7692;text-align:justify}

  /* 基本方針。AI: バッジ 53px 円 @x20・本文 13px x=83・区切りは 0.5px 緑破線（3/3）・ピッチ 98.4 */
  .policy{margin-top:0}
  .bar + .policy{margin-top:0}
  .policy__item{position:relative;grid-template-columns:3.3125rem 1fr;gap:.625rem;padding:.8819rem 0 .9556rem;background:none}
  .policy__item:last-child{padding-bottom:0}
  .policy__badge{width:3.3125rem;height:3.3125rem;font-size:.875rem;letter-spacing:.05em;align-self:start;margin-top:.375rem}
  .policy__text{font-size:var(--fs-md);line-height:1.7692;text-align:justify}

  /* 会社概要・許可番号：縦に積み、社屋写真は全幅 390x250 */
  .cols2,.cols2--award{display:block}
  /* SP は 会社概要の表 → 社屋写真 → 許可番号 の順（PC は写真が右列の下） */
  .cols2--outline{display:flex;flex-direction:column;gap:0}
  .cols2--outline > div + div{display:contents}
  .cols2--outline figure{order:1;margin:1.25rem calc(var(--gutter) * -1) 0 !important}
  .cols2--outline > div + div > .bar{order:2;margin-top:1.875rem}
  .cols2--outline > div + div > .table-scroll{order:3}
  .cols2--outline figure img{display:block;width:100%;height:auto;aspect-ratio:390 / 250;object-fit:cover}

  /* ISO：ロゴ（中央・高さ 112・間 10）→ 本文 13px → 規格 2 列（ラベル 71.7px）→ 方針 */
  .iso,.iso45{display:block;margin:0}
  .iso__logos,.iso__logos--single{justify-content:center;gap:.625rem;margin:1.25rem 0 0}
  .iso__logos img,.iso__logos--single img{height:7rem}
  .iso__logos img[src$="logo-jab.webp"]{width:4.325rem;object-fit:cover;object-position:50% 38%}
  .iso45 .iso__logos{margin-top:1.25rem}
  .iso__text{margin-top:.875rem;font-size:var(--fs-md);line-height:1.7692;text-align:justify}
  .iso__meta,.iso__meta--single{grid-template-columns:4.4813rem 1fr;margin:.7831rem 0 0;font-size:var(--fs-base);line-height:1.5}
  .iso__meta > dt,.iso__meta > dd{min-height:0}
  .iso__meta > dt{font-weight:400;letter-spacing:.05em}
  /* 9001 → 14001 の順に並べ替え、間に破線（AI: 最終行 +16.2 に 0.5px 破線、次の行まで 25.2） */
  .iso__meta:not(.iso__meta--single) > :nth-child(4n+3),.iso__meta:not(.iso__meta--single) > :nth-child(4n+4){order:2}
  .iso__meta:not(.iso__meta--single) > :nth-child(3),.iso__meta:not(.iso__meta--single) > :nth-child(4){
    position:relative;margin-top:.7725rem;padding-top:.69rem}
  .cols2--iso{display:block;background:none}
  .cols2--iso > div,.cols2--iso > div + div{padding:0;background:none}
  .iso__goal + .tag{margin-top:1.0875rem}
  .iso__goal{margin-top:.3838rem;font-size:var(--fs-base);line-height:1.5}
  .iso45 + .tag,.iso__meta + .cols2 .tag:first-child{margin-top:1.0875rem}

  /* 下層ページの最終要素 → フッターの緑罫（AI: 最終罫 → 緑罫 50） */
  .page-company .page-body{padding-bottom:3.0156rem}
}

/* SP：事業内容 */
@media (max-width:1279px){
  /* 主要営業品目：4 グループを縦に並べる。AI: 最終罫 → 次の見出しベースライン 31.3 */
  .prodgroup,.prodgroup--r,.prodgroup--r + .prodgroup--r{margin:0}
  .prodgroup + .prodgroup,.cols2 > div + div > .prodgroup:first-child{margin-top:1rem}
  /* 写真 2 枚：全幅に 190x220 ×2（間 10）。AI: 最終罫 +20 */
  .cols2.cols2--tight{display:grid;grid-template-columns:1fr 1fr;gap:.625rem;margin:1.2344rem calc(var(--gutter) * -1) 0}
  .cols2--tight picture{display:block}
  .cols2--tight img{height:auto;aspect-ratio:190 / 220}

  /* 技術者資格一覧：2 つの表を 1 つに続け、人数は右端 72px の中央 */
  .bar + p.qual__intro{margin-top:.875rem}
  .qual__intro{margin-bottom:0;font-size:var(--fs-base);line-height:1.8333}
  .qual__intro + .qual{margin-top:.8313rem}
  .qual .table-scroll{--k-sp:auto}
  .qual .dtable thead th:last-child,.qual .dtable td.is-right{width:4.5125rem;padding-right:0;text-align:center}
  .qual__more thead{display:none}
  /* .works-note（施工実績の注記）と共用のクラスなので、後ろの施工実績の指定に負けないよう詳細度を上げる */
  .qual__more .qual__note{margin:.2375rem 0 0;font-size:var(--fs-base);line-height:1.8333;text-align:left}

  /* 弊社の取り組み：表 → 全幅写真 390x250（AI: 403.2x268.9 を上へ 14.5 ずらして切り抜き） */
  .effort__photo{margin:1.2344rem calc(var(--gutter) * -1) 0;aspect-ratio:390 / 250;overflow:hidden}
  .effort__photo img{width:103.385%;max-width:none;height:auto;margin-top:-3.718%;object-fit:fill}

  /* 取り組み 4 件を縦に並べ、間に緑の破線（AI: 0.5px・3/3） */
  .effort__row{display:block}
  .effort__row-dash{display:none}
  .effort .effort__row .effort__item{position:relative;padding:.95rem 0 .9406rem;background:none}
  .effort .effort__row:last-child .effort__item:last-child{padding-bottom:0}
  /* AI: 見出し 15px → 本文 1 行目ベースライン +21.8 */
  .effort__title{margin-bottom:.0525rem;font-size:.9375rem;line-height:1.5}
  .effort__body{display:block}
  .effort__text{font-size:var(--fs-base);line-height:1.8333;text-align:justify}
  /* ロゴ 2 点は中央の 30px をはさんで左右に振り分ける（AI: 本文最終ベースライン +21.1、下端 → 破線 20） */
  .effort__logos{display:grid;grid-template-columns:1fr 1fr;column-gap:1.875rem;align-items:start;margin:.9563rem 0 .2875rem}
  .effort__row--2 .effort__logos{margin-top:.9563rem}
  .effort__logos img,.effort__row--2 .effort__logos img{width:auto;height:auto}
  .effort__logos img:first-child{justify-self:end}
  .effort__logos img:last-child{justify-self:start}
  .effort__logos img[src$="logo-sdgs-kagoshima.webp"]{width:6.9813rem}
  .effort__logos img[src$="logo-sdgs-partner.webp"]{width:7.1688rem;margin-top:-.0813rem}
  /* 認定証は影ごと書き出した画像（本体 272x380 / 全体 312x420）。本体を AI の 97.7x136.7 に合わせる */
  .effort__logos img[src$="kenko-ninteisho.webp"]{width:7.0063rem;height:auto;margin:-.225rem -.675rem -.675rem 0}
  .effort__logos img.is-small{width:7.525rem;height:auto}
  /* 「働き方改革」は本文の右にロゴ（AI: 本文幅 200・ロゴ 139.6x160.2 は右の余白へ 2.9 はみ出す） */
  .effort__body--aside{display:grid;grid-template-columns:1fr 8.725rem;column-gap:.8313rem;align-items:start;margin-right:-.18rem}
  .effort__body--aside .effort__logos{display:block;margin:-.1313rem 0 0}
  .effort__body--aside .effort__logos img{width:100%}
  .page-service .page-body{padding-bottom:2.7375rem}
}

/* SP：施工実績 */
@media (max-width:1279px){
  /* 区分タブ：2 段（170/170・160/180、間 10）。上の角だけ丸い高さ 25 の枠。
     貼り付いたときに下の表が透けないよう、白地の上下に 10 の余白を持たせる */
  .lead + .tabs,.tabs{
    display:flex;flex-wrap:wrap;gap:.625rem;margin:.968rem 0 0;padding:.625rem 0;border-bottom:0;
  }
  .tabs::before{display:none}
  .tabs__btn{
    width:calc((100% - .625rem) / 2);min-width:0;min-height:1.5625rem;padding:0 0 .0875rem;
    border:1px solid #4d4d4d;border-radius:.3125rem .3125rem 0 0;
    font-size:var(--fs-md);line-height:1.2;letter-spacing:.04em;color:#4d4d4d;white-space:nowrap;
  }
  .tabs__btn:nth-child(3){width:calc((100% - .625rem) * 16 / 34)}
  .tabs__btn:nth-child(4){width:calc((100% - .625rem) * 18 / 34);letter-spacing:0}
  .tabs__btn[aria-selected="true"]{background:#41b436;border-color:#41b436;color:#fff}
  .tabs + .works-section{margin-top:1.25rem}
  .works-section .bar{scroll-margin-top:5rem}

  /* 注記 → 表。AI: バー下端 +20.2 にベースライン、次の見出しまで 31.3 */
  .bar + p.works-note{margin-top:.3775rem}
  .works-note{margin:0;font-size:var(--fs-base);line-height:1.5}
  .works-note + .table-scroll{margin-top:.8313rem}

  /* 表は 1 件ずつ「注文者（緑・太字）→ 工事名」の 2 行に積む。見出しは 1 行にまとめる */
  .worktable,.worktable thead,.worktable tbody,.worktable tr,.worktable th,.worktable td{display:block;width:auto}
  .worktable thead tr{padding:0 0 .4375rem;border-bottom:.5px solid var(--c-line-soft)}
  .worktable thead th,.worktable thead th:first-child{display:inline;width:auto;padding:0;border:0;font-size:var(--fs-base);line-height:1.5;vertical-align:baseline}
  .worktable thead th:first-child{font-weight:700;letter-spacing:.06em}
  .worktable tbody tr{padding:.3688rem 0 .4438rem;border-bottom:.5px solid var(--c-line-soft)}
  .worktable tbody th,.worktable tbody td{width:auto;padding:0;font-size:var(--fs-base);line-height:1.5}
  .worktable tbody th{letter-spacing:.04em}
  /* AI: 最終罫 → 次の区分のバー 30 */
  .works-section + .works-section{margin-top:1.8594rem}
  .page-works .page-body{padding-bottom:3.0156rem}
}

/* SP：お知らせ一覧 */
@media (max-width:1279px){
  /* 絞り込み：右寄せで 106.4x23.7（角丸 5・1px 黒枠・▽ 9.6x4.8）。AI: 導入文の最終行 +45.5、バーまで 19.9 */
  .lead + .filters{margin-top:2.8438rem}
  .filters{gap:.625rem;margin-bottom:0}
  /* 幅はデザインの 106.4px を最小に、選んだカテゴリ名が見切れないよう中身に合わせて広げる
     （field-sizing 対応ブラウザは選択中の項目、それ以外は最長の項目に合わせる） */
  .filters select{
    width:auto;min-width:6.65rem;field-sizing:content;height:1.4813rem;min-height:0;padding:0 2.3rem .03125rem 1.375rem;
    border-radius:.3125rem;font-size:var(--fs-base);line-height:normal;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10.64 5.83'%3E%3Cpath d='M.5.5l4.82 4.83L10.14.5' fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-size:.665rem .3644rem;background-position:right 1.3875rem center;
  }
  .filters + .bar{margin-top:1.2438rem}

  /* 一覧：上下 3px・行間 1px の黒罫。日付（幅 105.1）→ カテゴリ枠 60.7x18.1 → 2 段目に件名、右端に緑の ＞ */
  .bar + .newslist{margin-top:1.1563rem}
  .newslist{border-top:3px solid #000}
  .newslist__item{border-bottom:1px solid #000}
  .newslist__item:last-child{border-bottom-width:3px}
  .newslist__link{
    position:relative;grid-template-columns:6.5688rem auto 1fr;align-items:center;
    min-height:0;padding:1.1838rem 1.875rem 1.0475rem 0;
  }
  /* 罫の太さが違う最初と最後の行は、罫の中心からの距離を AI にそろえる */
  .newslist__item:first-child .newslist__link{padding-top:1.1213rem}
  .newslist__item:last-child .newslist__link{padding-bottom:.985rem}
  .newslist__link::after{
    content:"";position:absolute;right:.5938rem;top:50%;width:.3638rem;height:.665rem;margin-top:-.3325rem;
    background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 5.82 10.64'%3E%3Cpath d='M.5 10.14l4.82-4.82L.5.5' fill='none' stroke='%233b801c' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / contain;
  }
  .newslist__date{font-size:var(--fs-base);line-height:1.5}
  .newslist__cat{min-width:3.7938rem;min-height:1.1313rem;padding:0 .375rem;font-size:var(--fs-base);line-height:1}
  /* 件名は字詰めも約物の半角化もしない（AI: 送り 1.0・括弧や読点は全角） */
  .newslist__title{grid-column:1 / -1;margin-top:.425rem;font-family:var(--ff-jp);font-size:var(--fs-base);line-height:1.5;letter-spacing:0}

  /* ページ送り：緑の 173.9x23.7（角丸 5）。AI: 一覧の下の罫 +18.5 */
  .pager{gap:.625rem;margin-top:1.1563rem}
  .pager .btn{
    width:10.8688rem;min-height:1.4813rem;padding:0;border:0;border-radius:.3125rem;
    background:#41b436;color:#fff;font-size:var(--fs-base);line-height:1.5;letter-spacing:.05em;
  }
  .page-news .page-body{padding-bottom:3.0313rem}
}

/* SP：採用情報 */
@media (max-width:1279px){
  /* 本文は 13px・行送り 23。AI: バー下端 → 1 行目ベースライン 31.1 */
  .page-recruit .bar + p,.page-recruit .bar + .msg{margin-top:.875rem}
  .page-recruit .section > p:not(.movie-link){font-size:var(--fs-md);line-height:1.7692;text-align:justify}

  /* 採用メッセージ：本文 → 全幅写真 390x250（AI: 480x320 を (-42.4, -63.5) にずらして切り抜き） */
  .msg{display:flex;flex-direction:column;gap:0}
  .msg__body{width:auto;margin:0;font-size:var(--fs-md);line-height:1.7692}
  .msg figure{order:1;min-height:0;margin:.9563rem calc(var(--gutter) * -1) 0;aspect-ratio:390 / 250;overflow:hidden}
  .msg img{position:static;inset:auto;width:123.077%;max-width:none;height:auto;margin:-16.282% 0 0 -10.872%;object-fit:fill}
  .section:has(> .msg:last-child) + .section{margin-top:1.875rem}

  /* 先輩の声：顔の切り抜き（81.3x83.4 / 87.9x80.2）＋ 本文（x=111.4 から右端まで）。間に緑の破線 */
  .bar + .voices{margin-top:0}
  .voices{display:block;background:none}
  .voice,.voice:nth-child(even){
    display:grid;grid-template-columns:5.7125rem 1fr;gap:0;align-items:start;
    position:relative;padding:.9594rem 0 1.0625rem;
  }
  .voice > div{padding-top:0}
  .voice__illust{align-self:start;width:5.0813rem;margin:-.0813rem 0 0 -.05rem}
  .voice:nth-child(2) .voice__illust{width:5.4938rem;margin:.1437rem 0 0 -.3rem}
  .voice__title{margin-bottom:.19rem;font-size:.875rem;line-height:1.5}
  /* 両端そろえのときは文節改行・pretty を使わない（iOS Safari は行を短めに組むため、両端そろえで字間が大きく開く） */
  .voice__text{font-size:var(--fs-base);line-height:1.5;text-align:justify;word-break:normal;text-wrap:wrap}

  /* 紹介動画：タグ 72x20 の右に 2 行（14px・行送り 18）。AI: 破線 +20 にタグ */
  .movie-link{display:grid;grid-template-columns:4.5rem 1fr;gap:0 .625rem;align-items:start;margin-top:1.0663rem;font-size:.875rem;line-height:1.2857}
  .movie-link .tag{grid-row:1 / span 2;width:4.5rem;min-height:1.25rem;margin:.1813rem 0 0;padding:0;justify-content:center;border-radius:.625rem;font-size:var(--fs-base);line-height:1;letter-spacing:.05em}
  .movie-link__sep{display:none}
  .movie-link a{grid-column:2;text-decoration:none;letter-spacing:0;word-break:break-all}
  .section:has(> .movie-link:last-child) + .section{margin-top:1.7813rem}

  /* よくある質問：イラストなし。Q 14px → A 12px（行送り 18）、間に緑の破線 */
  .bar + .faq{margin-top:.9738rem}
  .faq__illust{display:none}
  .faq__item{position:relative;padding:0 0 .7875rem;background:none}
  .faq__item + .faq__item{padding-top:.6456rem}
  .faq__q{padding-right:0;font-size:.875rem;line-height:1.5}
  .faq__a{margin-top:.19rem;padding:0 0 0 1rem;text-indent:-1rem;font-size:var(--fs-base);line-height:1.5;text-align:justify}
  .faq__a-mark{width:1rem;font-size:.875rem;line-height:1;vertical-align:-.15em}
  .section:has(> .faq:last-child) + .section{margin-top:1.8594rem}

  /* 募集内容：見出し行なし・項目 87.5 */
  .page-recruit .table-scroll{--k-sp:5.4688rem}
  /* 見出し行のない表（募集内容）だけ。見出し行のある表は .bar + * の 1rem のまま */
  .bar + .table-scroll:not(:has(thead)){margin-top:1.2344rem}
  .dtable tbody th{letter-spacing:.04em}
  /* エントリーボタン：270x28（角丸 5）。AI: 表の最終罫 +30 */
  .recruit__entry{margin-top:1.8594rem}
  .btn--primary{width:16.875rem;min-height:1.75rem;padding:0;border-radius:.3125rem;font-size:.875rem;letter-spacing:0}
  .page-recruit .page-body{padding-bottom:3.0313rem}
}

/* SP：エントリーフォーム */
@media (max-width:1279px){
  /* 導入文は 1 文 1 行（AI では 1 行目がぎりぎり収まる詰め） */
  .form-intro{margin-bottom:0}

  /* 各項目：ラベル（13px 緑）と右端に「必須」35x17 → 下に 350x40 の入力欄。上端にだけ 0.5px の罫 */
  .form-row{
    display:grid;grid-template-columns:1fr auto;grid-template-areas:"label badge" "field field";
    row-gap:.1338rem;min-height:0;padding:.9688rem 0 0;border-bottom:0;
  }
  .form-row:first-of-type{padding-top:.9531rem;border-top:.5px solid #4d4d4d}
  .form-row__label{grid-area:label;padding-top:0;font-size:var(--fs-md);line-height:1.5;letter-spacing:0}
  .badge-req,.badge-opt{grid-area:badge;width:2.1875rem;height:1.0625rem;margin-top:-.0225rem;border-radius:.5rem;font-size:.625rem;line-height:1;letter-spacing:.05em}
  .badge-req{background:#f24334}
  /* 任意項目のバッジは SP 入稿データには無い */
  .badge-opt{display:none}
  .form-field{grid-area:field;padding-left:0}
  .form-field input[type=text],.form-field input[type=email],.form-field input[type=tel],
  .form-field input[type=number],.form-field select,.form-field textarea,
  .wpcf7 input[type=text],.wpcf7 input[type=email],.wpcf7 input[type=tel],
  .wpcf7 input[type=number],.wpcf7 select,.wpcf7 textarea{
    height:2.5rem;padding:0 .75rem;border:0;border-radius:.3125rem;background:#e6e6e6;font-size:var(--fs-md);line-height:1.5;
  }
  .form-field textarea,.wpcf7 textarea{height:12.5rem;padding:.5rem .75rem}
  .form-field textarea[rows="2"],.wpcf7 textarea[rows="2"]{height:2.5rem}

  /* 選択肢の項目：ラベルの下に緑の 0.5px 罫 → ◯ 選択肢（13px） */
  .form-row:has(.wpcf7-radio){padding-top:1.7813rem}
  .form-row:has(.wpcf7-radio) + .form-row:has(.wpcf7-radio){padding-top:.9688rem}
  .form-row:has(.wpcf7-radio) .form-field{padding:.3438rem 0 .375rem;border-top:.5px solid var(--c-green)}
  .wpcf7-radio,.wpcf7-checkbox{gap:0 1em;padding:0}
  .wpcf7-list-item label{gap:.3em;font-size:var(--fs-md);line-height:1.5}
  .wpcf7 input[type=radio],.wpcf7 input[type=checkbox]{width:.8125rem;height:.8125rem;margin:0}

  /* 保有資格・自由記入欄は 350x200。最後の欄の 20 下に 0.5px の罫 → プライバシーポリシー */
  .privacy{margin:1.25rem 0 0;padding-top:.975rem;border-top:.5px solid #4d4d4d}
  .privacy__title{font-size:var(--fs-md);line-height:1.5}
  .privacy__title + .privacy__body{margin-top:.205rem}
  .privacy__body{font-size:var(--fs-base);line-height:1.5;text-align:justify}
  .privacy__head{margin-top:.5rem;font-size:var(--fs-base)}
  .form-agree{gap:.5rem;margin:1.45rem 0 0;font-size:var(--fs-md);line-height:1.5}
  .form-agree label{display:inline-flex;align-items:center;gap:.3em}
  .form-agree .badge-req{margin-top:0}
  /* 送信：270x28（角丸 5）。AI: 同意の行 +27.1 */
  .form-submit{margin-top:1.6963rem}
  .wpcf7 input[type=submit],.form-submit button{width:16.875rem;height:1.75rem;padding:0;border-radius:.3125rem;font-size:.875rem;letter-spacing:.09em}
  .page-entry .page-body{padding-bottom:3.0313rem}
}

/* SP：トップページ
   ヒーローは SP 入稿データ（390x680）の配置を、横位置は画面中央からの距離（rem）で写す。
   幅が広い端末でも構図が中央に保たれ、左右のビームだけが画面端まで伸びる。 */
@media (max-width:1279px){
  .hero{aspect-ratio:auto;height:42.5rem;max-width:none;overflow:hidden;
    background:url("../img/bg/gradient-hero-sp.webp") center / cover no-repeat}
  .hero__beam{display:none}
  .hero__beam-sp{display:block;position:absolute;pointer-events:none}
  .hero__beam-sp--l{left:0;top:11.4169rem;width:calc(50% - 2.4219rem);height:6.3131rem;z-index:5}
  .hero__beam-sp--g{left:calc(50% - 2.4219rem);top:11.4169rem;width:3.4206rem;height:6.3131rem;z-index:4}
  .hero__beam-sp--r{left:calc(50% + 1.8894rem);top:20.1375rem;width:calc(50% + 1.1294rem);height:4.7313rem;z-index:1}

  /* キャッチ（Baloo 45px・行送り 40）とタグライン（12px） */
  .hero__catch{left:calc(50% - 1.575rem);top:1.6938rem}
  .hero__catch-en{font-size:2.8125rem;line-height:.8889}
  .hero__tagline{left:calc(50% - 1.5625rem);top:7.1588rem;font-size:var(--fs-base);line-height:1.4;letter-spacing:0}

  /* 50周年：マークは PC の SVG を ×0.2377、下に 9px のタグライン */
  .hero__50th{left:calc(50% + 1.7188rem);top:1.8656rem;width:7.95rem}
  .hero__tagline--anniv{left:calc(50% + 1.7188rem);top:8.4563rem;width:7.95rem;font-size:.5625rem;text-align:center;white-space:nowrap}
  .hero__tagline--anniv .num{font-size:inherit}

  /* 白い見出し（20px）＋メッセージ（12px Bold・行送り 24）。下端から 24.4 にそろえて積む */
  .hero__copy{position:absolute;left:calc(50% - 10.9375rem);width:21.875rem;bottom:1.5225rem;z-index:2}
  .hero__lead{display:block;margin:0 0 .6463rem;color:#fff;font-size:1.25rem;font-weight:700;line-height:1.5;letter-spacing:.04em}
  .hero__lead .num{font-size:1.4375rem;line-height:1;letter-spacing:0}
  .hero__message{position:static;width:auto;text-align:left;white-space:normal;font-size:var(--fs-base);line-height:2;letter-spacing:.04em}

  /* イラスト：剪定（左上）・計測（右）・指差（右下、hero の下端で切る）。3 人は SP では置かない */
  .hero__illust--cut{left:calc(50% - 7.704rem);top:4.9544rem;width:4.942rem}
  .hero__illust--check{left:calc(50% + 5.181rem);top:12.3625rem;width:4.5036rem}
  .hero__illust--point{left:calc(50% + 5.2335rem);top:35.9307rem;width:4.454rem;height:6.5693rem}
  .hero__illust--trio{display:none}
  /* 50周年ver：マークを避けて、剪定は右上へ、ビームと計測は 30 上へ */
  .hero--anniversary .hero__illust--cut{left:calc(50% - 7.3209rem);top:3.1334rem}
  .hero--anniversary .hero__illust--check{top:10.4875rem}
  .hero--anniversary .hero__beam-sp--l,.hero--anniversary .hero__beam-sp--g{top:9.5419rem}
  .hero--anniversary .hero__beam-sp--r{top:18.2625rem}

  /* News 帯（#efefef）。AI: 帯上端 +54.3 に「News」、3px 罫、最後の罫は 1px */
  .home-news{padding:1.5781rem 0 1.875rem}
  /* AI: 350x196.9・グレー帯の上端から 30、動画の下端から News の見出しまで 22.7 */
  .home-movie{margin:.2969rem 0 1.4188rem}
  .home-news .sec-head{margin-bottom:.1219rem}
  .home-news .sec-head__ja{margin-left:.45em;top:-.0625rem;font-size:var(--fs-base);font-weight:400}
  .home-news .newslist__item:last-child{border-bottom-width:1px}
  .home-news .newslist__item:last-child .newslist__link{padding-bottom:1.0475rem}
  .home-news .btn-row{margin-top:1.2188rem}
  .home-news .btn,.home-works .btn{
    width:9.6188rem;min-width:0;min-height:1.4813rem;gap:.25rem;padding:0;border:0;border-radius:.3125rem;
    background:#41b436;color:#fff;font-size:var(--fs-base);line-height:1.5;letter-spacing:.04em;
  }

  /* バナー：390x270（間 10）。写真は AI の切り抜き位置に合わせる */
  .banner-group{margin:0}
  .banner{height:auto;aspect-ratio:390 / 270}
  .banner + .banner{margin-top:.625rem}
  .banner img{position:absolute;max-width:none;height:auto;object-fit:fill}
  .banner:nth-child(1) img{width:131.077%;left:-3.846%;top:-25.111%}
  .banner:nth-child(2) img{width:107.872%;left:-3.923%;top:-2.222%}
  .banner__label{top:7.625rem;min-width:0;width:12.525rem;height:1.6313rem;padding:0;border-radius:.3125rem;font-size:1.25rem;line-height:1}
  .banner__sub{top:9.6275rem;font-size:var(--fs-base);line-height:1.5}

  /* 施工実績：255x180 を中央に置き、左右に前後のスライドを覗かせる（間 10）。矢印は白丸 20 */
  .home-works{padding:1.5531rem 0 1.875rem}
  .home-works .sec-head{margin-bottom:1.0725rem}
  .sec-head--center{padding-top:0}
  .sec-head--center .sec-head__ja{top:0;margin-top:-.1444rem;font-size:var(--fs-base);font-weight:400}
  .slider{--slider-align:center;padding-inline:0}
  .slider__track{gap:.625rem}
  .slider__slide{flex:0 0 15.9375rem}
  .slider__slide img{height:11.25rem}
  .slider__arrow{
    display:block;position:absolute;top:5rem;z-index:2;width:1.25rem;height:1.25rem;padding:0;border:0;border-radius:50%;
    background:no-repeat center / 100% 100%;cursor:pointer;
  }
  .slider__arrow--prev{left:calc(50% - 9.2188rem);
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Ccircle cx='10' cy='10' r='10' fill='%23fff'/%3E%3Cpath d='M12.08 14.16L7.92 10l4.16-4.16' fill='none' stroke='%233c873c' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
  .slider__arrow--next{left:calc(50% + 7.9688rem);
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Ccircle cx='10' cy='10' r='10' fill='%23fff'/%3E%3Cpath d='M7.92 14.16L12.08 10 7.92 5.84' fill='none' stroke='%233c873c' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
  .slider__dots{gap:.3125rem;margin-top:.625rem}
  .slider__dot{width:.3125rem;height:.3125rem;background:#b3b3b3}
  .slider__dot[aria-current="true"]{background:#3b801c}
  .home-works .btn-row{margin-top:1.25rem}

  /* Recruitment 帯：高さ 160。3 人のイラストは帯の下端で切る */
  .recruit-band{height:10rem;background:url("../img/bg/gradient-band-sp.webp") center / cover no-repeat}
  .recruit-band__inner{width:auto;align-items:center;padding-top:.9375rem}
  .recruit-band__en{margin-left:0;font-size:2.5rem;line-height:1}
  .recruit-band__ja{margin-top:-.3413rem;font-size:var(--fs-base);line-height:1.4;letter-spacing:0}
  .recruit-band__illust{left:calc(50% - 4.4748rem);top:4.6705rem;width:8.8587rem}

  /* トップはフッターの緑罫なし。AI: 帯の下端 +30 にロゴ */
  .page-home .footer__inner{padding-top:1.875rem}
}

/* SP：お知らせ詳細・404（SP 入稿データなし。一覧・サンクスページの組み方に合わせる） */
@media (max-width:1279px){
  .article{margin-top:1.25rem}
  .article__meta{gap:.625rem;margin-bottom:.5rem}
  .article__date{font-size:var(--fs-base)}
  .article__title{margin-bottom:1.25rem;padding-bottom:.9375rem;border-bottom-width:3px;font-size:var(--fs-lead);line-height:1.3043}
  .entry-content{font-size:var(--fs-md);line-height:1.7692;text-align:justify}
  .entry-content > * + *{margin-top:1em}
  .post-nav{justify-content:center;gap:.625rem;margin-top:1.875rem}
  /* ボタンは一覧のページ送りと同じ緑の小さなボタン（前後の記事名が長いときは折り返す） */
  .post-nav .btn,.page-news-single .btn-row .btn,.page-404 .btn-row .btn{
    min-width:10.8688rem;max-width:100%;min-height:1.4813rem;padding:.1875rem 1rem;border:0;border-radius:.3125rem;
    background:#41b436;color:#fff;font-size:var(--fs-base);line-height:1.5;white-space:normal;text-align:center;
  }
  .post-nav .btn{flex:0 1 10.8688rem;min-width:0}
  .page-news-single .btn-row,.page-404 .btn-row{margin-top:1.25rem}
  /* 見出しは文節の途中で折り返さない */
  .lead__title,.article__title,.thanks__title{word-break:auto-phrase}
  .notfound__title{margin-top:1.3856rem}
  .notfound__title + .thanks__body{margin-top:.7813rem}
  .page-news-single .page-body,.page-404 .page-body{padding-bottom:3.0313rem}
}

/* SP レイアウトのまま幅が広い端末（タブレット 〜1279px）
   ルートの文字サイズは 20px（幅 487.5px）で頭打ちになるので、本文・見出し・ヘッダー・フッターを
   幅 800px（40rem）の中央の列にそろえる。スマホ幅では max() が余白 20px に戻るので見た目は変わらない。 */
@media (max-width:1279px){
  :root{--container:40rem}
  .header__inner,.gnav,.breadcrumb,.page-hero__inner,.footer__inner > div:first-child{
    padding-inline:max(var(--gutter),(100% - 40rem) / 2);
  }
  .page-hero__illust{right:calc(max(0px,(100% - 40rem) / 2) + var(--ph-sp-r,var(--gutter)))}
  .footer__rule{width:min(40rem,100% - var(--gutter) * 2)}
  .footer__address,.footer__copy{margin-inline:max(var(--gutter),(100% - 40rem) / 2)}
  /* バナーは高さを 500px までに抑え、見出しは上下中央（AI: 中心 -13.05 にラベル、+19.04 に和文） */
  .banner{max-height:25rem}
  .banner__label{top:calc(50% - .8156rem)}
  .banner__sub{top:calc(50% + 1.19rem)}
}

/* SP：サンクスページ。AI: 見出し 2 行（23px）→ 本文 13px Bold（行送り 23）→ 16.2 → イラスト 228.6x151.9
   （下端はフッターの緑罫 3px の中心に乗る）。PC の「トップページへ戻る」ボタンは SP には無い */
@media (max-width:1279px){
  .page-body > .thanks__title:first-child{margin-top:1.3856rem}
  .thanks__title{font-size:var(--fs-lead);line-height:1.3043;margin:0}
  .thanks__body{margin-top:.7813rem;font-size:var(--fs-md);line-height:1.7692;text-align:justify}
  .thanks__illust{width:14.2875rem;margin:1.0119rem auto -.0938rem}
  .thanks__actions{display:none}
  .page-thanks .page-body{padding-bottom:0}
}

/* 印刷 */
@media print{
  .header,.footer__map,.nav-toggle,.gnav,.slider__dots,.pager{display:none!important}
  body{font-size:11pt;color:#000}
  .hero,.page-hero,.recruit-band,.banner{background:none!important;height:auto!important}
}

/* --------------------------------------------------- 17. モーション ------ */
/* 方針
   - 動かすのは transform と opacity だけ。レイアウトプロパティは触らない。
     静止状態は既存実装と完全に同一なので、Illustrator 入稿データと突き合わせた
     実測値（配置・行高・罫線位置）は一切変わらない。
   - bounce / elastic は使わない。退出は入場の約 75% の時間。
   - prefers-reduced-motion は 27 行目のグローバル指定で全て無効化される。
   - スクロール表示（data-reveal）は main.js が「初期表示で画面外にある要素」
     にだけ付与する。JS 無効・IntersectionObserver 非対応なら何も起きず、
     常に表示されたまま。初期描画と LCP には影響しない。 */

@keyframes shinei-rise{from{opacity:0;transform:translateY(1.75rem)}to{opacity:1;transform:none}}
@keyframes shinei-lift{from{opacity:0;transform:translateY(2.75rem)}to{opacity:1;transform:none}}
@keyframes shinei-fade{from{opacity:0}to{opacity:1}}
@keyframes shinei-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-.375rem)}}

/* ヒーロー：奥（ビーム）から手前（イラスト）へ、重ね順どおりに立ち上げる。
   キャッチは LCP 要素になるため遅延なしで開始する。 */
.hero__beam{animation:shinei-fade 1s var(--ease-out-quart) .05s both}
.hero__catch,.hero__50th{animation:shinei-rise .7s var(--ease-out-quart) both}
.hero__tagline{animation:shinei-rise .7s var(--ease-out-quart) .12s both}
.hero__message{animation:shinei-fade .8s var(--ease-out-quart) .34s both}
.hero__illust{animation:shinei-lift .9s var(--ease-out-expo) both}
.hero__illust--cut{animation-delay:.18s}      /* 剪定 z3 */
.hero__illust--point{animation-delay:.26s}    /* 指差 z6 */
.hero__illust--check{animation-delay:.34s}    /* 計測 z7 */
.hero__illust--trio{animation-delay:.42s}     /* トリオ z8 */
/* 50周年ロゴだけ、入場後にごく緩やかに漂わせる（親の入場 transform とは別レイヤー） */
.hero__50th img{animation:shinei-float 6s ease-in-out 1.6s infinite}

/* 下層ページのグリーン帯 */
.page-hero__title{animation:shinei-rise .6s var(--ease-out-quart) both}
.page-hero__en{animation:shinei-rise .6s var(--ease-out-quart) .08s both}
.page-hero__illust{animation:shinei-lift .8s var(--ease-out-expo) .1s both}

/* スクロール表示 */
[data-reveal]{opacity:0;transform:translateY(1.5rem);
  transition:opacity .7s var(--ease-out-quart),transform .7s var(--ease-out-quart);
  transition-delay:var(--reveal-delay,0ms)}
[data-reveal].is-in{opacity:1;transform:none}

/* 施工実績：タブ切替時に本文をフェードイン */
[data-tab-panel]:not([hidden]){animation:shinei-rise .32s var(--ease-out-quart) both}

/* 押下のフィードバックと矢印の送り */
.btn:active{transform:scale(.97)}
.btn__arrow{transition:transform .25s var(--ease-out-quart)}
.btn:hover .btn__arrow{transform:translateX(.25rem)}
.wpcf7 input[type=submit]:active,.form-submit button:active{transform:scale(.99)}

/* 印刷時は全て静止・表示状態に戻す */
@media print{
  [data-reveal]{opacity:1!important;transform:none!important}
  .hero__beam,.hero__catch,.hero__50th,.hero__50th img,.hero__tagline,.hero__message,
  .hero__illust,.page-hero__title,.page-hero__en,.page-hero__illust,
  [data-tab-panel]:not([hidden]){animation:none!important;opacity:1!important;transform:none!important}
}
