/*
 * front-page-tone.css
 * 添付HTML「otonomori-renewalimage.html」の雰囲気に寄せたトップページ専用CSS
 */

/* 既存テーマのトップページ用ヘッダー・フッター・スライダーを非表示 */
body.home #layout > header,
body.front-page #layout > header,
body.home #layout > nav,
body.front-page #layout > nav,
body.home #layout > footer,
body.front-page #layout > footer,
body.home #main,
body.front-page #main,
body.home #my-menu,
body.front-page #my-menu,
body.home .loading,
body.front-page .loading {
  display: none !important;
}

body.home #container,
body.front-page #container {
  width: 100% !important;
  max-width: none !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden;
}

body.home,
body.front-page {
  margin: 0;
  background: #fbf8f3;
}

#om-front-page,
#om-front-page * {
  box-sizing: border-box;
}

#om-front-page {
  --bg:#fbf8f3;
  --text:#4b372e;
  --muted:#75655c;
  --green:#67b53c;
  --green-soft:#d9efc7;
  --pink:#f56e97;
  --pink-soft:#ffd8e6;
  --orange:#ff9d11;
  --yellow:#ffd95b;
  --blue:#7ec8f6;
  --purple:#c7acef;
  --card:#ffffff;
  --line:#ece3d8;
  --shadow:0 8px 24px rgba(116, 88, 63, 0.10);
  overflow: hidden;
  position: relative;
  isolation: isolate;
  background: var(--bg);
  color: var(--text);
  font-family: "Zen Maru Gothic", "Yu Gothic", "Hiragino Kaku Gothic ProN", "Meiryo", sans-serif;
  line-height: 1.8;
  -webkit-text-size-adjust: 100%;
}

#om-front-page a {
  color: inherit;
  text-decoration: none;
}

#om-front-page img {
  display: block;
  max-width: 100%;
  height: auto;
}

#om-front-page figure,
#om-front-page ul,
#om-front-page ol {
  margin: 0;
  padding: 0;
}

#om-front-page li {
  list-style: none;
}

.om-container {
  width: min(1240px, calc(100% - 48px));
  margin: 0 auto;
}

/* Header */
.om-header {
  background: #fff;
  padding: 22px 0 14px;
}

.om-header__inner {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
}

.om-brand {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  min-width: 320px;
}

.om-brand__mark {
  width: 56px;
  height: 56px;
  border-radius: 14px;
  background: linear-gradient(135deg,#f7d57c,#a8d97b,#85d3ef,#f5a6c4);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 28px;
  box-shadow: 0 4px 12px rgba(0,0,0,.08);
  flex: 0 0 56px;
}

.om-brand__text {
  display: block;
  line-height: 1.2;
  padding-top: 2px;
}

.om-brand__name {
  display: block;
  font-size: 22px;
  font-weight: 900;
  letter-spacing: .06em;
  margin-bottom: 4px;
}

.om-brand__name--green { color: var(--green); }
.om-brand__name--pink { color: var(--pink); }

.om-brand__pill {
  display: inline-block;
  font-size: 12px;
  color: #6e645d;
  background: #f7f3ef;
  border: 1px solid #ddd4ca;
  border-radius: 999px;
  padding: 6px 14px;
  font-weight: 700;
  white-space: nowrap;
}

.om-header__right {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 14px;
}

.om-sns {
  display: flex;
  gap: 14px;
  align-items: center;
}

.om-sns__item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  font-weight: 900;
  color: #fff !important;
  box-shadow: 0 4px 10px rgba(0,0,0,.08);
  font-size: 17px;
}

.om-sns__item--fb { background: #4267b2; }
.om-sns__item--ig {
  background: linear-gradient(135deg,#ffd65f 0%, #ff5a96 50%, #8b54ff 100%);
  font-size: 15px;
}

.om-gnav {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 26px;
  font-size: 16px;
  font-weight: 800;
  color: #4f4741;
}

.om-gnav a {
  position: relative;
  padding-bottom: 8px;
  white-space: nowrap;
}

.om-gnav a.is-active {
  color: var(--orange);
}

.om-gnav a.is-active::after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 0;
  width: 34px;
  height: 3px;
  border-radius: 999px;
  background: var(--orange);
}

/* Hero */
.om-hero {
  position: relative;
  padding: 12px 0 0;
  background: #fff;
}

.om-hero::before {
  content: "";
  position: absolute;
  left: -70px;
  top: 92px;
  width: 180px;
  height: 180px;
  background: #f6d351;
  border-radius: 46% 54% 42% 58% / 52% 38% 62% 48%;
  z-index: 0;
}

.om-hero::after {
  content: "";
  position: absolute;
  left: -60px;
  bottom: 80px;
  width: 150px;
  height: 150px;
  background: #8ecbf6;
  border-radius: 50%;
  z-index: 0;
}

.om-hero__inner {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 460px 1fr;
  align-items: start;
  gap: 36px;
  min-height: 520px;
}

.om-hero__copy {
  position: relative;
  padding: 86px 0 40px;
}

.om-dot {
  position: absolute;
  border-radius: 50%;
  opacity: .9;
}

.om-dot--1 { width:14px;height:14px;background:#f6a3c5;left:58px;top:78px; }
.om-dot--2 { width:18px;height:18px;background:#ba9eea;left:208px;top:94px; }
.om-dot--3 { width:14px;height:14px;background:#87d1f0;left:18px;top:304px; }
.om-dot--4 { width:12px;height:12px;background:#9cd36f;left:66px;top:450px; }
.om-dot--5 { width:10px;height:10px;background:#f7cb57;left:365px;top:476px; }

.om-bird {
  position: absolute;
  right: 68px;
  top: 94px;
  color: #76bee7;
  font-size: 38px;
  transform: rotate(-5deg);
}

.om-leaf {
  position: absolute;
  right: 18px;
  bottom: 30px;
  width: 92px;
  height: 92px;
  opacity: .85;
}

.om-hero__title {
  font-size: 72px;
  line-height: 1.28;
  letter-spacing: .06em;
  margin: 0 0 28px;
  font-weight: 900;
  color: #4b352c;
}

.om-hero__text {
  font-size: 16px;
  color: #5f5147;
  line-height: 2.1;
  font-weight: 700;
  max-width: 380px;
  margin: 0;
}

.om-hero__visual {
  position: relative;
  padding-top: 8px;
}

.om-hero__photo-wrap {
  position: relative;
  height: 520px;
  overflow: hidden;
  border-radius: 90px 28px 44px 36px;
  background: #f3f3f3;
  box-shadow: var(--shadow);
}

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

.om-bubble {
  position: absolute;
  border-radius: 50%;
  background: rgba(255,255,255,.18);
  border: 2px solid rgba(255,255,255,.8);
  box-shadow: inset 0 0 10px rgba(255,255,255,.25), 0 4px 10px rgba(255,255,255,.25);
}

.om-bubble--1 { width:36px;height:36px;left:95px;top:46px; }
.om-bubble--2 { width:54px;height:54px;left:170px;top:22px; }
.om-bubble--3 { width:28px;height:28px;left:272px;top:102px; }

.om-blob {
  position: absolute;
  z-index: 1;
  pointer-events: none;
}

.om-blob--blue {
  width:150px;height:150px;
  right:-42px;bottom:46px;
  background:#65bdf7;
  border-radius:50%;
}

.om-blob--yellow {
  width:130px;height:130px;
  right:72px;bottom:-18px;
  background:#f8cf4a;
  border-radius:50%;
}

.om-blob--pink {
  width:120px;height:80px;
  right:132px;bottom:80px;
  background:#f6a8c4;
  border-radius:50% 50% 60% 40%;
  transform:rotate(-15deg);
}

/* Quick links */
.om-quick {
  position: relative;
  margin-top: -34px;
  z-index: 5;
}

.om-quick__grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 18px;
}

.om-quick-card {
  background: var(--card);
  border-radius: 22px;
  box-shadow: var(--shadow);
  padding: 28px 16px 18px;
  text-align: center;
  min-height: 176px;
  display: block;
}

.om-quick-card__icon {
  width: 92px;
  height: 92px;
  margin: 0 auto 16px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.om-quick-card__icon svg {
  width: 44px;
  height: 44px;
  stroke: #5b4a41;
  stroke-width: 1.8;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.om-bg-pink { background:#ffd7e1; }
.om-bg-yellow { background:#f7de77; }
.om-bg-green { background:#cce9dc; }
.om-bg-blue { background:#cde8fa; }
.om-bg-purple { background:#d8c4f4; }
.om-bg-coral { background:#ffd6cd; }

.om-quick-card__title {
  display: block;
  font-size: 18px;
  line-height: 1.5;
  font-weight: 900;
  margin: 0 0 8px;
  color: #4b372e;
}

.om-quick-card__arrow {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 14px;
  font-weight: 900;
}

.om-arrow-pink { background:#f67e9d; }
.om-arrow-yellow { background:#e1b600; }
.om-arrow-green { background:#73b988; }
.om-arrow-blue { background:#5fa9e5; }
.om-arrow-purple { background:#9d84d2; }
.om-arrow-coral { background:#f47a75; }

/* Section */
.om-section {
  padding: 34px 0 0;
  background: #fff;
}

.om-section-title {
  text-align: center;
  margin: 0 0 24px;
  font-size: 24px;
  font-weight: 900;
  letter-spacing: .06em;
  color: #573f34;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
}

.om-section-title__leaf {
  color: #8bc34e;
  font-size: 20px;
}

/* Nurseries */
.om-nursery-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}

.om-nursery-card {
  background: #fffdfb;
  border-radius: 28px;
  padding: 22px 24px;
  min-height: 290px;
  position: relative;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(116, 88, 63, 0.05);
}

.om-nursery-card--green { border:2px solid #cfe9ba; }
.om-nursery-card--pink { border:2px solid #f7c9d7; }

.om-nursery-card__content {
  display: grid;
  grid-template-columns: 1fr 230px;
  gap: 20px;
  align-items: center;
  height: 100%;
}

.om-nursery-card__name {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 22px;
  font-weight: 900;
  margin: 0 0 16px;
  letter-spacing: .04em;
  line-height: 1.35;
}

.om-nursery-card__name span {
  font-size: 32px;
  line-height: 1;
}

.om-nursery-card__name--green { color: var(--green); }
.om-nursery-card__name--pink { color: var(--pink); }

.om-nursery-card p {
  font-size: 14px;
  color: #57493f;
  font-weight: 700;
  line-height: 2;
  margin: 0 0 18px;
  max-width: 320px;
}

.om-nursery-card figure {
  width: 100%;
  height: 190px;
  border-radius: 48px;
  overflow: hidden;
  box-shadow: 0 6px 16px rgba(0,0,0,.08);
}

.om-nursery-card figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.om-nursery-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-width: 130px;
  padding: 10px 22px;
  border-radius: 999px;
  color: #fff !important;
  font-weight: 900;
  font-size: 15px;
}

.om-nursery-btn--green { background: var(--green); }
.om-nursery-btn--pink { background: var(--pink); }

.om-nursery-btn span,
.om-feature__btn span {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: rgba(255,255,255,.22);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
}

.om-nursery-card__deco {
  position: absolute;
  bottom: 10px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 24px;
  opacity: .9;
}

/* Feature */
.om-feature {
  padding-top: 38px;
}

.om-feature__box {
  width: min(820px, 100%);
  margin: 0 auto;
  padding: 34px 44px;
  border-radius: 24px;
  background: #fffdfb;
  box-shadow: var(--shadow);
  border: 1px solid #f0e7dc;
  text-align: center;
}

.om-feature__catch {
  margin: 0 0 16px;
  color: #4b372e;
  font-size: 18px;
  line-height: 1.9;
  font-weight: 900;
}

.om-feature__box p:not(.om-feature__catch) {
  margin: 0 0 22px;
  color: #57493f;
  font-size: 14px;
  font-weight: 700;
  line-height: 2;
}

.om-feature__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-width: 170px;
  padding: 11px 22px;
  border-radius: 999px;
  background: var(--orange);
  color: #fff !important;
  font-size: 14px;
  font-weight: 900;
}

/* Photo */
.om-photo {
  padding-top: 52px;
}

.om-photo-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}

.om-photo-card {
  background: #fff;
  border-radius: 22px;
  box-shadow: var(--shadow);
  padding: 12px 12px 14px;
  text-align: center;
}

.om-photo-card figure {
  height: 210px;
  border-radius: 16px;
  overflow: hidden;
  background: #f3f0eb;
}

.om-photo-card figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.om-photo-card time {
  display: block;
  margin: 10px 0 2px;
  color: var(--pink);
  font-size: 12px;
  font-weight: 900;
}

.om-photo-card h3 {
  margin: 0;
  color: #4b372e;
  font-size: 14px;
  line-height: 1.6;
  font-weight: 900;
}

/* News */
.om-news {
  padding: 42px 0 0;
  background: #fff;
}

.om-news__layout {
  display: grid;
  grid-template-columns: 290px 1fr;
  gap: 18px;
  align-items: center;
}

.om-news__side {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  min-height: 190px;
}

.om-news__flowers {
  font-size: 70px;
  line-height: 1;
}

.om-news__bird {
  font-size: 30px;
  color: #f0a46c;
  margin-top: 12px;
}

.om-news__titlebox {
  text-align: center;
}

.om-news__titlebox h2 {
  margin: 0 0 10px;
  font-size: 24px;
  font-weight: 900;
  color: #553d33;
  letter-spacing: .06em;
}

.om-news__titlebox a {
  color: #3c93e6;
  font-weight: 900;
  font-size: 14px;
}

.om-news__list {
  background: #fff;
  border-radius: 22px;
  box-shadow: var(--shadow);
  padding: 8px 28px;
}

.om-news__item {
  display: grid;
  grid-template-columns: 110px 100px 1fr 20px;
  gap: 14px;
  align-items: center;
  border-bottom: 1px solid #efe6dc;
  padding: 16px 0;
  color: #53443b;
  font-weight: 700;
  font-size: 15px;
}

.om-news__item:last-child {
  border-bottom: none;
}

.om-news__tag {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  border-radius: 999px;
  padding: 6px 14px;
  color: #fff;
  font-size: 13px;
  font-weight: 900;
  line-height: 1;
  background: #f184a2;
}

.om-news__tag.blog,
.om-news__tag.otonomori {
  background: #7bbd46;
}

.om-news__tag.topics,
.om-news__tag.ainomori {
  background: #f184a2;
}

.om-news__arrow {
  color: #8e8378;
  font-size: 22px;
  text-align: right;
}

/* CTA */
.om-cta {
  padding: 24px 0 0;
  background: #fff;
}

.om-cta__box {
  background: linear-gradient(90deg,#fff2c8 0%, #fff4d4 100%);
  border-radius: 24px;
  padding: 18px 26px;
  display: grid;
  grid-template-columns: 1fr 420px 240px;
  align-items: center;
  gap: 24px;
}

.om-cta__left {
  display: flex;
  align-items: center;
  gap: 18px;
}

.om-cta__school {
  font-size: 56px;
  line-height: 1;
}

.om-cta__left p {
  margin: 0;
  font-size: 18px;
  font-weight: 900;
  line-height: 1.8;
  color: #544239;
}

.om-cta__btn {
  width: 100%;
  max-width: 420px;
  min-height: 78px;
  border-radius: 999px;
  background: linear-gradient(180deg,#ffa61a 0%, #ff9700 100%);
  color: #fff !important;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  font-size: 18px;
  font-weight: 900;
  box-shadow: 0 10px 22px rgba(255, 156, 28, 0.28);
  padding: 0 28px;
}

.om-cta__mail {
  width: 38px;
  height: 38px;
  border: 2px solid rgba(255,255,255,.85);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
}

.om-cta__next {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(255,255,255,.24);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
}

.om-cta__photo {
  height: 104px;
  width: 100%;
  border-radius: 48px;
  overflow: hidden;
  box-shadow: 0 6px 14px rgba(0,0,0,.08);
}

.om-cta__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Footer */
.om-footer {
  background: #fff;
  padding: 18px 0 24px;
}

.om-footer__inner {
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  gap: 20px;
  border-top: 1px solid #f0e8df;
  padding-top: 18px;
}

.om-footer__brand {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}

.om-footer__mark {
  width: 40px;
  height: 40px;
  border-radius: 12px;
  background: linear-gradient(135deg,#f7d57c,#a8d97b,#85d3ef,#f5a6c4);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
}

.om-footer__brand span:not(.om-footer__mark) {
  display: grid;
  line-height: 1.2;
  font-weight: 900;
  letter-spacing: .04em;
}

.om-footer__green {
  color: var(--green);
  font-size: 14px;
}

.om-footer__pink {
  color: var(--pink);
  font-size: 14px;
}

.om-footer__brand em {
  font-style: normal;
  font-size: 11px;
  color: #71665e;
  background: #f7f3ef;
  border: 1px solid #ddd4ca;
  border-radius: 999px;
  padding: 5px 12px;
  font-weight: 700;
}

.om-footer__links {
  display: flex;
  gap: 24px;
  align-items: center;
  color: #5b4b42;
  font-weight: 700;
  font-size: 14px;
  white-space: nowrap;
}

.om-footer__links span {
  color: #cdbfb2;
}

.om-sns--footer {
  justify-content: flex-end;
}

.om-sns--footer .om-sns__item {
  width: 38px;
  height: 38px;
}

.om-footer__copy {
  text-align: center;
  color: #7c7067;
  font-size: 12px;
  margin-top: 10px;
  font-weight: 700;
}


/* ========================================
   Floating background orbs
   すべての要素の一番後ろで、丸のあしらいをゆっくり動かします。
======================================== */
.om-floating-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}

.om-orb {
  position: absolute;
  display: block;
  border-radius: 999px;
  opacity: .72;
  filter: blur(.1px);
  will-change: transform;
  animation-name: omFloatOrb;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
  animation-direction: alternate;
}

/* 各丸は離して配置。かたまりにならないよう、サイズ・位置・速度をばらしています。 */
.om-orb--yellow { background: #ffd95b; }
.om-orb--blue { background: #7ec8f6; }
.om-orb--pink { background: #f6a3c5; }
.om-orb--green { background: #9cd36f; }
.om-orb--purple { background: #ba9eea; }

.om-orb--1 {
  width: 210px;
  height: 210px;
  left: -92px;
  top: 150px;
  animation-duration: 18s;
  animation-delay: -2s;
}

.om-orb--2 {
  width: 170px;
  height: 170px;
  left: -84px;
  top: 570px;
  animation-duration: 22s;
  animation-delay: -8s;
}

.om-orb--3 {
  width: 132px;
  height: 92px;
  right: 180px;
  top: 505px;
  transform: rotate(-14deg);
  animation-duration: 20s;
  animation-delay: -5s;
}

.om-orb--4 {
  width: 44px;
  height: 44px;
  left: 38%;
  top: 720px;
  opacity: .5;
  animation-duration: 16s;
  animation-delay: -11s;
}

.om-orb--5 {
  width: 28px;
  height: 28px;
  left: 26%;
  top: 146px;
  opacity: .58;
  animation-duration: 15s;
  animation-delay: -6s;
}

.om-orb--6 {
  width: 34px;
  height: 34px;
  right: 14%;
  top: 635px;
  opacity: .62;
  animation-duration: 17s;
  animation-delay: -3s;
}

.om-orb--7 {
  width: 230px;
  height: 230px;
  right: -86px;
  top: 470px;
  animation-duration: 24s;
  animation-delay: -12s;
}

.om-orb--8 {
  width: 30px;
  height: 30px;
  left: 13%;
  top: 208px;
  opacity: .65;
  animation-duration: 14s;
  animation-delay: -4s;
}

.om-orb--9 {
  width: 26px;
  height: 26px;
  left: 14%;
  top: 585px;
  opacity: .66;
  animation-duration: 19s;
  animation-delay: -9s;
}

.om-orb--10 {
  width: 22px;
  height: 22px;
  left: 34%;
  top: 228px;
  opacity: .58;
  animation-duration: 13s;
  animation-delay: -7s;
}

.om-orb--11 {
  width: 160px;
  height: 160px;
  right: 18%;
  top: 580px;
  opacity: .68;
  animation-duration: 23s;
  animation-delay: -15s;
}

.om-orb--12 {
  width: 150px;
  height: 150px;
  right: 6%;
  top: 475px;
  opacity: .7;
  animation-duration: 21s;
  animation-delay: -10s;
}

@keyframes omFloatOrb {
  0% {
    transform: translate3d(0, 0, 0) scale(1);
  }
  50% {
    transform: translate3d(18px, -22px, 0) scale(1.035);
  }
  100% {
    transform: translate3d(-14px, 18px, 0) scale(.98);
  }
}

/* 背景丸より上に全コンテンツを重ねる */
.om-header,
.om-hero,
.om-quick,
.om-section,
.om-news,
.om-cta,
.om-footer {
  position: relative;
  z-index: 2;
}

/* 既存のヒーロー用大丸は、背景専用の丸と重複しないよう停止 */
.om-hero::before,
.om-hero::after,
.om-blob {
  display: none !important;
}

/* セクション背景は透けさせ、背面の丸がうっすら見えるようにする */
.om-hero,
.om-section,
.om-news,
.om-cta,
.om-footer {
  background: transparent;
}

/* 画像・カード類は丸より前面で見やすく */
.om-hero__photo-wrap,
.om-quick-card,
.om-nursery-card,
.om-feature__box,
.om-photo-card,
.om-news__list,
.om-cta__box,
.om-footer__inner {
  position: relative;
  z-index: 3;
}

@media (prefers-reduced-motion: reduce) {
  .om-orb {
    animation: none;
  }
}

@media (max-width: 768px) {
  .om-orb {
    opacity: .48;
  }

  .om-orb--1 {
    width: 150px;
    height: 150px;
    left: -78px;
    top: 190px;
  }

  .om-orb--2 {
    width: 120px;
    height: 120px;
    left: -58px;
    top: 610px;
  }

  .om-orb--3 {
    width: 96px;
    height: 70px;
    right: 18%;
    top: 610px;
  }

  .om-orb--7 {
    width: 150px;
    height: 150px;
    right: -72px;
    top: 500px;
  }

  .om-orb--11 {
    width: 115px;
    height: 115px;
    right: 24%;
    top: 690px;
  }

  .om-orb--12 {
    width: 105px;
    height: 105px;
    right: 3%;
    top: 620px;
  }
}

/* Responsive */
@media (max-width: 1180px) {
  .om-hero__inner {
    grid-template-columns: 1fr;
  }

  .om-hero__copy {
    padding-top: 40px;
  }

  .om-hero__photo-wrap {
    height: 460px;
  }

  .om-quick__grid {
    grid-template-columns: repeat(3,1fr);
  }

  .om-nursery-grid {
    grid-template-columns: 1fr;
  }

  .om-news__layout {
    grid-template-columns: 1fr;
  }

  .om-cta__box {
    grid-template-columns: 1fr;
  }

  .om-cta__btn {
    max-width: none;
  }

  .om-footer__inner {
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: center;
  }
}

@media (max-width: 768px) {
  .om-container {
    width: min(100% - 28px, 1240px);
  }

  .om-header__inner {
    flex-direction: column;
    align-items: flex-start;
  }

  .om-header__right {
    width: 100%;
    align-items: flex-start;
  }

  .om-sns--top {
    order: 2;
  }

  .om-gnav {
    justify-content: flex-start;
    gap: 18px;
    font-size: 14px;
    overflow-x: auto;
    width: 100%;
    padding-bottom: 4px;
    flex-wrap: nowrap;
  }

  .om-brand {
    min-width: auto;
  }

  .om-brand__name {
    font-size: 18px;
  }

  .om-hero__title {
    font-size: 48px;
  }

  .om-hero__photo-wrap {
    height: 360px;
    border-radius: 56px 22px 30px 22px;
  }

  .om-quick__grid {
    grid-template-columns: repeat(2,1fr);
    gap: 14px;
  }

  .om-quick-card {
    min-height: 154px;
    padding: 22px 10px 16px;
  }

  .om-quick-card__icon {
    width: 78px;
    height: 78px;
  }

  .om-quick-card__title {
    font-size: 16px;
  }

  .om-section-title {
    font-size: 20px;
    gap: 10px;
  }

  .om-nursery-card__content {
    grid-template-columns: 1fr;
  }

  .om-news__item {
    grid-template-columns: 1fr;
    gap: 6px;
  }

  .om-news__arrow {
    display: none;
  }

  .om-cta__left {
    flex-direction: column;
    align-items: flex-start;
  }

  .om-cta__left p {
    font-size: 16px;
  }

  .om-cta__btn {
    font-size: 16px;
    min-height: 66px;
  }

  .om-footer__links {
    flex-wrap: wrap;
    justify-content: center;
  }

  .om-photo-grid {
    grid-template-columns: 1fr;
  }
}


/* ========================================
   Hero fix 2026052208
   1) キャッチコピーを最前面へ
   2) 鳥イラスト・草イラストを非表示
   3) 写真未読込時のaltテキスト表示を防ぐ
======================================== */
.om-hero__copy {
  z-index: 20;
}

.om-hero__title {
  position: relative;
  z-index: 30;
}

.om-hero__text {
  position: relative;
  z-index: 30;
}

.om-dot {
  z-index: 1;
}

.om-bird,
.om-leaf {
  display: none !important;
}

.om-hero__visual {
  z-index: 5;
}

.om-hero__photo-wrap {
  color: transparent;
  font-size: 0;
  line-height: 0;
}


/* ========================================
   Hero key visual fade slider 2026052210
   正常ファイルの状態を保ったまま、キービジュアルだけ5枚フェード切替
======================================== */
.om-hero-slider {
  position: relative;
  color: transparent;
  font-size: 0;
  line-height: 0;
  background: #f3f3f3;
}

.om-hero-slider .om-hero__photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  opacity: 0;
  object-fit: cover;
  object-position: center center;
  animation: omHeroFade 30s ease-in-out infinite;
  will-change: opacity, transform;
}

.om-hero-slider .om-hero__photo--1 { animation-delay: 0s; }
.om-hero-slider .om-hero__photo--2 { animation-delay: 6s; }
.om-hero-slider .om-hero__photo--3 { animation-delay: 12s; }
.om-hero-slider .om-hero__photo--4 { animation-delay: 18s; }
.om-hero-slider .om-hero__photo--5 { animation-delay: 24s; }

@keyframes omHeroFade {
  0% {
    opacity: 0;
    transform: scale(1.04);
  }
  6% {
    opacity: 1;
  }
  20% {
    opacity: 1;
    transform: scale(1.01);
  }
  26% {
    opacity: 0;
    transform: scale(1);
  }
  100% {
    opacity: 0;
    transform: scale(1.04);
  }
}

@media (prefers-reduced-motion: reduce) {
  .om-hero-slider .om-hero__photo {
    animation: none;
    opacity: 0;
  }

  .om-hero-slider .om-hero__photo--1 {
    opacity: 1;
  }
}


/* ========================================
   Header / Footer logo size fix 2026052213
   公式ロゴの縦幅を抑え、ヘッダー・フッターの高さを適正化
======================================== */

/* HEADER */
.om-header {
  padding: 14px 0 10px !important;
}

.om-header__inner {
  align-items: center !important;
  min-height: 72px;
}

.om-brand {
  min-width: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 0 !important;
  line-height: 1 !important;
}

.om-brand__mark,
.om-brand__text,
.om-brand__name,
.om-brand__pill {
  display: none !important;
}

.om-brand__logo {
  display: block !important;
  width: auto !important;
  max-width: 280px !important;
  height: 72px !important;
  max-height: 72px !important;
  object-fit: contain !important;
}

/* ナビ・SNSもロゴ高さに合わせて中央寄せ */
.om-header__right {
  justify-content: center !important;
  gap: 10px !important;
}

.om-sns--top .om-sns__item {
  width: 30px !important;
  height: 30px !important;
  font-size: 15px !important;
}

.om-gnav {
  gap: 22px !important;
  font-size: 15px !important;
}

/* FOOTER */
.om-footer {
  padding: 14px 0 18px !important;
}

.om-footer__inner {
  padding-top: 14px !important;
  align-items: center !important;
  min-height: 68px;
}

.om-footer__brand {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0 !important;
  line-height: 1 !important;
}

.om-footer__mark,
.om-footer__brand > span,
.om-footer__brand > em,
.om-footer__green,
.om-footer__pink {
  display: none !important;
}

.om-footer__logo {
  display: block !important;
  width: auto !important;
  max-width: 230px !important;
  height: 62px !important;
  max-height: 62px !important;
  object-fit: contain !important;
}

.om-footer__links {
  font-size: 13px !important;
}

.om-sns--footer .om-sns__item {
  width: 34px !important;
  height: 34px !important;
}

.om-footer__copy {
  margin-top: 8px !important;
}

/* タブレット */
@media (max-width: 1180px) {
  .om-brand__logo {
    max-width: 250px !important;
    height: 66px !important;
    max-height: 66px !important;
  }

  .om-footer__logo {
    max-width: 210px !important;
    height: 56px !important;
    max-height: 56px !important;
  }

  .om-gnav {
    gap: 16px !important;
    font-size: 14px !important;
  }
}

/* スマホ */
@media (max-width: 768px) {
  .om-header {
    padding: 12px 0 10px !important;
  }

  .om-header__inner {
    min-height: auto;
  }

  .om-brand__logo {
    max-width: 220px !important;
    height: 58px !important;
    max-height: 58px !important;
  }

  .om-footer__logo {
    max-width: 200px !important;
    height: 52px !important;
    max-height: 52px !important;
  }

  .om-footer {
    padding: 12px 0 16px !important;
  }
}


/* ========================================
   Header / Footer tone fix 2026052215
   添付HTMLのトンマナに合わせて、共通ヘッダー・フッターの背景色と文字色を調整
======================================== */

/* サイト全体のベース色 */
body {
  background: #fbf8f3 !important;
  color: #4b372e;
}

/* HEADER：添付デザインに合わせて、白背景＋やわらかい下線 */
.om-header {
  background: #ffffff !important;
  color: #4b372e !important;
  border-bottom: 1px solid #f0e8df !important;
  box-shadow: none !important;
}

.om-header__inner {
  color: #4b372e !important;
}

/* ヘッダーナビ：濃いブラウン基調 */
.om-gnav {
  color: #4f4741 !important;
}

.om-gnav a {
  color: #4f4741 !important;
  font-weight: 800;
}

.om-gnav a.is-active,
.om-gnav a:hover {
  color: #ff9d11 !important;
}

.om-gnav a.is-active::after {
  background: #ff9d11 !important;
}

/* SNSは添付の明るい丸アイコン調 */
.om-sns__item {
  color: #ffffff !important;
  box-shadow: 0 4px 10px rgba(116, 88, 63, 0.10) !important;
}

.om-sns__item--fb {
  background: #4267b2 !important;
}

.om-sns__item--ig {
  background: linear-gradient(135deg,#ffd65f 0%, #ff5a96 50%, #8b54ff 100%) !important;
}

/* FOOTER：添付デザインに合わせて、白背景＋薄い境界線 */
.om-footer {
  background: #ffffff !important;
  color: #5b4b42 !important;
  border-top: 1px solid #f0e8df !important;
}

.om-footer__inner {
  border-top: 1px solid #f0e8df !important;
}

/* フッターリンク */
.om-footer__links,
.om-footer__links a {
  color: #5b4b42 !important;
  font-weight: 700;
}

.om-footer__links a:hover {
  color: #ff9d11 !important;
}

.om-footer__links span {
  color: #cdbfb2 !important;
}

/* コピーライト */
.om-footer__copy {
  color: #7c7067 !important;
  font-weight: 700;
}

/* ヘッダー・フッターのロゴまわり背景が白く浮きすぎないように */
.om-brand,
.om-footer__brand {
  background: transparent !important;
}

/* 下層ページでも同じトーンになるように */
body:not(.home) .om-header,
body:not(.front-page) .om-header {
  background: #ffffff !important;
  color: #4b372e !important;
}

body:not(.home) .om-footer,
body:not(.front-page) .om-footer {
  background: #ffffff !important;
  color: #5b4b42 !important;
}

/* スマホ時もトーンを維持 */
@media (max-width: 768px) {
  .om-header {
    background: #ffffff !important;
  }

  .om-gnav a {
    color: #4f4741 !important;
  }

  .om-footer {
    background: #ffffff !important;
  }
}


/* ========================================
   Refined Sound & Love Design 2026052217
   キービジュアル周りの正円ふわふわアニメーションは維持。
   音符・ハートは隣接させず、控えめに配置。
======================================== */

/* 白ベース */
body,
body.home,
body.front-page {
  background: #ffffff !important;
}

#om-front-page {
  --bg: #ffffff;
  --text: #4b372e;
  --muted: #75655c;
  --sound: #7ec8f6;
  --sound-deep: #55aee2;
  --sound-soft: #eaf8ff;
  --love: #f58aad;
  --love-deep: #ee729c;
  --love-soft: #fff1f6;
  --cream: #fff9ea;
  --mint: #f2fbf5;
  --card: #ffffff;
  --line: #f0e8df;
  --shadow: 0 10px 26px rgba(116, 88, 63, 0.09);
  background:
    radial-gradient(circle at 7% 18%, rgba(126, 200, 246, .06), transparent 21%),
    radial-gradient(circle at 92% 27%, rgba(245, 138, 173, .055), transparent 18%),
    #ffffff !important;
}

/* 正円のふわふわ背景は残す */
.om-floating-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}

.om-orb {
  display: block !important;
  position: absolute;
  border-radius: 999px !important;
  opacity: .40;
  filter: blur(.1px);
  will-change: transform;
  animation-name: omFloatOrb;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
  animation-direction: alternate;
}

/* 丸はキービジュアル周辺に自然に配置。くっつかないよう再分散 */
.om-orb--yellow { background: #ffd95b; }
.om-orb--blue { background: #7ec8f6; }
.om-orb--pink { background: #f6a3c5; }
.om-orb--green { background: #9cd36f; }
.om-orb--purple { background: #ba9eea; }

.om-orb--1 {
  width: 176px;
  height: 176px;
  left: -70px;
  top: 150px;
  opacity: .50;
  animation-duration: 20s;
  animation-delay: -2s;
}

.om-orb--2 {
  width: 132px;
  height: 132px;
  left: -56px;
  top: 520px;
  opacity: .42;
  animation-duration: 23s;
  animation-delay: -8s;
}

.om-orb--3 {
  width: 92px;
  height: 92px;
  right: 20%;
  top: 520px;
  opacity: .34;
  transform: none !important;
  animation-duration: 19s;
  animation-delay: -5s;
}

.om-orb--4 {
  width: 34px;
  height: 34px;
  left: 38%;
  top: 720px;
  opacity: .34;
  animation-duration: 17s;
  animation-delay: -11s;
}

.om-orb--5 {
  width: 24px;
  height: 24px;
  left: 27%;
  top: 142px;
  opacity: .30;
  animation-duration: 15s;
  animation-delay: -6s;
}

.om-orb--6 {
  width: 28px;
  height: 28px;
  right: 14%;
  top: 650px;
  opacity: .36;
  animation-duration: 18s;
  animation-delay: -3s;
}

.om-orb--7 {
  width: 190px;
  height: 190px;
  right: -74px;
  top: 455px;
  opacity: .42;
  animation-duration: 25s;
  animation-delay: -12s;
}

.om-orb--8 {
  width: 25px;
  height: 25px;
  left: 13%;
  top: 230px;
  opacity: .32;
  animation-duration: 14s;
  animation-delay: -4s;
}

.om-orb--9 {
  width: 24px;
  height: 24px;
  left: 16%;
  top: 620px;
  opacity: .34;
  animation-duration: 20s;
  animation-delay: -9s;
}

.om-orb--10 {
  width: 18px;
  height: 18px;
  left: 34%;
  top: 246px;
  opacity: .28;
  animation-duration: 13s;
  animation-delay: -7s;
}

.om-orb--11 {
  width: 122px;
  height: 122px;
  right: 9%;
  top: 655px;
  opacity: .34;
  animation-duration: 24s;
  animation-delay: -15s;
}

.om-orb--12 {
  width: 108px;
  height: 108px;
  right: 4%;
  top: 265px;
  opacity: .26;
  animation-duration: 22s;
  animation-delay: -10s;
}

/* 音符・ハートは隣接しない：hero左は音符だけ */
.om-dot {
  display: grid;
  place-items: center;
  background: transparent !important;
  border-radius: 0 !important;
  font-weight: 900;
  line-height: 1;
  opacity: .58;
  z-index: 1;
}

.om-dot--1,
.om-dot--3 {
  color: var(--sound-deep) !important;
  font-size: 22px !important;
}

.om-dot--2,
.om-dot--4,
.om-dot--5 {
  background: transparent !important;
  opacity: .24;
}

/* Hero */
.om-hero,
.om-section,
.om-news,
.om-cta,
.om-footer {
  background: transparent !important;
}

.om-hero__title {
  color: #4b372e !important;
}

.om-hero__text {
  color: #5f5147 !important;
}

.om-hero__photo-wrap {
  box-shadow:
    0 14px 32px rgba(126, 200, 246, .13),
    0 10px 24px rgba(245, 138, 173, .09);
}

/* Quick cards: 白ベース＋カードに淡い色 */
.om-quick-card {
  background: #ffffff !important;
  border: 1px solid rgba(240, 232, 223, .78);
  box-shadow: var(--shadow);
}

.om-quick-card:nth-child(1) { background: linear-gradient(180deg, #ffffff 0%, #fff3f8 100%) !important; }
.om-quick-card:nth-child(2) { background: linear-gradient(180deg, #ffffff 0%, #eaf8ff 100%) !important; }
.om-quick-card:nth-child(3) { background: linear-gradient(180deg, #ffffff 0%, #f2fbf5 100%) !important; }
.om-quick-card:nth-child(4) { background: linear-gradient(180deg, #ffffff 0%, #eef8ff 100%) !important; }
.om-quick-card:nth-child(5) { background: linear-gradient(180deg, #ffffff 0%, #fff9ea 100%) !important; }
.om-quick-card:nth-child(6) { background: linear-gradient(180deg, #ffffff 0%, #fff1f6 100%) !important; }

.om-bg-pink { background: #ffddeb !important; }
.om-bg-yellow { background: #fff0a8 !important; }
.om-bg-green { background: #dff4e7 !important; }
.om-bg-blue { background: #d9f1ff !important; }
.om-bg-purple { background: #eee3ff !important; }
.om-bg-coral { background: #ffe0d8 !important; }

/* Quick card icon decorationは控えめ、隣接しないよう1種類だけ */
.om-quick-card__icon {
  position: relative;
}

.om-quick-card__icon::after {
  content: "";
}

.om-quick-card:nth-child(2) .om-quick-card__icon::after,
.om-quick-card:nth-child(5) .om-quick-card__icon::after {
  content: "♪";
  position: absolute;
  right: -3px;
  top: 2px;
  color: var(--sound-deep);
  font-size: 15px;
  font-weight: 900;
  opacity: .52;
}

.om-quick-card:nth-child(1) .om-quick-card__icon::after,
.om-quick-card:nth-child(6) .om-quick-card__icon::after {
  content: "♡";
  position: absolute;
  right: -3px;
  top: 2px;
  color: var(--love-deep);
  font-size: 15px;
  font-weight: 900;
  opacity: .52;
}

/* Section titles: 左右に1つずつ、近すぎない控えめアクセント */
.om-section-title {
  color: #4b372e !important;
  gap: 20px !important;
}

.om-section-title__leaf {
  display: inline-grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 999px;
  font-size: 18px !important;
  font-weight: 900;
}

.om-section-title__leaf--note {
  color: var(--sound-deep) !important;
  background: var(--sound-soft);
}

.om-section-title__leaf--heart {
  color: var(--love-deep) !important;
  background: var(--love-soft);
}

/* Nursery cards: おとのもり＝音、あいのもり＝愛。隣接配置なし */
.om-nursery-card {
  box-shadow: var(--shadow);
}

.om-nursery-card--green {
  border: 2px solid rgba(126, 200, 246, .28) !important;
  background:
    radial-gradient(circle at 95% 12%, rgba(126, 200, 246, .14), transparent 23%),
    linear-gradient(180deg, #ffffff 0%, #eaf8ff 100%) !important;
}

.om-nursery-card--pink {
  border: 2px solid rgba(245, 138, 173, .30) !important;
  background:
    radial-gradient(circle at 95% 12%, rgba(245, 138, 173, .14), transparent 23%),
    linear-gradient(180deg, #ffffff 0%, #fff1f6 100%) !important;
}

.om-nursery-card__name--green {
  color: var(--sound-deep) !important;
}

.om-nursery-card__name--pink {
  color: var(--love-deep) !important;
}

.om-nursery-icon {
  display: inline-grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 999px;
  font-size: 27px !important;
  font-weight: 900;
  line-height: 1;
}

.om-nursery-icon--note {
  background: var(--sound-soft);
  color: var(--sound-deep);
}

.om-nursery-icon--heart {
  background: var(--love-soft);
  color: var(--love-deep);
}

.om-nursery-card__deco {
  bottom: 12px;
  font-weight: 900;
  letter-spacing: .12em;
  opacity: .46;
}

.om-deco-note {
  color: var(--sound-deep);
}

.om-deco-heart {
  color: var(--love-deep);
}

.om-nursery-btn--green {
  background: linear-gradient(180deg, #7ec8f6 0%, #55aee2 100%) !important;
}

.om-nursery-btn--pink {
  background: linear-gradient(180deg, #f79cba 0%, #ee729c 100%) !important;
}

/* Feature / photo / news */
.om-feature__box {
  background:
    radial-gradient(circle at 4% 10%, rgba(126,200,246,.10), transparent 20%),
    radial-gradient(circle at 96% 90%, rgba(245,138,173,.10), transparent 22%),
    #ffffff !important;
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
}

.om-photo-card {
  background: linear-gradient(180deg, #ffffff 0%, #fff8fb 100%) !important;
  border: 1px solid rgba(245, 138, 173, .12);
}

.om-news__list {
  background: linear-gradient(180deg, #ffffff 0%, #f8fcff 100%) !important;
  border: 1px solid rgba(126, 200, 246, .16);
}

/* News sideは縦横の距離を取り、音符とハートを近接させない */
.om-news__side {
  gap: 28px !important;
}

.om-news__music {
  color: var(--sound-deep);
  background: var(--sound-soft);
  border-radius: 999px;
  width: 66px;
  height: 66px;
  display: grid;
  place-items: center;
  font-size: 34px !important;
}

.om-news__love {
  color: var(--love-deep) !important;
  background: var(--love-soft);
  border-radius: 999px;
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  font-size: 24px !important;
  margin-left: 10px;
}

.om-news__tag.blog,
.om-news__tag.otonomori {
  background: var(--sound-deep) !important;
}

.om-news__tag.topics,
.om-news__tag.ainomori {
  background: var(--love-deep) !important;
}

/* CTA：ハートだけにしてくどさを抑える */
.om-cta__box {
  background:
    radial-gradient(circle at 8% 50%, rgba(245,138,173,.12), transparent 19%),
    linear-gradient(90deg, #ffffff 0%, #fff7fb 100%) !important;
  border: 1px solid rgba(240,232,223,.8);
}

.om-cta__school {
  color: var(--love-deep);
  background: #ffffff;
  border: 1px solid rgba(245, 138, 173, .22);
  border-radius: 999px;
  width: 66px;
  height: 66px;
  display: grid;
  place-items: center;
  font-size: 28px !important;
  box-shadow: 0 8px 18px rgba(245, 138, 173, .09);
}

.om-cta__btn {
  background: linear-gradient(180deg, #f79cba 0%, #ee729c 100%) !important;
  box-shadow: 0 10px 22px rgba(238, 114, 156, 0.18) !important;
}

/* Header/Footer keep clean white */
.om-header,
.om-footer {
  background: #ffffff !important;
}

.om-gnav a.is-active,
.om-gnav a:hover,
.om-footer__links a:hover {
  color: var(--love-deep) !important;
}

.om-gnav a.is-active::after {
  background: linear-gradient(90deg, var(--sound-deep), var(--love-deep)) !important;
}

@media (max-width: 768px) {
  .om-orb {
    opacity: .28;
  }

  .om-section-title__leaf {
    width: 28px;
    height: 28px;
    font-size: 16px !important;
  }

  .om-cta__school {
    width: 56px;
    height: 56px;
    font-size: 24px !important;
  }
}


/* ========================================
   Image center adjustment 2026052219
   指定画像の差し替えとセンター合わせのみ。
   色・あしらい・カードデザインは変更しない。
======================================== */
.om-nursery-card figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

.om-cta__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}


/* ========================================
   Image frame fit fix 2026052220
   画像枠から余白が見えないよう、対象画像のみ枠いっぱいにトリミング表示。
   色・あしらい・カード背景などのデザイン指定は変更しない。
======================================== */
#om-front-page .om-nursery-card figure {
  position: relative;
  overflow: hidden;
}

#om-front-page .om-nursery-card figure img {
  display: block;
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center center !important;
}

#om-front-page .om-cta__photo {
  position: relative;
  overflow: hidden;
}

#om-front-page .om-cta__photo img {
  display: block;
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center center !important;
}


/* ========================================
   Global Soft Nursery Animations 2026052221
   全ページ共通のやわらかいアニメーション
   body.om-anim-ready が付いた時だけ初期非表示にするため、JS無効環境でも内容は表示されます。
======================================== */

/* ふわっと表示 */
body.om-anim-ready .om-animate {
  opacity: 0;
  transform: translate3d(0, 22px, 0) scale(.985);
  transition:
    opacity .82s cubic-bezier(.22, 1, .36, 1),
    transform .82s cubic-bezier(.22, 1, .36, 1),
    filter .82s cubic-bezier(.22, 1, .36, 1);
  filter: blur(2px);
  transition-delay: var(--om-anim-delay, 0ms);
}

body.om-anim-ready .om-animate.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
  filter: blur(0);
}

/* タイトル系は少しだけ弾む */
body.om-anim-ready .om-animate.om-anim-pop {
  transform: translate3d(0, 18px, 0) scale(.94) rotate(-1deg);
}

body.om-anim-ready .om-animate.om-anim-pop.is-visible {
  transform: translate3d(0, 0, 0) scale(1) rotate(0);
}

/* 左右からやさしく入る */
body.om-anim-ready .om-animate.om-anim-left {
  transform: translate3d(-28px, 10px, 0) scale(.99);
}

body.om-anim-ready .om-animate.om-anim-right {
  transform: translate3d(28px, 10px, 0) scale(.99);
}

body.om-anim-ready .om-animate.om-anim-left.is-visible,
body.om-anim-ready .om-animate.om-anim-right.is-visible {
  transform: translate3d(0, 0, 0) scale(1);
}

/* カードは保育園らしく、ふんわり浮く */
.om-quick-card,
.om-nursery-card,
.om-photo-card,
.om-news__item,
.om-feature__box,
.om-cta__box,
.entry-content .wp-block-group,
.entry-content .wp-block-columns,
.entry-content .wp-block-image,
.entry-content .wp-block-media-text,
.entry-content .wp-block-cover,
.entry-content figure {
  transition:
    transform .35s cubic-bezier(.22, 1, .36, 1),
    box-shadow .35s cubic-bezier(.22, 1, .36, 1),
    filter .35s ease;
}

@media (hover: hover) {
  .om-quick-card:hover,
  .om-nursery-card:hover,
  .om-photo-card:hover,
  .om-news__item:hover,
  .entry-content .wp-block-group:hover,
  .entry-content .wp-block-image:hover,
  .entry-content figure:hover {
    transform: translateY(-5px);
    filter: saturate(1.03);
  }

  .om-quick-card:hover,
  .om-nursery-card:hover,
  .om-photo-card:hover {
    box-shadow: 0 14px 30px rgba(116, 88, 63, .13);
  }
}

/* ボタンは軽くぷかっと */
.om-nursery-btn,
.om-feature__btn,
.om-cta__btn,
button,
input[type="submit"],
.wp-block-button__link {
  transition:
    transform .28s cubic-bezier(.22, 1, .36, 1),
    box-shadow .28s cubic-bezier(.22, 1, .36, 1),
    filter .28s ease;
}

@media (hover: hover) {
  .om-nursery-btn:hover,
  .om-feature__btn:hover,
  .om-cta__btn:hover,
  button:hover,
  input[type="submit"]:hover,
  .wp-block-button__link:hover {
    transform: translateY(-3px) scale(1.02);
    filter: brightness(1.03);
  }
}

/* ヘッダーはページ表示時にやさしく降りる */
.om-header {
  animation: omHeaderDrop 680ms cubic-bezier(.22, 1, .36, 1) both;
}

@keyframes omHeaderDrop {
  from {
    opacity: 0;
    transform: translate3d(0, -14px, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

/* ロゴをほんの少しだけ呼吸させる */
.om-brand__logo,
.om-footer__logo {
  transform-origin: center;
}

@media (hover: hover) {
  .om-brand:hover .om-brand__logo,
  .om-footer__brand:hover .om-footer__logo {
    animation: omLogoWiggle 720ms ease both;
  }
}

@keyframes omLogoWiggle {
  0% { transform: rotate(0deg) scale(1); }
  28% { transform: rotate(-1.2deg) scale(1.015); }
  58% { transform: rotate(1deg) scale(1.01); }
  100% { transform: rotate(0deg) scale(1); }
}

/* 音符・ハート・丸あしらいを少し賑やかに */
.om-dot,
.om-section-title__leaf,
.om-nursery-icon,
.om-news__music,
.om-news__love,
.om-cta__school {
  animation: omSoftBob 4.8s ease-in-out infinite alternate;
  will-change: transform;
}

.om-section-title__leaf--heart,
.om-news__love,
.om-cta__school {
  animation-duration: 5.6s;
  animation-delay: -.9s;
}

.om-nursery-icon--heart {
  animation-duration: 5.2s;
  animation-delay: -1.4s;
}

@keyframes omSoftBob {
  0% {
    transform: translate3d(0, 0, 0) rotate(-1deg);
  }
  100% {
    transform: translate3d(0, -7px, 0) rotate(1.5deg);
  }
}

/* 画像は表示時に少しだけ明るく */
body.om-anim-ready .om-animate.om-anim-photo {
  transform: translate3d(0, 20px, 0) scale(.975);
  filter: blur(2px) saturate(.96);
}

body.om-anim-ready .om-animate.om-anim-photo.is-visible {
  transform: translate3d(0, 0, 0) scale(1);
  filter: blur(0) saturate(1);
}

/* 下層ページの通常コンテンツにも適用 */
body.om-anim-ready .site-main article,
body.om-anim-ready main article,
body.om-anim-ready .entry-header,
body.om-anim-ready .entry-content > *,
body.om-anim-ready .page-header,
body.om-anim-ready .widget {
  transition-delay: var(--om-anim-delay, 0ms);
}

/* ユーザーが動きを減らす設定の場合は停止 */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .001ms !important;
  }

  body.om-anim-ready .om-animate,
  body.om-anim-ready .om-animate.is-visible {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
  }
}


/* ========================================
   Hero copy line-break fix 2026052222
   「いっぱいあそんで、やさしく育つ。」を2行にし、
   下の説明文を上へ詰める調整。
======================================== */
#om-front-page .om-hero__title {
  font-size: clamp(46px, 5.1vw, 68px);
  line-height: 1.42;
  letter-spacing: .045em;
  margin: 0 0 18px;
  white-space: nowrap;
}

#om-front-page .om-hero__text {
  margin-top: 0;
  transform: translateY(-2px);
}

/* 2行化した分、全体の縦余白を少し圧縮 */
#om-front-page .om-hero__copy {
  padding-top: 74px;
  padding-bottom: 30px;
}

/* 音符などの小さなあしらいが文字に近づきすぎないよう微調整 */
#om-front-page .om-dot--1 {
  top: 60px;
}

#om-front-page .om-dot--2 {
  top: 86px;
}

#om-front-page .om-dot--3 {
  top: 250px;
}

#om-front-page .om-dot--4 {
  top: 386px;
}

#om-front-page .om-dot--5 {
  top: 410px;
}

/* スマホ・狭い画面でも2行を維持しつつ、はみ出しを防ぐ */
@media (max-width: 768px) {
  #om-front-page .om-hero__title {
    font-size: clamp(34px, 10vw, 48px);
    line-height: 1.5;
    letter-spacing: .035em;
    white-space: normal;
    margin-bottom: 14px;
  }

  #om-front-page .om-hero__copy {
    padding-top: 34px;
    padding-bottom: 22px;
  }

  #om-front-page .om-hero__text {
    transform: none;
  }

  #om-front-page .om-dot--1 {
    top: 18px;
  }

  #om-front-page .om-dot--2 {
    top: 54px;
  }

  #om-front-page .om-dot--3 {
    top: 170px;
  }
}


/* ========================================
   Hero title image-overlap fix 2026052223
   キャッチコピーがキービジュアル画像に干渉しないよう文字サイズと幅を調整。
======================================== */
#om-front-page .om-hero__copy {
  max-width: 460px;
  padding-top: 70px;
  padding-bottom: 28px;
}

#om-front-page .om-hero__title {
  font-size: clamp(42px, 4.05vw, 54px) !important;
  line-height: 1.48 !important;
  letter-spacing: .035em !important;
  margin: 0 0 16px !important;
  white-space: normal !important;
  max-width: 460px;
}

#om-front-page .om-hero__text {
  margin-top: 0 !important;
  transform: translateY(-2px);
}

/* PCで画像側へ食い込まないよう、左カラムの文字幅を明確に制限 */
@media (min-width: 1181px) {
  #om-front-page .om-hero__inner {
    grid-template-columns: 460px minmax(0, 1fr);
  }

  #om-front-page .om-hero__copy {
    overflow: visible;
  }
}

/* 中間幅ではさらに少しだけ抑える */
@media (max-width: 1280px) and (min-width: 769px) {
  #om-front-page .om-hero__title {
    font-size: clamp(40px, 4vw, 50px) !important;
    max-width: 430px;
  }

  #om-front-page .om-hero__copy {
    max-width: 430px;
  }
}

/* スマホでは2行を維持しつつ自然なサイズに */
@media (max-width: 768px) {
  #om-front-page .om-hero__copy {
    max-width: 100%;
    padding-top: 34px;
    padding-bottom: 22px;
  }

  #om-front-page .om-hero__title {
    font-size: clamp(34px, 9.4vw, 46px) !important;
    line-height: 1.5 !important;
    letter-spacing: .03em !important;
    max-width: 100%;
    margin-bottom: 14px !important;
  }

  #om-front-page .om-hero__text {
    transform: none;
  }
}


/* ========================================
   Hero title first-line keep fix 2026052224
   「いっぱいあそんで、」を必ず1行に収める。
   画像に干渉しないよう、PC時の文字サイズも少し抑える。
======================================== */
#om-front-page .om-hero__copy {
  max-width: 460px;
  padding-top: 70px;
  padding-bottom: 28px;
}

#om-front-page .om-hero__title {
  font-size: clamp(40px, 3.55vw, 48px) !important;
  line-height: 1.48 !important;
  letter-spacing: .018em !important;
  margin: 0 0 16px !important;
  max-width: 460px;
}

#om-front-page .om-hero-title-line {
  display: block;
  white-space: nowrap;
}

#om-front-page .om-hero-title-line--first {
  white-space: nowrap;
}

#om-front-page .om-hero__text {
  margin-top: 0 !important;
  transform: translateY(-2px);
}

/* PCでは左カラム内に確実に収め、右のキービジュアルへ干渉させない */
@media (min-width: 1181px) {
  #om-front-page .om-hero__inner {
    grid-template-columns: 460px minmax(0, 1fr);
    gap: 36px;
  }

  #om-front-page .om-hero__copy {
    overflow: visible;
  }
}

/* 中間幅ではさらに少しだけ文字を抑える */
@media (max-width: 1280px) and (min-width: 769px) {
  #om-front-page .om-hero__title {
    font-size: clamp(38px, 3.45vw, 45px) !important;
    max-width: 430px;
  }

  #om-front-page .om-hero__copy {
    max-width: 430px;
  }
}

/* スマホでは画面幅に合わせて自然に表示 */
@media (max-width: 768px) {
  #om-front-page .om-hero__copy {
    max-width: 100%;
    padding-top: 34px;
    padding-bottom: 22px;
  }

  #om-front-page .om-hero__title {
    font-size: clamp(32px, 8.6vw, 44px) !important;
    line-height: 1.52 !important;
    letter-spacing: .012em !important;
    max-width: 100%;
    margin-bottom: 14px !important;
  }

  #om-front-page .om-hero-title-line {
    white-space: nowrap;
  }

  #om-front-page .om-hero__text {
    transform: none;
  }
}
