/* =========================================================
   KISEKI合同会社（kiseki-ibaraki）サイト共通 CSS
   ---------------------------------------------------------
   Figma「KISEKI合同会社　様」（1440 / 375）の実測値で組んでいる。
   実測の正本は docs/figma/design_tokens.md、計画は docs/site_plan_2026-09-16.md。

   ★構成★
   1. フォント読み込み・トークン（corp 正本の変数名は据え置き、意味だけ差し替え）
   2. 基本・フェードアップ（演出）
   3. 共通部品 .ks-*（英字見出し・ボタン・イラスト・見出し行・カード）
   4. ヘッダー（PC 100px 固定・SP 50px＋ハンバーガー）
   5. 標準ブロックの見た目（hero_main / hero_page / latest_news_bar / concept_split /
      feature_cards / gmap / news_list_grid / contact_form）
      → corp 正本はブロック追加時に個別 CSS を焼き込まない（default_block_css.js が空）ので、
        テーマ JSON は使わず、ここに `body .クラス` の詳細度で書く（blocks.css に勝つ）
   6. TOP のカスタムHTML（SERVICE）
   7. 共通フッター（CONTACT 帯のカスタムHTML・地図 2 枚・フッター・著作権・PAGE TOP・SP 下部固定）
   8. 下層ページ共通・各ページのカスタムHTML
   9. SP（768px 以下）
   ========================================================= */
@import url("https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic:wght@500;700&family=Josefin+Sans:wght@400;500&display=swap");

:root {
  /* ---- 本案件のトークン ---- */
  --ks-accent: #00AFCC;        /* 水色：ボタン・英字見出し・下線・帯・著作権バー */
  --ks-green: #BBEAD5;         /* 薄緑：英字見出しの 1 文字 */
  --ks-green-deep: #79D5AC;    /* 濃いめの緑：PAGE TOP・下層英字見出しの 1 文字 */
  --ks-bg: #FFF8F3;            /* 地：薄ベージュ */
  --ks-band: #E5F7EF;          /* 淡い緑の帯 */
  --ks-band-blue: #E5F3F7;
  --ks-orange: #FFB27A;
  --ks-orange-pale: #FFEDE0;
  --ks-text: #333333;
  --ks-text-sub: #666666;
  --ks-line: #D9D9D9;
  --ks-font: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;
  --ks-en: "Josefin Sans", "Zen Maru Gothic", sans-serif;

  /* ---- corp 正本の変数（名前は据え置き・意味を本案件に差し替え） ---- */
  --bg-base: var(--ks-bg);
  --bg-paper: #ffffff;
  --bg-warm: var(--ks-band);
  --bg-dark: var(--ks-accent);
  --bg-dark-deep: var(--ks-accent);
  --ink: #1a1a1a;
  --text-main: var(--ks-text);
  --text-sub: var(--ks-text);
  --text-muted: var(--ks-text-sub);
  --text-on-dark: #ffffff;
  --text-on-dark-muted: rgba(255, 255, 255, 0.9);
  --gold: var(--ks-accent);
  --gold-light: #33c0d8;
  --gold-ink: var(--ks-accent);
  --vermilion: var(--ks-accent);
  --fc-btn-bg: var(--ks-accent);
  --fc-btn-fg: #ffffff;
  --fc-btn-bg-hover: #0098b2;
  --fc-btn-fg-hover: #ffffff;
  --fc-btn-border: var(--ks-accent);
  --fc-btn-outline-fg: var(--ks-accent);
  --line: var(--ks-line);
  --line-dark: rgba(0, 0, 0, 0.12);
  --shadow-base: 0 0 5.3px rgba(0, 0, 0, 0.16);
  --font-heading: var(--ks-font);
  --font-serif: var(--ks-font);
  --font-sans: var(--ks-font);
  --font-en: var(--ks-en);
  --ease: cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* =========================================================
   2. 基本
   ========================================================= */
* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; overflow-x: hidden; }
body {
  width: 100%;
  max-width: 100vw;
  overflow-x: hidden;
  background: var(--ks-bg);
  color: var(--ks-text);
  font-family: var(--ks-font);
  font-weight: 500;
  font-size: 16px;
  line-height: 33px;
  letter-spacing: 0.96px;
  -webkit-font-smoothing: antialiased;
  writing-mode: horizontal-tb;
  overflow-wrap: break-word;
}
body::before { display: none; }
img, video { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; transition: color .25s ease, background .25s ease, border-color .25s ease, opacity .25s ease; }
a:hover { color: var(--ks-accent); }
button { font: inherit; }

/* ---- フェードアップ（ふわっと浮かび上がる）----
   corp 正本の仕組み（IntersectionObserver が .fade-up に .is-visible を付ける）をそのまま使い、
   動きだけ「32px 下から 1 秒かけて」に調整。カードや行が並ぶ所は nth-child で時間差。
   ★要素の位置決めに transform を使わない（ここの transform と衝突する）★ */
.fade-up { opacity: 0; transform: translateY(32px); transition: opacity 1s ease-out, transform 1s var(--ease); }
.fade-up.is-visible { opacity: 1; transform: translateY(0); }
.delay-1 { transition-delay: .15s; }
.delay-2 { transition-delay: .3s; }
/* カスタムHTML の中の小さな要素は .ks-reveal（共通ヘッダーのスクリプトが .is-in を付ける） */
.ks-reveal { opacity: 0; transform: translateY(24px); transition: opacity .9s ease-out, transform .9s var(--ease); }
.ks-reveal.is-in { opacity: 1; transform: translateY(0); }
.ks-reveal:nth-child(2) { transition-delay: .12s; }
.ks-reveal:nth-child(3) { transition-delay: .24s; }
.ks-reveal:nth-child(4) { transition-delay: .36s; }
.ks-reveal:nth-child(5) { transition-delay: .48s; }
.ks-reveal:nth-child(n+6) { transition-delay: .6s; }
@media (prefers-reduced-motion: reduce) {
  .fade-up, .ks-reveal { opacity: 1; transform: none; transition: none; }
}

/* 標準ブロック共通の見出し（corp 正本から引き継ぎ。news_list_grid 等が参照） */
.section-header, .news-section-header, .job-section-header, .contact-section-header { text-align: center; margin-bottom: 48px; }
.section-header h2, .news-main-title, .job-main-title, .contact-main-title { font-family: var(--ks-font); font-size: 30px; line-height: 43px; letter-spacing: 1.8px; font-weight: 500; color: var(--ks-text); }
.section-header p, .news-sub-text, .job-sub-text, .contact-sub-text { margin-top: 14px; color: var(--ks-text); font-size: 16px; line-height: 33px; }

/* =========================================================
   3. 共通部品
   ========================================================= */
.ks-en { font-family: var(--ks-en); font-weight: 400; letter-spacing: 0; }
.ks-ac { color: var(--ks-green); }            /* 英字見出しの 1 文字 */
.ks-ac2 { color: var(--ks-green-deep); }      /* 下層の英字見出しの 1 文字 */

/* セクション見出し（英字 48 → 和文サブ 24 → 和文見出し 30、間 26） */
.ks-sec-head { text-align: center; }
.ks-sec-head .ks-en, .ks-sec-en { display: block; font-family: var(--ks-en); font-weight: 400; font-size: 48px; line-height: 48px; letter-spacing: 0; color: var(--ks-accent); }
.ks-sec-sub { display: block; margin-top: 26px; font-size: 24px; line-height: 35px; letter-spacing: 1.44px; font-weight: 500; color: var(--ks-text); }
.ks-sec-title { display: block; margin-top: 26px; font-size: 30px; line-height: 43px; letter-spacing: 1.8px; font-weight: 500; color: var(--ks-text); }
.ks-sec-lead { margin-top: 26px; font-size: 16px; line-height: 33px; letter-spacing: 0.96px; }

/* ボタン（Figma 部品 button：199×45・角丸 59・水色・白文字 700 16px・右に矢印） */
.ks-btn, body .fc-block-btn, body .btn-submit-contact {
  display: inline-flex; align-items: center; justify-content: center; gap: 12px;
  min-width: 199px; min-height: 45px; height: 45px; padding: 0 22px 0 26px;
  border: 0; border-radius: 59px; background: var(--ks-accent); color: #fff;
  font-family: var(--ks-font); font-weight: 700; font-size: 16px; line-height: 35px; letter-spacing: 0.96px;
  box-shadow: none; cursor: pointer; transition: background .25s ease, color .25s ease;
}
.ks-btn::after, body .fc-block-btn::after, body .btn-submit-contact::after {
  content: ""; flex: 0 0 auto; width: 32px; height: 7px; background: currentColor;
  -webkit-mask-image: url("/image/assets/ks_ic_arrow.svg"); -webkit-mask-size: contain; -webkit-mask-position: center; -webkit-mask-repeat: no-repeat; mask-image: url("/image/assets/ks_ic_arrow.svg"); mask-size: contain; mask-position: center; mask-repeat: no-repeat;
}
.ks-btn:hover, body .fc-block-btn:hover, body .btn-submit-contact:hover { background: #0098b2; color: #fff; box-shadow: none; }
/* サイト設定「ボタン配色」（corp 既定の黄色 #F1C232）が header.php から <style> で !important 注入されるため、
   さらに強い詳細度＋!important で Figma の水色に固定する（設定を消さなくても効く） */
html body .fc-block-btn-primary, html body .fc-block-btn-outline, html body .btn-submit-contact, html body .link-button-btn-primary {
  background: var(--ks-accent) !important; color: #fff !important; border-color: var(--ks-accent) !important;
}
html body .fc-block-btn-primary:hover, html body .fc-block-btn-outline:hover, html body .btn-submit-contact:hover, html body .link-button-btn-primary:hover {
  background: #0098b2 !important; color: #fff !important; border-color: #0098b2 !important;
}
body .fc-block-btn-wrap { margin-top: 29px; text-align: center; }
body .fc-block-btn-ext { display: none; }

/* 電話（枠線）／お問い合わせ（塗り）の 230×46 ボタン（CONTACT 帯） */
.ks-tel-btn, .ks-mail-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 5px;
  width: 230px; height: 46px; border-radius: 54px; font-weight: 700; white-space: nowrap;
}
.ks-tel-btn { border: 2px solid var(--ks-accent); color: var(--ks-accent); font-size: 26px; line-height: 26px; letter-spacing: 1.56px; padding: 0 10px 0 14px; }
.ks-tel-btn::before { content: ""; width: 25px; height: 25px; background: currentColor; -webkit-mask-image: url("/image/assets/ks_ic_phone.svg"); -webkit-mask-size: contain; -webkit-mask-position: center; -webkit-mask-repeat: no-repeat; mask-image: url("/image/assets/ks_ic_phone.svg"); mask-size: contain; mask-position: center; mask-repeat: no-repeat; }
.ks-tel-btn:hover { background: var(--ks-accent); color: #fff; }
.ks-mail-btn { gap: 10px; background: var(--ks-accent); color: #fff; font-size: 16px; line-height: 26px; letter-spacing: 0.96px; }
.ks-mail-btn::before { content: ""; width: 20px; height: 15px; background: currentColor; -webkit-mask-image: url("/image/assets/ks_ic_mail.svg"); -webkit-mask-size: contain; -webkit-mask-position: center; -webkit-mask-repeat: no-repeat; mask-image: url("/image/assets/ks_ic_mail.svg"); mask-size: contain; mask-position: center; mask-repeat: no-repeat; }
.ks-mail-btn:hover { background: #0098b2; color: #fff; }

/* 桜・草花のイラスト（30% 透過・セクションの隅に絶対配置。位置は各セクションで指定） */
.ks-deco { position: absolute; pointer-events: none; opacity: .3; user-select: none; z-index: 0; }
.ks-deco img { width: 100%; height: 100%; object-fit: contain; }

/* 下層の見出し行（幅 1210・中央・下線 2px 水色・左にアイコン 25） */
.ks-hline { position: relative; z-index: 1; display: flex; align-items: center; justify-content: center; gap: 21px; max-width: 1210px; margin: 0 auto; padding: 10px; border-bottom: 2px solid var(--ks-accent); }
.ks-hline.ks-hline-both { border-top: 2px solid var(--ks-accent); }
.ks-hline::before { content: ""; flex: 0 0 25px; width: 25px; height: 25px; background: var(--ks-accent); -webkit-mask-image: url("/image/assets/ks_ic_heading.svg"); -webkit-mask-size: contain; -webkit-mask-position: center; -webkit-mask-repeat: no-repeat; mask-image: url("/image/assets/ks_ic_heading.svg"); mask-size: contain; mask-position: center; mask-repeat: no-repeat; }
.ks-hline h2, .ks-hline h3 { font-size: 30px; line-height: 43px; letter-spacing: 1.8px; font-weight: 500; color: var(--ks-text); }
.ks-hline.no-icon::before { content: none; }
/* 下層の英字見出し＋和文見出し行（GREETING／COMPANY／CONTACT FORM：英字 48・500・字間 2.88） */
.ks-hblock { text-align: center; }
.ks-hblock .ks-sec-en { font-weight: 500; letter-spacing: 2.88px; }
.ks-hblock .ks-hline { margin-top: 1px; }
.ks-hblock .ks-hline h2 { font-size: 24px; line-height: 35px; letter-spacing: 1.44px; }

/* =========================================================
   4. ヘッダー（Figma 部品 header：1440×100・白 80%・下角丸 30・固定）
   ========================================================= */
body .global-header {
  position: fixed; top: 0; left: 0; z-index: 1000;
  width: 100%; height: 100px; min-height: 0;
  padding: 0 12px 0 48px;
  display: flex; align-items: center; gap: 0;
  background: rgba(255, 255, 255, .8);
  border: 0; border-radius: 0 0 30px 30px;
  backdrop-filter: none; box-shadow: none;
  transition: none;
}
body .global-header.is-scrolled { height: 100px; min-height: 0; padding: 0 12px 0 48px; box-shadow: none; border-bottom: 0; }
body .global-header .header-page-eyebrow { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; } /* SEO 用 H1 は見せない */
body .header-logo { display: flex; align-items: center; gap: 18px; font-size: 0; letter-spacing: 0; }
body .header-logo img { width: 100px !important; height: 92px !important; max-height: none !important; object-fit: contain; }
.ks-brand { display: flex; flex-direction: column; color: var(--ks-accent); font-weight: 700; line-height: 26px; letter-spacing: 0; }
.ks-brand b { font-weight: 700; }
.ks-brand b:first-child { font-size: 32px; }
.ks-brand b:last-child { font-size: 24px; }
/* ナビ：右下（y=57〜83・右端 1226 → 右から 214）。項目の間 69 */
body .desktop-nav { position: absolute; right: 214px; bottom: 17px; display: flex; gap: 69px; justify-content: flex-end; align-items: center; }
body .desktop-nav a { color: var(--ks-text); font-size: 16px; font-weight: 500; line-height: 26px; letter-spacing: 0.96px; white-space: nowrap; }
body .desktop-nav a::after { bottom: -3px; height: 2px; background: var(--ks-accent); }
body .desktop-nav a:hover { color: var(--ks-accent); }
/* 右上：受付時間・電話・お問い合わせボタン */
body .header-btns { position: absolute; top: 16px; right: 12px; display: flex; align-items: flex-start; gap: 19px; }
.ks-hours { margin: 8px 2px 0 0; font-size: 14px; line-height: 19px; letter-spacing: 0.84px; color: var(--ks-text-sub); white-space: nowrap; }
body .btn-header-tel { display: inline-flex; align-items: center; gap: 5px; height: 26px; color: var(--ks-accent); font-size: 26px; line-height: 26px; letter-spacing: 1.56px; font-weight: 700; white-space: nowrap; }
body .btn-header-tel i { display: none; }
body .btn-header-tel::before { content: ""; width: 25px; height: 25px; background: currentColor; -webkit-mask-image: url("/image/assets/ks_ic_phone.svg"); -webkit-mask-size: contain; -webkit-mask-position: center; -webkit-mask-repeat: no-repeat; mask-image: url("/image/assets/ks_ic_phone.svg"); mask-size: contain; mask-position: center; mask-repeat: no-repeat; }
body .btn-header-contact {
  display: inline-flex; align-items: center; justify-content: center;
  margin-top: 11px; min-height: 46px; height: 46px; width: 180px; padding: 0; gap: 10px;
  border: 0; border-radius: 52px; background: var(--ks-accent); color: #fff;
  font-size: 16px; line-height: 26px; font-weight: 700; letter-spacing: 0.96px;
}
body .btn-header-contact i { display: none; }
body .btn-header-contact::before { content: ""; width: 20px; height: 15px; background: currentColor; -webkit-mask-image: url("/image/assets/ks_ic_mail.svg"); -webkit-mask-size: contain; -webkit-mask-position: center; -webkit-mask-repeat: no-repeat; mask-image: url("/image/assets/ks_ic_mail.svg"); mask-size: contain; mask-position: center; mask-repeat: no-repeat; }
body .btn-header-contact:hover { background: #0098b2; color: #fff; border: 0; }
body .global-header.is-scrolled .btn-header-contact { min-height: 46px; }
body .menu-trigger { display: none; }
/* 1440 より狭い PC：ナビを右に寄せて詰め、受付時間を隠す（ロゴ・社名と重ならない幅を確保） */
@media (max-width: 1280px) {
  body .desktop-nav { right: 40px; gap: 40px; }
  .ks-hours { display: none; }
}
/* SP・タブレットのヘッダー（375×50・白 80%・下角丸 12・ハンバーガー 44） */
@media (max-width: 1024px) {
  body .global-header, body .global-header.is-scrolled { height: 50px; padding: 0 7px 0 10px; border-radius: 0 0 12px 12px; }
  body .header-logo { gap: 7px; }
  body .header-logo img { width: 49px !important; height: 45px !important; }
  .ks-brand { flex-direction: row; line-height: 26px; }
  .ks-brand b:first-child, .ks-brand b:last-child { font-size: 16px; }
  body .desktop-nav, body .header-btns { display: none; }
  body .menu-trigger {
    display: block; position: relative; margin-left: auto; width: 44px; height: 44px;
    border: 0; border-radius: 4px; background: var(--ks-accent); color: #fff; cursor: pointer;
  }
  body .menu-trigger i { display: none; }
  body .menu-trigger::before {
    content: ""; position: absolute; left: 9.5px; top: 7px; width: 25px; height: 16px;
    background: linear-gradient(#fff, #fff) 0 0 / 25px 2px no-repeat, linear-gradient(#fff, #fff) 0 7px / 25px 2px no-repeat, linear-gradient(#fff, #fff) 0 14px / 25px 2px no-repeat;
  }
  body .menu-trigger::after { content: "MENU"; position: absolute; left: 0; right: 0; top: 28px; font-size: 10px; line-height: 9px; font-weight: 700; letter-spacing: 0; text-align: center; }
}
/* SP メニュー（Figma に無いので TOP の配色で作る） */
.mobile-nav-overlay {
  position: fixed; inset: 0; z-index: 2000; display: flex; flex-direction: column;
  opacity: 0; visibility: hidden; transition: opacity .25s ease, visibility .25s ease;
}
.mobile-nav-overlay.active { opacity: 1; visibility: visible; }
body .mobile-nav-overlay { background: rgba(255, 248, 243, .98); gap: 0; padding: 70px 24px 40px; justify-content: flex-start; align-items: stretch; }
body .mobile-nav-overlay > a { display: block; padding: 16px 4px; border-bottom: 1px solid var(--ks-green); color: var(--ks-text); font-size: 18px; line-height: 26px; font-weight: 700; letter-spacing: 1px; text-align: center; }
body .mobile-nav-overlay > a:hover { color: var(--ks-accent); }
body .mobile-nav-overlay .menu-trigger { display: block; width: 44px; height: 44px; margin: 0; border-radius: 4px; background: var(--ks-accent); }
body .mobile-nav-overlay .menu-trigger::before, body .mobile-nav-overlay .menu-trigger::after { content: none; }
body .mobile-nav-overlay .menu-trigger i { display: inline-block; color: #fff; font-size: 22px; line-height: 44px; }
.ks-mnav-btns { display: flex; flex-direction: column; align-items: center; gap: 16px; margin-top: 32px; }
.fc-language-switcher { display: none; }

/* =========================================================
   5. 標準ブロック
   ========================================================= */
/* ---- 5-1 hero_main（MV 1440×750・下角丸 30・黒 20%・キャッチ左上）---- */
body .hero-wrapper { position: relative; width: 100%; height: 750px; min-height: 0; border-radius: 0 0 30px 30px; overflow: hidden; background: var(--ks-bg); }
body .hero-wrapper::after { content: none; }
body .hero-img-window, body .hero-img-window img, body .hero-img-window video { width: 100%; height: 100%; object-fit: cover; }
body .hero-slide-img::after { background: rgba(0, 0, 0, .2); }
body .hero-cap-top-left .hero-slide-img::after, body .hero-cap-mid-left .hero-slide-img::after, body .hero-cap-bottom-left .hero-slide-img::after,
body .hero-cap-top-center .hero-slide-img::after, body .hero-cap-mid-center .hero-slide-img::after, body .hero-cap-bottom-center .hero-slide-img::after,
body .hero-cap-top-right .hero-slide-img::after, body .hero-cap-mid-right .hero-slide-img::after, body .hero-cap-bottom-right .hero-slide-img::after { background: rgba(0, 0, 0, .2); }
/* 写真の見せる範囲（Figma の imageTransform から。PC は横幅いっぱい・縦の位置だけ違う） */
body .hero-slide-img[style*="ks_mv_1"] { background-position: center 55%; }
body .hero-slide-img[style*="ks_mv_2"], body .hero-slide-img[style*="ks_mv_3"] { background-position: center 46%; }
body .hero-slide-caption, body .hero-cap-top-left .hero-slide-caption, body .hero-cap-mid-left .hero-slide-caption, body .hero-cap-bottom-left .hero-slide-caption,
body .hero-cap-top-center .hero-slide-caption, body .hero-cap-mid-center .hero-slide-caption, body .hero-cap-bottom-center .hero-slide-caption,
body .hero-cap-top-right .hero-slide-caption, body .hero-cap-mid-right .hero-slide-caption, body .hero-cap-bottom-right .hero-slide-caption {
  top: 329px; bottom: auto; left: 80px; right: 80px; padding: 0; text-align: left; transform: none; text-shadow: none;
}
body .hero-slide-catch {
  max-width: 640px; margin: 0; font-family: var(--ks-font); font-weight: 700;
  font-size: 36px !important; line-height: 60px; letter-spacing: 2.16px; color: #fff;
  -webkit-text-stroke: .3px #fff; paint-order: stroke fill; text-shadow: 0 4px 4px rgba(0, 0, 0, .25);
}
body .hero-slide-sub {
  max-width: 800px; margin: 15px 0 0; font-weight: 700;
  font-size: 20px !important; line-height: 60px; letter-spacing: 1.2px; color: #fff; text-shadow: 0 4px 4px rgba(0, 0, 0, .25);
}
body .hero-slider-dots { display: none; }
body .hero-wrapper .hero-img-window img, body .hero-wrapper .hero-img-window video { object-position: center 55%; }

/* ---- 5-2 hero_page（下層 1440×500・黒 40%・英字 48 の下に和文 30）---- */
body .page-hero-wrapper {
  min-height: 0; height: 500px; padding: 0 20px; display: flex; align-items: flex-start; justify-content: center;
  text-align: center; border-radius: 0 0 30px 30px; overflow: hidden; background-size: cover; background-position: center 42%;
}
body .page-hero-wrapper { position: relative; }
body .page-hero-wrapper::after { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, .4); }
body .ph-overlay { display: none; }
body .ph-container { position: relative; z-index: 2; width: 100%; max-width: none; margin: 0; padding-top: 256px; display: flex; flex-direction: column-reverse; align-items: center; }
body .ph-title { margin: 0; font-family: var(--ks-font); font-weight: 700; font-size: 30px; line-height: 60px; letter-spacing: 1.8px; color: #fff; -webkit-text-stroke: .3px #fff; paint-order: stroke fill; text-shadow: 0 4px 4px rgba(0, 0, 0, .25); }
body .ph-desc { max-width: none; margin: 0; font-family: var(--ks-en); font-weight: 400; font-size: 48px; line-height: 46px; letter-spacing: 0; color: #fff; text-shadow: none; }

/* ---- 5-3 latest_news_bar（TOP の NEWS：見出し 148＋行 687・白い角丸 10 の行）---- */
body .news-bar-section { position: relative; padding: 72px 20px 71px; background: transparent; overflow: visible; }
body .news-bar-container { position: relative; z-index: 1; max-width: 899px; margin: 0 auto; display: grid; grid-template-columns: 148px minmax(0, 687px); gap: 64px; align-items: start; }
body .news-bar-head { text-align: right; }
body .news-bar-eyebrow { margin: 0; font-family: var(--ks-en); font-weight: 400; font-size: 48px; line-height: 48px; letter-spacing: 0; color: var(--ks-accent); text-align: left; }
body .news-bar-label { display: block; min-height: 0; margin: 0; padding: 0; background: transparent; color: var(--ks-text); font-size: 24px; line-height: 35px; letter-spacing: 1.44px; font-weight: 500; text-align: right; }
body .news-bar-list { border: 0; display: flex; flex-direction: column; gap: 16px; }
body .news-bar-link, body .news-bar-link.is-empty {
  display: flex; align-items: center; gap: 64px; min-height: 43px; padding: 10px 10px 10px 20px; border: 0; border-radius: 10px;
  background: #fff; color: var(--ks-text); transition: background .25s ease;
}
body a.news-bar-link:hover { background: #fff; padding-left: 20px; color: var(--ks-accent); }
body .news-bar-link .news-date { flex: 0 0 auto; font-size: 16px; line-height: 23px; letter-spacing: 0; font-weight: 500; color: inherit; font-family: var(--ks-font); }
body .news-bar-link .news-title { flex: 1 1 auto; margin: 0; font-size: 16px; line-height: 23px; letter-spacing: 0; font-weight: 500; color: inherit; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body .news-bar-link .news-arrow { display: none; }
/* 3 行を時間差で */
body .news-bar-link:nth-child(2) { transition-delay: .1s; }
body .news-bar-link:nth-child(3) { transition-delay: .2s; }
body .news-bar-section .ks-deco-a { left: 0; top: 53px; width: 189px; height: 198px; }
body .news-bar-section .ks-deco-b { right: 57px; top: 12px; width: 209px; height: 280px; }

/* ---- 5-4 concept_split（TOP の ABOUT：写真 720×486 左・文章 583 右）---- */
body .concept-section { position: relative; padding: 71px 0 114px; background: transparent; overflow: visible; }
body .concept-container, body .concept-container.concept-reverse {
  position: relative; z-index: 1; max-width: 1352px; margin: 0 auto 0 0; display: grid; grid-template-columns: 720px minmax(0, 583px); gap: 49px; align-items: start;
}
body .concept-container .concept-img-wrapper, body .concept-container.concept-reverse .concept-img-wrapper { order: 1; min-height: 0; height: 486px; margin-top: 9px; border-radius: 0 30px 30px 0; overflow: hidden; background: transparent; }
body .concept-container .concept-img-wrapper img { height: 100%; object-fit: cover; object-position: 50% 45%; }
body .concept-container .concept-content, body .concept-container.concept-reverse .concept-content { order: 2; text-align: left; }
body .concept-content p.concept-eyebrow { margin: 0; font-family: var(--ks-en); font-weight: 400; font-size: 48px; line-height: 48px; letter-spacing: 0; color: var(--ks-accent); }
body .concept-title, body .concept-content h2 { margin: 30px 0 0; font-family: var(--ks-font); font-weight: 500; font-size: 30px; line-height: 43px; letter-spacing: 1.8px; color: var(--ks-text); }
body .concept-text::before, body .concept-content p.concept-text::before { content: none; }
body .concept-text, body .concept-content p.concept-text { margin: 30px 0 0; font-size: 16px; line-height: 35px; letter-spacing: 0.96px; color: var(--ks-text); }
body .concept-section .ks-deco-a { right: 105px; top: 165px; width: 204px; height: 243px; }
body .concept-section .ks-deco-b { right: 0; top: 0; width: 222px; height: 260px; }
@media (min-width: 1440px) {
  body .concept-container, body .concept-container.concept-reverse { margin-left: calc(50% - 720px); }
  body .news-bar-container { margin-left: calc(50% - 488px); }
}
@media (max-width: 1400px) {
  body .concept-container, body .concept-container.concept-reverse { grid-template-columns: minmax(0, 720px) minmax(320px, 583px); padding-right: 40px; }
}

/* ---- 5-5 feature_cards（TOP の FEATURES：白カード 300×515 ×4）---- */
body .feature-cards-section { position: relative; padding: 101px 20px 155px; background: transparent; overflow: visible; }
body .feature-cards-container { position: relative; z-index: 1; max-width: 1281px; }
body .feature-cards-header { max-width: 1178px; margin: 0 auto 48px; }
body .feature-cards-eyebrow { display: block; margin: 0; font-family: var(--ks-en); font-weight: 400; font-size: 48px; line-height: 38px; letter-spacing: 0; color: var(--ks-accent); }
body .feature-cards-title { margin: 26px 0 0; font-family: var(--ks-font); font-weight: 500; font-size: 30px; line-height: 43px; letter-spacing: 1.8px; color: var(--ks-text); }
body .feature-cards-desc { margin-top: 26px; font-size: 16px; line-height: 33px; color: var(--ks-text); }
body .feature-cards { gap: 27px; }
body .fc-cards-4, body .fc-cards-3, body .fc-cards-2 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
body .feature-card, body .feature-card:nth-child(even) {
  padding: 8px 7px; border-radius: 10px; background: #fff; color: var(--ks-text); overflow: hidden; align-items: center;
}
body .feature-card:nth-child(2) { transition-delay: .12s; }
body .feature-card:nth-child(3) { transition-delay: .24s; }
body .feature-card:nth-child(4) { transition-delay: .36s; }
body .feature-card-num {
  position: static; order: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; height: 65px; margin: 0;
  font-family: var(--ks-en); font-weight: 400; font-size: 40px; line-height: 35px; letter-spacing: 0; color: var(--ks-accent); opacity: 1; pointer-events: none;
}
body .feature-card-num .ks-fen { display: block; font-size: 16px; line-height: 35px; }
body .feature-card-num .ks-fen i { font-style: normal; color: var(--ks-green); }
body .feature-card-media { width: 100%; aspect-ratio: 286 / 228; margin: 9px 0 0; border-radius: 0; background: var(--ks-band); }
body .feature-card-media img { object-position: 50% 50%; }
body .feature-card-title, body .feature-card:nth-child(even) .feature-card-title {
  width: 100%; margin: 9px 0 0; padding: 0; border: 0; font-family: var(--ks-font); font-weight: 700; font-size: 20px; line-height: 29px; letter-spacing: 0; text-align: center; color: var(--ks-accent);
}
body .feature-card-text { width: 100%; margin: 9px 0 0; font-size: 15px; line-height: 30px; letter-spacing: 0.9px; color: var(--ks-text); opacity: 1; text-align: left; }
body .feature-cards-section .ks-deco-a { left: 0; top: 63px; width: 182px; height: 217px; }
body .feature-cards-section .ks-deco-b { right: 13px; top: 0; width: 203px; height: 215px; transform: scaleX(-1); }
body .feature-cards-section .ks-deco-c { left: calc(50% + 85px); bottom: 0; width: 126px; height: 128px; transform: rotate(31deg); }
body .feature-cards-section .ks-deco-d { left: calc(50% + 203px); bottom: 27px; width: 126px; height: 136px; transform: rotate(-31deg) scaleX(-1); }

/* ---- 5-6 gmap（共通フッターに 2 つ横並び 720×367／会社案内は 785×428 中央）---- */
body .gmap-section { float: left; width: 50%; padding: 0; background: transparent; }
body .gmap-section + .gmap-section { }
body .gmap-container { max-width: none; }
body .gmap-header { display: none; }
body .gmap-frame-wrap { aspect-ratio: auto; height: 367px; min-height: 0; border: 0; border-radius: 0; background: var(--ks-band); }
body .gmap-frame-wrap iframe { filter: none; }
body .gmap-placeholder { font-family: var(--ks-font); font-size: 14px; color: var(--ks-text-sub); }
body .global-footer, body .custom-html-wrapper, body .gmap-section + :not(.gmap-section) { clear: both; }
/* 会社案内ページの地図（1 枚・中央・785×428） */

/* =========================================================
   6. TOP のカスタムHTML（SERVICE）
   ========================================================= */
.ks-service { position: relative; margin-top: 0; padding: 118px 0 101px; background: var(--ks-band); overflow: hidden; }
.custom-html-inner > .ks-service { margin-top: 0 !important; }
.ks-service .ks-inner { position: relative; z-index: 1; }
.ks-service .ks-sec-head { max-width: 1218px; margin: 0 auto; padding: 0 20px; }
.ks-service .ks-sec-sub { margin-top: 24px; }
.ks-service .ks-sec-title { line-height: 46px; }
.ks-service .ks-sec-lead { text-align: left; color: #000; line-height: 35px; }
.ks-service-row { position: relative; z-index: 1; display: grid; grid-template-columns: 567px 663px; gap: 130px; align-items: start; max-width: 1440px; margin: 98px auto 0; padding-left: 82px; }
.ks-service-row.is-rev { grid-template-columns: 663px 567px; gap: 109px; margin-top: 124px; padding-left: 0; }
.ks-service-row .ks-service-body { padding-top: 55px; }
.ks-service-row.is-rev .ks-service-body { order: 2; }
.ks-service-row.is-rev .ks-service-photo { order: 1; }
.ks-service-head { display: flex; align-items: center; justify-content: center; gap: 57px; height: 97px; border-bottom: 1px solid var(--ks-accent); }
.ks-service-num { display: flex; flex-direction: column; align-items: center; font-family: var(--ks-en); font-weight: 400; color: var(--ks-accent); text-align: center; }
.ks-service-num small { font-size: 24px; line-height: 53px; }
.ks-service-num strong { font-size: 64px; line-height: 43px; font-weight: 400; }
.ks-service-num .ks-ac { color: var(--ks-green); }
.ks-service-head h3 { font-size: 24px; line-height: 53px; letter-spacing: 1.44px; font-weight: 700; color: var(--ks-accent); text-align: center; }
.ks-service-text { margin-top: 38px; font-size: 16px; line-height: 33px; letter-spacing: 0.96px; }
.ks-service-photo { height: 395px; border-radius: 30px 0 0 30px; overflow: hidden; }
.ks-service-row.is-rev .ks-service-photo { border-radius: 0 30px 30px 0; }
.ks-service-photo img { width: 100%; height: 100%; object-fit: cover; }
.ks-service-btns { position: relative; z-index: 1; display: flex; justify-content: center; gap: 101px; margin-top: 95px; }
.ks-service .ks-deco-a { left: 0; top: -16px; width: 449px; height: 409px; opacity: .29; }
.ks-service .ks-deco-b { right: 26px; top: 35px; width: 158px; height: 166px; }
.ks-service .ks-deco-c { right: 9px; top: 890px; width: 176px; height: 120px; }
.ks-service .ks-deco-d { left: 60px; bottom: 0; width: 142px; height: 234px; }
.ks-service .ks-deco-e { left: -3px; top: 812px; width: 411px; height: 471px; transform: rotate(-10deg); }

/* =========================================================
   7. 共通フッター
   ========================================================= */
/* ---- 7-1 CONTACT 帯（カスタムHTML）1440×523 ---- */
.ks-contact { position: relative; padding: 83px 20px 87px; background: var(--ks-band); overflow: hidden; }
.custom-html-inner > .ks-contact { margin-top: 0 !important; }
.ks-contact .ks-inner { position: relative; z-index: 1; max-width: 1178px; margin: 0 auto; text-align: center; }
.ks-contact .ks-sec-en { line-height: 38px; }
.ks-contact .ks-sec-sub { line-height: 39px; }
.ks-contact .ks-sec-lead { max-width: 910px; margin: 26px auto 0; text-align: center; }
.ks-contact-hours { display: block; margin-top: 26px; font-size: 14px; line-height: 19px; letter-spacing: 0.84px; }
.ks-contact-btns { display: flex; justify-content: center; gap: 80px; margin-top: 67px; }
.ks-contact .ks-deco-a { left: 52px; top: 34px; width: 219px; height: 256px; }
.ks-contact .ks-deco-b { right: 83px; bottom: 34px; width: 217px; height: 198px; }
.ks-contact .ks-deco-c { right: -4px; top: 186px; width: 174px; height: 204px; }

/* ---- 7-2 フッター本体（ロゴ＋社名 左・ナビ 中央・著作権バー・PAGE TOP）---- */
body .global-footer {
  position: relative; display: grid; grid-template-columns: 209px minmax(0, 1fr); align-items: center; gap: 0;
  padding: 48px 90px 48px 142px; background: var(--ks-bg); color: var(--ks-text); border-top: 0; overflow: hidden;
}
body .global-footer .info-grid { order: 1; position: relative; z-index: 1; display: block; width: 209px; max-width: none; margin: 0; }
body .global-footer .footer-nav-wrap { order: 2; position: relative; z-index: 1; margin: 0; padding: 0 0 0 176px; background: transparent; border: 0; align-self: center; }
body .global-footer .footer-nav { max-width: none; margin: 0; display: flex; flex-wrap: wrap; justify-content: flex-start; align-items: center; gap: 0 56px; }
body .global-footer .footer-nav-link { padding: 0; border: 0; white-space: nowrap; color: var(--ks-text); font-size: 16px; font-weight: 500; line-height: 26px; letter-spacing: 0.96px; }
body .global-footer .footer-nav-link:last-child { border: 0; font-size: 14px; letter-spacing: 0.84px; line-height: 19px; }
body .global-footer .footer-nav-link:hover { color: var(--ks-accent); }
body .global-footer .footer-nav-brand, body .global-footer .footer-genre, body .global-footer .footer-table, body .global-footer .footer-payments-box, body .global-footer .gmap-wrap { display: none; }
body .global-footer .shop-info { opacity: 1; transform: none; }
body .global-footer .footer-brand { text-align: center; }
body .global-footer .footer-brand::before { content: ""; display: block; width: 174px; height: 160px; margin: 0 auto 20px; background: url("/image/assets/ks_logo.png") center / contain no-repeat; }
body .global-footer .footer-brand h2 { font-family: var(--ks-font); font-size: 30px; line-height: 22px; letter-spacing: 0; font-weight: 700; color: var(--ks-accent); white-space: nowrap; }
body .footer-copy-text, body .footer-copy { padding: 17px 20px; border: 0; background: var(--ks-accent); color: #fff; font-size: 16px; line-height: 19px; letter-spacing: 0.96px; font-weight: 500; text-align: center; }
body .global-footer .ks-deco-a { left: 6px; top: 0; width: 130px; height: 152px; transform: scaleX(-1); }
body .global-footer .ks-deco-b { right: 31px; top: 1px; width: 106px; height: 108px; transform: rotate(39deg); }
body .global-footer .ks-deco-c { right: 257px; bottom: 0; width: 75px; height: 86px; }
/* PAGE TOP（61×61・#79D5AC・白い山形。共通ヘッダーのスクリプトがフッターに差し込む） */
.ks-pagetop { position: absolute; right: 50px; bottom: 16px; z-index: 2; display: flex; align-items: center; justify-content: center; width: 61px; height: 61px; border-radius: 50%; background: var(--ks-green-deep); transition: background .25s ease; }
.ks-pagetop::before { content: ""; width: 20px; height: 12px; background: #fff; -webkit-mask-image: url("/image/assets/ks_ic_pagetop.svg"); -webkit-mask-size: contain; -webkit-mask-position: center; -webkit-mask-repeat: no-repeat; mask-image: url("/image/assets/ks_ic_pagetop.svg"); mask-size: contain; mask-position: center; mask-repeat: no-repeat; }
.ks-pagetop:hover { background: var(--ks-accent); }

/* ---- 7-3 浮遊ボタン：PC では出さない（Figma に無い）。SP は 9 章で画面下に固定 ---- */
body .fc-floating-actions { display: none; }

/* =========================================================
   8. 下層ページ共通・各ページのカスタムHTML
   ========================================================= */
/* 下層の白カード（538×382・角丸 30・padding 50/30）と青い見出し札 */
.ks-card { min-height: 382px; background: #fff; border-radius: 30px; padding: 50px 30px; }
.ks-card-label { display: flex; align-items: center; justify-content: center; height: 47px; border-radius: 10px; background: var(--ks-accent); color: #fff; font-size: 24px; line-height: 35px; letter-spacing: 1.44px; font-weight: 500; }
.ks-card-body { margin-top: 32px; font-size: 16px; line-height: 35px; letter-spacing: 0.96px; }
/* 白カード（891 幅・角丸 20・padding 29/40：会社案内・お問い合わせ） */
.ks-panel { max-width: 891px; margin: 0 auto; background: #fff; border-radius: 20px; padding: 29px 40px; }
/* 白カード（1078 幅・角丸 30・影：ご利用案内） */
.ks-box { max-width: 1078px; margin: 0 auto; background: #fff; border-radius: 30px; box-shadow: 0 0 5.3px rgba(0, 0, 0, .16); }

/* ---- 8-1 下層共通の部品 ---- */
.ks-band { background: var(--ks-band); }
.ks-band, .ks-svc, .ks-greeting, .ks-company, .ks-contact-intro { position: relative; overflow: hidden; }
.ks-band .ks-inner, .ks-svc .ks-inner, .ks-greeting .ks-inner, .ks-company .ks-inner, .ks-contact-intro .ks-inner { position: relative; z-index: 1; max-width: 1250px; margin: 0 auto; padding: 0 20px; }
.custom-html-inner > .ks-band, .custom-html-inner > .ks-svc, .custom-html-inner > .ks-company { margin-top: 0 !important; }
.ks-panel-title { font-size: 24px; line-height: 35px; letter-spacing: 1.44px; font-weight: 700; color: var(--ks-accent); }
.ks-panel-text { margin-top: 28px; font-size: 16px; line-height: 35px; letter-spacing: 0.96px; }
.ks-panel-title + .ks-panel-text { margin-top: 28px; }
.ks-panel > .ks-panel-text:first-child { margin-top: 0; }
.ks-panel-center .ks-panel-text { text-align: center; }
.ks-panel-sign { margin-top: 28px; font-size: 20px; line-height: 35px; letter-spacing: 1.2px; text-align: right; }
.ks-list { list-style: none; font-size: 16px; line-height: 50px; letter-spacing: 0.96px; }
.ks-dl { display: grid; grid-template-columns: 103px 1fr; column-gap: 21px; font-size: 16px; line-height: 35px; letter-spacing: 0.96px; }
.ks-dl dt, .ks-dl dd { padding: 8px 0; border-bottom: 1px solid #B2B2B2; }
.ks-dl dd { margin: 0; }
.ks-dl-420 { width: 420px; max-width: 100%; }
.ks-cards { display: grid; grid-template-columns: repeat(2, 538px); justify-content: center; gap: 108px; }
.ks-card-body { width: fit-content; max-width: 100%; margin: 32px auto 0; }
.ks-dl.ks-card-body { width: 100%; }
.ks-dl-420.ks-card-body { width: 420px; }

/* ---- 8-2 サービス紹介 ---- */
.ks-svc-b { padding: 111px 0 150px; }
.ks-svc-gh { padding: 155px 0 246px; }
.ks-svc-lead { max-width: 998px; margin: 38px auto 0; font-size: 16px; line-height: 35px; letter-spacing: 0.96px; }
.ks-svc-gh .ks-svc-lead { max-width: 882px; }
.ks-svc .ks-cards { margin-top: 64px; }
.ks-svc-gh .ks-cards { margin-top: 65px; }
.ks-svc-b .ks-deco-a { left: 1px; top: 0; width: 189px; height: 198px; }
.ks-svc-gh .ks-deco-a { left: -23px; top: 0; width: 411px; height: 471px; transform: rotate(-10deg); }
.ks-svc-gh .ks-deco-b { right: 9px; top: 640px; width: 176px; height: 120px; }

/* ---- 8-3 会社案内 ---- */
.ks-greeting { padding: 111px 0 111px; }
.ks-greeting .ks-panel, .ks-contact-intro .ks-panel { margin-top: 55px; }
.ks-greeting .ks-deco-a { left: 1px; top: 0; width: 189px; height: 198px; }
.ks-company { padding: 111px 0 0; }
.ks-company-dl { display: grid; grid-template-columns: 170px 1fr; max-width: 662px; margin: 88px auto 0; font-size: 16px; line-height: 60px; letter-spacing: 0.96px; }
.ks-company-dl dd { margin: 0; }
.ks-company .ks-deco-a { right: 105px; top: 40px; width: 204px; height: 243px; }
.ks-company .ks-deco-b { right: 0; top: 0; width: 222px; height: 260px; }
/* 本文中の地図（会社案内の本社 785×428）。CONTACT 帯より前にある地図に共通ヘッダーのスクリプトが .ks-page-map を付ける */
body .gmap-section.ks-page-map { float: none; width: 100%; padding: 95px 20px 286px; }
body .gmap-section.ks-page-map .gmap-container { max-width: 785px; }
body .gmap-section.ks-page-map .gmap-frame-wrap { height: 428px; }

/* ---- 8-4 お問い合わせ ---- */
.ks-contact-intro { padding: 111px 0 105px; }
.ks-contact-intro .ks-panel { margin-top: 92px; }
.ks-contact-intro .ks-deco-a { left: 1px; top: 0; width: 189px; height: 198px; }
body .contact-form-section { position: relative; padding: 115px 20px 235px; background: transparent; }
body .contact-section-header { max-width: 1210px; margin: 0 auto; text-align: center; }
body .contact-main-title { margin: 0; font-family: var(--ks-en); font-weight: 500; font-size: 48px; line-height: 48px; letter-spacing: 2.88px; color: var(--ks-accent); }
body .contact-sub-text { margin: 1px 0 0; padding: 10px; border-bottom: 2px solid var(--ks-accent); font-family: var(--ks-font); font-weight: 500; font-size: 24px; line-height: 35px; letter-spacing: 1.44px; color: var(--ks-text); }
body .contact-container { max-width: 775px; margin: 95px auto 0; }
body .form-wrapper { border: 0; padding: 0; }
body .contact-success-msg { padding: 40px 20px; text-align: center; font-size: 16px; line-height: 35px; }
body .contact-success-msg i { display: block; margin-bottom: 12px; font-size: 32px; color: var(--ks-accent); }
body .form-group { display: grid; grid-template-columns: 243px 532px; align-items: center; margin: 0 0 18px; }
body .form-group-textarea { align-items: start; }
body .form-group label { display: flex; align-items: center; gap: 0; margin: 0; font-size: 16px; line-height: 43px; letter-spacing: 0.96px; font-weight: 500; color: var(--ks-text); }
body .form-group label .required, body .form-group label .optional { order: -1; margin: 0 1em 0 0; padding: 0; border: 0; background: none; font-size: 16px; font-weight: 500; letter-spacing: 0.96px; }
body .form-group label .required { color: #F0463C; }
body .form-group label .optional { color: var(--ks-text); }
body .restaurant-contact-form input[type="text"], body .restaurant-contact-form input[type="email"], body .restaurant-contact-form input[type="tel"], body .restaurant-contact-form textarea {
  width: 100%; height: 43px; padding: 0 19px; border: 1px solid var(--ks-line); border-radius: 6px; background: #fff; color: var(--ks-text);
  font-family: var(--ks-font); font-size: 14px; letter-spacing: 0.84px; box-shadow: none;
}
body .restaurant-contact-form textarea { height: 169px; padding: 12px 19px; line-height: 26px; resize: vertical; }
body .restaurant-contact-form ::placeholder { color: #C1C1C1; }
body .restaurant-contact-form input:focus, body .restaurant-contact-form textarea:focus { outline: none; border-color: var(--ks-accent); box-shadow: none; }
body .form-submit-wrap { margin-top: 45px; text-align: center; }
body .btn-submit-contact { transform: none; }
body .btn-submit-contact:hover { transform: none; }

/* ---- 8-5 お知らせ一覧（news_list_grid 改修版）---- */
body .news-list-grid-section { position: relative; padding: 147px 78px 307px 80px; background: transparent; }
body .news-section-header { display: none; }
body .nlg-wrap { display: grid; grid-template-columns: minmax(0, 900px) 298px; justify-content: space-between; gap: 84px; max-width: 1282px; margin: 0 auto; align-items: start; }
body .nlg-wrap--nosidebar { grid-template-columns: minmax(0, 900px); justify-content: center; }
body .nlg-grid { display: block; max-width: none; }
body .nlg-empty { padding: 40px 0; text-align: center; font-size: 16px; line-height: 35px; }
body .nlg-card { display: block; margin: 0 0 75px; padding: 0; border: 0; background: none; overflow: visible; }
body .nlg-card:last-child { margin-bottom: 0; }
body .nlg-bar { display: flex; align-items: center; justify-content: center; min-height: 60px; padding: 12px 20px; background: var(--ks-accent); color: #fff; }
body .nlg-title { margin: 0; font-family: var(--ks-font); font-size: 22px; line-height: 35px; letter-spacing: 1.32px; font-weight: 700; color: #fff; text-align: center; }
body a.nlg-bar:hover { background: #0098b2; }
body .nlg-row { display: grid; grid-template-columns: 245px minmax(0, 605px); column-gap: 45px; margin-top: 15px; }
body .nlg-img { grid-row: 1 / 3; width: 245px; height: 245px; margin-top: 42px; aspect-ratio: auto; overflow: hidden; background: var(--ks-band); display: flex; align-items: center; justify-content: center; }
body .nlg-img img { width: 100%; height: 100%; object-fit: cover; transition: none; }
body .nlg-img.is-logo img { width: 167px; height: 154px; object-fit: contain; }
body .nlg-body { padding: 0; }
body .nlg-meta { display: flex; align-items: center; justify-content: flex-end; gap: 25px; margin: 0; padding-right: 12px; }
body .nlg-cat { display: inline-flex; align-items: center; min-height: 33px; padding: 0 10px; background: var(--ks-accent); color: #fff; font-size: 14px; line-height: 33px; letter-spacing: 0.84px; font-weight: 500; }
body .nlg-cat:hover { background: #0098b2; color: #fff; }
body .nlg-date { margin: 0; padding: 0; border: 0; background: none; font-family: var(--ks-font); font-size: 16px; line-height: 35px; letter-spacing: 0.96px; font-weight: 500; color: var(--ks-text); }
body .nlg-excerpt { margin: 55px 0 0; font-size: 14px; line-height: 35px; letter-spacing: 0.84px; color: var(--ks-text); }
body .nlg-more { display: inline-flex; align-items: center; min-height: 33px; margin: 57px 0 0 auto; padding: 0 10px; background: var(--ks-accent); color: #fff; font-size: 14px; line-height: 33px; letter-spacing: 0.84px; font-weight: 500; }
body .nlg-body { display: flex; flex-direction: column; align-items: stretch; }
body .nlg-more:hover { background: #0098b2; color: #fff; }
body .nlg-pager { display: flex; justify-content: center; gap: 32px; margin-top: 211px; font-size: 14px; line-height: 35px; letter-spacing: 0.84px; }
body .nlg-page { color: var(--ks-text); }
body .nlg-page.is-current { color: var(--ks-accent); font-weight: 700; }
body .nlg-side-title { display: flex; align-items: center; justify-content: center; min-height: 60px; margin: 0; background: var(--ks-accent); color: #fff; font-size: 20px; line-height: 35px; letter-spacing: 1.2px; font-weight: 700; }
body .nlg-side-list { list-style: none; margin: 16px 0 0; padding: 0; }
body .nlg-side-list a { display: block; padding: 0 0 0 1em; font-size: 14px; line-height: 35px; letter-spacing: 0.84px; color: var(--ks-text); }
body .nlg-side-list a.is-current, body .nlg-side-list a:hover { color: var(--ks-accent); }

/* ---- 8-6 お知らせ記事（news_article_body）---- */
body .news-article-body-section { padding: 147px 20px 246px; background: transparent; }
body .nab-container { max-width: 900px; margin: 0 auto; }
body .nab-header { margin: 0; padding: 0; border: 0; }
body .nab-meta { margin: 15px 0 0; text-align: right; }
body .nab-date { font-family: var(--ks-font); font-size: 16px; line-height: 35px; letter-spacing: 0.96px; font-weight: 500; color: var(--ks-text); }
body .nab-date i { display: none; }
body .nab-title { display: flex; align-items: center; justify-content: center; min-height: 60px; margin: 0; padding: 12px 20px; background: var(--ks-accent); color: #fff; font-family: var(--ks-font); font-size: 22px; line-height: 35px; letter-spacing: 1.32px; font-weight: 700; text-align: center; }
body .nab-main-img-box { max-width: 605px; margin: 30px auto 0; aspect-ratio: auto; background: none; }
body .nab-main-img-box img { height: auto; }
body .nab-body-text { margin-top: 40px; font-family: var(--ks-font); font-size: 16px; line-height: 35px; letter-spacing: 0.96px; color: var(--ks-text); }
body .nab-footer-nav { margin-top: 60px; padding: 0; border: 0; }
html body .btn-nab-back { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-width: 199px; min-height: 45px; padding: 0 22px 0 26px; border: 0 !important; border-radius: 59px; background: var(--ks-accent) !important; color: #fff !important; font-weight: 700; font-size: 16px; line-height: 35px; letter-spacing: 0.96px; }
html body .btn-nab-back i { display: none; }
html body .btn-nab-back::after { content: ""; width: 32px; height: 7px; background: currentColor; -webkit-mask-image: url("/image/assets/ks_ic_arrow.svg"); -webkit-mask-size: contain; -webkit-mask-position: center; -webkit-mask-repeat: no-repeat; mask-image: url("/image/assets/ks_ic_arrow.svg"); mask-size: contain; mask-position: center; mask-repeat: no-repeat; }
html body .btn-nab-back:hover { background: #0098b2 !important; }

/* ---- 8-7 ご利用案内 ---- */
.ks-guide { position: relative; overflow: hidden; }
.ks-guide .ks-inner { position: relative; z-index: 1; max-width: 1250px; margin: 0 auto; padding: 0 20px; }
.custom-html-inner > .ks-guide { margin-top: 0 !important; }
.ks-guide-fh { padding: 121px 0 0; }
.ks-guide-gh { padding: 205px 0 0; }
.ks-guide-flow { padding: 118px 0 0; }
.ks-guide-price { padding: 118px 0 265px; }
.ks-guide-lead { max-width: 954px; margin: 38px auto 0; font-size: 16px; line-height: 35px; letter-spacing: 0.96px; }
.ks-guide-gh .ks-guide-lead { max-width: 952px; }
.ks-guide-gh .ks-wish { margin-top: 109px; }
.ks-guide .ks-hline h2 { text-align: center; }
/* こんな目標や悩みがある方へ（白カード＋青い帯） */
.ks-wish { position: relative; z-index: 1; margin-top: 83px; padding-bottom: 36px; }
.ks-wish-band { position: absolute; left: 0; right: 0; bottom: 0; height: 161px; background: var(--ks-accent) url("/image/assets/ks_guide_band.webp") center / cover no-repeat; }
.ks-wish-band::after { content: ""; position: absolute; inset: 0; background: var(--ks-accent); opacity: .8; }
.ks-wish-box { position: relative; z-index: 1; padding: 27px 24px 54px; }
.ks-box-title { font-size: 24px; line-height: 35px; letter-spacing: 1.44px; font-weight: 700; color: var(--ks-accent); text-align: center; }
.ks-chips { list-style: none; display: grid; grid-template-columns: repeat(2, 410px); justify-content: center; gap: 16px 22px; margin: 38px 0 0; }
.ks-chips-494 { grid-template-columns: repeat(2, 494px); gap: 16px 43px; }
.ks-chips li { min-height: 55px; padding: 10px 8px 10px 10px; background: var(--ks-accent); color: #fff; font-size: 16px; line-height: 35px; letter-spacing: 0.96px; white-space: nowrap; overflow: hidden; }
/* ご利用できる方・主な対象者 */
.ks-who { margin-top: 118px; padding: 27px 41px; }
.ks-who-list { list-style: none; width: fit-content; max-width: 100%; margin: 40px auto 0; font-size: 16px; line-height: 43px; letter-spacing: 0.96px; }
/* 一日の流れ */
.ks-day-head { margin-top: 118px; }
.ks-day { list-style: none; width: 830px; max-width: 100%; margin: 81px auto 0; padding: 0; }
.ks-day li { position: relative; display: flex; align-items: center; gap: 262px; height: 60px; padding: 12px 16px; border-radius: 20px; background: var(--ks-band); }
.ks-day li + li { margin-top: 33px; }
.ks-day li + li::before { content: ""; position: absolute; left: 50%; top: -24px; width: 0; height: 0; margin-left: -8px; border-left: 8px solid transparent; border-right: 8px solid transparent; border-top: 14px solid var(--ks-green-deep); }
.ks-day li.is-first, .ks-day li.is-last { background: var(--ks-band-blue); }
.ks-day li.is-rest { background: var(--ks-orange-pale); }
.ks-day-time { display: inline-flex; align-items: center; justify-content: center; width: 120px; height: 36px; border-radius: 28px; background: var(--ks-accent); color: #fff; font-size: 18px; line-height: 35px; letter-spacing: 1.08px; white-space: pre; }
.ks-day li.is-rest .ks-day-time { background: var(--ks-orange); }
.ks-day-act { font-size: 16px; line-height: 35px; letter-spacing: 0.96px; }
/* ご利用までの流れ */
.ks-flow-lead { width: fit-content; margin-top: 38px; }
.ks-steps { list-style: none; width: 830px; max-width: 100%; margin: 65px auto 0; padding: 0; }
.ks-steps li { display: flex; align-items: flex-start; gap: 67px; min-height: 127px; padding: 22px 52px; border-radius: 20px; background: var(--ks-band); }
.ks-steps li + li { margin-top: 34px; }
.ks-step-no { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 86px; height: 35px; border-radius: 28px; background: var(--ks-accent); color: #fff; font-family: var(--ks-en); font-weight: 500; font-size: 18px; line-height: 35px; letter-spacing: 1.08px; }
.ks-step-body h3 { font-size: 20px; line-height: 35px; letter-spacing: 1.2px; font-weight: 500; }
.ks-step-body p { margin-top: 13px; font-size: 16px; line-height: 35px; letter-spacing: 0.96px; white-space: nowrap; }
/* 料金案内 */
.ks-price { width: 733px; max-width: 100%; margin: 78px auto 0; }
.ks-price-label { display: flex; flex-direction: column; font-size: 20px; line-height: 29px; letter-spacing: 1.2px; font-weight: 500; }
.ks-price-label .ks-ac-strong { font-size: 24px; line-height: 34px; color: var(--ks-accent); }
.ks-price-label .ks-ac-strong + * { padding-left: 1em; }
.ks-ac-strong { color: var(--ks-accent); font-size: 20px; }
.ks-table { width: 100%; margin-top: 15px; border-collapse: collapse; border: 1px solid var(--ks-accent); font-size: 16px; line-height: 23px; letter-spacing: 0.96px; }
.ks-table th, .ks-table td { padding: 15px 10px; border: 1px solid var(--ks-accent); text-align: center; font-weight: 500; }
.ks-table th:first-child, .ks-table td:first-child { width: 135px; background: var(--ks-band); }
.ks-table th:nth-child(2), .ks-table td:nth-child(2) { width: 140px; }
.ks-table td:last-child { text-align: left; }
.ks-table td:nth-child(2) { white-space: nowrap; }
.ks-table th:last-child { text-align: center; }
.ks-price-note { margin-top: 17px; padding-left: 5px; font-size: 16px; line-height: 30px; letter-spacing: 0.96px; }
.ks-price-trial { margin-top: 24px; padding-left: 0; }
.ks-price-trial + .ks-price-label { margin-top: 71px; }
.ks-guide-fh .ks-deco-a { left: 1px; top: 0; width: 189px; height: 198px; }
.ks-guide-fh .ks-deco-b { right: -6px; top: 198px; width: 209px; height: 280px; }
.ks-guide-gh .ks-deco-a { right: 101px; top: -105px; width: 142px; height: 166px; }
.ks-guide-gh .ks-deco-b { right: -11px; top: -34px; width: 131px; height: 156px; }
.ks-guide-price .ks-deco-a { left: -34px; top: 0; width: 366px; height: 345px; transform: rotate(-20deg); }

/* =========================================================
   9. SP（768px 以下）
   ========================================================= */
@media (max-width: 768px) {
  body { font-size: 16px; line-height: 33px; }
  .ks-sec-head .ks-en, .ks-sec-en { font-size: 40px; line-height: 40px; }
  .ks-sec-sub { margin-top: 20px; }
  .ks-sec-title { margin-top: 20px; }
  .ks-sec-lead { margin-top: 20px; }
  .ks-hline { max-width: none; gap: 12px; padding: 8px 4px; }
  .ks-hline h2, .ks-hline h3 { font-size: 24px; line-height: 35px; letter-spacing: 1.44px; }
  .ks-hblock .ks-hline h2 { font-size: 20px; line-height: 30px; }

  /* MV 375×720・キャッチ 24/45・サブ 16/31 */
  body .hero-wrapper { height: 720px; }
  body .hero-slide-caption, body .hero-cap-top-left .hero-slide-caption, body .hero-cap-mid-left .hero-slide-caption, body .hero-cap-bottom-left .hero-slide-caption,
  body .hero-cap-top-center .hero-slide-caption, body .hero-cap-mid-center .hero-slide-caption, body .hero-cap-bottom-center .hero-slide-caption,
  body .hero-cap-top-right .hero-slide-caption, body .hero-cap-mid-right .hero-slide-caption, body .hero-cap-bottom-right .hero-slide-caption { top: 328px; left: 10px; right: 4px; }
  body .hero-slide-catch { max-width: none; font-size: 24px !important; line-height: 45px; letter-spacing: 1.44px; }
  body .hero-slide-sub { max-width: 335px; margin-top: 25px; font-size: 16px !important; line-height: 31px; letter-spacing: 0.96px; }
  body .hero-slide-img[style*="ks_mv_1"] { background-position: 69% center; }
  body .hero-slide-img[style*="ks_mv_2"] { background-position: 76% center; }
  body .hero-slide-img[style*="ks_mv_3"] { background-position: 29% center; }
  body .page-hero-wrapper { height: 360px; }
  body .ph-container { padding-top: 170px; }
  body .ph-desc { font-size: 40px; line-height: 40px; }
  body .ph-title { font-size: 24px; line-height: 45px; }

  /* SP はイラストが端からはみ出す分を各セクションで隠す（横スクロール防止） */
  body .news-bar-section, body .concept-section, body .feature-cards-section, body .global-footer { overflow: hidden; }
  /* NEWS */
  body .news-bar-section { padding: 40px 20px 158px; }
  body .news-bar-container { grid-template-columns: 1fr; gap: 23px; margin: 0; }
  body .news-bar-head { text-align: center; }
  body .news-bar-eyebrow { font-size: 40px; line-height: 40px; text-align: center; }
  body .news-bar-label { text-align: center; padding-right: 0; }
  body .news-bar-link, body .news-bar-link.is-empty { flex-wrap: wrap; gap: 0 20px; }
  body .news-bar-link .news-title { white-space: normal; }
  body .news-bar-section .ks-deco-a { left: 0; top: 0; width: 95px; height: 108px; }
  body .news-bar-section .ks-deco-b { right: 8px; top: auto; bottom: 0; width: 137px; height: 184px; }

  /* ABOUT */
  body .concept-section, body .concept-section.fade-up { padding: 0 0 69px !important; } /* blocks.css の SP 指定が !important */
  body .concept-container, body .concept-container.concept-reverse { grid-template-columns: 1fr; gap: 49px; margin: 0; padding: 0; }
  body .concept-container .concept-img-wrapper, body .concept-container.concept-reverse .concept-img-wrapper { width: 355px; max-width: 95%; height: 239px; margin-top: 1px; border-radius: 0 15px 15px 0; }
  body .concept-container .concept-content { padding: 0 20px 0 19px; }
  body .concept-content p.concept-eyebrow { font-size: 40px; line-height: 40px; }
  body .concept-title, body .concept-content h2 { margin-top: 20px; }
  body .concept-text, body .concept-content p.concept-text { margin-top: 20px; }
  body .concept-section .ks-deco-a { right: 29px; top: 329px; width: 102px; height: 122px; }
  body .concept-section .ks-deco-b { right: -24px; top: 246px; width: 111px; height: 130px; }

  /* SERVICE */
  .ks-service { padding: 70px 0 81px; }
  .ks-service .ks-sec-head { padding: 0 20px; }
  .ks-service .ks-sec-en { font-size: 40px; line-height: 33px; }
  .ks-service-row, .ks-service-row.is-rev { grid-template-columns: 1fr; gap: 7px; margin-top: 72px; padding: 0; }
  .ks-service-row.is-rev { gap: 12px; margin-top: 81px; }
  .ks-service-row .ks-service-body { padding: 0 20px 0 21px; }
  .ks-service-row .ks-service-photo, .ks-service-row.is-rev .ks-service-photo { order: -1; } /* SP は写真 → 文の順（Figma） */
  .ks-service-row.is-rev .ks-service-body { order: initial; }
  .ks-service-photo { width: 355px; max-width: 95%; height: 212px; margin-left: auto; border-radius: 16px 0 0 16px; }
  .ks-service-row.is-rev .ks-service-photo { margin-left: 0; border-radius: 0 16px 16px 0; }
  .ks-service-head { flex-direction: column; gap: 15px; height: auto; padding-bottom: 0; }
  .ks-service-row.is-rev .ks-service-head { gap: 11px; }
  .ks-service-btns { flex-direction: column; align-items: center; gap: 41px; margin-top: 88px; }
  .ks-service .ks-deco-a { width: 271px; height: 239px; top: 0; }
  .ks-service .ks-deco-b, .ks-service .ks-deco-e { display: none; }
  .ks-service .ks-deco-c { right: 0; top: 1279px; width: 133px; height: 91px; }
  .ks-service .ks-deco-d { left: auto; right: 11px; bottom: 175px; width: 118px; height: 194px; }

  /* FEATURES */
  body .feature-cards-section { padding: 92px 20px 125px; }
  body .feature-cards-header { margin-bottom: 48px; padding: 0 3px; }
  body .feature-cards-eyebrow { font-size: 40px; line-height: 38px; }
  body .feature-cards-title { margin-top: 26px; }
  body .fc-cards-4, body .fc-cards-3, body .fc-cards-2 { grid-template-columns: 1fr; gap: 48px; }
  body .feature-card, body .feature-card:nth-child(even) { padding: 9px 8px; border-radius: 11px; }
  body .feature-card:nth-child(n) { transition-delay: 0s; }
  body .feature-card-num { height: 72px; font-size: 44.67px; line-height: 39px; }
  body .feature-card-num .ks-fen { font-size: 17.87px; line-height: 39px; }
  body .feature-card-media { aspect-ratio: 319 / 255; margin-top: 10px; }
  body .feature-card-title, body .feature-card:nth-child(even) .feature-card-title { margin-top: 10px; font-size: 22px; line-height: 32px; }
  body .feature-card-text { margin-top: 10px; font-size: 16px; line-height: 33.5px; letter-spacing: 0.96px; }
  body .feature-cards-section .ks-deco-a { left: 0; top: 0; width: 102px; height: 122px; }
  body .feature-cards-section .ks-deco-b { right: -11px; top: 4px; width: 119px; height: 126px; }
  body .feature-cards-section .ks-deco-c { left: 146px; bottom: 0; width: 97px; height: 98px; }
  body .feature-cards-section .ks-deco-d { left: 237px; bottom: 20px; width: 97px; height: 105px; }

  /* CONTACT 帯 */
  .ks-contact { padding: 76px 20px 88px; }
  .ks-contact .ks-sec-en { line-height: 31px; }
  .ks-contact .ks-sec-sub { margin-top: 19px; line-height: 27px; }
  .ks-contact .ks-sec-lead { margin-top: 19px; }
  .ks-contact-hours { margin-top: 19px; text-align: left; padding-left: 36px; }
  .ks-contact-btns { flex-direction: column; align-items: center; gap: 32px; margin-top: 48px; }
  .ks-contact .ks-deco-a { left: 0; top: 5px; width: 129px; height: 151px; }
  .ks-contact .ks-deco-b { right: 46px; bottom: 0; width: 115px; height: 105px; }
  .ks-contact .ks-deco-c { right: 0; top: auto; bottom: 52px; width: 92px; height: 108px; }

  /* 地図 375×311 ×2（縦積み） */
  body .gmap-section { float: none; width: 100%; }
  body .gmap-frame-wrap { height: 311px; }

  /* フッター（ロゴ中央 → 社名 → ナビ 2 行 → 著作権） */
  body .global-footer { grid-template-columns: 1fr; padding: 33px 20px 40px; }
  body .global-footer .info-grid { width: auto; margin: 0 auto; }
  body .global-footer .footer-brand::before { margin-bottom: 20px; }
  body .global-footer .footer-nav-wrap { padding: 59px 0 0 3px; }
  body .global-footer .footer-nav { display: grid; grid-template-columns: 120px 123px auto; gap: 29px 0; }
  body .global-footer .footer-nav-link:last-child { line-height: 26px; }
  body .global-footer .ks-deco-a { width: 89px; height: 104px; }
  body .global-footer .ks-deco-b { right: 0; top: 206px; width: 57px; height: 59px; }
  body .global-footer .ks-deco-c { right: 83px; bottom: 0; width: 41px; height: 46px; }
  /* PAGE TOP は画面右下に固定（下部バーの右端 61×60） */
  .ks-pagetop { position: fixed; right: 0; bottom: 0; width: 61px; height: 60px; border-radius: 0; z-index: 1900; }
  /* SP 下部固定：TEL 187×60 ＋ お問い合わせ 125×60（水色）。PAGE TOP は右端 */
  body.has-floating-actions { padding-bottom: 60px; }
  body .fc-floating-actions {
    position: fixed; display: flex; flex-direction: row; gap: 0; left: 0; right: 61px; top: auto; bottom: 0; transform: none;
    padding: 0; background: var(--ks-accent); border: 0; backdrop-filter: none; z-index: 1800;
  }
  body .fc-floating-action, body .fc-floating-contact {
    display: flex; align-items: center; justify-content: flex-start;
    flex: 1 1 0; min-width: 0; min-height: 60px; height: 60px; padding: 4px 0 0; flex-direction: column; gap: 3px;
    writing-mode: horizontal-tb; border: 0; border-radius: 0; background: var(--ks-accent); color: #fff; box-shadow: none;
    font-size: 26px; line-height: 26px; letter-spacing: 0; font-weight: 700;
  }
  body .fc-floating-phone { flex: 0 0 187px; }
  body .fc-floating-action i { display: none; }
  body .fc-floating-action::before { content: ""; width: 25px; height: 25px; background: #fff; -webkit-mask-image: url("/image/assets/ks_ic_phone.svg"); -webkit-mask-size: contain; -webkit-mask-position: center; -webkit-mask-repeat: no-repeat; mask-image: url("/image/assets/ks_ic_phone.svg"); mask-size: contain; mask-position: center; mask-repeat: no-repeat; }
  body .fc-floating-contact { padding-top: 12px; gap: 6px; font-size: 18px; line-height: 17px; letter-spacing: 1.08px; }
  body .fc-floating-contact::before { width: 20px; height: 15px; -webkit-mask-image: url("/image/assets/ks_ic_mail.svg"); mask-image: url("/image/assets/ks_ic_mail.svg"); }
  body .fc-floating-action:hover { padding-right: 0; background: #0098b2; color: #fff; }
  /* 下層のカード */
  .ks-card { padding: 30px 20px; border-radius: 20px; }
  .ks-card-label { height: 44px; font-size: 20px; }
  .ks-panel { padding: 24px 20px; }
  /* 下層（サービス紹介・会社案内・お問い合わせ・お知らせ） */
  .ks-band .ks-inner, .ks-svc .ks-inner, .ks-greeting .ks-inner, .ks-company .ks-inner, .ks-contact-intro .ks-inner { padding: 0 20px; }
  .ks-svc-b { padding: 60px 0 70px; }
  .ks-svc-gh { padding: 70px 0 90px; }
  .ks-svc-lead { margin-top: 24px; line-height: 33px; }
  .ks-cards, .ks-svc .ks-cards, .ks-svc-gh .ks-cards { grid-template-columns: 1fr; gap: 24px; margin-top: 32px; }
  .ks-card-body { margin-top: 20px; }
  .ks-list { line-height: 40px; }
  .ks-dl { grid-template-columns: 1fr; column-gap: 0; }
  .ks-dl dt { padding-bottom: 0; border-bottom: 0; color: var(--ks-accent); }
  .ks-dl dd { padding-top: 0; }
  .ks-dl-420.ks-card-body { width: 100%; }
  .ks-svc-b .ks-deco-a, .ks-greeting .ks-deco-a, .ks-contact-intro .ks-deco-a { width: 95px; height: 108px; }
  .ks-svc-gh .ks-deco-a { display: none; }
  .ks-svc-gh .ks-deco-b { right: 0; top: 40px; width: 133px; height: 91px; }
  .ks-greeting { padding: 60px 0 70px; }
  .ks-greeting .ks-panel, .ks-contact-intro .ks-panel { margin-top: 32px; }
  .ks-panel-title { font-size: 20px; line-height: 30px; }
  .ks-panel-text { margin-top: 20px; line-height: 33px; }
  .ks-panel-center .ks-panel-text { text-align: left; }
  .ks-company { padding: 70px 0 0; }
  .ks-company-dl { grid-template-columns: 1fr; margin-top: 32px; line-height: 33px; }
  .ks-company-dl dt { color: var(--ks-accent); font-weight: 700; }
  .ks-company-dl dd { padding-bottom: 12px; margin-bottom: 12px; border-bottom: 1px solid var(--ks-line); }
  .ks-company .ks-deco-a { right: 20px; top: 0; width: 102px; height: 122px; }
  .ks-company .ks-deco-b { right: -24px; top: 90px; width: 111px; height: 130px; }
  body .gmap-section.ks-page-map { padding: 40px 20px 90px; }
  body .gmap-section.ks-page-map .gmap-frame-wrap { height: 260px; }
  .ks-contact-intro { padding: 60px 0 70px; }
  body .contact-form-section { padding: 70px 20px 90px; }
  body .contact-main-title { font-size: 40px; line-height: 40px; }
  body .contact-sub-text { font-size: 20px; line-height: 30px; }
  body .contact-container { margin-top: 40px; }
  body .form-group { grid-template-columns: 1fr; margin-bottom: 16px; }
  body .form-group label { line-height: 33px; margin-bottom: 6px; }
  body .form-submit-wrap { margin-top: 32px; }
  body .btn-submit-contact { width: auto; }
  body .news-list-grid-section { padding: 60px 20px 90px; }
  body .nlg-wrap, body .nlg-wrap--nosidebar { grid-template-columns: 1fr; gap: 48px; }
  body .nlg-card { margin-bottom: 48px; }
  body .nlg-title { font-size: 18px; line-height: 28px; }
  body .nlg-row { grid-template-columns: 1fr; column-gap: 0; row-gap: 16px; }
  body .nlg-img { grid-row: auto; width: 100%; height: auto; aspect-ratio: 1 / 1; max-width: 245px; margin: 0 auto; }
  body .nlg-meta { justify-content: flex-start; }
  body .nlg-excerpt { margin-top: 16px; line-height: 30px; }
  body .nlg-more { margin-top: 16px; }
  body .nlg-pager { margin-top: 40px; }
  body .news-article-body-section { padding: 60px 20px 90px; }
  body .nab-title { font-size: 18px; line-height: 28px; }
  body .nab-body-text { margin-top: 24px; line-height: 33px; }
  /* ご利用案内 */
  .ks-guide-fh { padding-top: 60px; }
  .ks-guide-gh, .ks-guide-flow, .ks-guide-price { padding-top: 80px; }
  .ks-guide-price { padding-bottom: 90px; }
  .ks-guide-lead { margin-top: 24px; line-height: 33px; }
  .ks-wish { margin-top: 40px; padding: 0 20px 24px; }
  .ks-wish-band { height: 120px; }
  .ks-wish-box { padding: 24px 16px 32px; border-radius: 20px; }
  .ks-box-title { font-size: 20px; line-height: 30px; }
  .ks-chips, .ks-chips-494 { grid-template-columns: 1fr; gap: 12px; margin-top: 20px; }
  .ks-chips li { min-height: 0; line-height: 30px; white-space: normal; }
  .ks-who { margin-top: 48px; padding: 24px 16px; border-radius: 20px; }
  .ks-who-list { margin-top: 20px; line-height: 33px; }
  .ks-day-head { margin-top: 48px; }
  .ks-day { margin-top: 40px; }
  .ks-day li { gap: 16px; height: auto; min-height: 56px; padding: 10px 12px; }
  .ks-day li + li { margin-top: 26px; }
  .ks-day li + li::before { top: -20px; }
  .ks-day-time { width: 116px; font-size: 16px; }
  .ks-steps { margin-top: 32px; }
  .ks-steps li { gap: 16px; min-height: 0; padding: 18px 16px; flex-direction: column; }
  .ks-steps li + li { margin-top: 20px; }
  .ks-step-body p { white-space: normal; margin-top: 8px; line-height: 30px; }
  .ks-price { margin-top: 32px; }
  .ks-table { font-size: 14px; letter-spacing: 0.5px; }
  .ks-table th, .ks-table td { padding: 10px 6px; }
  .ks-table th:first-child, .ks-table td:first-child { width: 88px; }
  .ks-table th:nth-child(2), .ks-table td:nth-child(2) { width: 112px; }
  .ks-price-note { line-height: 28px; }
  .ks-guide-fh .ks-deco-a, .ks-guide-gh .ks-deco-b { width: 95px; height: 108px; }
  .ks-guide-fh .ks-deco-b { width: 120px; height: 160px; top: 120px; }
  .ks-guide-gh .ks-deco-a, .ks-guide-price .ks-deco-a { display: none; }
}
