@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@600&family=Noto+Serif+JP:wght@500;600;700;900&display=swap');

/* エデュケアトップ本文。PC 1877:32977 / SP 1877:32702。
   写真は指定枠をPC/SP別に書き出し、比率を保って表示する。 */
.front { padding-top:var(--rnw-header-h-sp); color:var(--rnw-text); font-family:var(--rnw-font-jp); font-size:14px; line-height:1.8; }
.front *,.front *::before,.front *::after { box-sizing:border-box; }
.front :where(h1,h2,h3,h4,p,ul,ol,li,figure,section) { margin:0; padding:0; }
.front :where(ul,ol) { list-style:none; }
:where(.front) :is(h1,h2,h3,h4) { font-family:var(--rnw-font-jp); font-size:14px; font-weight:400; line-height:1.6; color:var(--rnw-text); }
.front img { display:block; max-width:100%; }
.front a { text-decoration:none; }
.front-br-pc { display:none; }
#container { overflow:clip; }
.front-btn--outline { gap:24px; height:55px; padding:12px 32px; border:2px solid var(--rnw-main); background:#fff; color:var(--rnw-main); }
.front-btn--outline > img { flex:none; transform:rotate(-90deg); }

/* FV内に写真とコピーを収める。通常は写真の元の縦横比を維持する。 */
.front-hero {
  --front-fv-offset: var(--rnw-header-h-sp);
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr) auto;
  max-height: calc(100svh - var(--front-fv-offset) - 48.51px);
  background: #fff;
  container-type: inline-size;
}

#container .rnw-breadcrumb + .front .front-hero {
  --front-fv-offset: calc(var(--rnw-header-h-sp) + 20px + 12px * 1.8);
}

.front-hero__photo {
  grid-area: 1 / 1;
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  aspect-ratio: 375 / 300;
}
.front-hero__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.front-hero__copy { grid-area:2 / 1; display:flex; flex-direction:column; gap:10px; padding:24px 20px; background:linear-gradient(180deg,#ffdfe7,rgba(255,232,241,.4) 64.423%); }
.front-hero__copy-inner { display:flex; flex-direction:column; gap:10px; }
.front-hero__copy h1 { color:#bc326c; font-family:'Noto Serif JP','Yu Mincho',serif; font-size:clamp(20px,6.4cqi,24px); font-weight:700; line-height:1.6; letter-spacing:1.2px; }
.front-hero__copy h1 span { font-size:clamp(13px,4.2667cqi,16px); }
.front-hero__copy p { color:#626262; font-family:'Noto Serif JP','Yu Mincho',serif; font-size:16px; font-weight:700; line-height:1.6; }
.front-hero__badge { position:relative; z-index:1; grid-area:1 / 1; align-self:end; justify-self:end; width:150px; height:150px; aspect-ratio:1; margin:0 16px -33.872px 0; }
.front-badge { position:relative; width:250px; height:250px; color:#444; font-family:'Noto Serif JP',serif; transform:scale(.6); transform-origin:top left; }
.front-badge img { position:absolute; max-width:none; height:auto; }
.front-badge p { position:absolute; transform:translateX(-50%); text-align:center; }
.front-badge__circle { top:-16.3675px; left:-16.3675px; }
.front-badge__crown { top:14.88px; left:105px; }
.front-badge__laurel { top:50.7px; }
.front-badge__laurel--left { left:14.27px; }
.front-badge__laurel--right { left:188.14px; }
.front-badge__title { top:60.76px; left:126.29px; font-size:21.278px; font-weight:900; line-height:1.3; white-space:nowrap; }
.front-badge__line { left:70.55px; }
.front-badge__line--top { top:94.38px; }
.front-badge__line--bottom { top:120.03px; }
.front-badge__years { top:95.68px; left:123.34px; color:#626262; font-size:18.004px; font-weight:600; line-height:1.3; white-space:nowrap; }
.front-badge__number { top:127.13px; left:111.34px; font-family:'Times New Roman',serif; font-size:83.475px; line-height:65.471px; }
.front-badge__number span { letter-spacing:-3.339px; }
.front-badge__percent { top:162.41px; left:161.8px; font-size:26.188px; font-weight:700; line-height:26.188px; }
.front-badge__over { top:167.32px; left:181.97px; width:18.95px; font-size:9.821px; font-weight:500; line-height:9.821px; }
.front-badge__note { top:203.6px; left:121px; font-size:16.3683px; font-weight:500; line-height:16.3683px; }

.front-search-area { padding:24px; }
.front-search { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; width:100%; padding:24px; border-radius:20px; background:#507cb8; }
.front-search__heading { display:flex; align-items:flex-start; justify-content:center; gap:24px; width:100%; }
.front-search__icon { position:relative; display:block; flex:none; width:68.205px; height:69.602px; }
.front-search__icon img { position:absolute; top:50%; left:50%; max-width:none; transform:translate(-50%,-50%) rotate(41.78deg) scale(.72); }
.front-search__head { display:flex; flex-direction:column; justify-content:center; gap:4px; }
.front-search--quick .front-search__head { flex:1; min-width:0; }
.front-search__en { color:#fdff9c; font-family:'Montserrat',sans-serif; font-size:12px; font-weight:600; line-height:1.3; letter-spacing:3.7px; }
.front-search .front-search__ja { color:#fff; font-family:var(--rnw-font-educare-title); font-size:24px; font-weight:700; line-height:1.6; letter-spacing:1.2px; }
.front-search--quick .rnw-btn { width:100%; }
.front-search__text { color:#fff; font-family:var(--rnw-font-educare-title); font-size:14px; font-weight:500; line-height:1.8; letter-spacing:1.2px; }
.front-search--detail { position:relative; gap:24px; padding:54px 24px 24px; }
.front-search--detail .front-search__heading { justify-content:flex-start; }
.front-search--detail .front-search__icon { position:absolute; top:-39.672px; right:46.67px; width:94.732px; height:96.672px; }
.front-search--detail .front-search__icon img { transform:translate(-50%,-50%) rotate(41.78deg); }
.front-search--detail .rnw-btn { width:100%; }

.front-collage { padding:40px 24px 80px; background:linear-gradient(180deg,#fff 24.225%,rgba(245,181,197,.32) 54.756%,rgba(255,223,231,.59) 59.615%,rgba(245,181,197,.32) 70.733%,#fff); }
.front-collage__inner { position:relative; width:100%; aspect-ratio:327 / 283.9117; margin-inline:auto; }
.front-collage__photo { position:absolute; display:block; overflow:hidden; border-radius:13.295px; }
.front-collage__photo img { width:100%; height:auto; }
.front-collage__photo--01 { top:0; left:1.6026%; width:42.6933%; }
.front-collage__photo--02 { top:15.8252%; left:50.8625%; width:46.1966%; }
.front-collage__photo--03 { top:50.8902%; left:0; width:49.0798%; }
.front-collage__photo--04 { top:63.3772%; left:58.8275%; width:41.1725%; }
.rnw-reveal-ready .front :is(.front-hero__photo,.front-hero__badge,.front-hero__copy,.front-collage__photo)[data-rnw-reveal] { translate:none; }

.front-service { display:flex; flex-direction:column; align-items:center; gap:32px; padding:0 0 80px; background:linear-gradient(180deg,#f3f5f6,#6f9cd9 52.404%); }
.front-service__head { width:100%; }
.front-service__head-ph { display:block; width:100%; aspect-ratio:375 / 200; }
.front-service__head-ph img { width:100%; height:100%; object-fit:contain; }
.front-service__head-card { position:relative; display:flex; flex-direction:column; align-items:center; gap:24px; margin:-40px 16px 0; padding:24px; border-radius:20px; background:#fff; }
.front-service__head-icon { position:relative; display:block; width:42.2222px; height:40px; }
.front-service__head-icon img { position:absolute; top:0; left:0; max-width:none; transform:scale(.5); transform-origin:top left; }
.front-service__head-card h2 { display:flex; flex-direction:column; align-items:center; gap:4px; text-align:center; }
.front-service__head-en { color:#bc326c; font-family:'Montserrat',sans-serif; font-size:12px; font-weight:600; line-height:1.3; letter-spacing:3.7px; }
.front-service__head-ja { color:#507cb8; font-family:var(--rnw-font-educare-title); font-size:24px; font-weight:700; line-height:1.6; letter-spacing:1.2px; }
.front-service__blocks { display:flex; flex-direction:column; gap:32px; width:calc(100% - 32px); margin-inline:auto; }
.front-service__group,.front-service__block { display:flex; flex-direction:column; align-items:center; width:100%; padding:24px 16px; border-radius:20px; background:rgba(255,255,255,.9); }
.front-service .front-tag { flex:none; height:42px; }
.front-service__group { gap:56px; }
.front-service__sublist { display:flex; flex-direction:column; gap:24px; width:100%; }
.front-service__card,.front-service__item { display:grid; grid-template-columns:minmax(0,1fr); width:100%; min-width:0; }
.front-service__card { padding:24px 16px; border-radius:20px; background:#fff; }
@media (max-width:767px) {
  .front-service__card--international { container-type:inline-size; }
  .front-service__card--international .front-service__title { width:calc(100% + 5px); margin-left:-2.5px; font-size:min(20px,calc((100cqi - 20px) / 13)); letter-spacing:.8px; }
}
.front-service__title { margin-bottom:12px; color:#00429a; font-family:var(--rnw-font-educare-title); font-size:20px; font-weight:700; line-height:1.6; letter-spacing:1.2px; text-align:center; }
.front-service__ph { display:block; width:100%; aspect-ratio:279 / 200; margin-bottom:12px; }
.front-service__ph img { width:100%; height:100%; object-fit:contain; }
.front-service__text { display:flex; flex-direction:column; gap:8px; min-width:0; color:#444; font-family:var(--rnw-font-educare-title); letter-spacing:1.2px; }
.front-service__lead { font-size:20px; font-weight:700; line-height:1.6; }
.front-service__desc { font-size:14px; font-weight:500; line-height:1.8; }
.front-service__btn-wrap { padding-top:32px; }
.front-service__btn-wrap .rnw-btn { width:100%; }
.front-service__block { gap:24px; }
.front-service__item .front-service__title { margin-bottom:24px; }
.front-service__item .front-service__ph { aspect-ratio:311 / 200; }
.front-service__item .front-service__btn-wrap { padding-top:56px; }
.front-service__item .front-service__desc + .front-service__desc { margin-top:0; }
.front-note { padding:12px 16px; background:#faf7f2; }
.front-note p {
  max-width: 1280px;
  margin-inline: auto;
  color: #626262;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.3;
}

@media (min-width:768px) {
  .front { --front-space:80px; --front-pad:max(0px,calc((100% - 1140px) / 2)); padding-top:var(--rnw-header-h-pc); }
  .front-br-sp { display:none; }
  .front-br-pc { display:initial; }
  .front-hero {
    --front-fv-offset: var(--rnw-header-h-pc);
    grid-template-rows: minmax(0, 1fr);
    max-height: calc(100svh - var(--front-fv-offset));
  }

  #container .rnw-breadcrumb + .front .front-hero {
    --front-fv-offset: calc(var(--rnw-header-h-pc) + 40px + 13px * 1.8);
  }

  .front-hero__photo {
    aspect-ratio: 1440 / 800;
  }
  .front-hero__copy {
    position: absolute;
    grid-area: auto;
    bottom: 5.375%;
    left: 3.4722%;
    display: flex;
    gap: 12px;
    padding: 0;
    background: none;
    filter: drop-shadow(0 3px 21px #72001c);
  }
  .front-hero__copy-inner { gap:12px; }
  .front-hero__copy h1 { color:#fff; font-size:clamp(24px,3.33333cqi,60px); line-height:1.3; letter-spacing:2.1px; }
  .front-hero__copy h1 span { font-size:clamp(16px,2.22222cqi,40px); }
  .front-hero__copy p { color:#fff; font-size:clamp(12px,1.52778cqi,28px); line-height:1.6; letter-spacing:1.2px; }
  .front-hero__badge {
    position: absolute;
    bottom: 5.375%;
    right: 3.2597%;
    width: 250px;
    height: 250px;
    margin: 0;
  }
  .front-badge { transform:none; }
  .front-badge__note { top:206.98px; left:128.51px; font-size:9.821px; line-height:9.821px; }
  .front-search-area { padding:32px var(--front-space); }
  .front-search { flex-direction:row; gap:40px; max-width:1280px; margin-inline:auto; }
  .front-search__heading { align-items:center; width:auto; }
  .front-search--quick .front-search__head { flex:none; }
  .front-search__icon { width:94.732px; height:96.672px; }
  .front-search__icon img { transform:translate(-50%,-50%) rotate(41.78deg); }
  .front-search__en { font-size:16px; }
  .front-search .front-search__ja { font-size:32px; }
  .front-search--quick .rnw-btn { width:auto; }
  .front-search--detail { gap:24px; padding:24px; }
  .front-search--detail .front-search__icon { position:relative; top:auto; right:auto; }
  .front-search__text { flex:1; min-width:0; }
  .front-search--detail .rnw-btn { flex:none; width:auto; }
  .front-collage { padding:120px var(--front-space); background:linear-gradient(180deg,#fff 5.3802%,rgba(245,181,197,.32) 38.555%,rgba(255,223,231,.59) 50.996%,rgba(245,181,197,.32) 72.322%,#fff); }
  .front-collage__inner { max-width:1280px; aspect-ratio:1280 / 368.568; }
  .front-collage__photo { border-radius:31.63px; }
  .front-collage__photo--01 { top:0; left:0; width:25.6425%; }
  .front-collage__photo--02 { top:30.7514%; left:22.3609%; width:28.4661%; }
  .front-collage__photo--03 { top:0; left:44.4989%; width:29.4909%; }
  .front-collage__photo--04 { top:22.3866%; left:75.6005%; width:25.3852%; }
  .front-service { gap:80px; padding:120px 0; background:#e7effb; }
  .front-service__head { position:relative; width:calc(100% - var(--front-space) * 2); max-width:1280px; }
  .front-service__head-ph { width:62.5%; aspect-ratio:800 / 534; }
  .front-service__head-card { position:absolute; top:50%; left:47.65625%; flex-direction:row; justify-content:center; gap:40px; width:40.625%; height:200px; margin:0; transform:translateY(-50%); }
  .front-service__head-icon { flex:none; width:84.4444px; height:80px; }
  .front-service__head-icon img { transform:none; }
  .front-service__head-en { font-size:20px; }
  .front-service__head-ja { font-size:32px; }
  .front-service__blocks { gap:24px; width:calc(100% - var(--front-space) * 2); max-width:1280px; }
  .front-service__group,.front-service__block { padding:40px 56px 56px; border-radius:8px; }
  .front-service .front-tag { height:47px; font-size:18px; }
  .front-service__card,.front-service__item { grid-template-columns:minmax(0,1fr) min(37%,400px); grid-template-rows:auto auto auto; gap:24px; align-items:start; }
  .front-service__card { padding:40px; background:#e7effb; }
  .front-service__title,.front-service__item .front-service__title { grid-column:1; grid-row:1; margin:0; padding:24px 0; border-radius:8px; font-size:24px; background:#fff; }
  .front-service__item .front-service__title { background:#e7effb; }
  .front-service__card .front-service__ph,.front-service__item .front-service__ph { grid-column:2; grid-row:1 / 4; aspect-ratio:400 / 350; margin:0; }
  .front-service__text { grid-column:1; grid-row:2; gap:16px; }
  .front-service__lead { font-size:18px; line-height:1.8; }
  .front-service__btn-wrap,.front-service__item .front-service__btn-wrap { grid-column:1; grid-row:3; padding:0; }
  .front-service__btn-wrap .rnw-btn { max-width:400px; }
  .front-service__item .front-service__text { font-family:var(--rnw-font-jp); }
  .front-service__item .front-service__lead { font-size:20px; }
  .front-service__item .front-service__desc { font-size:16px; }
  .front-service__item .front-service__desc + .front-service__desc { margin-top:.8em; }
  .front-note { padding:12px var(--front-space); text-align:right; }
  .front-note p { font-size:8px; }
}
@media (min-width:768px) and (max-width:1125px) {
  .front { --front-space:24px; }
  .front-hero__badge { width:187.5px; height:187.5px; }
  .front-badge { transform:scale(.75); }
  .front-service__group,.front-service__block { padding:32px 24px; }
  .front-service__card { padding:24px; }
  .front-service__head-card { gap:20px; width:50%; left:45%; height:auto; min-height:160px; }
  .front-service__head-ja { font-size:24px; }
  .front-search--detail { flex-wrap:wrap; }
  .front-search--detail .front-search__text { flex-basis:calc(100% - 260px); }
}
@media (min-width:768px) and (max-width:899px) {
  .front-service__card,.front-service__item { grid-template-columns:minmax(0,1fr); }
  .front-service__card .front-service__title,.front-service__item .front-service__title { grid-column:1; grid-row:1; }
  .front-service__card .front-service__ph,.front-service__item .front-service__ph { grid-column:1; grid-row:2; }
  .front-service__text { grid-column:1; grid-row:3; }
  .front-service__btn-wrap,.front-service__item .front-service__btn-wrap { grid-column:1; grid-row:4; }
}

/* お知らせ以降の既存スタイル */
.front-h2 {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin: 0;
}
.front-h2__en {
  font-family: 'Krona One', sans-serif;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: 3.7px;
  color: var(--rnw-accent);
}
.front-h2__jp {
  font-family: var(--rnw-font-educare-title);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 1.2px;
  color: var(--rnw-main2);
}
.front-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px;
  border: 0.745px solid var(--rnw-main);
  border-radius: 8px;
  background-color: #FFFFFF;
  font-family: var(--rnw-font-jp);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 1.2px;
  color: var(--rnw-main);
  white-space: nowrap;
}
.front-tag--news {
  flex: 1 0 0;
  min-width: 0;
  padding: 4px 8px;
  font-size: 12px;
}
.front-btn--outline-red {
  border: 2px solid var(--rnw-link);
  background-color: #FFFFFF;
  color: var(--rnw-link);
}
.front-news {
  padding: 80px 16px;
  background-color: #FFFFFF;
}
.front-news__inner {
  display: flex;
  flex-direction: column;
  gap: 32px;
}
.front-news__list {
  padding-bottom: 8px;
}
.front-news__item {
  border-bottom: 1px solid #E2E2E2;
}
.front-news__item:first-child {
  border-top: 1px solid #E2E2E2;
}
.front-news__link {
  display: block;
  padding: 16px 15px;
  text-decoration: none;
}
.front-news__figure {
  display: flex;
  align-items: flex-start;
}
.front-news__thumb {
  display: block;
  flex: 0 0 100px;
  width: 100px;
  height: 70px;
  margin-right: 8px;
  overflow: hidden;
}
.front-news__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.front-news__body {
  display: flex;
  flex: 1 0 0;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}
.front-news__meta {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
}
.front-news__date {
  font-family: 'Lusitana', serif;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: 1.2px;
  color: var(--rnw-link);
  white-space: nowrap;
}
.front-news__title {
  font-family: var(--rnw-font-jp);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.8;
  letter-spacing: 0.168px;
  color: var(--rnw-text);
}
.front-news__title .size {
  margin-left: 4px;
  font-size: 12px;
  font-weight: 400;
  color: var(--rnw-caption);
}
@media only screen and (min-width: 768px) {
.front-news__inner {
    width: min(980px, calc(100% - 48px));
    margin-inline: auto;
  }
.front-h2__en { font-size: 20px; }
.front-h2__jp { font-size: 32px; }
.front-h2__jp br { display: none; }
.front-news {
    padding: 80px var(--front-pad);
  }
.front-news__inner {
    display: grid;
    grid-template-columns: 1fr auto;
    column-gap: 56px;
    row-gap: 56px;
    align-items: end;
  }
.front-news__inner > .front-h2 { grid-column: 1; grid-row: 1; }
.front-news__list { grid-column: 1 / -1; grid-row: 2; }
.front-news__inner > .rnw-btn {
    grid-column: 2;
    grid-row: 1;
    width: 301px;
  }
.front-news__figure {
    align-items: center;
    gap: 24px;
  }
.front-news__thumb {
    flex: 0 0 142.857px;
    width: 142.857px;
    height: 100px;
    margin-right: 11.429px;
  }
.front-news__date { font-size: 16px; }
.front-tag--news {
    flex: 0 0 auto;
    padding: 8px 16px;
    font-size: 14px;
  }
.front-news__title {
    font-size: 20px;
    font-weight: 500;
    letter-spacing: 1.2px;
  }
}
@media (min-width: 768px) {
.front-news__inner {
    width: min(1280px, calc(100% - 48px));
    margin-inline: auto;
  }
}

/* パンくずで確保したヘッダー分の余白を本文で重複させない。 */
#container .rnw-breadcrumb + .front { padding-top: 0; }
