@charset "UTF-8";

@import url("top.css?v=20260729-desktop-header-balance-v2");

/* 愛媛星岡幼稚園 ファーストビュー */
.global-nav__link[aria-current="page"] .global-nav__text {
  color: var(--green-dark);
}

.garden-switcher {
  position: relative;
  z-index: 221;
  display: grid;
  grid-template-columns: 1fr 1fr;
  height: 50px;
  color: #425044;
  font-family: var(--font-round);
  font-size: 17px;
  font-weight: 700;
  letter-spacing: .06em;
}

.garden-switcher__button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-width: 0;
  padding: 0 24px;
  transition: background-color .2s ease, color .2s ease;
}

.garden-switcher__button:not(.is-current):hover,
.garden-switcher__button:not(.is-current):focus-visible {
  background-color: #ffeb78;
}

.garden-switcher__button.is-current {
  background-color: #70bf45;
  color: #fff;
  cursor: default;
}

.garden-switcher__button--hoshioka:not(.is-current) {
  background-color: #eee7d4;
  color: #34483c;
}

.garden-switcher__button--sanbancho:not(.is-current) {
  background-color: #ffe976;
  color: #34483c;
}

.garden-switcher__arrow {
  position: relative;
  width: 15px;
  height: 15px;
  flex: 0 0 15px;
  border-radius: 50%;
  background-color: var(--green);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='10' viewBox='0 0 8 10'%3E%3Cpath d='M2 1.5v7L6.5 5Z' fill='%23fff' stroke='%23fff' stroke-width='1.5' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 6px 8px;
}

.garden-switcher__arrow::after {
  content: none;
}

.hoshioka-hero {
  position: relative;
  height: 930px;
  min-height: 720px;
  overflow: hidden;
  background: #f7f5ed;
}

.hoshioka-hero__photo,
.hoshioka-hero__shade {
  position: absolute;
  inset: 0 0 35px;
}

.hoshioka-hero__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 45%;
}

.hoshioka-hero__shade {
  z-index: 1;
  background:
    linear-gradient(180deg, rgba(38, 48, 28, .16) 0%, rgba(38, 48, 28, 0) 34%),
    linear-gradient(
      0deg,
      rgba(0, 0, 0, .34) 0%,
      rgba(0, 0, 0, .22) 24%,
      rgba(0, 0, 0, .09) 45%,
      rgba(0, 0, 0, 0) 66%
    );
}

.hoshioka-hero__titlebox {
  position: absolute;
  z-index: 5;
  left: 50%;
  bottom: 105px;
  width: min(780px, calc(100% - 380px));
  color: #fff;
  text-align: center;
  transform: translateX(-50%);
  font-family: var(--font-round);
  text-shadow: 0 3px 15px rgba(37, 45, 24, .4);
}

.hoshioka-hero__eyebrow {
  position: relative;
  display: inline-block;
  margin-bottom: 16px;
  padding: 0;
  background: transparent;
  color: #56564e;
  font-family: var(--font-round);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: .03em;
  text-shadow: none;
}

.hoshioka-hero__eyebrow > span {
  position: relative;
  z-index: 2;
  display: block;
  padding: 10px 28px;
  background: #f4eedf;
}

.hoshioka-hero__eyebrow::before,
.hoshioka-hero__eyebrow::after {
  content: "";
  position: absolute;
  z-index: 1;
  top: 14px;
  width: 35px;
  height: 42px;
  background: #c7bea6;
}

.hoshioka-hero__eyebrow::before {
  left: -25px;
  -webkit-clip-path: polygon(0 0, 100% 0, 82% 50%, 100% 100%, 0 100%, 18% 50%);
  clip-path: polygon(0 0, 100% 0, 82% 50%, 100% 100%, 0 100%, 18% 50%);
}

.hoshioka-hero__eyebrow::after {
  right: -25px;
  -webkit-clip-path: polygon(0 0, 100% 0, 82% 50%, 100% 100%, 0 100%, 18% 50%);
  clip-path: polygon(0 0, 100% 0, 82% 50%, 100% 100%, 0 100%, 18% 50%);
}

.hoshioka-page:not(.sanbancho-page) .hoshioka-hero__eyebrow::before,
.hoshioka-page:not(.sanbancho-page) .hoshioka-hero__eyebrow::after {
  background-color: transparent;
  background-position: center;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  -webkit-clip-path: none;
  clip-path: none;
}
.hoshioka-page:not(.sanbancho-page) .hoshioka-hero__eyebrow::before { background-image: url("../images/common/obi_parts2_left.png"); }
.hoshioka-page:not(.sanbancho-page) .hoshioka-hero__eyebrow::after { background-image: url("../images/common/obi_parts2_right.png"); }

.hoshioka-hero__title {
  margin: 0;
  font-size: clamp(46px, 4.2vw, 68px);
  font-weight: 900;
  line-height: 1.28;
  letter-spacing: .08em;
}

.hoshioka-hero__lead {
  margin-top: 10px;
  font-size: clamp(24px, 2.2vw, 32px);
  font-weight: 700;
  line-height: 1.55;
  letter-spacing: .1em;
}

.hoshioka-hero__description {
  margin-top: 16px;
  font-family: var(--font-round);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.85;
  letter-spacing: .04em;
}

.hoshioka-hero__pattern,
.hoshioka-hero__friend {
  position: absolute;
  z-index: 4;
  pointer-events: none;
}

.hoshioka-hero__pattern { opacity: 1; }
.hoshioka-hero__pattern--left { left: -18px; bottom: 260px; width: 205px; }
.hoshioka-hero__pattern--right { right: -14px; bottom: 150px; width: 230px; }
.hoshioka-hero__friend--rabbit { left: max(110px, calc(50% - 560px)); bottom: 112px; width: 96px; }
.hoshioka-hero__friend--bear { right: max(110px, calc(50% - 565px)); bottom: 104px; width: 132px; }
.hoshioka-hero__friend--pink-flower { left: max(46px, calc(50% - 665px)); bottom: 156px; width: 58px; }
.hoshioka-hero__friend--tulip { left: max(300px, calc(50% - 405px)); bottom: 82px; width: 37px; }
.hoshioka-hero__friend--yellow-flower { right: max(282px, calc(50% - 420px)); bottom: 358px; width: 42px; }
.hoshioka-hero__friend--tree-large { right: max(36px, calc(50% - 668px)); bottom: 88px; width: 76px; }
.hoshioka-hero__friend--tree-small { right: max(5px, calc(50% - 712px)); bottom: 84px; width: 58px; }

.hoshioka-local-nav {
  position: absolute;
  z-index: 8;
  left: 50%;
  bottom: 0;
  display: grid;
  grid-template-columns: repeat(5, auto);
  width: min(820px, calc(100% - 80px));
  min-height: 70px;
  padding: 8px 20px;
  border-radius: 10px;
  background: #fff;
  box-shadow: none;
  transform: translateX(-50%);
}

.hoshioka-local-nav a {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 0 13px;
  color: #4a5746;
  font-family: var(--font-round);
  font-size: 15px;
  font-weight: 700;
  white-space: nowrap;
}

.hoshioka-local-nav a::before {
  content: "";
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  margin-right: 10px;
  border-radius: 50%;
  background-color: var(--green);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='8' viewBox='0 0 10 8'%3E%3Cpath d='M2 2h6L5 6Z' fill='%23fff' stroke='%23fff' stroke-width='1.7' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 8px 6px;
}
.hoshioka-local-nav a::after {
  content: none;
}
.hoshioka-local-nav a:hover { color: var(--green-dark); }

/* ============================================
   星岡園の特色
============================================= */
.hoshioka-features {
  position: relative;
  overflow: hidden;
  padding: 105px 40px 85px;
  background: #f8f6f0;
}

.hoshioka-features__inner {
  position: relative;
  z-index: 2;
  max-width: 1200px;
  margin: 0 auto;
}

.hoshioka-features__header {
  margin-bottom: 58px;
  text-align: center;
  font-family: var(--font-round);
}

.hoshioka-features__label {
  margin-bottom: 14px;
  color: #67bd66;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: .08em;
}

.hoshioka-features__title {
  margin: 0;
  color: #34483c;
  font-size: 45px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .08em;
}

.hoshioka-features__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 70px;
  row-gap: 68px;
}

.feature-card {
  min-width: 0;
}

.feature-card__visual {
  position: relative;
  display: block;
  height: 330px;
  margin-bottom: 22px;
  color: inherit;
}

.feature-card__visual > img {
  width: 100%;
  height: 100%;
  border-radius: 18px;
  object-fit: cover;
}

.feature-card:nth-child(1) .feature-card__visual > img { object-position: center 46%; }
.feature-card:nth-child(2) .feature-card__visual > img { object-position: center; }
.feature-card:nth-child(3) .feature-card__visual > img { object-position: center 42%; }
.feature-card:nth-child(4) .feature-card__visual > img { object-position: center; }

.feature-card__title {
  position: absolute;
  left: 0;
  bottom: -2px;
  max-width: 96%;
  margin: 0;
  padding: 0;
  background: transparent;
  color: #34483c;
  font-family: var(--font-round);
  font-size: 27px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .035em;
}

.feature-card__title-line {
  display: table;
  width: fit-content;
  max-width: 100%;
  padding: 3px 16px 2px 0;
  background: #f8f6f0;
  white-space: nowrap;
}

.feature-card__title-line:first-child {
  padding-top: 7px;
  border-radius: 0 11px 0 0;
}

.feature-card__title-line:last-child {
  padding-bottom: 3px;
  border-radius: 0 11px 0 0;
}

.feature-card__title em {
  color: #60bd68;
  font-style: normal;
}

.feature-card__text {
  min-height: 92px;
  color: #3f4b42;
  font-family: var(--font-round);
  font-size: 16px;
  font-weight: 500;
  line-height: 2;
  letter-spacing: .035em;
}

.feature-card__text-toggle {
  display: none;
}

.feature-card__more {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 14px;
  color: #34483c;
  font-family: var(--font-round);
  font-size: 17px;
  font-weight: 700;
  letter-spacing: .08em;
  padding: 7px 11px;
  margin-left: -11px;
  border-radius: 20px;
  transition: color .2s ease, background-color .2s ease;
}

.feature-card__more:hover,
.feature-card__more:focus-visible {
  color: #4ba95a;
  background-color: rgba(105, 194, 111, .12);
}

.feature-card__more > span {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background-color: #69c26f;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='10' viewBox='0 0 8 10'%3E%3Cpath d='M2 1.5v7L6.5 5Z' fill='%23fff' stroke='%23fff' stroke-width='1.5' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  transition: filter .2s ease;
}

.feature-card__more:hover > span,
.feature-card__more:focus-visible > span { filter: brightness(1.08); }

.hoshioka-features__pattern,
.hoshioka-features__deco {
  position: absolute;
  z-index: 1;
  pointer-events: none;
}

.hoshioka-features__pattern--triangles { top: 18px; right: -10px; width: 250px; }
.hoshioka-features__pattern--lines { left: -46px; top: 700px; width: 290px; }
.hoshioka-features__deco--balloon { left: max(28px, calc(50% - 690px)); top: 145px; width: 76px; }
.hoshioka-features__deco--alligator { right: max(32px, calc(50% - 675px)); top: 120px; width: 145px; }
.hoshioka-features__deco--tulip { left: max(34px, calc(50% - 685px)); bottom: 205px; width: 37px; }
.hoshioka-features__deco--note { right: max(12px, calc(50% - 703px)); top: 700px; width: 47px; }
.hoshioka-features__deco--lion { right: max(8px, calc(50% - 780px)); bottom: 320px; width: clamp(100px, calc(50vw - 615px), 165px); }

@media (max-width: 1360px) {
  .hoshioka-features__deco--tulip {
    left: 7px;
    bottom: 160px;
    width: 29px;
  }

  .sanbancho-page .hoshioka-features__deco--lion {
    display: none;
  }
}

/* ============================================
   星岡園フォトギャラリー
============================================= */
.hoshioka-gallery {
  position: relative;
  overflow: hidden;
  margin-top: -2px;
  padding: 88px 0 105px;
  background: #f2ead8;
}

.hoshioka-gallery::before {
  content: "";
  position: absolute;
  z-index: 2;
  left: 0;
  right: 0;
  top: -12px;
  height: 44px;
  background-color: #f2ead8;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='480' height='32' viewBox='0 0 480 32'%3E%3Cpath fill='%23f8f6f0' d='M0,0 L480,0 L480,27 L432,25.5 L384,21.5 L336,16.5 L288,12.5 L240,11 L192,12.5 L144,16.5 L96,21.5 L48,25.5 L0,27 Z'/%3E%3C/svg%3E");
  background-repeat: repeat-x;
  background-position: top center;
  background-size: 360px 32px;
}

.hoshioka-gallery__header {
  position: relative;
  z-index: 3;
  margin-bottom: 56px;
  text-align: center;
  font-family: var(--font-round);
}

.hoshioka-gallery__label {
  margin-bottom: 14px;
  color: #67bd66;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: .08em;
}

.hoshioka-gallery__title {
  margin: 0;
  color: #34483c;
  font-size: 45px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .06em;
}

.hoshioka-gallery__viewport {
  position: relative;
  z-index: 2;
  width: 100%;
}

.hoshioka-gallery__track {
  position: relative;
  left: 50%;
  display: flex;
  align-items: stretch;
  gap: 30px;
  width: max-content;
  transform: translateX(-50%);
  transition: transform .72s cubic-bezier(.22, .7, .2, 1);
  will-change: transform;
}

.hoshioka-gallery__track.is-moving-next {
  transform: translateX(calc(-50% - var(--gallery-shift, 820px)));
}

.hoshioka-gallery__track.is-moving-prev {
  transform: translateX(calc(-50% + var(--gallery-shift, 820px)));
}

.hoshioka-gallery__track.is-resetting {
  transition: none;
}

.hoshioka-gallery__slide {
  width: 790px;
  height: 510px;
  flex: 0 0 790px;
  margin: 0;
  overflow: hidden;
  border-radius: 18px;
  background: #fff;
}

.hoshioka-gallery__slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hoshioka-gallery__slide[data-gallery-position="prev"] img { object-position: center; }
.hoshioka-gallery__slide[data-gallery-position="next"] img { object-position: center; }
.hoshioka-gallery__slide[data-gallery-position="prev-outer"] img,
.hoshioka-gallery__slide[data-gallery-position="next-outer"] img { object-position: center; }

.hoshioka-gallery__arrow {
  position: absolute;
  z-index: 5;
  top: 50%;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background-color: #69c26f;
  background-repeat: no-repeat;
  background-position: center;
  transition: transform .2s, filter .2s;
  transform: translateY(-50%);
}

.hoshioka-gallery__arrow:hover { filter: brightness(1.05); }
.hoshioka-gallery__arrow--prev {
  left: calc(50% - 580px);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='22' viewBox='0 0 18 22'%3E%3Cpath d='M15 3 3 11l12 8Z' fill='%23fff' stroke='%23fff' stroke-width='3' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.hoshioka-gallery__arrow--next {
  right: calc(50% - 580px);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='22' viewBox='0 0 18 22'%3E%3Cpath d='m3 3 12 8-12 8Z' fill='%23fff' stroke='%23fff' stroke-width='3' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.hoshioka-gallery__dots {
  position: relative;
  z-index: 4;
  display: flex;
  justify-content: center;
  gap: 9px;
  margin-top: 48px;
}

.hoshioka-gallery__dots button {
  width: 82px;
  height: 7px;
  padding: 0;
  background: #ddd2b9;
  transition: background .2s;
}

.hoshioka-gallery__dots button.is-active { background: #ad9c73; }

/* ============================================
   星岡園からのお知らせ
============================================= */
.hoshioka-news {
  z-index: 2;
  min-height: 520px;
  margin-top: -3px;
  padding: 112px 0 104px;
  overflow: visible;
  background: #f8f6f0;
}

.hoshioka-news .news__inner {
  max-width: 1160px;
  grid-template-columns: 330px minmax(0, 1fr);
  column-gap: 62px;
}

.hoshioka-news .news__label {
  margin-bottom: 20px;
  color: #69c66f;
  font-size: 18px;
}

.hoshioka-news .news__title {
  font-size: 44px;
  line-height: 1.75;
  letter-spacing: .1em;
}

.hoshioka-news .news__mascot {
  height: 175px;
  margin-top: 22px;
}

.hoshioka-news .news__animal {
  left: 66px;
  width: 126px;
}

.hoshioka-news .news__tulip--l { left: -82px; bottom: 112px; }
.hoshioka-news .news__tulip--r { left: 220px; bottom: 64px; }

.hoshioka-news .news__main { padding-top: 29px; }
.hoshioka-news .news-list__link { padding: 23px 0; }
.hoshioka-news .news__more { margin-top: 30px; }

.hoshioka-news .news__deco--trees {
  top: 42px;
  right: max(74px, calc(50% - 650px));
  width: 110px;
}

.hoshioka-news .news__deco--tree2 {
  top: 92px;
  right: max(18px, calc(50% - 710px));
  width: 82px;
}

.hoshioka-news__pattern {
  position: absolute;
  z-index: 0;
  right: max(180px, calc(50% - 540px));
  bottom: -170px;
  width: 420px;
  opacity: .9;
  pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
  .hoshioka-gallery__track { transition: none; }
}

.hoshioka-gallery__pattern,
.hoshioka-gallery__deco {
  position: absolute;
  z-index: 3;
  pointer-events: none;
}

.hoshioka-gallery__pattern { z-index: 1; width: 205px; opacity: .82; }
.hoshioka-gallery__pattern--left { left: -8px; top: 4px; width: 310px; }
.hoshioka-gallery__pattern--right { right: -4px; bottom: 42px; }
.hoshioka-gallery__deco--balloon-left { left: max(245px, calc(50% - 470px)); top: 58px; width: 58px; }
.hoshioka-gallery__deco--balloon-right { right: max(245px, calc(50% - 470px)); top: 122px; width: 58px; }
.hoshioka-gallery__deco--flower { left: max(170px, calc(50% - 555px)); bottom: 88px; width: 48px; }
.hoshioka-gallery__deco--grass-left { left: calc(50% - 385px); bottom: 78px; width: 42px; }
.hoshioka-gallery__deco--grass-right { right: calc(50% - 315px); bottom: 80px; width: 42px; }
.hoshioka-gallery__deco--deer { right: max(165px, calc(50% - 570px)); bottom: 58px; width: 120px; }

.hoshioka-gallery::after {
  content: "";
  position: absolute;
  z-index: 1;
  left: 0;
  right: 0;
  bottom: -3px;
  height: 35px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='480' height='32' viewBox='0 0 480 32'%3E%3Cpath fill='%23f8f6f0' d='M0,27 L48,25.5 L96,21.5 L144,16.5 L192,12.5 L240,11 L288,12.5 L336,16.5 L384,21.5 L432,25.5 L480,27 L480,32 L0,32 Z'/%3E%3C/svg%3E");
  background-repeat: repeat-x;
  background-position: bottom center;
  background-size: 360px 32px;
}

/* ============================================
   園での生活・入園について
============================================= */
.hoshioka-life {
  position: relative;
  overflow: hidden;
  padding: 20px 0 150px;
  background: #f8f6f0;
}

.hoshioka-life::after {
  content: "";
  position: absolute;
  z-index: 1;
  right: 0;
  bottom: -1px;
  left: 0;
  height: 33px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='480' height='32' viewBox='0 0 480 32'%3E%3Cpath fill='%23a5c57a' d='M0,27 L48,25.5 L96,21.5 L144,16.5 L192,12.5 L240,11 L288,12.5 L336,16.5 L384,21.5 L432,25.5 L480,27 L480,32 L0,32 Z'/%3E%3C/svg%3E");
  background-repeat: repeat-x;
  background-position: bottom center;
  background-size: 360px 32px;
}

.hoshioka-life__inner {
  position: relative;
  z-index: 2;
  width: min(1120px, calc(100% - 80px));
  margin: 0 auto;
}

.hoshioka-life__header {
  margin-bottom: 64px;
  text-align: center;
}

.hoshioka-life__rainbow {
  display: block;
  width: 116px;
  margin: 0 auto 6px;
}

.hoshioka-life__title {
  margin: 0;
  color: var(--ink);
  font-family: var(--font-round);
  font-size: 42px;
  font-weight: 700;
  line-height: normal;
  letter-spacing: .12em;
}

.hoshioka-life__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 56px 34px;
}

.hoshioka-life-card {
  display: block;
  color: inherit;
  transition: transform .18s ease;
}

.hoshioka-life-card:hover { transform: translateY(-4px); }
.hoshioka-life-card__figure { position: relative; }

.hoshioka-life-card__photo {
  display: block;
  width: 100%;
  aspect-ratio: 351 / 281;
  overflow: hidden;
  filter: drop-shadow(0 8px 16px rgba(90, 90, 60, .08));
  clip-path: path("M 22,0 L 281,0 A 16 16 0 0 1 297,16 L 297,104 A 16 16 0 0 0 313,120 L 335,120 A 16 16 0 0 1 351,136 L 351,259 A 22 22 0 0 1 329,281 L 22,281 A 22 22 0 0 1 0,259 L 0,22 A 22 22 0 0 1 22,0 Z");
}

.hoshioka-life-card--wide .hoshioka-life-card__photo {
  clip-path: path("M 22,0 L 239,0 A 16 16 0 0 1 255,16 L 255,138 A 16 16 0 0 0 271,154 L 335,154 A 16 16 0 0 1 351,170 L 351,259 A 22 22 0 0 1 329,281 L 22,281 A 22 22 0 0 1 0,259 L 0,22 A 22 22 0 0 1 22,0 Z");
}

.hoshioka-life-card--long .hoshioka-life-card__photo {
  clip-path: path("M 22,0 L 239,0 A 16 16 0 0 1 255,16 L 255,188 A 16 16 0 0 0 271,204 L 335,204 A 16 16 0 0 1 351,220 L 351,259 A 22 22 0 0 1 329,281 L 22,281 A 22 22 0 0 1 0,259 L 0,22 A 22 22 0 0 1 22,0 Z");
}

.hoshioka-life-card--map .hoshioka-life-card__photo {
  clip-path: path("M 22,0 L 239,0 A 16 16 0 0 1 255,16 L 255,230 A 16 16 0 0 0 271,246 L 335,246 A 16 16 0 0 1 351,262 L 351,259 A 22 22 0 0 1 329,281 L 22,281 A 22 22 0 0 1 0,259 L 0,22 A 22 22 0 0 1 22,0 Z");
}

.hoshioka-life-card:nth-child(5) .hoshioka-life-card__photo {
  clip-path: path("M 22,0 L 239,0 A 16 16 0 0 1 255,16 L 255,108 A 16 16 0 0 0 271,124 L 335,124 A 16 16 0 0 1 351,140 L 351,259 A 22 22 0 0 1 329,281 L 22,281 A 22 22 0 0 1 0,259 L 0,22 A 22 22 0 0 1 22,0 Z");
}

.hoshioka-life-card__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hoshioka-life-card__label {
  position: absolute;
  z-index: 4;
  top: -6px;
  right: 14px;
  display: flex;
  flex-direction: row-reverse;
  align-items: flex-start;
  gap: 8px;
  margin: 0;
  color: var(--ink);
  font-family: var(--font-round);
  font-size: 27px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .06em;
}

.hoshioka-life-card__label span,
.hoshioka-life-card__label small {
  writing-mode: vertical-rl;
  text-orientation: upright;
}

.hoshioka-life-card__label small {
  font-size: 27px;
  font-weight: 700;
}

.hoshioka-life-card:nth-child(3) .hoshioka-life-card__label small {
  font-size: 20px;
  letter-spacing: .04em;
}

.hoshioka-life-card:nth-child(5) .hoshioka-life-card__label {
  gap: 8px;
}

.hoshioka-life-card__text {
  margin: 17px 0 0;
  color: var(--ink-soft);
  font-family: var(--font-round);
  font-size: 15px;
  font-weight: 500;
  line-height: 1.9;
  letter-spacing: .035em;
}

.hoshioka-life__pattern,
.hoshioka-life__deco,
.hoshioka-life__mice {
  position: absolute;
  pointer-events: none;
}

.hoshioka-life__pattern { z-index: 0; width: 420px; opacity: .9; }
.hoshioka-life__pattern--left { bottom: 8px; left: 20px; }
.hoshioka-life__mice { z-index: 3; top: 141px; left: -10px; width: 112px; }
.hoshioka-life__mice > img:last-child { display: block; width: 100%; }
.hoshioka-life__note { position: absolute; top: -25px; left: 30px; width: 34px; }
.hoshioka-life__deco { z-index: 3; }
.hoshioka-life__deco--tulip-left { top: 270px; left: -68px; width: 30px; }
.hoshioka-life__deco--tree { right: -130px; bottom: 72px; width: 112px; }
.hoshioka-life__deco--rabbit { right: -25px; bottom: 6px; width: 72px; }
.hoshioka-life__deco--tulip-right { right: -70px; bottom: 0; width: 28px; }

/* ============================================
   アクセス・駐車場・スクールバス
============================================= */
.hoshioka-access {
  position: relative;
  overflow: hidden;
  min-height: 720px;
  margin-top: -4px;
  padding: 86px 0 108px;
  background: #a5c57a;
  color: #fff;
}

.hoshioka-access__inner {
  position: relative;
  z-index: 2;
  width: min(1220px, calc(100% - 80px));
  margin: 0 auto;
}

.hoshioka-access__header {
  position: relative;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  min-height: 108px;
  margin-bottom: 54px;
}

.hoshioka-access__title {
  margin: 0 190px 13px;
  font-family: var(--font-round);
  font-size: 41px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .08em;
  white-space: nowrap;
}

.hoshioka-access__train {
  position: absolute;
  bottom: 0;
  display: flex;
  align-items: flex-end;
  gap: 8px;
}

.hoshioka-access__train--left { left: 0; }
.hoshioka-access__train--right { right: 0; }

.access-cart {
  position: relative;
  display: block;
  width: 72px;
  height: 48px;
  border-radius: 8px 8px 4px 4px;
}

.access-cart::before,
.access-cart::after {
  content: "";
  position: absolute;
  bottom: -7px;
  width: 14px;
  height: 14px;
  border: 4px solid #ef9bc1;
  border-radius: 50%;
  background: #a9d6e9;
}

.access-cart::before { left: 9px; }
.access-cart::after { right: 9px; }
.access-cart--pink { background: #ef9bc1; }
.access-cart--blue { background: #70cce1; }
.access-cart--purple { background: #b78acc; }

.access-cart img {
  position: absolute;
  right: 50%;
  bottom: 27px;
  width: 58px;
  max-height: 92px;
  object-fit: contain;
  transform: translateX(50%);
}

.access-cart--purple img { width: 48px; max-height: 112px; }

.hoshioka-access__content {
  display: grid;
  grid-template-columns: 470px minmax(0, 590px);
  justify-content: space-between;
  gap: 60px;
}

.hoshioka-access__details { padding-top: 2px; }
.access-info { margin: 0; }
.access-info__row {
  display: grid;
  grid-template-columns: 145px 1fr;
  align-items: center;
  height: 98px;
  padding: 0;
  border-bottom: 1px solid rgba(255, 255, 255, .72);
}

.access-info__row:last-child {
  height: auto;
  min-height: 134px;
  padding: 20px 0;
}
.access-info dt,
.access-info dd {
  margin: 0;
  font-family: var(--font-round);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.85;
  letter-spacing: .055em;
}

.access-info a { color: inherit; }

.access-info__row--tel dd { font-size: 26px; letter-spacing: .06em; }
.access-info__row--fax dd { font-size: 20px; letter-spacing: .06em; }

.hoshioka-access__more {
  display: flex;
  align-items: center;
  gap: 12px;
  width: fit-content;
  margin: 20px -14px 0 auto;
  padding: 8px 14px;
  border-radius: 22px;
  color: #fff;
  font-family: var(--font-round);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .05em;
  transition: background-color .2s ease, transform .2s ease;
}

.hoshioka-access__more:hover,
.hoshioka-access__more:focus-visible {
  background-color: rgba(255, 255, 255, .2);
  transform: translateX(4px);
}

.hoshioka-access__more > span {
  width: 23px;
  height: 23px;
  flex: 0 0 23px;
  border-radius: 50%;
  background: #69c66f url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='10' viewBox='0 0 8 10'%3E%3Cpath d='M2 1.5v7L6.5 5Z' fill='%23fff' stroke='%23fff' stroke-width='1.5' stroke-linejoin='round'/%3E%3C/svg%3E") center / 8px 10px no-repeat;
  transition: transform .2s ease, filter .2s ease;
}

.hoshioka-access__more:hover > span,
.hoshioka-access__more:focus-visible > span {
  filter: brightness(1.08);
  transform: translateX(2px);
}

.hoshioka-access__map {
  height: 420px;
  overflow: hidden;
  border-radius: 18px;
  background: #fff;
}

.hoshioka-access__map iframe {
  display: block;
  width: 100%;
  height: 100%;
}

.hoshioka-access__parking {
  row-gap: 0;
  margin-top: 64px;
}

.hoshioka-access__parking-img {
  grid-column: 1;
  grid-row: 1 / 3;
  width: 100%;
  height: 300px;
  border-radius: 20px;
  object-fit: cover;
}

.hoshioka-access__parking-head,
.hoshioka-access__parking-body {
  grid-column: 2;
}

.hoshioka-access__parking-head {
  align-self: end;
}

.hoshioka-access__parking-body {
  align-self: start;
}

.hoshioka-access__pattern,
.hoshioka-access__flower {
  position: absolute;
  z-index: 1;
  pointer-events: none;
}

.hoshioka-access__pattern--stripe { left: 0; top: 82px; width: 300px; opacity: .22; }
.hoshioka-access__pattern--dots { right: 50px; bottom: 18px; width: 320px; opacity: 1; }
.hoshioka-access__flower--right { right: 34px; top: 270px; width: 43px; }
.hoshioka-access__flower--left { left: 58px; bottom: 94px; width: 38px; }

@media (max-width: 1024px) {
  .hoshioka-gallery::before,
  .hoshioka-gallery::after {
    height: 26px;
    background-repeat: no-repeat;
    background-position: bottom left;
    background-size: 100% 26px;
  }
  .hoshioka-gallery::before { top: -10px; height: 36px; }
  .hoshioka-gallery::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='26' viewBox='0 0 240 26' preserveAspectRatio='none'%3E%3Cpath fill='%23f8f6f0' d='M0,0 H240 V22 C220,18 200,18 180,22 C160,26 140,26 120,22 C100,18 80,18 60,22 C40,26 20,26 0,22 Z'/%3E%3C/svg%3E");
  }
  .hoshioka-gallery::after {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='26' viewBox='0 0 240 26' preserveAspectRatio='none'%3E%3Cpath fill='%23f8f6f0' d='M0,22 C20,26 40,26 60,22 C80,18 100,18 120,22 C140,26 160,26 180,22 C200,18 220,18 240,22 V26 H0 Z'/%3E%3C/svg%3E");
  }
  .garden-switcher {
    height: 42px;
    font-size: 14px;
  }
  .garden-switcher__button { padding-inline: 12px; }
  .hoshioka-hero {
    height: 780px;
    min-height: 0;
  }
  .hoshioka-hero__photo img { object-position: 42% center; }
  .hoshioka-hero__titlebox {
    bottom: 115px;
    width: calc(100% - 180px);
  }
  .hoshioka-hero__friend--rabbit { left: 24px; width: 82px; }
  .hoshioka-hero__friend--bear { right: 22px; width: 104px; }
  .hoshioka-hero__friend--pink-flower { left: 7px; width: 42px; }
  .hoshioka-hero__friend--tulip { left: 18%; width: 28px; }
  .hoshioka-hero__friend--yellow-flower { right: 20%; bottom: 335px; width: 34px; }
  .hoshioka-hero__friend--tree-large { right: 4px; width: 55px; }
  .hoshioka-hero__friend--tree-small { right: -8px; width: 42px; }
  .hoshioka-hero__pattern { display: none; }
  .hoshioka-local-nav {
    grid-template-columns: repeat(5, 1fr);
    width: calc(100% - 36px);
    padding-inline: 8px;
  }
  .hoshioka-local-nav a { padding-inline: 8px; font-size: 11px; white-space: normal; text-align: center; }
  .hoshioka-features { padding: 90px 28px 70px; }
  .hoshioka-features__grid { column-gap: 36px; }
  .feature-card__visual { height: 280px; }
  .feature-card__title { font-size: 22px; }
  .feature-card__text { font-size: 14px; }
  .feature-card__more { font-size: 16px; }
  .hoshioka-features__deco,
  .hoshioka-features__pattern { opacity: .55; }
  .hoshioka-gallery__slide { width: 68vw; height: 44vw; flex-basis: 68vw; }
  .hoshioka-gallery__track { gap: 22px; }
  .hoshioka-gallery__arrow--prev { left: 7vw; }
  .hoshioka-gallery__arrow--next { right: 7vw; }
  .hoshioka-gallery__deco,
  .hoshioka-gallery__pattern { opacity: .55; }
  .hoshioka-news {
    min-height: 0;
    padding: 82px 0 78px;
  }
  .hoshioka-news .news__inner {
    grid-template-columns: 260px minmax(0, 1fr);
    column-gap: 36px;
  }
  .hoshioka-news .news__title { font-size: 36px; }
  .hoshioka-news .news__mascot { transform: scale(.85); transform-origin: left top; }
  .hoshioka-life { padding: 40px 0 120px; }
  .hoshioka-life__inner { width: min(760px, calc(100% - 56px)); }
  .hoshioka-life__title { font-size: 34px; }
  .hoshioka-life__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hoshioka-life-card__figure::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    z-index: 2;
    width: 70px;
    height: 136px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 70 136' preserveAspectRatio='none'%3E%3Cpath fill='%23f8f6f0' d='M0 0H70V136C70 127 63 120 54 120H32C23 120 16 113 16 104V16C16 7 9 0 0 0Z'/%3E%3C/svg%3E") top right / 100% 100% no-repeat;
    pointer-events: none;
  }
  .hoshioka-life-card--wide .hoshioka-life-card__figure::after {
    width: 112px;
    height: 170px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 112 170' preserveAspectRatio='none'%3E%3Cpath fill='%23f8f6f0' d='M0 0H112V170C112 161 105 154 96 154H32C23 154 16 147 16 138V16C16 7 9 0 0 0Z'/%3E%3C/svg%3E");
  }
  .hoshioka-life-card--long .hoshioka-life-card__figure::after {
    width: 112px;
    height: 220px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 112 220' preserveAspectRatio='none'%3E%3Cpath fill='%23f8f6f0' d='M0 0H112V220C112 211 105 204 96 204H32C23 204 16 197 16 188V16C16 7 9 0 0 0Z'/%3E%3C/svg%3E");
  }
  .hoshioka-life-card--map .hoshioka-life-card__figure::after {
    width: 112px;
    height: 270px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 112 270' preserveAspectRatio='none'%3E%3Cpath fill='%23f8f6f0' d='M0 0H112V270C112 261 105 254 96 254H32C23 254 16 247 16 238V16C16 7 9 0 0 0Z'/%3E%3C/svg%3E");
  }
  .hoshioka-life-card:nth-child(5) .hoshioka-life-card__figure::after {
    width: 112px;
    height: 140px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 112 140' preserveAspectRatio='none'%3E%3Cpath fill='%23f8f6f0' d='M0 0H112V140C112 131 105 124 96 124H32C23 124 16 117 16 108V16C16 7 9 0 0 0Z'/%3E%3C/svg%3E");
  }
  .hoshioka-life-card__photo,
  .hoshioka-life-card--wide .hoshioka-life-card__photo,
  .hoshioka-life-card--long .hoshioka-life-card__photo {
    border-radius: 22px;
    clip-path: none;
    filter: none;
  }
  .hoshioka-life__mice,
  .hoshioka-life__deco { display: none; }
  .hoshioka-life::after {
    height: 27px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='26' viewBox='0 0 240 26' preserveAspectRatio='none'%3E%3Cpath fill='%23a5c57a' d='M0,22 C20,26 40,26 60,22 C80,18 100,18 120,22 C140,26 160,26 180,22 C200,18 220,18 240,22 V26 H0 Z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: bottom left;
    background-size: 100% 26px;
  }
  .hoshioka-access { padding: 72px 0 86px; }
  .hoshioka-access__inner { width: min(760px, calc(100% - 56px)); }
  .hoshioka-access__header { min-height: 80px; margin-bottom: 42px; }
  .hoshioka-access__title {
    margin: 0;
    font-size: 34px;
    white-space: normal;
    text-align: center;
  }
  .hoshioka-access__train { display: none; }
  .hoshioka-access__content {
    grid-template-columns: 1fr;
    gap: 42px;
  }
  .hoshioka-access__map { height: 440px; }
  .hoshioka-access__parking { margin-top: 52px; }
  .hoshioka-access__pattern { opacity: .14; }
}

@media (max-width: 600px) {
  .garden-switcher {
    height: 38px;
    font-size: 12px;
    letter-spacing: .02em;
  }
  .garden-switcher__button {
    gap: 6px;
    padding-inline: 5px;
    text-align: center;
  }
  .garden-switcher__arrow { width: 13px; height: 13px; flex-basis: 13px; }
  .garden-switcher__arrow::after { left: 5px; top: 3px; }
  .hoshioka-hero {
    height: 690px;
    background: #f7f5ed;
  }
  .hoshioka-hero__photo { bottom: 96px; }
  .hoshioka-hero__photo img { object-position: 45% center; }
  .hoshioka-hero__shade { bottom: 96px; }
  .hoshioka-hero__titlebox {
    bottom: 150px;
    width: calc(100% - 42px);
  }
  .hoshioka-hero__eyebrow {
    margin-bottom: 9px;
    font-size: 11px;
  }
  .hoshioka-hero__eyebrow > span { padding: 7px 14px; }
  .hoshioka-hero__eyebrow::before,
  .hoshioka-hero__eyebrow::after { top: 9px; width: 24px; height: 30px; }
  .hoshioka-hero__eyebrow::before { left: -16px; }
  .hoshioka-hero__eyebrow::after { right: -16px; }
  .hoshioka-hero__title {
    font-size: 34px;
    line-height: 1.35;
    letter-spacing: .04em;
  }
  .hoshioka-hero__lead { margin-top: 7px; font-size: 19px; line-height: 1.6; }
  .hoshioka-hero__description {
    margin: 9px auto 0;
    max-width: 330px;
    font-size: 11px;
    line-height: 1.75;
  }
  .hoshioka-hero__description br { display: none; }
  .hoshioka-hero__friend--rabbit { left: 10px; bottom: 112px; width: 58px; }
  .hoshioka-hero__friend--bear { right: 8px; bottom: 110px; width: 64px; }
  .hoshioka-hero__friend--pink-flower,
  .hoshioka-hero__friend--tulip,
  .hoshioka-hero__friend--yellow-flower,
  .hoshioka-hero__friend--tree-large,
  .hoshioka-hero__friend--tree-small { display: none; }
  .hoshioka-local-nav {
    bottom: 0;
    grid-template-columns: repeat(5, minmax(78px, 1fr));
    width: 100%;
    overflow-x: auto;
    padding: 10px 5px 14px;
    border-radius: 0;
    box-shadow: 0 -5px 20px rgba(61, 76, 44, .08);
  }
  .hoshioka-local-nav a {
    min-height: 66px;
    padding: 5px 8px;
    flex-direction: column;
    font-size: 10px;
    line-height: 1.45;
  }
  .hoshioka-local-nav a::before { margin: 0 0 5px; }
  .hoshioka-features { padding: 72px 20px 55px; }
  .hoshioka-features__header { margin-bottom: 38px; }
  .hoshioka-features__label { margin-bottom: 8px; font-size: 15px; }
  .hoshioka-features__title { font-size: 32px; }
  .hoshioka-features__grid { grid-template-columns: 1fr; row-gap: 52px; }
  .feature-card__visual { height: 230px; margin-bottom: 18px; }
  .feature-card__title { max-width: 96%; font-size: 20px; line-height: 1.55; }
  .feature-card__text { min-height: 0; font-size: 14px; line-height: 1.9; }
  .feature-text-toggle-ready .feature-card__text:not(.is-expanded) {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }
  .feature-text-toggle-ready .feature-card__text-toggle {
    display: flex;
    align-items: center;
    width: fit-content;
    min-height: 36px;
    margin-top: 7px;
    padding: 4px 2px;
    color: #4b9d43;
    font-family: var(--font-round);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .06em;
  }
  .feature-card__text-close { display: none; }
  .feature-card__text-toggle[aria-expanded="true"] .feature-card__text-open { display: none; }
  .feature-card__text-toggle[aria-expanded="true"] .feature-card__text-close { display: inline; }
  .feature-card__more { margin-top: 12px; font-size: 16px; }
  .hoshioka-features__deco,
  .hoshioka-features__pattern { display: none; }
  .hoshioka-gallery { padding: 68px 0 82px; }
  .hoshioka-gallery__header { margin-bottom: 34px; padding: 0 18px; }
  .hoshioka-gallery__label { margin-bottom: 8px; font-size: 15px; }
  .hoshioka-gallery__title { font-size: 29px; }
  .hoshioka-gallery__track { gap: 14px; }
  .hoshioka-gallery__slide { width: 78vw; height: 54vw; flex-basis: 78vw; border-radius: 12px; }
  .hoshioka-gallery__arrow { width: 42px; height: 42px; background-size: 14px 17px; }
  .hoshioka-gallery__arrow--prev { left: 4vw; }
  .hoshioka-gallery__arrow--next { right: 4vw; }
  .hoshioka-gallery__dots { gap: 6px; margin-top: 30px; }
  .hoshioka-gallery__dots button { width: 46px; height: 6px; }
  .hoshioka-gallery__deco,
  .hoshioka-gallery__pattern { display: none; }
  .hoshioka-news { padding: 68px 0 72px; }
  .hoshioka-news .news__inner {
    grid-template-columns: 1fr;
    row-gap: 22px;
    padding: 0 24px;
  }
  .hoshioka-news .news__label { margin-bottom: 8px; font-size: 15px; }
  .hoshioka-news .news__title { font-size: 30px; line-height: 1.55; }
  .hoshioka-news .news__title br { display: none; }
  .hoshioka-news .news__main { padding-top: 0; }
  .hoshioka-news .news__mascot,
  .hoshioka-news__pattern { display: none; }
  .hoshioka-news .news__deco--trees { top: 24px; right: 18px; width: 76px; }
  .hoshioka-news .news__deco--tree2 { top: 58px; right: 76px; width: 58px; }
  .hoshioka-life { padding: 34px 0 96px; }
  .hoshioka-life__inner {
    width: min(351px, calc(100% - 44px));
    max-width: 351px;
  }
  .hoshioka-life__header { margin-bottom: 42px; }
  .hoshioka-life__rainbow { width: 88px; margin-bottom: 10px; }
  .hoshioka-life__title { font-size: 27px; line-height: normal; }
  .hoshioka-life__grid { grid-template-columns: 1fr; row-gap: 44px; }
  .hoshioka-life-card__label { right: 14px; font-size: 27px; }
  .hoshioka-life-card__label small { font-size: 27px; }
  .hoshioka-life-card:nth-child(3) .hoshioka-life-card__label small { font-size: 20px; }
  .hoshioka-life-card__text { margin-top: 14px; font-size: 14px; }
  .hoshioka-life-card:hover { transform: none; }
  .hoshioka-life__pattern { display: none; }
  .hoshioka-life::after { height: 27px; background-size: 100% 26px; }
  .hoshioka-access { min-height: 0; padding: 58px 0 70px; }
  .hoshioka-access__inner { width: calc(100% - 40px); }
  .hoshioka-access__header { min-height: 0; margin-bottom: 34px; }
  .hoshioka-access__title { font-size: 28px; line-height: 1.55; }
  .access-info__row {
    grid-template-columns: 100px minmax(0, 1fr);
    height: 84px;
    min-height: 0;
    padding: 0;
  }
  .access-info__row:last-child { height: auto; min-height: 116px; padding: 16px 0; }
  .access-info dt,
  .access-info dd { font-size: 13px; line-height: 1.8; }
  .access-info__row--tel dd { font-size: 21px; }
  .access-info__row--fax dd { font-size: 17px; }
  .access-info dd br { display: none; }
  .hoshioka-access__more { margin-top: 22px; font-size: 14px; }
  .hoshioka-access__map { height: 330px; border-radius: 14px; }
  .hoshioka-access__parking { margin-top: 40px; }
  .hoshioka-access__parking-img {
    height: auto;
    aspect-ratio: 16 / 9;
    border-radius: 16px;
  }
  .hoshioka-access__pattern,
  .hoshioka-access__flower { display: none; }
}


/* ============================================
   ワイヤーフレーム構成（星岡園トップ 共通パーツ）
============================================= */
.hoshioka-wire-inner,
.hoshioka-overview__inner {
  position: relative;
  z-index: 2;
  width: min(1200px, calc(100% - 80px));
  margin-inline: auto;
}

.hoshioka-section-heading {
  margin-bottom: 48px;
  text-align: center;
  font-family: var(--font-round);
}

.hoshioka-section-heading > p {
  margin-bottom: 10px;
  color: #67bd66;
  font-size: 17px;
  font-weight: 700;
  letter-spacing: .1em;
}

.hoshioka-section-heading h2 {
  margin: 0;
  color: #34483c;
  font-size: 40px;
  font-weight: 700;
  line-height: 1.55;
  letter-spacing: .055em;
}

.hoshioka-local-nav {
  grid-template-columns: repeat(7, auto);
  width: max-content;
  max-width: calc(100% - 80px);
  padding-inline: 24px;
}

/* スクロール時はグローバルナビの下に固定 */
.hoshioka-local-nav {
  position: sticky;
  top: 150px;
  bottom: auto;
  left: auto;
  z-index: 90;
  margin: -70px auto 0;
  transform: none;
  box-shadow: 0 6px 20px rgba(61, 76, 44, .10);
}

.hoshioka-local-nav__title { display: none; }
.hoshioka-local-nav__select-wrap { display: none; }

.hoshioka-local-nav a { padding-inline: 16px; font-size: 15.5px; }

/* スクロール位置に応じた現在地表示（ホバーと同じ見た目で固定） */
.hoshioka-local-nav a.is-active { color: var(--green-dark); }

.hoshioka-local-nav a::before {
  width: 18px;
  height: 18px;
  flex-basis: 18px;
  margin-right: 7px;
}

/* ============================================
   ② 教育の考え方（概要）
============================================= */
.hoshioka-overview {
  position: relative;
  overflow: hidden;
  padding: 60px 0 50px;
  background: #f7f5ed;
}

.hoshioka-overview .hoshioka-section-heading > p { font-size: 22px; }

/* 概要→reason→お知らせ→特色 間の余白を詰める（このページのみ） */
.hoshioka-page .reason { padding-top: 40px; padding-bottom: 48px; }
.hoshioka-page .hoshioka-news { min-height: 0; padding-top: 56px; padding-bottom: 20px; }
.hoshioka-page .hoshioka-features { padding-top: 28px; }

.hoshioka-overview__deco { position: absolute; pointer-events: none; }
.hoshioka-overview__deco--bird { left: max(35px, calc(50% - 690px)); top: 82px; width: 140px; }
.hoshioka-overview__deco--cat { right: max(35px, calc(50% - 690px)); top: 185px; width: 105px; }
.hoshioka-overview__deco--grass { right: max(35px, calc(50% - 690px)); bottom: 75px; width: 48px; }

.hoshioka-overview__pattern {
  position: absolute;
  z-index: 1;
  left: -40px;
  bottom: 300px;
  width: 340px;
  pointer-events: none;
}

.hoshioka-overview__box {
  padding: 42px;
  border-radius: 28px;
  background: #fff;
}

.hoshioka-overview__content {
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  gap: 48px;
  align-items: center;
}

.hoshioka-overview__content > img {
  width: 100%;
  height: 330px;
  border-radius: 20px;
  object-fit: cover;
}

.hoshioka-overview__box p {
  margin: 0;
  color: #3f4b42;
  font-family: var(--font-round);
  font-size: 16px;
  font-weight: 500;
  line-height: 2.05;
}

.hoshioka-overview__more { margin-top: 28px; text-align: center; overflow-anchor: none; }

.hoshioka-overview__more-toggle {
  display: inline-flex;
  align-items: center;
  min-height: 46px;
  padding: 0 28px;
  border: 2px solid #6dbf55;
  border-radius: 24px;
  color: #4b9d43;
  font-family: var(--font-round);
  font-size: 16px;
  font-weight: 700;
  background: #fff;
  cursor: pointer;
  list-style: none;
  touch-action: manipulation;
  transition: background-color .2s ease, color .2s ease;
}

@media (hover: hover) and (pointer: fine) {
  .hoshioka-overview__more-toggle:hover { background-color: rgba(105, 194, 111, .12); }
}

.hoshioka-overview__more.is-open .hoshioka-overview__more-toggle { background-color: #6dbf55; color: #fff; }

.hoshioka-overview__more-close { display: none; }
.hoshioka-overview__more.is-open .hoshioka-overview__more-open { display: none; }
.hoshioka-overview__more.is-open .hoshioka-overview__more-close { display: inline; }

.hoshioka-overview__more-body { margin-top: 24px; text-align: left; }
.hoshioka-overview__more-body p { margin-top: 16px; }
.hoshioka-overview__more-body p:first-child { margin-top: 0; }

.hoshioka-overview__list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 16px 0 4px;
  padding: 0;
  list-style: none;
}

.hoshioka-overview__list li {
  padding: 8px 20px;
  border-radius: 22px;
  background: #eef6df;
  color: #3e7538;
  font-family: var(--font-round);
  font-size: 15px;
  font-weight: 700;
}

/* ============================================
   ⑤ 愛媛星岡幼稚園の特色
============================================= */
.hoshioka-features__lead {
  max-width: 900px;
  margin: -18px auto 46px;
  text-align: center;
  color: #3f4b42;
  font-family: var(--font-round);
  font-size: 16.5px;
  font-weight: 500;
  line-height: 2.05;
}

/* 特色カードはリンクではないため、ホバーで動かさない */
@media (hover: hover) and (pointer: fine) {
  .hoshioka-page .feature-card:hover { transform: none; }
}

.feature-card__title small {
  font-size: .72em;
  font-weight: 700;
}

.feature-card__tag {
  display: inline-block;
  margin-top: 12px;
  padding: 6px 16px;
  border-radius: 16px;
  background: #fdf3d7;
  color: #9a7c2c;
  font-family: var(--font-round);
  font-size: 13.5px;
  font-weight: 700;
  line-height: 1.6;
}

.hoshioka-features__only {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: 30px;
  padding: 26px 34px;
  border: 2px solid #ecd48d;
  border-radius: 22px;
  background: #fdf3d7;
}

.hoshioka-features__only p {
  flex: 1;
  min-width: 260px;
  margin: 0;
  color: #3f4b42;
  font-family: var(--font-round);
  font-size: 15.5px;
  font-weight: 500;
  line-height: 1.95;
}

.hoshioka-features__only b { color: #9a7c2c; }

.hoshioka-features__only a {
  padding: 13px 28px;
  border-radius: 26px;
  background: #71c34d;
  color: #fff;
  font-family: var(--font-round);
  font-size: 15px;
  font-weight: 700;
  white-space: nowrap;
  transition: filter .2s ease;
}

.hoshioka-features__only a:hover { filter: brightness(1.06); }

/* ============================================
   ④ 1日の流れ・年間行事
============================================= */
.hoshioka-section-wave {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 26px;
}

.hoshioka-day {
  position: relative;
  overflow: hidden;
  padding: 110px 0;
  background: #f1eadb;
}

.hoshioka-day__pattern,
.hoshioka-day__deco {
  position: absolute;
  z-index: 0;
  pointer-events: none;
}

.hoshioka-day__pattern--left { left: -30px; top: 430px; width: 260px; opacity: .45; }
.hoshioka-day__pattern--right { right: -24px; bottom: 640px; width: 360px; opacity: .9; }
.hoshioka-day__pattern--bottomleft { left: -26px; bottom: 70px; width: 300px; }
.hoshioka-day__deco--hippo { left: max(34px, calc(50% - 680px)); top: 195px; width: 92px; }
.hoshioka-page:not(.sanbancho-page) .hoshioka-day__deco--hippo {
  left: max(79px, calc(50% - 635px));
  top: 155px;
}
.hoshioka-day__deco--lion { right: max(130px, calc(50% - 590px)); top: 120px; width: 200px; }

/* 愛媛幼稚園：1日の流れ右上のキリンを控えめに配置 */
.sanbancho-page .hoshioka-day__deco--lion {
  right: max(65px, calc(50% - 690px));
  top: 88px;
  width: 150px;
}

.hoshioka-day__heading { position: relative; }

.hoshioka-day__leaf {
  position: absolute;
  left: calc(50% - 305px);
  bottom: 0;
  width: 62px;
  pointer-events: none;
}

.hoshioka-day__subheading {
  width: fit-content;
  margin: 0 auto 14px;
  text-align: center;
  color: #34483c;
  font-family: var(--font-round);
  font-size: 30px;
  font-weight: 700;
  letter-spacing: .08em;
}

.hoshioka-day__subheading::after {
  content: "";
  display: block;
  width: 100%;
  margin: 8px 0 0;
  border-bottom: 3px dotted #d3caaf;
}

.hoshioka-day__subheading--second { margin-top: 76px; }

.hoshioka-day__lead {
  max-width: 860px;
  margin: 0 auto 36px;
  text-align: center;
  color: #3f4b42;
  font-family: var(--font-round);
  font-size: 16px;
  font-weight: 500;
  line-height: 2;
}

.hoshioka-day__timeline {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 44px 18px;
}

.hoshioka-day__timeline article {
  position: relative;
  display: flex;
  flex-direction: column;
  border-radius: 18px;
  background: #fff;
  font-family: var(--font-round);
}

.hoshioka-day__timeline article > img {
  width: 100%;
  height: 160px;
  border-radius: 18px 18px 0 0;
  object-fit: cover;
}

.hoshioka-day__cardbody { padding: 18px 20px 24px; }

/* 流れをつなぐ矢印 */
.hoshioka-day__timeline article:not(:last-child)::after {
  content: "";
  position: absolute;
  z-index: 3;
  top: 50%;
  right: -23px;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #69c26f url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='10' viewBox='0 0 8 10'%3E%3Cpath d='M2 1.5v7L6.5 5Z' fill='%23fff' stroke='%23fff' stroke-width='1.5' stroke-linejoin='round'/%3E%3C/svg%3E") center / 9px 11px no-repeat;
  box-shadow: 0 2px 6px rgba(62, 72, 47, .18);
  transform: translateY(-50%);
}

.hoshioka-day__timeline article:nth-child(4)::after {
  display: none;
}

/* 2段目も掲載順どおり、左から右へ進む */

.hoshioka-day__timeline time {
  color: #67bd66;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: .03em;
}

.hoshioka-day__timeline h4 {
  margin: 8px 0 6px;
  color: #34483c;
  font-size: 17.5px;
  font-weight: 700;
  line-height: 1.5;
}

.hoshioka-day__timeline p {
  margin: 0;
  color: #667068;
  font-size: 13.5px;
  font-weight: 500;
  line-height: 1.85;
}

.hoshioka-seasons {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  width: 100%;
  align-items: stretch;
}

.hoshioka-seasons__item {
  min-width: 0;
  overflow: hidden;
  border: 1px solid transparent;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 8px 22px rgba(78, 83, 63, .08);
  font-family: var(--font-round);
}

.hoshioka-seasons__item strong {
  display: block;
  padding: 13px;
  text-align: center;
  font-size: 22px;
  font-weight: 700;
  letter-spacing: .25em;
  text-indent: .25em;
}

.hoshioka-seasons__item--first {
  border-color: #efcbd8;
  background: #fff8fa;
}
.hoshioka-seasons__item--second {
  border-color: #c5e3ee;
  background: #f6fbfd;
}
.hoshioka-seasons__item--third {
  border-color: #f0dab1;
  background: #fffaf1;
}

.hoshioka-seasons__item--first strong { background: #f8dce6; color: #b85f7d; }
.hoshioka-seasons__item--second strong { background: #d8eef6; color: #3f8aa6; }
.hoshioka-seasons__item--third strong { background: #fae9c9; color: #aa7629; }

.hoshioka-seasons__item--first li::before { background: #d985a1; }
.hoshioka-seasons__item--second li::before { background: #69aec5; }
.hoshioka-seasons__item--third li::before { background: #d6a653; }

.hoshioka-seasons__item ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 14px;
  margin: 0;
  padding: 18px 24px 22px;
  list-style: none;
}

.hoshioka-seasons__item li {
  position: relative;
  min-width: 0;
  padding: 4px 0 4px 17px;
  color: #3f4b42;
  font-size: 14.5px;
  font-weight: 500;
  line-height: 1.8;
}

.hoshioka-seasons__item li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 14px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #8ecb7a;
}

.hoshioka-seasons__item b { color: #34483c; font-weight: 700; }

/* ============================================
   ⑤ 園内マップ・施設のご紹介
============================================= */
.hoshioka-facilities {
  position: relative;
  padding: 110px 0;
  background: #f8f6f0;
}

.hoshioka-facilities .hoshioka-section-heading { margin-bottom: 0; }

/* ページ内メニューは対象セクションへ即時移動する */
html { scroll-behavior: auto; }

#news,
#features,
#day,
#map,
#life,
#entry,
#access,
#park,
#bus {
  scroll-margin-top: 215px;
}

/* 園別ページ：説明本文を一回り大きくする */
.hoshioka-overview__box p,
.hoshioka-features__lead,
.feature-card__text,
.hoshioka-day__lead,
.hoshioka-life-card__text,
.hoshioka-facilities__map p,
.hoshioka-transport__block p:not(.hoshioka-transport__label):not(.hoshioka-bus-cap),
.hoshioka-access__details dd {
  font-size: 16.5px;
}

@media (max-width: 600px) {
  .hoshioka-overview__box p,
  .hoshioka-features__lead,
  .feature-card__text,
  .hoshioka-features__only p,
  .hoshioka-day__lead,
  .hoshioka-life-card__text,
  .hoshioka-facilities__map p,
  .hoshioka-transport__block p:not(.hoshioka-transport__label):not(.hoshioka-bus-cap),
  .hoshioka-transport__point,
  .hoshioka-bus-info dd,
  .hoshioka-access__details dd {
    font-size: var(--font-body-mobile);
  }
}

@media (max-width: 600px) {
  #news,
  #features,
  #day,
  #map,
  #life,
  #entry,
  #access,
  #park,
  #bus {
    scroll-margin-top: 180px;
  }
}

.hoshioka-facilities .hoshioka-section-heading { margin-bottom: 12px; }

.hoshioka-facilities__illust {
  margin: -25px 0 35px;
}

.hoshioka-facilities__illust img,
.hoshioka-facilities__illust > svg {
  display: block;
  width: 100%;
  height: auto;
}

.hoshioka-facilities__illust > svg {
  text-rendering: geometricPrecision;
  shape-rendering: geometricPrecision;
}

.hoshioka-page:not(.sanbancho-page) .hoshioka-facilities__illust {
  position: relative;
  z-index: 3;
  margin-top: -75px;
}

.hoshioka-facilities__illust--sanbancho {
  position: relative;
  z-index: 3;
  max-width: 920px;
  margin-top: -115px;
  margin-inline: auto;
}

.hoshioka-facilities__map {
  display: grid;
  grid-template-columns: 1.35fr 1fr;
  overflow: hidden;
  border-radius: 26px;
  background: #fff;
}

.hoshioka-facilities__map img {
  width: 100%;
  height: 390px;
  object-fit: cover;
}

.hoshioka-facilities__map p {
  display: flex;
  align-items: center;
  margin: 0;
  padding: 45px;
  color: #4d5a51;
  font-family: var(--font-round);
  font-size: 17px;
  font-weight: 500;
  line-height: 2;
}

.hoshioka-facilities__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 35px;
}

.hoshioka-facilities__grid article {
  overflow: hidden;
  border-radius: 20px;
  background: #fff;
}

.hoshioka-facilities__grid img {
  width: 100%;
  height: 190px;
  object-fit: cover;
}

.hoshioka-facilities__grid h3 {
  margin: 20px 24px 8px;
  color: #34483c;
  font-family: var(--font-round);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.5;
}

.hoshioka-facilities__grid p {
  margin: 0;
  padding: 0 24px 24px;
  color: #667068;
  font-family: var(--font-round);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.9;
}

/* ============================================
   ⑨⑩ 駐車場のご案内・スクールバスコース
============================================= */
.hoshioka-transport {
  position: relative;
  padding: 100px 0;
  background: #9fd274;
}

.hoshioka-transport__block {
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  gap: 50px;
  align-items: center;
  margin-bottom: 40px;
  padding: 45px;
  border-radius: 26px;
  background: rgba(255, 255, 255, .95);
}

.hoshioka-transport__block:last-child { margin-bottom: 0; }

.hoshioka-transport__block h2 {
  margin: 5px 0 18px;
  color: #34483c;
  font-family: var(--font-round);
  font-size: 32px;
  font-weight: 700;
  letter-spacing: .06em;
}

.hoshioka-transport__block p {
  margin: 0;
  color: #3f4b42;
  font-family: var(--font-round);
  font-size: 16px;
  font-weight: 500;
  line-height: 2;
}

.hoshioka-transport__block p.hoshioka-transport__label {
  color: #67bd66;
  font-family: var(--font-round);
  font-weight: 700;
  letter-spacing: .1em;
}

.hoshioka-transport__block > img {
  width: 100%;
  height: 300px;
  border-radius: 20px;
  object-fit: cover;
}

.hoshioka-transport__point {
  margin-top: 20px;
  padding: 18px 22px;
  border-radius: 16px;
  background: #f4f8ea;
  color: #3f4b42;
  font-family: var(--font-round);
  font-size: 14.5px;
  font-weight: 500;
  line-height: 1.9;
}

.hoshioka-transport__point b {
  display: block;
  margin-bottom: 4px;
  color: #34483c;
  font-size: 15px;
}

.hoshioka-transport__block--bus { display: block; }

img.hoshioka-transport__busimg {
  width: 100%;
  height: auto;
  margin: 26px 0 4px;
  border-radius: 20px;
  object-fit: contain;
}

.hoshioka-bus-info {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin: 26px 0 0;
}

.hoshioka-bus-info > div {
  display: flex;
  align-items: flex-start;
  gap: 16px;
}

.hoshioka-bus-info dt {
  flex: 0 0 100px;
  margin-top: 3px;
  padding: 5px 0;
  border-radius: 14px;
  background: #eef6df;
  color: #4d7545;
  text-align: center;
  font-family: var(--font-round);
  font-size: 13px;
  font-weight: 700;
}

.hoshioka-bus-info dd {
  margin: 0;
  color: #3f4b42;
  font-family: var(--font-round);
  font-size: 15px;
  font-weight: 500;
  line-height: 1.95;
}

.hoshioka-area-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.hoshioka-area-tags span {
  padding: 5px 12px;
  border-radius: 14px;
  background: #eef6df;
  color: #4d7545;
  font-family: var(--font-round);
  font-size: 12.5px;
  font-weight: 700;
}

.hoshioka-bus-more { margin-top: 26px; }

.hoshioka-bus-more summary {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 26px;
  border: 2px solid #6dbf55;
  border-radius: 24px;
  color: #4b9d43;
  font-family: var(--font-round);
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  list-style: none;
  transition: background-color .2s ease, color .2s ease;
}

.hoshioka-bus-more summary::-webkit-details-marker { display: none; }
.hoshioka-bus-more summary:hover { background-color: rgba(105, 194, 111, .12); }
.hoshioka-bus-more[open] summary { background-color: #6dbf55; color: #fff; }

.hoshioka-bus-more__close { display: none; }
.hoshioka-bus-more[open] .hoshioka-bus-more__open { display: none; }
.hoshioka-bus-more[open] .hoshioka-bus-more__close { display: inline; }

.hoshioka-bus-more__body {
  margin-top: 18px;
  padding: 26px 30px;
  border-radius: 18px;
  background: #f4f8ea;
  color: #3f4b42;
  font-family: var(--font-round);
}

.hoshioka-bus-more__body p {
  margin: 0 0 12px;
  font-size: 14.5px;
  line-height: 2;
}

.hoshioka-bus-more__body p:last-child { margin-bottom: 0; }

.hoshioka-bus-more__body h4 {
  margin: 18px 0 8px;
  color: #34483c;
  font-size: 16px;
  font-weight: 700;
}

.hoshioka-bus-more__body ul {
  margin: 0 0 6px;
  padding: 0;
  list-style: none;
}

.hoshioka-bus-more__body li {
  position: relative;
  padding: 3px 0 3px 24px;
  font-size: 14.5px;
  font-weight: 500;
  line-height: 1.9;
}

.hoshioka-bus-more__body li::before {
  content: "✓";
  position: absolute;
  left: 2px;
  color: #69c26f;
  font-weight: 700;
}

.hoshioka-transport__block p.hoshioka-bus-cap {
  margin: 15px 0 0;
  color: #5c6b5e;
  font-family: var(--font-round);
  font-size: 13px;
  font-weight: 500;
  line-height: 1.8;
}

/* ============================================
   ⑪ 見学CTA・入園説明会 固定バナー
============================================= */
.hoshioka-visit-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 35px;
  padding: 72px 30px;
  background: #f1eadb;
  font-family: var(--font-round);
}

.hoshioka-visit-cta img { width: 85px; }

.hoshioka-visit-cta p {
  margin: 0;
  color: #34483c;
  font-size: 22px;
  font-weight: 700;
}

.hoshioka-visit-cta a {
  padding: 18px 30px;
  border-radius: 30px;
  background: #71c34d;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  transition: filter .2s ease;
}

.hoshioka-visit-cta a:hover { filter: brightness(1.06); }

.hoshioka-fixed-banner {
  position: fixed;
  z-index: 150;
  right: 22px;
  bottom: 22px;
  display: flex;
  width: 250px;
  flex-direction: column;
  gap: 9px;
  padding: 20px;
  border: 2px solid #d8c17a;
  border-radius: 18px;
  background: #fffdf5;
  box-shadow: 0 10px 30px rgba(62, 72, 47, .2);
  font-family: var(--font-round);
}

.hoshioka-fixed-banner button {
  position: absolute;
  top: 8px;
  right: 10px;
  color: #8a8a7b;
  font-size: 18px;
}

.hoshioka-fixed-banner > span {
  width: max-content;
  padding: 4px 11px;
  border-radius: 12px;
  background: #d0ae52;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
}

.hoshioka-fixed-banner strong {
  color: #34483c;
  font-size: 17px;
  line-height: 1.55;
}

.hoshioka-fixed-banner a {
  padding: 10px;
  border-radius: 20px;
  background: #71c34d;
  color: #fff;
  text-align: center;
  font-size: 14px;
  font-weight: 700;
}

.hoshioka-fixed-banner[hidden] { display: none; }

/* ============================================
   レスポンシブ（ワイヤーフレーム構成分）
============================================= */
@media (max-width: 1024px) {
  .hoshioka-local-nav {
    grid-template-columns: repeat(7, minmax(100px, 1fr));
    width: 100%;
    overflow-x: auto;
    border-radius: 0;
    top: 130px;
  }
  .hoshioka-overview__content { grid-template-columns: 1fr; gap: 28px; }
  .hoshioka-overview__content > img { height: 280px; }
  .hoshioka-day__timeline { grid-template-columns: repeat(2, 1fr); }
  /* 2列でも各段を左から右へ進む */
  .hoshioka-day__timeline article:not(:last-child)::after {
    top: 50%;
    right: -23px;
    bottom: auto;
    left: auto;
    transform: translateY(-50%);
  }
  .hoshioka-day__timeline article:nth-child(2)::after,
  .hoshioka-day__timeline article:nth-child(4)::after,
  .hoshioka-day__timeline article:nth-child(6)::after {
    display: none;
  }
  .hoshioka-day__pattern { opacity: .55; }
  .hoshioka-seasons { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .hoshioka-facilities__map { grid-template-columns: 1fr; }
  .hoshioka-facilities__map img { height: 300px; }
  .hoshioka-facilities__map p { padding: 30px; }
  .hoshioka-facilities__grid { grid-template-columns: repeat(2, 1fr); }
  .hoshioka-transport__block { grid-template-columns: 1fr; gap: 30px; }
  .hoshioka-access__parking { row-gap: 0; }
  .hoshioka-access__parking-head,
  .hoshioka-access__parking-body,
  .hoshioka-access__parking-img { grid-column: 1; }
  .hoshioka-access__parking-head { grid-row: 1; }
  .hoshioka-access__parking-img { grid-row: 2; margin-bottom: 24px; }
  .hoshioka-access__parking-body { grid-row: 3; }
}

@media (max-width: 640px) {
  .hoshioka-local-nav {
    position: static;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    max-width: none;
    min-height: 0;
    margin: 0;
    padding: 34px 20px 40px;
    overflow: visible;
    border-radius: 0;
    box-shadow: none;
  }
  .hoshioka-local-nav__title { display: block; grid-column: 1 / -1; margin: 0 0 8px; color: #31483a; font-family: var(--font-round); font-size: 21px; font-weight: 700; text-align: center; }
  .hoshioka-local-nav a { justify-content: flex-start; min-height: 48px; padding: 8px 12px; flex-direction: row; border-radius: 8px; background: #f7f5ed; font-size: 12px; line-height: 1.45; white-space: normal; text-align: left; }
  .hoshioka-local-nav a::before { width: 18px; height: 18px; flex-basis: 18px; margin: 0 7px 0 0; }
  .hoshioka-page:not(.sanbancho-page) .hoshioka-facilities__illust { margin-top: -45px; }
  .hoshioka-facilities__illust--sanbancho { margin-top: -65px; }
  .hoshioka-wire-inner,
  .hoshioka-overview__inner { width: calc(100% - 36px); }
  .hoshioka-section-heading h2 { font-size: 27px; }
  .hoshioka-overview,
  .hoshioka-day,
  .hoshioka-facilities,
  .hoshioka-transport { padding-block: 72px; }
  .hoshioka-overview__pattern { display: none; }
  .hoshioka-overview__box { padding: 22px 20px; }
  .hoshioka-overview__content > img { height: 220px; }
  .hoshioka-overview__box p { font-size: 14.5px; }
  .hoshioka-features__lead { font-size: 14.5px; }
  .hoshioka-features__only { padding: 20px 20px; }
  .hoshioka-day__subheading { font-size: 24px; }
  .hoshioka-day__subheading--second { margin-top: 56px; }
  .hoshioka-day__lead { font-size: 14.5px; }
  .hoshioka-day__timeline,
  .hoshioka-seasons,
  .hoshioka-facilities__grid { grid-template-columns: 1fr; }
  .hoshioka-day__timeline article { grid-area: auto !important; }
  .hoshioka-day__timeline article:not(:last-child)::after {
    display: block;
    top: auto !important;
    right: auto !important;
    bottom: -36px !important;
    left: 50% !important;
    transform: translateX(-50%) rotate(90deg) !important;
  }
  .hoshioka-day__pattern,
  .hoshioka-day__deco,
  .hoshioka-day__leaf { display: none; }
  .hoshioka-facilities__map img { height: 230px; }
  .hoshioka-facilities__map p { padding: 22px 20px; font-size: 15px; }
  .hoshioka-transport__block { padding: 24px 20px; }
  .hoshioka-transport__block h2 { font-size: 25px; }
  .hoshioka-transport__block > img { height: 210px; }
  .hoshioka-transport__block > img.hoshioka-transport__busimg { height: auto; }
  .hoshioka-access__parking-img {
    height: clamp(138px, calc((100vw - 76px) * .5625), 180px);
    aspect-ratio: 16 / 9;
    border-radius: 16px;
  }
  .hoshioka-bus-info > div { flex-direction: column; gap: 8px; }
  .hoshioka-bus-info dt { flex-basis: auto; width: 100px; }
  .hoshioka-visit-cta { flex-direction: column; gap: 22px; text-align: center; }
  .hoshioka-visit-cta p { font-size: 18px; }
  .hoshioka-fixed-banner { right: 12px; bottom: 12px; width: 220px; }
}

/* アクセス表：行数変更に伴う調整（最終行の特殊スタイルを解除） */
.hoshioka-access .access-info__row:last-child {
  height: 98px;
  min-height: 0;
  padding: 0;
}

@media (max-width: 600px) {
  .hoshioka-access .access-info__row:last-child {
    height: 84px;
    min-height: 0;
    padding: 0;
  }
}

/* Features 見出し・ラベルのアクセントをイエロー寄りに */
.sanbancho-page .hoshioka-features__label,
.sanbancho-page .hoshioka-overview .hoshioka-section-heading > p { color: #d2a521; }

/* 「★ 愛媛幼稚園ならでは」ハイライトボックス（イエロー基調） */
.sanbancho-page .hoshioka-features__only { border-color: #e6cd7a; background: #fdf3d0; }
.sanbancho-page .hoshioka-features__only b { color: #8a6a14; }

/* Features カードの見出しアクセント（em）をイエロー寄りに */
.sanbancho-page .feature-card__title em { color: #cf9f1f; }
.sanbancho-page .feature-card__tag { background: #fdf0cd; color: #8a6a14; }

/* 愛媛幼稚園ページ：お知らせ見出しを2行に収める */
.sanbancho-page .hoshioka-news .news__title { font-size: 39px; letter-spacing: .04em; }

/* 愛媛幼稚園ページ：ヒーローの園名帯 */
.sanbancho-page .hoshioka-hero__eyebrow > span {
  background: #f1e288;
  color: #3b4039;
}
.sanbancho-page .hoshioka-hero__eyebrow::before,
.sanbancho-page .hoshioka-hero__eyebrow::after {
  background-color: transparent;
  background-position: center;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  -webkit-clip-path: none;
  clip-path: none;
}
.sanbancho-page .hoshioka-hero__eyebrow::before { background-image: url("../images/common/obi_parts3_left.png"); }
.sanbancho-page .hoshioka-hero__eyebrow::after { background-image: url("../images/common/obi_parts3_right.png"); }

/* 愛媛幼稚園ページ：About右下のリーフを反転（反対向き） */
.sanbancho-page .hoshioka-overview__deco--grass { transform: scaleX(-1); }

/* 愛媛幼稚園ページ：園の特色右下のリス */
.sanbancho-page .hoshioka-features__deco--lion {
  right: max(-16px, calc(50% - 740px));
  width: 90px;
}

/* 愛媛幼稚園ページ：サブナビ背面を About と同色に統一 */
.sanbancho-page .hoshioka-hero { background: #f7f5ed; }

/* 愛媛幼稚園ページ：送迎支援制度ブロック（写真なし） */
.sanbancho-page .hoshioka-access__parking {
  display: block;
  padding: 45px;
}
.sanbancho-page .hoshioka-access__parking > div {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr);
  column-gap: 56px;
  align-items: center;
}
.sanbancho-page .hoshioka-access__parking > div > .hoshioka-transport__label,
.sanbancho-page .hoshioka-access__parking > div > h2,
.sanbancho-page .hoshioka-access__parking > div > p:not(.hoshioka-transport__label) { grid-column: 1; }
.sanbancho-page .hoshioka-transport__support-label {
  display: inline-block;
  margin-top: 10px;
  padding: 5px 14px 6px;
  border-radius: 14px;
  background: #ffeb78;
  font-size: .82em;
  line-height: 1.45;
}
.sanbancho-page .hoshioka-access__parking .hoshioka-transport__point {
  grid-column: 2;
  grid-row: 1 / 4;
  margin-top: 0;
}
.sanbancho-page .hoshioka-access__parking-more {
  width: 100%;
  margin: 28px 0 0;
}

@media (max-width: 1024px) {
  .sanbancho-page .hoshioka-access__parking > div { display: block; }
  .sanbancho-page .hoshioka-access__parking .hoshioka-transport__point { margin-top: 20px; }
}

@media (max-width: 640px) {
  .sanbancho-page .hoshioka-access__parking { padding: 24px 20px; }
}

/* 園別ページ：説明本文の最終サイズ指定 */
.hoshioka-overview__box p,
.hoshioka-features__lead,
.feature-card__text,
.hoshioka-day__lead,
.hoshioka-life-card__text,
.hoshioka-facilities__map p,
.hoshioka-transport__block p:not(.hoshioka-transport__label):not(.hoshioka-bus-cap),
.hoshioka-access__details dd { font-size: 16.5px; }

@media (max-width: 600px) {
  .hoshioka-overview__box p,
  .hoshioka-features__lead,
  .feature-card__text,
  .hoshioka-features__only p,
  .hoshioka-day__lead,
  .hoshioka-life-card__text,
  .hoshioka-facilities__map p,
  .hoshioka-transport__block p:not(.hoshioka-transport__label):not(.hoshioka-bus-cap),
  .hoshioka-transport__point,
  .hoshioka-bus-info dd,
  .hoshioka-access__details dd { font-size: var(--font-body-mobile); }
}

/* 園別ページ：アクセス欄の電話番号を強調 */
.hoshioka-page:not(.sanbancho-page) .access-info__row--tel dd,
.hoshioka-page:not(.sanbancho-page) .access-info__row--tel a,
.sanbancho-page .access-info__row--tel dd,
.sanbancho-page .access-info__row--tel a {
  color: #fff3a6;
  font-size: 31px;
  font-weight: 900;
}

@media (max-width: 600px) {
  .hoshioka-page:not(.sanbancho-page) .access-info__row--tel dd,
  .hoshioka-page:not(.sanbancho-page) .access-info__row--tel a,
  .sanbancho-page .access-info__row--tel dd,
  .sanbancho-page .access-info__row--tel a {
    font-size: 25px;
  }
}

/* 愛媛幼稚園ページ：園での生活・左上のリスを控えめな大きさに調整 */
.sanbancho-page .life__mice { width: 88px; }
.sanbancho-page .life__onpu--card-right {
  position: absolute;
  z-index: 3;
  top: 310px;
  right: -16px;
  width: 40px;
  pointer-events: none;
}

@media (max-width: 1024px) {
  .sanbancho-page .life__mice { width: 80px; }
  .sanbancho-page .life__onpu--card-right { right: 0; width: 34px; }
}

@media (max-width: 600px) {
  .sanbancho-page .life__mice { width: 72px; }
  .sanbancho-page .life__onpu--card-right { display: none; }
}

/* 園別ページ：Aboutのメインキャッチを少し控えめに */
.hoshioka-page .hoshioka-overview .hoshioka-section-heading h2 {
  font-size: 36px;
}

@media (max-width: 1024px) {
  .hoshioka-page .hoshioka-overview .hoshioka-section-heading h2 {
    font-size: 32px;
  }
}

@media (max-width: 600px) {
  .hoshioka-page .hoshioka-overview .hoshioka-section-heading h2 {
    max-width: 350px;
    margin-inline: auto;
    font-size: 20px;
    line-height: 1.8;
    letter-spacing: .035em;
  }

  .hoshioka-page .hoshioka-overview .hoshioka-section-heading h2 br {
    display: none;
  }

  .hoshioka-overview .hoshioka-section-heading {
    position: relative;
    z-index: 2;
    padding-top: 46px;
  }

  .hoshioka-overview__deco--bird {
    z-index: 3;
    top: 54px;
    left: 22px;
    width: 58px;
  }

  .hoshioka-overview__deco--cat {
    z-index: 3;
    top: 55px;
    right: 24px;
    width: 50px;
  }

  .hoshioka-overview__deco--grass {
    display: none;
  }
}

/* 両園共通：園内マップから園での生活までの余白を短くする */
.hoshioka-facilities { padding-bottom: 55px; }

/* 両園共通：1日の流れ・年間行事セクション下部の余白も短くする */
.hoshioka-day { padding-bottom: 55px; }

/* 両園共通：入園について・アクセスセクション下部の余白も短くする */
.hoshioka-page .admission,
.hoshioka-access { padding-bottom: 55px; }

/* 両園共通：園での生活は次セクションへさらに近づける */
.hoshioka-page .life { padding-bottom: 30px; }

@media (max-width: 600px) {
  .hoshioka-facilities,
  .hoshioka-day,
  .hoshioka-page .admission,
  .hoshioka-access { padding-bottom: 45px; }

  .hoshioka-page .life { padding-bottom: 25px; }
}

@media (max-width: 680px) {
  .feature-card__more > span,
  .hoshioka-access__more > span {
    width: 18px;
    height: 18px;
    flex-basis: 18px;
    background-size: 6px 8px;
  }
}

/* スマホ：FV下の余白・目次・セクション波形を共通リズムに統一 */
@media (max-width: 640px) {
  .hoshioka-hero {
    height: 450px;
  }

  .hoshioka-hero__photo,
  .hoshioka-hero__shade {
    bottom: 0;
  }

  .hoshioka-hero::after {
    content: "";
    position: absolute;
    z-index: 7;
    right: 0;
    bottom: -1px;
    left: 0;
    height: 26px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='26' viewBox='0 0 240 26' preserveAspectRatio='none'%3E%3Cpath fill='%23f7f5ed' d='M0,22 C20,26 40,26 60,22 C80,18 100,18 120,22 C140,26 160,26 180,22 C200,18 220,18 240,22 V26 H0 Z'/%3E%3C/svg%3E") bottom left / 100% 26px no-repeat;
    pointer-events: none;
  }

  .hoshioka-hero__titlebox {
    bottom: 54px;
  }

  .hoshioka-hero__friend--rabbit {
    bottom: 16px;
  }

  .hoshioka-hero__friend--bear {
    bottom: 14px;
  }

  .hoshioka-local-nav {
    position: sticky;
    top: 130px;
    z-index: 90;
    display: block;
    height: auto;
    min-height: 0;
    padding: 20px 16px 7px;
    background: #f7f5ed;
    box-shadow: none;
  }

  .hoshioka-local-nav::after {
    display: none;
  }

  .hoshioka-local-nav__title,
  .hoshioka-local-nav > a {
    display: none;
  }

  .hoshioka-local-nav__select-wrap {
    position: relative;
    z-index: 2;
    display: block;
    width: 100%;
  }

  .hoshioka-local-nav__select-wrap::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 20px;
    z-index: 2;
    width: 7px;
    height: 7px;
    border-right: 2px solid #fff;
    border-bottom: 2px solid #fff;
    transform: translateY(-70%) rotate(45deg);
    pointer-events: none;
  }

  .hoshioka-local-nav__select-wrap::before {
    content: "";
    position: absolute;
    top: 50%;
    right: 10px;
    z-index: 1;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #70bf45;
    transform: translateY(-50%);
    pointer-events: none;
  }

  .hoshioka-local-nav__select {
    width: 100%;
    height: 48px;
    padding: 0 52px 0 18px;
    border: 2px solid #70bf45;
    border-radius: 10px;
    outline: 0;
    appearance: none;
    -webkit-appearance: none;
    background: #fff;
    color: #34413a;
    font-family: var(--font-round);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .04em;
  }

  .hoshioka-overview {
    padding-top: 18px;
  }

  .hoshioka-page section[id] {
    scroll-margin-top: 170px;
  }

  .hoshioka-section-wave {
    height: 26px;
    background-repeat: no-repeat;
    background-position: top left;
    background-size: 100% 26px;
  }

  .hoshioka-section-wave path {
    display: none;
  }

  .hoshioka-day > .hoshioka-section-wave {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='26' viewBox='0 0 240 26' preserveAspectRatio='none'%3E%3Cpath fill='%23f8f6f0' d='M0,0 H240 V22 C220,18 200,18 180,22 C160,26 140,26 120,22 C100,18 80,18 60,22 C40,26 20,26 0,22 Z'/%3E%3C/svg%3E");
  }

  .hoshioka-facilities > .hoshioka-section-wave {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='26' viewBox='0 0 240 26' preserveAspectRatio='none'%3E%3Cpath fill='%23f1eadb' d='M0,0 H240 V22 C220,18 200,18 180,22 C160,26 140,26 120,22 C100,18 80,18 60,22 C40,26 20,26 0,22 Z'/%3E%3C/svg%3E");
  }

  .hoshioka-access > .hoshioka-section-wave {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='26' viewBox='0 0 240 26' preserveAspectRatio='none'%3E%3Cpath fill='%23e7e6b3' d='M0,0 H240 V22 C220,18 200,18 180,22 C160,26 140,26 120,22 C100,18 80,18 60,22 C40,26 20,26 0,22 Z'/%3E%3C/svg%3E");
  }
}

@media (max-width: 600px) {
  .hoshioka-local-nav {
    top: 96px;
  }
}

/* スマホ：ページ内メニューは一旦非表示 */
@media (max-width: 640px) {
  .hoshioka-page .hoshioka-local-nav {
    display: none;
  }
}

/* スマホ：Aboutキャッチを読点で改行し、セクション上部を詰める */
@media (max-width: 600px) {
  .hoshioka-page .hoshioka-overview {
    padding-top: 0;
  }

  .hoshioka-page .hoshioka-overview .hoshioka-section-heading {
    padding-top: 30px;
  }

  .hoshioka-page .hoshioka-overview .hoshioka-section-heading h2 br {
    display: block;
  }

  .hoshioka-page .hoshioka-overview__deco--bird {
    top: 38px;
  }

  .sanbancho-page .hoshioka-overview__deco--bird {
    top: 26px;
    left: 10px;
  }

  .hoshioka-page .hoshioka-overview__deco--cat {
    top: 39px;
  }

  .hoshioka-page .hoshioka-overview .hoshioka-section-heading {
    margin-bottom: 22px;
  }

  .hoshioka-page .hoshioka-overview__content {
    gap: 16px;
  }

  .hoshioka-page .hoshioka-overview__more {
    margin-top: 18px;
  }
}

/* スマホ：星岡園のお知らせをトップページと同じ寸法に揃える */
.hoshioka-news__title-prefix {
  display: block;
}

@media (max-width: 600px) {
  .hoshioka-page .hoshioka-news .news__title {
    font-size: 28px;
    line-height: 1.4;
  }

  .hoshioka-page .hoshioka-news__title-prefix {
    margin-bottom: 2px;
    font-size: 20px;
  }

  .hoshioka-page .hoshioka-news .news-list__link {
    gap: 6px 10px;
    padding: 12px 4px;
    flex-wrap: wrap;
  }

  .hoshioka-page .hoshioka-news .news-list__date {
    font-size: 13px;
  }

  .hoshioka-page .hoshioka-news .news-list__tag {
    min-width: 54px;
    padding: 2px 7px;
    font-size: 10px;
  }

  .hoshioka-page .hoshioka-news .news-list__text {
    flex-basis: 100%;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.65;
    white-space: normal;
  }

  .hoshioka-page .hoshioka-news .news__more {
    gap: 8px;
    margin-top: 18px;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.5;
  }

  .hoshioka-page .hoshioka-news .news__more .icon-play {
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
  }
}

/* スマホ：両園の特色見出しと説明文を読みやすく調整 */
@media (max-width: 600px) {
  .hoshioka-page .hoshioka-features__title {
    font-size: 25px;
  }

  .hoshioka-page .hoshioka-features__lead {
    text-align: left;
  }
}

/* スマホ：両園の「1日の流れ」導入部分を詰めて左揃えにする */
@media (max-width: 600px) {
  .hoshioka-page .hoshioka-day__heading {
    margin-bottom: 20px;
  }

  .hoshioka-page .hoshioka-day__subheading:not(.hoshioka-day__subheading--second) + .hoshioka-day__lead {
    text-align: left;
  }

  .hoshioka-page .hoshioka-day__subheading:not(.hoshioka-day__subheading--second) + .hoshioka-day__lead br {
    display: none;
  }
}

/* スマホ：両園の1日の流れを横型カードにする */
@media (max-width: 600px) {
  .hoshioka-page .hoshioka-day__timeline {
    gap: 28px;
  }

  .hoshioka-page .hoshioka-day__timeline article {
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr);
    min-height: 150px;
    align-items: stretch;
  }

  .hoshioka-page .hoshioka-day__timeline article > img {
    width: 120px;
    height: 100%;
    min-height: 150px;
    border-radius: 18px 0 0 18px;
  }

  .hoshioka-page .hoshioka-day__cardbody {
    padding: 14px 14px 13px;
  }

  .hoshioka-page .hoshioka-day__timeline time {
    font-size: 13px;
  }

  .hoshioka-page .hoshioka-day__timeline h4 {
    margin: 4px 0;
    font-size: 15px;
    line-height: 1.4;
  }

  .hoshioka-page .hoshioka-day__timeline p {
    font-size: 12px;
    line-height: 1.6;
  }
}

/* スマホ：両園の年間行事を学期ごとに1列で表示する */
@media (max-width: 600px) {
  .hoshioka-page .hoshioka-seasons {
    grid-template-columns: 1fr;
    gap: 14px 12px;
  }

  .hoshioka-page .hoshioka-seasons__item strong {
    padding: 10px;
    font-size: 18px;
  }

  .hoshioka-page .hoshioka-seasons__item ul {
    column-gap: 10px;
    padding: 13px 22px 15px;
  }

  .hoshioka-page .hoshioka-seasons__item li {
    padding: 3px 0 3px 13px;
    font-size: 12.5px;
    line-height: 1.65;
  }

  .hoshioka-page .hoshioka-seasons__item li::before {
    top: 10px;
    width: 6px;
    height: 6px;
  }
}

/* スマホ：両園の施設紹介を2列で表示する */
@media (max-width: 600px) {
  .hoshioka-page .hoshioka-facilities__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 12px;
  }

  .hoshioka-page .hoshioka-facilities__grid img {
    height: 108px;
  }

  .hoshioka-page .hoshioka-facilities__grid h3 {
    margin: 12px 12px 5px;
    font-size: 15px;
    line-height: 1.4;
  }

  .hoshioka-page .hoshioka-facilities__grid p {
    padding: 0 12px 14px;
    font-size: 12px;
    line-height: 1.65;
  }
}

/* スマホ：園別ページのセクション境界とアクセス表を整える */
@media (max-width: 600px) {
  /* 施設紹介から「園での生活」へ続く波形は、直前の生成り色を引き継ぐ */
  .hoshioka-page .life__wave {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='26' viewBox='0 0 240 26' preserveAspectRatio='none'%3E%3Cpath fill='%23f8f6f0' d='M0,0 H240 V22 C220,18 200,18 180,22 C160,26 140,26 120,22 C100,18 80,18 60,22 C40,26 20,26 0,22 Z'/%3E%3C/svg%3E");
  }

  /* アクセス欄からフッターへ続く波形の背面色をアクセス欄と揃える */
  .hoshioka-page .site-footer .ffield::before {
    background-color: #a5c57a;
  }

  .hoshioka-page .hoshioka-access__header {
    margin-bottom: 24px;
  }

  .hoshioka-page .hoshioka-access__title {
    font-size: 23px;
    letter-spacing: .045em;
  }

  .hoshioka-page .hoshioka-access__details {
    padding: 0;
  }

  .hoshioka-page .access-info {
    overflow: hidden;
    padding: 4px 18px;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 8px 22px rgba(73, 103, 57, .12);
  }

  .hoshioka-page .access-info__row,
  .hoshioka-page .hoshioka-access .access-info__row:last-child {
    grid-template-columns: 62px minmax(0, 1fr);
    height: auto;
    min-height: 58px;
    padding: 10px 0;
    border-bottom-color: #dfe7d8;
  }

  .hoshioka-page .access-info__row:last-child {
    border-bottom: 0;
  }

  .hoshioka-page .access-info dt,
  .hoshioka-page .access-info dd,
  .hoshioka-page .hoshioka-access__details dd {
    color: #34483c;
    font-size: 12.5px;
    line-height: 1.55;
    letter-spacing: .025em;
  }

  .hoshioka-page .access-info dt {
    color: #647166;
  }

  .hoshioka-page .access-info dd br {
    display: none;
  }

  .hoshioka-page:not(.sanbancho-page) .access-info__row--tel dd,
  .hoshioka-page:not(.sanbancho-page) .access-info__row--tel a,
  .sanbancho-page .access-info__row--tel dd,
  .sanbancho-page .access-info__row--tel a {
    color: #58ad4e;
    font-size: 18px;
    font-weight: 900;
    letter-spacing: .055em;
  }

  .hoshioka-page .access-info__row--fax dd {
    font-size: 14px;
  }
}

/* スマホ：両園の「園での生活」「入園について」見出しをトップページと統一 */
@media (max-width: 600px) {
  .hoshioka-page .life__inner {
    padding-top: 60px;
  }

  .hoshioka-page .life__head {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    width: min(390px, calc(100vw - 36px));
    margin-right: auto;
    margin-bottom: 20px;
    margin-left: auto;
    transform: translateX(-15px);
  }

  .hoshioka-page .life__rainbow {
    width: 48px;
    margin: 0;
  }

  .hoshioka-page .life__title {
    font-size: 24px;
  }

  .hoshioka-page .admission__inner {
    padding-top: 58px;
  }

  .hoshioka-page .admission__head {
    justify-content: center;
    margin-bottom: 20px;
  }

  .hoshioka-page .admission__headline {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    width: 100%;
    transform: translateX(-15px);
  }

  .hoshioka-page .admission__door {
    width: 44px;
    margin: 0;
  }

  .hoshioka-page .admission__title {
    font-size: 24px;
  }
}

/* スマホ：1日の流れの接続矢印をシンプルな下向き三角にする */
@media (max-width: 600px) {
  .hoshioka-page .hoshioka-day__timeline article:not(:last-child)::after {
    top: auto !important;
    right: auto !important;
    bottom: -17px !important;
    left: 50% !important;
    width: 0;
    height: 0;
    border: 0;
    border-right: 17px solid transparent;
    border-left: 17px solid transparent;
    border-top: 9px solid #69c26f;
    border-radius: 0;
    background: none;
    box-shadow: none;
    transform: translateX(-50%) !important;
  }
}

/* スマホ：両園の主要セクション下余白をコンパクトにする */
@media (max-width: 600px) {
  .hoshioka-page .hoshioka-features {
    padding-bottom: 35px;
  }

  .hoshioka-page .hoshioka-day,
  .hoshioka-page .hoshioka-facilities,
  .hoshioka-page .admission {
    padding-bottom: 30px;
  }
}

/* スマホ：施設紹介をタップで詳細表示するギャラリーにする */
@media (max-width: 600px) {
  .facility-gallery-hint {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    margin: 20px 0 4px;
    color: #557153;
    font-family: var(--font-round);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.6;
    text-align: center;
  }

  .facility-gallery-hint::before {
    content: "";
    width: 17px;
    height: 17px;
    flex: 0 0 17px;
    border: 2px solid #68bd55;
    border-radius: 50%;
    background:
      linear-gradient(#68bd55, #68bd55) center / 7px 2px no-repeat,
      linear-gradient(#68bd55, #68bd55) center / 2px 7px no-repeat;
  }

  .hoshioka-page .hoshioka-facilities__grid {
    margin-top: 14px;
  }

  .hoshioka-page .hoshioka-facilities__grid article {
    position: relative;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }

  .hoshioka-page .hoshioka-facilities__grid article::after {
    content: "";
    position: absolute;
    top: 8px;
    right: 8px;
    width: 25px;
    height: 25px;
    border: 2px solid rgba(255, 255, 255, .9);
    border-radius: 50%;
    background:
      linear-gradient(#fff, #fff) center / 9px 2px no-repeat,
      linear-gradient(#fff, #fff) center / 2px 9px no-repeat,
      rgba(76, 154, 67, .88);
    box-shadow: 0 2px 7px rgba(33, 65, 29, .22);
    pointer-events: none;
  }

  .hoshioka-page .hoshioka-facilities__grid article:focus-visible {
    outline: 3px solid #69c26f;
    outline-offset: 3px;
  }

  .hoshioka-page .hoshioka-facilities__grid h3 {
    min-height: 54px;
    margin: 0;
    padding: 12px 11px;
    display: flex;
    align-items: center;
  }

  .hoshioka-page .hoshioka-facilities__grid p {
    display: none;
  }

  .facility-modal {
    position: fixed;
    z-index: 10000;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 24px 20px calc(90px + env(safe-area-inset-bottom));
    background: rgba(32, 48, 36, .72);
    opacity: 0;
    visibility: hidden;
    transition: opacity .2s ease, visibility .2s ease;
  }

  .facility-modal.is-open {
    opacity: 1;
    visibility: visible;
  }

  .facility-modal__panel {
    position: relative;
    width: min(100%, 420px);
    max-height: calc(100dvh - 130px);
    overflow-y: auto;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 18px 50px rgba(20, 35, 24, .3);
    transform: translateY(12px);
    transition: transform .2s ease;
  }

  .facility-modal.is-open .facility-modal__panel {
    transform: translateY(0);
  }

  .facility-modal__image {
    display: block;
    width: 100%;
    max-height: 46dvh;
    aspect-ratio: 4 / 3;
    border-radius: 22px 22px 0 0;
    object-fit: cover;
  }

  .facility-modal__body {
    padding: 20px 22px 24px;
  }

  .facility-modal__title {
    margin: 0 0 9px;
    color: #34483c;
    font-family: var(--font-round);
    font-size: 21px;
    font-weight: 700;
    line-height: 1.5;
  }

  .facility-modal__text {
    margin: 0;
    color: #5e6961;
    font-family: var(--font-round);
    font-size: 14px;
    font-weight: 500;
    line-height: 1.85;
  }

  .facility-modal__close {
    position: absolute;
    z-index: 2;
    top: 10px;
    right: 10px;
    width: 38px;
    height: 38px;
    border: 2px solid #fff;
    border-radius: 50%;
    background:
      linear-gradient(45deg, transparent 46%, #fff 47%, #fff 53%, transparent 54%),
      linear-gradient(-45deg, transparent 46%, #fff 47%, #fff 53%, transparent 54%),
      rgba(43, 70, 48, .72);
    box-shadow: 0 2px 9px rgba(20, 30, 22, .2);
  }

  body.is-facility-modal-open {
    overflow: hidden;
  }
}

/* スマホ：園内マップ見出しとマップ本体の間隔を広げる */
@media (max-width: 600px) {
  .hoshioka-page:not(.sanbancho-page) .hoshioka-facilities__illust {
    margin-top: -20px;
  }

  .sanbancho-page .hoshioka-facilities__illust--sanbancho {
    margin-top: -40px;
  }
}

/* スマホ：1日の流れをタップで詳細表示するコンパクトカードにする */
@media (max-width: 600px) {
  .day-flow-hint {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    margin: 0 auto 16px;
    color: #557153;
    font-family: var(--font-round);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.6;
    text-align: center;
  }

  .day-flow-hint::before {
    content: "";
    width: 17px;
    height: 17px;
    flex: 0 0 17px;
    border: 2px solid #68bd55;
    border-radius: 50%;
    background:
      linear-gradient(#68bd55, #68bd55) center / 7px 2px no-repeat,
      linear-gradient(#68bd55, #68bd55) center / 2px 7px no-repeat;
  }

  .hoshioka-page .hoshioka-day__timeline article {
    min-height: 112px;
    cursor: pointer;
  }

  .hoshioka-page .hoshioka-day__timeline article > img {
    min-height: 112px;
  }

  .hoshioka-page .hoshioka-day__timeline article::before {
    content: "";
    position: absolute;
    z-index: 2;
    top: 8px;
    right: 8px;
    width: 25px;
    height: 25px;
    border: 2px solid rgba(255, 255, 255, .9);
    border-radius: 50%;
    background:
      linear-gradient(#fff, #fff) center / 9px 2px no-repeat,
      linear-gradient(#fff, #fff) center / 2px 9px no-repeat,
      rgba(76, 154, 67, .88);
    box-shadow: 0 2px 7px rgba(33, 65, 29, .22);
    pointer-events: none;
  }

  .hoshioka-page .hoshioka-day__timeline article:focus-visible {
    outline: 3px solid #69c26f;
    outline-offset: 3px;
  }

  .hoshioka-page .hoshioka-day__timeline article .hoshioka-day__cardbody {
    padding-right: 38px;
  }

  .hoshioka-page .hoshioka-day__timeline article p {
    display: none;
  }

  .day-flow-modal__time {
    display: block;
    margin-bottom: 4px;
    color: #69c26f;
    font-family: var(--font-round);
    font-size: 15px;
    font-weight: 700;
  }

  .day-flow-modal__body .facility-modal__title {
    margin-bottom: 10px;
  }

  /* 課外教室モーダルと同じ、白地に濃緑の細い×印 */
  .day-flow-modal .facility-modal__close {
    border: 0;
    background: rgba(255, 255, 255, .94);
    box-shadow: none;
  }

  .day-flow-modal .facility-modal__close::before,
  .day-flow-modal .facility-modal__close::after {
    content: "";
    position: absolute;
    top: 18px;
    left: 10px;
    width: 18px;
    height: 2px;
    background: #34483c;
    transform: rotate(45deg);
  }

  .day-flow-modal .facility-modal__close::after {
    transform: rotate(-45deg);
  }
}

/* スマホ：園別ページの主要見出しを「園での生活」「入園について」と同じサイズに統一 */
@media (max-width: 600px) {
  .hoshioka-page .hoshioka-news .news__title,
  .hoshioka-page .hoshioka-features__title,
  .hoshioka-page #hoshioka-day-title,
  .hoshioka-page #sanbancho-day-title,
  .hoshioka-page .hoshioka-day__subheading,
  .hoshioka-page #hoshioka-map-title,
  .hoshioka-page #sanbancho-map-title {
    font-size: 24px;
  }
}

/* 小型スマホ：画面幅に合わせて文字と改行を段階的に調整 */
@media (max-width: 600px) {
  .hoshioka-page .hoshioka-news .news__title,
  .hoshioka-page .hoshioka-features__title,
  .hoshioka-page #hoshioka-day-title,
  .hoshioka-page #sanbancho-day-title,
  .hoshioka-page .hoshioka-day__subheading,
  .hoshioka-page #hoshioka-map-title,
  .hoshioka-page #sanbancho-map-title,
  .hoshioka-page .life__title,
  .hoshioka-page .admission__title {
    font-size: 20px;
    font-size: clamp(20px, 6.15vw, 24px);
  }

  .hoshioka-page .reason__title {
    font-size: 20px;
    font-size: clamp(20px, 6.15vw, 24px);
  }

  .hoshioka-page .feature-card__title {
    font-size: 17px;
    font-size: clamp(17px, 5.13vw, 20px);
  }

  .hoshioka-page .hoshioka-overview .hoshioka-section-heading h2 {
    font-size: 17px;
    font-size: clamp(17px, 5.13vw, 20px);
  }
}

@media (max-width: 360px) {
  .hoshioka-page {
    overflow-x: hidden;
  }

  .hoshioka-page .garden-switcher {
    font-size: 10.5px;
  }

  .hoshioka-page .garden-switcher__button {
    gap: 4px;
    padding-inline: 3px;
    white-space: nowrap;
  }

  .hoshioka-page .garden-switcher__arrow {
    width: 12px;
    height: 12px;
    flex-basis: 12px;
  }

  .hoshioka-page .ribbon-badge {
    max-width: calc(100% - 24px);
  }

  .hoshioka-page .ribbon-badge__body {
    min-width: 0;
    padding-inline: 12px;
    font-size: 13px;
    letter-spacing: .03em;
    white-space: normal;
    text-align: center;
  }

  .hoshioka-page .hoshioka-overview .hoshioka-section-heading h2 br {
    display: none;
  }

  .hoshioka-page .feature-card__title {
    max-width: 100%;
  }

  .hoshioka-page .feature-card__title-line {
    display: block;
    width: auto;
    padding-right: 8px;
    white-space: normal;
  }

}
