:root{
  --color-main: #fb7104;
  --color-sub: #0a4c7d;
  --color-accent: #079bd3;
  --color-text: #282828;
  --text-left: left;
  --text-center: center;
}
html{
  margin: 0;
  padding: 0;
  overflow-x: hidden;
  scroll-behavior: smooth;
}
body{
  width: 100%;
  min-height: 100%;
  margin: 0 auto;
  color: var(--color-text);
  font-family: "Noto Sans JP", sans-serif;
  text-align: center;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
ul{
  margin-block-start: 0;
  margin-block-end: 0;
  padding-inline-start: 0;
  list-style-type: none;
}
p{
  line-height: 1.7em;
  text-align: var(--text-left);
}
img{
  display: block;
  max-width: 100%;
  height: auto;
}
a:link,
a:visited,
a,
a:hover,
a:active{
  text-decoration: none;
}
#wrapper{
  width: 100%;
  overflow: hidden;
}

/*header*/
.site-header{
  position: fixed;
  z-index: 10;
  top: 0;
  left: 0;
  width: 100%;
  background-color: rgba(255, 255, 255, 0.10);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
.site-header__inner{
  display: flex;
  align-items: center;
  width: min(100% - 80px, 1756px);
  height: 80px;
  margin: 0 auto;
}
.site-header__logo{
  flex: 0 0 auto;
  width: 192px;
}
.site-header__nav{
  flex: 1;
  margin-left: 62px;
}
.site-header__nav-list{
  display: grid;
  grid-template-columns: repeat(5, max-content);
  align-items: center;
  column-gap: 20px;
  row-gap: 8px;
  text-align: left;
}
.site-header__nav-list a{
  color: #282828;
  font-size: 16px;
  font-weight: 500;
  white-space: nowrap;
  transition: color .25s ease;
}
.site-header__nav-list a:hover{
  color: var(--color-main);
}

/*main*/
.site-main{
}

/*fv*/
.top-fv{
  position: relative;
  min-height: 945px;
  background: #fff url("../images/fv-bg.jpg") top right / auto 100% no-repeat;
}
.top-fv__inner{
  width: min(100% - 80px, 1620px);
  margin: 0 auto;
  padding-top: 154px;
  box-sizing: border-box;
}
.top-fv__content{
  width: 820px;
  text-align: left;
}
.top-fv__eyebrow{
  margin: 0 0 12px;
  color: #282828;
  font-size: 30px;
  font-weight: 700;
  line-height: 1.5;
}
.top-fv__title{
  margin: 0;
  color: var(--color-main);
  font-size: clamp(76px, 6.25vw, 120px);
  font-weight: 700;
  line-height: 1.13;
  letter-spacing: .01em;
}
.top-fv__lead{
  margin: 24px 0 0;
  color: #282828;
  font-size: 38px;
  font-weight: 700;
  line-height: 1.45;
}
.top-fv__text{
  margin: 26px 0 0;
  color: var(--color-sub);
  font-size: 17px;
  font-weight: 700;
  line-height: 1.8;
}
.top-fv__buttons{
  display: flex;
  gap: 28px;
  margin-top: 37px;
}
.top-fv__button{
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  width: 372px;
  min-height: 82px;
  padding: 12px 48px 12px 34px;
  border: 3px solid var(--color-main);
  border-radius: 50px;
  box-sizing: border-box;
  font-size: 18px;
  font-weight: 700;
  transition: color .25s ease, background-color .25s ease, transform .25s ease;
}
.top-fv__button > img:first-child{
  flex: 0 0 auto;
  margin-right: 20px;
  object-fit: contain;
}
.top-fv__button img{
  transition: filter .25s ease;
}
.top-fv__button-arrow{
  position: absolute;
  top: 50%;
  right: 27px;
  width: 14px;
  transform: translateY(-50%);
}
.top-fv__button--primary{
  color: #fff;
  background-color: var(--color-main);
}
.top-fv__button--secondary{
  color: #282828;
  background-color: #fff;
}
.top-fv__button:hover{
  transform: translateY(-3px);
}
.top-fv__button--primary:hover{
  color: var(--color-main);
  background-color: #fff;
}
.top-fv__button--primary:hover img{
  filter: brightness(0) saturate(100%) invert(48%) sepia(98%) saturate(3306%) hue-rotate(359deg) brightness(101%) contrast(97%);
}
.top-fv__button--secondary:hover{
  color: #fff;
  background-color: var(--color-main);
}
.top-fv__button--secondary:hover img{
  filter: brightness(0) invert(1);
}

/*common section*/
.common-inner{width:min(100% - 80px,1100px);margin-inline:auto}.section-block{padding:95px 0;box-sizing:border-box}.section-title{margin:0 0 70px;color:var(--color-main);font-size:46px;font-weight:700;line-height:1.3}.section-title::after{display:block;width:88px;height:3px;margin:24px auto 0;background:currentColor;content:""}.section-title--white{color:#fff}.section-lead{margin:-20px 0 55px;color:var(--color-sub);font-size:28px;font-weight:500;text-align:center}.section-lead em{color:var(--color-main);font-style:normal}.section-lead--white{color:#fff}.orange-section{color:#fff;background:var(--color-main) url("../images/block02-bg.jpg") center/cover no-repeat}.section-note{width:min(100% - 40px,840px);margin:45px auto 0;padding:14px 30px;border-radius:40px;color:#fff;background:var(--color-main);box-sizing:border-box;font-size:20px;font-weight:700;text-align:center}

/*about*/
.top-about{padding-bottom:105px}
.top-about .common-inner{width:100%}
.top-about__layout{display:grid;grid-template-columns:280px 1fr 280px;gap:52px;align-items:start}
.top-about__photos{display:flex;flex-direction:column;gap:30px;margin-top:80px}
.top-about__photo{width:100%}
.top-about__content>p{margin:0 0 34px;font-size:20px;line-height:1.85;text-align:center}
.top-about__intro{font-weight:700}
.top-about__values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;width:min(calc(100% - 40px),600px);margin:55px auto}
.top-about__values span{display:flex;flex-direction:column;align-items:center;justify-content:center;width:min(100%,190px);height:auto;aspect-ratio:1;margin:auto;border:1px solid rgba(251,113,4,.4);border-radius:50%;box-sizing:border-box}
.top-about__values img{max-width:90px;max-height:85px}
.top-about__values h3{margin:12px 0 0;font-size:22px;line-height:1.35;font-weight: 500;}
.top-about__values p{margin:14px 0 0;font-size:17px;line-height:1.5;text-align:center}
.top-about__message{color:var(--color-main);font-size:25px!important;font-weight:700}

.top-about .common-inner{
  width: 94%;
}

.top-about__values img{
  width:116px;
  height:91px;
  max-width:none;
  max-height:none;
  object-fit:contain;
}

@media screen and (max-width: 1300px) {
  .top-about__layout{
    grid-template-columns: minmax(0, 280px) minmax(600px, 1fr) minmax(0, 280px);
    gap: 20px;
  }
}

/*numbers*/
.top-numbers{background-image:url("../images/block02-bg.jpg")}
.numbers-grid{display:grid;gap:20px}
.numbers-grid--main{grid-template-columns:repeat(5,1fr)}
.numbers-grid article{padding:34px 14px 25px;border-radius:4px;color:#282828;background:#fff;box-shadow:0 3px 8px rgba(0,0,0,.16);box-sizing:border-box}
.numbers-grid img{width:auto;height:70px;margin:0 auto 18px}
.numbers-grid p{margin:0;text-align:center}
.numbers-grid strong{display:block;margin-top:12px;color:var(--color-main);font-size:42px}
.numbers-grid strong.ptn1{font-size:62px;margin-top: 0;}
.numbers-grid strong.ptn2{font-size:50px;margin-top: 5px;}
.numbers-grid strong.ptn3{font-size:50px;margin-top: 5px;}
.numbers-grid small{color:#282828;font-size:15px}
.numbers-subtitle{display:flex;align-items:center;gap:35px;margin:65px 0 35px;font-size:21px}
.numbers-subtitle::before,.numbers-subtitle::after{flex:1;height:1px;background:#fff;content:""}
.numbers-grid--students{grid-template-columns:repeat(2,1fr)}
.numbers-grid--students h4{margin:0 0 18px;font-size:20px}
.ratio{display:flex;align-items:center;justify-content:center;width:174px;height:174px;margin:0 auto;border-radius:50%;color:#fff;font-size:12px}
.ratio--gender{background:conic-gradient(#ffbf84 0 42%,#ff7a00 42%)}
.ratio--study{background:conic-gradient(#ffbf84 0 34%,#ff7a00 34%)}
.ratio--study{gap:6px}
.ratio--study span{transform:translateY(-8px)}
.grade-card p{padding:5px 0;border-bottom:1px solid #efb27a;font-size:13px;margin-bottom: 5px;}
.grade-card b{color:var(--color-main);font-size:28px}

.numbers-grid--main img{
  width:110px;
  height:110px;
  padding:15px;
  border-radius:50%;
  background-color:#f6f6f6;
  box-sizing:border-box;
  object-fit:contain;
}

.numbers-grid--main p{
  font-size:18px;
  font-weight:600;
}

.numbers-grid--students article:nth-child(-n+2) img{
  width:110px;
  height:110px;
  padding:15px;
  border-radius:50%;
  background-color:#f6f6f6;
  box-sizing:border-box;
  object-fit:contain;
}

.numbers-grid--students h4{
  font-weight:600;
}

.ratio-content{
  display:grid;
  grid-template-columns:174px auto;
  align-items:center;
  gap:40px;
  width:fit-content;
  max-width:100%;
  margin:0 auto;
}

.ratio-breakdown{
  display:grid;
  gap:18px;
  min-width:120px;
}

.ratio-breakdown p{
  display:flex;
  align-items:baseline;
  justify-content:flex-end;
  gap:10px;
}

.ratio-breakdown p > span{
  flex:none;
  font-size:18px;
  font-weight:600;
  line-height:1.3;
}

.ratio-breakdown strong{
  display:flex;
  align-items:baseline;
  margin-top:0;
  font-size:42px;
  line-height:1;
}

.ratio-breakdown strong small{
  margin-left:2px;
  font-size:18px;
  font-weight:600;
}

.grade-card p{
  font-size:16px;
}

.grade-card b{
  font-size:42px;
}

/*points*/
.top-points__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:95px}.top-points article>b{display:block;color:var(--color-main);font-size:34px}.top-points article>span{display:flex;align-items:center;justify-content:center;width:190px;height:190px;margin:10px auto 20px;border-radius:50%;background:var(--color-main)}.top-points img{max-width:115px;max-height:100px;filter:brightness(0) invert(1)}.top-points p{margin:0;font-size:17px;font-weight:700;line-height:1.6;text-align:center}

.top-points__grid{
  max-width:1000px;
}

.top-points__grid p{
  font-size:20px;
}

/*strength*/
.strength{background-position:center;background-size:cover}.strength--01{background-image:url("../images/block04-bg.jpg")}.strength--02{background-image:url("../images/block05-bg.jpg");}.strength--02::before{display:none}.strength--03{background-image:url("../images/block06-bg.jpg")}.strength__lead{display:grid;grid-template-columns:1.5fr .9fr;gap:70px;align-items:center;margin-bottom:45px;text-align:left}.strength__lead h3{margin:0 0 25px;color:var(--color-sub);font-size:25px;line-height:1.5}.strength__lead em{color:var(--color-main);font-style:normal}.strength__lead p{margin:0;font-size:15px}.strength__lead img{width:100%}.feature-box{overflow:hidden;border-radius:5px;background:#fff;box-shadow:0 4px 12px rgba(0,0,0,.17)}.feature-box>h3{margin:0;padding:20px;color:#fff;background:var(--color-main);font-size:26px}.feature-box__grid{display:grid;grid-template-columns:repeat(5,1fr);gap:40px;padding:38px 55px 25px}.feature-box__grid img{width:auto;height:65px;margin:0 auto 14px}.feature-box__grid h4{min-height:48px;margin:0 0 10px;color:var(--color-main);font-size:15px;line-height:1.5}.feature-box__grid p{margin:0;font-size:13px;line-height:1.6}.feature-box__note{width:75%;margin:15px auto 40px;padding:13px 24px;border-radius:40px;color:#fff;background:var(--color-main);font-weight:500;text-align:center}

.strength__lead h3{
  font-size:30px;
  font-weight:600;
}

.strength__lead p{
  font-size:18px;
}

.strength__lead--analysis{
  grid-template-columns:minmax(0,1fr) 440px;
  gap:30px;
  align-items:end;
}

.strength__analysis-results{
  display:grid;
  grid-template-columns:minmax(0,386fr) minmax(0,154fr);
  gap:18px;
  align-items:end;
  margin-top:24px;
}

.strength__analysis-results img,
.strength__lead .strength__analysis-types{
  width:100%;
}

.strength--03 .feature-box__grid{
  grid-template-columns:repeat(4,1fr);
}

.strength{
  background-attachment:fixed;
}

.feature-box > h3{
  font-size:30px;
  font-weight: 600;
  letter-spacing:.05em;
}

.feature-box__icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:110px;
  height:110px;
  margin:0 auto 14px;
  border-radius:50%;
  background-color:#f6f6f6;
}

.feature-box__grid .feature-box__icon img{
  width:auto;
  height:auto;
  max-width:80px;
  max-height:80px;
  margin:0;
  padding:0;
  border-radius:0;
  background:none;
  object-fit:contain;
}

.feature-box__grid h4{
  font-size:18px;
  font-weight:600;
}

.feature-box__grid p{
  font-size:15px;
}

.feature-box__note{
  font-size:19px;
}

/*program*/
.top-program{background:url("../images/block07-bg.jpg") center/cover}.program-list{position:relative;width:min(100% - 80px,760px)}.program-list::before{position:absolute;top:40px;bottom:50px;left:57px;width:2px;background:var(--color-main);content:""}.program-list article{position:relative;display:grid;grid-template-columns:115px 225px 1fr;gap:28px;align-items:center;margin-bottom:30px;text-align:left}.program-list article>b{z-index:1;display:flex;align-items:center;justify-content:center;width:88px;height:88px;border-radius:50%;color:#fff;background:var(--color-main);font-size:14px;text-align:center}.program-list article>b strong{font-size:28px}.program-list article img{width:225px}.program-list h3{margin:0 0 10px;color:var(--color-main);font-size:20px}.program-list p{margin:0;font-size:14px}

.program-list::before{
  left:44px;
}

.program-list article > b{
  flex-direction:column;
  font-size:20px;
  font-weight:500;
  line-height:1;
}

.program-list article > b strong{
  font-size:37px;
  line-height:1;
}

.program-list article > b br{
  display:none;
}

.program-list h3{
  font-size:25px;
  font-weight: 500;
}

.program-list p{
  font-size:18px;
}

/*schedule*/
.top-schedule{background-image:url("../images/block02-bg.jpg")}.top-schedule.is-kyoto{background-image:url("../images/block02-bg2.jpg")}.schedule-table-wrap{overflow-x:auto;text-align:left}.schedule-table-wrap table{width:100%;min-width:960px;border-collapse:collapse;color:#282828;background:#fff}.schedule-table-wrap th{padding:16px 12px;color:#fff;background:#999;text-align:center}.schedule-table-wrap td{padding:16px 12px;border:1px solid #cfd9df;font-size:14px;text-align:center}.schedule-table-wrap tr:nth-child(even){background:#edf7fc}.schedule-table-wrap>p{color:#fff;font-size:12px}

.schedule-tabs__switch{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,220px));
  justify-content:center;
  gap:12px;
  margin-bottom:24px;
}

.schedule-tabs__switch button{
  padding:14px 30px;
  border:2px solid #fff;
  border-radius:6px;
  color:#fff;
  background:transparent;
  font:inherit;
  font-size:20px;
  font-weight:700;
  cursor:pointer;
}

.schedule-tabs__switch button[aria-selected="true"]{
  color:var(--color-main);
  background:#fff;
}

.schedule-table-wrap[hidden]{
  display:none;
}

.schedule-table-wrap td{
  border-color:#e0e6ed;
  font-size:16px;
}

.schedule-table-wrap th{
  border:1px solid #e0e6ed;
}

/*price*/
.price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}.price-grid article{display:flex;flex-direction:column;min-height:570px;padding:44px 38px;border-radius:4px;background:#fff;box-shadow:0 3px 13px rgba(0,0,0,.14);box-sizing:border-box;text-align:left}.price-grid h3{margin:0 0 15px;color:var(--color-sub);font-size:25px;text-align:center}.price-grid article>p{text-align:center}.price-grid ul{margin:30px 0}.price-grid li{margin:10px 0;font-size:14px}.price-grid li::before{color:#159fcf;content:"・"}.price-grid strong{display:block;margin-top:auto;color:#159fcf;font-size:56px;text-align:center}.price-grid strong small{color:#282828;font-size:22px}.price-grid a{display:block;padding:13px;color:#fff;background:#12a7d8;font-weight:700;text-align:center}.price-card--orange h3,.price-card--orange strong{color:var(--color-main)}.price-card--orange a{background:var(--color-main)}.price-caption{text-align:left}.price-support{display:flex;align-items:center;justify-content:space-between;margin-top:45px;padding:25px 45px;background:#fff;box-shadow:0 3px 12px rgba(0,0,0,.13);box-sizing:border-box;color:var(--color-sub);font-size:27px}.price-support img{max-width:72px;max-height:84px}

.price-grid h3{
  font-size:28px;
  font-weight:600;
}

.price-features{
  width:100%;
  margin:28px 0;
  border-collapse:collapse;
}

.price-features th,
.price-features td{
  padding:10px 6px;
  border-bottom:1px solid #dce5ea;
}

.price-features th{
  font-size:14px;
  font-weight:500;
  text-align:left;
}

.price-features tr:first-child th{
  color:var(--color-sub);
  font-size:22px;
  font-weight:700;
}

.price-features tr:first-child td{
  width:48px;
  white-space:nowrap;
  text-align:right;
}

.price-card--blue .price-features tr:first-child th{
  color:#1e8dbe;
}

.price-card--orange .price-features tr:first-child th{
  color:var(--color-main);
}

.price-features td{
  width:34px;
  font-size:22px;
  font-weight:700;
  line-height:1;
  text-align:center;
}

.price-features .is-available{
  color:#159fcf;
}

.price-features .is-unavailable{
  color:#a9b0b5;
}

.price-card--orange .price-features .is-available{
  color:var(--color-main);
}

.price-grid strong .price-tax{
  margin-left:4px;
  font-size:13px;
  font-weight:500;
}

.price-contact-button{
  display:block;
  width:min(calc(100% - 40px),420px);
  margin:28px auto 0;
  padding:16px 24px;
  border-radius:6px;
  box-sizing:border-box;
  color:#fff;
  background:var(--color-main);
  font-size:18px;
  font-weight:700;
  text-align:center;
}

.price-support__content{
  flex:1;
  padding:0 30px;
  text-align:center;
}

.price-support__content h3{
  margin:0 0 10px;
  color:var(--color-main);
  font-size:26px;
  font-weight:600;
}

.price-support__content p{
  margin:0;
  color:#282828;
  font-size:18px;
  line-height:1.8;
}

.price-grid article > p{
  height:80px;
  margin:0;
  padding-bottom:0;
  border-bottom:2px solid #cbecfb;
  box-sizing:border-box;
  font-size:16px;
}

.price-grid li{
  padding-left:1em;
  font-size:17px;
  font-weight:500;
  text-indent:-1em;
}

.price-grid ul{
  margin-top:20px;
}

.price-grid strong{
  margin:auto 0 25px;
  font-size:70px;
  line-height:1;
}

.price-grid a{
  border-radius:6px;
  font-size:17px;
}

.price-card--blue h3,
.price-card--blue strong,
.price-card--blue li::before{
  color:#1e8dbe;
}

.price-card--blue a{
  background-color:#1e8dbe;
}

.price-caption.common-inner{
  margin-top:1em;
}

.price-followup{
  margin-top:35px;
  text-align:left;
}

.price-followup strong{
  color:#224c76;
  font-size:20px;
  font-weight:600;
}

.price-followup p{
  margin:8px 0 0;
  color:#282828;
  font-size:16px;
}

/*timetable*/
.top-timetable{background:url("../images/block10-bg.jpg") center/cover}
.timetable-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:65px;text-align:left}
.timetable-layout ol{margin:0;padding:0;list-style:none}
.timetable-layout li{position:relative;display:grid;grid-template-columns:180px 1fr;gap:40px;min-height:100px}
.timetable-layout li::before{position:absolute;top:3px;left:190px;width:18px;height:18px;border-radius:50%;background:var(--color-main);content:""}
.timetable-layout li::after{position:absolute;top:18px;bottom:-21px;width:2px;background:var(--color-main);content:""}
.timetable-layout li:last-child::after{display:none}
.timetable-layout time,.timetable-layout h3{color:var(--color-sub);font-weight:700}
.timetable-layout h3{margin:0 0 6px;font-size:19px}
.timetable-layout p{margin:0 0 1em;font-size:14px}
.timetable-photos img+img{margin-top:18px}
.timetable-note{font-size:12px;text-align:left}

.timetable-layout time{
  font-size:20px;
  text-align:left;
}

.timetable-layout h3{
  font-size:22px;
}

.timetable-layout p{
  font-size:18px;
}

.timetable-layout li::before{
  left:165px;
}
.timetable-layout li::after{
  left:173px;
}

@media screen and (min-width:768px){
  .timetable-layout ol{
    display:block;
  }

  .timetable-layout li{
    height:auto;
  }
}

/*contract flow*/
.contract-flow{width:min(100% - 80px,730px);text-align:left}.contract-flow article{position:relative;display:grid;grid-template-columns:100px 1fr;gap:35px;align-items:center;min-height:130px}.contract-flow article::after{position:absolute;top:105px;bottom:-25px;left:49px;border-left:2px dotted #ddd;content:""}.contract-flow article:last-child::after{display:none}.contract-flow article>img{width:auto;max-width:75px;max-height:72px;margin:auto}.contract-flow h3{margin:0 0 8px;color:var(--color-main);font-size:18px}.contract-flow h3 b{display:inline-block;margin-right:18px;padding:4px 10px;color:#fff;background:var(--color-main);font-size:14px}.contract-flow p{margin:0;font-size:13px}

.contract-flow article{
  grid-template-columns:110px 1fr;
  min-height:110px;
  margin-bottom:60px;
}

.contract-flow article:last-child{
  margin-bottom:0;
}

.contract-flow article::after{
  top:110px;
  bottom:-120px;
  left:54px;
  z-index:0;
  border-left-color:#f6f6f6;
}

.contract-flow__icon{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:center;
  width:110px;
  height:110px;
  border-radius:50%;
  background-color:#f6f6f6;
}

.contract-flow__icon img{
  width:auto;
  height:auto;
  max-width:75px;
  max-height:72px;
}

.contract-flow h3{
  font-size:22px;
  font-weight: 500;
}

.contract-flow h3 b{
  margin-right:18px;
  padding:7px 28px 7px 14px;
  clip-path:polygon(0 0,calc(100% - 14px) 0,100% 50%,calc(100% - 14px) 100%,0 100%);
  font-size:20px;
  line-height:1;
}

.contract-flow p{
  font-size:17px;
}

/*faq*/
.top-faq{background-image:url("../images/block02-bg.jpg")}.faq-list{width:min(100% - 80px,850px)}.faq-list details{margin-bottom:18px;border-radius:5px;color:#282828;background:#fff;text-align:left}.faq-list summary{display:grid;grid-template-columns:56px 1fr 24px;gap:18px;align-items:center;padding:26px 34px;cursor:pointer;font-size:18px;font-weight:500;list-style:none}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary b{display:flex;align-items:center;justify-content:center;width:55px;height:55px;border-radius:4px;color:#fff;background:#ffb16f;font-size:36px;font-weight: 500 !important;}.faq-list summary img{transition:transform .25s}.faq-list details[open] summary img{transform:rotate(180deg)}.faq-list details>p{margin:0;padding:0 34px 26px 108px}

.faq-list summary b{
  padding-bottom:3px;
  box-sizing:border-box;
  line-height:1;
}

.faq-list details{
  interpolate-size:allow-keywords;
}

.faq-list details::details-content{
  height:0;
  overflow:hidden;
  opacity:0;
  transition:
    content-visibility .45s allow-discrete,
    height .45s ease,
    opacity .35s ease;
}

.faq-list details[open]::details-content{
  height:auto;
  opacity:1;
}

.faq-list details > p{
  font-size:18px;
}

.top-faq{
  background-position:center top;
  background-size:1920px auto;
  background-repeat:no-repeat;
}

/*contact*/
.contact-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:75px;text-align:left}.contact-copy h3{font-size:24px;line-height:1.5;font-weight: 600;margin-bottom: 0.7em;}.contact-copy ul{margin-top:25px;padding:20px 35px 30px;background:#f6f6f6;border-radius: 6px;}.contact-copy li{padding:14px 0;border-bottom:1px solid #ccc;font-weight:700}.contact-copy li::before{margin-right:12px;color:var(--color-main);content:"✓"}.contact-form label{display:grid;grid-template-columns:190px 1fr;align-items:start;margin-bottom:15px}.contact-form label>span{padding-top:13px;font-weight:700}.contact-form small{margin-left:12px;padding:3px 7px;border-radius:12px;color:#fff;background:#aaa}.contact-form input,.contact-form textarea{width:100%;padding:14px;border:2px solid #dce7ed;box-sizing:border-box}.contact-form textarea{min-height:110px;resize:vertical}.contact-form button{display:block;width:360px;margin:35px 0 0 auto;padding:14px;color:#fff;background:#0ca0d5;font-size:22px;font-weight:700;text-align: center;border-radius: 6px;}.contact-info{display:flex;align-items:center;gap:28px;margin-top:45px;padding:25px 45px;background:#f6f6f6;box-sizing:border-box;color:var(--color-main);font-weight:700}.contact-info img{width:50px}

.contact-copy li{
  font-size:17px;
}

.contact-copy li::before{
  display:inline-block;
  width:21px;
  height:15px;
  background:url("../images/check.png") center/contain no-repeat;
  content:"";
  vertical-align:middle;
}

.contact-form input,
.contact-form textarea{
  border-radius:6px;
}

.contact-form select{
  width:100%;
  padding:14px 48px 14px 14px;
  border:2px solid #dce7ed;
  border-radius:6px;
  box-sizing:border-box;
  color:inherit;
  background-color:#fff;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='14' viewBox='0 0 16 14'%3E%3Cpath d='M1 3h14L8 12z' fill='%23555'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 16px center;
  background-size:16px 14px;
  font:inherit;
  cursor:pointer;
  appearance:none;
  -webkit-appearance:none;
}

.contact-form button{
  margin-right:auto;
  margin-left:auto;
}

.contact-form-area{
  min-width:0;
}
.contact-form__website{
  position:absolute!important;
  left:-10000px!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
}
.contact-form__error{
  margin:18px 0 0;
  padding:12px 16px;
  border:1px solid #d93636;
  border-radius:6px;
  color:#b42318;
  background:#fff2f0;
  font-weight:700;
  text-align:left;
}
.contact-confirm h3,
.contact-complete h3{
  margin:0 0 24px;
  color:var(--color-main);
  font-size:26px;
  text-align:center;
}
.contact-confirm dl{
  margin:0;
  border-top:1px solid #dce7ed;
}
.contact-confirm dl > div{
  display:grid;
  grid-template-columns:190px 1fr;
  border-bottom:1px solid #dce7ed;
}
.contact-confirm dt,
.contact-confirm dd{
  margin:0;
  padding:16px;
  box-sizing:border-box;
  overflow-wrap:anywhere;
  white-space:pre-wrap;
}
.contact-confirm dt{
  background:#f6f6f6;
  font-weight:700;
}
.contact-confirm__buttons{
  display:flex;
  justify-content:center;
  gap:16px;
  margin-top:35px;
}
.contact-confirm__buttons button{
  width:min(100%,240px);
  padding:14px 18px;
  border:2px solid #0ca0d5;
  border-radius:6px;
  font-size:18px;
  font-weight:700;
  text-align:center;
}
.contact-confirm__back{
  color:#0ca0d5;
  background:#fff;
}
.contact-confirm__send{
  color:#fff;
  background:#0ca0d5;
}
.contact-confirm__send:disabled{
  cursor:wait;
  opacity:.6;
}
.contact-complete{
  padding:45px 30px;
  border:2px solid #dce7ed;
  border-radius:6px;
  background:#fff;
  text-align:center;
}
.contact-complete p{
  margin:0;
  text-align:center;
}

.contact-info__icon{
  display:flex;
  flex:0 0 80px;
  align-items:center;
  justify-content:center;
  width:80px;
  height:80px;
  border-radius:50%;
  background-color:var(--color-main);
}

.contact-info .contact-info__icon img{
  width:auto;
  height:auto;
  max-width:70px;
  max-height:70px;
}

.contact-info p{
  font-size:22px;
}

/*footer*/
.site-footer{padding:75px 0;color:#fff;background:var(--color-main) url("../images/block13-bg.jpg") center/cover no-repeat}.site-footer__inner{font-weight:700}.site-footer__catch{display:inline-block;margin:0 0 25px;padding:8px 25px;color:var(--color-main);background:#fff;font-size:24px}.site-footer p{text-align:center}.site-footer strong{display:block;margin:40px 0 35px;font-size:26px;line-height:1.6;font-weight: 600;}.site-footer__buttons{display:flex;justify-content:center;gap:40px}.site-footer__buttons a{display:block;width:360px;padding:18px;border:2px solid #fff;color:#fff;background:#0ca0d5;box-sizing:border-box;font-weight:700}.site-footer__buttons a:last-child{color:var(--color-main);background:#fff}

/*footer*/
.site-footer{
}
.site-footer__catch{
  font-size:28px;
}
.site-footer p{
  font-size:20px;
}
.site-footer__buttons a{
  position:relative;
  width:100%;
  max-width:400px;
  padding-right:52px;
  padding-left:52px;
  border:0;
  border-radius:6px;
  font-size:17px;
  transition:color .25s ease,background-color .25s ease,transform .25s ease;
}
.site-footer__buttons a img{
  position:absolute;
  top:50%;
  right:24px;
  width:10px;
  height:auto;
  transform:translateY(-50%);
  transition:filter .25s ease;
}
.site-footer__buttons a:first-child:hover{
  color:#0ca0d5;
  background-color:#fff;
  transform:translateY(-3px);
}
.site-footer__buttons a:first-child:hover img{
  filter:brightness(0) saturate(100%) invert(49%) sepia(94%) saturate(1673%) hue-rotate(161deg) brightness(90%) contrast(94%);
}
.site-footer__buttons a:last-child:hover{
  color:#fff;
  background-color:var(--color-main);
  transform:translateY(-3px);
}
.site-footer__buttons a:last-child:hover img{
  filter:brightness(0) invert(1);
}

/*reveal animation*/
.reveal{
  opacity: 0;
  transform: translateY(14px);
  filter: blur(2px);
  transition-property: opacity, transform, filter;
  transition-duration: .7s;
  transition-timing-function: cubic-bezier(.22,.61,.36,1);
  will-change: opacity, transform, filter;
}
.reveal.is-in{
  opacity: 1;
  transform: none;
  filter: none;
}
.reveal--up{ transform: translateY(24px); }
.reveal--down{ transform: translateY(-24px); }
.reveal--zoom{ transform: scale(.96); }
.reveal--soft{ filter: blur(4px); }
.reveal--fast{ transition-duration: .45s; }
.reveal--slow{ transition-duration: 1s; }
.delay-0{ transition-delay: 0s; }
.delay-1{ transition-delay: .1s; }
.delay-2{ transition-delay: .2s; }
.delay-3{ transition-delay: .3s; }
.delay-4{ transition-delay: .4s; }
.delay-5{ transition-delay: .5s; }
.delay-6{ transition-delay: .6s; }
.delay-7{ transition-delay: .7s; }
.delay-8{ transition-delay: .8s; }
.delay-9{ transition-delay: .9s; }
.delay-10{ transition-delay: 1s; }

@media (prefers-reduced-motion: reduce){
  .reveal{
    opacity:1;
    transform:none;
    filter:none;
    transition:none;
  }
}

@media screen and (min-width:960px) {
    /*for PC*/
    .pc{display:block}.sp{display:none}
}

@media screen and (min-width:481px) and (max-width:960px) {
    /*for iPad tb(タブレット)*/
    .pc{display:none}.sp{display:block}
}

@media screen and (max-width: 980px) {
    /*for iPhone sp(スマートフォン)*/
    html{scroll-padding-top:96px}
    .pc{display:none}.sp{display:block}

    .site-header__inner{
      position: relative;
      width: calc(100% - 40px);
      height: 76px;
    }
    .site-header__logo{
      width: 150px;
    }
    .site-header__menu-button{
      position: absolute;
      z-index: 2;
      top: 17px;
      right: 0;
      width: 44px;
      height: 44px;
      padding: 10px 8px;
      border-radius: 50%;
      background-color: #fff;
      box-shadow: 0 2px 12px rgba(0,0,0,.12);
    }
    .site-header__menu-button.sp{
      display: block;
    }
    .site-header__menu-button span{
      display: block;
      width: 100%;
      height: 2px;
      margin: 5px 0;
      background-color: var(--color-main);
      transition: transform .25s ease, opacity .25s ease;
    }
    .site-header.is-open .site-header__menu-button span:nth-child(1){ transform: translateY(7px) rotate(45deg); }
    .site-header.is-open .site-header__menu-button span:nth-child(2){ opacity: 0; }
    .site-header.is-open .site-header__menu-button span:nth-child(3){ transform: translateY(-7px) rotate(-45deg); }
    .site-header__nav{
      position: absolute;
      top: 68px;
      right: 0;
      width: min(320px, calc(100vw - 40px));
      margin: 0;
      padding: 22px;
      border-radius: 12px;
      background-color: #fff;
      box-shadow: 0 8px 30px rgba(0,0,0,.14);
      box-sizing: border-box;
      visibility: hidden;
      opacity: 0;
      transform: translateY(-8px);
      transition: opacity .25s ease, transform .25s ease, visibility .25s;
    }
    .site-header.is-open .site-header__nav{
      visibility: visible;
      opacity: 1;
      transform: none;
    }
    .site-header__nav-list{
      display: block;
    }
    .site-header__nav-list li + li{
      margin-top: 16px;
    }
    .site-header__nav-list a{
      display: block;
      font-size: 15px;
    }

    .top-fv{
      min-height: 0;
      aspect-ratio: 800 / 1438;
      padding-bottom: 28px;
      background-image: url("../images/sp-fv-bg.jpg");
      background-position: center top;
      background-size: 100% 100%;
      box-sizing: border-box;
    }
    .top-fv::before{
      content: none;
    }
    .top-fv__inner{
      position: relative;
      width: calc(100% - 54px);
      padding-top: clamp(88px, 22.5vw, 108px);
    }
    .top-fv__content{
      width: 100%;
    }
    .top-fv__eyebrow{
      margin-bottom: 12px;
      font-size: 18px;
      line-height: 1.4;
    }
    .top-fv__title{
      font-size: clamp(43px, 14vw, 16vw);
      line-height: 1.18;
      letter-spacing: -.03em;
    }
    .top-fv__lead{
      margin-top: 14px;
      font-size: clamp(17px, 5vw, 6vw);
      line-height: 1.55;
      overflow-wrap: anywhere;
    }
    .top-fv__text{
      margin-top: clamp(34px, 9vw, 7vw);
      color: #174f78;
      font-size: clamp(12px, 3.8vw, 20px);
      line-height: 1.65;
      overflow-wrap: anywhere;
    }
    .top-fv__buttons{
      display: grid;
      gap: 18px;
      width: 100%;
      margin: clamp(36px, 9.5vw, 45px) auto 0;
    }
    .top-fv__button{
      max-width: 100%;
      width: 100%;
      min-height: 80px;
      padding-right: 38px;
      padding-left: 27px;
      border-width: 2px;
      font-size: 19px;
    }
    .top-fv__button > img:first-child{
      width: 28px;
      height: 28px;
      margin-right: 18px;
    }
    .top-fv__button--secondary > img:first-child{
      width: 32px;
      height: 29px;
      margin-right: 15px;
    }
    .top-fv__button-arrow{
      right: 27px;
      width: 10px;
    }

    .common-inner{width:calc(100% - 40px)}
    .section-block{padding:65px 0}
    .section-title{margin-bottom:45px;font-size:30px}
    .section-title::after{width:58px;margin-top:16px}
    .section-lead{margin-top:-12px;margin-bottom:35px;padding:0 20px;font-size:19px}
    .section-note{font-size:18px}

    .top-about__layout{display:flex;flex-direction:column;gap:25px}
    .top-about__photos{flex-direction:row;width:100%;gap:10px;margin:0 auto}
    .top-about__photos:last-child{order:3}
    .top-about__photo{width:calc((100% - 10px) / 2);min-width:0}
    .top-about__content{width:100%;order:2}
    .top-about__content>p{font-size:18px}
    .top-about__message{font-size:20px!important}
    .top-about__values{
      width:min(calc(100vw - 20px),368px);
      grid-template-columns:repeat(2,minmax(0,168px));
      justify-content:center;
      column-gap:32px;
      row-gap:30px;
      margin:30px auto;
    }
    .top-about__values article:nth-child(3){
      grid-column:1 / -1;
      width:168px;
      max-width:100%;
      justify-self:center;
    }
    .top-about__values span{
      width:100%;
      height:auto;
      aspect-ratio:1;
      padding:6px;
    }
    .top-about__values img{
      width:min(70%,116px);
      height:auto;
      max-width:116px;
      max-height:91px;
      object-fit:contain;
    }
    .top-about__values h3{
      margin-top:2px;
      font-size:22px;
      line-height:1.1;
    }
    .top-about__values p{
      margin-top:12px;
      font-size:17px;
      font-weight:500;
      line-height:1.5;
      white-space:nowrap;
    }

    .numbers-grid--main{grid-template-columns:repeat(2,minmax(0,1fr))}
    .numbers-grid--students{grid-template-columns:1fr}
    .numbers-grid--students article{width:100%;min-width:0}
    .ratio-content{gap:20px}
    .numbers-grid article{padding:25px 10px 20px}
    .numbers-grid strong{font-size:34px}
    .numbers-grid strong.ptn1{font-size:50px}
    .numbers-grid strong.ptn2{font-size:40px}
    .numbers-grid strong.ptn3{font-size:60px}
    .ratio-breakdown p{justify-content:flex-start}
    .numbers-grid--main article:last-child{grid-column:1/-1}
    .numbers-subtitle{margin-top:45px}

    .top-points__grid{grid-template-columns:1fr;gap:45px}
    .top-points article>span{width:160px;height:160px}

    .strength__lead{grid-template-columns:1fr;gap:25px}
    .strength__lead h3{font-size:21px}
    .strength__lead img{width:min(100%,382px);margin:auto}
    .strength__analysis-results{grid-template-columns:minmax(0,386fr) minmax(0,154fr);gap:10px;margin-top:20px}
    .strength__analysis-results img{width:100%;margin:0}
    .strength__lead .strength__analysis-types{width:70%}
    .feature-box__grid{grid-template-columns:1fr 1fr;gap:28px 40px;padding:30px 30px}
    .feature-box__grid article:last-child{grid-column:1/-1}
    .strength--03 .feature-box__grid{grid-template-columns:1fr 1fr}
    .strength--03 .feature-box__grid article:last-child{grid-column:auto}
    .feature-box__grid h4{font-size:20px}
    .feature-box__grid p{font-size:18px}
    .feature-box__note{width:calc(100% - 40px);margin-bottom:25px;box-sizing:border-box;font-size:18px}

    .program-list{width:calc(100% - 40px)}
    .program-list::before{
      top:clamp(105px,36vw,190px);
      bottom:clamp(210px,60vw,320px);
      left:35px;
    }
    .program-list article{grid-template-columns:70px 1fr;gap:18px}
    .program-list article>b{
      width:70px;
      height:70px;
      font-size:16px;
    }
    .program-list article>b strong{font-size:30px}
    .program-list article img{width:100%}
    .program-list article>div{grid-column:2}

    .schedule-table-wrap{width:calc(100% - 20px)}
    .schedule-table-wrap table{min-width:850px}
    .schedule-table-wrap::before{
      display:block;
      position:sticky;
      left:0;
      width:fit-content;
      margin:0 auto 12px;
      padding:7px 14px;
      border-radius:20px;
      color:#fff;
      background:rgba(0,0,0,.14);
      content:"横にスクロールしてご覧ください →";
      font-size:14px;
      font-weight:600;
      text-align:center;
    }

    .price-grid{grid-template-columns:1fr}
    .price-grid article{min-height:0}
    .price-grid a{font-size:17px}
    .price-support{gap:15px;padding:22px 18px;font-size:17px}
    .price-support small{font-size:16px}
    .price-support img{max-width:46px}
    .price-support__content{padding:0}
    .price-support__content h3{font-size:22px}
    .price-support__content p{font-size:14px;line-height:1.7}

    .timetable-layout{grid-template-columns:1fr;gap:35px}
    .timetable-layout li{grid-template-columns:160px 1fr;gap:28px;min-height:100px;margin-bottom: 14px;}
    .timetable-layout li::before{left:150px}
    .timetable-layout li::after{left:158px}
    .timetable-layout time{font-size:18px}
    .timetable-photos{display:grid;grid-template-columns:1fr 1fr;gap:10px}
    .timetable-photos img+img{margin:0}
    .timetable-photos__sp-hidden{display:none}

    .contract-flow{width:calc(100% - 40px)}
    .contract-flow article{grid-template-columns:110px 1fr;gap:20px}
    .contract-flow__icon{width:110px;height:110px}
    .contract-flow__icon img{max-width:52px;max-height:50px}
    .contract-flow article::after{top:110px;bottom:-120px;left:54px}
    .contract-flow h3{font-size:22px}
    .contract-flow h3 b{display:table;margin:0 0 5px}

    .faq-list{width:calc(100% - 30px)}
    .faq-list summary{grid-template-columns:42px 1fr 18px;gap:12px;padding:18px 16px;font-size:18px}
    .faq-list summary b{width:42px;height:42px;font-size:23px}
    .faq-list details>p{padding:0 20px 20px 70px;font-size:18px}

    .contact-layout{grid-template-columns:1fr;gap:40px}
    .contact-copy h3{font-size:22px;font-weight: 500;}
    .contact-copy p{font-size:18px}
    .contact-copy ul{padding:20px 20px 30px}
    .contact-copy li{font-size:16px}
    .contact-copy li::before{margin-right:5px}
    .contact-form label{grid-template-columns:1fr;gap:7px}
    .contact-form label>span{padding:0;font-size:21px}
    .contact-form button{width:100%}
    .contact-confirm dl > div{grid-template-columns:1fr}
    .contact-confirm dt,.contact-confirm dd{padding:12px}
    .contact-confirm__buttons{flex-direction:column-reverse}
    .contact-confirm__buttons button{width:100%;max-width:none}
    .contact-complete{padding:35px 20px}
    .contact-info{padding:20px;align-items:flex-start;font-size:13px}
    .contact-info p{font-size:18px}

    .site-footer{padding:60px 0}
    .site-footer__catch{padding:8px 12px;font-size:17px}
    .site-footer__inner>p{font-size:18px}
    .site-footer strong{font-size:21px}
    .site-footer__buttons{display:grid;gap:14px}
    .site-footer__buttons a{width:100%}
}
