@charset "UTF-8";
/* ==========================================================================
   Lavender Theme — 社会福祉法人ラベンダー
   GNAVの4色（紫 / ラベンダー / オレンジ / ブルー）を暖色ベースで展開
   --------------------------------------------------------------------------
   目次
   01. デザイントークン
   02. ベース
   03. レイアウト・ユーティリティ
   04. ヘッダー / ピル型GNAV
   05. ヒーロー
   06. セクション見出し
   07. ボタン
   08. 3つの支援（カード）
   09. 情報カード / ギャラリー
   10. タイムライン（1日の流れ）
   11. ステップ（利用までの流れ）
   12. 沿革・定義リスト・理念
   13. お知らせ（一覧 / 記事）
   14. アクセス / CTA / 準備中 / 404
   15. フォーム
   16. フッター
   17. アニメーション・アクセシビリティ
   18. レスポンシブ
   ========================================================================== */

/* ==========================================================================
   01. デザイントークン
   ========================================================================== */
:root{
  /* 背景（暖色ベース＝温かみの土台） */
  --ivory:    #FCF8F2;
  --cream:    #F8F0E3;
  --lav-bg:   #F1EAF7;

  /* テキスト */
  --ink:      #3A3340;
  --muted:    #7C7286;
  --line:     #ECE3DA;

  /* GNAV由来の4色 */
  --purple:   #8A5CA0;
  --purple-d: #5E3E76;
  --lavender: #C7B4D7;
  --amber:    #F2A24C;
  --amber-d:  #E08B33;
  --blue:     #5C9AD4;
  --blue-d:   #4784C0;

  /* フォント */
  --serif: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  --sans:  "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic", Meiryo, sans-serif;
  --round: "Zen Maru Gothic", "Hiragino Sans", "Yu Gothic", sans-serif;
  --num:   "Cormorant Garamond", serif;

  /* レイアウト */
  --wrap: 1080px;
  --narrow: 760px;
  --ease: cubic-bezier(.22,.61,.36,1);
  --radius: 18px;
}

/* ==========================================================================
   02. ベース
   ========================================================================== */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:var(--sans);
  color:var(--ink);
  background:var(--ivory);
  line-height:1.9;
  letter-spacing:.02em;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,svg,video{max-width:100%;height:auto;display:block}
a{color:var(--purple);text-decoration:none;transition:color .25s var(--ease)}
a:hover{color:var(--purple-d)}
h1,h2,h3,h4,h5{font-family:var(--serif);color:var(--purple-d);line-height:1.55;margin:0}
p{margin:0}
ul,ol{margin:0;padding:0}

/* ==========================================================================
   03. レイアウト・ユーティリティ
   ========================================================================== */
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:28px}
.wrap--narrow{max-width:var(--narrow)}
.sec-pad{padding-block:100px}
.sec-pad--sm{padding-block:72px}
.band-cream{background:linear-gradient(180deg,var(--cream),var(--ivory))}
.band-lav{background:linear-gradient(180deg,var(--lav-bg),var(--ivory))}
.band-deep{background:linear-gradient(160deg,#6A4788,#513A6E);color:#fff}
.band-deep .sec-title{color:#fff}
.band-deep .sec-sub{color:#D8CEE6}
.band-deep .kicker{color:#F3C58A}
.text-center{text-align:center}

/* ==========================================================================
   04. ヘッダー / ピル型GNAV
   ========================================================================== */
.site-header{
  background:
    radial-gradient(120% 120% at 85% 0%, #FBEEDD 0%, rgba(251,238,221,0) 55%),
    radial-gradient(120% 120% at 10% 0%, #F0E6F7 0%, rgba(240,230,247,0) 55%),
    var(--ivory);
  padding:26px 20px 28px;
  border-bottom:1px solid var(--line);
}
.site-header__brand{text-align:center;margin-bottom:22px}
.brand-name{
  margin:0;
  font-family:var(--serif);
  font-weight:700;
  font-size:1.5rem;
  letter-spacing:.16em;
}
.brand-name a{
  background:linear-gradient(90deg,#8A5CA0 0%,#A98AA0 45%,#6E96C0 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.brand-name a:hover{filter:brightness(1.1)}
.custom-logo-link{display:inline-block}

.pills{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:14px;
  list-style:none;
}
.pill{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family:var(--round);
  font-weight:700;
  font-size:.92rem;
  letter-spacing:.04em;
  line-height:1;
  color:#fff;
  padding:13px 26px;
  border-radius:999px;
  background:var(--lavender);
  box-shadow:0 8px 16px -10px rgba(120,90,150,.55);
  transition:transform .25s var(--ease),box-shadow .25s var(--ease),filter .25s var(--ease);
}
.pill:hover{color:#fff;transform:translateY(-2px);filter:brightness(1.05);box-shadow:0 12px 20px -10px rgba(120,90,150,.6)}
.pill svg{width:16px;height:16px;fill:currentColor;flex:none}
.pill.is-current{background:linear-gradient(135deg,#8A5CA0,#9E74B2);padding-inline:30px;box-shadow:0 10px 20px -8px rgba(138,92,160,.7)}
.pill--mail{background:linear-gradient(135deg,#F4AC5C,#EE9636);box-shadow:0 10px 18px -8px rgba(224,139,51,.6)}
.pill--recruit{background:linear-gradient(135deg,#63A0D8,#4C8AC6);box-shadow:0 10px 18px -8px rgba(71,132,192,.6)}

/* ==========================================================================
   05. ヒーロー
   ========================================================================== */
.hero,.page-hero{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(110% 90% at 88% -5%, #FBEBD6 0%, rgba(251,235,214,0) 52%),
    radial-gradient(95% 85% at 2% 108%, #EEE3F7 0%, rgba(238,227,247,0) 50%),
    var(--ivory);
}
.hero__inner{max-width:var(--wrap);margin-inline:auto;padding:92px 28px 100px;position:relative;z-index:2}
.page-hero__inner{padding-block:72px 74px;position:relative;z-index:2}
.eyebrow{
  display:inline-flex;align-items:center;gap:12px;
  font-family:var(--num);font-size:1rem;letter-spacing:.32em;
  text-transform:uppercase;color:var(--amber-d);margin-bottom:22px;
}
.eyebrow::before{content:"";width:34px;height:2px;background:var(--amber);border-radius:2px}
.hero__title{
  font-weight:700;color:var(--purple-d);
  font-size:clamp(1.9rem,4.6vw,3.3rem);line-height:1.55;letter-spacing:.04em;margin-bottom:26px;
}
.page-hero__title{
  font-weight:700;font-size:clamp(1.8rem,4vw,2.7rem);letter-spacing:.08em;margin-bottom:18px;
}
.hero__lead,.page-hero__lead{max-width:640px;font-size:1.02rem;color:var(--muted);line-height:2.1}
.accent-mark{background:linear-gradient(transparent 64%, #FBD9A6 64%);padding-inline:.06em}

.sprig{position:absolute;z-index:1;pointer-events:none}
.hero__sprig{right:5%;top:6%;width:168px;opacity:.9}
/*
 * 下層ページの装飾。親に overflow:hidden があるため、
 * top を負値にすると花の部分が切れる。必ず正の値にすること。
 * 茎の下側が切れるのは問題ない（自然に見える）。
 */
.page-hero__sprig{right:6%;top:22px;width:130px;opacity:.5}

/* --- 写真入りヒーロー（トップページ） ---
 * 画像はスクリムをかけず、角丸のコンテナに収めてはっきり見せる。
 * 画像の上にはエントリーボタンのみを重ね、メッセージは画像の真下に置く。
 */
.hero--framed{
  --hero-band:#C7B4D7;          /* 紫の帯の色 */
  /* 帯の上端の位置。画像の高さに対する割合で指定する。
     34% にすると画像の約 2/3 が帯に重なる。 */
  --hero-band-top:34%;
  /* 画像の下端から帯をさらに伸ばす距離。
     メッセージが帯に重なると文字のコントラストが落ちるため、
     必ず .hero__message の上マージンより小さくすること。 */
  --hero-band-extend:104px;
  padding-block:40px 84px;
  background:var(--ivory);
}
/*
 * 紫の帯：画像の縦中央（wrapper の 50%）を上端として、下方向へ伸ばす。
 * 画像そのものに載せると border-radius で切り取られるため、
 * ラッパー要素の疑似要素として画像の背面に敷いている。
 * 左右は 100vw で全幅に広げ、はみ出しは .hero の overflow:hidden で処理する。
 */
.hero__figure-wrap{position:relative}
.hero__figure-wrap::before{
  content:"";position:absolute;z-index:0;pointer-events:none;
  left:calc(50% - 50vw);width:100vw;
  top:var(--hero-band-top);
  height:calc(100% - var(--hero-band-top) + var(--hero-band-extend));
  background:var(--hero-band);
}
.hero__figure{
  position:relative;z-index:1;margin:0;
  border-radius:24px;overflow:hidden;
  box-shadow:0 30px 64px -34px rgba(74,52,104,.6);
}
/* スライド：一定比率の枠にクロップして重ね、フェードで切り替える */
.hero__slides{position:relative;aspect-ratio:40/21;background:var(--lav-bg)}
.hero__slide{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center 42%;
  opacity:0;transition:opacity 1.8s ease-in-out;
}
.hero__slide.is-active{opacity:1}
/* 1枚だけのとき（is-slider が付かない）は静止画として表示 */
.hero__figure:not(.is-slider) .hero__slide{opacity:1;position:relative;height:auto;aspect-ratio:40/21}

/* ドット */
.hero__dots{
  position:absolute;left:22px;bottom:18px;z-index:3;display:flex;gap:9px;
}
.hero__dot{
  width:11px;height:11px;border-radius:50%;cursor:pointer;padding:0;
  border:2px solid rgba(255,255,255,.9);background:transparent;
  box-shadow:0 1px 4px rgba(0,0,0,.25);transition:background .25s var(--ease),transform .25s var(--ease);
}
.hero__dot.is-active{background:#fff;transform:scale(1.1)}

/* エントリーボタン（画像の上） */
.hero__entry{
  position:absolute;left:50%;bottom:8%;transform:translateX(-50%);
  display:inline-flex;align-items:center;gap:14px;
  /* left:50% だけだと利用可能幅が半分になり折り返すため max-content で確保する */
  width:max-content;max-width:calc(100% - 40px);
  font-family:var(--round);font-weight:700;font-size:1rem;letter-spacing:.03em;
  line-height:1.5;color:#fff;text-align:center;
  background:linear-gradient(135deg,#F7AD5F,#EF8F26);
  border-radius:999px;padding:17px 38px;
  box-shadow:0 16px 34px -12px rgba(150,86,16,.75),0 0 0 1px rgba(255,255,255,.22) inset;
  transition:transform .25s var(--ease),filter .25s var(--ease),box-shadow .25s var(--ease);
}
.hero__entry:hover{
  color:#fff;transform:translateX(-50%) translateY(-3px);filter:brightness(1.05);
  box-shadow:0 22px 40px -14px rgba(150,86,16,.8),0 0 0 1px rgba(255,255,255,.28) inset;
}
.hero__entry strong{font-weight:700;text-decoration:underline;text-underline-offset:4px}
.hero__entry-arrow{width:20px;height:20px;flex:none}
.hero__entry{z-index:3}

/* 画像の真下に置くメッセージ */
.hero__message{text-align:center;max-width:780px;margin:148px auto 0}
.hero__message .eyebrow{margin-bottom:18px}
.hero--framed .hero__title{
  font-size:clamp(1.7rem,3.6vw,2.7rem);line-height:1.6;margin-bottom:22px;
}
.hero--framed .hero__lead{margin-inline:auto}

/* 採用募集バナー */
.recruit-banner{
  background:linear-gradient(135deg,#63A0D8,#4C8AC6);
  color:#fff;text-align:center;padding:14px 20px;font-size:.95rem;letter-spacing:.04em;
}
.recruit-banner a{color:#fff;font-family:var(--round);font-weight:700;text-decoration:underline;text-underline-offset:4px}
.recruit-banner a:hover{color:#FFF0DA}

/* ==========================================================================
   06. セクション見出し
   ========================================================================== */
.kicker{
  font-family:var(--num);font-size:.95rem;letter-spacing:.3em;text-transform:uppercase;
  color:var(--amber-d);text-align:center;margin-bottom:14px;
}
.sec-title{
  font-weight:700;color:var(--purple-d);
  font-size:clamp(1.6rem,3.2vw,2.15rem);text-align:center;letter-spacing:.08em;margin-bottom:16px;
}
.sec-sub{
  text-align:center;color:var(--muted);max-width:660px;margin:0 auto 56px;
  font-size:.98rem;line-height:2.05;
}
.sec-sub:last-child{margin-bottom:0}
.block-title{
  font-size:1.2rem;font-weight:600;color:var(--purple-d);letter-spacing:.06em;
  padding-bottom:12px;margin-bottom:26px;border-bottom:2px solid var(--lav-bg);position:relative;
}
.block-title::after{content:"";position:absolute;left:0;bottom:-2px;width:52px;height:2px;background:var(--amber)}

/* ==========================================================================
   07. ボタン
   ========================================================================== */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:12px;
  font-family:var(--round);font-weight:700;font-size:1rem;letter-spacing:.08em;
  padding:16px 40px;border-radius:999px;color:#fff;border:none;cursor:pointer;
  transition:transform .25s var(--ease),filter .25s var(--ease);
}
.btn svg{width:18px;height:18px;fill:currentColor;flex:none}
.btn:hover{color:#fff;transform:translateY(-2px);filter:brightness(1.06)}
.btn--amber{background:linear-gradient(135deg,#F4AC5C,#EE9636);box-shadow:0 14px 30px -12px rgba(224,139,51,.8)}
.btn--purple{background:linear-gradient(135deg,#8A5CA0,#9E74B2);box-shadow:0 14px 30px -12px rgba(138,92,160,.8)}
.btn--blue{background:linear-gradient(135deg,#63A0D8,#4C8AC6);box-shadow:0 14px 30px -12px rgba(71,132,192,.8)}
.btn--outline{
  background:transparent;color:var(--purple-d);
  border:2px solid var(--lavender);box-shadow:none;
}
.btn--outline:hover{color:var(--purple-d);background:var(--lav-bg)}
.btn-row{display:flex;flex-wrap:wrap;gap:16px;justify-content:center}

/* ==========================================================================
   08. 3つの支援（カード）
   ========================================================================== */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;list-style:none}
.pillar{
  background:#fff;border:1px solid var(--line);border-radius:20px;
  padding:40px 32px 38px;position:relative;overflow:hidden;
  transition:transform .4s var(--ease),box-shadow .4s var(--ease);
}
.pillar::before{content:"";position:absolute;inset:0 0 auto 0;height:5px}
.pillar:hover{transform:translateY(-6px);box-shadow:0 26px 50px -30px rgba(90,62,118,.5)}
.pillar__no{display:block;font-family:var(--round);font-weight:700;font-size:2.6rem;line-height:1}
.pillar__title{font-size:1.3rem;font-weight:600;color:var(--purple-d);margin:10px 0 18px;letter-spacing:.05em}
.pillar p{font-size:.92rem;color:#4d4557;line-height:2}
.pillar p + p{margin-top:14px}
.pillar--c1::before{background:linear-gradient(90deg,#8A5CA0,#B08BC4)}
.pillar--c1 .pillar__no{color:var(--lavender)}
.pillar--c2::before{background:linear-gradient(90deg,#5C9AD4,#8FBEE6)}
.pillar--c2 .pillar__no{color:#AECDEB}
.pillar--c3::before{background:linear-gradient(90deg,#F2A24C,#F7C489)}
.pillar--c3 .pillar__no{color:#F6CB98}

/* ==========================================================================
   09. 情報カード / ギャラリー
   ========================================================================== */
.callout{
  display:flex;align-items:center;gap:16px;
  background:#fff;border:1px solid var(--line);border-left:4px solid var(--amber);
  border-radius:14px;padding:22px 30px;max-width:820px;margin:0 auto 54px;
  font-family:var(--serif);font-weight:600;color:var(--purple-d);
  font-size:1.05rem;letter-spacing:.03em;
}
.callout::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--amber);flex:none}

.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;list-style:none}
.info-grid--2{grid-template-columns:repeat(2,1fr)}
.card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:34px 30px;
  transition:transform .4s var(--ease),box-shadow .4s var(--ease);
}
.card:hover{transform:translateY(-4px);box-shadow:0 22px 44px -30px rgba(90,62,118,.45)}
.card__title{
  font-size:1.12rem;font-weight:600;color:var(--purple-d);text-align:center;
  padding-bottom:16px;margin-bottom:20px;letter-spacing:.06em;
  border-bottom:1px solid var(--line);position:relative;
}
.card__title::after{
  content:"";position:absolute;left:50%;bottom:-1px;transform:translateX(-50%);
  width:48px;height:2px;background:var(--amber);
}
.card ul{list-style:none;display:flex;flex-direction:column;gap:12px}
.card li{position:relative;padding-left:20px;font-size:.9rem;color:#4d4557;line-height:1.85}
.card li::before{content:"";position:absolute;left:0;top:.7em;width:7px;height:7px;border-radius:50%;background:var(--lavender)}
.card__price{font-family:var(--serif);color:var(--purple-d);font-size:1.02rem}
.card__note{font-size:.82rem;color:var(--muted);text-align:center;margin-top:10px}

.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:54px;list-style:none}
.shot{
  border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);background:#fff;
  box-shadow:0 20px 44px -32px rgba(90,62,118,.5);margin:0;
}
.shot__frame{aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;overflow:hidden}
.shot__frame img{width:100%;height:100%;object-fit:cover}
.shot:nth-child(1) .shot__frame{background:linear-gradient(140deg,#EFE3F5,#F6EDF9)}
.shot:nth-child(2) .shot__frame{background:linear-gradient(140deg,#E4EEF8,#F0F5FB)}
.shot:nth-child(3) .shot__frame{background:linear-gradient(140deg,#FAEAD4,#FDF3E4)}
.shot__frame svg{width:52px;height:52px;opacity:.6}
.shot__cap{padding:16px 20px;font-size:.86rem;color:var(--purple-d);font-family:var(--serif);letter-spacing:.04em}
.shot__cap span{display:block;font-family:var(--sans);font-size:.76rem;color:var(--muted);margin-top:3px}

/* --- サービス切替タブ（各サービスページ冒頭） ---
 * ホバーで開くドロップダウンではなく、常に見えているリンクにしている。
 * タッチ端末・キーボード操作・スクリーンリーダーのいずれでも確実に動く。
 */
.service-tabs{background:var(--ivory);border-bottom:1px solid var(--line)}
.service-tabs__inner{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;padding-block:26px}
.service-tab{
  display:inline-flex;align-items:center;
  font-family:var(--round);font-weight:700;font-size:.94rem;letter-spacing:.03em;line-height:1;
  color:var(--purple-d);background:#fff;
  border:1px solid var(--line);border-radius:999px;padding:14px 32px;
  transition:transform .25s var(--ease),background .25s var(--ease),box-shadow .25s var(--ease);
}
.service-tab:hover{color:var(--purple-d);background:var(--lav-bg);transform:translateY(-2px)}
.service-tab.is-current{
  background:linear-gradient(135deg,#8A5CA0,#9E74B2);color:#fff;border-color:transparent;
  box-shadow:0 10px 20px -8px rgba(138,92,160,.7);
}
.service-tab.is-current:hover{color:#fff;transform:none}

/* --- サービス案内カード（施設紹介ハブ） --- */
.service-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:26px;list-style:none}
.service-card{
  display:flex;flex-direction:column;position:relative;overflow:hidden;
  background:#fff;border:1px solid var(--line);border-radius:20px;
  padding:40px 36px 34px;
  transition:transform .4s var(--ease),box-shadow .4s var(--ease);
}
.service-card::before{content:"";position:absolute;inset:0 0 auto 0;height:5px}
.service-card:hover{transform:translateY(-6px);box-shadow:0 26px 50px -30px rgba(90,62,118,.5)}
.service-card--b::before{background:linear-gradient(90deg,#8A5CA0,#B08BC4)}
.service-card--care::before{background:linear-gradient(90deg,#5C9AD4,#8FBEE6)}
.service-card__eyebrow{
  align-self:flex-start;line-height:1;
  font-family:var(--round);font-weight:700;font-size:.8rem;color:#fff;
  border-radius:999px;padding:8px 16px;
}
.service-card--b .service-card__eyebrow{background:linear-gradient(135deg,#8A5CA0,#9E74B2)}
.service-card--care .service-card__eyebrow{background:linear-gradient(135deg,#63A0D8,#4C8AC6)}
.service-card__title{
  font-family:var(--serif);font-weight:600;font-size:1.5rem;color:var(--purple-d);
  letter-spacing:.05em;margin:18px 0 14px;
}
.service-card > p{font-size:.92rem;color:#4d4557;line-height:2}
.service-card ul{list-style:none;margin:20px 0 26px;display:flex;flex-direction:column;gap:10px}
.service-card li{position:relative;padding-left:20px;font-size:.9rem;color:#4d4557;line-height:1.85}
.service-card li::before{content:"";position:absolute;left:0;top:.7em;width:7px;height:7px;border-radius:50%;background:var(--lavender)}
.service-card--care li::before{background:#8FBEE6}
.service-card__link{
  margin-top:auto;align-self:flex-start;
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--round);font-weight:700;font-size:.94rem;color:#fff;
  border-radius:999px;padding:15px 32px;
  transition:transform .25s var(--ease),filter .25s var(--ease);
}
.service-card__link svg{width:18px;height:18px;flex:none}
.service-card__link:hover{color:#fff;transform:translateY(-2px);filter:brightness(1.05)}
.service-card--b .service-card__link{background:linear-gradient(135deg,#8A5CA0,#9E74B2);box-shadow:0 12px 26px -12px rgba(138,92,160,.8)}
.service-card--care .service-card__link{background:linear-gradient(135deg,#63A0D8,#4C8AC6);box-shadow:0 12px 26px -12px rgba(71,132,192,.8)}

/* 活動内容カード（生活介護ページ）。GNAVの3色を順に割り当てる */
.activity-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;list-style:none}
.activity{
  position:relative;overflow:hidden;
  background:#fff;border:1px solid var(--line);border-radius:16px;
  padding:26px 26px 26px 30px;
  transition:transform .4s var(--ease),box-shadow .4s var(--ease);
}
.activity::before{content:"";position:absolute;top:0;bottom:0;left:0;width:4px}
.activity:hover{transform:translateY(-4px);box-shadow:0 22px 44px -30px rgba(90,62,118,.45)}
.activity__name{
  font-family:var(--serif);font-weight:600;font-size:1.08rem;
  color:var(--purple-d);letter-spacing:.04em;margin-bottom:10px;
}
.activity p{font-size:.88rem;color:#4d4557;line-height:1.9}
.activity:nth-child(3n+1)::before{background:linear-gradient(180deg,#8A5CA0,#B08BC4)}
.activity:nth-child(3n+2)::before{background:linear-gradient(180deg,#5C9AD4,#8FBEE6)}
.activity:nth-child(3n+3)::before{background:linear-gradient(180deg,#F2A24C,#F7C489)}

/* ==========================================================================
   09a. 自社事業（パンフレット掲載）
   ========================================================================== */
.pan-sec{padding-block:40px}
.pan-fig{margin:0 auto;max-width:1040px}
.pan-fig img{
  width:100%;height:auto;display:block;border-radius:14px;
  box-shadow:0 22px 50px -34px rgba(90,62,118,.5);border:1px solid var(--line);
}
@media (max-width:880px){ .pan-sec{padding-block:24px} }
#brochure{scroll-margin-top:96px}

/* --- 自社事業 4項目カード（service-card をベースに派生） --- */
.biz-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:26px;list-style:none;margin-top:8px}
.biz-card{
  display:flex;flex-direction:column;position:relative;overflow:hidden;
  background:#fff;border:1px solid var(--line);border-radius:20px;
  padding:36px 34px 30px;
  transition:transform .4s var(--ease),box-shadow .4s var(--ease);
}
.biz-card::before{content:"";position:absolute;inset:0 0 auto 0;height:5px}
.biz-card:hover{transform:translateY(-6px);box-shadow:0 26px 50px -30px rgba(90,62,118,.5)}
.biz-card--clean::before{background:linear-gradient(90deg,#5C9AD4,#8FBEE6)}
.biz-card--pc::before{background:linear-gradient(90deg,#8A5CA0,#B08BC4)}
.biz-card--scan::before{background:linear-gradient(90deg,#5AA484,#8FC9AF)}
.biz-card--fire::before{background:linear-gradient(90deg,#F2A24C,#F7C489)}
.biz-card__title{
  font-family:var(--serif);color:var(--purple-d);
  font-size:1.34rem;line-height:1.4;font-weight:700;margin-bottom:14px;
}
.biz-card--clean .biz-card__title{color:#3f77ab}
.biz-card--pc .biz-card__title{color:var(--purple-d)}
.biz-card--scan .biz-card__title{color:#3f7d63}
.biz-card--fire .biz-card__title{color:var(--amber-d)}
.biz-card__text{font-size:.95rem;line-height:1.9;color:var(--ink);margin-bottom:22px}
.biz-card__foot{margin-top:auto}
.biz-btn{
  font-size:.92rem;padding:12px 26px;color:#fff;cursor:pointer;
  background:linear-gradient(135deg,#8A5CA0,#9E74B2);
  box-shadow:0 14px 30px -14px rgba(138,92,160,.8);
}
.biz-card--clean .biz-btn{background:linear-gradient(135deg,#63A0D8,#4C8AC6);box-shadow:0 14px 30px -14px rgba(71,132,192,.8)}
.biz-card--scan .biz-btn{background:linear-gradient(135deg,#5FAE8C,#4A926F);box-shadow:0 14px 30px -14px rgba(74,146,111,.8)}
.biz-card--fire .biz-btn{background:linear-gradient(135deg,#F4AC5C,#EE9636);box-shadow:0 14px 30px -14px rgba(224,139,51,.8)}

/* 4項目の下・締めテキスト */
.biz-note{max-width:var(--narrow);margin:44px auto 0;text-align:center}
.biz-note p{font-size:1rem;line-height:1.95;color:var(--ink);margin:0 0 18px;font-weight:500}
.biz-note p:last-child{margin-bottom:0}
.biz-note a{color:var(--purple);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.biz-note a:hover{color:var(--purple-d)}
@media (max-width:880px){ .biz-note{margin-top:32px} .biz-note p{font-size:.95rem} }

/* --- チラシ画像オーバーレイ（ライトボックス） --- */
.biz-lightbox{
  position:fixed;inset:0;z-index:1000;
  display:flex;align-items:center;justify-content:center;
  padding:4vh 4vw;background:rgba(58,49,64,.82);
  animation:bizFade .2s var(--ease);
}
.biz-lightbox[hidden]{display:none}
.biz-lightbox__img{
  max-width:100%;max-height:92vh;width:auto;height:auto;
  border-radius:10px;box-shadow:0 30px 70px -20px rgba(0,0,0,.6);background:#fff;
}
.biz-lightbox__close{
  position:absolute;top:18px;right:24px;
  width:48px;height:48px;border:none;border-radius:50%;cursor:pointer;
  background:rgba(255,255,255,.92);color:var(--purple-d);
  font-size:30px;line-height:1;display:flex;align-items:center;justify-content:center;
  box-shadow:0 8px 20px rgba(0,0,0,.3);transition:background .2s,transform .2s;
}
.biz-lightbox__close:hover{background:#fff;transform:scale(1.06)}
@keyframes bizFade{from{opacity:0}to{opacity:1}}
@media (max-width:880px){
  .biz-cards{grid-template-columns:1fr;gap:20px}
  .biz-card{padding:30px 26px 26px}
  .biz-card__title{font-size:1.22rem}
  .biz-lightbox__close{top:10px;right:12px;width:42px;height:42px;font-size:26px}
}

/* ==========================================================================
   09b. 自社事業（クリーニング提案）※旧・未使用（参考として保持）
   ========================================================================== */
/* ダウンロードカード */
.download-card{
  display:flex;align-items:center;gap:24px;flex-wrap:wrap;
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:26px 30px;max-width:860px;margin-inline:auto;
  box-shadow:0 22px 50px -34px rgba(90,62,118,.5);
}
.download-card__icon{
  width:60px;height:60px;flex:none;border-radius:16px;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#8A5CA0,#9E74B2);
}
.download-card__icon svg{width:28px;height:28px;color:#fff;fill:none}
.download-card__body{flex:1;min-width:220px}
.download-card__title{font-family:var(--serif);font-weight:600;font-size:1.1rem;color:var(--purple-d);margin-bottom:4px}
.download-card__meta{font-size:.84rem;color:var(--muted)}
/* ダウンロードは線画アイコンなので path を fill:none / stroke:currentColor に。
   （塗り系アイコン=電話・メール等は .btn svg の fill:currentColor のまま表示） */
.btn--download svg{width:18px;height:18px}
.btn--download svg path{fill:none;stroke:currentColor;stroke-width:2}

/* 効果カード（4つのメリット） */
.benefit-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;list-style:none}
.benefit{
  display:flex;gap:18px;align-items:flex-start;
  background:#fff;border:1px solid var(--line);border-radius:16px;padding:26px 28px;
  transition:transform .4s var(--ease),box-shadow .4s var(--ease);
}
.benefit:hover{transform:translateY(-4px);box-shadow:0 22px 44px -30px rgba(90,62,118,.45)}
.benefit__no{
  width:40px;height:40px;flex:none;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--num);font-size:1.25rem;font-weight:600;color:#fff;
}
.benefit:nth-child(1) .benefit__no{background:linear-gradient(135deg,#8A5CA0,#9E74B2)}
.benefit:nth-child(2) .benefit__no{background:linear-gradient(135deg,#63A0D8,#4C8AC6)}
.benefit:nth-child(3) .benefit__no{background:linear-gradient(135deg,#F4AC5C,#EE9636)}
.benefit:nth-child(4) .benefit__no{background:linear-gradient(135deg,#8A5CA0,#9E74B2)}
.benefit h3{font-size:1.1rem;font-weight:600;color:var(--purple-d);margin-bottom:8px;letter-spacing:.03em}
.benefit p{font-size:.9rem;color:#4d4557;line-height:1.9}

/* データテーブル */
.table-wrap{overflow-x:auto;margin-inline:auto}
.data-table{width:100%;border-collapse:collapse;background:#fff;font-size:.95rem;
  border:1px solid var(--line);border-radius:14px;overflow:hidden}
.data-table th{
  background:var(--purple-d);color:#fff;font-family:var(--serif);font-weight:600;
  padding:14px 18px;text-align:center;letter-spacing:.04em;font-size:.92rem;
}
.data-table td{padding:13px 18px;border-top:1px solid var(--line);color:#4d4557;vertical-align:middle}
.data-table td.num{text-align:center;font-variant-numeric:tabular-nums}
.data-table td.cut{color:var(--amber-d);font-weight:700;text-align:center}
.data-table .price{font-family:var(--serif);color:var(--purple-d);font-weight:700}
.data-table tr.total td{background:var(--lav-bg);font-weight:700;color:var(--purple-d)}
.data-table tr.total td.effect{background:var(--amber);color:#fff}
/* 比較テーブルの自社列強調 */
.compare-table col.own{background:#FDF3E6}
.compare-table td.own,.compare-table th.own{background:#FDF3E6}
.compare-table th.own{background:linear-gradient(135deg,#F4AC5C,#EE9636)}
.compare-table td.own{color:var(--amber-d);font-weight:700;font-size:1.05rem;text-align:center}
.compare-table td.rowh{font-weight:600;color:var(--ink)}
.compare-table td.mute{text-align:center;color:var(--muted)}

/* 料金コールアウト */
.price-callout{
  background:linear-gradient(135deg,#F4AC5C,#EE9636);color:#fff;
  border-radius:16px;padding:22px 30px;text-align:center;font-family:var(--serif);
  box-shadow:0 16px 34px -14px rgba(224,139,51,.7);max-width:640px;margin-inline:auto;
}
.price-callout strong{font-size:1.9rem;font-weight:700;margin-left:10px}

/* メリット / デメリット */
.pros-cons{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.pc-box{border-radius:16px;padding:28px 30px}
.pc-box--merit{background:var(--lav-bg)}
.pc-box--demerit{background:#F3F1F5}
.pc-box__label{
  display:inline-block;font-family:var(--round);font-weight:700;font-size:.82rem;color:#fff;
  border-radius:999px;padding:7px 18px;margin-bottom:14px;line-height:1;
}
.pc-box--merit .pc-box__label{background:linear-gradient(135deg,#8A5CA0,#9E74B2)}
.pc-box--demerit .pc-box__label{background:var(--muted)}
.pc-box p{font-size:.92rem;color:#4d4557;line-height:1.95}
.pc-box strong{color:var(--amber-d)}

/* 集配プロセス（3ステップ） */
.proc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;list-style:none}
.proc{background:#fff;border:1px solid var(--line);border-radius:16px;padding:26px 26px 24px;position:relative}
.proc__label{display:inline-block;font-family:var(--round);font-weight:700;font-size:.9rem;color:#fff;border-radius:999px;padding:8px 20px;margin-bottom:14px;line-height:1}
.proc:nth-child(1) .proc__label{background:linear-gradient(135deg,#8A5CA0,#9E74B2)}
.proc:nth-child(2) .proc__label{background:linear-gradient(135deg,#63A0D8,#4C8AC6)}
.proc:nth-child(3) .proc__label{background:linear-gradient(135deg,#F4AC5C,#EE9636)}
.proc ul{list-style:none;display:flex;flex-direction:column;gap:8px}
.proc li{position:relative;padding-left:18px;font-size:.88rem;color:#4d4557;line-height:1.75}
.proc li::before{content:"";position:absolute;left:0;top:.62em;width:6px;height:6px;border-radius:50%;background:var(--lavender)}

/* 集配リード（往復） */
.exchange{display:flex;align-items:center;justify-content:center;gap:18px;flex-wrap:wrap;max-width:760px;margin:0 auto 12px}
.exchange__node{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 30px;font-family:var(--serif);font-weight:600;color:var(--purple-d);font-size:1.05rem}
.exchange__node.is-house{background:linear-gradient(135deg,#8A5CA0,#9E74B2);color:#fff;border-color:transparent}
.exchange__arrows{display:flex;flex-direction:column;gap:4px;color:var(--blue);font-family:var(--round);font-weight:700;font-size:.82rem;text-align:center}

/* ==========================================================================
   10. タイムライン（1日の流れ）
   ========================================================================== */
.schedule{display:grid;grid-template-columns:1fr 1fr;gap:56px}
/* 1列で見せるタイムライン（生活介護ページ） */
.schedule-single{max-width:420px;margin-inline:auto}
.timeline{list-style:none;position:relative;padding-left:26px}
.timeline::before{content:"";position:absolute;left:5px;top:6px;bottom:6px;width:1px;background:var(--line)}
.timeline li{position:relative;padding-bottom:22px}
.timeline li:last-child{padding-bottom:0}
.timeline li::before{
  content:"";position:absolute;left:-24px;top:5px;width:11px;height:11px;border-radius:50%;
  background:#fff;border:2px solid var(--lavender);
}
.timeline li.is-key::before{background:var(--amber);border-color:var(--amber)}
.timeline__time{display:block;font-family:var(--num);font-size:1.05rem;font-weight:600;color:var(--purple);letter-spacing:.03em}
.timeline__act{display:block;font-size:.9rem;color:#4d4557}

/* ==========================================================================
   11. ステップ（利用までの流れ）
   ========================================================================== */
.flow{max-width:660px;margin-inline:auto;list-style:none;position:relative}
.flow::before{content:"";position:absolute;left:24px;top:24px;bottom:24px;width:1px;background:rgba(255,255,255,.24)}
.flow li{display:flex;align-items:center;gap:24px;padding-block:13px;position:relative}
.flow__no{
  width:50px;height:50px;flex:none;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--round);font-size:1.3rem;font-weight:700;color:var(--purple-d);
  background:#fff;position:relative;z-index:2;box-shadow:0 6px 14px -6px rgba(0,0,0,.4);
}
.flow li:last-child .flow__no{background:linear-gradient(135deg,#F4AC5C,#EE9636);color:#fff}
.flow__label{
  flex:1;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);
  border-radius:12px;padding:16px 24px;font-size:.98rem;letter-spacing:.04em;font-family:var(--serif);
}
/* 補足説明つきのステップ */
.flow__label strong{display:block;font-weight:600}
.flow__label small{
  display:block;margin-top:5px;
  font-family:var(--sans);font-size:.82rem;font-weight:400;
  color:#D3C8E4;line-height:1.75;letter-spacing:.02em;
}

/* ==========================================================================
   12. 沿革・定義リスト・理念
   ========================================================================== */
/* 経営理念 */
.creed{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:46px 44px;max-width:820px;margin-inline:auto;text-align:center;
  box-shadow:0 22px 50px -38px rgba(90,62,118,.5);
}
.creed p{font-family:var(--serif);font-size:1.1rem;line-height:2.3;color:var(--purple-d);letter-spacing:.04em}

/* 経営方針 */
.policy{list-style:none;display:grid;gap:16px;max-width:860px;margin-inline:auto}
.policy li{
  display:flex;gap:18px;align-items:flex-start;
  background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px 26px;
}
.policy__no{
  font-family:var(--round);font-weight:700;font-size:1rem;color:#fff;
  width:32px;height:32px;flex:none;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#8A5CA0,#9E74B2);
}
.policy li:nth-child(2n) .policy__no{background:linear-gradient(135deg,#63A0D8,#4C8AC6)}
.policy li:nth-child(3n) .policy__no{background:linear-gradient(135deg,#F4AC5C,#EE9636)}
.policy p{font-size:.95rem;color:#4d4557;line-height:1.95}

/* 沿革 */
.history{list-style:none;position:relative;max-width:820px;margin-inline:auto;padding-left:150px}
.history::before{content:"";position:absolute;left:126px;top:8px;bottom:8px;width:2px;background:var(--lav-bg)}
.history li{position:relative;padding-bottom:38px}
.history li:last-child{padding-bottom:0}
.history__year{
  position:absolute;left:-150px;top:0;width:126px;text-align:right;padding-right:34px;
  font-family:var(--serif);font-weight:600;color:var(--purple);font-size:.98rem;letter-spacing:.02em;
}
.history li::before{
  content:"";position:absolute;left:-30px;top:8px;width:13px;height:13px;border-radius:50%;
  background:#fff;border:3px solid var(--lavender);
}
.history li:last-child::before{background:var(--amber);border-color:var(--amber)}
.history p{font-size:.94rem;color:#4d4557;line-height:2}

/* 定義リスト（募集要項・事業所情報） */
.deflist{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;
  margin:0;
}
.deflist__row{display:grid;grid-template-columns:220px 1fr;border-top:1px solid var(--line)}
.deflist__row:first-child{border-top:none}
.deflist dt{
  padding:20px 26px;background:var(--lav-bg);font-family:var(--serif);font-weight:600;
  color:var(--purple-d);font-size:.95rem;letter-spacing:.04em;margin:0;
}
.deflist dd{padding:20px 26px;margin:0;font-size:.93rem;color:#4d4557;line-height:1.95}
.deflist dd ul{list-style:none;display:flex;flex-direction:column;gap:8px}
.deflist dd li{position:relative;padding-left:18px}
.deflist dd li::before{content:"";position:absolute;left:0;top:.75em;width:6px;height:6px;border-radius:50%;background:var(--lavender)}
.deflist dd .note{display:block;font-size:.84rem;color:var(--muted);margin-top:8px}
.tag-strong{font-family:var(--round);font-weight:700;color:var(--amber-d);font-size:1.15rem}

/* 理事長挨拶 */
.greeting{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:46px 44px;max-width:860px;margin-inline:auto;
}
.greeting p{font-size:.96rem;color:#4d4557;line-height:2.15}
.greeting p + p{margin-top:20px}
.greeting__sign{
  margin-top:32px;text-align:right;font-family:var(--serif);font-size:1.02rem;color:var(--purple-d);letter-spacing:.06em;
}

/* ==========================================================================
   13. お知らせ（一覧 / 記事）
   ========================================================================== */
.news-list{list-style:none;display:flex;flex-direction:column;gap:14px;max-width:860px;margin-inline:auto}
.news-item{
  background:#fff;border:1px solid var(--line);border-radius:14px;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease);
}
.news-item:hover{transform:translateY(-3px);box-shadow:0 20px 40px -30px rgba(90,62,118,.5)}
.news-item a{display:flex;align-items:center;gap:24px;padding:22px 28px;color:var(--ink)}
.news-item a:hover{color:var(--purple-d)}
.news-item__date{
  font-family:var(--num);font-size:1rem;font-weight:600;color:var(--purple);
  flex:none;letter-spacing:.04em;
}
.news-item__cat{
  font-family:var(--round);font-size:.74rem;font-weight:700;color:#fff;
  background:var(--lavender);border-radius:999px;padding:5px 14px;flex:none;line-height:1;
}
.news-item__title{font-size:.98rem;line-height:1.7;font-family:var(--sans)}

/* カテゴリーリンクリスト（一覧・アーカイブ・記事下） */
.cat-nav{
  max-width:860px;margin:0 auto 40px;
  display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px 16px;
}
.cat-nav__label{font-family:var(--round);font-weight:700;font-size:.85rem;color:var(--purple-d)}
.cat-nav__list{list-style:none;display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.cat-nav__link{
  display:inline-flex;align-items:center;gap:7px;
  font-family:var(--round);font-weight:700;font-size:.84rem;color:var(--purple-d);
  background:#fff;border:1px solid var(--line);border-radius:999px;padding:9px 18px;line-height:1;
  transition:background .25s var(--ease),color .25s var(--ease),transform .25s var(--ease),border-color .25s var(--ease);
}
.cat-nav__link:hover{background:var(--lav-bg);color:var(--purple-d);transform:translateY(-1px)}
.cat-nav__link.is-current{background:linear-gradient(135deg,#8A5CA0,#9E74B2);color:#fff;border-color:transparent}
.cat-nav__count{font-family:var(--num);font-size:.82rem;opacity:.7;font-weight:600}
/* 記事下に置くときは上に余白と区切りの余白 */
.single .cat-nav{margin-top:48px;padding-top:8px}

.post-header{margin-bottom:34px;text-align:center}
.post-header__meta{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px 14px;margin-bottom:14px}
.post-header__date{font-family:var(--num);font-size:1rem;font-weight:600;color:var(--purple)}
.post-header__title{font-size:clamp(1.5rem,3vw,2rem);letter-spacing:.05em;line-height:1.6}
/* カテゴリーリンク（投稿ごと・複数対応） */
.post-cats{display:inline-flex;flex-wrap:wrap;gap:8px;justify-content:center}
.post-cat{
  font-family:var(--round);font-size:.74rem;font-weight:700;color:#fff;line-height:1;
  background:var(--lavender);border-radius:999px;padding:6px 15px;
  transition:background .25s var(--ease),transform .25s var(--ease);
}
.post-cat:hover{color:#fff;background:var(--purple);transform:translateY(-1px)}
/* アイキャッチ：本文と同じ760px幅・高さ自動で中央配置 */
.post-thumb{
  max-width:var(--narrow);margin:0 auto 34px;
  border-radius:var(--radius);overflow:hidden;
}
.post-thumb img{width:100%;height:auto;display:block}

.post-content{max-width:var(--narrow);margin-inline:auto}
.post-content > * + *{margin-top:1.6em}
.post-content h2{
  font-size:1.4rem;letter-spacing:.05em;padding-bottom:12px;border-bottom:2px solid var(--lav-bg);position:relative;
}
.post-content h2::after{content:"";position:absolute;left:0;bottom:-2px;width:52px;height:2px;background:var(--amber)}
.post-content h3{font-size:1.18rem;letter-spacing:.04em}
.post-content p{line-height:2.05}
.post-content ul,.post-content ol{padding-left:1.4em}
.post-content li{margin-top:.6em}
.post-content ul{list-style:disc}
.post-content ol{list-style:decimal}
.post-content img{border-radius:14px}
.post-content blockquote{
  border-left:4px solid var(--lavender);background:var(--lav-bg);
  padding:20px 26px;border-radius:0 12px 12px 0;color:#4d4557;
}
.post-content a{text-decoration:underline;text-underline-offset:3px}
.post-content table{width:100%;border-collapse:collapse;font-size:.92rem}
.post-content th,.post-content td{border:1px solid var(--line);padding:12px 16px;text-align:left}
.post-content th{background:var(--lav-bg);color:var(--purple-d);font-family:var(--serif)}

.pagination{display:flex;justify-content:center;gap:10px;margin-top:56px;flex-wrap:wrap}
.pagination .page-numbers{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:44px;height:44px;padding-inline:12px;border-radius:999px;
  background:#fff;border:1px solid var(--line);color:var(--purple-d);
  font-family:var(--round);font-weight:700;font-size:.9rem;
}
.pagination .page-numbers:hover{background:var(--lav-bg)}
.pagination .page-numbers.current{background:linear-gradient(135deg,#8A5CA0,#9E74B2);color:#fff;border-color:transparent}

.post-nav{display:flex;justify-content:space-between;gap:16px;margin-top:56px;flex-wrap:wrap}
.post-nav a{
  font-family:var(--round);font-weight:700;font-size:.9rem;color:var(--purple-d);
  background:#fff;border:1px solid var(--line);border-radius:999px;padding:12px 26px;
}
.post-nav a:hover{background:var(--lav-bg)}

/* ==========================================================================
   14. アクセス / CTA / 準備中 / 404
   ========================================================================== */
.access-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:start}
.access-box{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:34px 32px}
.access-box__label{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--round);font-weight:700;font-size:.8rem;color:#fff;
  background:linear-gradient(135deg,#8A5CA0,#9E74B2);border-radius:999px;padding:7px 16px;margin-bottom:18px;line-height:1;
}
.access-box__label svg{width:14px;height:14px;fill:currentColor}
.access-box p{font-size:.96rem;color:#4d4557;line-height:2}
.access-box__tel{
  font-family:var(--round);font-weight:700;font-size:1.5rem;color:var(--purple-d);letter-spacing:.04em;
  display:inline-block;margin-top:6px;
}
.access-box__hours{font-size:.84rem;color:var(--muted);display:block}
.access-box ul{list-style:none;margin-top:12px;display:flex;flex-direction:column;gap:8px}
.access-box li{position:relative;padding-left:20px;font-size:.92rem;color:#4d4557}
.access-box li::before{content:"";position:absolute;left:0;top:.72em;width:7px;height:7px;border-radius:50%;background:var(--amber)}
.access-map{border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);min-height:320px;background:var(--lav-bg)}
.access-map iframe{width:100%;height:100%;min-height:320px;border:0;display:block}

/* --- 地図を上・情報を下に積む1カラム構成（TOP／アクセスページ共通） --- */
.access-stack{
  border-radius:var(--radius);
  box-shadow:0 26px 56px -38px rgba(90,62,118,.5);
}
/* 地図：全幅・上の角のみ丸く */
.access-stack .access-map{
  min-height:440px;
  border-radius:var(--radius) var(--radius) 0 0;
  border-bottom:none;
}
.access-stack .access-map iframe{min-height:440px}
/* 情報：地図の下・下の角のみ丸く */
.access-stack .access-box{
  border-radius:0 0 var(--radius) var(--radius);
  border-top:none;
  padding:34px 40px;
}
.access-info{display:grid;grid-template-columns:1fr 1fr;gap:24px 48px}
.access-info__col{min-width:0}

.closer{text-align:center;padding-block:96px;background:linear-gradient(180deg,var(--ivory),var(--cream))}
.closer__sprig{position:static;display:block;width:40px;margin:0 auto 22px}
.closer__title{font-weight:700;font-size:clamp(1.7rem,3.4vw,2.3rem);letter-spacing:.06em;margin-bottom:18px}
.closer p{color:var(--muted);margin-bottom:34px;font-size:1rem}

.prep{text-align:center;padding-block:110px}
.prep__mark{
  display:inline-flex;align-items:center;justify-content:center;
  width:96px;height:96px;border-radius:50%;background:var(--lav-bg);margin-bottom:28px;
}
.prep__mark svg{width:44px;height:44px;fill:var(--lavender)}
.prep__title{font-size:1.7rem;letter-spacing:.1em;margin-bottom:16px}
.prep p{color:var(--muted);margin-bottom:32px}

.error-404{text-align:center;padding-block:110px}
.error-404__code{font-family:var(--num);font-size:5rem;font-weight:600;color:var(--lavender);line-height:1}
.error-404__title{font-size:1.6rem;letter-spacing:.08em;margin:10px 0 16px}
.error-404 p{color:var(--muted);margin-bottom:32px}

/* ==========================================================================
   15. フォーム
   ========================================================================== */
.form-area{max-width:var(--narrow);margin-inline:auto}
.form-area input[type="text"],
.form-area input[type="email"],
.form-area input[type="tel"],
.form-area input[type="url"],
.form-area select,
.form-area textarea,
.search-field{
  width:100%;font-family:var(--sans);font-size:1rem;color:var(--ink);
  background:#fff;border:1px solid var(--line);border-radius:12px;
  padding:14px 18px;transition:border-color .25s var(--ease),box-shadow .25s var(--ease);
}
.form-area textarea{min-height:180px;resize:vertical}
.form-area input:focus,.form-area select:focus,.form-area textarea:focus,.search-field:focus{
  outline:none;border-color:var(--purple);box-shadow:0 0 0 3px rgba(138,92,160,.15);
}
.form-area label{display:block;font-family:var(--round);font-weight:700;font-size:.9rem;color:var(--purple-d);margin-bottom:8px}
.form-area input[type="submit"],
.form-area button[type="submit"]{
  font-family:var(--round);font-weight:700;font-size:1rem;letter-spacing:.08em;
  color:#fff;background:linear-gradient(135deg,#F4AC5C,#EE9636);
  border:none;border-radius:999px;padding:16px 44px;cursor:pointer;
  box-shadow:0 14px 30px -12px rgba(224,139,51,.8);
  transition:transform .25s var(--ease),filter .25s var(--ease);
}
.form-area input[type="submit"]:hover,
.form-area button[type="submit"]:hover{transform:translateY(-2px);filter:brightness(1.06)}
.search-form{display:flex;gap:10px}
.search-form .search-submit{
  font-family:var(--round);font-weight:700;color:#fff;background:var(--purple);
  border:none;border-radius:999px;padding:0 26px;cursor:pointer;
}

/* コメント（標準では非表示運用） */
.comments-area{padding-block:56px}
.comment-list{list-style:none;display:flex;flex-direction:column;gap:20px;margin-bottom:44px}
.comment-list ol.children{list-style:none;padding-left:28px;margin-top:20px;display:flex;flex-direction:column;gap:20px}
.comment-body{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px 26px}
.comment-meta{display:flex;align-items:center;gap:12px;margin-bottom:10px;font-size:.85rem;color:var(--muted)}
.comment-author .fn{font-family:var(--serif);color:var(--purple-d);font-style:normal}
.comment-author img{border-radius:50%}
.comment-content{font-size:.94rem;line-height:2}
.comment-reply-link{font-family:var(--round);font-weight:700;font-size:.84rem}
.no-comments{text-align:center;color:var(--muted)}

/* ==========================================================================
   16. フッター
   ========================================================================== */
.site-footer{background:linear-gradient(160deg,#6A4788,#513A6E);color:#D8CEE6;margin-top:0}
.site-footer__inner{
  display:grid;grid-template-columns:1.1fr 1.2fr 1fr;gap:40px;
  padding-block:56px 44px;
}
.site-footer__name{font-family:var(--serif);color:#fff;font-size:1.15rem;letter-spacing:.12em}
/* SECURITY ACTION 二つ星ロゴ（office の真下・白カード。PC/モバイル共通位置） */
.site-footer__action{display:inline-block;background:#fff;border-radius:12px;padding:12px;margin-top:16px;box-shadow:0 8px 20px -10px rgba(0,0,0,.35)}
.site-footer__action img{width:132px;height:auto;display:block}
.site-footer__office{font-size:.86rem;margin-top:8px;color:#C6BAD8}
.site-footer__addr{font-size:.88rem;line-height:1.9}
.site-footer__tel{display:flex;align-items:center;gap:8px;margin-top:12px;flex-wrap:wrap}
.site-footer__tel svg{width:17px;height:17px;fill:#F3C58A;flex:none}
.site-footer__tel-link{font-family:var(--round);font-weight:700;font-size:1.25rem;color:#fff;letter-spacing:.04em}
.site-footer__tel-link:hover{color:#F3C58A}
.site-footer__hours{width:100%;font-size:.78rem;color:#BFB2D2}
.site-footer__list{list-style:none;display:flex;flex-direction:column;gap:10px}
.site-footer__list a{color:#D8CEE6;font-size:.88rem}
.site-footer__list a:hover{color:#fff}
.site-footer__copy{
  text-align:center;padding:20px;font-size:.8rem;letter-spacing:.08em;
  border-top:1px solid rgba(255,255,255,.14);color:#BFB2D2;margin:0;
}
.site-footer__copy-name{font-family:var(--serif);color:#fff;letter-spacing:.14em}

/* ==========================================================================
   17. アニメーション・アクセシビリティ
   ========================================================================== */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal.is-visible{opacity:1;transform:none}

:focus-visible{outline:3px solid var(--purple);outline-offset:3px;border-radius:6px}
.pill:focus-visible,.btn:focus-visible{outline-color:var(--purple-d)}
.band-deep :focus-visible,.site-footer :focus-visible{outline-color:#F3C58A}

.screen-reader-text{
  border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);
  height:1px;width:1px;overflow:hidden;padding:0;position:absolute!important;word-wrap:normal!important;
}
.skip-link:focus{
  clip:auto;clip-path:none;height:auto;width:auto;
  display:block;top:8px;left:8px;z-index:9999;
  background:#fff;color:var(--purple-d);padding:14px 24px;border-radius:999px;
  font-family:var(--round);font-weight:700;box-shadow:0 8px 20px -8px rgba(0,0,0,.4);
}

/* ==========================================================================
   18. レスポンシブ
   ========================================================================== */
@media (max-width:980px){
  .activity-grid{grid-template-columns:repeat(2,1fr)}
  .site-footer__inner{grid-template-columns:1fr 1fr;gap:32px}
  .history{padding-left:0}
  .history::before{left:6px}
  .history li{padding-left:34px}
  .history__year{position:static;width:auto;text-align:left;padding-right:0;display:block;margin-bottom:6px}
  .history li::before{left:0}
}
@media (max-width:880px){
  .pillars,.info-grid,.info-grid--2,.gallery,.access-grid,.activity-grid,.service-cards,
  .benefit-grid,.pros-cons,.proc-grid,.access-info{grid-template-columns:1fr}
  .access-stack .access-map,.access-stack .access-map iframe{min-height:300px}
  .access-stack .access-box{padding:28px 24px}
  .price-callout strong{font-size:1.6rem}
  .download-card{flex-direction:column;text-align:center}
  .service-card{padding:32px 26px 28px}
  .service-tabs__inner{gap:10px;padding-block:20px}
  .service-tab{font-size:.86rem;padding:12px 22px}
  .schedule{grid-template-columns:1fr;gap:44px}
  .sec-pad{padding-block:76px}
  .hero__inner{padding:70px 28px 78px}
  .page-hero__inner{padding-block:56px 58px}
  .hero__sprig{width:118px;opacity:.45}

  /* 写真ヒーロー：狭い画面向けの調整 */
  .hero--framed{padding-block:24px 60px;--hero-band-extend:64px}
  .hero__figure{border-radius:16px}
  .hero__message{margin-top:104px}
  .hero__entry{
    bottom:5%;width:calc(100% - 28px);max-width:none;
    justify-content:center;gap:10px;
    font-size:.86rem;padding:13px 20px;
  }
  .hero__entry strong{display:block}
  .hero__entry-arrow{width:17px;height:17px}
  .hero__message{margin-top:34px}
  /* 狭い画面ではやや縦長にクロップして建物・被写体を見せる */
  .hero__slides{aspect-ratio:3/2}
  .hero__figure:not(.is-slider) .hero__slide{aspect-ratio:3/2}
  /* スマホは全幅のエントリーボタンと重ならないよう、ドットを上に */
  .hero__dots{left:14px;bottom:auto;top:14px}
  .page-hero__sprig{width:96px;top:14px;opacity:.4}
  .brand-name{font-size:1.2rem;letter-spacing:.1em}
  .pill{font-size:.84rem;padding:11px 20px}
  .pill.is-current{padding-inline:22px}
  .pills{gap:10px}
  .deflist__row{grid-template-columns:1fr}
  .deflist dt{padding-block:14px}
  .deflist dd{padding-top:14px}
  .creed,.greeting{padding:34px 26px}
  .news-item a{flex-wrap:wrap;gap:12px;padding:20px 22px}
  .site-footer__inner{grid-template-columns:1fr;gap:28px}
}
@media (max-width:520px){
  .wrap{padding-inline:20px}
  .callout{flex-direction:column;text-align:center;padding:22px}
  .flow li{gap:16px}
  .flow__label{padding:14px 18px;font-size:.92rem}
  .btn{width:100%;padding-inline:20px}
}

@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:.001ms!important;animation-duration:.001ms!important}
}

@media print{
  .site-header,.site-footer,.closer,.recruit-banner{display:none}
  body{background:#fff}
}
