/*
Theme Name: NursePlanet
Description: ナースプラネット専用テーマ。既存A/BデザインとWordPress管理データを接続します。
Version: 1.0.0
Requires at least: 6.6
Requires PHP: 8.3
Text Domain: nurseplanet
*/
body.npw-site{--font-noto-sans-jp:'Noto Sans JP';--font-montserrat:'Noto Sans';margin:0}
.npw-site .npw-content{min-height:48vh;padding:80px 0}
.npw-site .npw-content h1{font-size:clamp(28px,5vw,46px);line-height:1.5;margin-bottom:32px}
.npw-site .npw-content h2{font-size:24px;margin:40px 0 18px}
.npw-site .npw-content p,.npw-site .npw-content li{line-height:1.9}
.npw-site .npw-content p{margin:0 0 1.2em}
.npw-site .npw-post-list{list-style:none;padding:0}
.npw-site .npw-post-list li{padding:24px 0;border-bottom:1px solid #e2e6df}
.npw-site .npw-post-list a{color:inherit;text-decoration:none}
.npw-site .npw-post-list time{display:block;font-family:var(--font-montserrat),sans-serif;font-size:13px;color:#667265}
.npw-site .npw-post-list h2{margin:10px 0;font-size:22px}
.npw-site .npw-post-media{max-width:100%;height:auto;border-radius:20px}
.npw-site .npw-video-player{width:100%;aspect-ratio:16/9;border:0;border-radius:20px;background:#202b26}
.npw-site .npw-organization-contact{display:flex;flex-wrap:wrap;gap:10px 28px;padding-top:20px;padding-bottom:20px;font-size:14px}
.npw-site .npw-office{grid-column:1 / -1;padding-top:24px;border-top:1px solid var(--np-line,#dde7e2)}
.npw-site .npw-office h3{font-size:20px;margin:0 0 14px}
.npw-site .npw-office p{margin:0;line-height:1.9}
.npw-site .npw-footer-policy{margin-left:20px;color:inherit}
.npw-site .npw-footer-policy-row{padding-top:12px;padding-bottom:20px;font-size:13px;text-align:right}
.npw-site .npw-pdf{display:inline-flex;gap:12px;padding:14px 20px;border:1px solid currentColor;border-radius:12px}
.npw-site .npw-post-navigation{display:flex;justify-content:space-between;gap:24px;margin-top:40px}
.npw-site .npw-standard-menu{list-style:none;padding:0;margin:0;display:contents}
.npw-site .npw-standard-menu>li{display:contents}
.npw-site .np-b-news-list ul{list-style:none;margin:0;padding:0}
.npw-site .np-b-news-list li{border-bottom:1px solid #dde7e2}
.npw-site .np-b-news-list li a{display:grid;grid-template-columns:170px 1fr 20px;gap:20px;padding:24px 0;align-items:center}
.npw-site .np-b-news-list time{font-family:var(--font-montserrat),sans-serif;font-size:13px}
.npw-site .np-b-news-list small{display:block;font-size:11px;color:#276b64}
.npw-site .np-b-news-list strong{font-weight:500}
body.npw-site.admin-bar .np-header,body.npw-site.admin-bar .np-b-header{top:32px}
@media(max-width:782px){body.npw-site.admin-bar .np-header,body.npw-site.admin-bar .np-b-header{top:46px}}
@media(max-width:767px){.npw-site .npw-content{padding:48px 0}.npw-site .npw-content h2{font-size:21px}.npw-site .npw-footer-policy{display:block;margin:10px 0}.npw-site .npw-organization-contact{flex-direction:column}.npw-site .np-b-news-list li a{grid-template-columns:1fr 20px;gap:10px}.npw-site .np-b-news-list li a>span:first-child{grid-column:1 / -1}.npw-site .np-b-news-list small{display:inline-block;margin-left:14px}}

/* A版のみ。開始前に隠さず、JavaScriptが停止しても情報と操作を残す。 */
.npw-site[data-npw-motion] .npw-motion-reset {
  animation: none;
  opacity: 1;
  transform: none;
}
.npw-site[data-npw-motion="ready"] .npw-motion-enter {
  animation: npw-motion-rise 850ms cubic-bezier(.2,.7,.2,1) var(--npw-motion-delay,0ms) both;
}
.npw-site[data-npw-motion="ready"] .npw-motion-enter[data-npw-motion-kind="art"] {
  animation-name: npw-motion-art;
  animation-duration: 1100ms;
}
.npw-site[data-npw-motion="ready"] .npw-motion-enter[data-npw-motion-kind="mascot"] {
  animation-name: npw-motion-mascot;
  animation-duration: 1000ms;
  transform-origin: 50% 90%;
}
@keyframes npw-motion-rise {
  from { opacity: 0; transform: translate3d(0,32px,0); }
  to { opacity: 1; transform: none; }
}
@keyframes npw-motion-art {
  from { opacity: 0; transform: translate3d(var(--npw-motion-x,18px),24px,0) scale(.96); }
  to { opacity: 1; transform: none; }
}
@keyframes npw-motion-mascot {
  0% { opacity: 0; transform: translate3d(0,14px,0) rotate(-5deg) scale(.94); }
  55% { opacity: 1; transform: translate3d(0,-7px,0) rotate(3deg); }
  78% { transform: translate3d(0,2px,0) rotate(-1deg); }
  100% { opacity: 1; transform: none; }
}
.npw-site[data-npw-motion] :is(.np-button,.np-brand-button,.np-text-link,.np-brand-text-link) {
  transition: background-color .28s ease, color .28s ease, border-color .28s ease, box-shadow .28s ease;
}
.npw-site[data-npw-motion] :is(.np-button,.np-brand-button,.np-text-link,.np-brand-text-link) svg {
  transition: transform .28s ease;
}
@media(hover:hover) and (prefers-reduced-motion:no-preference) {
  .npw-site[data-npw-motion] :is(.np-button,.np-brand-button,.np-text-link,.np-brand-text-link):hover svg {
    transform: translateX(4px);
  }
  .npw-site[data-npw-motion] .np-sub-hero-image img { transition: transform 1s cubic-bezier(.2,.7,.2,1); }
  .npw-site[data-npw-motion] .np-sub-hero-image:hover img { transform: scale(1.035); }
}
/* フォーカス・アンカー移動は演出より優先し、待たずに読む／押すことができる。 */
.npw-site[data-npw-motion] .npw-motion-enter:focus-within,
.npw-site[data-npw-motion] .npw-motion-enter:target { animation: none; opacity: 1; transform: none; }
@media(max-width:767px) {
  .npw-site[data-npw-motion="ready"] .npw-motion-enter { animation-duration: 700ms; }
  .npw-site[data-npw-motion="ready"] .npw-motion-enter[data-npw-motion-kind="art"] {
    --npw-motion-x: 0px !important;
    animation-duration: 900ms;
  }
}
@media(prefers-reduced-motion:reduce) {
  .npw-site[data-npw-motion] .npw-motion-item,
  .npw-site[data-npw-motion] .npw-motion-reset { animation: none !important; opacity: 1 !important; transform: none !important; }
  .npw-site[data-npw-motion] :is(.np-button,.np-brand-button,.np-text-link,.np-brand-text-link),
  .npw-site[data-npw-motion] :is(.np-button,.np-brand-button,.np-text-link,.np-brand-text-link) svg,
  .npw-site[data-npw-motion] .np-sub-hero-image img { transition: none !important; transform: none !important; }
}
@media print {
  .npw-site[data-npw-motion] .npw-motion-item,
  .npw-site[data-npw-motion] .npw-motion-reset { animation: none !important; opacity: 1 !important; transform: none !important; }
}

/* 採用の確認案だけに限定し、他ページと正式ロゴの文字は変更しない。 */
/* 縦素材は切り取らず横長の余白に収め、狭い画面では字幕の読みやすさを優先する。 */
.npw-site .ihonest-representative-message { grid-template-columns: minmax(0,1fr); gap: 32px; }
.npw-site .ihonest-representative-movie { width: min(100%,960px); margin: 0 auto; min-width: 0; }
.npw-site .ihonest-representative-player { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: contain; background: #fff8e8; border: 1px solid #e7d9c8; border-radius: 20px 14px 18px 12px; }
.npw-site .ihonest-representative-player:focus-visible { outline: 3px solid var(--np-green,#26a69a); outline-offset: 4px; }
.npw-site .ihonest-representative-movie figcaption { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; padding-top: 14px; font-size: 16px; line-height: 1.8; }
.npw-site .ihonest-representative-movie figcaption span { color: #57615c; }
@media(min-width:768px) and (max-width:1023px) { .npw-site .ihonest-representative-player { aspect-ratio: 4 / 3; } }
@media(max-width:767px) { .npw-site .ihonest-representative-movie { max-width: 360px; } .npw-site .ihonest-representative-player { aspect-ratio: 9 / 16; } }

body.npw-recruit-feedback { --font-montserrat: 'Noto Sans'; }
.np-recruit-feedback { font-family: 'Noto Sans JP', sans-serif; font-size: 16px; line-height: 1.9; }
.np-recruit-feedback :is(h1,h2,h3),
.np-recruit-feedback .np-recruit-feedback-principle h4 {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 700;
  letter-spacing: .025em;
  word-break: keep-all;
  overflow-wrap: anywhere;
  text-wrap: pretty;
}
.np-recruit-feedback :is(p,li,dd) { text-wrap: pretty; }
.np-recruit-feedback :is(.np-button,.np-hiring-tabs,.np-hiring-salary,.np-hiring-details) { font-family: 'Noto Sans JP', sans-serif; }
.np-recruit-feedback .np-sub-hero-copy h1 { font-size: clamp(29px,3.4vw,47px); line-height: 1.6; }
.np-recruit-feedback .np-recruit-feedback-philosophy { background: #fff; padding-block: clamp(64px,7vw,104px); }
.np-recruit-feedback-philosophy .np-container { max-width: 1080px; }
.np-recruit-feedback-philosophy-header { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 38px; }
.np-recruit-feedback-philosophy-header h2 { margin: 12px 0 0; font-size: clamp(27px,3vw,38px); line-height: 1.65; }
.np-recruit-feedback-soleil { display: block; flex: 0 0 auto; width: 204px; height: 204px; object-fit: contain; }
.np-recruit-feedback-motto { padding: 8px 0 40px; border-bottom: 1px solid var(--np-line,#e1e7df); }
.np-recruit-feedback-motto h3,
.np-recruit-feedback-principles > h3 { margin: 0 0 16px; font-size: 17px; color: #a84c55; letter-spacing: .12em; }
.np-recruit-feedback-motto p { margin: 0; font-family: 'Noto Sans JP',sans-serif; font-size: clamp(20px,2.3vw,30px); line-height: 1.95; font-weight: 700; word-break: keep-all; overflow-wrap: anywhere; }
.np-recruit-feedback-principles { padding-top: 36px; }
.np-recruit-feedback-principle { margin-top: 26px; padding-left: 22px; border-left: 3px solid #f5c9bc; }
.np-recruit-feedback-principle:nth-of-type(2) { border-color: #aad9c4; }
.np-recruit-feedback-principle:nth-of-type(3) { border-color: #f1d88f; }
.np-recruit-feedback-principle h4 { margin: 0 0 10px; font-size: clamp(18px,1.65vw,22px); line-height: 1.9; }
.np-recruit-feedback-principle p { margin: 0; font-size: 16px; line-height: 2; }
.np-recruit-feedback .np-recruit-feedback-choice { cursor: default; transition: none; }
.np-recruit-feedback .np-recruit-feedback-choice:hover { transform: none; box-shadow: none; }
.np-recruit-feedback .np-recruit-feedback-choice h3 { margin: 0; font-size: 18px; line-height: 1.7; }
.np-recruit-feedback .np-recruit-feedback-choice p { grid-column: 1 / -1; margin: 12px 0 0; font-size: 16px; line-height: 1.9; }
.np-recruit-feedback-note { margin: 28px 0 0; color: #57615c; font-size: 16px; }
.np-recruit-feedback .np-sub-cta-actions { display: grid; grid-template-columns: minmax(0,1fr); gap: 14px; min-width: 256px; }
.np-recruit-feedback .np-sub-cta-actions .np-button { width: 100%; min-height: 56px; padding: 14px 22px; justify-content: center; font-size: 16px; }
.np-recruit-feedback .np-sub-cta-actions .np-button-label { white-space: nowrap; }
.np-quick-actions.np-recruit-fixed[hidden] { display: none !important; }
.npw-recruit-feedback .np-recruit-fixed .np-quick-action { min-width: 0; }
.npw-recruit-feedback .np-recruit-fixed .np-quick-action strong { font-family: 'Noto Sans JP',sans-serif; }
.np-recruit-feedback .np-recruit-video-grid { display: grid; grid-template-columns: repeat(2,minmax(0,360px)); justify-content: center; gap: 40px; }
.np-recruit-feedback .np-recruit-video-card { min-width: 0; }
.np-recruit-feedback .np-recruit-interview-video { display: block; width: 100%; height: auto; aspect-ratio: 9 / 16; object-fit: contain; background: #242929; border-radius: 18px 12px 16px 10px; }
.np-recruit-feedback .np-recruit-interview-video:focus-visible { outline: 3px solid var(--np-green,#26a69a); outline-offset: 5px; }
.np-recruit-feedback .np-recruit-video-caption { padding-top: 20px; }
.np-recruit-feedback .np-recruit-video-caption .np-eyebrow { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin: 0 0 10px; }
.np-recruit-feedback .np-recruit-video-caption .np-eyebrow span { color: #57615c; letter-spacing: .04em; font-weight: 500; }
.np-recruit-feedback .np-recruit-video-caption h3 { margin: 0; font-size: 22px; line-height: 1.7; }
.np-recruit-feedback .np-recruit-video-help { margin: 28px 0 0; text-align: center; font-size: 15px; color: #57615c; }
@media(min-width:768px) {
  @supports(grid-template-rows:subgrid) {
    /* 注意書きの有無や職種名の折り返しに合わせ、同じ段のカードで行の高さを共有する。 */
    .np-recruit-feedback .np-hiring-grid > .np-hiring-card {
      display: grid;
      grid-row: span 3;
      grid-template-rows: subgrid;
      row-gap: 0;
      align-self: stretch;
    }
    .np-recruit-feedback .np-hiring-card > header {
      display: grid;
      grid-row: span 2;
      grid-template-rows: subgrid;
      row-gap: 0;
    }
    .np-recruit-feedback .np-hiring-card > header > .np-hiring-status {
      grid-row: 1;
      justify-self: start;
      align-self: start;
    }
    .np-recruit-feedback .np-hiring-card > header > h3 {
      grid-row: 2;
      align-self: start;
    }
    .np-recruit-feedback .np-hiring-card > .np-hiring-selector {
      grid-row: 3;
      align-self: start;
    }
  }
}
@media(min-width:768px) and (max-width:1023px) {
  .np-recruit-feedback-soleil { width: 160px; height: 160px; }
  /* 3つ目の雇用区分が折り返す幅では、隣のカードにも同じ2段分を確保する。 */
  .np-recruit-feedback .np-hiring-grid > .np-hiring-card:nth-child(-n+2) .np-hiring-switch {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    grid-template-rows: repeat(2,minmax(48px,1fr));
  }
  .np-recruit-feedback .np-hiring-grid > .np-hiring-card:nth-child(-n+2) .np-hiring-switch label:nth-child(3) { grid-column: 1 / -1; }
  .np-recruit-feedback .np-hiring-grid > .np-hiring-card:nth-child(-n+2) .np-hiring-switch span { line-height: 1.8; }
}
@media(max-width:767px) {
  .np-recruit-feedback .np-recruit-video-grid { grid-template-columns: minmax(0,360px); gap: 36px; }
  .np-recruit-feedback .np-recruit-video-caption h3 { font-size: 20px; }
  .np-recruit-feedback-philosophy-header { flex-direction: column; align-items: flex-start; gap: 12px; }
  .np-recruit-feedback-philosophy-header h2 { font-size: 26px; }
  .np-recruit-feedback-soleil { align-self: flex-end; width: 112px; height: 112px; }
  .np-recruit-feedback-motto { padding-bottom: 28px; }
  .np-recruit-feedback-motto p { font-size: 20px; }
  .np-recruit-feedback-principle { padding-left: 16px; margin-top: 24px; }
  .np-recruit-feedback .np-sub-cta-actions { width: 100%; min-width: 0; }
  .np-recruit-feedback .np-sub-cta-actions .np-button { padding-inline: 14px; font-size: 15px; }
  .npw-recruit-feedback .np-recruit-fixed .np-quick-action { padding: 10px 8px; }
  .npw-recruit-feedback .np-recruit-fixed .np-quick-action strong { font-size: clamp(12px,3.6vw,14px); white-space: nowrap; }
}


/* 既存の英字用変数名を残し、全ページの書体を同じ指定に揃える。 */
body.npw-site :is(main,.np-footer,.npw-content) :is(h1,h2,h3,h4,h5,h6) {
  font-family: 'Noto Sans', 'Noto Sans JP', sans-serif;
  font-weight: 700;
}
body.npw-site :is(main,.npw-content) :is(h1,h2) {
  font-weight: 800;
}
body.npw-site .np-eyebrow {
  font-family: 'Noto Sans', 'Noto Sans JP', sans-serif;
  font-weight: 700;
}
/* 元画像の縦横比を保ち、文字組みのロゴと余分なアイコンを置き換える。 */
body.npw-site .np-header .np-logo {
  width: clamp(230px,22vw,270px);
  min-width: 0;
  padding-left: 0;
  flex: 0 1 270px;
}
body.npw-site .npw-official-logo {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
}
body.npw-site .np-footer-brand .npw-brand-home {
  display: block;
  width: min(100%,320px);
}
/* 服や帽子の白を背景色に染めず、画像自身の透明度を使用する。 */
body.npw-site .np-nurse-character {
  background-image: url('assets/images/nurse-character-transparent-20261014.png');
  mix-blend-mode: normal;
}
@media (max-width:767px) {
  body.npw-site .np-header .np-logo {
    width: min(242px,calc(100vw - 108px));
    flex: 0 1 auto;
  }
}
/* 見出しの揃え方と、本文・フォームのブロック位置を分けて中央軸へ揃える。 */
body.npw-site main .np-container {
  width: min(1160px,calc(100% - 64px));
  margin-inline: auto;
}
body.npw-site main :is(h1,h2,h3,h4,h5,h6,.np-eyebrow,.np-brand-kicker) {
  text-align: center;
  text-wrap: balance;
}
body.npw-site main :is(.np-section-heading,.np-sub-heading,.np-brand-vision-heading,.np-brand-recruit-heading) {
  width: 100%;
  max-width: 860px;
  margin-inline: auto;
  text-align: center;
}
body.npw-site main :is(.np-sub-heading-lead,.np-brand-service-lead,.np-brand-connections>p,.np-nurse-welcome-copy>p) {
  max-width: 720px;
  margin-inline: auto;
  text-align: center;
  text-wrap: pretty;
}
body.npw-site main :is(.np-sub-copy,.np-company-table,.np-contact-form,.npw-entry-content,.npw-post-list) {
  width: 100%;
  max-width: 900px;
  min-width: 0;
  margin-inline: auto;
  text-align: left;
}
body.npw-site main :is(.np-recruit-feedback-principle,.np-hiring-description,li,dt,dd,th,td,label,input,select,textarea) {
  text-align: left;
}
body.npw-site main :is(.np-recruit-actions,.np-sub-cta-actions,.np-visit-actions,.np-visit-feature-actions,.np-nurse-welcome-copy>div) {
  justify-content: center;
  justify-items: center;
  margin-inline: auto;
}
body.npw-site main :is(.np-sub-heading-row,.np-brand-service-heading) {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}
body.npw-site main .np-sub-heading-row .np-text-link { margin: 0 auto 48px; }
body.npw-site main .np-brand-service-heading>p { max-width: 720px; margin: 24px auto 0; }

/* タイトルを画面の中心に置き、画像をその下で中央に収める。 */
body.npw-site main .np-sub-hero-layout {
  display: grid;
  grid-template-columns: minmax(0,1fr);
  justify-content: center;
  justify-items: center;
  gap: 40px;
}
body.npw-site main .np-sub-hero-copy {
  max-width: 860px;
  margin-inline: auto;
  text-align: center;
}
body.npw-site main .np-sub-hero-copy>p:not(.np-eyebrow) {
  max-width: 720px;
  margin-inline: auto;
  text-align: center;
}
body.npw-site main .np-sub-hero-image { width: min(100%,900px); margin-inline: auto; }
body.npw-site main :is(.np-sub-intro,.np-recruit-intro,.np-vision-story,.np-company-layout,.np-contact-layout) {
  display: grid;
  grid-template-columns: minmax(0,1fr);
  justify-items: center;
  gap: 36px;
}
body.npw-site main :is(.np-company-layout,.np-contact-layout) { max-width: 960px; }
body.npw-site main .np-contact-guide { width: 100%; max-width: 800px; }
body.npw-site main :is(.np-sub-cta-panel,.np-nurse-welcome) {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 28px;
}
body.npw-site main .np-sub-cta-panel>div:first-child { width: 100%; max-width: 820px; text-align: center; }
body.npw-site main .np-sub-cta-panel>div:first-child>p:last-child { max-width: 720px; margin-inline: auto; }
body.npw-site main .np-nurse-welcome-copy { width: 100%; text-align: center; }

/* FVは元の重なりのある構成に戻し、全体見出しの中央揃えから除外する。 */
body.npw-site .np-brand-top .np-brand-hero h1 { text-align: left; text-wrap: wrap; }
body.npw-site .np-brand-top .np-brand-vision-copy { max-width: 720px; margin: 32px auto 0; text-align: center; }
body.npw-site .np-brand-top :is(.np-brand-about-layout,.np-brand-people-layout) {
  grid-template-columns: minmax(0,1fr);
  align-items: center;
  justify-items: center;
  gap: 36px;
}
body.npw-site .np-brand-top .np-brand-about-layout>div:first-child { max-width: 780px; text-align: center; }
body.npw-site .np-brand-top .np-brand-about-links { width: 100%; max-width: 780px; margin-inline: auto; }
body.npw-site .np-brand-top .np-brand-people-title { width: 100%; text-align: center; }
body.npw-site .np-brand-top .np-brand-people-copy { width: 100%; max-width: 720px; margin-inline: auto; text-align: center; }
body.npw-site .np-brand-top .np-brand-mascot { position: static; margin: 20px auto 0; }
body.npw-site .np-brand-top .np-brand-service-layout,
body.npw-site .np-brand-top .np-brand-service-story:nth-child(2n) .np-brand-service-layout {
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: clamp(32px,5vw,64px);
  align-items: center;
}
body.npw-site .np-brand-top .np-brand-service-copy { min-width: 0; text-align: center; }
body.npw-site .np-brand-top .np-brand-service-copy .np-brand-body { text-align: left; }
body.npw-site .np-brand-top .np-brand-service-index { justify-content: center; }
body.npw-site .np-brand-top .np-brand-recruit-heading>.np-brand-body { max-width: 720px; margin-inline: auto; text-align: center; }
body.npw-site .np-brand-top .np-brand-door { padding-inline: clamp(24px,4vw,64px); text-align: center; }
body.npw-site .np-brand-top .np-brand-door-action { justify-content: center; }

body.npw-site main .np-recruit-feedback-philosophy-header { justify-content: center; text-align: center; }
body.npw-site main .np-recruit-feedback-motto p { text-align: center; }
body.npw-site main .np-recruit-feedback-philosophy-header h2 { max-width: 760px; }
body.npw-site main :is(.np-recruit-statement,.np-people-message) { max-width: 900px; margin-inline: auto; text-align: center; }
body.npw-site main :is(.np-message-layout,.np-team-story,.np-visit-feature,.np-work-heading) {
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: clamp(32px,5vw,64px);
}

@media(max-width:1023px) {
  body.npw-site main :is(.np-message-layout,.np-team-story,.np-visit-feature,.np-work-heading) { grid-template-columns: minmax(0,1fr); }
}
@media(max-width:767px) {
  body.npw-site main .np-container { width: calc(100% - 40px); }
  body.npw-site main :is(.np-sub-hero-layout,.np-sub-intro,.np-recruit-intro,.np-vision-story) { gap: 28px; }
  body.npw-site .np-brand-top .np-brand-service-layout,
  body.npw-site .np-brand-top .np-brand-service-story:nth-child(2n) .np-brand-service-layout { grid-template-columns: minmax(0,1fr); gap: 28px; }
  body.npw-site main .np-recruit-feedback-philosophy-header { align-items: center; }
  body.npw-site main .np-recruit-feedback-soleil { align-self: center; }
  body.npw-site main .np-sub-heading-row .np-text-link { margin-bottom: 32px; }
}
body.npw-site .np-brand-top .np-brand-wrap { width: min(1160px,calc(100% - 64px)); margin-inline: auto; }
body.npw-site .np-brand-top .np-brand-recruit-art { width: min(100%,1000px); margin: 40px auto 0; }
body.npw-site .np-brand-top .np-brand-recruit-action { justify-content: center; }
body.npw-site .np-brand-top .np-brand-news-heading { flex-direction: column; align-items: center; gap: 24px; text-align: center; }
body.npw-site .np-brand-top .np-brand-connections { text-align: center; }
body.npw-site main .np-pending-layout { grid-template-columns: minmax(0,1fr); justify-items: center; }
body.npw-site main .np-pending-copy { width: 100%; max-width: 820px; margin-inline: auto; }
body.npw-site main .np-movie-plan-layout { grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(32px,5vw,64px); }
body.npw-site main :is(.np-philosophy-list,.np-contact-options,.np-hiring-selector,.np-job-points,.np-faq-list) { text-align: left; min-width: 0; }
body.npw-site main .np-visit-feature-copy>div { justify-content: center; }
body.npw-site main :is(.np-sub-copy,.np-message-copy,.np-visit-feature-copy)>.np-button { display: flex; width: fit-content; margin-inline: auto; }
body.npw-site main .np-contact-form :is(button[type=submit],input[type=submit]) { display: flex; justify-content: center; text-align: center; margin-inline: auto; }

/* 3枚のカードを4列の左端へ置かず、少数・最終行もまとまりごと中央へ置く。 */
body.npw-site main :is(.np-value-grid,.np-related-grid,.np-contact-type-grid) {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: stretch;
  gap: 24px;
}
body.npw-site main :is(.np-value-grid,.np-related-grid,.np-contact-type-grid)>* { flex: 1 1 280px; max-width: 370px; min-width: 0; }
body.npw-site main .np-hiring-grid { max-width: 1120px; margin-inline: auto; gap: 28px; }
@media(min-width:768px) {
  body.npw-site main .np-hiring-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  /* 行共有のsubgridを保ちつつ、最後の1枚だけ列全体の中心へ揃える。 */
  body.npw-site main .np-hiring-grid>.np-hiring-card:last-child:nth-child(odd) { grid-column: 1 / -1; width: calc((100% - 28px)/2); justify-self: center; }
}
@media(max-width:1023px) {
  body.npw-site main .np-movie-plan-layout { grid-template-columns: minmax(0,1fr); }
}
@media(max-width:767px) {
  body.npw-site .np-brand-top .np-brand-wrap { width: calc(100% - 40px); }
  body.npw-site main :is(.np-value-grid,.np-related-grid,.np-contact-type-grid) { gap: 20px; }
  body.npw-site main .np-hiring-grid { grid-template-columns: minmax(0,1fr); }
}

/* 指定の2行を保ち、引用部分が途中で折り返されない大きさにする。 */
body.npw-site .np-brand-top #vision-title { font-size: clamp(2rem,5vw,4rem); line-height: 1.55; }
body.npw-site .np-brand-top .npw-vision-line { display: block; white-space: nowrap; }
body.npw-site .np-brand-top .npw-vision-emphasis { color: var(--np-pink-dark); }

/* 人物のいる下半分を避け、空の余白へ読み上げ可能な文字を重ねる。 */
body.npw-site .np-brand-top .np-brand-vision-art { position: relative; }
body.npw-site .np-brand-top .npw-landscape-caption {
  position: absolute;
  inset: 4% 5% auto;
  z-index: 2;
  margin: 0;
  color: var(--np-text,#393731);
  font-size: clamp(1.25rem,3.8vw,3.5rem);
  font-weight: 800;
  line-height: 1.4;
  letter-spacing: .035em;
  text-align: center;
  text-shadow: 0 2px 12px #fffefa, 0 0 3px #fffefa;
  pointer-events: none;
}
body.npw-site .np-brand-top .npw-landscape-caption>span { display: block; white-space: nowrap; }

/* 背景英字と本文の重なりを解消し、見出し・本文・行動ボタンの階層を揃える。 */
body.npw-site .np-brand-top .np-brand-about { padding: clamp(64px,7vw,104px) 0; }
body.npw-site .np-brand-top .np-brand-watermark {
  position: static;
  z-index: auto;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px 18px;
  margin: 0 20px 22px;
  font-size: clamp(1rem,2vw,1.75rem);
  letter-spacing: .12em;
  line-height: 1.5;
}
body.npw-site .np-brand-top .np-brand-watermark span:last-child { text-align: center; }
body.npw-site .np-brand-top .np-brand-about-layout { gap: 38px; }
body.npw-site .np-brand-top .np-brand-about-layout h2 { margin-top: 18px; font-size: clamp(1.65rem,3.1vw,2.9rem); line-height: 1.55; }
body.npw-site .np-brand-top .np-brand-about-layout>.np-brand-reveal:first-child>.np-brand-body {
  max-width: 680px;
  margin: 24px auto 0;
  font-size: clamp(.9375rem,1.4vw,1.0625rem);
  line-height: 2;
  text-wrap: pretty;
}
body.npw-site .np-brand-top .npw-about-button { min-height: 56px; margin-top: 26px; padding: 14px 28px; gap: 24px; font-size: 1rem; }
body.npw-site .np-brand-top .npw-about-button .np-brand-arrow { flex: 0 0 24px; width: 24px; height: 24px; border: 0; }
body.npw-site .np-brand-top .np-brand-about-links {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 20px;
  width: 100%;
  max-width: 1160px;
  margin: 0 auto;
  padding: 0;
}
body.npw-site .np-brand-top .np-brand-about-links>a {
  grid-template-columns: 24px minmax(0,1fr) 20px;
  align-items: start;
  gap: 12px;
  min-height: 154px;
  padding: 24px 20px;
  border: 1px solid #d5cbb9;
  border-radius: 18px;
  background: #fffefa;
  text-align: left;
  transition: border-color .2s, background .2s;
}
body.npw-site .np-brand-top .np-brand-about-links>a:hover { border-color: var(--np-pink-dark); background: #fff9f5; }
body.npw-site .np-brand-top .np-brand-about-links strong { font-size: 1.125rem; line-height: 1.6; }
body.npw-site .np-brand-top .np-brand-about-links small { font-size: .875rem; line-height: 1.8; }
body.npw-site .np-brand-top .np-brand-about-links .np-brand-index { color: var(--np-pink-dark); padding-top: 3px; }
body.npw-site .np-brand-top .npw-about-message {
  display: flex;
  align-items: center;
  justify-content: space-between;
  justify-self: center;
  gap: 24px;
  width: min(100%,460px);
  min-height: 64px;
  padding: 18px 24px;
  border: 1px solid #d5cbb9;
  border-radius: 18px;
  font-size: 1.0625rem;
  font-weight: 700;
}
body.npw-site .np-brand-top .npw-about-message:hover { border-color: var(--np-pink-dark); color: var(--np-pink-dark); }
body.npw-site .np-brand-top .npw-about-message svg { flex: 0 0 22px; width: 22px; height: 22px; }
body.npw-site .np-brand-top :is(.npw-about-button,.np-brand-about-links>a,.npw-about-message):focus-visible { outline: 3px solid var(--np-pink-dark); outline-offset: 4px; }

@media(min-width:768px) and (max-width:1023px) {
  /* 3列でも日本語のカード名を一行に収められるよう、番号を上段へ移す。 */
  body.npw-site .np-brand-top .np-brand-about-links>a { grid-template-columns: minmax(0,1fr) 18px; padding-inline: 16px; }
  body.npw-site .np-brand-top .np-brand-about-links .np-brand-index { grid-column: 1 / -1; }
  body.npw-site .np-brand-top .np-brand-about-links strong { font-size: 1rem; }
}
@media(max-width:767px) {
  body.npw-site .np-brand-top #vision-title { font-size: clamp(1.25rem,7.4vw,2.75rem); }
  body.npw-site .np-brand-top .np-brand-about-layout { gap: 28px; }
  body.npw-site .np-brand-top .np-brand-about-links { grid-template-columns: minmax(0,1fr); gap: 16px; }
  body.npw-site .np-brand-top .np-brand-about-links>a { min-height: 116px; padding: 22px 20px; }
  body.npw-site .np-brand-top .np-brand-about-links strong { font-size: 1.0625rem; }
}

/* トップの短いサービス紹介は同じ中央軸で揃え、番号だけが強く見えない階層にする。 */
body.npw-site .np-brand-top .np-brand-service-copy { width: 100%; max-width: 460px; margin-inline: auto; }
body.npw-site .np-brand-top .np-brand-service-index {
  justify-content: center;
  align-items: baseline;
  gap: 14px;
  width: 100%;
  margin: 0 auto 16px;
}
body.npw-site .np-brand-top .np-brand-service-index span:first-child {
  font-size: 1.625rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: .02em;
}
body.npw-site .np-brand-top .np-brand-service-index span:last-child {
  font-size: .8125rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .1em;
  white-space: nowrap;
}
body.npw-site .np-brand-top .np-brand-service-copy h3 {
  margin: 0;
  font-size: clamp(1.75rem,2.5vw,2.125rem);
  line-height: 1.45;
  text-align: center;
}
body.npw-site .np-brand-top .np-brand-service-copy :is(.np-brand-service-lead,.np-brand-body) {
  width: 100%;
  max-width: 460px;
  margin-inline: auto;
  font-size: clamp(.9375rem,1.2vw,1rem);
  text-align: center;
  text-wrap: balance;
  word-break: normal;
  overflow-wrap: normal;
}
body.npw-site .np-brand-top .np-brand-service-copy .np-brand-service-lead { margin-top: 20px; font-weight: 700; line-height: 1.85; }
body.npw-site .np-brand-top .np-brand-service-copy .np-brand-body { margin-top: 14px; line-height: 1.95; }
body.npw-site .np-brand-top .np-brand-service-copy>.np-brand-text-link { margin-top: 24px; min-height: 44px; gap: 14px; font-size: .9375rem; }
@media(max-width:767px) {
  body.npw-site .np-brand-top .np-brand-service-index { margin-bottom: 14px; }
  body.npw-site .np-brand-top .np-brand-service-index span:first-child { font-size: 1.4375rem; }
  body.npw-site .np-brand-top .np-brand-service-copy h3 { font-size: clamp(1.45rem,6.5vw,1.75rem); }
  body.npw-site .np-brand-top .np-brand-service-copy .np-brand-service-lead { margin-top: 16px; }
}
body.npw-site .np-brand-top .npw-service-copy-line { display: block; white-space: nowrap; }
body.npw-site .np-brand-top .npw-service-copy-phrase { display: inline-block; white-space: nowrap; }

/* 外側の左右余白を保ち、読む順番に沿って見出し・本文・操作の左端を揃える。 */
body.npw-site main#main :is(h1,h2,h3,h4,h5,h6,.np-eyebrow,.np-brand-kicker) { text-align: left; text-wrap: pretty; }
body.npw-site main :is(.np-section-heading,.np-sub-heading,.np-brand-recruit-heading,.np-sub-hero-copy) {
  width: 100%; max-width: 900px; margin-inline: 0; text-align: left;
}
body.npw-site main :is(.np-sub-copy,.np-company-table,.np-contact-form,.npw-entry-content,.npw-post-list) { margin-inline: 0; }
body.npw-site main :is(.np-sub-heading-lead,.np-brand-service-lead,.np-sub-hero-copy>p:not(.np-eyebrow)) {
  max-width: 900px; margin-inline: 0; text-align: left;
}
body.npw-site main :is(.np-sub-hero-layout,.np-sub-intro,.np-recruit-intro,.np-vision-story,.np-company-layout,.np-contact-layout) {
  justify-items: start; align-items: start; gap: 32px;
}
/* 一列になった本文やフォームに、以前の固定見出しが重ならないよう解除する。 */
body.npw-site main :is(.np-vision-story-title,.np-recruit-statement,.np-contact-guide) { position: static; top: auto; width: 100%; max-width: 900px; }
body.npw-site main .np-sub-hero-image { margin-inline: 0; }
body.npw-site main :is(.np-sub-heading-row,.np-brand-service-heading) { align-items: flex-start; text-align: left; }
body.npw-site main .np-sub-heading-row .np-text-link { margin-inline: 0; }
body.npw-site main .np-brand-service-heading>p { margin-inline: 0; text-align: left; }
body.npw-site main :is(.np-sub-heading h2,.np-vision-story-title h2) { font-size: clamp(1.625rem,3vw,2.5rem); line-height: 1.55; }
body.npw-site main :is(.np-sub-heading,.np-sub-heading-row) { margin-bottom: 40px; }
body.npw-site main .np-sub-intro .np-sub-heading { margin-bottom: 0; }
body.npw-site main :is(.np-recruit-actions,.np-visit-actions,.np-visit-feature-actions) { justify-content: flex-start; justify-items: start; margin-inline: 0; }

body.npw-site .np-brand-top .np-brand-service-copy { text-align: left; }
body.npw-site .np-brand-top .np-brand-service-index { justify-content: flex-start; }
body.npw-site .np-brand-top .np-brand-service-copy :is(h3,.np-brand-service-lead,.np-brand-body,.np-brand-note) { text-align: left; margin-inline: 0; }
body.npw-site .np-brand-top .np-brand-service-copy>.np-brand-text-link {
  display: inline-flex; justify-content: space-between; align-items: center;
  width: min(100%,240px); min-height: 56px; margin: 24px 0 0; padding: 14px 24px;
  border: 1px solid var(--np-pink-dark); border-radius: 999px;
  background: #b84754; color: #fff; font-size: 1rem; font-weight: 700;
}
body.npw-site .np-brand-top .np-brand-service-copy>.np-brand-text-link .np-brand-arrow { flex: 0 0 24px; width: 24px; height: 24px; margin: 0; border: 0; background: transparent; }
body.npw-site .np-brand-top .np-brand-service-copy>.np-brand-text-link:hover { background: #ac414d; border-color: #ac414d; }
body.npw-site .np-brand-top .np-brand-service-copy>.np-brand-text-link:focus-visible { outline: 3px solid var(--np-pink-dark); outline-offset: 4px; }
body.npw-site .np-brand-top :is(.np-brand-about-layout,.np-brand-people-layout) { justify-items: start; }
body.npw-site .np-brand-top :is(.np-brand-about-layout>div:first-child,.np-brand-about-copy,.np-brand-people-title,.np-brand-people-copy,.np-brand-recruit-heading>.np-brand-body) { width: 100%; margin-inline: 0; text-align: left; }
body.npw-site .np-brand-top .npw-about-button { margin-left: 0; }
body.npw-site .np-brand-top .np-brand-mascot { margin-left: 0; }

body.npw-site main :is(.np-value-card,.np-step-card,.np-perspective-card,.np-related-card,.np-role-card,.np-service-link-card) { text-align: left; }
body.npw-site main :is(.np-value-card,.np-step-card,.np-perspective-card) { min-height: 0; padding: 28px; }
body.npw-site main :is(.np-value-card,.np-step-card,.np-perspective-card) :is(h3,strong,p) { text-align: left; }
body.npw-site main .np-value-icon { margin: 22px 0 0; }
body.npw-site main .np-value-card h3 { margin-top: 20px; font-size: 1.125rem; line-height: 1.7; }
@media(min-width:768px) {
  /* 1行と2行のカード名が並んでも、本文の開始位置を揃える。 */
  body.npw-site main .np-value-card h3 { min-height: 3.4em; }
}
body.npw-site main .np-value-card p { margin-top: 14px; }
body.npw-site main #service-details>.np-container>.np-sub-copy { max-width: 900px; margin-top: 48px; gap: 18px; }
body.npw-site main #service-details>.np-container>.np-sub-copy h3 { margin-top: 24px; font-size: 1.125rem; }
body.npw-site main #service-details>.np-container>.np-sub-copy h3:first-child { margin-top: 0; }
body.npw-site main .npw-service-detail-notes { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 32px; margin-top: 40px; }
body.npw-site main .npw-service-detail-notes>section { padding: 28px; border: 1px solid var(--np-line); border-radius: 18px; }
body.npw-site main .npw-service-detail-notes h3 { margin: 0 0 16px; font-size: 1.125rem; }
body.npw-site main .npw-service-detail-notes ul { margin: 0 0 18px; padding-left: 1.25em; line-height: 1.9; }
body.npw-site main .npw-service-detail-notes p { margin: 0; font-size: .9375rem; line-height: 1.95; }

body.npw-site main .np-sub-cta-panel { align-items: flex-start; gap: 28px; padding: clamp(28px,4.5vw,56px); }
body.npw-site main .np-sub-cta-panel>div:first-child { max-width: 900px; text-align: left; }
body.npw-site main .np-sub-cta-panel>div:first-child>p:last-child { max-width: 900px; margin-inline: 0; }
body.npw-site main .np-sub-cta-panel h2 { font-size: clamp(1.625rem,3.2vw,2.625rem); line-height: 1.55; }
body.npw-site main#main .np-sub-cta-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: 16px; margin: 0; }
body.npw-site main#main .np-sub-cta-actions :is(.np-button,.np-text-link) { display: inline-flex; align-items: center; justify-content: center; width: auto; min-height: 56px; min-width: 220px; margin: 0; padding: 14px 24px; }
body.npw-site .np-nurse-welcome { display: grid; grid-template-columns: 112px minmax(0,1fr); align-items: center; gap: 32px; padding: 32px 40px; }
body.npw-site .np-nurse-portrait { width: 112px; margin: 0; }
body.npw-site .np-nurse-welcome-copy { width: 100%; text-align: left; }
body.npw-site .np-nurse-welcome-copy>div { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: 16px; margin: 24px 0 0; }
body.npw-site .np-nurse-welcome-copy>div :is(.np-button,.np-text-link) { display: inline-flex; align-items: center; justify-content: center; min-height: 56px; margin: 0; padding: 14px 24px; }
body.npw-site .np-nurse-welcome-copy>div .np-text-link { border: 1px solid var(--np-pink-dark); border-radius: 999px; color: var(--np-pink-dark); }

body.npw-site main .np-recruit-feedback-philosophy-header { align-items: center; justify-content: space-between; gap: 32px; text-align: left; }
body.npw-site main .np-recruit-feedback-philosophy-header h2 { max-width: none; font-size: clamp(1.625rem,2.8vw,2.25rem); line-height: 1.55; }
body.npw-site main .np-recruit-feedback-soleil { width: clamp(100px,12vw,144px); height: auto; flex: 0 0 auto; align-self: center; }
body.npw-site main .np-recruit-feedback-soleil img { width: 100%; height: auto; object-fit: contain; }
body.npw-site main .np-recruit-feedback-motto { max-width: 900px; margin-inline: 0; }
body.npw-site main .np-recruit-feedback-motto p { text-align: left; font-size: clamp(1.125rem,2.2vw,1.625rem); line-height: 1.85; }
body.npw-site main .np-recruit-feedback-motto :is(h3,.np-eyebrow),
body.npw-site main .np-recruit-feedback-principles :is(h3,.np-eyebrow) { text-align: left; }
body.npw-site main .np-recruit-feedback-principle { padding: 0 0 0 20px; }
body.npw-site main .np-recruit-feedback-principle strong { display: block; font-size: 1.125rem; line-height: 1.85; }
body.npw-site main .np-recruit-feedback-principle p { margin: 12px 0 0; line-height: 1.95; }
body.npw-site main .npw-philosophy-phrase { display: inline-block; white-space: nowrap; }
body.npw-site main .npw-inline-word { display: inline-block; white-space: nowrap; }
body.npw-site main .np-reason-layout { display: grid; grid-template-columns: 48px minmax(0,1fr); align-items: start; gap: 24px; }
body.npw-site main .np-reason-mark { display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; }
body.npw-site main .np-reason-mark svg { width: 32px; height: 32px; }
body.npw-site main .np-reason-copy :is(h2,p) { text-align: left; }
body.npw-site main .np-reason-copy .np-eyebrow { margin-bottom: 20px; }
body.npw-site main .np-reason-copy h2 { font-size: clamp(1.25rem,2.4vw,1.875rem); line-height: 1.7; margin-bottom: 24px; }

/* 情報一覧と区別し、利用開始の4段階だけを矢印でつなぐ。 */
body.npw-site main #service-flow .np-pending-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 32px; margin-top: 0; }
body.npw-site main #service-flow .np-pending-item { display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 16px; min-width: 0; min-height: 220px; padding: 24px; border: 1px solid var(--np-line); border-radius: 16px; background: #fffefa; position: relative; }
body.npw-site main #service-flow .np-pending-item>span { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: var(--np-pink-dark); color: #fff; font-size: .875rem; }
body.npw-site main #service-flow .np-pending-item .np-sub-copy { margin: 0; max-width: none; gap: 12px; font-size: .9375rem; line-height: 1.9; }
body.npw-site main #service-flow .np-pending-item:not(:last-child)::after { content: "→"; position: absolute; right: -27px; top: 50%; transform: translateY(-50%); color: var(--np-pink-dark); font-size: 24px; font-weight: 700; }
body.npw-site main #service-flow .np-sub-heading-lead { margin-top: 24px; }

body.npw-site main .npw-group-info { margin: 0; }
body.npw-site main .npw-group-info>div { display: grid; grid-template-columns: 210px minmax(0,1fr); gap: 32px; padding: 28px 0; border-bottom: 1px solid var(--np-line); }
body.npw-site main .npw-group-info dt { display: flex; align-items: baseline; gap: 16px; font-weight: 700; line-height: 1.8; }
body.npw-site main .npw-group-info dt>span { color: var(--np-pink-dark); font-size: .8125rem; }
body.npw-site main .npw-group-info dd { margin: 0; line-height: 1.95; }
body.npw-site main .npw-group-contact { display: flex; align-items: center; flex-wrap: wrap; gap: 24px; margin-top: 32px; }
body.npw-site main .npw-group-contact p { margin: 0; line-height: 1.8; }
body.npw-site main .np-hiring-grid { width: 100%; margin-inline: 0; }
body.npw-site main.np-recruit-feedback :is(.np-life-note,.np-recruit-video-help) { text-align: left; }
body.npw-site .np-footer-brand .npw-brand-home { width: min(100%,280px); }
body.npw-site .np-footer-nav-group { min-width: 0; }
body.npw-site .np-footer-nav-group a { font-size: .8125rem; line-height: 1.8; word-break: keep-all; overflow-wrap: normal; }
body.npw-site .np-footer-nav-group h2 { text-align: left; }

@media(max-width:1023px) {
  body.npw-site .np-footer-nav { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media(max-width:1023px) {
  body.npw-site main #service-flow .np-pending-grid { grid-template-columns: minmax(0,1fr); gap: 32px; }
  body.npw-site main #service-flow .np-pending-item { min-height: 0; }
  body.npw-site main #service-flow .np-pending-item:not(:last-child)::after { content: "↓"; right: auto; left: 50%; top: auto; bottom: -30px; transform: translateX(-50%); }
}
@media(max-width:767px) {
  body.npw-site .np-brand-top .np-brand-service-story:nth-child(2n) :is(.np-brand-service-copy,.np-brand-service-art) { grid-area: auto; }
  body.npw-site main .npw-service-detail-notes { grid-template-columns: minmax(0,1fr); gap: 20px; }
  body.npw-site main#main .np-sub-cta-actions { width: 100%; flex-direction: column; align-items: stretch; }
  body.npw-site main#main .np-sub-cta-actions :is(.np-button,.np-text-link) { width: 100%; min-width: 0; }
  body.npw-site .np-nurse-welcome { grid-template-columns: minmax(0,1fr); gap: 16px; padding: 24px 20px; }
  body.npw-site .np-nurse-portrait { width: 76px; }
  body.npw-site .np-nurse-welcome-copy>div { flex-direction: column; align-items: stretch; }
  body.npw-site .np-nurse-welcome-copy>div :is(.np-button,.np-text-link) { width: 100%; padding-inline: 16px; }
  body.npw-site main .np-recruit-feedback-philosophy-header { gap: 20px; align-items: flex-start; }
  body.npw-site main .np-recruit-feedback-philosophy-header h2 { font-size: clamp(1.1875rem,5.6vw,1.5rem); }
  body.npw-site main .np-recruit-feedback-soleil { width: 100px; align-self: flex-start; }
  body.npw-site main .np-recruit-feedback-principle h4 { font-size: 1.0625rem; }
  body.npw-site main .np-reason-layout { grid-template-columns: minmax(0,1fr); gap: 16px; }
  body.npw-site main .npw-group-info>div { grid-template-columns: minmax(0,1fr); gap: 12px; padding-block: 24px; }
  body.npw-site main .npw-group-contact { flex-direction: column; align-items: flex-start; }
}
@media(max-width:359px) { body.npw-site .np-footer-nav { grid-template-columns: minmax(0,1fr); } }

/* トップの4つの導入だけを中央へ戻し、個別サービスの読む順序は左揃えを保つ。 */
body.npw-site main#main.np-brand-top .np-brand-vision-heading { width: 100%; max-width: 860px; margin-inline: auto; text-align: center; }
body.npw-site main#main.np-brand-top .np-brand-vision-heading :is(.np-brand-kicker,h2) { text-align: center; }
body.npw-site main#main.np-brand-top .np-brand-vision-copy { margin-inline: auto; text-align: center; }
body.npw-site main#main.np-brand-top .np-brand-about-layout { justify-items: center; }
body.npw-site main#main.np-brand-top .np-brand-about-layout>div:first-child { width: 100%; max-width: 780px; margin-inline: auto; text-align: center; }
body.npw-site main#main.np-brand-top .np-brand-about-layout>div:first-child :is(h2,.np-brand-kicker,.np-brand-section-label) { text-align: center; }
body.npw-site main#main.np-brand-top .np-brand-about-copy { width: 100%; max-width: 720px; margin-inline: auto; text-align: center; }
body.npw-site main#main.np-brand-top .npw-about-button { margin: 26px auto 0; }
body.npw-site main#main.np-brand-top .np-brand-service-heading { width: 100%; max-width: 860px; margin-inline: auto; align-items: center; text-align: center; }
body.npw-site main#main.np-brand-top .np-brand-service-heading :is(.np-brand-kicker,h2) { text-align: center; }
body.npw-site main#main.np-brand-top .np-brand-service-heading>p { max-width: 720px; margin: 24px auto 0; text-align: center; }
body.npw-site main#main.np-brand-top .np-brand-connections :is(h3,p) { text-align: center; }
body.npw-site main#main.np-brand-top .np-brand-connections>p { max-width: 720px; margin-inline: auto; }
body.npw-site main#main.np-brand-top .np-brand-connections ul { justify-content: center; }
body.npw-site main#main.np-brand-top .np-brand-connections :is(li,a) { text-align: center; }

/* 短い2行の案内に高さを合わせ、余白をカードの上下へ均等に配分する。 */
body.npw-site main#main.np-brand-top .np-brand-about-links>a { align-items: center; min-height: 120px; padding: 24px 22px; }
body.npw-site main#main.np-brand-top .np-brand-about-links .np-brand-index { padding-top: 0; }
body.npw-site main#main.np-brand-top .np-brand-about-links>a>span:nth-child(2) { display: grid; gap: 6px; }
body.npw-site main#main.np-brand-top .np-brand-about-links small { margin: 0; }

body.npw-site main#main.np-brand-top .npw-home-recruit-layout { display: grid; grid-template-columns: minmax(0,5fr) minmax(0,6fr); align-items: center; gap: clamp(24px,4vw,56px); }
body.npw-site main#main.np-brand-top .npw-home-recruit-layout .np-brand-recruit-heading { width: 100%; max-width: none; margin: 0; text-align: left; }
body.npw-site main#main.np-brand-top .npw-home-recruit-layout h2 { margin-top: 20px; font-size: clamp(1.875rem,3.5vw,3.25rem); line-height: 1.5; }
body.npw-site main#main.np-brand-top .npw-home-recruit-layout .np-brand-body { margin-top: 24px; max-width: none; line-height: 1.9; }
body.npw-site main#main.np-brand-top .npw-home-recruit-layout .np-brand-recruit-art { width: 100%; min-width: 0; margin: 0; }
body.npw-site main#main.np-brand-top .npw-home-recruit-layout img { display: block; width: 100%; height: auto; border-radius: 18px; }

body.npw-site main#main.np-brand-top .np-brand-news { padding-block: 64px; }
body.npw-site main#main.np-brand-top .np-brand-news-layout { grid-template-columns: 220px minmax(0,1fr); align-items: center; gap: 40px; }
body.npw-site main#main.np-brand-top .np-brand-news-layout>header { margin: 0; }
body.npw-site main#main.np-brand-top .np-brand-news-content { min-width: 0; border-top: 0; border-left: 1px solid var(--np-line); padding: 20px 0 20px 32px; }
body.npw-site main#main.np-brand-top .np-brand-news-content>p { margin: 0; line-height: 1.9; }

/* パネル全体のリンクの中で、実際に押せる導線を塗りのあるボタンとして示す。 */
body.npw-site main#main.np-brand-top .np-brand-door { display: flex; flex-direction: column; align-items: flex-start; padding: 48px clamp(28px,4vw,64px); text-align: left; }
body.npw-site main#main.np-brand-top .np-brand-door :is(.np-brand-kicker,h3,p) { text-align: left; }
body.npw-site main#main.np-brand-top .np-brand-door h3 { margin: 24px 0 0; font-size: clamp(1.625rem,2.7vw,2.375rem); line-height: 1.55; }
body.npw-site main#main.np-brand-top .np-brand-door p { margin: 20px 0 0; max-width: none; font-size: .9375rem; line-height: 1.9; }
body.npw-site main#main.np-brand-top .np-brand-door-action { display: inline-flex; justify-content: space-between; align-items: center; gap: 24px; width: min(100%,280px); min-height: 56px; margin: 28px 0 0; padding: 14px 24px; border: 0; border-radius: 999px; background: #b84754; color: #fff; font-size: 1rem; }
body.npw-site main#main.np-brand-top .np-brand-door-recruit .np-brand-door-action { background: #fffefa; color: #a63d49; }
body.npw-site main#main.np-brand-top .np-brand-door-action .np-brand-arrow { flex: 0 0 24px; width: 24px; height: 24px; margin: 0; border: 0; background: transparent; }
@media(min-width:768px) {
  /* 常時表示する70pxの固定バナーに、フッターの最終行を隠させない。 */
  body.npw-site .np-footer { padding-bottom: 112px; }
}
@media(min-width:768px) and (max-width:1023px) {
  body.npw-site main#main.np-brand-top .np-brand-about-links>a { grid-template-columns: minmax(0,1fr) 18px; grid-template-rows: auto auto; align-content: center; padding: 20px 16px; min-height: 148px; row-gap: 6px; }
  body.npw-site main#main.np-brand-top .np-brand-about-links .np-brand-index { align-self: end; }
  body.npw-site main#main.np-brand-top .np-brand-about-links small { min-height: 3.6em; }
  body.npw-site main#main.np-brand-top .np-brand-news-layout { grid-template-columns: 170px minmax(0,1fr); gap: 24px; }
}
@media(max-width:767px) {
  body.npw-site main#main.np-brand-top .np-brand-about-links>a { min-height: 108px; padding: 22px 20px; }
  body.npw-site main#main.np-brand-top .npw-home-recruit-layout { grid-template-columns: minmax(0,1fr); gap: 28px; }
  body.npw-site main#main.np-brand-top .npw-home-recruit-layout h2 { font-size: clamp(1.625rem,7.6vw,2.25rem); }
  body.npw-site main#main.np-brand-top .np-brand-news { padding-block: 44px; }
  body.npw-site main#main.np-brand-top .np-brand-news-layout { grid-template-columns: minmax(0,1fr); gap: 20px; }
  body.npw-site main#main.np-brand-top .np-brand-news-content { border-left: 0; border-top: 1px solid var(--np-line); padding: 20px 0 0; }
  body.npw-site main#main.np-brand-top .np-brand-door { padding: 36px 24px; }
  body.npw-site main#main.np-brand-top .np-brand-door-action { width: 100%; max-width: 320px; }
}

/* お知らせから末尾の相談・採用案内までは、文章と操作を同じ中央軸へ揃える。 */
body.npw-site main#main.np-brand-top .np-brand-news-layout { grid-template-columns: minmax(0,1fr); justify-items: center; gap: 24px; text-align: center; }
body.npw-site main#main.np-brand-top .np-brand-news-layout>header { width: 100%; max-width: 860px; margin-inline: auto; }
body.npw-site main#main.np-brand-top .np-brand-news-layout>header :is(.np-brand-kicker,h2) { text-align: center; }
body.npw-site main#main.np-brand-top .np-brand-news-content { width: min(100%,720px); padding: 24px 0 0; border-left: 0; border-top: 1px solid var(--np-line); }
body.npw-site main#main.np-brand-top .np-brand-news-content>p { text-align: center; }
body.npw-site main#main.np-brand-top .np-brand-final-heading { width: 100%; max-width: 860px; margin-inline: auto; text-align: center; }
body.npw-site main#main.np-brand-top .np-brand-final-heading :is(.np-brand-kicker,h2) { text-align: center; }
body.npw-site main#main.np-brand-top .np-brand-door { align-items: center; text-align: center; }
body.npw-site main#main.np-brand-top .np-brand-door :is(.np-brand-kicker,h3,p) { text-align: center; }
body.npw-site main#main.np-brand-top .np-brand-door h3 { width: 100%; max-width: 560px; }
body.npw-site main#main.np-brand-top .np-brand-door p { width: 100%; max-width: 520px; margin-inline: auto; }
body.npw-site main#main.np-brand-top .np-brand-door-action { justify-content: center; margin-inline: auto; }

/* サービス名の下で、既存のイラストと説明を一つの導入として読めるようにする。 */
body.npw-site main#main .npw-service-overview { padding: calc(82px + clamp(40px,5vw,64px)) 0 clamp(40px,5vw,64px); }
/* 旧FVの装飾より手前に、新しくまとめた説明とイラストを置く。 */
body.npw-site main#main .npw-service-overview::before,
body.npw-site main#main .npw-service-overview::after { z-index: 0; pointer-events: none; }
body.npw-site main#main :is(.npw-service-title,.npw-service-intro) { position: relative; z-index: 1; }
body.npw-site main#main .npw-service-title .np-sub-hero-copy { width: 100%; max-width: none; margin: 0; }
body.npw-site main#main .npw-service-title h1 { font-size: clamp(2.25rem,4.2vw,3.25rem); line-height: 1.4; }
body.npw-site main#main .npw-service-intro { display: grid; grid-template-columns: minmax(0,5fr) minmax(0,6fr); align-items: center; gap: clamp(24px,4vw,48px); margin-top: 40px; }
body.npw-site main#main .npw-service-intro .np-sub-hero-image { width: 100%; min-width: 0; margin: 0; aspect-ratio: auto; }
body.npw-site main#main .npw-service-intro .np-sub-hero-image img { width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; }
body.npw-site main#main .npw-service-description { min-width: 0; }
body.npw-site main#main .npw-service-description .np-sub-heading { width: 100%; max-width: none; margin: 0 0 24px; }
body.npw-site main#main .npw-service-description h2 { font-size: clamp(1.375rem,2.4vw,2rem); line-height: 1.65; }
body.npw-site main#main .npw-service-description .np-sub-copy { width: 100%; max-width: none; margin: 0; font-size: 1rem; line-height: 1.95; }

body.npw-site main#main .np-sub-cta-panel { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 32px; }
body.npw-site main#main .np-sub-cta-panel>div:first-child { min-width: 0; }
body.npw-site main#main .np-sub-cta-panel h2 { font-size: clamp(1.5rem,2.6vw,2rem); }
body.npw-site main#main .np-sub-cta-actions { width: auto; min-width: 220px; max-width: 480px; justify-content: flex-end; }
body.npw-site main#main .np-sub-cta-actions :is(.np-button,.np-text-link) { line-height: 1.5; }

body.npw-site .np-nurse-welcome { grid-template-columns: 96px minmax(0,1fr); gap: 24px; }
body.npw-site .np-nurse-portrait { width: 96px; }
body.npw-site .np-nurse-portrait .np-nurse-footer { display: block; width: 100%; height: auto; aspect-ratio: 454 / 595; background-size: contain; }
body.npw-site .np-nurse-welcome-copy { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 12px 32px; align-items: center; min-width: 0; }
body.npw-site .np-nurse-welcome-copy>p { grid-column: 1; grid-row: 1; margin: 0; font-size: clamp(1.125rem,2vw,1.5rem); line-height: 1.6; }
body.npw-site .np-nurse-welcome-copy>span { grid-column: 1; grid-row: 2; font-size: .9375rem; line-height: 1.8; }
body.npw-site .np-nurse-welcome-copy>div { grid-column: 2; grid-row: 1 / 3; flex-wrap: nowrap; justify-content: flex-end; gap: 12px; margin: 0; }
body.npw-site .np-nurse-welcome-copy>div :is(.np-button,.np-text-link) { min-width: 0; padding: 14px 20px; font-size: .9375rem; line-height: 1.5; }
@media(min-width:768px) and (max-width:1199px) {
  body.npw-site main#main .np-sub-cta-actions { flex-direction: column; align-items: stretch; max-width: 260px; }
  body.npw-site main#main .np-sub-cta-actions :is(.np-button,.np-text-link) { width: 100%; }
  body.npw-site .np-nurse-welcome { grid-template-columns: 80px minmax(0,1fr); gap: 24px; padding: 28px 24px; }
  body.npw-site .np-nurse-portrait { width: 80px; }
  body.npw-site .np-nurse-welcome-copy { column-gap: 24px; }
  body.npw-site .np-nurse-welcome-copy>div { flex-direction: column; align-items: stretch; width: 220px; }
  body.npw-site .np-nurse-welcome-copy>div :is(.np-button,.np-text-link) { width: 100%; padding-inline: 12px; }
}
@media(max-width:767px) {
  body.npw-site main#main .npw-service-overview { padding-top: 108px; }
  body.npw-site main#main .npw-service-intro { grid-template-columns: minmax(0,1fr); gap: 28px; margin-top: 28px; }
  body.npw-site main#main .npw-service-title h1 { font-size: clamp(1.875rem,8vw,2.5rem); }
  body.npw-site main#main .np-sub-cta-panel { grid-template-columns: minmax(0,1fr); gap: 24px; }
  body.npw-site main#main .np-sub-cta-actions { width: 100%; min-width: 0; max-width: none; }
  body.npw-site .np-nurse-welcome { grid-template-columns: minmax(0,1fr); gap: 16px; padding: 24px 20px; }
  body.npw-site .np-nurse-portrait { width: 76px; }
  body.npw-site .np-nurse-welcome-copy { grid-template-columns: minmax(0,1fr); gap: 12px; }
  body.npw-site .np-nurse-welcome-copy>:is(p,span,div) { grid-column: 1; grid-row: auto; }
  body.npw-site .np-nurse-welcome-copy>div { flex-direction: column; align-items: stretch; width: 100%; margin-top: 4px; }
}


/* サービスページで見出し・本文・次の手順の間隔を揃える。 */
body.npw-site main#main:is(.npw-service-nursing,.npw-service-layout) #service-details { padding-block: 72px 48px; }
body.npw-site main#main:is(.npw-service-nursing,.npw-service-layout) #service-flow { padding-block: 56px 64px; }
body.npw-site main#main:is(.npw-service-nursing,.npw-service-layout) #service-flow .np-sub-heading { margin-bottom: 28px; }
body.npw-site main#main:is(.npw-service-nursing,.npw-service-layout) .npw-nursing-notes { display: grid; gap: 12px; margin: 28px 0 0; font-size: 1rem; line-height: 1.9; }
body.npw-site main#main:is(.npw-service-nursing,.npw-service-layout) .npw-nursing-notes>div { display: block; }
body.npw-site main#main:is(.npw-service-nursing,.npw-service-layout) .npw-nursing-notes :is(dt,dd) { display: inline; margin: 0; padding: 0; }
body.npw-site main#main:is(.npw-service-nursing,.npw-service-layout) .npw-nursing-notes dt { font-weight: 700; }

body.npw-site main#main:is(.npw-service-nursing,.npw-service-layout) .np-sub-cta-panel { min-height: 0; grid-template-columns: minmax(0,1.45fr) minmax(280px,1fr); gap: 48px; padding: 36px 48px; }
body.npw-site main#main:is(.npw-service-nursing,.npw-service-layout) .np-sub-cta-panel .np-eyebrow { margin-bottom: 12px; }
body.npw-site main#main:is(.npw-service-nursing,.npw-service-layout) .np-sub-cta-panel h2 { max-width: none; font-size: clamp(1.625rem,2.8vw,2.25rem); line-height: 1.5; }
body.npw-site main#main:is(.npw-service-nursing,.npw-service-layout) .np-sub-cta-panel>div:first-child>p:last-child { max-width: 640px; margin-top: 16px; font-size: 1rem; line-height: 1.8; }
body.npw-site main#main:is(.npw-service-nursing,.npw-service-layout) .np-sub-cta-actions { width: 100%; min-width: 0; max-width: 320px; margin: 0; justify-self: center; }
body.npw-site main#main:is(.npw-service-nursing,.npw-service-layout) .np-sub-cta-actions .np-button { width: 100%; min-height: 64px; padding: 18px 24px; font-size: 1rem; }

/* 共通の採用バナーは、文章と同程度の高さにマスコットを収めて右の操作へつなぐ。 */
body.npw-site .np-nurse-welcome { max-width: 1160px; grid-template-columns: 72px minmax(0,1fr); gap: 24px; padding: 28px 36px; }
body.npw-site .np-nurse-portrait { width: 72px; }
body.npw-site .np-nurse-portrait>small { display: block; margin-top: 4px; font-size: .6875rem; line-height: 1.6; white-space: nowrap; }
body.npw-site .np-nurse-welcome-copy { gap: 10px 24px; }
body.npw-site .np-nurse-welcome-copy>p { font-size: clamp(1.25rem,2.1vw,1.625rem); line-height: 1.5; }
body.npw-site .np-nurse-welcome-copy>span { font-size: 1rem; line-height: 1.8; }
body.npw-site .np-nurse-welcome-copy>div :is(.np-button,.np-text-link) { min-height: 56px; padding: 14px 20px; }
@media(min-width:1200px) {
  body.npw-site .np-nurse-welcome-copy>div .np-button { min-width: 208px; min-height: 60px; font-size: 1rem; }
  body.npw-site .np-nurse-welcome-copy>div .np-text-link { min-width: 252px; min-height: 60px; font-size: 1rem; }
}
@media(min-width:768px) {
  body.npw-site main#main:is(.npw-service-nursing,.npw-service-layout) .npw-service-title .np-sub-hero-copy { display: grid; grid-template-columns: max-content minmax(0,1fr); align-items: baseline; gap: 12px 28px; }
  body.npw-site main#main:is(.npw-service-nursing,.npw-service-layout) .npw-service-title .np-eyebrow { grid-column: 1 / -1; margin: 0; }
  body.npw-site main#main:is(.npw-service-nursing,.npw-service-layout) .npw-service-title :is(h1,.np-sub-hero-copy>p:last-child) { margin: 0; }
  body.npw-site main#main:is(.npw-service-nursing,.npw-service-layout) :is(.npw-nursing-details-heading,.npw-service-details-heading) br { display: none; }
}
@media(min-width:768px) and (max-width:1199px) {
  body.npw-site main#main:is(.npw-service-nursing,.npw-service-layout) .np-sub-cta-panel { grid-template-columns: minmax(0,1fr) 260px; gap: 28px; padding: 32px; }
  body.npw-site main#main:is(.npw-service-nursing,.npw-service-layout) .np-sub-cta-actions .np-button { gap: 12px; padding-inline: 16px; font-size: .875rem; }
  body.npw-site .np-nurse-welcome { padding: 28px 24px; }
  body.npw-site .np-nurse-welcome-copy { column-gap: 24px; }
  body.npw-site .np-nurse-welcome-copy>div :is(.np-button,.np-text-link) { padding-inline: 12px; }
}
@media(max-width:767px) {
  body.npw-site main#main:is(.npw-service-nursing,.npw-service-layout) #service-details { padding-block: 44px 32px; }
  body.npw-site main#main:is(.npw-service-nursing,.npw-service-layout) #service-flow { padding-block: 36px 44px; }
  body.npw-site main#main:is(.npw-service-nursing,.npw-service-layout) .npw-nursing-notes { gap: 12px; margin-top: 24px; font-size: .9375rem; }
  body.npw-site main#main:is(.npw-service-nursing,.npw-service-layout) .np-sub-cta-panel { grid-template-columns: minmax(0,1fr); gap: 24px; padding: 28px 24px; }
  body.npw-site main#main:is(.npw-service-nursing,.npw-service-layout) .np-sub-cta-actions { max-width: none; }
  body.npw-site main#main:is(.npw-service-nursing,.npw-service-layout) .np-sub-cta-actions .np-button { min-height: 56px; padding-block: 16px; font-size: .9375rem; }
  body.npw-site .np-nurse-welcome { grid-template-columns: minmax(0,1fr); gap: 16px; padding: 24px; }
  body.npw-site .np-nurse-portrait { width: 64px; }
  body.npw-site .np-nurse-portrait>small { font-size: .625rem; }
  body.npw-site .np-nurse-welcome-copy { gap: 12px; }
}

/* 強みの要点は中央へ揃え、長い説明文の読み始めは左端へ揃えておく。 */
body.npw-site main#main:is(.npw-service-nursing,.npw-service-layout) #strengths .np-value-icon { margin: 22px auto 0; justify-self: center; }
body.npw-site main#main:is(.npw-service-nursing,.npw-service-layout) #strengths .np-value-card h3 { width: 100%; text-align: center; text-wrap: balance; }

/* 指定された強みの見出しを、狭い画面でも一行で読める大きさに収める。 */
body.npw-site main#main:is(.npw-service-nursing,.npw-service-care) #strengths .np-value-card:first-child h3 { white-space: nowrap; }
@media(max-width:1023px) {
  body.npw-site main#main:is(.npw-service-nursing,.npw-service-care) #strengths .np-value-card:first-child h3 { font-size: clamp(.875rem,4.2vw,1rem); }
}
@media(max-width:359px) {
  body.npw-site main#main:is(.npw-service-nursing,.npw-service-care) #strengths .np-value-card:first-child h3 { width: calc(100% + 16px); margin-inline: -8px; }
}

/* グループホームは右側に2つの操作があるため、幅と高さを揃えてまとめる。 */
body.npw-site main#main.npw-service-group .np-sub-cta-actions { display: flex; flex-direction: column; align-items: stretch; gap: 12px; }
body.npw-site main#main.npw-service-group .np-sub-cta-actions :is(.np-button,.np-text-link) { justify-content: center; width: 100%; min-height: 64px; padding: 18px 24px; font-size: 1rem; line-height: 1.5; }
body.npw-site main#main.npw-service-care .npw-service-detail-notes { margin-top: 28px; gap: 24px; }
body.npw-site main#main.npw-service-care .npw-service-detail-notes h3 { margin-bottom: 12px; }
@media(min-width:768px) and (max-width:1199px) {
  body.npw-site main#main.npw-service-group .np-sub-cta-actions :is(.np-button,.np-text-link) { padding-inline: 16px; font-size: .875rem; }
}
@media(max-width:767px) {
  body.npw-site main#main.npw-service-group .np-sub-cta-actions :is(.np-button,.np-text-link) { min-height: 56px; padding-block: 16px; font-size: .9375rem; }
  body.npw-site main#main.npw-service-care .npw-service-detail-notes { margin-top: 24px; gap: 20px; }
}

/* カード本文を文節ごとに均等化せず、横幅に沿った通常の日本語組版へ戻す。 */
body.npw-site main#main:is(.npw-service-nursing,.npw-service-layout) .np-value-card>p { word-break: normal; text-wrap: wrap; line-break: strict; overflow-wrap: normal; }


/* 共通の素材と原稿を保ち、Aboutと採用の導入を横に読める構成へ揃える。 */
body.npw-site main#main:is(.npw-about,.np-recruit-feedback)>.np-sub-hero { padding: calc(82px + clamp(40px,5vw,64px)) 0 clamp(40px,5vw,64px); }
body.npw-site main#main:is(.npw-about,.np-recruit-feedback) .np-sub-hero-layout { grid-template-columns: minmax(0,5fr) minmax(0,6fr); align-items: center; gap: clamp(28px,4vw,48px); }
body.npw-site main#main:is(.npw-about,.np-recruit-feedback) .np-sub-hero-copy { width: 100%; min-width: 0; max-width: none; margin: 0; }
body.npw-site main#main:is(.npw-about,.np-recruit-feedback) .np-sub-hero-copy h1 { font-size: clamp(1.75rem,3.5vw,2.75rem); line-height: 1.5; }
body.npw-site main#main:is(.npw-about,.np-recruit-feedback) .np-sub-hero-image { width: 100%; min-width: 0; margin: 0; aspect-ratio: auto; }
body.npw-site main#main:is(.npw-about,.np-recruit-feedback) .np-sub-hero-image img { width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; }
body.npw-site main#main.npw-about .np-vision-story,
body.npw-site main#main.np-recruit-feedback .np-recruit-intro { grid-template-columns: minmax(0,4fr) minmax(0,6fr); align-items: start; gap: clamp(28px,4vw,48px); }
body.npw-site main#main.npw-about .np-vision-story>:is(.np-vision-story-title,.np-sub-copy),
body.npw-site main#main.np-recruit-feedback .np-recruit-intro>:is(.np-recruit-statement,.np-sub-copy) { width: 100%; min-width: 0; max-width: none; margin: 0; text-align: left; }
body.npw-site main#main.npw-about .np-vision-story h2,
body.npw-site main#main.np-recruit-feedback .np-recruit-intro h2 { font-size: clamp(1.625rem,2.7vw,2.25rem); line-height: 1.6; }
body.npw-site main#main:is(.npw-about,.np-recruit-feedback) :is(.np-sub-hero-copy,.np-vision-story,.np-recruit-intro) p { word-break: normal; text-wrap: wrap; line-break: strict; }

/* ロゴを見出しではなく社是と同じ行へ置き、文章の重心に高さを合わせる。 */
body.npw-site main#main:is(.npw-about,.np-recruit-feedback) #philosophy>.np-container { display: grid; grid-template-columns: minmax(0,1fr) 240px; align-items: center; gap: 32px 56px; }
body.npw-site main#main:is(.npw-about,.np-recruit-feedback) .np-recruit-feedback-philosophy-header { display: block; grid-column: 1 / -1; width: 100%; margin: 0; }
body.npw-site main#main:is(.npw-about,.np-recruit-feedback) .np-recruit-feedback-motto { grid-column: 1; grid-row: 2; width: 100%; min-width: 0; max-width: none; margin: 0; padding: 0; border-bottom: 0; }
body.npw-site main#main:is(.npw-about,.np-recruit-feedback) .npw-philosophy-logo { grid-column: 2; grid-row: 2; align-self: center; justify-self: center; width: 240px; margin: 0; }
body.npw-site main#main:is(.npw-about,.np-recruit-feedback) .npw-philosophy-logo .np-recruit-feedback-soleil { width: 100%; height: auto; max-width: none; margin: 0; object-fit: contain; }
body.npw-site main#main:is(.npw-about,.np-recruit-feedback) .np-recruit-feedback-principles { grid-column: 1 / -1; margin: 0; padding-top: 32px; border-top: 1px solid var(--np-line); }

body.npw-site main#main.npw-about #reason .np-reason-layout { max-width: 820px; margin-inline: auto; }
body.npw-site main#main.npw-about #reason .np-reason-copy p { word-break: normal; text-wrap: wrap; line-break: strict; }
body.npw-site main#main.npw-about #message .np-about-message-panel { display: grid; grid-template-columns: minmax(0,5fr) minmax(0,6fr); align-items: center; gap: clamp(28px,4vw,48px); }
body.npw-site main#main.npw-about #message .np-about-message-panel>div:first-child { min-width: 0; }
body.npw-site main#main.npw-about #message h2 { font-size: clamp(1.625rem,2.7vw,2.25rem); line-height: 1.55; }
body.npw-site main#main.npw-about #message .ihonest-representative-movie { width: 100%; margin: 0; }
body.npw-site main#main.npw-about #message .np-about-message-panel>div:first-child>p { word-break: normal; text-wrap: wrap; line-break: strict; }
body.npw-site main#main.npw-about .npw-history-heading { width: 100%; max-width: none; margin-inline: auto; text-align: center; }
body.npw-site main#main.npw-about .npw-history-heading :is(.np-eyebrow,h2) { text-align: center; }
@media(min-width:768px) and (max-width:1023px) {
  body.npw-site main#main:is(.npw-about,.np-recruit-feedback) #philosophy>.np-container { grid-template-columns: minmax(0,1fr) 180px; column-gap: 28px; }
  body.npw-site main#main:is(.npw-about,.np-recruit-feedback) .npw-philosophy-logo { width: 180px; }
}
@media(max-width:767px) {
  body.npw-site main#main:is(.npw-about,.np-recruit-feedback)>.np-sub-hero { padding-top: 108px; }
  body.npw-site main#main:is(.npw-about,.np-recruit-feedback) .np-sub-hero-layout,
  body.npw-site main#main.npw-about .np-vision-story,
  body.npw-site main#main.np-recruit-feedback .np-recruit-intro,
  body.npw-site main#main.npw-about #message .np-about-message-panel { grid-template-columns: minmax(0,1fr); gap: 28px; }
  body.npw-site main#main:is(.npw-about,.np-recruit-feedback) .np-sub-hero-copy h1 { font-size: clamp(1.625rem,7vw,2rem); }
  body.npw-site main#main:is(.npw-about,.np-recruit-feedback) #philosophy>.np-container { grid-template-columns: minmax(0,1fr); gap: 28px; }
  body.npw-site main#main:is(.npw-about,.np-recruit-feedback) .np-recruit-feedback-motto { grid-column: 1; grid-row: 2; }
  body.npw-site main#main:is(.npw-about,.np-recruit-feedback) .npw-philosophy-logo { grid-column: 1; grid-row: 3; width: 144px; }
  body.npw-site main#main:is(.npw-about,.np-recruit-feedback) .np-recruit-feedback-principles { grid-column: 1; grid-row: 4; padding-top: 28px; }
}

/* 固定幅の円を、等分された右列の中央へ合わせる。 */
body.npw-site main#main.np-recruit-feedback #visit .np-visit-symbol { justify-self: center; margin-inline: auto; }

/* ロゴの中心を、見出し下端と社是ラベル上端の32pxの間へ合わせる。 */
body.npw-site main#main:is(.npw-about,.np-recruit-feedback) #philosophy>.np-container { --npw-philosophy-logo-size: 300px; grid-template-columns: minmax(0,1fr) var(--npw-philosophy-logo-size); }
body.npw-site main#main:is(.npw-about,.np-recruit-feedback) .np-recruit-feedback-philosophy-header { grid-column: 1; grid-row: 1; }
body.npw-site main#main:is(.npw-about,.np-recruit-feedback) .npw-philosophy-logo { align-self: start; width: var(--npw-philosophy-logo-size); margin-block-start: calc(var(--npw-philosophy-logo-size) * -.5 - 16px); }
@media(min-width:768px) and (max-width:1023px) {
  body.npw-site main#main:is(.npw-about,.np-recruit-feedback) #philosophy>.np-container { --npw-philosophy-logo-size: 225px; }
}
@media(max-width:767px) {
  body.npw-site main#main:is(.npw-about,.np-recruit-feedback) #philosophy>.np-container { --npw-philosophy-logo-size: 180px; grid-template-columns: minmax(0,1fr); }
  body.npw-site main#main:is(.npw-about,.np-recruit-feedback) .npw-philosophy-logo { grid-row: 3; align-self: center; margin-block-start: 0; }
}

/* 隣接する2セクションの上下余白が重なり、大きな空白になるのを抑える。 */
body.npw-site main#main.npw-about #philosophy { padding-bottom: 40px; }
body.npw-site main#main.npw-about #philosophy + #reason { padding-top: 40px; }
@media(max-width:767px) {
  body.npw-site main#main.npw-about #philosophy { padding-bottom: 24px; }
  body.npw-site main#main.npw-about #philosophy + #reason { padding-top: 24px; }
}

body.npw-site main#main.npw-about #reason .np-reason-layout { box-sizing: border-box; padding: 36px 40px; border: 1px solid #d9caba; border-radius: 16px; background: #fffdf7; }
body.npw-site main#main.npw-about #reason .np-reason-copy { min-width: 0; }
@media(max-width:767px) {
  body.npw-site main#main.npw-about #reason .np-reason-layout { padding: 24px; }
}

/* 空の部分に淡い紙面を敷き、キーワードと本文の太さに差を付ける。 */
body.npw-site main#main.np-brand-top .npw-landscape-caption { inset: 4% auto auto 50%; width: max-content; max-width: 90%; transform: translateX(-50%); padding: 14px 26px 16px; border: 1px solid rgba(255,255,255,.9); border-radius: 8px 28px 8px 28px; background: rgba(255,254,248,.9); box-shadow: 0 8px 30px rgba(70,56,44,.06); color: #3f4942; font-size: clamp(1.25rem,3.1vw,3rem); font-weight: 500; line-height: 1.65; letter-spacing: .055em; text-align: left; text-shadow: none; }
body.npw-site main#main.np-brand-top .npw-landscape-emphasis { position: relative; isolation: isolate; display: inline-block; color: #ad3f56; font-style: normal; font-weight: 800; }
body.npw-site main#main.np-brand-top .npw-landscape-emphasis::after { content: ""; position: absolute; z-index: -1; inset: auto -.035em .1em; height: .18em; border-radius: 50% 35% 45% 30%; background: #f6d1bc; transform: rotate(-2deg); }
@media(max-width:767px) {
  body.npw-site main#main.np-brand-top .npw-landscape-caption { inset-block-start: 3%; max-width: 94%; padding: 6px 14px 8px; border-radius: 6px 18px 6px 18px; font-size: clamp(.9375rem,4.3vw,1.25rem); line-height: 1.55; letter-spacing: .04em; }
}

body.npw-site main#main.npw-about #message .npw-message-with-copy { align-items: start; row-gap: 32px; }
body.npw-site main#main.npw-about #message .npw-message-body { min-width: 0; }
body.npw-site main#main.npw-about #message .npw-message-body>p { margin: 0; font-size: 1rem; line-height: 2; word-break: normal; text-wrap: wrap; line-break: strict; }
body.npw-site main#main.npw-about #message .npw-message-video { grid-column: 1 / -1; width: min(100%,820px); margin-inline: auto; }
body.npw-site main#main.npw-about #message .npw-message-video-note { margin: 0 0 16px; font-size: .75rem; line-height: 1.8; }
@media(max-width:767px) {
  body.npw-site main#main.npw-about #message .npw-message-with-copy { row-gap: 28px; }
  body.npw-site main#main.npw-about #message .npw-message-body>p { font-size: .9375rem; }
}

/* 会社情報の原稿と連絡先を、共有ページの配置に影響させずまとめる。 */
body.npw-site main#main.npw-company-page { color: #423d39; background: #fff; font-size: 16px; line-height: 1.9; text-align: left; }
body.npw-site main#main.npw-company-page * { box-sizing: border-box; }
body.npw-site main#main.npw-company-page :is(h1,h2,h3,h4,p,dl,dd,ul,ol,figure) { margin: 0; }
body.npw-site main#main.npw-company-page :is(h1,h2,h3,h4,p,dt,dd,li,a) { word-break: normal; white-space: normal; line-break: strict; text-wrap: wrap; text-align: left; }
body.npw-site main#main.npw-company-page .npw-company-wrap { width: calc(100% - 64px); max-width: 1160px; margin-inline: auto; }
body.npw-site main#main.npw-company-page .npw-company-hero { padding: 144px 0 48px; background: #fff9e9; }
body.npw-site main#main.npw-company-page .npw-company-eyebrow { margin-bottom: 16px; color: #aa3d51; font-family: var(--font-montserrat),sans-serif; font-size: 12px; font-weight: 700; line-height: 1.5; letter-spacing: .2em; }
body.npw-site main#main.npw-company-page .npw-company-title { font-size: clamp(36px,4vw,56px); font-weight: 800; line-height: 1.4; letter-spacing: .035em; }
body.npw-site main#main.npw-company-page .npw-company-catch { margin-top: 24px; font-size: clamp(24px,2.5vw,34px); font-weight: 700; line-height: 1.65; }
body.npw-site main#main.npw-company-page .npw-company-catch-line { display: block; }
body.npw-site main#main.npw-company-page .npw-company-lead { max-width: 800px; margin-top: 20px; font-size: 16px; line-height: 1.95; }
body.npw-site main#main.npw-company-page .npw-company-nav { display: flex; flex-wrap: wrap; gap: 10px 16px; margin-top: 28px; }
body.npw-site main#main.npw-company-page .npw-company-nav a { display: inline-flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 48px; padding: 10px 20px; border: 1px solid #ddcfc0; border-radius: 30px; color: #423d39; background: #fff; font-size: 16px; font-weight: 700; text-decoration: none; }
body.npw-site main#main.npw-company-page .npw-company-nav a>span { color: #aa3d51; }
body.npw-site main#main.npw-company-page .npw-company-section { padding: 64px 0; scroll-margin-top: 100px; scroll-margin-bottom: 140px; }
body.npw-site main#main.npw-company-page .npw-company-section-soft { background: #fffaf5; }
body.npw-site main#main.npw-company-page .npw-company-section-head { margin-bottom: 32px; }
body.npw-site main#main.npw-company-page .npw-company-section-head h2 { font-size: clamp(28px,3vw,36px); font-weight: 700; line-height: 1.5; }
body.npw-site main#main.npw-company-page .npw-company-section-head>p:not(.npw-company-eyebrow) { max-width: 960px; margin-top: 20px; font-size: 16px; }
body.npw-site main#main.npw-company-page .npw-company-profile { border-top: 1px solid #ddcfc0; }
body.npw-site main#main.npw-company-page .npw-company-profile-row { display: grid; grid-template-columns: 220px minmax(0,1fr); gap: 28px; padding: 20px 24px; border-bottom: 1px solid #ddcfc0; }
body.npw-site main#main.npw-company-page .npw-company-profile-row dt { font-size: 16px; font-weight: 700; }
body.npw-site main#main.npw-company-page .npw-company-profile-row dd { min-width: 0; font-size: 16px; }
body.npw-site main#main.npw-company-page .npw-company-services { padding-left: 1.25em; }
body.npw-site main#main.npw-company-page .npw-company-services li+li { margin-top: 4px; }
body.npw-site main#main.npw-company-page .npw-company-tel { display: inline-flex; align-items: center; min-height: 44px; color: #95394b; font-size: 16px; font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
body.npw-site main#main.npw-company-page .npw-company-timeline { list-style: none; padding: 0; }
body.npw-site main#main.npw-company-page .npw-company-timeline-item { position: relative; display: grid; grid-template-columns: 144px minmax(0,1fr); gap: 32px; padding: 18px 0 18px 28px; border-left: 2px solid #eac9bd; }
body.npw-site main#main.npw-company-page .npw-company-timeline-item::before { content: ''; position: absolute; top: 29px; left: -6px; width: 10px; height: 10px; border-radius: 50%; background: #b7475d; box-shadow: 0 0 0 5px #fffaf5; }
body.npw-site main#main.npw-company-page .npw-company-time { color: #95394b; font-size: 16px; font-weight: 700; }
body.npw-site main#main.npw-company-page .npw-company-timeline-item p { min-width: 0; font-size: 16px; }
body.npw-site main#main.npw-company-page .npw-company-reception { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 24px; margin: 0 0 28px; padding: 16px 24px; border-radius: 12px; background: #edf7f2; font-size: 16px; }
body.npw-site main#main.npw-company-page .npw-company-reception>p { margin: 0; }
body.npw-site main#main.npw-company-page .npw-company-reception>p:first-child { font-weight: 700; }
body.npw-site main#main.npw-company-page .npw-company-office-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
body.npw-site main#main.npw-company-page .npw-company-office { display: flex; flex-direction: column; min-width: 0; padding: 28px; border: 1px solid #ddcfc0; border-radius: 16px; background: #fff; }
body.npw-site main#main.npw-company-page .npw-company-office-wide { grid-column: 1 / -1; }
body.npw-site main#main.npw-company-page .npw-company-office-category { display: inline-block; margin-bottom: 12px; color: #95394b; font-size: 16px; font-weight: 700; }
body.npw-site main#main.npw-company-page .npw-company-office h3 { font-size: 24px; line-height: 1.6; }
body.npw-site main#main.npw-company-page .npw-company-office-description { margin-top: 16px; font-size: 16px; }
body.npw-site main#main.npw-company-page .npw-company-office-facts { margin-top: 20px; margin-bottom: 20px; padding-top: 16px; border-top: 1px solid #eadfd4; font-size: 16px; }
body.npw-site main#main.npw-company-page .npw-company-office-facts>div { margin-bottom: 12px; }
body.npw-site main#main.npw-company-page .npw-company-office-facts dt { color: #6c625a; font-size: 16px; font-weight: 700; }
body.npw-site main#main.npw-company-page .npw-company-office-facts dd { min-width: 0; }
body.npw-site main#main.npw-company-page .npw-company-buildings { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; margin: 8px 0 24px; }
body.npw-site main#main.npw-company-page .npw-company-building { min-width: 0; padding: 20px; border-radius: 12px; background: #fffaf5; }
body.npw-site main#main.npw-company-page .npw-company-building h4 { font-size: 20px; }
body.npw-site main#main.npw-company-page .npw-company-building .npw-company-office-facts { margin-top: 12px; padding-top: 12px; }
body.npw-site main#main.npw-company-page .npw-company-button { display: inline-flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 52px; max-width: 100%; padding: 12px 22px; border: 1px solid #ad3f54; border-radius: 30px; color: #fff; background: #ad3f54; font-size: 16px; font-weight: 700; line-height: 1.7; text-align: left; text-decoration: none; }
body.npw-site main#main.npw-company-page .npw-company-button svg { flex: 0 0 18px; width: 18px; height: 18px; }
body.npw-site main#main.npw-company-page .npw-company-button-secondary { color: #95394b; background: #fff; }
body.npw-site main#main.npw-company-page .npw-company-office>.npw-company-button { align-self: flex-start; margin-top: auto; }
body.npw-site main#main.npw-company-page .npw-company-access-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: start; gap: 40px; }
body.npw-site main#main.npw-company-page .npw-company-access-copy h3 { margin-bottom: 16px; font-size: 22px; line-height: 1.6; }
body.npw-site main#main.npw-company-page .npw-company-address { font-size: 16px; font-style: normal; }
body.npw-site main#main.npw-company-page .npw-company-address>span { display: block; }
body.npw-site main#main.npw-company-page .npw-company-access-copy h4 { margin: 24px 0 10px; font-size: 18px; }
body.npw-site main#main.npw-company-page .npw-company-transit { padding-left: 1.25em; font-size: 16px; }
body.npw-site main#main.npw-company-page .npw-company-transit li+li { margin-top: 10px; }
body.npw-site main#main.npw-company-page .npw-company-access-copy>.npw-company-button { margin-top: 24px; }
body.npw-site main#main.npw-company-page .npw-company-map { overflow: hidden; width: 100%; border: 1px solid #ddcfc0; border-radius: 16px; background: #f4eee3; }
body.npw-site main#main.npw-company-page .npw-company-map iframe { display: block; width: 100%; height: 420px; max-width: 100%; border: 0; }
body.npw-site main#main.npw-company-page .npw-company-contact { padding-bottom: 80px; }
body.npw-site main#main.npw-company-page .npw-company-contact-panel { display: grid; grid-template-columns: minmax(0,1fr) 280px; gap: 40px; align-items: center; padding: 40px; border: 1px solid #ddcfc0; border-radius: 16px; background: #fff9e9; }
body.npw-site main#main.npw-company-page .npw-company-contact-panel h2 { font-size: 28px; line-height: 1.6; }
body.npw-site main#main.npw-company-page .npw-company-contact-panel p:not(.npw-company-eyebrow) { margin-top: 16px; font-size: 16px; }
body.npw-site main#main.npw-company-page .npw-company-contact-actions { display: flex; flex-direction: column; align-items: stretch; gap: 12px; }
body.npw-site main#main.npw-company-page .npw-company-contact-phone { margin-top: 20px; }
body.npw-site main#main.npw-company-page a:focus-visible { outline: 3px solid #267c70; outline-offset: 4px; }
@media(hover:hover) {
  body.npw-site main#main.npw-company-page :is(.npw-company-nav a,.npw-company-button):hover { border-color: #267c70; color: #fff; background: #267c70; }
}
@media(min-width:768px) and (max-width:1023px) {
  body.npw-site main#main.npw-company-page .npw-company-section { padding-block: 52px; }
  body.npw-site main#main.npw-company-page .npw-company-office { padding: 24px; }
  body.npw-site main#main.npw-company-page .npw-company-office h3 { font-size: 22px; }
  body.npw-site main#main.npw-company-page .npw-company-access-grid { grid-template-columns: minmax(0,1fr); gap: 28px; }
  body.npw-site main#main.npw-company-page .npw-company-contact-panel { grid-template-columns: minmax(0,1fr); gap: 28px; padding: 32px; }
  body.npw-site main#main.npw-company-page .npw-company-contact-actions { flex-direction: row; flex-wrap: wrap; }
}
@media(max-width:767px) {
  body.npw-site main#main.npw-company-page .npw-company-wrap { width: calc(100% - 40px); }
  body.npw-site main#main.npw-company-page .npw-company-hero { padding: 112px 0 36px; }
  body.npw-site main#main.npw-company-page .npw-company-title { font-size: 36px; }
  body.npw-site main#main.npw-company-page .npw-company-catch { margin-top: 20px; font-size: clamp(20px,5.8vw,24px); }
  body.npw-site main#main.npw-company-page .npw-company-eyebrow { margin-bottom: 12px; }
  body.npw-site main#main.npw-company-page .npw-company-nav { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin-top: 24px; }
  body.npw-site main#main.npw-company-page .npw-company-nav a { gap: 8px; padding-inline: 14px; }
  body.npw-site main#main.npw-company-page .npw-company-section { padding-block: 40px; scroll-margin-top: 84px; }
  body.npw-site main#main.npw-company-page .npw-company-section-head { margin-bottom: 24px; }
  body.npw-site main#main.npw-company-page .npw-company-profile-row { grid-template-columns: minmax(0,1fr); gap: 6px; padding: 16px 4px; }
  body.npw-site main#main.npw-company-page .npw-company-timeline-item { grid-template-columns: minmax(0,1fr); gap: 4px; padding: 14px 0 14px 24px; }
  body.npw-site main#main.npw-company-page .npw-company-timeline-item::before { top: 25px; }
  body.npw-site main#main.npw-company-page .npw-company-reception { align-items: flex-start; flex-direction: column; gap: 0; padding: 16px 20px; }
  body.npw-site main#main.npw-company-page .npw-company-office-grid { grid-template-columns: minmax(0,1fr); gap: 20px; }
  body.npw-site main#main.npw-company-page .npw-company-office { padding: 22px 20px; }
  body.npw-site main#main.npw-company-page .npw-company-office h3 { font-size: 22px; }
  body.npw-site main#main.npw-company-page .npw-company-buildings { grid-template-columns: minmax(0,1fr); gap: 16px; }
  body.npw-site main#main.npw-company-page .npw-company-building { padding: 16px; }
  body.npw-site main#main.npw-company-page .npw-company-button { width: 100%; padding-inline: 18px; }
  body.npw-site main#main.npw-company-page .npw-company-access-grid { grid-template-columns: minmax(0,1fr); gap: 28px; }
  body.npw-site main#main.npw-company-page .npw-company-map iframe { height: 320px; }
  body.npw-site main#main.npw-company-page .npw-company-contact { padding-bottom: 64px; }
  body.npw-site main#main.npw-company-page .npw-company-contact-panel { grid-template-columns: minmax(0,1fr); gap: 24px; padding: 24px 20px; }
  body.npw-site main#main.npw-company-page .npw-company-contact-panel h2 { font-size: 24px; }
}

/* 現行HPの長いお知らせも、日付と本文を分けて省略せず読めるようにする。 */
body.npw-site main#main.np-brand-top .np-brand-news-content ul { margin: 0; padding: 0; list-style: none; }
body.npw-site main#main.np-brand-top .np-brand-news-content li a { display: grid; grid-template-columns: minmax(0,1fr) 22px; align-items: center; gap: 12px 20px; padding: 24px 0; text-align: left; }
body.npw-site main#main.np-brand-top .np-brand-news-content li a>span:first-child { display: flex; grid-column: 1; flex-wrap: wrap; gap: 8px 20px; align-items: center; }
body.npw-site main#main.np-brand-top .np-brand-news-content li a>span:last-child { display: block; grid-column: 2; grid-row: 1 / 3; text-align: center; }
body.npw-site main#main.np-brand-top .np-brand-news-content :is(time,small) { font-size: 14px; }
body.npw-site main#main.np-brand-top .np-brand-news-content strong { grid-column: 1; min-width: 0; font-size: 16px; font-weight: 600; line-height: 1.9; text-align: left; white-space: normal; word-break: normal; line-break: strict; text-wrap: wrap; }
body.npw-site main#main.np-brand-top .np-brand-news-content>.np-brand-text-link { display: inline-flex; justify-content: space-between; gap: 20px; min-height: 48px; margin-top: 24px; font-size: 16px; }
body.npw-site:is(.blog,.single-post) main#main.npw-content { padding: 144px 0 96px; }
body.npw-site:is(.blog,.single-post) main#main.npw-content>.np-container { width: min(900px,calc(100% - 64px)); }
body.npw-site:is(.blog,.single-post) main#main.npw-content :is(h1,h2,p,time) { text-align: left; white-space: normal; word-break: normal; line-break: strict; text-wrap: wrap; }
body.npw-site:is(.blog,.single-post) main#main.npw-content h1 { margin: 12px 0 28px; font-size: clamp(28px,3vw,40px); line-height: 1.65; }
body.npw-site:is(.blog,.single-post) main#main.npw-content .np-eyebrow { margin: 0; color: #a63d52; }
body.npw-site.blog main#main.npw-content .npw-post-list { width: 100%; max-width: none; margin: 0; border-top: 1px solid #ddcfc0; }
body.npw-site.blog main#main.npw-content .npw-post-list li { padding: 0; border-bottom: 1px solid #ddcfc0; }
body.npw-site.blog main#main.npw-content .npw-post-list li>a { display: block; padding: 24px 0; }
body.npw-site.blog main#main.npw-content .npw-post-list h2 { margin: 8px 0 0; font-size: 22px; line-height: 1.8; }
/* 短い告知の本文と見出しが同じため、一覧では日付と見出しに絞る。 */
body.npw-site.blog main#main.npw-content .npw-post-list li>a>p { display: none; }
body.npw-site:is(.blog,.single-post) main#main.npw-content time { display: block; color: #6c625a; font-size: 14px; }
body.npw-site.single-post main#main.npw-content .npw-entry-content { max-width: none; margin: 0; font-size: 16px; line-height: 2; }
body.npw-site.single-post main#main.npw-content .npw-entry-content a { color: #95394b; text-decoration: underline; text-underline-offset: 4px; overflow-wrap: anywhere; }
body.npw-site:is(.blog,.single-post) main#main.npw-content a:focus-visible,
body.npw-site main#main.np-brand-top .np-brand-news-content a:focus-visible { outline: 3px solid #267c70; outline-offset: 4px; }
body.npw-site.blog main#main.npw-content .nav-links { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 32px; }
body.npw-site.blog main#main.npw-content .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 8px 16px; border: 1px solid #d8c9bb; border-radius: 8px; }
body.npw-site.blog main#main.npw-content .page-numbers.current { color: #fff; background: #ad3f54; border-color: #ad3f54; }
@media(max-width:767px) {
  body.npw-site:is(.blog,.single-post) main#main.npw-content { padding: 112px 0 80px; }
  body.npw-site:is(.blog,.single-post) main#main.npw-content>.np-container { width: calc(100% - 40px); }
  body.npw-site:is(.blog,.single-post) main#main.npw-content h1 { font-size: 26px; }
  body.npw-site.blog main#main.npw-content .npw-post-list h2 { font-size: 19px; }
  body.npw-site.blog main#main.npw-content .npw-post-list li>a { padding-block: 20px; }
}

/* 勤務形態の図は、スマートフォンの縦並びでもラベルと矢印の中心を揃える。 */
body.npw-site main#main.np-recruit-feedback .np-life-path>p,
body.npw-site main#main.np-recruit-feedback .np-life-path li { text-align: center; }
body.npw-site main#main.np-recruit-feedback .np-life-path ol { justify-content: center; }

/* 色の切り替わりと採用案内の枠が接しないよう、PEOPLEの隣接箇所だけを空ける。 */
body.npw-site main#main .np-people-message-section + .np-sub-cta { padding-top: clamp(32px,4vw,56px); }

body.npw-site main#main.np-recruit-feedback .npw-recruit-lead-line { display: inline-block; white-space: nowrap; }
@media(max-width:767px) {
  /* 語を途中で切らず、スマートフォンの幅を使って紹介文の行数を整える。 */
  body.npw-site main#main.np-brand-top .np-brand-service-heading>p { width: calc(100% - 40px); }
  body.npw-site main#main.np-recruit-feedback .npw-recruit-lead-line { display: block; }
  body.npw-site main#main.np-recruit-feedback .npw-recruit-lead-break { display: none; }
}

body.npw-site main .npw-care-contact-mobile-break,
body.npw-site main .npw-mobile-copy-break { display: none; }
@media(max-width:767px) {
  body.npw-site main#main.npw-service-other .np-sub-cta-panel>div:first-child { container-type: inline-size; }
  /* 見出しの実際の横幅に応じて文字を調整し、一般的なスマートフォン幅で2行に収める。 */
  body.npw-site main#main.npw-service-other .np-sub-cta-panel h2 { font-size: 18px; font-size: clamp(18px,6.75cqi,24px); }
  body.npw-site main#main.npw-service-other .np-sub-cta-panel .npw-service-phrase { white-space: nowrap; }
  body.npw-site main .npw-care-contact-mobile-break,
  body.npw-site main .npw-mobile-copy-break,
  body.npw-site main#main.np-brand-top #about .np-brand-body>.np-brand-desktop-break { display: initial; }
  body.npw-site main .npw-care-contact-desktop-break { display: none; }
}

/* TOPのスマートフォン見出しを、意味のまとまりごとに二行で読めるようにする。 */
@media (max-width: 767px) {
  body.npw-site .np-brand-top .np-brand-hero #hero-title {
    font-size: clamp(1.25rem, 6.6vw, 3rem);
    letter-spacing: .01em;
    line-height: 1.65;
  }
  body.npw-site .np-brand-top .np-brand-hero #hero-title > .np-brand-line {
    white-space: nowrap;
  }
}
