/*
 * ======================================
 * 追加クラス一覧（共通SCSS取り込み検討用）
 * ======================================
 *
 * .slinky-sec / --md          - セクション上下余白（clamp可変：80-128px / 72-112px）
 * .slinky-heading / --md/--sm - 大型英字（clamp 44-88px）＋日本語（緑スクエア付き）の左寄せ見出し
 * .slinky-square / --sm       - 見出し前の緑スクエア（10px / 8px）
 * .slinky-sechead             - 見出し＋右端リンク/ボタンの両端揃え行
 * .slinky-mb-56 / -48 / -40   - 見出し下余白（tabletで半減しない固定値）
 * .slinky-btn / --lg          - 角型・矢印右寄せボタン（btn の見た目差分）
 * .slinky-link / --white      - 下線＋矢印のテキストリンク
 * .slinky-split / --top       - 2カラムgrid（gap56px・auto-fit）
 * .slinky-stack               - 縦積みflex（gap指定）
 * .slinky-ph                  - 画像差し込み待ちプレースホルダー（無地＋カメラアイコン＋写真名）
 * .slinky-marker              - 緑の蛍光マーカー（62%から）
 * .slinky-mv                  - TOP MV（左：白地キャッチ／右：写真の50:50分割型）
 * .slinky-badges              - MV下の認定・許可バッジ
 * .slinky-reasons             - 選ばれる理由（上罫線4px＋大番号）
 * .slinky-svc                 - 事業カード（ダーク背景・上罫線4px）
 * .slinky-points              - 特徴カード（2px罫線グリッド）
 * .slinky-term                - 保証年数ボックス
 * .slinky-docs                - 保証書画像枠（A判比率）
 * .slinky-case(s)             - 施工事例カード（左上タグ・黒矢印）
 * .slinky-recruit             - 採用カード
 * .slinky-insta               - Instagram
 * .slinky-news / -newslist    - お知らせ
 * .slinky-cta                 - お問い合わせCTA（緑背景）
 * .slinky-footer              - フッター
 * .slinky-header / -toggle / -spnav / -logo - ヘッダー・SPメニュー・テキストロゴ
 * .slinky-hero                - 下層ページヒーロー
 * .slinky-anchor              - ページ内リンクボタン
 * .slinky-biz / -box          - 事業内容の各事業ブロック・対応内容ボックス
 * .slinky-flow                - 流れ（2px罫線グリッド）
 * .slinky-issues / -diagram / -feat / -compare / -places / -steps / -after - 草なしくんページ
 * .slinky-worknav / -work     - 施工事例ページ
 * .slinky-profile / -license / -quals / -access - 会社概要ページ
 * .slinky-telbox / -form / -faq - お問い合わせページ
 * .slinky-pager / -article    - お知らせ一覧・詳細
 *
 * ======================================
 * 共通SCSSに不足していたもの
 * ======================================
 *
 * 【値の粒度不足】
 *  - section の上下余白が固定値（120/60px）のみ。clamp() による可変余白がない
 *  - fz-* / gap-* / mb-* に 56px・24px・12px 等の刻みがなく、tablet 以下で mb-40 以上が自動半減する
 *  - body の font-size が tablet 1.4rem / SP 1.2rem に自動縮小され、デザイン（全幅16px基準）と合わない
 *  - news-list__date / __cat のフォントサイズが 0.9rem / 0.8rem（=9px/8px）と極小
 * 【状態不足】
 *  - btn--solid の hover で文字色を変える modifier がない（黒地→緑地＋黒文字）
 *  - header__nav-item の現在ページ表示が「短い下線」のみで、文字色変更・全幅下線がない
 * 【構造不足】
 *  - 英字（大）＋日本語（小・前置スクエア）の左寄せ見出し型がない
 *  - 分割型MV（左テキスト／右写真＋黒ラベル）がない
 *  - nav-toggle が3本線のみで、テキスト（MENU/CLOSE）型がない。sp-nav がフルスクリーン中央寄せのみ
 *  - 罫線グリッド（gap:2px＋背景色で罫線を出すカード群）がない
 * 【装飾パターン不足】
 *  - 角丸0・直角ベースのボタン／カード（共通は radius 10px 前提）
 *  - 画像差し込み待ちの斜線プレースホルダー
 *
 */

/* ==========================================================================
   Base（デザイン基準に合わせた上書き）
   ========================================================================== */
html { scroll-padding-top: 90px; }
body {
  padding-top: 77px;
  background: #FFFFFF;
  color: #1A1A1A;
  font-size: 1.6rem;
  font-weight: 500; /* 見出しが太いので本文も細くなりすぎないよう 500 */
  line-height: 1.8;
}
@media (max-width: 896px) { body { font-size: 1.6rem; } }
@media (max-width: 639px) { body { font-size: 1.6rem; } }
body.is-nav-open { overflow: hidden; }
a:hover { opacity: 1; }
img { max-width: 100%; }

/* 画像：プレースホルダー / 実画像 */
.slinky-ph {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 12px;
  background: #E3E5E4;
  color: #5C5F5E;
  font: 12px/1.5 ui-monospace, SFMono-Regular, Menlo, monospace;
  text-align: center;
}
/* 写真が必要な枠と分かるよう、背景にカメラアイコンを薄く敷く（Font Awesome 6） */
.slinky-ph::before {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  content: "\f030";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: clamp(56px, 8vw, 104px);
  line-height: 1;
  color: #D3D6D4;
}
.slinky-ph > span { position: relative; }
.slinky-img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
}

/* 共通パーツ */
.slinky-square { display: flex; align-items: center; gap: 12px; }
.slinky-square::before {
  content: "";
  flex-shrink: 0;
  width: 10px;
  height: 10px;
  background: #1DBF9A;
}
.slinky-square--sm { gap: 10px; }
.slinky-square--sm::before { width: 8px; height: 8px; }

.slinky-marker { background: linear-gradient(transparent 62%, #1DBF9A 62%); }

.slinky-sec { padding: clamp(80px, 10vw, 128px) 0; }
.slinky-sec--md { padding: clamp(72px, 9vw, 112px) 0; }
@media (max-width: 896px) {
  .slinky-sec { padding: clamp(80px, 10vw, 128px) 0; }
  .slinky-sec--md { padding: clamp(72px, 9vw, 112px) 0; }
}
.slinky-sec.bg-dark { color: #FFFFFF; }
/* コンテンツ幅：1200px＋左右24px（デザインの max-width:1200px / padding:0 24px） */
.container { max-width: 1248px; padding-left: 24px; padding-right: 24px; }
.container-narrow { max-width: 1048px; padding-left: 24px; padding-right: 24px; }

.slinky-mb-56 { margin-bottom: 56px; }
.slinky-mb-48 { margin-bottom: 48px; }
.slinky-mb-40 { margin-bottom: 40px; }
.slinky-mb-32 { margin-bottom: 32px; }

.slinky-stack { display: flex; flex-direction: column; }
.slinky-stack--24 { gap: 24px; }
.slinky-stack--20 { gap: 20px; }

.slinky-text { font-size: 1.5rem; color: #3D403F; line-height: 1.8; }
.slinky-text--lh2 { line-height: 2; }
.bg-dark .slinky-text { color: #D2D5D3; }

/* 見出し：英字（大）＋日本語 */
.slinky-heading { display: flex; flex-direction: column; gap: 12px; }
.slinky-heading .heading__en {
  font-size: clamp(44px, 7vw, 88px);
  font-weight: 900;
  line-height: .95;
  letter-spacing: .01em;
  color: inherit;
}
.slinky-heading .heading__ja {
  margin: 0;
  font-size: clamp(20px, 2.4vw, 26px);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .04em;
  color: inherit;
}
.slinky-heading--md .heading__en { font-size: clamp(44px, 6vw, 72px); }
.slinky-heading--md .heading__ja { font-size: clamp(20px, 2.4vw, 24px); }
.slinky-heading--sm .heading__en { font-size: clamp(40px, 5vw, 64px); }
.slinky-heading--sm .heading__ja { font-size: clamp(20px, 2.4vw, 24px); }
.heading--white.slinky-heading .heading__en,
.heading--white.slinky-heading .heading__ja { color: #FFFFFF; }

.slinky-sechead {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-end;
  gap: 24px;
}
/* 下線リンクは基本右寄せ（見出し行・縦積みの末尾・スマホで折り返したときも右端） */
.slinky-sechead > .slinky-link { margin-left: auto; }
.slinky-stack > .slinky-link { align-self: flex-end; }

/* ボタン（btn の見た目差分：直角・矢印右寄せ） */
.slinky-btn {
  width: auto;
  max-width: none;
  height: 52px;
  padding: 0 24px;
  justify-content: space-between;
  gap: 14px;
  border: 2px solid #1A1A1A;
  border-radius: 0;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .04em;
  text-align: left;
}
.slinky-btn--lg { height: 60px; font-size: 1.5rem; }
.slinky-btn.btn--solid { background: #1A1A1A; color: #FFFFFF; }
.slinky-btn.btn--solid:hover { background: #1DBF9A; border-color: #1A1A1A; color: #1A1A1A; }
.slinky-btn.btn--outline { background: transparent; color: #1A1A1A; }
.slinky-btn.btn--outline:hover { background: #1A1A1A; color: #FFFFFF; }
@media (max-width: 639px) {
  .slinky-btn { max-width: none; font-size: 1.4rem; }
  .slinky-btn--lg { font-size: 1.5rem; }
}

.slinky-link {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding-bottom: 6px;
  border-bottom: 1px solid #1A1A1A;
  color: #1A1A1A;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.6;
}
.slinky-link:hover { color: #0E8A6D; }
.slinky-link--white { color: #FFFFFF; border-bottom-color: #FFFFFF; }
.slinky-link--white:hover { color: #1DBF9A; }

.slinky-iconbtn {
  flex-shrink: 0;
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border: 1px solid #1A1A1A;
  color: #1A1A1A;
  font-size: 2rem;
}
.slinky-iconbtn:hover { background: #1A1A1A; color: #FFFFFF; }
.slinky-iconbtn--white { width: 50px; height: 50px; border-color: #FFFFFF; color: #FFFFFF; }
.slinky-iconbtn--white:hover { background: #FFFFFF; color: #1A1A1A; }

.slinky-split {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr));
  gap: 56px;
  align-items: center;
}
.slinky-split--48 { gap: 48px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr)); }
.slinky-split--top { align-items: start; }
.slinky-split--stretch { align-items: stretch; }

.slinky-tag-tel {
  padding: 2px 5px;
  background: #1A1A1A;
  color: #FFFFFF;
  font-size: 1.1rem;
  letter-spacing: .1em;
}

/* ==========================================================================
   Header
   ========================================================================== */
.slinky-header {
  background: #FFFFFF;
  border-bottom: 1px solid #E3E5E4;
  box-shadow: none;
  color: #1A1A1A;
}
.slinky-header__inner {
  max-width: 1320px;
  height: 76px;
  padding: 0 20px;
  gap: 28px;
}
@media (max-width: 1100px) {
  .slinky-header__inner { height: 76px; padding: 0 20px; }
}

/* テキストロゴ（header-logo の見た目差分） */
.slinky-logo { gap: 12px; color: #1A1A1A; }
/* ロゴ画像（透過済.png / 透過済（白）.png ※透明余白をトリミング済み）＋英字社名 */
.slinky-logo .slinky-logo__img,
.header__logo.slinky-logo .slinky-logo__img { display: block; width: auto; height: 60px; }
@media (max-width: 639px) { .header__logo.slinky-logo .slinky-logo__img { height: 54px; } }
.slinky-logo .header-logo__body { line-height: 1; }
.slinky-logo .slinky-logo__name {
  font-family: "Archivo", sans-serif;
  font-size: 2.4rem;
  font-weight: 900;
  line-height: 1;
  letter-spacing: .1em;
  color: #1A1A1A;
}
.slinky-logo .slinky-logo__sub {
  margin-top: 5px;
  font-family: "Archivo", sans-serif;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: .24em;
  color: #5C5F5E;
}
.slinky-logo--footer .slinky-logo__img { height: 88px; }
.slinky-logo--footer .slinky-logo__name { font-size: 2.8rem; color: #FFFFFF; }
.slinky-logo--footer .slinky-logo__sub { color: #A9ADAB; }

/* PCナビ */
.slinky-header__nav { gap: 26px; margin: 0; }
.slinky-header__nav .header__nav-item a {
  gap: 2px;
  padding: 6px 0;
  color: #1A1A1A;
}
/* 下線は中央から伸びる（現在ページは常に表示） */
.slinky-header__nav .header__nav-item a::after {
  bottom: -2px;
  left: 50%;
  width: 0;
  height: 2px;
  background: #1DBF9A;
  transform: none;
  transition: width .4s cubic-bezier(.22, .61, .36, 1), left .4s cubic-bezier(.22, .61, .36, 1);
}
.slinky-header__nav .header__nav-item a:hover::after,
.slinky-header__nav .header__nav-item--current a::after { left: 0; width: 100%; }
.slinky-header__nav .header__nav-item a:hover,
.slinky-header__nav .header__nav-item a:hover .header__nav-ja { color: #0E8A6D; }
.slinky-header__nav .header__nav-ja {
  margin: 0;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .04em;
  color: inherit;
}
.slinky-header__nav .header__nav-en {
  font-size: .9rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: .18em;
  color: #8A8E8C;
}
.slinky-header__nav .header__nav-item--current .header__nav-ja { color: #0E8A6D; }

/* 右側：電話・Instagram・CTA */
.slinky-header__right { gap: 12px; height: auto; }
.slinky-header__tel {
  flex-direction: column;
  align-items: flex-start;
  padding-right: 4px;
  color: #1A1A1A;
  line-height: 1.2;
}
.slinky-header__tel::before { display: none; }
.slinky-header__tel:hover { opacity: 1; color: #0E8A6D; }
.slinky-header__tel-num {
  display: flex;
  align-items: center;
  gap: 6px;
  font-family: "Archivo", sans-serif;
  font-size: 2.1rem;
  font-weight: 800;
  letter-spacing: .03em;
}
.slinky-header__tel-note {
  margin-top: 3px;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 1.1rem;
  font-weight: 500;
  color: #5C5F5E;
}
.slinky-header__cta {
  flex-direction: row;
  gap: 10px;
  height: 46px;
  padding: 0 22px;
  background: #1DBF9A;
  color: #1A1A1A;
  font-size: 1.4rem;
  font-weight: 700;
  letter-spacing: .06em;
}
.slinky-header__cta:hover { background: #1A1A1A; color: #FFFFFF; }

/* ハンバーガー（MENU/CLOSE テキスト型） */
.slinky-toggle {
  top: 15px;
  right: 20px;
  width: auto;
  min-width: 72px;
  height: 46px;
  padding: 0 14px;
  border-radius: 0;
  background: #1A1A1A;
  backdrop-filter: none;
  color: #FFFFFF;
  font-family: "Archivo", sans-serif;
  font-size: 1.2rem;
  font-weight: 800;
  letter-spacing: .18em;
}
.slinky-toggle .nav-toggle__line { display: none; }
/* MENU と CLOSE を同じ位置に重ね、表示を切り替えるだけにする（幅は長い CLOSE に揃い、切替で伸び縮みしない） */
.slinky-toggle { place-items: center; }
.slinky-toggle::before,
.slinky-toggle::after { grid-area: 1 / 1; }
.slinky-toggle::before { content: "MENU"; }
.slinky-toggle::after { content: "CLOSE"; visibility: hidden; }
.slinky-toggle.is-active::before { visibility: hidden; }
.slinky-toggle.is-active::after { visibility: visible; }

/* ナビ切替：1179px以下でPCナビ・CTAを隠してMENU表示／699px以下で電話も隠す */
@media (max-width: 1179px) {
  .slinky-header__nav,
  .slinky-header__cta { display: none; }
  .slinky-header__right { display: flex; margin-left: auto; margin-right: 110px; } /* MENU/CLOSEボタン（幅約81px＋右20px）と重ならない余白 */
  .slinky-toggle { display: grid; }
}
@media (max-width: 699px) {
  .slinky-header__tel { display: none; }
  .slinky-header__right { margin-right: 89px; } /* MENUボタン幅81px＋間隔8px */
}
/* PCナビ表示幅でナビ6項目＋電話が収まらない帯（1180〜1339px）は電話番号を隠す */
@media (min-width: 1180px) and (max-width: 1339px) {
  .slinky-header__tel { display: none; }
}
.slinky-header__nav .header__nav-ja,
.slinky-header__nav .header__nav-en,
.slinky-header__cta { white-space: nowrap; }

/* SPメニュー（ヘッダー下にドロップ） */
.slinky-spnav {
  top: 77px;
  justify-content: flex-start;
  align-items: stretch;
  padding: 12px 20px 28px;
  background: #1A1A1A;
}
.slinky-spnav .sp-nav__list { max-width: none; text-align: left; }
.slinky-spnav .sp-nav__item,
.slinky-spnav .sp-nav__item:first-child { border-top: 0; border-bottom: 1px solid #333333; }
.slinky-spnav .sp-nav__link {
  padding: 16px 0;
  color: #FFFFFF;
  font-size: 1.6rem;
  font-weight: 700;
}
.slinky-spnav .sp-nav__link::after { display: none; }
.slinky-spnav .sp-nav__link:hover { background: none; color: #1DBF9A; }
.slinky-spnav .sp-nav__en {
  margin: 0;
  padding: 0;
  font-size: 1.1rem;
  letter-spacing: .18em;
  color: #1DBF9A;
  opacity: 1;
}
.slinky-spnav .sp-nav__bottom { max-width: none; margin-top: 20px; display: flex; flex-direction: column; gap: 10px; }
.slinky-spnav__cta,
.slinky-spnav__tel {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 54px;
  font-weight: 700;
}
.slinky-spnav__cta { background: #1DBF9A; color: #1A1A1A; }
.slinky-spnav__tel {
  border: 1px solid #FFFFFF;
  color: #FFFFFF;
  font-family: "Archivo", sans-serif;
  font-size: 1.8rem;
  font-weight: 800;
  letter-spacing: .04em;
}
/* タブレット幅はボタン2つを横並び（スマホは縦並びのまま） */
@media (min-width: 640px) {
  .slinky-spnav .sp-nav__bottom { flex-direction: row; }
  .slinky-spnav__cta,
  .slinky-spnav__tel { flex: 1 1 0; }
}
@media (min-width: 1180px) {
  .slinky-spnav { display: none; }
}

/* ==========================================================================
   下層ページヒーロー
   ========================================================================== */
.slinky-hero {
  padding: clamp(48px, 7vw, 88px) 0 clamp(48px, 6vw, 72px);
  background: #1A1A1A;
  color: #FFFFFF;
  text-align: left;
}
@media (max-width: 896px) { .slinky-hero { padding: clamp(48px, 7vw, 88px) 0 clamp(48px, 6vw, 72px); } }
@media (max-width: 639px) { .slinky-hero { padding: clamp(48px, 7vw, 88px) 0 clamp(48px, 6vw, 72px); } }
.slinky-hero::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 34%;
  height: 6px;
  background: #1DBF9A;
}
.slinky-hero__content { gap: 16px; }
.slinky-hero__crumb { padding: 0; font-size: 1.2rem; letter-spacing: .06em; color: #A9ADAB; }
.slinky-hero__crumb .breadcrumb__item:not(:last-child)::after { margin: 0 10px; color: #A9ADAB; }
.slinky-hero__crumb .breadcrumb__link { color: #A9ADAB; }
.slinky-hero__crumb .breadcrumb__link:hover { color: #1DBF9A; text-decoration: none; }
.slinky-hero__crumb .breadcrumb__current { color: #FFFFFF; }
.slinky-hero .slinky-hero__en {
  margin: 12px 0 0;
  font-size: clamp(44px, 8.5vw, 108px);
  font-weight: 900;
  line-height: .95;
  letter-spacing: .02em;
  color: #FFFFFF;
}
.slinky-hero .slinky-hero__ja {
  font-size: clamp(18px, 2.2vw, 24px);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .06em;
  color: #FFFFFF;
}
@media (max-width: 639px) {
  .slinky-hero .slinky-hero__en { font-size: clamp(28px, 9vw, 44px); } /* KUSANASHIKUN（12字）が画面内に収まるサイズ */
  .slinky-hero .slinky-hero__ja { font-size: clamp(18px, 2.2vw, 24px); letter-spacing: .06em; }
}
.slinky-hero__lead {
  max-width: 760px;
  margin-top: 6px;
  color: #D2D5D3;
  font-size: 1.5rem;
  line-height: 1.9;
}

/* ==========================================================================
   TOP：メインビジュアル（左：白地キャッチ 約6割／右：写真）
   ========================================================================== */
.slinky-mv {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  border-bottom: 1px solid #E3E5E4;
}
.slinky-mv__body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 28px;
  /* 白地側の余白は開けすぎない（左右 24〜72px） */
  padding: clamp(48px, 6vw, 96px) clamp(24px, 4.5vw, 72px);
}
.slinky-mv__catch {
  align-self: flex-start;
  padding-bottom: 6px;
  border-bottom: 2px solid #1A1A1A;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: .06em;
}
.slinky-mv__title {
  font-size: clamp(32px, 3.6vw, 60px);
  font-weight: 900;
  line-height: 1.35;
  letter-spacing: .01em;
}
.slinky-mv__text { max-width: 680px; font-size: 1.6rem; line-height: 2; color: #3D403F; }
.slinky-mv__btns {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
  gap: 12px;
  max-width: 620px;
}
.slinky-badges { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 8px; }
.slinky-badges__item {
  padding: 6px 12px;
  background: #F2F3F2;
  color: #1A1A1A;
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1.8;
}
.slinky-badges__item--green { background: #EAF8F3; color: #0B6F58; }
.slinky-mv__visual { position: relative; background: #1A1A1A; }
#slideshow {
  position: relative;
  isolation: isolate; /* CMSスライダー内の z-index を枠の中に閉じ込め、ラベルの下に潜らせない */
  /* CMSスライダーの読み込み前に黒い画面が出ないよう、1枚目と同じ写真を先に敷いておく */
  background: #F4F5F4 url(https://ros-cdn.s3.ap-northeast-1.amazonaws.com/hp/img/ros_keiyaku/28693/top-mv.jpg) center / cover no-repeat;
  height: 100%;
  min-height: clamp(360px, 48vw, 720px);
  overflow: hidden;
}
/* CMSスライダー（Swiper）を #slideshow の高さいっぱいに広げる（CMS側は高さ auto のため外枠に合わせる） */
/* ※CMS側は #slider_xxx（ID）で height を指定してくるため、ID2つで詳細度を上げて上書きする */
#slideshow #cms-slider-1-1-area,
#slideshow #cms-slider-1-1-area .slider_wrapper,
#slideshow #cms-slider-1-1-area .main_slider__outer,
#slideshow #cms-slider-1-1-area .main_slider,
#slideshow #cms-slider-1-1-area .swiper-wrapper { position: absolute; inset: 0; height: 100%; }
#slideshow #cms-slider-1-1-area .swiper-slide { height: 100%; }
#slideshow .main_slider__inner { position: relative; width: 100%; height: 100%; }
#slideshow .main_slider__inner img { display: block; width: 100%; height: 100%; object-fit: cover; }
/* CMS側のキャッチ用の空枠は使わない */
#slideshow .main_catch__outer { display: none; }
.slinky-mv__label {
  position: absolute;
  left: 0;
  bottom: 0;
  display: flex;
  flex-direction: column;
  padding: 18px 26px;
  background: #1A1A1A;
  color: #FFFFFF;
  line-height: 1.2;
  pointer-events: none;
}
.slinky-mv__label-en {
  font-family: "Archivo", sans-serif;
  font-size: clamp(20px, 2.2vw, 30px);
  font-weight: 900;
  letter-spacing: .06em;
}
.slinky-mv__label-sub {
  margin-top: 6px;
  font-family: "Archivo", sans-serif;
  font-size: 1.1rem;
  font-weight: 600;
  letter-spacing: .24em;
  color: #1DBF9A;
}
/* 897〜1180px：写真ラベル・ボタンが折り返さないよう詰める */
@media (min-width: 897px) and (max-width: 1180px) {
  .slinky-mv__label { padding: 14px 18px; }
  .slinky-mv__label-en { font-size: 1.8vw; }
  .slinky-mv__label-sub { letter-spacing: .1em; }
  .slinky-mv__btns .slinky-btn { padding: 0 20px; font-size: 1.4rem; }
}
.slinky-mv__label-en,
.slinky-mv__label-sub { white-space: nowrap; }
@media (min-width: 640px) { .slinky-mv__btns .slinky-btn { white-space: nowrap; } }
@media (max-width: 896px) {
  .slinky-mv { grid-template-columns: minmax(0, 1fr); }
  .slinky-mv__visual { order: -1; } /* 縦積み時は写真が上・キャッチが下 */
  .slinky-mv__body { padding: clamp(48px, 7vw, 80px) 24px; }
  .slinky-mv__title { font-size: clamp(32px, 5.6vw, 52px); }
  #slideshow { min-height: clamp(360px, 56vw, 560px); }
}
/* 幅の狭いスマホ（374px以下）：ロゴとMENUボタンを少し詰めてInstagramアイコンと重ならないようにする */
@media (max-width: 374px) {
  .slinky-toggle { right: 12px; padding: 0 10px; letter-spacing: .1em; }
  .slinky-header__right { margin-right: 86px; }
  .header__logo.slinky-logo { gap: 8px; }
  .header__logo.slinky-logo .slinky-logo__img { height: 46px; }
  .slinky-logo .slinky-logo__name { font-size: 2rem; }
}
/* スマホだけ／PC・タブレットだけで効かせる改行 */
.slinky-br-sp { display: none; }
@media (max-width: 639px) { .slinky-br-pc { display: none; } }
@media (max-width: 639px) {
  .slinky-br-sp { display: inline; }
  /* 「安心と信頼の施工技術。」（11字）が1行に収まり、見出しが3行になるサイズ */
  .slinky-mv__title { font-size: clamp(22px, 7.8vw, 32px); }
  .slinky-mv__text { font-size: 1.45rem; }
}

@media (max-width: 639px) {
  .slinky-heading .heading__en { font-size: clamp(32px, 11vw, 44px); }
  /* 写真ラベルが画面幅からはみ出さないサイズ */
  .slinky-mv__label { max-width: calc(100% - 16px); padding: 12px 16px; }
  .slinky-mv__label-en { font-size: min(1.8rem, 5vw); letter-spacing: .04em; }
  .slinky-mv__label-sub { margin-top: 4px; font-size: min(1rem, 2.6vw); letter-spacing: .06em; }
}

/* ==========================================================================
   TOP：選ばれる理由
   ========================================================================== */
.slinky-reasons { gap: 24px; }
.slinky-reasons__item {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding-top: 28px;
  border-top: 4px solid #1A1A1A;
}
.slinky-reasons__num {
  font-family: "Archivo", sans-serif;
  font-size: 6.4rem;
  font-weight: 900;
  line-height: 1;
  color: #1DBF9A;
}
.slinky-reasons__title { font-size: 2rem; font-weight: 900; line-height: 1.6; }
.slinky-reasons__text { font-size: 1.4rem; line-height: 1.8; color: #4A4D4C; }

/* ==========================================================================
   TOP：事業カード
   ========================================================================== */
.slinky-svc { gap: 20px; }
.slinky-svc__item {
  display: flex;
  flex-direction: column;
  background: #242424;
  border-top: 4px solid #1DBF9A; /* 3事業とも写真上はサブカラー */
}
.slinky-svc__img { position: relative; aspect-ratio: 4 / 3; overflow: hidden; }
.slinky-svc__body { flex: 1; display: flex; flex-direction: column; gap: 12px; padding: 28px; }
.slinky-svc__head { display: flex; justify-content: space-between; align-items: center; }
.slinky-svc__num {
  font-family: "Archivo", sans-serif;
  font-size: 4rem;
  font-weight: 900;
  line-height: 1;
  color: #1DBF9A;
}
.slinky-svc__title { font-size: 2.1rem; font-weight: 900; line-height: 1.8; }
.slinky-svc__text { font-size: 1.4rem; line-height: 1.8; color: #C4C8C6; }
.slinky-svc__more {
  display: flex;
  justify-content: space-between;
  margin-top: auto;
  padding-top: 12px;
  border-top: 1px solid #3A3A3A;
  color: #FFFFFF;
  font-size: 1.4rem;
  font-weight: 700;
}
.slinky-svc__more:hover { color: #1DBF9A; }

/* ==========================================================================
   TOP：特徴（罫線グリッド）
   ========================================================================== */
.slinky-points {
  gap: 2px;
  background: #E3E5E4;
  border: 2px solid #E3E5E4;
}
.slinky-points__item { display: flex; flex-direction: column; gap: 12px; padding: 32px; background: #FFFFFF; }
/* 特徴アイコン（営業ラフの指定：芽・木・手とハート・葉・握手・ショベルカー） */
.slinky-points__head { display: flex; align-items: center; gap: 14px; }
.slinky-points__icon {
  display: grid;
  place-items: center;
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  background: #EAF8F3;
  color: #0E8A6D;
  font-size: 2rem;
}
.slinky-points__label {
  font-family: "Archivo", sans-serif;
  font-size: 1.3rem;
  font-weight: 800;
  letter-spacing: .14em;
  color: #0E8A6D;
}
.slinky-points__title { font-size: 1.9rem; font-weight: 900; line-height: 1.8; }
.slinky-points__text { font-size: 1.4rem; line-height: 1.8; color: #4A4D4C; }

/* ==========================================================================
   TOP：保証
   ========================================================================== */
.slinky-term { display: flex; align-items: stretch; border: 2px solid #1A1A1A; }
.slinky-term__head {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 6px;
  padding: 18px 22px;
  background: #1A1A1A;
  color: #FFFFFF;
  line-height: 1;
}
.slinky-term__num { font-family: "Archivo", sans-serif; font-size: 4.2rem; font-weight: 900; color: #1DBF9A; }
/* 「2」大・「年間」小を1行、その下に「保証」（年間より少し大きめ）。中央寄せ */
.slinky-term__years { display: flex; align-items: baseline; gap: 2px; }
.slinky-term__unit { font-size: 1.2rem; font-weight: 700; }
.slinky-term__label { font-size: 1.9rem; font-weight: 900; letter-spacing: .24em; margin-right: -.24em; }
.slinky-term__list {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 18px 22px;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.8;
}
.slinky-docs { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.slinky-docs__item { display: flex; flex-direction: column; gap: 8px; }
.slinky-docs__img { position: relative; aspect-ratio: 1 / 1.414; border: 1px solid #E3E5E4; }
.slinky-docs__cap {
  font-family: "Archivo", sans-serif;
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: .18em;
  color: #5C5F5E;
}

/* ==========================================================================
   施工事例カード（TOP）
   ========================================================================== */
.slinky-cases { gap: 24px; }
.slinky-case {
  display: flex;
  flex-direction: column;
  background: #FFFFFF;
  color: #1A1A1A;
  transition: box-shadow .3s ease;
}
.slinky-case:hover { box-shadow: 0 0 0 2px #1A1A1A; color: #1A1A1A; }
.slinky-case__img { position: relative; aspect-ratio: 16 / 10; overflow: hidden; }
.slinky-case__img .slinky-img { transition: transform .5s ease; }
.slinky-case:hover .slinky-case__img .slinky-img { transform: scale(1.03); }
.slinky-case__tag,
.slinky-work__tag {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  padding: 6px 14px;
  background: #1A1A1A;
  color: #FFFFFF;
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1.8;
}
.slinky-case__tag--green,
.slinky-work__tag--green { background: #1DBF9A; color: #1A1A1A; }
.slinky-case__body { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 24px; }
.slinky-case__txt { display: flex; flex-direction: column; gap: 4px; }
.slinky-case__label,
.slinky-work__label {
  font-family: "Archivo", sans-serif;
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: .18em;
  color: #0E8A6D;
}
.slinky-case__title { font-size: 1.8rem; font-weight: 900; line-height: 1.6; }
.slinky-case__arrow {
  flex-shrink: 0;
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  background: #1A1A1A;
  color: #FFFFFF;
  font-family: "Archivo", sans-serif;
}

/* ==========================================================================
   TOP：特別価格・施工料金（2枚カード＋中央ボタン）
   ========================================================================== */
.slinky-price {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr));
  gap: 24px;
}
.slinky-price__item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
  padding: clamp(24px, 3.2vw, 36px);
  background: #FFFFFF;
  border: 2px solid #1A1A1A;
  border-top-width: 4px;
}
.slinky-price__item--main { border-top-color: #1DBF9A; }
.slinky-price__badge {
  padding: 4px 12px;
  background: #1A1A1A;
  color: #FFFFFF;
  font-size: clamp(12px, 1.3vw, 13px);
  font-weight: 700;
  line-height: 1.8;
  letter-spacing: .04em;
}
.slinky-price__item--main .slinky-price__badge { background: #1DBF9A; color: #1A1A1A; }
.slinky-price__title { font-size: clamp(20px, 2.4vw, 24px); font-weight: 900; line-height: 1.5; }
.slinky-price__box {
  align-self: stretch;
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: clamp(16px, 2.4vw, 22px) clamp(18px, 2.6vw, 26px);
  background: #F3F4F4;
  border-left: 4px solid #1DBF9A;
}
.slinky-price__label { font-size: 1.4rem; font-weight: 700; color: #4A4D4C; }
.slinky-price__value { font-size: clamp(16px, 1.8vw, 18px); font-weight: 900; line-height: 1.4; }
.slinky-price__value--text { font-size: clamp(20px, 2.4vw, 24px); }
.slinky-price__num {
  font-family: "Archivo", sans-serif;
  font-size: clamp(48px, 6vw, 64px);
  font-weight: 900;
  line-height: 1;
  color: #0E8A6D;
}
.slinky-price__yen { font-size: clamp(20px, 2.4vw, 24px); color: #0E8A6D; }
.slinky-price__tax { display: inline-block; white-space: nowrap; font-size: 1.4rem; font-weight: 700; color: #4A4D4C; }
.slinky-price__secret { display: flex; flex-direction: column; gap: 8px; }
.slinky-price__subtitle { font-size: 1.7rem; font-weight: 900; line-height: 1.6; }
.slinky-price__text { font-size: 1.5rem; line-height: 1.8; color: #3D403F; }
/* 本文中のマーカーは見出し用より淡い緑（文字の読みやすさ優先） */
.slinky-price__text .slinky-marker { background: linear-gradient(transparent 62%, #9AD6C5 62%); }
.slinky-price__notes {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-top: auto;
  padding-top: 16px;
  border-top: 1px solid #E3E5E4;
  font-size: 1.3rem;
  line-height: 1.8;
  color: #4A4D4C;
}
.slinky-price__notes li { padding-left: 1em; text-indent: -1em; }
.slinky-price__action { display: flex; justify-content: center; margin-top: clamp(32px, 4vw, 48px); }
@media (max-width: 639px) {
  .slinky-price__action .slinky-btn { width: 100%; }
}

/* ==========================================================================
   TOP：採用・Instagram
   ========================================================================== */
.slinky-recruit {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr));
  align-items: stretch;
  background: #1A1A1A;
  color: #FFFFFF;
  transition: box-shadow .3s ease;
}
.slinky-recruit:hover { outline-color: #1DBF9A; color: #FFFFFF; }
.slinky-recruit__body { display: flex; flex-direction: column; gap: 16px; padding: clamp(32px, 5vw, 56px); }
.slinky-recruit__en {
  font-family: "Archivo", sans-serif;
  font-size: clamp(36px, 5vw, 60px);
  font-weight: 900;
  line-height: 1;
}
.slinky-recruit__title { display: flex; align-items: center; gap: 12px; font-size: 2.2rem; font-weight: 900; line-height: 1.8; }
.slinky-recruit__badge { padding: 4px 10px; background: #1DBF9A; color: #1A1A1A; font-size: 1.3rem; line-height: 1.8; }
.slinky-recruit__text { font-size: 1.4rem; line-height: 1.8; color: #C4C8C6; }
.slinky-recruit__btn {
  align-self: flex-start;
  display: flex;
  align-items: center;
  gap: 12px;
  height: 48px;
  margin-top: 8px;
  padding: 0 22px;
  background: #FFFFFF;
  color: #1A1A1A;
  font-size: 1.4rem;
  font-weight: 700;
}
.slinky-recruit__img { position: relative; min-height: 240px; background: #2A2A2A; }
.slinky-insta { margin-top: 96px; }
.slinky-insta__lead { font-size: 1.4rem; line-height: 1.8; color: #4A4D4C; }
.slinky-insta__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
  gap: 12px;
}
.slinky-insta__item { position: relative; display: block; aspect-ratio: 1 / 1; overflow: hidden; }
/* 投稿へのリンク：ホバーで写真をゆっくり拡大 */
.slinky-insta__item .slinky-img { transition: transform .6s cubic-bezier(.22, .61, .36, 1), opacity .4s cubic-bezier(.22, .61, .36, 1); }
a.slinky-insta__item:hover .slinky-img { transform: scale(1.05); opacity: .85; }

/* ==========================================================================
   お知らせ（TOP・一覧共通）
   ========================================================================== */
.slinky-news { border-top: 1px solid #E3E5E4; }
.slinky-news__inner { display: flex; flex-wrap: wrap; gap: 40px; }
.slinky-news__head { flex: 1 1 260px; display: flex; flex-direction: column; }
.slinky-news__more { align-self: flex-end; margin-top: 24px; padding-bottom: 4px; }
.slinky-news__body { flex: 3 1 520px; min-width: 0; display: flex; flex-direction: column; }
.slinky-news__body .slinky-newsarea { align-self: stretch; }
.slinky-newslist { border-top: 1px solid #1A1A1A; }
.slinky-newslist .news-list__item { border-bottom: 1px solid #E3E5E4; }
.slinky-newslist .news-list__link {
  gap: 8px 24px;
  padding: 24px 0;
  color: #1A1A1A;
  line-height: 1.8;
}
.slinky-newslist .news-list__link:hover { background: none; color: #0E8A6D; }
.slinky-newslist .news-list__date {
  font-size: 1.4rem;
  font-weight: 700;
  color: #5C5F5E;
}
.slinky-newslist .news-list__cat {
  min-width: 0;
  padding: 2px 10px;
  border: 1px solid #1A1A1A;
  border-radius: 0;
  background: transparent;
  color: #1A1A1A;
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1.8;
}
.slinky-newslist .news-list__title { min-width: 240px; font-size: 1.6rem; font-weight: 700; }
/* 一覧ページ版 */
.slinky-newsarea--page .slinky-newslist { border-top-width: 2px; }
.slinky-newsarea--page .slinky-newslist .news-list__link { padding: 28px 8px; }
.slinky-newsarea--page .slinky-newslist .news-list__link:hover { background: #F4F5F4; color: #1A1A1A; }
.slinky-newsarea--page .slinky-newslist .news-list__date { min-width: 90px; }
.slinky-newsarea--page .slinky-newslist .news-list__title { flex: 1 1 300px; }
.slinky-newsarea--page .slinky-newslist .news-list__link::after { content: "→"; font-family: "Archivo", sans-serif; }

/* ==========================================================================
   お問い合わせCTA
   ========================================================================== */
.slinky-cta { padding: clamp(64px, 8vw, 96px) 0; color: #1A1A1A; }
@media (max-width: 1100px) { .slinky-cta { padding: clamp(64px, 8vw, 96px) 0; } }
@media (max-width: 639px) { .slinky-cta { padding: clamp(64px, 8vw, 96px) 0; } }
.slinky-cta::before { background: #1DBF9A; }
/* 下端の草むらシルエット装飾（イラストAC No.27907950 をつなぎ目なしに加工） */
.slinky-cta::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 0;
  height: 64px;
  background: url(https://ros-cdn.s3.ap-northeast-1.amazonaws.com/hp/img/ros_keiyaku/28693/deco-grass.png) repeat-x left bottom / auto 64px;
  opacity: .14;
  pointer-events: none;
}
@media (max-width: 639px) { .slinky-cta::after { height: 40px; background-size: auto 40px; } }
.slinky-cta.footer-cta--2col-stack .footer-cta__inner {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr));
  gap: 40px;
  text-align: left;
}
@media (max-width: 639px) {
  .slinky-cta.footer-cta--2col-stack .footer-cta__inner { flex-direction: row; padding: 0 24px; text-align: left; }
}
.slinky-cta .footer-cta__left { display: flex; flex-direction: column; gap: 14px; color: #1A1A1A; }
.slinky-cta__en {
  font-size: clamp(48px, 7vw, 88px);
  font-weight: 900;
  line-height: .95;
  letter-spacing: .02em;
}
.slinky-cta.footer-cta--2col-stack .slinky-cta__ja {
  margin: 0;
  color: #1A1A1A;
  font-size: clamp(22px, 2.6vw, 30px);
  font-weight: 900;
  line-height: 1.4;
  letter-spacing: .04em;
  text-align: left;
}
.slinky-cta.footer-cta--2col-stack .slinky-cta__desc { color: #1A1A1A; font-size: 1.5rem; font-weight: 500; line-height: 1.9; }
.slinky-cta.footer-cta--2col-stack .slinky-cta__right {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
  gap: 12px;
  align-items: stretch;
}
.slinky-cta__box {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 22px 24px;
  background: #1A1A1A;
  color: #FFFFFF;
}
a.slinky-cta__box:hover { color: #1DBF9A; }
.slinky-cta__box-label {
  font-family: "Archivo", sans-serif;
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: .2em;
  color: #1DBF9A;
}
.slinky-cta__box-num {
  font-family: "Archivo", sans-serif;
  font-size: 2.6rem;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: .02em;
}
.slinky-cta__box-note { font-size: 1.2rem; color: #C9CCCB; line-height: 1.8; }
.slinky-cta .slinky-cta__mail {
  grid-column: 1 / -1;
  justify-content: space-between;
  max-width: none;
  padding: 22px 24px;
  border-radius: 0;
  background: #FFFFFF;
  color: #1A1A1A;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 1.7rem;
  font-weight: 900;
  letter-spacing: .04em;
}
.slinky-cta .slinky-cta__mail::before { display: none; }
.slinky-cta .slinky-cta__mail span { font-size: 2.2rem; }
.slinky-cta .slinky-cta__mail:hover { background: #1A1A1A; color: #FFFFFF; }

/* ==========================================================================
   Footer
   ========================================================================== */
.slinky-footer { background: #1A1A1A; color: #FFFFFF; }
.slinky-footer__body.footer-body--dark { padding: 72px 0 40px; background: #1A1A1A; }
.slinky-footer__inner.footer-body__inner {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr));
  gap: 48px;
}
.slinky-footer__left,
.slinky-footer__right { width: auto; }
.slinky-footer__left { display: flex; flex-direction: column; gap: 24px; }
.slinky-footer__left .footer-body__logo { margin: 0; }
.footer-body--dark .slinky-footer__info {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 0;
  color: #D2D5D3;
  font-size: 1.4rem;
  line-height: 1.8;
}
.slinky-footer__company { color: #FFFFFF; font-weight: 700; }
.slinky-footer__btns { flex-wrap: wrap; gap: 10px; margin: 0; }
.slinky-footer__tel,
.slinky-footer__contact {
  display: flex;
  align-items: center;
  height: 50px;
}
.slinky-footer__tel {
  padding: 0 20px;
  border: 1px solid #FFFFFF;
  color: #FFFFFF;
  font-family: "Archivo", sans-serif;
  font-size: 1.7rem;
  font-weight: 800;
  letter-spacing: .03em;
}
.slinky-footer__tel:hover { background: #FFFFFF; color: #1A1A1A; }
.slinky-footer__contact {
  gap: 4px;
  padding: 0 22px;
  background: #1DBF9A;
  color: #1A1A1A;
  font-size: 1.4rem;
  font-weight: 700;
}
.slinky-footer__contact:hover { background: #FFFFFF; color: #1A1A1A; }
.slinky-footer__right { position: relative; min-height: 300px; background: #2A2A2A; }
.slinky-footer__map.footer-body__map {
  position: absolute;
  inset: 0;
  height: 100%;
  margin: 0;
  border-radius: 0;
}
.slinky-footer__map iframe { filter: grayscale(1) contrast(1.05); }
.slinky-footer__bottom.footer-bottom--dark { padding: 0; background: #1A1A1A; text-align: left; }
.slinky-footer__bottom-inner {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding-top: 24px;
  padding-bottom: 24px;
  border-top: 1px solid #333333;
}
.slinky-footer__nav.footer-body__nav { gap: 8px 24px; flex-direction: row; }
.slinky-footer__nav .footer-body__nav-item a { color: #D2D5D3; font-size: 1.3rem; }
.slinky-footer__nav .footer-body__nav-item a:hover { color: #1DBF9A; }
.footer-bottom--dark .slinky-footer__copy {
  color: #8A8E8C;
  font-size: 1.1rem;
  letter-spacing: .12em;
}

/* ==========================================================================
   下層共通
   ========================================================================== */
.slinky-narrow { max-width: 1048px; }
.slinky-mb-24 { margin-bottom: 24px; }
.slinky-note { margin-top: 16px; font-size: 1.3rem; color: #5C5F5E; }
.slinky-ratio { position: relative; overflow: hidden; }
.slinky-ratio--4-3 { aspect-ratio: 4 / 3; }
.slinky-ratio--3-2 { aspect-ratio: 3 / 2; }
.slinky-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* ==========================================================================
   事業内容
   ========================================================================== */
.slinky-intro { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 40px 64px; }
.slinky-intro__title {
  flex: 1 1 320px;
  font-size: clamp(26px, 3.4vw, 40px);
  font-weight: 900;
  line-height: 1.5;
  text-wrap: balance;
}
.slinky-intro__body { flex: 1.4 1 420px; display: flex; flex-direction: column; gap: 24px; }
.slinky-intro__text { line-height: 2.1; }
.slinky-anchors { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr)); gap: 8px; }
.slinky-anchor {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 18px;
  background: #1A1A1A;
  color: #FFFFFF;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.8;
}
.slinky-anchor:hover { background: #1DBF9A; color: #1A1A1A; }
.slinky-anchor__num { margin-right: 8px; font-family: "Archivo", sans-serif; color: #1DBF9A; }
.slinky-anchor:hover .slinky-anchor__num { color: #1A1A1A; }

.slinky-biz { display: flex; flex-direction: column; gap: 18px; }
.slinky-biz__more { align-self: flex-end; margin-top: 8px; }
.slinky-biz > .slinky-btn { align-self: flex-start; }
.slinky-biz__num {
  display: flex;
  align-items: center;
  gap: 16px;
  font-family: "Archivo", sans-serif;
  font-size: 7.2rem;
  font-weight: 900;
  line-height: 1;
  color: #1DBF9A;
}
.slinky-biz__en { font-size: 1.2rem; font-weight: 800; letter-spacing: .2em; color: #5C5F5E; }
.slinky-biz__name { font-size: 1.5rem; font-weight: 700; color: #0E8A6D; }
.slinky-biz__title { font-size: clamp(24px, 3vw, 34px); font-weight: 900; line-height: 1.5; }
.slinky-biz__img { position: relative; aspect-ratio: 3 / 2; overflow: hidden; }

.slinky-boxes { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr)); gap: 20px; }
.slinky-box { display: flex; flex-direction: column; gap: 16px; padding: 32px; background: #FFFFFF; }
.slinky-box--gray { background: #F4F5F4; }
.slinky-box--dark { background: #1A1A1A; color: #FFFFFF; }
.slinky-box__title { font-size: 1.7rem; font-weight: 900; line-height: 1.8; }
.slinky-box__list { display: flex; flex-direction: column; font-size: 1.4rem; line-height: 1.8; }
.slinky-box__list li { padding: 10px 0; border-bottom: 1px solid #E3E5E4; }
.slinky-box--gray .slinky-box__list li { border-bottom-color: #DDE0DE; }
.slinky-box--dark .slinky-box__list li { border-bottom-color: #3A3A3A; color: #D2D5D3; }
.slinky-box__list li:last-child { border-bottom: 0; }
.slinky-box__list strong { display: block; margin-bottom: 2px; font-size: 1.5rem; font-weight: 900; }
.slinky-box--dark .slinky-box__list strong { color: #1DBF9A; }

/* 流れ（罫線グリッド） */
/* 6ステップを3列×2行（PC）→2列（タブレット）→1列（スマホ）。1枚の幅を確保して細かい改行を防ぐ */
.slinky-flow {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2px;
  background: #1A1A1A;
  border: 2px solid #1A1A1A;
}
.slinky-flow__item { display: flex; flex-direction: column; gap: 14px; padding: 32px 28px; background: #FFFFFF; }
@media (max-width: 896px) { .slinky-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 639px) { .slinky-flow { grid-template-columns: minmax(0, 1fr); } }
.slinky-flow__item--dark { background: #1A1A1A; color: #FFFFFF; }
.slinky-flow__num {
  font-family: "Archivo", sans-serif;
  font-size: 3.6rem;
  font-weight: 900;
  line-height: 1;
  color: #1DBF9A;
}
.slinky-flow__step { margin-right: 6px; font-size: 1.2rem; font-weight: 800; letter-spacing: .14em; }
.slinky-flow__title { font-size: 1.6rem; font-weight: 900; line-height: 1.6; }
/* 「無料」は見出しの後ろに並べ、入りきらないときだけ次の行へ */
.slinky-flow__badge { display: inline-block; margin-left: 10px; padding: 2px 10px; background: #1DBF9A; font-size: 1.2rem; font-weight: 700; line-height: 1.8; vertical-align: 2px; white-space: nowrap; }
.slinky-flow__text { font-size: 1.4rem; line-height: 1.8; color: #4A4D4C; }
.slinky-flow__item--dark .slinky-flow__text { color: #C4C8C6; }

/* ==========================================================================
   草なしくん
   ========================================================================== */
.slinky-kn-badge { align-self: flex-start; padding: 6px 14px; font-size: 1.3rem; }
.slinky-kn-lead__title { font-size: clamp(30px, 4.2vw, 52px); font-weight: 900; line-height: 1.35; text-wrap: balance; }
.slinky-kn-lead__text { font-size: 1.7rem; font-weight: 500; line-height: 2; }

.slinky-problem { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 32px 64px; }
.slinky-problem__head { flex: 1 1 360px; }
.slinky-problem__text { flex: 1.3 1 420px; }
.slinky-issues { gap: 16px; }
.slinky-issues__item { display: flex; flex-direction: column; gap: 10px; padding: 28px; border: 1px solid #3A3A3A; }
.slinky-issues__img { position: relative; aspect-ratio: 16 / 9; margin: -28px -28px 8px; overflow: hidden; background: #FFFFFF; }
.slinky-issues__img .slinky-img { inset: 16px; width: calc(100% - 32px); height: calc(100% - 32px); }
.slinky-issues__label {
  font-family: "Archivo", sans-serif;
  font-size: 1.2rem;
  font-weight: 800;
  letter-spacing: .18em;
  color: #1DBF9A;
}
.slinky-issues__title { font-size: 1.8rem; font-weight: 900; line-height: 1.8; }

.slinky-kn-catch { font-size: clamp(22px, 2.6vw, 28px); font-weight: 900; line-height: 1.6; }
.slinky-notes { display: flex; flex-direction: column; gap: 12px; }
.slinky-notes__item { padding: 16px 20px; border-left: 4px solid #1DBF9A; background: #F4F5F4; }
.slinky-notes__item dt { font-size: 1.5rem; font-weight: 900; line-height: 1.6; }
.slinky-notes__item dd { margin-top: 4px; font-size: 1.4rem; line-height: 1.8; color: #3D403F; }

.slinky-diagram { display: flex; flex-direction: column; border: 2px solid #1A1A1A; }
.slinky-diagram__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px 20px;
  border-bottom: 2px solid #1A1A1A;
  font-size: 1.2rem;
  font-weight: 700;
}
.slinky-diagram__en { font-family: "Archivo", sans-serif; font-weight: 800; letter-spacing: .18em; }
.slinky-diagram__air {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  min-height: 84px;
  padding: 22px 20px;
  border-bottom: 1px dashed #8A8E8C;
}
.slinky-diagram__air-label { font-size: 1.3rem; font-weight: 700; color: #5C5F5E; }
.slinky-diagram__seed { width: 8px; height: 8px; margin-left: 12px; background: #1A1A1A; transform: rotate(45deg); }
.slinky-diagram__seed:nth-of-type(3) { margin-left: 24px; margin-bottom: 18px; }
.slinky-diagram__seed:nth-of-type(4) { margin-left: 20px; margin-bottom: 6px; }
.slinky-diagram__layer {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding: 22px 20px;
  color: #1A1A1A;
}
.slinky-diagram__layer--top { background: #1DBF9A; }
.slinky-diagram__layer--bottom { padding: 30px 20px; background: #C9B99A; }
.slinky-diagram__txt { flex: 1 1 240px; display: flex; flex-direction: column; font-size: 1.3rem; font-weight: 500; line-height: 1.8; }
.slinky-diagram__name { font-size: 1.7rem; font-weight: 900; }
.slinky-diagram__depth { font-family: "Archivo", sans-serif; font-size: 2.8rem; font-weight: 900; }

.slinky-feat { display: flex; flex-direction: column; gap: 2px; background: #E3E5E4; }
.slinky-feat__item {
  display: flex;
  flex-wrap: wrap;
  align-items: center; /* 数字は本文に対して上下中央 */
  gap: 12px 32px;
  padding: 28px clamp(20px, 4vw, 40px);
  background: #FFFFFF;
}
.slinky-feat__num {
  min-width: 64px;
  font-family: "Archivo", sans-serif;
  font-size: 4.4rem;
  font-weight: 900;
  line-height: 1;
  color: #1DBF9A;
}
.slinky-feat__body { flex: 1 1 240px; display: flex; flex-direction: column; gap: 6px; }
.slinky-feat__title { font-size: 1.9rem; font-weight: 900; line-height: 1.8; }
.slinky-feat__note:not(:empty) { margin-left: 12px; font-size: 1.3rem; font-weight: 500; color: #5C5F5E; }
.slinky-feat__text { font-size: 1.4rem; line-height: 1.8; color: #4A4D4C; }

/* 比較表（table-basic の見た目差分） */
.slinky-compare { min-width: 820px; font-size: 1.4rem; line-height: 1.7; }
.slinky-compare th,
.slinky-compare td { padding: 16px; border: 0; border-bottom: 1px solid #E3E5E4; vertical-align: top; }
.slinky-compare thead th {
  border-bottom: 2px solid #1A1A1A;
  border-left: 1px solid #3A3A3A;
  background: #1A1A1A;
  color: #FFFFFF;
  font-weight: 700;
}
.slinky-compare thead .slinky-compare__corner { width: 14%; border-left: 0; background: #F4F5F4; }
.slinky-compare thead .slinky-compare__main { border-left: 0; background: #1DBF9A; color: #1A1A1A; font-weight: 900; }
.slinky-compare tbody th { background: #F4F5F4; }
/* 記号・見出しは中央寄せ、最下段の説明文だけ左寄せ（複数行の中央寄せは読みにくいため） */
.slinky-compare th,
.slinky-compare td { text-align: center; vertical-align: middle; }
.slinky-compare .slinky-compare__desc td { text-align: left; vertical-align: top; }
.slinky-compare tbody .slinky-compare__main { background: #EAF8F3; border-bottom-color: #D0EEE4; font-weight: 700; }

.slinky-places { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: 16px; }
.slinky-places__item {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 22px 24px;
  background: #FFFFFF;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.8;
}
/* 施工場所アイコン（Font Awesome 6） */
.slinky-places__icon {
  display: grid;
  place-items: center;
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  background: #1A1A1A;
  color: #1DBF9A;
  font-size: 2rem;
}

.slinky-steps { gap: 24px; }
.slinky-steps__item { display: flex; flex-direction: column; gap: 14px; }
.slinky-steps__txt { display: flex; align-items: baseline; gap: 14px; font-weight: 700; line-height: 1.8; }
.slinky-steps__num { font-family: "Archivo", sans-serif; font-size: 2.8rem; font-weight: 900; color: #1DBF9A; }

.slinky-after { display: flex; flex-wrap: wrap; align-items: center; gap: 24px; }
/* TOPのWARRANTYと同じ組み：「2」大・「年間」小の1行＋「保証」、中央寄せ */
.slinky-after__term { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 20px 26px; background: #1DBF9A; color: #1A1A1A; line-height: 1; }
.slinky-after__years { display: flex; align-items: baseline; gap: 2px; }
.slinky-after__num { font-family: "Archivo", sans-serif; font-size: 4.8rem; font-weight: 900; }
.slinky-after__unit { font-size: 1.3rem; font-weight: 900; }
.slinky-after__label { margin-right: -.24em; font-size: 2.1rem; font-weight: 900; letter-spacing: .24em; }
.slinky-after__text { flex: 1 1 220px; }
.slinky-results { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 12px; }
.slinky-results__item { display: flex; flex-direction: column; gap: 10px; font-weight: 700; }

.slinky-comp { font-size: 1.5rem; border-top: 2px solid #1A1A1A; }
.slinky-comp th,
.slinky-comp td { padding: 16px 20px; border: 0; border-bottom: 1px solid #E3E5E4; text-align: center; vertical-align: middle; }
.slinky-comp th { background: #F4F5F4; }

/* ==========================================================================
   施工事例
   ========================================================================== */
.slinky-works { padding: clamp(56px, 7vw, 88px) 0 clamp(80px, 10vw, 128px); }
@media (max-width: 896px) { .slinky-works { padding: clamp(56px, 7vw, 88px) 0 clamp(80px, 10vw, 128px); } }
/* カテゴリへのジャンプ：3つを横幅いっぱいに均等配置（スマホは縦積み） */
.slinky-worknav {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
  gap: 12px;
  margin-bottom: 64px;
}
.slinky-worknav__link {
  display: flex;
  align-items: center;
  gap: 16px;
  min-height: 88px;
  padding: 16px 24px;
  border: 2px solid #1A1A1A;
  background: #FFFFFF;
  color: #1A1A1A;
}
.slinky-worknav__link:hover { background: #1A1A1A; color: #FFFFFF; }
.slinky-worknav__label { display: flex; flex-direction: column; gap: 6px; margin-right: auto; line-height: 1.2; }
.slinky-worknav__en { font-family: "Archivo", sans-serif; font-size: 1.1rem; font-weight: 800; letter-spacing: .18em; color: #0E8A6D; transition: color .4s cubic-bezier(.22, .61, .36, 1); }
.slinky-worknav__link:hover .slinky-worknav__en { color: #1DBF9A; }
.slinky-worknav__ja { font-size: 1.9rem; font-weight: 900; letter-spacing: .04em; }
.slinky-worknav__count { font-family: "Archivo", sans-serif; font-size: 2.4rem; font-weight: 900; line-height: 1; }
.slinky-worknav__count small { margin-left: 2px; font-family: "Zen Kaku Gothic New", sans-serif; font-size: 1.2rem; font-weight: 700; }
.slinky-worknav__arrow { display: grid; place-items: center; width: 32px; height: 32px; background: #1DBF9A; color: #1A1A1A; font-size: 1.2rem; transition: transform .4s cubic-bezier(.22, .61, .36, 1); }
.slinky-worknav__link:hover .slinky-worknav__arrow { transform: translateY(3px); }
@media (max-width: 639px) {
  .slinky-worknav { gap: 8px; margin-bottom: 48px; }
  .slinky-worknav__link { min-height: 68px; padding: 12px 18px; }
  .slinky-worknav__ja { font-size: 1.7rem; }
}
.slinky-workgroup { display: flex; flex-direction: column; gap: 28px; margin-bottom: 48px; }
.slinky-workgroup__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 20px; }
.slinky-workgroup__en { font-family: "Archivo", sans-serif; font-size: clamp(36px, 5vw, 56px); font-weight: 900; line-height: 1; }
.slinky-workgroup__ja { gap: 10px; font-size: 2rem; font-weight: 900; line-height: 1.4; }
.slinky-worklist { gap: 24px; }
.slinky-work { display: flex; flex-direction: column; border: 1px solid #E3E5E4; background: #FFFFFF; }
.slinky-work__img { position: relative; aspect-ratio: 16 / 10; overflow: hidden; }
/* 写真のある事例はクリックで拡大（Lightbox） */
.slinky-work__zoom { position: absolute; inset: 0; display: block; cursor: zoom-in; }
.slinky-work__zoom .slinky-img { transition: transform .6s cubic-bezier(.22, .61, .36, 1); }
.slinky-work__zoom:hover .slinky-img { transform: scale(1.04); }
.slinky-work__tag { pointer-events: none; }
.slinky-work__body {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 22px 24px 26px;
  border-top: 3px solid #1A1A1A;
}
.slinky-work__title { font-size: 1.8rem; font-weight: 900; line-height: 1.5; }
/* ビフォーアフターの2枚並び（草なしくん） */
.slinky-work__img--ba { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; background: #FFFFFF; }
.slinky-work__ba { position: relative; overflow: hidden; }
.slinky-work__balabel {
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: 1;
  padding: 2px 10px;
  background: rgba(26, 26, 26, .8);
  color: #FFFFFF;
  font-family: "Archivo", sans-serif;
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: .14em;
  line-height: 1.8;
  pointer-events: none;
}
.slinky-work__balabel--after { background: #0E8A6D; }
/* 公共・民間の小見出し */
.slinky-worksub { display: flex; align-items: baseline; gap: 12px; padding-bottom: 12px; border-bottom: 1px solid #1A1A1A; line-height: 1.2; }
.slinky-worksub:not(:first-of-type) { margin-top: 24px; }
.slinky-worksub__en { font-family: "Archivo", sans-serif; font-size: 1.2rem; font-weight: 800; letter-spacing: .18em; color: #0E8A6D; }
.slinky-worksub__ja { font-size: clamp(18px, 2vw, 22px); font-weight: 900; letter-spacing: .04em; }
.slinky-worksub__count { margin-left: auto; font-size: 1.3rem; font-weight: 700; color: #4A4D4C; }
.slinky-work__text { font-size: 1.4rem; line-height: 1.8; color: #4A4D4C; }
.slinky-igbnr {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding: 32px clamp(24px, 4vw, 48px);
  background: #1A1A1A;
  color: #FFFFFF;
  transition: box-shadow .3s ease;
}
.slinky-igbnr:hover { outline-color: #1DBF9A; color: #FFFFFF; } /* 枠線は内側に出して外へ広がらないようにする */
.slinky-igbnr__txt { display: flex; flex-direction: column; gap: 6px; }
.slinky-igbnr__en { font-family: "Archivo", sans-serif; font-size: 2.8rem; font-weight: 900; letter-spacing: .02em; line-height: 1.2; }
.slinky-igbnr__note { font-size: 1.4rem; color: #C4C8C6; }
.slinky-igbnr__link { font-family: "Archivo", sans-serif; font-size: 1.6rem; font-weight: 800; color: #1DBF9A; }

/* ==========================================================================
   会社概要
   ========================================================================== */
.slinky-message {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 400px), 1fr));
  gap: 56px;
  align-items: start;
}
.slinky-message__photo { position: relative; aspect-ratio: 4 / 3; width: 100%; max-width: 560px; }
.slinky-message__photo::after {
  content: "";
  position: absolute;
  right: -12px;
  bottom: -12px;
  width: 40%;
  height: 40%;
  border-right: 4px solid #1DBF9A;
  border-bottom: 4px solid #1DBF9A;
  pointer-events: none;
}
.slinky-message__title { font-size: clamp(19px, 5.6vw, 30px); font-weight: 900; line-height: 1.5; letter-spacing: .02em; color: #0E8A6D; text-align: center; }
/* PC：2カラムの本文幅に収まる範囲で大きく */
@media (min-width: 897px) { .slinky-message__title { font-size: clamp(30px, 2.7vw, 38px); } }
.slinky-message__text p { font-size: 1.5rem; line-height: 2.1; color: #3D403F; }
.slinky-message__text p + p { margin-top: 24px; }
@media (max-width: 639px) {
  .slinky-message__text p { font-size: 1.45rem; line-height: 1.95; }
  .slinky-message__text p + p { margin-top: 16px; }
}
.slinky-message__sign {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  padding-top: 12px;
  border-top: 1px solid #E3E5E4;
}
.slinky-message__role { font-size: 1.3rem; color: #5C5F5E; }
.slinky-message__name { font-size: 2.4rem; font-weight: 900; letter-spacing: .2em; }

/* 会社概要表（table-basic の見た目差分） */
.slinky-profile { border-top: 3px solid #1A1A1A; background: #FFFFFF; font-size: 1.5rem; line-height: 1.8; }
.slinky-profile th,
.slinky-profile td { padding: 20px 24px; border: 0; border-bottom: 1px solid #E3E5E4; vertical-align: top; }
.slinky-profile th { width: 200px; background: #FAFAFA; font-weight: 700; }
.slinky-profile tr:last-child th,
.slinky-profile tr:last-child td { border-bottom: 0; }
.slinky-profile__list { display: flex; flex-direction: column; gap: 4px; }
.slinky-profile__list li::before { content: "・"; }
@media (max-width: 639px) {
  .slinky-profile th { width: 100%; padding: 16px 20px 4px; border-bottom: 0; }
  .slinky-profile td { padding: 0 20px 16px; }
}

.slinky-license { gap: 28px; }
.slinky-license__box { display: flex; flex-direction: column; gap: 14px; padding: 28px; background: #1A1A1A; color: #FFFFFF; font-size: 1.4rem; }
.slinky-license__row { display: flex; flex-wrap: wrap; gap: 4px 16px; }
.slinky-license__row dt { min-width: 120px; color: #1DBF9A; font-weight: 700; }
.slinky-license__types { gap: 12px; }
.slinky-license__subttl { font-size: 1.4rem; font-weight: 700; }
.slinky-license__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 6px; }
.slinky-license__list li {
  padding: 10px 12px;
  border: 1px solid #1A1A1A;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.8;
  text-align: center;
}
.slinky-quals { border-top: 2px solid #1A1A1A; font-size: 1.5rem; }
.slinky-quals li { gap: 14px; padding: 16px 4px; border-bottom: 1px solid #E3E5E4; line-height: 1.8; }

.slinky-access { display: flex; flex-wrap: wrap; background: #FFFFFF; }
.slinky-access__info { flex: 1 1 320px; display: flex; flex-direction: column; gap: 20px; padding: 36px; font-size: 1.5rem; }
.slinky-access__row { display: flex; flex-direction: column; gap: 4px; }
.slinky-access__en {
  font-family: "Archivo", sans-serif;
  font-size: 1.1rem;
  font-weight: 800;
  letter-spacing: .18em;
  color: #0E8A6D;
}
.slinky-access__tel { font-family: "Archivo", sans-serif; font-size: 2.4rem; font-weight: 800; color: #1A1A1A; }
.slinky-access__tel:hover { color: #0E8A6D; }
.slinky-access__map { position: relative; flex: 2 1 480px; min-height: 380px; border-radius: 0; }
.slinky-access__map iframe,
.slinky-map iframe { position: absolute; inset: 0; }
.slinky-map { position: relative; height: 380px; border-radius: 0; }

/* ==========================================================================
   お問い合わせ
   ========================================================================== */
.slinky-contact-top { padding: clamp(64px, 8vw, 96px) 0 0; }
.slinky-contact-form { padding: clamp(64px, 8vw, 96px) 0; }
@media (max-width: 896px) {
  .slinky-contact-top { padding: clamp(64px, 8vw, 96px) 0 0; }
  .slinky-contact-form { padding: clamp(64px, 8vw, 96px) 0; }
}
.slinky-contact-intro { margin-bottom: 48px; font-size: 1.6rem; line-height: 2.1; }
.slinky-formhead {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-end;
  gap: 12px;
  margin-bottom: 32px;
  padding-bottom: 16px;
  border-bottom: 3px solid #1A1A1A;
}
.slinky-formhead__title { font-size: clamp(20px, 2.4vw, 26px); font-weight: 900; line-height: 1.4; }
.slinky-formhead__en { font-family: "Archivo", sans-serif; font-size: 1.3rem; font-weight: 800; letter-spacing: .18em; color: #0E8A6D; }
.slinky-formhead__note { font-size: 1.3rem; color: #5C5F5E; }
.slinky-telbox { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 12px; }
.slinky-telbox__item { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 28px; border: 2px solid #1A1A1A; color: #1A1A1A; text-align: center; }
.slinky-telbox__item--dark { background: #1A1A1A; color: #FFFFFF; }
.slinky-telbox__item--dark:hover { outline-color: #1DBF9A; color: #FFFFFF; }
.slinky-telbox__label { font-size: 1.3rem; font-weight: 700; }
.slinky-telbox__num { font-family: "Archivo", sans-serif; font-size: 3.2rem; font-weight: 800; line-height: 1.1; }
.slinky-telbox__en { margin-right: 8px; font-size: 1.4rem; color: #0E8A6D; }
.slinky-telbox__item--dark .slinky-telbox__en { color: #1DBF9A; }
.slinky-telbox__note { font-size: 1.3rem; color: #5C5F5E; }
.slinky-telbox__item--dark .slinky-telbox__note { color: #C9CCCB; }

/* フォームCMS（cdn.rs-sys.jp/css/cms/mail-form.css）をデザイン見本の見た目に上書き
   ※CMSのCSSはフォームと一緒に後から読み込まれるため、IDで詳細度を上げて上書きする */
#cms-contact-1-1-area .form-contents { padding: 0; background: none; }
#cms-contact-1-1-area .form-contents form dl {
  display: grid;
  grid-template-columns: 272px minmax(0, 1fr);
  margin: 0;
}
#cms-contact-1-1-area .form-contents form dl dt,
#cms-contact-1-1-area .form-contents form dl dd {
  float: none;
  width: auto;
  margin: 0;
  padding: 24px 0;
  border-bottom: 1px solid #E3E5E4;
  line-height: 1.6;
}
#cms-contact-1-1-area .form-contents form dl dt { display: flex; align-items: center; padding-right: 32px; }
#cms-contact-1-1-area .form-contents form dl dt:has(+ dd textarea) { align-items: flex-start; padding-top: 36px; }
#cms-contact-1-1-area .form-contents form dl dt span {
  display: flex;
  flex-direction: row-reverse;
  justify-content: flex-end;
  align-items: center;
  gap: 10px;
  font-size: 1.5rem;
  font-weight: 700;
}
/* 必須・任意バッジ（ラベルの後ろに付ける） */
#cms-contact-1-1-area .form-contents form dl dt span::before {
  top: 0;
  margin: 0;
  padding: 1px 8px;
  border-radius: 0;
  font-size: 1.1rem;
  line-height: 1.6;
}
#cms-contact-1-1-area .form-contents form dl dt span.required::before { content: "必須"; background: #1A1A1A; color: #FFFFFF; }
#cms-contact-1-1-area .form-contents form dl dt span.optional::before { content: "任意"; padding: 0 8px; border: 1px solid #8A8E8C; background: transparent; color: #5C5F5E; }
/* 入力欄 */
#cms-contact-1-1-area .form-contents dd .textarea {
  width: 100%;
  height: 52px;
  padding: 0 16px;
  border: 1px solid #BFC3C1;
  border-radius: 0;
  background: #FAFAFA;
  font-family: inherit;
  font-size: 1.5rem;
}
#cms-contact-1-1-area .form-contents dd textarea.textarea { height: auto; min-height: 200px; padding: 14px 16px; line-height: 1.8; resize: vertical; }
#cms-contact-1-1-area .form-contents dd .textarea:focus { border-color: #1DBF9A; outline: 2px solid #1DBF9A; outline-offset: -1px; background: #FFFFFF; }
#cms-contact-1-1-area .form-contents dd .after-text-area { margin-top: 6px; font-size: 1.3rem; color: #5C5F5E; }
/* ラジオ・チェックはカード型 */
#cms-contact-1-1-area .form-contents dd:has(.radio) { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 8px; }
#cms-contact-1-1-area .form-contents dd:has(.checkbox) { display: flex; flex-wrap: wrap; gap: 8px; }
#cms-contact-1-1-area .form-contents dd label {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  border: 1px solid #BFC3C1;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.6;
  cursor: pointer;
  transition: border-color .4s cubic-bezier(.22, .61, .36, 1), background-color .4s cubic-bezier(.22, .61, .36, 1);
}
#cms-contact-1-1-area .form-contents dd:has(.checkbox) label { padding: 12px 18px; }
#cms-contact-1-1-area .form-contents dd label:hover { border-color: #1A1A1A; }
#cms-contact-1-1-area .form-contents dd label:has(input:checked) { border-color: #1A1A1A; background: #EAF8F3; }
#cms-contact-1-1-area .form-contents dd label input { width: 18px; height: 18px; margin: 0; accent-color: #1A1A1A; }
/* 送信ボタン */
#cms-contact-1-1-area .form-contents .submit-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  width: min(100%, 400px);
  height: 68px;
  margin: 40px auto 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: #1A1A1A;
  color: #FFFFFF;
  font-family: inherit;
  font-size: 1.7rem;
  font-weight: 900;
  letter-spacing: .08em;
}
#cms-contact-1-1-area .form-contents .submit-btn::before { display: none; }
#cms-contact-1-1-area .form-contents .submit-btn::after { content: "→"; font-family: "Archivo", sans-serif; transition: transform .4s cubic-bezier(.22, .61, .36, 1); }
#cms-contact-1-1-area .form-contents .submit-btn:hover { background: #1DBF9A; color: #1A1A1A; }
#cms-contact-1-1-area .form-contents .submit-btn:hover::after { transform: translateX(4px); }
#cms-contact-1-1-area .form-contents .submit-btn:active { transform: scale(.98); }
/* 送信完了・エラー */
#cms-contact-1-1-area .form-contents .form-thanks-msg { padding: 40px 24px; border: 1px solid #E3E5E4; background: #F4F5F4; }
#cms-contact-1-1-area .form-contents .form-thanks-msg .back-home-btn a { border: 0; border-radius: 0; background: #1A1A1A; color: #FFFFFF; }
#cms-contact-1-1-area .form-contents .form-thanks-msg .back-home-btn a:hover { background: #1DBF9A; color: #1A1A1A; }
#cms-contact-1-1-area .form-contents .form-err-msg { border: 0; background: #FDECEA; color: #C0392B; font-weight: 700; }
@media (max-width: 767px) {
  #cms-contact-1-1-area .form-contents form dl { grid-template-columns: minmax(0, 1fr); }
  #cms-contact-1-1-area .form-contents form dl dt,
  #cms-contact-1-1-area .form-contents form dl dt:has(+ dd textarea) { padding: 24px 0 0; border-bottom: 0; }
  #cms-contact-1-1-area .form-contents form dl dd { padding-top: 12px; }
}
/* iOS Safari の入力時ズーム対策：タッチ端末では入力欄を 16px 以上にする */
@media (hover: none) and (pointer: coarse) {
  input[type="text"], input[type="email"], input[type="tel"], input[type="number"],
  input[type="search"], input[type="url"], input[type="password"], input[type="date"],
  select, textarea { font-size: 16px; }
  #cms-contact-1-1-area .form-contents dd .textarea { font-size: 16px; }
}

/* FAQ（accordion--qa の見た目差分） */
.slinky-faq { display: flex; flex-direction: column; gap: 10px; }
.slinky-faq .slinky-faq__item,
.slinky-faq .slinky-faq__item:first-child { border: 0; background: #FFFFFF; }
.slinky-faq .accordion__head {
  padding: 22px 56px 22px 62px;
  background: #FFFFFF;
  font-family: inherit;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.8;
}
.slinky-faq .accordion__head:hover { background: #FFFFFF; color: #0E8A6D; }
.slinky-faq .accordion__head::before {
  top: 22px;
  left: 24px;
  width: auto;
  height: auto;
  border-radius: 0;
  background: none;
  color: #0E8A6D;
  font-family: "Archivo", sans-serif;
  font-size: 2.2rem;
  font-weight: 900;
  line-height: 1.3;
}
.slinky-faq .accordion__head::after { position: absolute; right: 24px; color: #1A1A1A; font-size: 2rem; }
.slinky-faq .accordion__body {
  position: relative;
  padding: 0 24px 24px 62px;
  border: 0;
  background: #FFFFFF;
  color: #3D403F;
  font-size: 1.5rem;
  line-height: 1.8;
}
.slinky-faq .accordion__body::before {
  content: "A";
  position: absolute;
  left: 24px;
  top: -4px;
  font-family: "Archivo", sans-serif;
  font-size: 2.2rem;
  font-weight: 900;
  color: #1A1A1A;
}
@media (max-width: 639px) {
  .slinky-faq .accordion__head { padding: 18px 48px 18px 52px; font-size: 1.5rem; }
  .slinky-faq .accordion__head::before { top: 18px; left: 18px; }
  .slinky-faq .accordion__body { padding: 0 18px 20px 52px; }
  .slinky-faq .accordion__body::before { left: 18px; }
}

/* ==========================================================================
   お知らせ一覧・詳細
   ========================================================================== */
.slinky-entry { padding: clamp(56px, 7vw, 88px) 0 clamp(80px, 10vw, 128px); }
@media (max-width: 896px) { .slinky-entry { padding: clamp(56px, 7vw, 88px) 0 clamp(80px, 10vw, 128px); } }
.slinky-pager { margin: 40px 0 0; }
/* TOPは最新3件のみ：CMSテンプレート共通のページ送りを隠す */
.slinky-news .slinky-pager { display: none; }
.slinky-pager .pagination__list { gap: 6px; }
.slinky-pager .pagination__link {
  width: 44px;
  min-width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid #BFC3C1;
  border-radius: 0;
  color: #1A1A1A;
  font-family: "Archivo", sans-serif;
  font-weight: 700;
}
.slinky-pager .pagination__link.is-current { border-color: #1A1A1A; background: #1A1A1A; color: #FFFFFF; }
.slinky-pager .pagination__link.is-disabled { color: #8A8E8C; pointer-events: none; }

.slinky-article { max-width: 868px; display: flex; flex-direction: column; gap: 32px; }
.slinky-article__head { display: flex; flex-direction: column; gap: 16px; padding-bottom: 24px; border-bottom: 2px solid #1A1A1A; }
.slinky-article__meta { display: flex; align-items: center; gap: 16px; }
.slinky-article__date { font-family: "Archivo", sans-serif; font-size: 1.4rem; font-weight: 700; color: #5C5F5E; }
.slinky-article__cat { padding: 2px 10px; border: 1px solid #1A1A1A; font-size: 1.2rem; font-weight: 700; line-height: 1.8; }
.slinky-article__title { font-size: clamp(24px, 3vw, 34px); font-weight: 900; line-height: 1.5; }
.slinky-article__body { font-size: 1.6rem; line-height: 2.1; }
.slinky-article__foot { display: flex; justify-content: center; padding-top: 28px; border-top: 1px solid #E3E5E4; }

/* ==========================================================================
   Motion：リンク・ボタンのホバーをふわっと（0.4s / ease-out）
   ========================================================================== */
a,
button,
.slinky-btn,
.slinky-case,
.slinky-recruit,
.slinky-igbnr,
.slinky-telbox__item,
.slinky-anchor,
.slinky-worknav__link,
.slinky-cta__box,
.slinky-cta__mail,
.slinky-iconbtn,
.slinky-header__cta,
.slinky-toggle {
  transition:
    color .4s cubic-bezier(.22, .61, .36, 1),
    background-color .4s cubic-bezier(.22, .61, .36, 1),
    border-color .4s cubic-bezier(.22, .61, .36, 1),
    box-shadow .4s cubic-bezier(.22, .61, .36, 1),
    opacity .4s cubic-bezier(.22, .61, .36, 1),
    transform .4s cubic-bezier(.22, .61, .36, 1);
}
/* 矢印（→）がホバーで少し右へ流れる */
.slinky-btn > .font-en,
.slinky-link > .font-en,
.slinky-svc__more > .font-en,
.slinky-cta__mail > .font-en,
.slinky-header__cta > .font-en,
.slinky-recruit__btn > .font-en,
.slinky-footer__contact > .font-en,
.slinky-case__arrow {
  display: inline-block;
  transition: transform .4s cubic-bezier(.22, .61, .36, 1), background-color .4s cubic-bezier(.22, .61, .36, 1);
}
.slinky-btn:hover > .font-en,
.slinky-link:hover > .font-en,
.slinky-svc__more:hover > .font-en,
.slinky-cta__mail:hover > .font-en,
.slinky-header__cta:hover > .font-en,
.slinky-recruit:hover .slinky-recruit__btn > .font-en,
.slinky-footer__contact:hover > .font-en { transform: translateX(4px); }
.slinky-case:hover .slinky-case__arrow { transform: translateX(4px); background: #1DBF9A; color: #1A1A1A; }
/* カード・バナーはホバーでわずかに浮く */
.slinky-case:hover,
.slinky-recruit:hover,
.slinky-igbnr:hover { transform: translateY(-3px); }
/* 写真のズームはゆっくり */
.slinky-case__img .slinky-img { transition: transform .6s cubic-bezier(.22, .61, .36, 1); }
/* 押した瞬間はわずかに沈む */
.slinky-btn:active,
.slinky-header__cta:active,
.slinky-cta__mail:active { transform: scale(.98); }

/* ==========================================================================
   スマホ時の文字サイズ調整（大きすぎる箇所のみ）
   ※各セクションの基本指定より後ろに置く必要があるため末尾に記述
   ========================================================================== */
@media (max-width: 639px) {
  .slinky-reasons__num { font-size: 5.2rem; }
  .slinky-heading--reason .heading__ja { font-size: 1.8rem; }
  .slinky-reasons__title { font-size: 1.75rem; }
  .slinky-biz__num { font-size: 5.6rem; }
  .slinky-after__num { font-size: 4.4rem; }
  .slinky-feat__title { font-size: 1.7rem; line-height: 1.6; letter-spacing: .02em; }
  .slinky-kn-lead__text,
  .slinky-contact-intro,
  .slinky-article__body { font-size: 1.5rem; }
  /* 成分表：横スクロールのまま、文字と余白だけ詰める */
  .slinky-comp { font-size: 1.3rem; line-height: 1.5; }
  .slinky-comp th,
  .slinky-comp td { padding: 12px 10px; }
}

/* 会社概要 LICENSE／QUALIFICATIONS：長い英字見出しが列からはみ出さないよう、列の幅に合わせて縮める */
.slinky-license { container-type: inline-size; }
.slinky-license .slinky-heading .heading__en { font-size: clamp(26px, 8.6cqi, 64px); }

/* ホバーで内側に緑の枠：常に透明な枠を持たせ、色だけを0.4sでフェード（ぱきっと切り替わらないように） */
.slinky-recruit,
.slinky-igbnr,
.slinky-telbox__item--dark {
  outline: 3px solid transparent;
  outline-offset: -3px;
  transition: outline-color .4s cubic-bezier(.22, .61, .36, 1), color .4s cubic-bezier(.22, .61, .36, 1), background-color .4s cubic-bezier(.22, .61, .36, 1), transform .4s cubic-bezier(.22, .61, .36, 1);
}

/* AOS：移動量を控えめに（標準の100px → 24px） */
[data-aos=fade-up] { transform: translate3d(0, 24px, 0); }
