@charset "utf-8";
:root{
  --default-font:'Noto Sans JP',sans-serif;
  --mincho: "Noto Serif JP", serif;
  --icon-bootstrap:'bootstrap-icons';
  --main-color:#01850e;
  --sub-color:#325075;
  --button-color:#999;
  --check-color:#cc0000;
  --link-color:#203ed4;
  --font-color:#111;
  --normal:400;
  --bold:700;
}
*{
    box-sizing:border-box;
}

a{
    text-decoration: none;
}

header{
    width:100%;
    height: 90px;
    display: grid;
    grid-template-columns: 1fr auto auto;
    align-items: center;
    justify-content: space-between;
    padding:0 0 0 1.5%;
    position: relative;
    z-index:50;
}
header #logo{
    transform: translateY(-4px);
}
header #logo a{
    display: flex;
    align-items: center;
    gap:8px;
    color:var(--main-color);
    text-align: left;
}
header #logo a img{
    aspect-ratio: 54/32;
    width:54px;
    height:auto;
}
header #logo a .en{
    display: block;
    font-size:0.6rem;
    font-weight: var(--normal);
    letter-spacing: 0.02rem;
    line-height: 1;
}
header #logo h1 {
    font-size:1.35rem;
    line-height: 1;
    display: flex;
    flex-direction: column;
    gap:0.3rem;
    padding-top:0.4rem;
    letter-spacing:1;
}
header nav ul{
    display: flex;
    justify-content: flex-end;
}
header > .header-tel-box {
    background-color: #effeff;
    padding: 0 1.65vw 0 1.7vw;
    height:100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size:0.8rem;
    color:var(--font-color);
}
header > .header-tel-box a{
    display: flex;
    flex-direction: column;
    gap:0.3em;
}
#header-inner{
    margin-right:30px;
    display: flex;
    flex-direction: column;
    gap:0.6rem;
}
header .header-tel-box  .tel-link{
    display: block;
    color:var(--main-color);
    font-weight: var(--bold);
    font-size: clamp(22px,1.4vw,24px);
    position: relative;
    padding-left:1rem;
    line-height: 1;
}
header .header-tel-box  .tel-link::before{
    content:'';
    background-image:url(../../img/common/tel_icon.png);
    background-repeat: no-repeat;
    background-size: contain;
    aspect-ratio: 19/24;
    width:14px;
    height: auto;;
    position: absolute;
    top:55%; left:0;
    transform: translateY(-50%);
}
header .header-tel-box  a{
    color:var(--font-color);
    letter-spacing: 0.02rem;
}
header #header-nav a{
    color:#666;
    font-size:clamp(12px,0.9vw,14px);
}
header #header-nav ul{
    gap:2rem;
}
header #header-nav  ul li{
    position: relative;
    line-height: 1;
}
header #header-nav  ul li:not(:last-of-type)::before{
    content:'';
    height:90%;
    width:1px;
    background-color:#999;
    position: absolute;
    top:0;
    right:-1rem;
}
header #global-nav a{
    font-size:clamp(14px,1.1vw,16px);
    color:var(--font-color);
    font-weight: var(--bold);
    transition:all 0.2s ease-in-out;
    position: relative;
    display: block;
		cursor:pointer;
}
header #global-nav > ul > li > a::after {
    position: absolute;
    left: 0;
    content: '';
    width: 100%;
    height: 2px;
    background: var(--main-color);
    bottom: 0px;
    transform: scale(0, 1);
    transform-origin: center top; /*変形（アンダーラインの伸長）の原点がaタグ（各メニュー）の右端*/
    transition: transform 0.3s;   /*変形の時間*/
}

header #global-nav > ul > li > a:hover::after {
    transform: scale(1, 1); /*ホバー後、x軸方向に1（相対値）伸長*/
}
/*header #global-nav a:hover{
    color:#fff;
}*/
/*header #global-nav a::after{
    content: attr(data-text);
    position: absolute;
    inset: 0;
    background:linear-gradient(150deg, #008236 50%, rgba(53, 175, 177, 1) 85%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    opacity: 0;
    width:100%; height:auto;
    transition: opacity 0.2s ease-in;
}
header #global-nav a:hover::after{
    opacity: 1;
}*/
header #global-nav > ul{
    gap:1.6vw;

}
#index-billboard-inner{
    display: grid;
    grid-template-columns:35% auto;
    align-items: center;
    width:100%;
    height:auto;
    overflow: hidden;
}
#index-billboard {
    position: relative;
}
#index-billboard .shooting-star{
    position: absolute;
    top: 12%;
    left:30%;
    width: 160px;
    z-index: 20;
}
#index-billboard .shooting-star line{
    stroke: #fff;
    stroke-width: 2;
}
#index-billboard .shooting-star .star {
  transform: scale(0.7) rotate(10deg) translate(-5px, 60px);
  transform-origin: center;
}
.slider {
  height: auto;
  margin-inline: auto;
  overflow: hidden; /* 画像がはみ出ないようにする */
  width: 100%;
}
.slick-img img {
  width: 100%;
}
@keyframes zoomUp {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(1.1); /* 拡大率 */
  }
}
.add-animation {
  animation: zoomUp 10s linear 0s normal both;
}
#index-billboard .slider{
    overflow:hidden;
}
#index-billboard .slider img{
    width:100%;
    height: 100%;
    object-fit: contain;
}
#index-billboard .mv-content{
    text-align: left;
    /*background-color:#008236;*/
    background-image: linear-gradient(7deg, rgba(13, 133, 133, 1) 10%, rgb(0, 130, 54) 40%);
    display: grid;
    grid-template-rows: 3fr 1fr;
    align-items: center;
    height: 100%;
    position: relative;
    overflow: hidden;
}
#index-billboard .mv-content::before{
    content:'';
    aspect-ratio: 1/1;
    width:280px;
    height:auto;
    background-color: #8bd1b6;
    position: absolute;
    top:-120px;
    right:-120px;
    border-radius: 999px;
    filter: blur(50px);
}
#index-billboard .mv-content::after{
    content:'';
    background-image: url(../../img/index/bg.png);
    background-repeat: no-repeat;
    background-size:contain;
    aspect-ratio: 321/610;
    width:180px;
    height:auto;
    position: absolute;
    bottom:-60px;
    left:0px;
}
#index-billboard .mv-content .mv-title {
    color:#fff;
    font-family: var(--mincho);
    font-weight: var(--bold);
    font-size:clamp(2.6rem,3.2vw,4.35rem);
    margin-left:3%;
    z-index:10;
}
#index-billboard .mv-content .mv-title span{
    margin-left:-20px;
}
#index-billboard .mv-content p{
    font-family: var(--mincho);
    font-size:clamp(3rem,3.75vw,4.95rem);
    color:#fff;
    text-align:left ;
    font-weight: 100;
    line-height: 1.2;
    letter-spacing: 0.14rem;
    margin-left:6%;
    z-index: 10;;
}
.index-news .contents-box{
    padding:90px 4% 0px;
    display: flex;
    gap:70px;
    justify-content: space-between;
}
.index-news{
    background-color:#f9f9f8;
    position: relative;
}
.index-news > .shooting-star{
    position: absolute;
    bottom: -100px;
    left:11.5%;
    width: 170px;
    z-index: 20;
}
.index-news > .shooting-star line{
    stroke: #c790ed;
    stroke-width: 2;
}
.index-news > .shooting-star .star {
  transform: scale(0.7) rotate(10deg) translate(-5px, 60px);
  transform-origin: center;
}
.index-news > .shooting-star path{
    fill:#c790ed;
}
.title-box h2{
    font-size:1.1rem;
    text-align: left;
}
.title-box .en{
    display: block;
    font-size:2.5rem;
    font-family: var(--mincho);
    color:var(--sub-color);
    font-weight: 600;
    line-height: 1.4;
}
.title-box {
  position: relative;
  display: inline-block;
}

.title-box > h2 {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
ul.topics-list{
  width:100%;
}
.index-news ul.topics-list{
  width:75%;
}
.en-wrap {
  position: relative;
  display: inline-block;
}

.en {
  display: inline-block;
  position: relative;
  padding-right: 18px; /* 切り欠き分 */
}

/* 文字の切り欠き（被せ） */
.title-box .en::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 40px;
    height: 100%;
    background: #f9f9f8; /* 背景色 */
    clip-path: polygon(0 0, 100% 0, 0 100%);
    transform: rotate(180deg);
}
.index-school .title-box .en::after {
    background: #fff; /* 背景色 */
}
.jp {
  font-size: 1.1rem;
  letter-spacing: 0.1em;

}
.shooting-star{
    width: 90px;
    overflow: visible;
    position: absolute;
    bottom: 20px;
    right: -34px;
}

.shooting-star line {
  stroke: #d3da05;
  stroke:#d4d934;
  stroke-width: 3;
  stroke-linecap: round;
}

.shooting-star path {
    fill: #d3da05;
    fill:#d4d934;
    transform-box: fill-box; /* ← 超重要 */
    transform:translate(-12px,10px);
}
/*.shooting-star {
  visibility: hidden;
}
.shooting-star.is-active {
  visibility: visible;
}*/
.title-box .shooting-star .star {
  transform: scale(0.8) rotate(10deg) translate(5px, 45px);
  transform-origin: center;
}
ul.button-list a{
    width:210px;
    background-color:#999;
    border:1px solid #999;
    color:#fff;
    display: block;
    margin-top:30px;
    padding:0.4rem 0;
    border-radius: 999px;
    position: relative;
    font-size:0.95rem;
    transition: 0.2s ease-in-out
}
ul.button-list a:hover{
    background-color:#fff;
    color:#999;
}
ul.button-list a:hover::before{
    background-color: #999;
}
ul.button-list a:hover::after{
   color: #fff;
}
ul.button-list a::before{
    content:'';
    aspect-ratio: 1/1;
    width:24px;
    height:auto;
    border-radius: 999px;
    background-color: #fff;
    position: absolute;
    right:8px; top:50%;
    transform: translateY(-50%);
}
ul.button-list a::after{
    content:' \F135';
    font-family: var(--icon-bootstrap);
    color:#999;
    font-size:1.1rem;
    position: absolute;
    right:9px; top:52%;
    transform: translateY(-50%);
}
ul.topics-list li{
    padding-bottom:25px;
    margin-bottom:25px;
    position: relative;
    text-align: left;
}
ul.topics-list li a{
    display: flex;
}
ul.topics-list li a:hover span{
    text-decoration: underline;
}
ul.topics-list li:not(:last-of-type)::before{
    content:'';
    background-image: radial-gradient(circle, #999999 1px, transparent 1px);
    width:100%;
    height: 2px;
    background-position: left bottom;
    background-repeat: repeat-x;
    background-size: 9px 2px;
    position: absolute;
    bottom:0; left:0;
}
ul.topics-list li time{
    font-size:0.9rem;
    color:#666;
    letter-spacing: 0.02rem;
    line-height: 2;
    margin-right:2rem;
}
ul.topics-list li span{
    font-weight: 500;
}
.index-school{
    background-color:#fff;
}
.section-divider {
  position: relative;
  height: 200px;        /* 高さは増やさない */
  overflow: hidden;
  background: #f9f9f8;  /* 上の色 */
}

.divider-ellipse {
  position: absolute;
  left: 50%;
  bottom: -140px;       /* 少し沈めるだけ */
  transform:
    translateX(-50%)
    scaleY(0.5);        /* ← ここが決定打 */
  width: 120vw;
  height: 500px;
  background: #fff;     /* 下の色 */
  border-radius: 50%;
  transform-origin: center bottom;
}
.index-school .title-box h2{
    text-align: center;
}
.index-school .title-box {
    margin-bottom:40px;
}

.index-school ul.ariko-days-list{
  padding: 0 5%;
  margin-bottom: 40px;
  flex-wrap: nowrap;
  gap: 35px;
}
.index-school ul.ariko-days-list li{
  flex: 0 0 calc((100% - (35px * 3)) / 4);
}

.index-school ul.button-list{
    justify-content: center;
    display: flex;
}
.index-school ul.button-list li{
     text-align: center;
}
.button-contents{
    display: flex;
    margin-top:100px;
    margin-bottom:100px;
    position: relative;
}
.button-contents > .shooting-star{
    position: absolute;
    top: -80px;
    right:15%;
    width: 170px;
    z-index: 20;
}
.button-contents > .shooting-star line{
    stroke: #f4c470;
    stroke-width: 2;
}
.button-contents > .shooting-star .star {
  transform: scale(0.7) rotate(10deg) translate(-5px, 60px);
  transform-origin: center;
}
.button-contents > .shooting-star path{
    fill:#f4c470;
}
.button-contents .button-wrapper::before{
    content:'';
    aspect-ratio: 1/1;
    width:280px;
    height:auto;
    background-color: #8bd1b6;
    position: absolute;
    top:-120px;
    left:110px;
    border-radius: 999px;
    filter: blur(90px);
}
.button-contents .button-wrapper::after{
    content:'';
    aspect-ratio: 1/1;
    width:280px;
    height:auto;
    background-color: #2fa29f;
    position: absolute;
    bottom:-120px;
    right:-80px;
    border-radius: 999px;
    filter: blur(60px);
}
.button-contents .button-wrapper{
    display: flex;
    align-items: center;
    width:55%;
    gap:30px;
    padding:70px 55px;
    background-image: linear-gradient(267deg, #2fa29f 1%, #008236 18%);
    position: relative;
    overflow: hidden;
}
.button-contents .button-wrapper .en{
    padding-right: 0;
}
.button-contents > figure{
    width:45%;
}
.button-contents > figure > img{
    object-fit: cover;
    width:100%;
    height:100%;
}
.button-contents ul.button-wrapper figure{
    overflow: hidden;
}
.button-contents ul.button-wrapper figure img{
    transition: 0.4s ease-in-out;
}
.button-contents ul.button-wrapper a:hover figure > img{
    transform: scale(1.05);
}
.button-contents ul.button-wrapper li{
    width:calc((100% - 30px) / 2);
    background-color: #fff;
    z-index: 1;
}
.button-contents ul.button-wrapper li a{
    display: block;
    padding:0.5rem 0.5rem 38px;
    position: relative;
    transition: 0.4s ease-in-out;
}

.button-contents ul.button-wrapper li a:hover::before{
    background-color:#999;
}
.button-contents ul.button-wrapper li a:hover::after{
    color:#fff;
}
.button-contents ul.button-wrapper li a::before{
    content:'';
    aspect-ratio: 1 / 1;
    width: 30px;
    height: auto;
    border:1px solid #999;
    position: absolute;
    right: 16px;
    bottom: 16px;
    border-radius: 999px;
    display: block;
    transition: 0.4s ease-in-out;
}
.button-contents ul.button-wrapper li a::after{
    content:' \F135';
    font-family: var(--icon-bootstrap);
    color:#999;
    font-size:1.1rem;
    aspect-ratio: 1/1;
    width:30px; height:30px;
    line-height: 30px;
    position: absolute;
    right:16px; bottom:16px;
    transition: 0.4s ease-in-out;
}

.button-contents h2{
    font-size:1.1rem;
    text-align: center;
    margin-top: 30px;
    color: var(--font-color);
}
.button-contents .en{
    display: block;
    font-size:1.9rem;
    font-family: var(--mincho);
    color:var(--sub-color);
    font-weight: 600;
    line-height: 1.4;
}
.contents-list{
    margin:0 22% 100px;
}
.contents-list li {
  width:100%;
  position: relative;
  z-index: 10;
  transition: 0.4s ease-in-out;
}
.contents-list li a{
/*
    background-image: url(../../img/index/future_students.jpg);
    background-repeat: no-repeat;
    background-size: 110%;
    background-position: center;
    transition: background-size 0.4s ease-in-out,
              background-position 0.4s ease-in-out;
*/
    position: relative;
}
.contents-list li a:hover{
    background-size: 115%;
    background-position: center ;
}
.contents-list li a::before{
    content:'';
    background-color:rgba(17,17,17,0.5);
    background-repeat: no-repeat;
    width:100%;
    height:100%;
    mix-blend-mode: multiply;
    display: block;
    position: absolute;
    left:0; top:0;
    z-index:10;
}
.contents-list li a{
  color:#fff;
  display: block;
  width:100%; height:auto;
  aspect-ratio:600/164;
  overflow:hidden;
  z-index:20;
  display:flex;
  justify-content:center;
  align-items:center;
  position: relative;
}
.contents-list li > a > figure{
  width:100%; height:100%;
  position:absolute;
  top:0; left:0;
}
.contents-list li > a > figure > img{
  width:100%; height:100%;
  object-fit:cover;
  transition:0.4s ease-in-out;
}
.contents-list li > a:hover > figure > img{
  transform:scale(1.1);
}

.contents-list li h2{
    font-size:1.1rem;
    z-index:10;
    position: relative;
}
.contents-list li .en{
    display: block;
    font-size:1.9rem;
    color:#fff;
    font-family: var(--mincho);
    font-weight: 600;
    line-height: 1.4;
    z-index:10;
    position: relative;
}
.contents-list li::before{
    content:'';
    aspect-ratio: 1 / 1;
    width: 30px;
    height: auto;
    border:1px solid #fff;
    position: absolute;
    right: 16px;
    bottom: 16px;
    border-radius: 999px;
    display: block;
    z-index:30;
}
.contents-list li:hover::before{
    background-color:#fff;
    z-index:30;
}
.contents-list li:hover::after{
    color:#666;
    z-index:40;
}
.contents-list li::after{
    content:' \F135';
    font-family: var(--icon-bootstrap);
    color:#fff;
    font-size:1.1rem;
    line-height: 30px;
    position: absolute;
    aspect-ratio: 1/1;
    width:30px;
    height: 30px;
    right:16px; bottom:16px;
    z-index:20;
}
.access-contents{
    background-color: #f9f9f8;
    display: grid;
    grid-template-columns: 2fr 3fr;
    align-items: center;
    padding-left:6%;
}
.access-contents h2{
    display: flex;
    flex-direction: row;
    align-items: baseline;
    gap:10px;
    margin-bottom:20px;
}
.access-contents .access-text{
    text-align: left;
}
.access-contents #map-box iframe{
    width: 100%;
    height:330px;
}
footer{
    background-image: linear-gradient(150deg, #008236 50%, rgba(53, 175, 177, 1) 85%);
    padding: 60px 4% 32px;
    color:#fff;
    text-align: left;
}
footer address{
    font-size:0.95rem;
    letter-spacing: 0.04rem;
}
footer #footer-inner{
    display: grid;
    grid-template-columns: auto 1fr;
    gap:8%;
    margin-bottom: 50px;
}
footer #footer-logo{
    display: flex;
    font-size:0.85rem;
    gap:8px;
    align-items: center;
    margin-bottom:20px;
}
footer #footer-logo img{
    aspect-ratio: 81/49;
    width:51px;
    height:auto;
}
footer .contact-list{
    margin-top: 30px;
}
footer .contact-list h3{
    font-size:1rem;
}
footer .contact-list  p{
    letter-spacing: 0.04rem;
    font-size:0.95rem;
}
footer .contact-list ul{
    display: flex;
    gap:30px;

    font-size: 1.1rem;
}
footer .contact-list ul li{
    position: relative;
    padding-left:1.2rem;
}
footer .contact-list ul li:nth-of-type(2){
    padding-left: 1.4rem;
}
footer .contact-list ul li::before{
    content:'';
    background-image: url(../../img/common/tel_icon.png);
    background-repeat: no-repeat;
    background-size: contain;
    filter: brightness(0) saturate(100%) invert(100%) sepia(0%) saturate(7493%) hue-rotate(150deg) brightness(106%) contrast(101%);
    aspect-ratio: 19/24;
    width:16px; height:auto;
    position: absolute;
    left:0; top:52%;
}
footer .contact-list ul li:first-of-type:before{
   transform: rotate(-10deg) translateY(-50%);
}
footer .contact-list ul li:nth-of-type(2)::before{
    background-image: url(../../img/common/fax_icon.png);
    aspect-ratio: 26/26;
    width:17px;
    height: auto;
    transform:translateY(-50%);
}
#footer-nav{
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    gap:40px;
}
#footer-nav .border{
    padding-bottom:0.3rem;
    margin-bottom:0.8rem;
    display: block;
    position: relative;
}
#footer-nav .border::after{
    content:'';
    width:100%;
    height: 1px;
    background-color:#fff;
    position: absolute;
    bottom:0; left:0;
}
#footer-nav a{
    color: #fff;
    transition: 0.1s ease-in-out;
}
#footer-nav a:hover{
    opacity: 0.7;
}
#footer-nav a:not([href]){
	cursor:default;
}
#footer-nav a:not([href]):hover{
	opacity:1;
}
#footer-nav > ul > li{
    margin-bottom:35px;
    font-size:0.95rem;
    letter-spacing: 0.05rem;
}
#footer-nav > ul > li > ul > li{
    font-size:0.85rem;
    margin-bottom:0.2rem;
}
#footer-nav > ul:last-of-type li{
    margin-bottom:1rem;
}
#copy{
    text-align: right;
    font-size: 0.75rem;
    letter-spacing: 0.06rem;
}
/*ドロワードロップダウン*/
ul.drawer-menu > li > .drawer-dropdown-menu{
    display:none;
    visibility:hidden;
    opacity:0;
    transition:all .2s !important;
    position: relative;
    z-index: 999;
}
ul.drawer-menu > li.drawer-dropdown{
    position: relative;
}
ul.drawer-menu > li.drawer-dropdown:hover > .drawer-dropdown-menu{
    display:block;
    width:auto !important;
    height:auto !important;
    visibility:visible;
    opacity:1;
    box-sizing:border-box;
    position:absolute;
    top:30px; left:50%; z-index:50 !important;
    transform:translateX(-50%);
}
.drawer-dropdown > ul{
    display:flex;
    flex-direction: column;
    justify-content:flex-start;
    flex-wrap:wrap;
    gap:0.6rem;
    background-color:rgba(255,255,255,1);
    border:1px solid var(--main-color);
    border-radius: 5px;
    display: block;
}
.drawer-dropdown-menu > li > a{
    font-size:clamp(13px,0.95vw,15px) !important; line-height:1.4; font-weight:var(--bold);
    color:var(--main-color);
    white-space:nowrap;
    position:relative;
    display: block;
    width:100%;
    height: 100%;
    text-decoration:none;
    padding:1em 2em 0.9em;
}
.drawer-dropdown-menu > li > a:hover{
    color:#fff !important;
    background-color: var(--main-color);
}
.drawer-dropdown .drawer-caret {
    display: none !important;
}
.index-container{
    overflow:hidden;
}
.index-billboard{
    overflow: hidden;
}


/* page */
#page-billboard{
  position: relative;
  width:100%; height:260px;
  background-color:#FFF;
}
#page-billboard > figure{
  width:100%; height:100%;
  overflow:hidden;
}
#page-billboard > figure > img{
  width:100%; height:100%;
  object-fit:cover;
}
.page-billboard-inner{
  width:480px; height:125px;
  background-color:rgba(0, 130, 54, 1);
  background-image:radial-gradient(
    circle farthest-side at 35% -20%,
    rgba(255, 255, 255, 0.45) 10%,
    rgba(255, 255, 255, 0) 45%
  );
  position:absolute;
  bottom:0; left:0;
  transform:translateY(30%);
  display:flex;
  align-items:center;
  padding-left:5.0rem;
}
.page-billboard-inner .shooting-star{
  width:100px;
  position: absolute;
  top:0; right:0; z-index:20;
  transform:translateX(60%);
}
.page-billboard-inner .shooting-star line{
    stroke: #fff;
    stroke-width:3;
}
.page-billboard-inner .shooting-star .star {
  transform: scale(0.8) rotate(10deg) translate(-1%, 65%);
  transform-origin: center;
}
.page-billboard-inner h1{
  display: flex;
  flex-direction: column;
  line-height: 1.2;
  color:#fff;
  z-index: 2;
  text-align: left;
}
.page-billboard-inner h1 span.page-title{
  font-family:var(--mincho);
  font-size: 1.5rem;
  font-weight: var(--normal);
  display: block;
}
.page-billboard-inner h1 span.parent-title{
  display: block;
  width:fit-content;
  font-size: 0.8rem;
  font-weight: var(--normal);
  border-bottom:1px solid #fff;
  padding-bottom:0.5em;
  margin-bottom:1.0em;
}
.page-billboard-inner .en{
  position: absolute;
  bottom: 30px; left: 0;
  font-size: 4.5rem;
  color: rgba(0, 0, 0, 0.05);
  white-space: nowrap;
  z-index: 1;
  text-transform: capitalize;
}

#crumb{
  position: relative;
  width: 1160px;
  margin:0.75em 0.75em 5em auto;
}
#crumb ul{
  display:flex;
  justify-content: flex-end;
}
#crumb ul li{
  font-size:0.75em;
  color:#999;
}
#crumb ul li a{
  color: #999;
  text-decoration: none;
}
#crumb ul li:last-child,
#crumb ul li:last-child a{
  color: var(--font-color);
}
#crumb ul li a:hover{
  text-decoration: underline;
}
#crumb ul li:not(:last-child) a::after{
  display: inline-block;
  font-family: var(--icon-bootstrap);
  content:"\F285";
  font-size: 0.8em;
  margin: 0 0.2em;
}

#page-wrapper{
  position: relative;
  width: 1160px;
  margin: 0 auto 7rem;
  display: flex;
  justify-content: space-between;
  align-items:flex-start;
  gap:0 70px;
}
#main{
  flex: 1;
}
#side{
  width:250px;
  text-align: left;
}
#side a{
  text-decoration: none;
  color:var(--font-color);
}
/* 親ナビ */
#side .side-nav-parent{
  font-size: 0.9em;
  font-weight: var(--bold);
  background-color:#f4f4f4;
  padding: 0.75em 0 0.75em 1.5em;
  margin-bottom:1em;
}

/* ===== サイドナビ（子） ===== */

/* 通常（他ページ） */
#side ul.side-nav li a{
  position: relative;
  display: block;
  font-size: 0.9em;
  padding: 0 0 0.75em 1.5em;
  color: #999; /* グレー */
}
#side ul.side-nav li a:hover{
  color: #000;
}

/* 丸（デフォルトは非表示） */
#side ul.side-nav li a::before{
  content: "";
  position: absolute;
  left: 0.6em;
  top: 0.8em;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background-color: var(--sub-color);
  opacity: 0;
  transition: opacity 0.2s ease;
}

/* hover / current で丸を表示 */
#side ul.side-nav li a:hover::before,
#side ul.side-nav li a.is-current::before{
  opacity: 1;
}
#side ul.side-nav li.current a{
  color:#000 !important;
}


.block-contents{
  text-align: left;
  margin-bottom: 4.5rem;
}
.block-contents:has(h2){
  margin-bottom:0;
}
.block-contents > h2{
  position:relative;
  font-size: 1.7em; line-height:1.6;
  font-weight: var(--bold);
  margin-bottom: 1.1rem;
  padding-bottom:0.5em;
}
.block-contents:not(:first-of-type) > h2{
  margin-top: 4.5rem;
}
.block-contents > h2::before{
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 2px;
  background: linear-gradient(
    to right,
    rgba(0, 128, 0, 1) 0%,
    rgba(0, 128, 0, 1) 20%,
    rgba(0, 128, 0, 0.5) 20%,
    rgba(0, 128, 0, 0.5) 100%
  );
}
.block-contents > h3{
  position:relative;
  font-size: 1.4em;
  line-height: 1.6;
  font-weight: var(--normal);
  color:var(--main-color);
  padding-left:20px;
  margin-bottom:0.7em;
}
.block-contents > h3::before{
  content:"";
  position:absolute;
  left:0;
  top:0.6em;
  width:0.4em;
  height:0.4em;
  background-color:var(--main-color);
  border-radius:9999px;
}
.block-contents .text-box a:hover{
  text-decoration:underline;
}
.block-contents > p{
  margin-bottom: 1em;
  line-height:1.9;
}
.block-contents ul > li,
.block-contents ol > li{
  margin-left:1.2em;
  margin-bottom:0.5em;
}
.block-contents ul > li:last-child,
.block-contents ol > li:last-child{
  margin-bottom:1.0em;
}
.block-contents ul > li{
  list-style: disc outside;
}
.block-contents ol > li{
  list-style: decimal outside;
}
.block-contents .photo-box{
  width:100%;
}
.block-contents.flex-row .photo-box,
.block-contents.flex-row-reverse .photo-box{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:0 2.0rem;
}
.block-contents.flex-row-reverse .photo-box{
  flex-direction:row-reverse;
}
.block-contents .photo-box > .photo{
  margin-bottom:1.0rem;
}
.block-contents.flex-row .photo-box > .photo,
.block-contents.flex-row-reverse .photo-box > .photo{
  box-sizing:border-box;
  width:300px;
}
.block-contents .photo-box > .photo > figure.border{
  border: 1px solid #ededed;
  padding:2.5rem;
}
.block-contents .photo-box > .photo > figcaption{
  font-size: 0.85em; line-height:1.6;
  text-align: center;
  margin-top: 0.25em;
}
.block-contents .photo-box .text-box{
  flex:1;
}
.block-contents .photo-box .text-box p{
  margin-bottom:0.5em;
  line-height:1.9;
}
.block-contents .photo-box .text-box p:not(:first-of-type) > strong{
  margin-top:1em;
}
.block-contents ul.pdf-list{
  margin-top:20px;
}
.block-contents ul.pdf-list > li{
  list-style:none;
  margin-bottom:1.0em;
  margin-left:0;
  padding-left:1.8em;
  position:relative;
}
.block-contents ul.pdf-list > li::before{
  content:"";
  width:1.3rem; height:auto;
  aspect-ratio:1/1;
  background-repeat:no-repeat;
  background-position:center center;
  background-size:contain;
  position:absolute;
  top:0; left:0;
  transform:translateY(15%);
}
.block-contents ul.pdf-list > li.pdf::before{
  background-image:url(../../img/svg/pdf.svg);
}
.block-contents ul.pdf-list > li.xls::before{
  background-image:url(../../img/svg/xls.svg);
}
.block-contents ul.pdf-list > li.doc::before{
  background-image:url(../../img/svg/doc.svg);
}
.block-contents ul.pdf-list > li.ppt::before{
  background-image:url(../../img/svg/ppt.svg);
}
.block-contents ul.pdf-list > li .file-size{
  display:inline-block;
  font-size:0.85em;
  color:var(--font-color);
  margin-left:0.5em;
}
.block-contents ul.pdf-list > li a:hover{
  text-decoration:underline;
}

table.block-table01{
  width:100%;
  border-collapse:collapse;
  border-top:0.05rem solid var(--font-color);
}
table.block-table01 tr{
  font-size:0.9em;
  border-bottom:0.05rem solid var(--font-color);
}
table.block-table01 th,
table.block-table01 td{
  text-align:left;
  vertical-align:top;
  padding:0.8rem 1.2rem;
}
table.block-table01 th{
  width:230px;
  font-weight:var(--normal);
  background:#f4f4f4;
}

table.block-table02{
  width:100%;
  border-collapse:collapse;
  font-size:0.9rem; line-height:1.6;
}
table.block-table02 thead tr{
  border-bottom:0.2rem double #ccc;
}
table.block-table02 thead th{
  font-size:0.9em; line-height:1.8; font-weight:var(--bold);
  text-align:center;
  padding:0.3em;
  background:rgba(251,180,70,0.1);
}
table.block-table02 thead th:not(:last-child){
  border-right:0.05rem solid var(--font-color);
}
table.block-table02 tbody tr:not(:last-child){
  border-bottom:0.05rem solid var(--font-color);
}
table.block-table02 tbody td{
  text-align:left;
  padding:0.75em 1.0em;
}
table.block-table02 tbody tr td:not(:last-child){
  border-right:0.05rem solid var(--font-color);
}
.block-contents ul.photo-list{
  display:flex;
  justify-content:center;
  align-items:flex-start;
  flex-wrap:wrap;
  gap:1.5rem 1.0rem;
}
.block-contents ul.photo-list > li{
  list-style:none;
  margin:0;
}
ul.photo-list.column2 > li{
  width:calc((100% - 1.0rem) / 2);
}
ul.photo-list.column3 > li{
  width:calc((100% - 2.0rem) / 3);
}
ul.photo-list > li > figure{
  width:100%; height:auto;
  aspect-ratio:3/2;
  overflow:hidden;
}
ul.photo-list > li > figure > img{
  width:100%; height:100%;
  object-fit:cover;
}
ul.photo-list > li > figcaption{
  font-size:0.85em; line-height:1.6;
  text-align:center;
  margin-top:0.3em;
}
.block-movie{
  width:100%; height:auto;
  aspect-ratio:16/9;
  overflow:hidden;
}
.block-movie > iframe{
  width:100%; height:100%;
}

.block-contents ul.faq-list{
  margin:0;
}
.block-contents ul.faq-list > li{
  list-style:none;
  text-align:left;
  padding:1.5em 0;
  margin:0;
  border-bottom:1px solid #ccc;
}
ul.faq-list > li:first-child{
  padding-top:0.5em;
}

ul.faq-list li .question{
  position:relative;
  padding:0 3em 0 44px;
  cursor:pointer;
}
ul.faq-list li .question::before{
  content:"Q";
  width:32px; height:auto;
  aspect-ratio:1/1;
  border-radius:100%;
  background:var(--main-color);
  font-size:1.05em; line-height:28px; font-weight:var(--bold);
  text-align:center;
  color:#FFF;
  position:absolute;
  top:0em; left:0;
}
ul.faq-list li .question span{
  width:1.0em; height:1.0em;
  position:absolute;
  top:0.6em; right:0.25rem;
}
ul.faq-list li .question span:before{
  content:"";
  width:100%;
  border-top:0.2rem solid var(--main-color);
  position:absolute;
  top:50%; left:0;
  transform:translateY(-50%);
}
ul.faq-list li .question span:after{
  content:"";
  height:100%;
  border-left:0.2rem solid var(--main-color);
  position:absolute;
  top:0; left:50%;
  transform:translateX(-50%) rotate(0);
  transition:0.2s;
}
ul.faq-list li .question.open span:after{
  content:"";
  height:100%;
  border-left:0.15rem solid var(--main-color);
  position:absolute;
  top:0; left:50%;
  transform:translateX(-50%) rotate(-90deg);
  transition:0.2s;
}
ul.faq-list li .answer{
  display:none;
  padding:0 3em 0 44px;
  margin:1em 0 0;
  font-size:1.025rem; line-height:1.8;
  font-weight:var(--bold);
  color:#444;
}
ul.faq-list li .answer p{
  text-indent:0;
  margin:0;
}
ul.faq-list li .answer p strong{
  font-weight:var(--bold);
  background:linear-gradient(
    transparent 70%,
    #ff0 70%,
    #ff0 100%
  );
}
ul.faq-list li .answer ul > li{
  list-style:disc outside;
  margin-left:1.25em;
}
.entry-title{
  text-align:left;
}
section.entry-title time,
ul.ariko-days-list .date{
  display: block;
  font-size: 0.85rem;
  color: #777;
  margin-top: 0.5em;
  display:block;
  font-size:0.8em;
  line-height:1.8;
}
section.entry-title h1{
  position: relative;
  font-size: 1.7em;
  line-height: 1.6;
  margin-bottom: 1.5em;
  padding-bottom: 0.5em;
}
section.entry-title h1::before{
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 2px;
  background: linear-gradient( to right, rgba(0, 128, 0, 1) 0%, rgba(0, 128, 0, 1) 20%, rgba(0, 128, 0, 0.5) 20%, rgba(0, 128, 0, 0.5) 100% );
}
ul.entry-bottom{
  display: flex;
  justify-content: center;
  margin-top: 3em;
  font-size: 0.9em;
  line-height: 1.8;
}
ul.entry-bottom li:not(:last-child)::after{
    content: "｜";
    margin: 0 0.5em;
}
ul.entry-bottom li a:hover,
ul.news-list li a:hover{
  text-decoration: underline;
}
ul.ariko-days-list{
  display: flex;
  flex-wrap: wrap;
  gap: 50px;
}
ul.ariko-days-list li{
  flex: 0 0 calc((100% - (50px * 2)) / 3);
  text-align:left;
}
ul.ariko-days-list li a h3{
  font-size:1em;
  font-weight:500;
  line-height:1.6;
  text-decoration:none;
}
ul.ariko-days-list li a:hover h3.title{
  text-decoration:underline;
}
ul.ariko-days-list li a figure{
  width: 100%;
  height: auto;
  aspect-ratio:3/2;
  overflow: hidden;
  margin-bottom:0.5em;
  border:1px solid #ccc;
}
ul.ariko-days-list li a figure img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .4s ease;
}
ul.ariko-days-list li a:hover figure img {
    transform: scale(1.1);
}
