/* 枠のpath・色・stroke幅は元サイトのSP用SVGそのもの。 */
.reference-editorial { position:relative; isolation:isolate; min-height:calc(1.25 * min(100vw,480px)); padding:100px 34px 96px; }
.reference-frame { position:absolute; inset:0; width:100%; height:100%; object-fit:fill; z-index:-1; pointer-events:none; }
.reference-shape-1 { padding-top:160px; padding-left:40px; padding-right:40px; }
.reference-shape-2 { padding-top:100px; padding-left:38px; padding-right:38px; }
.reference-shape-3 { padding-top:76px; padding-bottom:90px; }
.reference-shape-4 { padding-top:136px; padding-left:58px; padding-right:58px; padding-bottom:108px; }
.reference-editorial h2 { line-height:1.05; }
.reference-editorial .asahi-copy { margin-left:12px; }
.reference-shape-2 h2 { text-align:right; }
.reference-shape-3 h2 { text-align:center; }
.reference-rule { display:block; width:100%; height:36px; margin:8px 0 24px; overflow:visible; pointer-events:none; }
.reference-shape-2 .reference-rule { transform:scaleY(-1); }
.reference-editorial .asahi-kicker { border:0; padding:0; }
.reference-editorial .asahi-profile { border:0; }
.reference-editorial .asahi-profile h3 { font-size:26px; }
.reference-editorial .recruit-title,.reference-editorial h2.asahi-english { font-size:calc(.14 * min(100vw,480px)); overflow-wrap:anywhere; }
.reference-editorial .recruit-subtitle { margin-bottom:24px; }


.asahi-hero { position:relative; }




/* 通常章を1画面へ寄せる。長文の高さは制限せず、全文閲覧を維持する。 */
.asahi-section.reference-editorial { padding-top:76px; padding-bottom:54px; }
.asahi-section.reference-shape-1 { padding-top:112px; }
.asahi-section.reference-shape-3 { padding-top:56px; padding-bottom:64px; }
.asahi-section.reference-shape-4 { padding-top:104px; padding-bottom:76px; }
.asahi-section.reference-editorial h2 { margin-bottom:16px; }
.asahi-section.reference-editorial .reference-rule { height:24px; margin:0 0 16px; }
.asahi-section.reference-editorial .asahi-copy { line-height:1.6; }
.asahi-section.reference-editorial .asahi-copy p { margin-bottom:12px; }
.asahi-section.reference-editorial .asahi-kicker { margin-bottom:12px; }
.asahi-section.reference-editorial .asahi-profile { padding:16px 0; }

/* 枠を本文より大きく描き、画面端で切れる参考サイトの見え方へ。 */
.reference-frame-viewport { position:absolute; inset:0; overflow:hidden; z-index:-1; pointer-events:none; }
.reference-frame-viewport .reference-frame { inset:auto; top:auto; bottom:0; left:-6%; width:112%; height:106%; max-width:none; z-index:auto; }
/* 会社概要は内向きのギザギザを本文の外へ逃がす。 */
#company .reference-frame { left:-20%; width:140%; height:116%; bottom:-20px; }
@media (min-width:400px) { #company .reference-frame { left:-25%; width:150%; } }

/* 支え合う線画を「お互い様。お陰様。」の右側に配置。 */
:is(#philosophy, #people) .philosophy-title-row { display:flex; align-items:center; gap:8px; margin-bottom:16px; }
:is(#philosophy, #people) .philosophy-title-row h2 { flex:none; margin:0; }
:is(#philosophy, #people) .philosophy-illustration { display:block; width:40%; max-width:150px; height:auto; object-fit:contain; margin-left:0; min-width:0; }

:is(#philosophy, #people) .philosophy-title-row h2 { font-size:calc(.085 * min(100vw,480px)); line-height:1.4; letter-spacing:0.08em; }

#people .philosophy-title-row h2 { text-align:left; font-size:calc(.072 * min(100vw,480px)); }
#people .reference-rule { transform:none; }
#people { padding-left:40px; padding-right:40px; }

#philosophy .asahi-copy .philosophy-highlight { background:none; padding:0; margin-left:0; margin-right:0; }
#philosophy .philosophy-highlight span { display:block; width:fit-content; max-width:100%; box-sizing:border-box; background:#fe7d00; color:#fff; font-weight:700; letter-spacing:0.08em; padding:2px 6px; margin-bottom:4px; }
#philosophy .philosophy-highlight span:last-child { margin-bottom:0; }

/* 強み1は見出しから本文まで中央揃え。 */
:is(#strength-one, #strength-two) { text-align:center; }
:is(#strength-one, #strength-two) .asahi-copy { margin-left:0; }
/* 強み1の本文だけを枠の内側へ寄せ、中央揃えを維持する。 */
#strength-one .asahi-copy { width:calc(100% - 80px); max-width:300px; margin-inline:auto; }
/* 強み2の該当段落は行長を分散し、文末だけが次行に残るのを防ぐ。 */
#strength-two .strength-two-opportunity { text-wrap:balance; }
#strength-two .opportunity-ending { white-space:nowrap; }

/* みんな様セクション下部の、参考画像と同じ細線のテキストスライダー。 */
#people .people-text-slider { width:100%; max-width:400px; margin:16px auto 0; border:1px solid #000; border-radius:999px; overflow:hidden; padding:11px 0; }
#people .people-text-track { display:flex; width:max-content; font-family:"Lato",sans-serif; font-size:22px; line-height:1.2; font-weight:400; white-space:nowrap; animation:people-text-slide 16s linear infinite; }
#people .people-text-track span { flex:none; padding-right:8px; }
@keyframes people-text-slide { from { transform:translateX(0); } to { transform:translateX(-50%); } }
@media (prefers-reduced-motion:reduce) { #people .people-text-track { animation:none; } }

#people .people-title-line { white-space:nowrap; }

/* 支援する3人を右下へ重ね、本文の高さ測定では専用の余白を確保する。 */
#people .people-care-illustration { position:absolute; right:0; bottom:0; width:72%; height:calc(.38 * min(100vw,480px)); overflow:visible; z-index:2; pointer-events:none; }
#people .people-care-illustration svg { position:absolute; right:0; bottom:0; display:block; width:100%; max-width:none; height:auto; aspect-ratio:470 / 388; }

/* 強み1の病院線画は、本文と別の領域で左右端・下端に合わせる。 */
:is(#strength-one, #strength-two) .section-bottom-illustration { position:absolute; left:-25%; right:auto; bottom:0; width:150%; aspect-ratio:3.3/1; overflow:hidden; background:transparent; z-index:2; pointer-events:none; }
:is(#strength-one, #strength-two) .section-bottom-illustration img { position:absolute; left:0; bottom:0; display:block; width:100%; max-width:none; height:auto; transform:translateY(7%); }

/* 4人の顔が切れない幅で、強み1の仕事着の線画を表示。 */
#strength-one .section-bottom-illustration { left:-10%; width:120%; aspect-ratio:3/1; }
#strength-one .section-bottom-illustration img { transform:translateY(2%); }

:is(#stations,#stations-2) .station-title-row { position:relative; display:flex; align-items:center; justify-content:center; gap:0; margin-bottom:16px; }

:is(#stations,#stations-2) .tsumiki-logo { display:block; width:176px; max-width:64%; height:auto; flex:none; }

/* ロゴの位置・サイズと章の高さを変えず、左右の余白に支援場面の線画を配置。 */
:is(#stations,#stations-2) .station-side-illustration {
  position:absolute;
  top:0;
  display:block;
  width:calc((100% - min(176px,64%)) / 2 + 12px);
  height:100%;
  max-width:none;
  object-fit:contain;
  pointer-events:none;
}
:is(#stations,#stations-2) .station-side-left { left:-18px; }
:is(#stations,#stations-2) .station-side-right { right:-18px; }

/* 欲しい仲間は見出し・本文を中央揃えにする。 */
#team { text-align:center; }
#team h2 { text-align:center; }
#team .asahi-copy { margin-left:0; }

#team .asahi-copy .team-concerns { width:fit-content; max-width:100%; margin-inline:auto; text-align:left; }

/* 定期巡回の紹介ラベルと事業所名の間隔を一つにまとめる。 */
#stations .recruit-subtitle { margin-bottom:12px; }
#stations .asahi-profile { padding-top:0; }

/* スライダーの直下へ配置。右下イラストの予約高に合わせ、本文の測定には加えない。 */
#people .people-bottom-decoration {
  inset:auto 40px calc(.38 * min(100vw,480px) - 72px);
  height:64px;
  overflow:visible;
  z-index:0;
}
#people .people-bottom-figure {
  position:absolute;
  top:0;
  left:0;
  display:block;
  width:100%;
  height:100%;
  color:#000;
  pointer-events:none;
}
#people .people-bottom-figure :is(rect,path) { vector-effect:non-scaling-stroke; }

/* 帯は全幅の文章ブロックにまとめ、線画は空いた余白へ独立配置する。 */
#philosophy { padding-top:60px; padding-bottom:25px; }
#philosophy .philosophy-highlight {
  --audience-visual-width:calc((100% - 8.64em - 16px) / 2);
  position:relative;
  display:flow-root;
  min-height:max(12.5em,calc(11.7em + 12px));
  margin-bottom:12px;
}
#philosophy .philosophy-highlight > p { margin:0; }
#philosophy .philosophy-audience-illustration {
  position:absolute;
  display:block;
  max-width:none;
  height:auto;
  pointer-events:none;
}
#philosophy .philosophy-audience-family { top:-.45em; right:-.5em; width:min(6.2em,var(--audience-visual-width)); }
#philosophy .philosophy-audience-community { top:3.8em; right:-.5em; width:min(6.3em,calc(var(--audience-visual-width) + 1px)); }
#philosophy .philosophy-audience-colleagues { top:1.2em; right:min(6.1em,var(--audience-visual-width)); width:min(6.2em,var(--audience-visual-width)); }
#philosophy .philosophy-audience-phrase { display:inline-block; font:inherit; white-space:nowrap; }
/* 締めの文章を帯へ近づけ、見出しの共通サイズを決める測定高さは維持する。 */
#philosophy .asahi-copy { padding-bottom:4.25em; }
#philosophy .asahi-copy > p:last-child { margin-top:-4.25em; }
@media (max-width:359px) {
  #philosophy { padding-top:32px; padding-bottom:20px; }
  #philosophy .philosophy-highlight { min-height:12.5em; }
  #philosophy .philosophy-audience-family { right:0; width:4.6em; }
  #philosophy .philosophy-audience-community { top:2.9em; right:0; width:4.6em; }
  #philosophy .philosophy-audience-colleagues { top:1em; right:4.75em; width:4.5em; }
  #philosophy .asahi-copy { padding-bottom:6em; }
  #philosophy .asahi-copy > p:last-child { margin-top:-6em; }
}
