@charset "utf-8";

/* ============================================================
   NeeS company コーポレートサイト
   ブレイクポイント : 1080px(タブレット) / 760px(スマホ)
   ============================================================ */

:root{
  --deep:       #0f3d2b;   /* 濃い緑：ボタン・帯・フッター */
  --deep-dark:  #0b2e20;
  --accent:     #4a7f6e;   /* くすんだ青緑 */
  --cream:      #f6f5ef;
  --white:      #fff;
  --ink-head:   #12352a;   /* 見出し */
  --ink:        #2b3630;   /* 本文 */
  --ink-soft:   #5d6a63;   /* 補足 */
  --line:       #e0ded3;
  --radius:     6px;
  --wrap:       1180px;
  --shadow:     0 1px 10px rgba(20,40,30,.06);
  --serif:      "Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }

body{
  margin:0; color:var(--ink); background:var(--white);
  font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  font-size:16px; line-height:1.9; -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
h1,h2,h3,h4,p{ margin:0; }

.wrap{ width:min(100% - 48px, var(--wrap)); margin-inline:auto; }
.narrow{ width:min(100% - 48px, 880px); margin-inline:auto; }

/* 英字ラベル */
.eyebrow{
  display:block; font-size:11.5px; font-weight:600;
  letter-spacing:.24em; text-transform:uppercase; color:var(--accent);
}

/* 見出し（明朝体） */
.h-lg,.h-md,.h-sm{
  font-family:var(--serif); color:var(--ink-head);
  font-weight:600; font-feature-settings:"palt"; letter-spacing:.01em;
}
.h-lg{ font-size:clamp(21px,3.1vw,38px); line-height:1.48; }
.h-md{ font-size:clamp(20px,2.4vw,30px); line-height:1.55; }
.h-sm{ font-size:clamp(18px,1.7vw,21px); line-height:1.6; }

.lead{ font-size:13.5px; line-height:1.95; color:var(--ink-soft); }

/* 装飾の葉（ヒーローとCTAのみ） */
.leaf{ position:absolute; width:46px; opacity:.55; pointer-events:none; z-index:1; }

/* ------------------------------------------------------------
   ボタン
   ------------------------------------------------------------ */
.btn{
  display:inline-flex; align-items:center; justify-content:space-between; gap:26px;
  padding:13px 24px; border:1px solid var(--deep); border-radius:var(--radius);
  font-size:13.5px; font-weight:500; transition:background .22s,color .22s;
}
.btn::after{ content:"→"; font-size:13px; transition:transform .22s; }
.btn:hover::after{ transform:translateX(3px); }
.btn--fill{ background:var(--deep); color:var(--white); }
.btn--fill:hover{ background:var(--deep-dark); }
.btn--ghost:hover{ background:var(--deep); color:var(--white); }
.btn--light{ border-color:rgba(255,255,255,.55); color:var(--white); }
.btn--light:hover{ background:var(--white); color:var(--deep); }
.btn--wide{ padding:15px 34px; font-size:14px; }

/* ------------------------------------------------------------
   ヘッダー
   ------------------------------------------------------------ */
.header{
  position:sticky; top:0; z-index:100; background:var(--white);
  border-bottom:1px solid var(--line);
}
.header__inner{ display:flex; align-items:center; gap:30px; height:76px; }
.logo{ line-height:1.25; }
.logo__name{
  font-family:var(--serif); font-size:22px; font-weight:600;
  letter-spacing:.02em; color:var(--deep); white-space:nowrap;
}
.logo__tag{ font-size:10.5px; color:var(--ink-soft); letter-spacing:.03em; }
/* PCでは箱を透明にして、ナビとボタンをそのまま横並びにする */
.header__menu{ display:contents; }
.gnav{ margin-left:auto; }
.gnav__list{ display:flex; gap:28px; font-size:13.5px; }
.gnav__list a{ position:relative; padding-bottom:4px; }
.gnav__list a::after{
  content:""; position:absolute; left:0; bottom:0; width:0; height:1px;
  background:var(--accent); transition:width .22s;
}
.gnav__list a:hover::after{ width:100%; }
.header .btn{ padding:11px 20px; font-size:13px; gap:18px; }
.nav-toggle{ display:none; }

/* ------------------------------------------------------------
   ヒーロー（文字のみ）
   ------------------------------------------------------------ */
.hero{ background:var(--white); border-bottom:1px solid var(--line); }
.hero__body{ padding:58px 0 52px; }
.hero__eyebrow{ margin-bottom:22px; }
.hero__rule{ width:54px; height:1px; background:var(--accent); margin-bottom:30px; }
.hero__title{
  font-family:var(--serif); color:var(--ink-head); font-weight:600;
  font-size:clamp(32px,4.6vw,56px); line-height:1.45;
  letter-spacing:.01em; margin-bottom:30px; font-feature-settings:"palt";
}
.hero__lead{ font-size:14.5px; line-height:2.05; color:var(--ink-soft); margin-bottom:38px; }
.hero__btn{ align-self:flex-start; }
/* 何をしている会社かを、事実として一行で示す */
.hero__services{
  display:flex; flex-wrap:wrap; align-items:center; gap:8px 26px;
  margin-top:36px; padding-top:20px; border-top:1px solid var(--line);
  font-size:12.5px; letter-spacing:.08em; color:var(--ink-soft);
}
.hero__services span{ display:inline-flex; align-items:center; gap:26px; }
.hero__services span+span::before{
  content:""; width:1px; height:11px; background:var(--line); margin-left:-13px;
}

/* ------------------------------------------------------------
   法人・施設の方へ
   ------------------------------------------------------------ */
.business{ background:var(--cream); padding:76px 0 84px; }
.business__head{ max-width:780px; margin-bottom:38px; }
.business__head .eyebrow{ margin-bottom:14px; }
.business__head .lead{ margin-top:18px; }

.biz-cards{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.biz-card{
  display:grid; grid-template-columns:248px minmax(0,1fr);
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius);
  overflow:hidden;
}
.biz-card__photo{ background:#eceade; }
.biz-card__photo img{ width:100%; height:100%; object-fit:cover; }
/* パネルは切り抜かず、枠の中央に収める（絶対配置で確実に収まる） */
.biz-card--panel .biz-card__photo,
.biz-card--fit .biz-card__photo{
  position:relative; overflow:hidden; background:var(--white); padding:0;
}
.biz-card--panel .biz-card__photo img,
.biz-card--fit .biz-card__photo img{
  position:absolute; inset:10px;
  width:calc(100% - 20px); height:calc(100% - 20px);
  object-fit:contain;
}

.biz-card__body{ padding:26px 26px 24px; display:flex; flex-direction:column; }
/* どのサービスの募集かを示す行 */
.svc-label{ display:flex; align-items:center; gap:9px; margin-bottom:12px; }
.svc-label__logo{ height:28px; width:auto; flex:none; }
.svc-label__icon{ width:28px; height:28px; flex:none; }
.svc-label__name{ font-size:13.5px; font-weight:700; color:#2e7d4f; line-height:1.4; }
.svc-label__note{ display:block; font-size:10.5px; font-weight:500; color:var(--ink-soft); letter-spacing:.02em; }

.biz-card__meta{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:16px; }
.tag{
  font-size:11px; letter-spacing:.04em; padding:4px 11px; border-radius:3px;
  background:var(--deep); color:var(--white);
}
.tag--area{ background:transparent; color:var(--accent); border:1px solid var(--accent); }
.biz-card .h-sm{ margin-bottom:14px; }
.biz-card__why{ font-size:12.5px; line-height:1.9; color:var(--ink-soft); margin-bottom:18px; }
.biz-list{ display:grid; gap:9px; margin-bottom:24px; }
.biz-list li{
  display:grid; grid-template-columns:18px 1fr; gap:10px;
  font-size:13px; line-height:1.75; color:var(--ink);
}
.biz-list svg{ width:15px; height:15px; margin-top:5px; color:var(--accent); }
.biz-card .btn{ margin-top:auto; align-self:flex-start; }

/* ------------------------------------------------------------
   3つの事業
   ------------------------------------------------------------ */
.bizline{ padding:80px 0 86px; }
.bizline__head{ margin-bottom:36px; }
.bizline__head .eyebrow{ margin-bottom:14px; }
.bizline__head .lead{ margin-top:18px; max-width:720px; }

.svc-cards{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.svc-card{
  border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;
  display:flex; flex-direction:column; background:var(--white);
}
.svc-card__photo{ background:#e9e7dd; overflow:hidden; }
.svc-card__photo img{ width:100%; height:auto; aspect-ratio:16/10; object-fit:cover; display:block; }
.svc-card__body{ padding:24px 24px 22px; display:flex; flex-direction:column; flex:1; }
.svc-card__title{ font-family:var(--serif); font-size:17px; font-weight:600; color:var(--ink-head); }

.brand{ display:flex; align-items:center; gap:11px; margin:16px 0 12px; height:44px; }
.brand__logo{ width:auto; flex:none; }
.brand--akindo .brand__logo{ height:38px; }
.brand--garapos .brand__logo{ height:40px; }
.brand__icon{ width:42px; height:42px; flex:none; }
.brand__name{ font-size:15px; font-weight:700; line-height:1.35; color:#0e7c7b; }
.brand__note{ display:block; font-size:10.5px; font-weight:500; color:var(--ink-soft); letter-spacing:.02em; }
.badge{
  display:inline-block; margin-left:7px; padding:2px 8px; border-radius:3px;
  background:#e7f0e9; color:#2e7d4f; font-size:10px; font-weight:700; vertical-align:2px;
}

/* ロゴは画像なので、サービス名は文章でも記載する */
.svc-card__name{
  font-size:14px; font-weight:700; line-height:1.5;
  color:var(--ink-head); margin-bottom:9px;
}
.svc-card__name span{
  display:block; font-size:10.5px; font-weight:500; color:var(--ink-soft); letter-spacing:.02em;
}
.svc-card__desc{ font-size:12.5px; line-height:1.9; color:var(--ink-soft); }
.svc-card__link{
  margin-top:auto; padding-top:20px; display:inline-flex; align-items:center; gap:10px;
  font-size:13px; font-weight:500;
}
.svc-card__link::after{ content:"→"; transition:transform .22s; }
.svc-card__link:hover::after{ transform:translateX(3px); }

/* ------------------------------------------------------------
   信頼（濃い緑の帯）
   ------------------------------------------------------------ */
.trust{ background:var(--deep); color:var(--white); padding:14px 0; }
.trust__inner{ display:grid; grid-template-columns:150px repeat(4,minmax(0,1fr)); gap:0; align-items:center; }
.trust__label .eyebrow{ color:rgba(255,255,255,.6); margin-bottom:4px; }
.trust__label p{ font-family:var(--serif); font-size:15px; line-height:1.35; }
.trust__item{
  display:grid; grid-template-columns:32px 1fr; gap:11px; align-items:center;
  padding:0 0 0 22px; border-left:1px solid rgba(255,255,255,.18);
}
.trust__icon{ display:grid; place-items:center; color:rgba(255,255,255,.85); }
.trust__num{ font-family:var(--serif); font-size:16.5px; line-height:1.2; }
.trust__num small{ font-size:13px; }
.trust__desc{ font-size:10px; line-height:1.45; color:rgba(255,255,255,.72); }

/* ------------------------------------------------------------
   お知らせ
   ------------------------------------------------------------ */
.news{ padding:64px 0; }
.news__inner{ display:grid; grid-template-columns:200px 1fr; gap:36px; align-items:start; }
.news__head .eyebrow{ margin-bottom:10px; }
.news__list li{ border-bottom:1px solid var(--line); }
.news__list li:first-child{ border-top:1px solid var(--line); }
.news__list a{
  display:grid; grid-template-columns:104px 92px 1fr 20px; gap:18px; align-items:center;
  padding:16px 2px; font-size:13.5px; transition:opacity .2s;
}
.news__list a:hover{ opacity:.6; }
.news__list a::after{ content:"→"; font-size:12px; color:var(--ink-soft); }
.news__date{ font-size:12px; color:var(--ink-soft); letter-spacing:.04em; }
.news__cat{
  font-size:10.5px; text-align:center; padding:3px 0; border-radius:3px;
  background:var(--cream); border:1px solid var(--line); color:var(--ink-soft);
}
.news__title{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.news__empty{ padding:16px 2px; font-size:13px; color:var(--ink-soft); }
.news__more{ margin-top:18px; text-align:right; font-size:13px; }
.news__more a::after{ content:" →"; }

/* ------------------------------------------------------------
   CTA
   ------------------------------------------------------------ */
.cta{ position:relative; background:var(--cream); padding:66px 0; overflow:hidden; text-align:center; }
.cta .lead{ margin:16px 0 28px; }
.cta .leaf--1{ top:20px; left:6%; transform:rotate(-20deg); }
.cta .leaf--2{ bottom:18px; right:7%; width:38px; transform:rotate(22deg); }
.cta__inner{ position:relative; z-index:2; }

/* ------------------------------------------------------------
   フッター
   ------------------------------------------------------------ */
.footer{ background:var(--deep-dark); color:rgba(255,255,255,.8); padding:46px 0 20px; font-size:13px; }
.footer__top{ display:grid; grid-template-columns:auto 1fr auto; gap:40px; padding-bottom:28px; }
.footer__logo .logo__name{ color:var(--white); }
.footer__logo .logo__tag{ color:rgba(255,255,255,.55); }
.footer__nav{ display:flex; flex-wrap:wrap; gap:24px; font-size:13px; align-items:flex-start; }
.footer__nav a:hover{ text-decoration:underline; }
.footer__addr{ font-size:12px; line-height:1.95; color:rgba(255,255,255,.68); text-align:right; }
.footer__bottom{
  display:flex; justify-content:space-between; gap:20px; align-items:center;
  padding-top:18px; border-top:1px solid rgba(255,255,255,.14);
  font-size:11.5px; color:rgba(255,255,255,.55);
}
.footer__policy{ display:flex; gap:14px; }
.footer__policy a:hover{ text-decoration:underline; }

/* ============================================================
   下層ページ
   ============================================================ */
.page-head{ background:var(--cream); padding:56px 0 48px; border-bottom:1px solid var(--line); }
.page-head .eyebrow{ margin-bottom:12px; }
.page-head h1{
  font-family:var(--serif); color:var(--ink-head); font-weight:600;
  font-size:clamp(25px,2.9vw,35px); line-height:1.5;
}
.page-head .lead{ margin-top:18px; max-width:740px; }

.breadcrumb{ padding:14px 0; font-size:11.5px; color:var(--ink-soft); }
.breadcrumb ol{ display:flex; flex-wrap:wrap; gap:8px; list-style:none; margin:0; padding:0; }
.breadcrumb li+li::before{ content:"/"; margin-right:8px; color:var(--line); }
.breadcrumb a:hover{ text-decoration:underline; }

.section{ padding:64px 0; }
.section--cream{ background:var(--cream); }
.section__head{ margin-bottom:30px; }
.section__head .eyebrow{ margin-bottom:12px; }

/* 会社概要テーブル */
.table{ width:100%; border-collapse:collapse; font-size:14px; }
.table th,.table td{ padding:18px 4px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }
.table th{ width:200px; font-weight:500; color:var(--ink-soft); }
.table tr:first-child th,.table tr:first-child td{ border-top:1px solid var(--line); }

/* 手順 */
.steps{ counter-reset:step; display:grid; gap:2px; margin:26px 0; }
.step{
  counter-increment:step; display:grid; grid-template-columns:52px 1fr; gap:18px;
  padding:22px 4px; border-bottom:1px solid var(--line);
}
.step:first-child{ border-top:1px solid var(--line); }
.step::before{
  content:"0" counter(step); font-family:var(--serif); font-size:17px; color:var(--accent);
}
.step h3{ font-size:15px; font-weight:700; margin-bottom:6px; color:var(--ink-head); }
.step p{ font-size:13px; color:var(--ink-soft); }

/* ミッション */
.mv{ display:grid; grid-template-columns:repeat(2,1fr); gap:22px; margin-top:30px; }
.mv__item{ background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:32px 28px; }
.mv__label{ font-size:11px; letter-spacing:.2em; color:var(--accent); font-weight:700; }
.mv__title{ font-family:var(--serif); color:var(--ink-head); font-size:clamp(19px,2vw,25px); font-weight:600; line-height:1.55; margin:12px 0 14px; }
.mv__text{ font-size:13.5px; color:var(--ink-soft); }

/* 本文 */
.prose{ font-size:14px; line-height:2.05; }
.prose h2{ font-family:var(--serif); color:var(--ink-head); font-size:19px; font-weight:600; margin:42px 0 14px; }
.prose h2:first-child{ margin-top:0; }
.prose h3{ font-size:15px; font-weight:700; margin:26px 0 10px; }
.prose p{ margin-bottom:18px; }
.prose ul{ list-style:disc; padding-left:1.4em; margin-bottom:18px; }
.prose li{ margin-bottom:7px; }
.prose a{ color:var(--accent); text-decoration:underline; }
.prose__meta{ font-size:12px; color:var(--ink-soft); margin-top:40px; padding-top:18px; border-top:1px solid var(--line); }

/* フォーム */
.form{ display:grid; gap:24px; }
.form__row{ display:grid; gap:8px; }
.form__label{ font-size:13.5px; font-weight:500; }
.form__req{ display:inline-block; margin-left:8px; padding:1px 8px; border-radius:3px; background:#f3e4e4; color:#a83939; font-size:10.5px; font-weight:700; }
.form__any{ display:inline-block; margin-left:8px; padding:1px 8px; border-radius:3px; background:#eceee9; color:var(--ink-soft); font-size:10.5px; }
.form input[type=text],.form input[type=email],.form input[type=tel],.form select,.form textarea{
  width:100%; padding:13px 14px; font:inherit; font-size:14px; color:var(--ink);
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius);
}
.form select{ appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,var(--ink-soft) 50%),linear-gradient(135deg,var(--ink-soft) 50%,transparent 50%);
  background-position:calc(100% - 20px) 50%,calc(100% - 15px) 50%; background-size:5px 5px,5px 5px; background-repeat:no-repeat; }
.form textarea{ min-height:180px; resize:vertical; }
.form input:focus,.form select:focus,.form textarea:focus{ outline:2px solid var(--accent); outline-offset:1px; border-color:transparent; }
.form__note{ font-size:12px; color:var(--ink-soft); }
.form__consent{ display:flex; gap:10px; align-items:flex-start; font-size:13px; }
.form__submit{ justify-self:center; margin-top:8px; border:none; cursor:pointer; font-family:inherit; }
.form__hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.form-error{
  margin-bottom:26px; padding:14px 18px; border-radius:var(--radius);
  background:#fbeaea; border:1px solid #edc9c9; color:#a83939; font-size:13.5px; line-height:1.85;
}

.contact-box{ background:var(--cream); border:1px solid var(--line); border-radius:var(--radius); padding:24px 26px; font-size:13.5px; line-height:1.95; margin-top:34px; }
.contact-box h2{ font-size:15px; font-weight:700; margin-bottom:8px; }

/* お知らせ（下層） */
.news-page__list a{ grid-template-columns:110px 92px 1fr 20px; padding:18px 2px; font-size:14px; }
.news-detail__date{ font-size:12px; color:var(--ink-soft); letter-spacing:.04em; }
.news-back{ display:inline-flex; align-items:center; gap:10px; margin-top:44px; font-size:13.5px; }
.news-back::before{ content:"←"; }

/* ============================================================
   タブレット
   ============================================================ */
@media (max-width:1080px){
  .hero__body{ padding:48px 0 44px; }
  .biz-cards{ grid-template-columns:minmax(0,1fr); }
  .svc-cards{ grid-template-columns:minmax(0,1fr); }
  .trust__inner{ grid-template-columns:repeat(2,1fr); gap:24px 0; }
  .trust__label{ grid-column:1 / -1; }
  .news__inner{ grid-template-columns:1fr; gap:20px; }
  .footer__top{ grid-template-columns:1fr; gap:24px; }
  .footer__addr{ text-align:left; }
  .mv{ grid-template-columns:1fr; }
}

/* ============================================================
   スマホ
   ============================================================ */
@media (max-width:760px){
  .wrap,.narrow{ width:calc(100% - 32px); }
  br.pc{ display:none; }

  /* ---- スマホでは本文まわりを一段大きくする ---- */
  .lead{ font-size:16px; line-height:1.95; }
  .hero__lead{ font-size:16.5px; line-height:2; }
  .biz-list li{ font-size:15.5px; line-height:1.8; }
  .biz-card__why{ font-size:15px; line-height:1.9; }
  .svc-card__title{ font-size:19px; }
  .svc-card__name{ font-size:16px; }
  .svc-card__desc{ font-size:15px; line-height:1.9; }
  .news__list a{ font-size:15.5px; }
  .news__date{ font-size:13.5px; }
  .news__cat{ font-size:11.5px; }
  .prose{ font-size:16px; line-height:2; }
  .prose h3{ font-size:17px; }
  .table{ font-size:16px; }
  .table th{ font-size:13.5px; }
  .step h3{ font-size:17px; }
  .step p{ font-size:15px; }
  .why-block p{ font-size:15.5px; }
  .form__label{ font-size:15.5px; }
  .form__note{ font-size:14px; }
  .form__consent{ font-size:15px; }
  .trust__num{ font-size:19px; }
  .trust__desc{ font-size:12.5px; line-height:1.6; }
  .trust__label p{ font-size:16px; }
  .footer{ font-size:14.5px; }
  .footer__nav{ font-size:14.5px; }
  .footer__addr,.footer__info{ font-size:13.5px; }
  .footer__bottom{ font-size:12.5px; }
  .breadcrumb{ font-size:12.5px; }
  .eyebrow{ font-size:12px; }
  .diagram figcaption{ font-size:14.5px; }
  .logo__tag{ font-size:11px; }

  /* ナビとボタンをまとめて隠し、開いたときに一枚の面として出す */
  .header__menu{ display:none; }
  .nav-toggle{
    display:block; margin-left:auto; width:44px; height:44px;
    border:1px solid var(--line); border-radius:var(--radius); background:none;
    font-size:18px; line-height:1; cursor:pointer;
  }
  .header__inner.is-open .header__menu{
    display:block; position:absolute; top:76px; left:0; right:0; z-index:99;
    background:var(--white); border-bottom:1px solid var(--line);
    padding:14px 16px 22px;
  }
  .header__inner.is-open .gnav{ margin:0; }
  .header__inner.is-open .gnav__list{ flex-direction:column; gap:0; }
  .header__inner.is-open .gnav__list a{ display:block; padding:13px 4px; }
  .header__inner.is-open .gnav__list a::after{ display:none; }
  .header__inner.is-open .btn{
    display:inline-flex; width:100%; justify-content:space-between;
    margin-top:14px; padding:15px 22px; white-space:nowrap;
  }

  .hero__body{ padding:38px 0 36px; }

  .business{ padding:52px 0 58px; }
  .biz-card{ grid-template-columns:minmax(0,1fr); }
  .biz-card__photo{ aspect-ratio:16/9; }
  /* パネルと図は切り抜かないので、高さを決めて中央に収める */
  .biz-card--panel .biz-card__photo{ aspect-ratio:auto; height:420px; }
  .biz-card--fit .biz-card__photo{ aspect-ratio:auto; height:420px; }
  .biz-card__body{ padding:22px 20px 20px; }

  .bizline{ padding:54px 0 58px; }
  .trust{ padding:22px 0; }
  .trust__inner{ grid-template-columns:1fr; gap:0; }
  .trust__item{ padding:13px 0 13px 18px; border-left:none; border-top:1px solid rgba(255,255,255,.16); }
  .trust__label{ margin-bottom:8px; }

  .news{ padding:44px 0; }
  .news__list a{ grid-template-columns:1fr; gap:5px; padding:15px 2px; }
  .news__list a::after{ display:none; }
  .news__cat{ width:92px; }
  .news__title{ white-space:normal; }

  .cta{ padding:48px 0; }
  .section{ padding:46px 0; }
  .page-head{ padding:38px 0 32px; }
  .table th,.table td{ display:block; width:auto; padding:12px 4px; }
  .table th{ border-bottom:none; padding-bottom:0; font-size:12px; }
  .table tr:first-child td{ border-top:none; }
  .step{ grid-template-columns:40px 1fr; gap:12px; }
  .footer__bottom{ flex-direction:column; align-items:flex-start; gap:10px; }
}

/* 補足の囲み（本筋ではないが伝えたいこと） */
.aside-box{
  border:1px solid var(--line); border-left:3px solid var(--accent);
  border-radius:0 var(--radius) var(--radius) 0;
  padding:20px 24px; margin-top:34px; background:var(--white);
}
.aside-box h3{ font-size:14.5px; font-weight:700; color:var(--ink-head); margin-bottom:8px; }
.aside-box p{ font-size:13px; line-height:1.95; color:var(--ink-soft); }
.aside-box a{ color:var(--accent); text-decoration:underline; }

/* お願いしている理由を綴るブロック */
.why-block{ border-left:2px solid var(--accent); padding:4px 0 4px 30px; margin-bottom:38px; }
.why-block p{ font-size:14px; line-height:2.15; color:var(--ink); margin-bottom:20px; }
.why-block p:last-child{ margin-bottom:0; }
@media (max-width:760px){
  .why-block{ padding-left:20px; }
  .why-block p{ font-size:13.5px; line-height:2.05; }
}

/* 相談範囲の図 */
.diagram{ margin:0 0 36px; }
.diagram img{ width:100%; max-width:520px; margin-inline:auto; }
.diagram figcaption{
  margin-top:14px; font-size:12.5px; line-height:1.9; color:var(--ink-soft); text-align:center;
}
@media (max-width:760px){
  .diagram figcaption{ text-align:left; }
}

/* 提携先として探している業種の一覧 */
.partner-grid{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px; margin:0 0 16px;
}
.partner-grid li{
  position:relative; display:grid; align-items:center;
  min-height:78px; padding:14px 16px 14px 22px;
  background:linear-gradient(90deg,#f2f6f1,#fbfcfa);
  border-radius:8px; overflow:hidden;
  font-family:var(--serif); font-size:15px; font-weight:600;
  line-height:1.6; color:var(--ink-head); letter-spacing:.01em;
}
.partner-grid li::before{
  content:""; position:absolute; left:0; top:0; bottom:0; width:6px;
  background:#8fb98a; border-radius:8px 0 0 8px;
}
.partner-grid__note{ font-size:13px; line-height:1.9; color:var(--ink-soft); margin-bottom:34px; }

@media (max-width:760px){
  .partner-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .partner-grid li{ min-height:68px; font-size:15px; padding:12px 12px 12px 20px; }
  .partner-grid__note{ font-size:14px; }
}

/* ============================================================
   ガラポス サービス開始前の表示
   開始後は garapos-live.py で自動的に外れる。
   ============================================================ */
.badge--soon{ background:#f0ece1; color:#8a7a52; }
.tag--soon{ background:transparent; color:#8a7a52; border:1px dashed #c8bd9e; }
.soon-note{
  border:1px solid var(--line); border-left:3px solid #c8a24a;
  background:#faf8f1; border-radius:var(--radius);
  padding:18px 22px; margin:0 0 30px;
}
.soon-note__head{
  font-family:var(--serif); font-weight:600; font-size:15px;
  color:var(--ink-head); margin-bottom:8px;
}
.soon-note p{ font-size:13.5px; line-height:1.95; color:var(--ink); margin:0; }
@media (max-width:760px){
  .soon-note{ padding:16px 17px; }
  .soon-note p{ font-size:14px; }
}
