@charset "UTF-8";
html{
font-size: 17px;
}
:root {
--bs-body: #f7f7f7;
--bs-body-rgb: 247, 247, 247;
--bs-body-color: #1f1f1f;
--bs-gray: #999999;
--bs-lgray: #bbbbbb;
--bs-black: #000;
--bs-white: #fff;
--bs-blue:#0074BE;
--bs-blue-rgb: 0, 116, 190;
--bs-font-xs: 0.85rem;
--bs-font-s: 0.95rem;
}

/* ベース */
@media (min-width: 1200px) {
.container-xl, .container-lg, .container-md, .container-sm, .container {
max-width: 1100px;
}
}
body{
font-family: "Noto Sans JP", sans-serif;
-webkit-font-smoothing: antialiased;
background:var(--bs-body) ;
}
.roboto {
font-family: "Roboto", sans-serif;
font-weight: 700;
font-style: normal;
line-height: 1.6;
}
a{
transition: 0.5s;
color:#035990;
}
a.h-color{
 color:var(--bs-body-color);
 }
a:hover{
color:var(--bs-blue);
}
a[href^="tel:"] {
text-decoration: none;
color: var(--bs-body-color);
}
/* オープニングビデオ */
.anime{
position: relative;
width:100%;
height: 100vh;
z-index:10000;
}
.anime #opening_video{
width:100%;
height:100vh;
object-fit: cover;
}

#scrollButton {
display: none;
position: fixed;
bottom: 50px;
z-index: 10002;
width:100%;
}
.scrollButton-in{
width: 100%;
display:flex;
justify-content: center;
}
.chevron {
position: absolute;
width: 28px;
height: 8px;
opacity: 0;
transform: scale3d(0.5, 0.5, 0.5);
animation: move 3s ease-out infinite;
}
.chevron:first-child {
animation: move 3s ease-out 1s infinite;
}
.chevron:nth-child(2) {
animation: move 3s ease-out 2s infinite;
}
.chevron:before,
.chevron:after {
content: ' ';
position: absolute;
top: 0;
height: 100%;
width: 51%;
background: #60563c;
}
.chevron:before {
left: 0;
transform: skew(0deg, 30deg);
}
.chevron:after {
right: 0;
width: 50%;
transform: skew(0deg, -30deg);
}
@keyframes move {
25% {
opacity: 1; 
}
33% {
opacity: 1;
transform: translateY(30px);
}
67% {
opacity: 1;
transform: translateY(40px);
}
100% {
opacity: 0;
transform: translateY(55px) scale3d(0.5, 0.5, 0.5);
}
}
.text {
display: block;
padding-top: 65px;
font-size: 14px;
color: #60563c;
opacity: .25;
animation: pulse 2s linear alternate infinite;
}
@keyframes pulse {
to {
opacity: 1;
}
}
/* カラー */
.bg-body{
background:var(--bs-body) ;
}
.bg-blue{
background: var(--bs-blue);
}
.text-blue{
color: var(--bs-blue);
}
.text-gray{
color: var(--bs-gray);
}
.shadow {
box-shadow: 0 0.1rem 0.4rem rgba(0, 0, 0, 0.2);
}

/* ボタン */
.btn-blue {
--bs-btn-color: #fff;
--bs-btn-bg: #0074BE;
--bs-btn-border-color: #0074BE;
--bs-btn-hover-color: #fff;
--bs-btn-hover-bg: #0381cf;
--bs-btn-hover-border-color: #017cc8;
--bs-btn-active-color: #fff;
--bs-btn-active-bg: #0381cf;
--bs-btn-active-border-color: #0381cf;
--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
--bs-btn-disabled-color: #fff;
--bs-btn-disabled-bg: #0074BE;
--bs-btn-disabled-border-color: #0074BE;
max-width:300px;
--bs-btn-padding-y: 1rem;
font-size: var(--bs-font-s);
}
.btn-lblue {
--bs-btn-color: #fff;
--bs-btn-bg: #53BEEC;
--bs-btn-border-color: #53BEEC;
--bs-btn-hover-color: #fff;
--bs-btn-hover-bg: #3bb2e6;
--bs-btn-hover-border-color: #37addf;
--bs-btn-active-color: #fff;
--bs-btn-active-bg: #3bb2e6;
--bs-btn-active-border-color: #3bb2e6;
--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
--bs-btn-disabled-color: #fff;
--bs-btn-disabled-bg: #53BEEC;
--bs-btn-disabled-border-color: #53BEEC;
max-width:300px;
--bs-btn-padding-y: 0.8rem;
font-size: var(--bs-font-s);
}
.btn-gray {
 --bs-btn-color: var(--bs-body-color);
 --bs-btn-bg: #F7F7F7;
 --bs-btn-border-color: #F7F7F7;
 --bs-btn-hover-color: var(--bs-body-color);
 --bs-btn-hover-bg: #F7F7F7;
 --bs-btn-hover-border-color: #F7F7F7;
 --bs-btn-active-color: #fff;
 --bs-btn-active-bg: #F7F7F7;
 --bs-btn-active-border-color: #F7F7F7;
 --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
 --bs-btn-disabled-color:var(--bs-body-color);
 --bs-btn-disabled-bg: #F7F7F7;
 --bs-btn-disabled-border-color: #F7F7F7;
 --bs-btn-padding-y: 1.2rem;
 font-size:1.08rem;
 }
.btn {
box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.25);
}
.btn:hover{
 box-shadow: 3px 3px 3px rgba(0, 0, 0, 0.15);
 }

@media (min-width: 768px) {
.btn-lblue {
min-width:260px;
}
}
#next {
fill: none;
}
.icon-link-hover:focus-visible>.next, .icon-link-hover:hover>.next {
transform:translateX(6px) ;
}
.icon-link{
position:relative;
}
.icon-link svg{
position:absolute;
right:15px;
}
.next-icon{
stroke-width:1.5px;
stroke:#fff;
}
.icon-link > .bi {
width: 25px;
height: 25px;
}


/*サイズ */
.fs-xs{
font-size: var(--bs-font-xs);
}
.fs-s{
font-size: var(--bs-font-s);
}
.justify{
text-align: justify;
}
@media (max-width: 576.98px) {
.fs-5 {
font-size:calc(0.4rem + 2.2vw) !important;
}
}

/* 隙間 */
.home-pd{
padding-bottom:60px;
}
.page-pd{
padding-top:35px;
padding-bottom:60px;
}
.a-link{
 padding-top: 30px;
 margin-top:-30px;
 }

@media (min-width: 768px) {
.home-pd {
padding-bottom:120px;
}
.page-pd {
padding-top:70px;
padding-bottom:120px;
}
.a-link{
 padding-top: 50px;
 margin-top:-50px;
 }
}

/* テーブル共通 */
table{
width:100%;
}
table a{
text-decoration: underline;
}
table th{
vertical-align: middle;
font-weight: 500;
width:30%;
border-right:1px solid #fff;
}
table.table-member,table.table-back{
table-layout: fixed;
}
table.table-member thead th{
background: #479BD1;
color: #fff;
text-align: center;
}
table.table-member thead th{
width:21%;
padding:0.5rem;
font-size: var(--bs-font-s);
}
table.table-member thead th:nth-child(1){
width: 28%;
}
table.table-member thead th:nth-child(3){
width: 30%;
}
.table-member tr:nth-child(even) th{
background: #EDF8FF;
}
table.table-member tr:nth-child(even){
background:#EDF8FF;
}
table.table-member th,table.table-member td{
padding:0.8rem 1rem;
border-right:1px solid #fff;
}
table.table-line{
margin-top:-1.5rem;
}
table.table-line th{
border-bottom:1px solid var(--bs-blue);
}
table.table-back{
border:1px solid #ccc;
}
table.table-back th{
background: #EAF7FE;
text-align: center;
border-bottom: 1px solid #ccc;
border-right: 1px solid #ccc;
}
#officer table.table-back td{
padding:0.8rem 2rem;
border-bottom: 1px solid #ccc;
}
table.table-back td{
padding:0.8rem 1rem;
border-bottom: 1px solid #ccc;
}
table.table-line td{
padding:1.8rem 1.8rem;
border-bottom: 1px solid #ccc;
}

@media (max-width:991.98px){
.table-wrap{
overflow-x: scroll;
position:relative;
}
.table-member{
min-width: 700px;
}

.table-member th{
position: sticky;
top: 0;
left:-1px;
z-index:1;
background: #fff;
}

.table-member thead th:first-child{
position: sticky;
top: 0;
left: -1px;
background: #479BD1;
z-index:2;
}
}
@media (max-width:767.98px){
table.table-line{
margin-top:0rem;
}
table:not(.table-member) th,table:not(.table-member) td{
width:100%;
display:block;
}
table.table-line th{
padding:0.5rem 0;
}
table.table-line td{
padding:1.3rem 0;
border-bottom: 0;
}
table.table-back th{
border-right: 0px solid #ccc;
text-align: start;
padding:0.5rem 1rem
}
#officer table.table-back td{
padding:0.8rem 0.5rem;
display:inline-block;
width:45%;
}
#officer table.table-back td.fw-medium{
width:55%;
}
table.table-back{
border-bottom: 0;
}
}

/*タイトル */
.title-border::after{
content: "";
display: block;
width:95px;
height:2px;
background: var(--bs-blue);
margin:25px 0 30px;
}
#works .title-border::after,#pr .title-border::after{
margin:25px auto 35px;
}
#news .title-border::after{
 margin:25px auto 15px;
 }
.title-border-center::after{
 content: "";
 display: block;
 width:45px;
 height:2px;
 background: rgba(var(--bs-blue-rgb), 0.4);
 margin:17px auto 12px;
 }

 @media (min-width: 768px) {
.title-border::after{
width:115px;
margin:30px 0 35px;
}
.title-border-center::after{
margin:25px auto 20px;
}
#works .title-border::after,#pr .title-border::after{
margin:35px auto 55px;
}
}
@media (min-width: 992px) {
#news .title-border::after{
margin:25px 0;
}
}

/* メインビジュアル */
@keyframes infinity-scroll-left {
from {
transform: translateX(0);
}
to {
transform: translateX(-100%);
}
}
.main-v{
height:93vh;
min-height:500px;
}
.scroll-infinity__wrap {
display: flex;
height:70vh;
min-height:400px;
}
.scroll-infinity__list {
display: flex;
list-style: none;
padding: 0
}
.scroll-infinity__list--left {
animation: infinity-scroll-left 40s infinite linear 0.5s both;
}
.scroll-infinity__item {
padding-right:0.6rem;
padding-left:0.6rem;
}
.scroll-infinity__item:first-child {
min-width: 400px;
}
.scroll-infinity__item:nth-child(2) {
min-width: 250px;
}
.scroll-infinity__item:last-child {
min-width: 400px;
}
.slide-img{
height:100%;
width:100%;
}
.slide-img50{
width:100%;
height:48%;
}
.slide-space{
height:4%;
}
.slide-img,.slide-img50{
object-fit: cover;
border-radius: var(--bs-border-radius);
}
.main-copy{
z-index:1;
width:80%;
bottom:0px;
}
.copy{
background: rgba(var(--bs-body-rgb), 0.95)
}
.fs-copy {
font-size: calc(1.2rem + 1.5vw) ;
}

@media (min-width: 992px) {
.fs-copy {
font-size: 2.5rem;
}
}

@media (min-width: 768px) {
.scroll-infinity__item {
padding-right:1.1rem;
padding-left:1.1rem;
}
.scroll-infinity__item:first-child {
width: calc(100vw / 2);
min-width:500px;
}
.scroll-infinity__item:nth-child(2) {
width: calc(100vw / 4);
min-width:250px;
}
.scroll-infinity__item:last-child {
width: calc(100vw / 2);
min-width:500px;
}
}

@media (min-width: 768px) {
.main-copy{
width:100%;
height:100%;
top:0;
}
.main-v{
height:610px;
min-height:610px;
}
.scroll-infinity__wrap {
height:600px;
min-height:600px;
}
}

/* header */
.logo img{
width:42px;
}
h1,.logo{
font-size:20px;
line-height: 1.2;
}
h1 small,.logo small{
font-size:13px;
}
header{
background: rgba(var(--bs-body-rgb), 0.95);
}
header .navbar-nav li a{
color: var(--bs-body-color);
font-size: 1.05rem;
width:100%;
}
header .navbar-nav li a.active{
color: var(--bs-gray);
}
header .navbar-nav li a:hover{
color: var(--bs-gray);
}
@media (max-width: 991.98px) {
header .navbar-nav li{
border-bottom:1px dotted #ccc;
display: flex;
justify-content: space-between;
align-items: center;
}
header .navbar-nav li::after{
content: "";
border-right: 1px solid #2e2e2e;
border-bottom: 1px solid #2e2e2e;
width: 6px;
height: 6px;
transform: rotate(-45deg);
}
}
@media (min-width: 768px) {
.logo img{
width:52px;
}
h1,.logo{
font-size:23px;
}
h1 small,.logo small{
font-size:14px;
}
}
@media (min-width: 992px) {
.fixed-lg-top{
position: fixed;
top: 0;
right: 0;
left: 0;
z-index: 1030;
}
header .navbar-nav li a{
font-size: 0.9rem;
}
}
/* ハンバーガーメニュー */
#input{
display: none;
}
.header-close{
width:56px;
height:56px;
z-index:1042;
text-align: center;
border-bottom-left-radius: var(--bs-border-radius);
}

.header-close-button{
margin: 0 auto;
padding-top:45%;
width:100%;
height:100%;
}
.header-close-button span, .header-close-button span:before, .header-close-button span:after {
position: relative;
height: 2px;
width: 28px;
border-radius: 1px;
background:#fff;
display: block;
content: '';
margin:0 auto;
}
.header-close-button span:before{
top:-10px;
}
.header-close-button span:after{
bottom: -9px;
}
#input:checked ~ .header-close .header-close-button span:before{
top: 0;
transform: rotateZ(-90deg);
}
#input:checked ~ .header-close .header-close-button span{
top: 0;
transform: rotateZ(45deg);
}
#input:checked ~ .header-close .header-close-button span:after{
top: 0;
transform: rotateZ(-45deg) scale(0);
}
.offcanvas.offcanvas-top {
height:480px;
}
@media (min-width: 768px) {
.header-close{
width:62px;
height:62px;
z-index:1042;
text-align: center;
}
}
/*page*/
.page-in{
max-width:800px;
margin:0px auto;
padding:1.5rem 1rem;
}
@media (min-width: 576px) {
.page-in{
padding:1.5rem 1.5rem;
}
}
@media (min-width: 768px) {
.page-in{
 padding:2rem;
 }
 }
@media (min-width: 992px) {
.page-in{
padding:3.5rem 0;
}
}
.message-photo{
width:240px;
margin:0 auto;
}
/*footer */
footer{
padding:35px 0;
background: #fff;
}
footer ul li{
width:50%;
}
footer ul li::before{
content:"\025cf";
margin-right:5px;
font-size:0.9rem;
color:var(--bs-blue);
}
footer hr{
border-color: rgba(var(--bs-body-rgb), 0.125);
}
.footer-copy{
font-size: 0.75rem;
background: #0E4079;
}
@media (min-width: 576px) {
footer{
padding:55px 0;
}
footer ul li{
width:33.3%;
}
}

/*about*/

.bg-koga{
padding-top:60px;
}
#about a img{
width:50%;
max-width:105px;
min-width:85px;
 }
 #about a .roboto{
font-size:1.05rem;
 }
#about a{
 border-top-right-radius : var(--bs-border-radius);
 position:relative;
}
#about a::after{
 content: "";
 display:block;
 position:absolute;
 width:18px;
 height:18px;
 right:8px;
 bottom:8px;
 clip-path: polygon(0 100%, 100% 0%, 100% 100%);
 background:rgba(var(--bs-blue-rgb), 0.4);
}
#about a:nth-child(1){
z-index:2;
}
#about a:nth-child(2){
z-index:1;
}
#about a:nth-child(3){
 z-index:4;
}
#about a:nth-child(4){
 z-index:3;
}
#about a{
width:50%;
}
#about a:nth-child(1),#about a:nth-child(4){
background: #DAEEFA;
 }

 #about a:nth-child(1):hover,#about a:nth-child(4):hover{
background: #b1d9ef;
 }
 #about a:nth-child(2):hover,#about a:nth-child(3):hover{
background: #b1d9ef;
 }
 #about a:nth-child(2),#about a:nth-child(3){
background: #fff;
 }
 #about a:nth-child(2),#about a:nth-child(4){
margin-left:-3%;
width:52%;
}

@media (max-width: 767.98px) {
#about a:nth-child(1)::after,#about a:nth-child(2)::after{
bottom:18px;
}
#about a:nth-child(3),#about a:nth-child(4){
margin-top:-10px;
}
 }

 @media (min-width: 992px) {
.bg-koga{
background:url(img/koga.png) top right no-repeat;
background-size: 450px;
padding-top:80px;
margin-top:30px;
}
.lg-letter{
letter-spacing: -0.5px;;
}
}

@media (min-width: 768px) {
 #about a:nth-child(1){
width:25%;
z-index:4;
 }
 #about a:nth-child(n+2){
width:27%;
margin-left:-2%;
}
#about a:nth-child(odd){
background: #DAEEFA;
 }
 #about a:nth-child(odd):hover{
background: #b1d9ef;
 }
 #about a:nth-child(even){
background: #ffffff;
 }
 #about a:nth-child(even):hover{
background: #b1d9ef;
 }
 #about a::after{
right:15px;
bottom:15px;
 }
#about a:nth-child(2){
z-index:3;
}
#about a:nth-child(3){
 z-index:2;
}
#about a:nth-child(4){
 z-index:1;
}
 }
/* works */
#works::before{
content: "";
position: absolute;
background: #fff;
max-width:1070px;
height:96%;
top:0;
left:0;
right:0;
margin:0 auto;
z-index:-1;
}

/* news */
#news{
background: linear-gradient(70deg,#DAEEFA,#7FCDFF);
}
#news a{
cursor: pointer;
}

/* page */
#page-title{
background: linear-gradient(70deg,#DAEEFA,#7FCDFF);
width:90%;
border-top-right-radius: var(--bs-border-radius);
border-bottom-right-radius: var(--bs-border-radius);
}
#page-title h2{
margin-left:10%;
padding:45px 0;
}

@media (min-width: 576px) {
 #page-title h2{
padding:60px 0;
}
}
@media (min-width: 768px) {
 #page-title h2{
padding:90px 0;
}
}

/* page-works */
ol li{
list-style-type: decimal!important;
margin-left:2rem;
margin-top:0.9rem;
}
ol li:first-child{
margin-top:0rem;
}
.photo-pd{
margin-top: 20px;
}
@media (min-width: 768px) {
.date{
padding-left:70px;
}
}
@media (min-width: 992px) {
.photo-pd{
margin-top: 40px;
}
}

.ex-img {
position: relative;
}
.ex-img-in {
position: absolute;
width: 100%;
height: 100%;
top: 0;
right: 0;
bottom: 0;
left: 0;
margin: auto;
object-fit: cover;
z-index:0;
}
.ex-img:before {
content: "";
display: block;
padding-top: 70%;
}

/* swiper */
.swiper-slide img {
width: 100%;
}

.swiper-button-prev,
.swiper-button-next {
position: static;
margin-top: initial;
}
.swiper-button-prev::after,
.swiper-button-next::after {
content: "";
border-left: 1px solid #2e2e2e;
border-bottom: 1px solid #2e2e2e;
position: absolute;
width: 20px;
height: 20px;
}
.swiper-button-prev::after {
transform: rotate(45deg);

}
.swiper-button-next::after {
transform: rotate(-135deg);
}
.slide-pagination-wrapper {
display: flex;
justify-content: center;
}
.swiper-pagination {
position: static;
}
.swiper-horizontal>.swiper-pagination-bullets, .swiper-pagination-bullets.swiper-pagination-horizontal, .swiper-pagination-custom, .swiper-pagination-fraction {
width: auto;
}
.swiper-pagination-bullets {
display: flex;
align-items: center;
}
.swiper-pagination-bullet {
margin: 0 7px !important;
background: none;
border:1px solid #2e2e2e;
opacity: 1;
width: 7px;
height: 7px;
}
.swiper-pagination-bullet-active{
background: #2e2e2e;
}
@media (max-width: 991.98px) {
#works .swiper-slide-prev{
opacity: 0.4;
}
#works .swiper-slide-next{
opacity: 0.4;
}
}
@media (min-width: 992px) {
#works .swiper-slide:has(+ .swiper-slide-prev){
opacity: 0.4;
}
#works .swiper-slide-next+.swiper-slide{
opacity: 0.4;
}
}