@charset "utf-8";

/* 共通ナビ・LIFE INFORMATIONは style_location-walkable-town.css を使用。 */
.location-childcare-page { color: #202020; background: #fff; }
.location-childcare-page picture,
.location-childcare-page img { display: block; }
/* LIFE INFORMATIONなどの共通部品で指定された画像幅を優先する。 */
:where(.location-childcare-page) img { width: 100%; height: auto; }
.location-childcare-page [hidden] { display: none !important; }
.location-childcare-page a:focus-visible,
.location-childcare-page button:focus-visible { outline: 2px solid #14718c; outline-offset: 5px; }
.childcare-sp-only, .childcare-inline-cta { display: none; }
.childcare-intro { padding: 0 24px 160px; text-align: center; }
.childcare-intro h1 { position: relative; width: min(24.6vw, 472px); margin: -9.9vw auto 12px; }
.childcare-intro h2 { font-size: clamp(22px, 1.46vw, 28px); line-height: 1.85; letter-spacing: .16em; }
.childcare-intro p { margin-top: 38px; font-size: clamp(13px, .94vw, 18px); line-height: 2.3; letter-spacing: .18em; }
.childcare-texture { background: #f9f6ef url('../../img/location/childcare/childcare_bg01.jpg') center top / 100% auto repeat-y; }
.childcare-overview { width: min(79.167%, 1520px); margin: auto; padding: 65px 0 45px; }
.childcare-daily { position: relative; aspect-ratio: 2880 / 837; background: url('../../img/location/childcare/childcare_bg02.jpg') center / cover no-repeat; display: flex; align-items: center; }
.childcare-daily-copy { width: 50%; margin-left: 15.3%; padding: 25px 0; text-align: center; }
.childcare-en-heading { font-family: garamond, 'Times New Roman', serif; font-size: clamp(25px, 2.1vw, 40px); letter-spacing: .16em; }
.childcare-en-heading::after { content: ''; display: block; width: 1px; height: 65px; background: currentColor; margin: 16px auto 26px; }
.childcare-daily h3 { font-size: clamp(18px, 1.5vw, 28px); letter-spacing: .12em; line-height: 1.8; }
.childcare-daily p { margin-top: 26px; font-size: clamp(11px, .833vw, 16px); line-height: 2.2; }
.location-childcare-page .childcare-wappen {position: absolute;top: 5.2%;left: 7.4%;width: 15.64%;}
.childcare-schools { padding: 160px 0 150px; }
.childcare-school-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10.6%; width: min(57.1%, 1096px); margin: auto; }
.childcare-school-photo { position: relative; }
.location-childcare-page .childcare-school-badge { position: absolute; top: -12%; left: -11.5%; width: 29.65%; }
.childcare-school h3 { width: 71.5%; margin: 25px auto 0; }
.childcare-school p,
.childcare-community-copy p { margin-top: 18px; font-size: clamp(12px, .833vw, 16px); line-height: 1.8; text-align: justify; }
.childcare-community { padding: 125px 0 180px; }
.childcare-community > h2 { margin: 0 20px 60px; font-size: clamp(20px, 1.5vw, 28px); text-align: center; letter-spacing: .12em; line-height: 1.6; }
.childcare-community-grid { display: grid; grid-template-columns: 50% 44.7%; gap: 5.3%; width: min(57.1%, 1096px); margin: auto; }
.childcare-community-card { background: #f9f6ef url('../../img/location/childcare/school03_bg.jpg') center / cover; }
.childcare-community-copy { padding: 65px 8% 40px; }
.childcare-community-copy h3 { width: 82%; margin: auto; }
.childcare-community-copy p { margin-top: 30px; }
.childcare-community-programs { display: flex; flex-direction: column; justify-content: space-between; }
.childcare-community-programs > picture { width: 111%; margin-left: -7%; }
.childcare-program-mobile { display: none; }
.childcare-support-hero { position: relative; }
.childcare-support-hero h2 { position: absolute; top: 50%; left: 0; width: 100%; transform: translateY(-50%); color: #fff; text-align: center; font-size: clamp(20px, 1.5vw, 28px); letter-spacing: .12em; line-height: 1.8; }
.childcare-support-body { background: #f1eeee; padding: 160px 0 140px; }
.childcare-support-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4.6%; width: min(79.4%, 1524px); margin: auto; }
/* 余白を除いて再書き出ししたSVGを、カードの中央に配置する。 */
.childcare-support-point { display: flex; flex-direction: column; }
.childcare-support-point h3 { position: relative; z-index: 1; width: 73.3%; margin-inline: auto; }
.childcare-support-point p { flex: 1; margin-top: -24%; padding: 36% 13% 10%; background: #fffcfa; font-size: clamp(11px, .833vw, 16px); line-height: 1.8; text-align: justify; }
.childcare-support-message { margin: 80px 20px 0; color: #624725; font-size: clamp(19px, 1.5vw, 28px); text-align: center; line-height: 1.9; letter-spacing: .16em; }
.is_location-childcare .menu-btn { border: 0; background: transparent; padding: 0; }
.is_location-childcare .menu-btn:focus-visible { outline: 2px solid #14718c; outline-offset: -5px; }

@media (min-width: 1921px) {
  .childcare-intro h1 { margin-top: -190px; }
}
@media (min-width: 801px) and (max-width: 1600px) {
  .childcare-intro { padding-bottom: 8.3vw; }
  .childcare-intro p { margin-top: 2vw; }
  .childcare-overview { padding: 3.4vw 0 2.35vw; }
  .childcare-en-heading::after { height: 3.38vw; margin: .83vw auto 1.35vw; }
  .childcare-daily p { margin-top: 1.35vw; }
  .childcare-schools { padding: 8.3vw 0 7.8vw; }
  .childcare-school h3 { margin-top: 1.3vw; }
  .childcare-community { padding: 6.5vw 0 9.4vw; }
  .childcare-community > h2 { margin-bottom: 3.1vw; }
  .childcare-community-copy { padding-top: 3.4vw; padding-bottom: 2.1vw; }
  .childcare-community-copy p { margin-top: 1.56vw; }
  .childcare-support-body { padding: 8.3vw 0 7.3vw; }
  .childcare-support-message { margin-top: 4.2vw; }
}
@media (min-width: 801px) and (max-width: 1140px) {
  .is_location-childcare .h__menu { display: none; }
  .is_location-childcare .menu-btn { display: block; }
  .is_location-childcare .l-h__links__menu2 { right: 110px; }
  .is_location-childcare .h__menu__list_sub { right: 115px; }
  .is_location-childcare .l-sitemenu { top: 98px; height: calc(100% - 98px); }
  .childcare-daily-copy { width: 55%; margin-left: 10%; }
  .location-childcare-page .childcare-wappen { width: 13%; left: 4%; }
  .childcare-school-grid, .childcare-community-grid { width: 72%; }
}
@media (max-width: 800px) {
  .childcare-sp-only { display: initial; }
  .childcare-sp-break { display: block; }
  .childcare-intro { padding: 0 4% 15vw; }
  .childcare-intro h1 { width: 67.1875vw; margin: -22.8vw auto 6vw; }
  .childcare-intro h2 { font-size: 5vw; line-height: 1.55; letter-spacing: .11em; }
  .childcare-intro p { margin-top: 8.3vw; font-size: 3.44vw; line-height: 1.9; letter-spacing: .11em; }
  .childcare-inline-cta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .childcare-inline-cta a { color: #fff; text-align: center; background: #471416; padding: 3vw 5px; font-size: 4.4vw; letter-spacing: .08em; }
  .childcare-inline-cta a + a { background: #624924; }
  .childcare-texture { background-image: url('../../img/location/childcare/childcare_bg01_sp.jpg'); }
  .childcare-overview { width: 100%; padding: 4vw 0 15vw; }
  .childcare-daily { display: block; aspect-ratio: 960 / 2213; background-image: url('../../img/location/childcare/childcare_bg02_sp.jpg'); }
  .childcare-daily-copy { width: 100%; margin: 0; padding: 12.5vw 4% 0; }
  .childcare-en-heading { font-size: 6.25vw; letter-spacing: .16em; }
  .childcare-en-heading::after { height: 10vw; margin: 3.2vw auto 3.5vw; }
  .childcare-daily h3 { font-size: 5vw; line-height: 1.55; }
  .childcare-daily p { margin-top: 7.5vw; font-size: 3.44vw; line-height: 1.9; letter-spacing: .1em; }
  .location-childcare-page .childcare-wappen { top: 44%; left: 50%; width: 53%; transform: translateX(-50%); }
  .childcare-schools { padding: 22vw 0 24vw; }
  .childcare-school-grid { display: block; width: 87.5%; }
  .childcare-school + .childcare-school { margin-top: 34vw; }
  .location-childcare-page .childcare-school-badge { width: 35.7%; top: -17.5%; left: -4%; }
  .childcare-school h3 { width: 71.5%; margin-top: 8vw; }
  .childcare-school p, .childcare-community-copy p { margin-top: 7vw; font-size: 3.44vw; line-height: 1.95; letter-spacing: .15em; }
  .childcare-community { padding: 20vw 0 24vw; }
  .childcare-community > h2 { margin: 0 3% 7vw; font-size: 5vw; letter-spacing: .1em; line-height: 1.55; }
  .childcare-community-grid { display: block; width: 87.5%; }
  .childcare-community-card { width: 100%; }
  .childcare-community-copy { padding: 7vw 4.5% 8vw; }
  .childcare-community-copy h3 { width: 79%; }
  .childcare-community-copy p { margin-top: 7vw; letter-spacing: .13em; }
  .childcare-community-programs { width: 100%; margin-top: 5.5vw; }
  .childcare-community-programs > picture { display: none; }
  .childcare-program-mobile { display: grid; gap: 4.5vw; }
  .childcare-program-mobile article { overflow: hidden; border-radius: 3.5vw; background: #faf6f4; text-align: center; }
  .childcare-program-mobile h3 { padding: 2.5vw 1%; color: #fff; background: linear-gradient(100deg, #417fb4, #65bec2); font-size: 4.4vw; line-height: 1.4; letter-spacing: .05em; }
  .childcare-program-mobile p { padding: 3.5vw 3%; font-size: 3.1vw; line-height: 1.7; }
  .childcare-program-mobile ul { width: fit-content; max-width: 94%; margin: 0 auto; padding: 0 0 5vw 1em; font-size: 3.1vw; line-height: 1.4; text-align: left; list-style: disc; }
  .childcare-support-hero h2 { font-size: 5.6vw; letter-spacing: .1em; line-height: 1.4; }
  .childcare-support-body { padding: 10.8vw 0 14vw; }
  .childcare-support-grid { display: block; width: 87.5%; }
  .childcare-support-point + .childcare-support-point { margin-top: 18vw; }
  .childcare-support-point h3 { width: 60.1%; }
  .childcare-support-point p { margin-top: -18%; padding: 28% 6% 9%; font-size: 3.44vw; line-height: 1.95; letter-spacing: .13em; }
  .childcare-support-message { margin: 12vw 3% 0; font-size: 4.4vw; line-height: 1.7; letter-spacing: .12em; }
}

/* ロケーション［子育てにうれしい街］：共通ヘッダー・フッターは layout.css を使用 */
