/*
社会福祉法人 林声会 コーポレートサイト
------------------------------------------------------------
WordPressに依存しない完全に独立した静的サイト用スタイルシート。
配色・フォントは yukari / yukari-misaki サイトの --care- トークンを
そのまま流用しています。
*/

:root{
  --care-color-bg:        #fff;
  --care-color-bg-soft:   #E8E0DC;
  --care-color-rose:      #FEFAFB;
  --care-color-rose-deep: #C9748A;
  --care-color-rose-pale: #FCE8EF;
  --care-color-gold:      #B8963E;
  --care-color-gold-deep: #B8963E;
  --care-color-text:      #2C2416;
  --care-color-text-soft: #7A6B62;
  --care-color-white:     #FFFFFF;

  --care-font-display: "Shippori Mincho", serif;
  --care-font-body: "Noto Sans JP", sans-serif;

  --care-radius-sm: 6px;
  --care-radius-md: 16px;
  --care-radius-lg: 32px;

  --care-container-width: 1120px;
  --care-section-pad: clamp(56px, 8vw, 120px);
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{
  font-family:var(--care-font-body);
  color:var(--care-color-text);
  background:var(--care-color-bg);
  line-height:1.85;
  font-size:18px;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; }
button{ font-family:inherit; cursor:pointer; }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:0.01ms !important; transition-duration:0.01ms !important; }
}

/* ------------------------------------------------------------
   ボタン
------------------------------------------------------------ */
.care-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:16px 34px;
  border-radius:999px;
  font-size:16.5px;
  font-weight:700;
  letter-spacing:0.04em;
  border:1px solid transparent;
  transition:transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease;
  white-space:nowrap;
}
.care-btn:hover{ transform:translateY(-2px); }
.care-btn:focus-visible{ outline:3px solid var(--care-color-gold); outline-offset:3px; }

.care-btn--primary{
  background:var(--care-color-rose-deep);
  color:var(--care-color-white);
}
.care-btn--primary:hover{ background:#A45F71; background:color-mix(in srgb, var(--care-color-rose-deep) 82%, black); }

.care-btn--outline{
  background:var(--care-color-white);
  border-color:var(--care-color-rose-deep);
  color:var(--care-color-rose-deep);
}
.care-btn--outline:hover{ background:var(--care-color-rose-deep); color:var(--care-color-white); }

.care-btn--sm{ padding:10px 24px; font-size:15.5px; }

/* ============================================================
   法人ページ本体
============================================================ */
.hojin-topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:20px 32px;
  background:var(--care-color-white);
  border-bottom:1px solid rgba(74,59,53,0.08);
}
.hojin-topbar__logo{
  font-family:var(--care-font-display);
  font-weight:700;
  font-size:17px;
  color:var(--care-color-text);
}
.hojin-topbar__nav{ display:flex; gap:12px; }
.hojin-topbar__btn-text{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:3px;
}
.hojin-topbar__btn-sub{
  font-size:10.5px;
  font-weight:500;
  line-height:1;
  opacity:0.85;
}
@media (min-width: 561px){
  .hojin-topbar__btn-sub{ font-size:13px; }
}
.hojin-topbar__btn-main{ line-height:1; }

/* ------------------------------------------------------------
   ゆかり憲章スライダー（メインビジュアル）
------------------------------------------------------------ */
.hojin-charter--hero{ background:var(--care-color-text); }
.hojin-charter__slider{
  position:relative;
  height:calc(100vh - 80px); /* トップバーの高さ分を差し引き、画面内に収まるようにする */
  min-height:420px;
  max-height:820px;
  overflow:hidden;
}
.hojin-charter__slide{
  position:absolute;
  inset:0;
  opacity:0;
  transition:opacity 1s ease;
}
.hojin-charter__slide.is-active{
  opacity:1;
  z-index:1;
}
/* 縦幅を画面に合わせて詰めた分、写真は被写体が中心よりやや上に来るよう調整 */
.hojin-charter__slide img{ width:100%; height:100%; object-fit:cover; object-position:center 30%; }
.hojin-charter__overlay{
  position:absolute;
  inset:0;
  background:rgba(44,36,22,0.25);
}
.hojin-charter__brand{
  position:absolute;
  left:32px; top:28px;
  z-index:2;
  color:var(--care-color-white);
  font-family:var(--care-font-display);
  font-weight:700;
  font-size:clamp(16px, 1.8vw, 22px);
  letter-spacing:0.06em;
  white-space:nowrap;
  text-shadow:0 2px 10px rgba(0,0,0,0.4);
}
.hojin-charter__text{
  position:absolute;
  left:50%; bottom:56px;
  transform:translateX(-50%);
  z-index:2;
  max-width:760px;
  width:100%;
  text-align:center;
  color:var(--care-color-white);
  font-family:var(--care-font-display);
  font-size:clamp(17px, 2vw, 22px);
  font-weight:600;
  line-height:1.9;
  padding:0 28px;
}
.hojin-charter__dots{
  position:absolute;
  left:50%; bottom:28px;
  transform:translateX(-50%);
  z-index:2;
  display:flex;
  gap:10px;
}
.hojin-charter__dot{
  width:10px; height:10px;
  border-radius:50%;
  background:rgba(255,255,255,0.5);
  border:none;
  padding:0;
  cursor:pointer;
}
.hojin-charter__dot.is-active{ background:var(--care-color-white); }

@media (max-width: 560px){
  .hojin-charter__slider{ height:calc(100vh - 118px); min-height:380px; } /* スマホはトップバーが2段になる分を差し引く */
}

.hojin-philosophy{ padding:var(--care-section-pad) 24px; background:var(--care-color-bg-soft); }
.hojin-philosophy__grid{
  max-width:var(--care-container-width);
  margin-inline:auto;
  display:grid;
  grid-template-columns:1.1fr 0.9fr;
  gap:64px;
}
.hojin-philosophy__heading{
  font-family:var(--care-font-display);
  font-weight:700;
  font-size:27px;
  margin-bottom:14px;
}
.hojin-philosophy__text{
  font-size:16.5px;
  line-height:1.9;
  color:var(--care-color-text-soft);
  margin-bottom:36px;
}

.hojin-doc-list{ display:flex; flex-direction:column; gap:22px; }
.hojin-doc-item{
  display:flex;
  align-items:flex-start;
  gap:16px;
  background:var(--care-color-white);
  border-radius:var(--care-radius-md);
  padding:16px 18px;
}
.hojin-doc-number{
  flex-shrink:0;
  width:34px; height:34px;
  border-radius:50%;
  border:2px solid var(--care-color-rose-deep);
  color:var(--care-color-rose-deep);
  display:flex; align-items:center; justify-content:center;
  font-weight:700; font-size:16.5px;
}
.hojin-doc-title{ font-size:17px; font-weight:500; margin-bottom:10px; }
.hojin-doc-download{
  display:inline-flex; align-items:center; gap:6px;
  padding:6px 16px;
  border-radius:999px;
  border:1px solid rgba(74,59,53,0.2);
  font-size:15px;
  color:var(--care-color-text-soft);
}
.hojin-doc-download:hover{ border-color:var(--care-color-rose-deep); color:var(--care-color-rose-deep); }

.hojin-facility{ padding:56px 24px; }
.hojin-facility:nth-of-type(even){ background:var(--care-color-white); }
.hojin-facility__inner{ max-width:var(--care-container-width); margin-inline:auto; }
.hojin-facility__heading{
  font-family:var(--care-font-display);
  font-weight:700;
  font-size:25px;
  margin-bottom:20px;
}
.hojin-facility__cta{ margin-bottom:32px; }
.hojin-facility__grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:20px;
  align-items:start;
}
.hojin-facility__grid > article{
  overflow:hidden;
}
.hojin-facility__card-image{
  display:block;
  aspect-ratio:1/1;
  border-radius:var(--care-radius-sm);
  background:var(--care-color-bg-soft);
  margin-bottom:14px;
  overflow:hidden;
}
.hojin-facility__card-image img{ width:100%; height:100%; object-fit:cover; }
.hojin-facility__card-title{ font-size:16.5px; font-weight:700; margin-bottom:6px; }
.hojin-facility__card-desc{
  font-size:15px;
  line-height:1.7;
  color:var(--care-color-text-soft);
  margin-bottom:12px;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.hojin-facility__card-label{
  display:inline-block;
  padding:4px 14px;
  border-radius:999px;
  background:var(--care-color-text);
  color:var(--care-color-white);
  font-size:14.5px;
}
.hojin-facility__loading{
  color:var(--care-color-text-soft);
  font-size:15px;
  grid-column:1 / -1;
}

.hojin-footer{
  background:var(--care-color-gold-deep);
  padding:24px;
}
.hojin-footer__bottom{
  max-width:var(--care-container-width);
  margin-inline:auto;
  font-size:15px;
  color:var(--care-color-white);
  text-align:center;
}

@media (max-width: 900px){
  /* スマホ・タブレット幅：写真を上、キャッチコピーを下に縦積みする */
  .hojin-hero{ min-height:0; flex-direction:column; }
  .hojin-hero__photo{ position:relative; left:0; width:100%; height:260px; }
  .hojin-hero__inner{ padding:32px 20px; justify-content:center; }
  .hojin-hero__content{ max-width:none; width:100%; text-align:center; }
  .hojin-philosophy__grid{ grid-template-columns:1fr; gap:32px; }
  .hojin-facility__grid{ grid-template-columns:repeat(2, 1fr); }
}
@media (max-width: 560px){
  .hojin-hero__content{ padding:28px 24px; }
  .hojin-topbar{ flex-direction:column; gap:14px; align-items:flex-start; }
}
