/* header,
#linkout,
.contents_block,
.footer_contents {
    border: 1px solid red !important;
}
#contents_box,
.contents_blocks,
#header_logo,
nav {
    border: 1px solid limegreen !important;
}
#contents,
.block-double,
.block-triple,
.block-triple2,
.block-quad,
.block-quad3,
.footer {
    border: 1px solid lightblue !important;
} */

@import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100..900;1,100..900&display=swap');

.ikb {
    font-family: 'Roboto', sans-serif;
	color: rgb(255,255,255);
	padding: 0 1vw;
	background-color: rgb(229,0,18);
}

/*loading*/
#loader-bg {
    background: rgba(229,0,18, 1);
    height: 100%;
    width: 100%;
    position: fixed;
    top: 0px;
    left: 0px;
    z-index: 900;
}
#loader-bg .bouncingLoader {
    background: rgba(229,0,18, 1);
    position: fixed;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    z-index: 910;
}
.bouncingLoader>div,
.bouncingLoader:before,
.bouncingLoader:after {
    display: inline-block;
    width: 13px;
    height: 13px;
    background: rgb(255, 255, 255);
    margin-bottom: -5px;
    border-radius: 50%;
    animation: bouncing-loader 0.6s infinite alternate;
}
.bouncingLoader>div,
.bouncingLoader:before,
.bouncingLoader:after {
    content: "";
}
.bouncingLoader>div {
    margin: 0 5px;
}
.bouncingLoader>div {
    animation-delay: 0.2s;
}
.bouncingLoader:after {
    animation-delay: 0.4s;
}
@keyframes bouncing-loader {
    to {
        opacity: 0.1;
        transform: translate3d(0, -16px, 0);
    }
}
/*3つの円が上下に動くためのアニメーション*/

/*font-styles*/
.bold {
    font-weight: bold !important;
}
.regular {
    font-weight: normal !important;
}
.large {
    font-size: 120% !important;
}
.middle {
    font-size: 80% !important;
}
.small {
    font-size: 60% !important;
}
.center {
    text-align: center !important;
}
.right {
    text-align: right !important;
}
.centering {
    margin: 0 auto 0 !important;
}

/* まずすべて非表示にしておく（安全対策） */
.tx-wd, .tx-nw {
  display: none;
}
@media (min-width: 768px) {
  .tx-wd {
    display: inline;
  }
}
@media (max-width: 767px) {
  .tx-nw {
    display: inline;
  }
}


/*font-color*/
.tx_KEY {color: rgb(7,12,71);}
.tx_gd {color: rgb(191,156,70);}
.tx_gr {color: rgb(188,185,179);}
.tx_wt {color: rgb(255,255,255);}
.tx_bk {color: rgb(0,0,0);}
.tx_rd {color: rgb(229,0,18);}

/*background-color*/
.bg_fr {
    border: 1px solid rgb(255, 255, 255)
}

.fr_rd {border: 2px solid rgb(229,0,18)}
.fr_bl {border: 1px solid rgb(7,12,71);}
.bg_wt {background-color: rgb(255,255,255)}
.bg_rd {background-color: rgb(229,0,18)}
.bg_gr {background-color: rgb(188,185,179)}
.bg_gd {background-color: rgb(191,156,70)}

.bg_bk {
    background-color: rgb(0,0,0) !important;
}

.bg_blr {
    backdrop-filter: blur(1vw) !important;
}
.bg_str-or {
    background-size: auto auto;
    background-color: rgba(255, 255, 255, 0);
    background-image: repeating-linear-gradient(45deg, transparent, transparent 3vw, rgba(255,140,0, 1) 3vw, rgba(255,140,0, 1) 6vw);
}
.bg_dtr {
    background-image: radial-gradient(rgba(191,156,70,.8) 25%, transparent 0%),
    radial-gradient(rgba(191,156,70,.8) 25%, transparent 0%);
    background-size: .5vh .5vh;
    background-position: 0 0, .25vh .25vh;
    }

/*round-corner*/
.bg_1r {
    border-radius: 1vw;
}
.bg_hr {
    border-radius: .5vw;
}

/*wording-rule*/
header h1 {
    font-size: 2.6vh;
    line-height: 1.4em;
    font-weight: bold;
}
.footer_credit {
    max-width: 640px;
    margin: 2vh auto 0;

    font-size: 14px;
    line-height: 1.8em;
    text-align: justify;
    text-justify: inter-ideograph;
}

.announce-text {
    font-size: 2.2vh;
    line-height: 1.8em;
    text-align: justify;
    text-justify: inter-ideograph;

    width: 100%;
    margin: 0 auto;
    padding: 2vh 10vw;
}
.main-catch {
    font-size: 5.5vh;
    line-height: 1.6em;
    font-weight: bold;

    width: 100%;
    max-width: 720px;
    margin: 0 auto 0;
}

.catch {
    font-size: 4.6vh;
    line-height: 1.6em;
    font-weight: bold;
    width: 100%;
    max-width: 720px;
    margin: 0 0 2vh 0;
}
.sub-catch {
    font-size: 3vh;
    line-height: 2.4em;
    font-feature-settings: "palt";

    width: 100%;
    margin: 0 0 4vh 0;
}
.lead {
    font-size: clamp(16px, 4.4vw, 18px);
    line-height: 2.6em;
    text-align: justify;
    text-justify: inter-ideograph;

    width: 100%;
    max-width: 720px;
    margin: 0 0 8vh;
}
.titling {
    font-size: 2.4vh;
    line-height: 1.6em;
    font-weight: bold;
    letter-spacing: 0.08em;

    width: 100%;
    max-width: 720px;
    margin: 0 0 4vh 0;
}
.heading {
    font-size: 2.4vh;
    line-height: 1.6em;
    font-weight: bold;
    letter-spacing: 0.08em;
    margin: 0;
}
.bodytext {
    font-size: clamp(14px, 4vw, 16px);
    line-height: 2.4em;
    text-align: justify;
    text-justify: inter-ideograph;
    font-feature-settings: "palt";
      word-break: break-word; /* 長い単語を折り返す */
  overflow-wrap: break-word; /* 同上（保険） */

    width: 100%;
    max-width: 720px;
    margin: 0 0 4vh 0;
}
.dectext {
    font-size: clamp(12px, 3vw, 14px);
    line-height: 1.8em;
    text-align: justify;
    text-justify: inter-ideograph;
    font-feature-settings: "palt";

        width: 100%;
    max-width: 720px;
    margin: 0 0 8vh;
}

.box-bodytext {
    font-size: 1.8vh;
    line-height: 1.8em;
    text-align: justify;
    text-justify: inter-ideograph;
}
.bodytext:last-child,
.lead:last-child {
    margin: 0;
}

.arch_title {
	color: rgb(255,255,255);
	font-size: 3vh;
	line-height: 1.6em;
	font-weight: bold;
	text-align: center;
	margin: 1vh auto 1vh;
}
.arch_lead {
	color: rgb(255,255,255);
	font-size: 2.4vh;
	font-weight: normal;
	line-height: 1.8em;
	text-align: justify;
	text-justify: inter-ideograph;
	margin: 0 auto 0;
}
.arch_caption {
	color: rgb(191,156,70);
	font-size: 2vh;
	font-weight: normal;
	line-height: 1.6em;
	text-align: justify;
	text-justify: inter-ideograph;

	width: 100%;
	overflow: hidden;
	position: relative;
	display: block;
	margin: 0 auto 6vh;
	padding: 2vh;
	border: 1px solid rgb(191,156,70);
}
.arch_inclnavi {
	color: rgb(229,0,18);
	font-size: 2.4vh;
	line-height: 2em;
	font-weight: bold;
	text-align: center;
	width: 80%;
	margin: 1vh auto 2vh;
	background-color: rgb(191,156,70);

	-webkit-border-radius: 1em;
	-moz-border-radius: 1em;
	-ms-border-radius: 1em;
	-o-border-radius: 1em;
	border-radius: 1em;
}

.btn_join {
	font-size: 2.5vh;
	line-height: 2em;
	font-weight: bold;
	text-align: center;
	width: 90%;
	margin: 6vh auto 6vh;
    padding: 1vh;
	background-color: rgb(191,156,70);
	border-radius: 6vh;
}
.btn_12 {
	display: flex;
    justify-content: space-evenly;
    align-items: center;
	text-align: center;
	text-decoration: none;
	width: 100%;
    max-width: 960px;
	margin: auto;
	padding: 1rem 4rem 1rem 3rem;
	font-weight: bold;
	background: rgba(229,0,18, 1);
    border: 1px solid rgb(255,255,255);
	border-radius: 100vh;
	position: relative;
	transition: 0.5s;
}
.btn_12:hover {
	background: rgba(229,0,18, .8);
	color: #fff;
}
.apply-block {
  margin: 0;
}
.mailBtn {
    width: 100%;
  display: block;
  margin: 0 auto .5vh;
  background: rgb(229,0,18);;
  color: white;
  padding: 0.8em 1.2em;
  border-radius: 5px;
  cursor: pointer;
  user-select: none;
  text-align: center;
}
.mailBtn:hover {
  background: rgb(229,0,18);;
}
.gmailBtn {
    width: 100%;
  display: block;
  margin: 0 auto 2vh;
  background: rgb(229,0,18);;
  color: white;
  padding: 0.8em 1.2em;
  border-radius: 5px;
  cursor: pointer;
  user-select: none;
  text-align: center;
}
.gmailBtn:hover {
  background: rgb(229,0,18);;
}

/*wording-decolation*/
.side-line10 {
    padding: 0 0 0 2vw !important;
    border-left: 10px solid rgb(255,255,255);
}
.side-line5 {
    padding: 0 0 0 2vw !important;
    border-left: 5px solid rgb(229,0,18);
}
.bottom-line5 {
    padding: 0 0 1vh 0 !important;
    border-bottom: 5px solid rgb(229,0,18);
}
.framebox-01 {
	padding: 2vw;
	position: relative;
}
.framebox-01::before, .framebox-01::after {
	content: '';
	width: 5vw;
	height: 5vw;
	position: absolute;
}
.framebox-01::before {
	border-left: solid 6px rgb(229,0,18);
	border-top: solid 6px rgb(229,0,18);
	top: 2vw;
	left: 2vw;
}
.framebox-01::after {
	border-right: solid 6px rgb(229,0,18);
	border-bottom: solid 6px rgb(229,0,18);
	bottom: 2vw;
	right: 2vw;
}
.ribbon-01 {
    position: relative;
    height: 60px;
    padding: 0 2rem;
    color: rgb(255,255,255);
    background: rgb(229,0,18);
}
.ribbon-01:before, .ribbon-01:after {
    position: absolute;
    top: 0;
    display: block;
    height: 48px;
    content: '';
    border: 30px solid rgb(229,0,18);
}
.ribbon-01:before {
    left: -40px;
    border-left-width: 15px;
    border-left-color: transparent;
}
.ribbon-01:after {
    right: -40px;
    border-right-width: 15px;
    border-right-color: transparent;
}
.framebox-02 {
    position: relative;
    margin: 6vh auto 2vh !important;
    padding: 2vh;
    border: 2px solid rgb(191,156,70);
  }
.framebox-02:before {
    font-size: 1.8vh;
    position: absolute;
    top: -3vh;
    left: -2px;
    height: 3vh;
    padding: 0 1em;
    content: 'お願い';
    color: rgb(255,255,255);
    background: rgb(191,156,70);
}
.framebox-03 {
    position: relative;
    margin: 6vh auto 2vh !important;
    padding: 1vh 0;
    border-top: 2px solid rgb(229,0,18);
  }
.framebox-03:before {
    font-size: 1.6vh;
    position: absolute;
    top: -3.2vh;
    left: -2px;
    height: 3.2vh;
    padding: 0 1em;
    font-weight: bold;
    content: 'お問い合わせ';
    color: rgb(255,255,255);
    background: rgb(229,0,18);
}

.home-base {
    width: 100%;
    height: 10vh;
    background-color: rgb(191,156,70); /* お好みの色に変更可能 */
    clip-path: polygon(
      50% 0%,   /* 上中央 */
      100% 0%,  /* 右上 */
      100% 70%, /* 右下 */
      50% 100%, /* 下中央の尖った部分 */
      0% 70%,   /* 左下 */
      0% 0%     /* 左上 */
    );
  }
  


/*image-layout*/
.cover-image {
    object-fit: scale-down;
    overflow: hidden;
}
.cover-image img {
    max-width: 100%;
}

.block-image {
    width: 90%;
    max-width: 640px;
    margin: 0 auto 4vh;
    text-align: center;
    overflow: hidden;
}
.circle-image {
    margin: 0 auto 2vh;
    position: relative;
    width: 90%;
    max-width: 300px;
    overflow: hidden;
    background: rgba(120,120,120,.5);
    border-radius: 50%;
}
.square-image {
    margin: 0 auto 2vh;
    position: relative;
    width: 100%;
    overflow: hidden;
    background: rgba(120,120,120,.5);
}
.square-image::before, .circle-image::before {
    content: "";
    display: block;
    padding-top: 100%;
}
.square-image img, .circle-image img {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    height: 100%;
}
.block-image:last-child {margin: 0 auto;}
.block-image img {height: auto; max-width: 100%;}

/* x sec show button */
.fade-in-box {
    opacity: 0;
    transform: translateY(20px);
    animation: fadeInUp 0.8s ease-out forwards;
    animation-delay: 3s; /* 表示までの遅延秒数 */
}
@keyframes fadeInUp {
to {
    opacity: 1;
    transform: translateY(0);
}
}
  /* 装飾用 */
.fade-in-box {
    width: 100%;
    position: fixed;
    bottom: 10vh;
    z-index: 9999;
}
.fade-in-box a {
    color: rgb(255, 255, 255);
}


/* table set */
tr {
    margin: 0;
    overflow: hidden;
}
tr:nth-child(even) {
    background-image: radial-gradient(rgba(70,83,100,.3) 25%, transparent 0%), radial-gradient(rgba(70,83,100,.3) 25%, transparent 0%);
    background-size: .5vh .5vh;
    background-position: 0 0, .25vh .25vh;
}
th {
    font-size: clamp(14px, 4vw, 16px);
    font-weight: bold;
    line-height: 2em;
    text-align: center;
    letter-spacing: 0.1em;
}
td {
    font-size: clamp(14px, 4vw, 16px);
    font-weight: normal;
    font-feature-settings: "palt";
    line-height: 2em;
    text-align: left;
    padding: 1.5vh;
    border-bottom: 1px dotted rgb(70,83,100);
}

.news table {
	width: 100%;
	border-collapse: collapse;
	border-spacing: 0;
	overflow: hidden;
	background-color: #efefef;
}
.news table tr {
	width: 100%;
	overflow: hidden;
	border-bottom: 1px solid #333;
}
.news table td {
	width: 50%;
	padding: 1%;
	text-align: left;
	overflow: hidden;
	font-size: 2vh;
	font-weight: normal;
	line-height: 1.8em;
	vertical-align: top;
}
.news table tr:nth-child(odd){
	background: rgb(188,185,179);
}
.news figure {
	width: 50%;
	display: inline;
	float: left;
	overflow: hidden;
}
.news figure img {
	width: 100%;
}

#table_mapA tr td:first-child {
    width: 23%;
}
#table_mapA tr td:nth-child(2) {
    width: 7%;
}
#table_mapA tr td:nth-child(3) {
    width: 60%;
}

/*cover slider*/
.slider {
    max-width: 100%;
    margin: 0 auto;
    overflow: hidden;
}
.slide-part {
    position: relative;
}
.slider-txt {
    font-size: 6vh;
    font-weight: bold;
    line-height: 1.6em;

    position: absolute;
    inset: 0;
    margin: auto;
    width: fit-content;
    height: fit-content;
    z-index: 110;
}

.zoom {
    overflow: hidden;
}
.slider img,
.zoom img {
    display: block;
    width: 100%;
    height: auto;
    max-width: 100%;
    /* animation: animationZoom 10s ease-in-out infinite; */
}




/* init */
.background {
    top: 0;
    left: 0;
    right: 0;
    height: 100%;
    position: fixed;
    background-position: center center;
    opacity: 0;
    background-size: cover;
    transition: all 0.2s ease 0s;
}
.show .background {
    opacity: 1;
}
.wrap {
    position: relative;
    overflow: hidden;
    z-index: 100;
}

/* design*/
#content01_bg {
    margin: 0;
}
#content02_bg {
    margin: 0;
}
#content03_bg {
    background-color: rgba(229,0,18, 1);
}
#content04_bg {
    margin: 0;
}

#content01 .wrap {
    background-attachment: fixed;
    background-image: url(../images/ikbt_main-pc.jpg);
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
}
#content02 .wrap {
    background-color: rgba(255,255,255, 1);

}
#content03 .wrap {
    background-color: rgb(229,0,18);
}
#content04 .wrap {
    background-color: rgba(255,255,255, 1);
}


@keyframes animationZoom {
    50% {
        transform: scale(1.1)
    }
}

@media screen and (max-width:767px) {

    td,th {
        line-height: 1.8em !important;
    }
    .main-catch {
        font-size: 8vw;
        line-height: 1.2em;
    }
    .catch {
        font-size: 6vw;
        line-height: 1.6em;
    }
    .heading {
        font-size: 5vw;
        line-height: 2em;
        margin: 0;
    }
    .lead {
        line-height: 2em;
        margin: 0 0 4vh;
    }
    .bodytext {
        line-height: 1.8em;
        margin: 0 0 2vh;

    }
    .dectext {
        line-height: 1.8em;
    }

    #content01 .wrap {
    background-image: url(../images/ikbt_main-sp.jpg);
}

    #table_mapA tr td:first-child {
    width: 35%;
}
#table_mapA tr td:nth-child(2) {
    width: 10%;
}
#table_mapA tr td:nth-child(3) {
    width: 55%;
}

    .footer_credit {
        max-width: 100%;
    }

  }