@charset "UTF-8";
/*
Theme Name: fulfull Web Site
Theme URI: https://fulfull.jp/
Description: fulfull Web Site
Version: 1.0
Author: fulfull inc.
Author URI: https://fulfull.jp/
*/
@import url('css/fontawesome.min.css');

html, body {
    width:100%;
    height:100%;
    margin:0 auto;
    padding:0;
    font-family: 'HiraginoSans','BIZ UDPゴシック','BIZ UDPGothic', -apple-system, 'Yu GothicPro','Yu Gothic', BlinkMacSystemFont, 'Open Sans', 'Helvetica Neue', sans-serif;

    font-size: 15px;
    font-feature-settings: "palt";
    letter-spacing: .1em;
    line-height: 1.7em;
}
body {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
a, a:visited { text-decoration: none; }
a:hover, a:active { color:#417eaa; text-decoration: none; }


/*-----------------------------------------------------------------------
    Header & Footer
------------------------------------------------------------------------*/
/* --- Header --- */
header {
    width:100%;
    margin:0 auto;
    background-color:#33668B;
}
    .header__inner {
        display: flex;
        justify-content: space-between;
        align-items: center;
        width:100%;
        max-width: 1200px;
        min-height: 48px;
        margin:0 auto;
        padding:1.4em 0 .9em;
        border-bottom:solid 1px #99B2C5;
    }
    .top_logo { flex-grow: 5; }
        .top_logo-img {
            display: block;
            width:100%;
            max-width: 140px;
            margin-bottom: .4em;
        }

    nav { flex-grow: 1; }
        nav ul {
            display: flex;
            justify-content: space-between;
        }
            nav ul  li{ list-style-type: none; }

    nav a { position: relative; font-size: 12px; }
    nav a:link, nav a:visited { color:#fff; text-decoration: none; }
    nav a:hover, nav a:active { color:#fff; text-decoration: none; }
    nav .current-menu-item, nav .current-page-ancestor { font-weight:bold; }

    nav a:hover::after, nav a:active::after, nav .current-menu-item a::after,
    nav .current-page-ancestor a::after {
        position: absolute;
        right:50%;
        bottom:-1.1em;
        content:"";
        display: block;
        width:.65em;
        height:100%;
        background: url("imgs/main_mark.svg") no-repeat center;
    }
/* --- Footer --- */    
footer {
    width:100%;
    margin:auto auto 0;
    background-color:#fff;
    z-index:9;
}
    .footer-info {
        display: flex;
        justify-content: space-between;
        align-items: flex-end;
        width:100%;
        max-width: 1200px;
        height:280px;
        margin:auto;
        padding-bottom:4em;
    }
    .foot_logo {
        width:100%;
        max-width: 540px;
    }
    .footer-info__link {
        width: 40%;
        margin-bottom:1.5em;
    }
    .footer-info__link ul {
        display: flex;
        justify-content: space-around;
        align-items: center;
        padding: 0;
    }
    .footer-info__link ul li { list-style-type: none; margin-right:1em; }
    .footer-info__link ul li:last-child { margin-right:0; }
    .footer-info__link a:link, .footer-info__link a:visited {
        color:#000;
        font-size: 11px;
        font-weight: 600;
        letter-spacing: 0;
    }
    .copyright {
        padding:1.5em 0;
        text-align:center;
        color:#fff;
        font-size:.8em;
        background-color:#33668B;
    }
    .nav-function {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 100%;
    }

/* --- BreakPoint --- */
@media screen and (max-width:769px) {
    /* Nav */
    #nav-toggle {
        position: fixed;
        top: 12px;
        right: 12px;
        height: 32px;
        cursor: pointer;
        width: 50px;
        height: 45px;
        border: solid 1px #fff;
        background:#33668B;
    }
    #nav-toggle > div {
        width: 20px;
        position: absolute;
        top: 40%;
        left: 50%;
        transform: translateY(-50%) translateX(-50%);
        -webkit-\ transform: translateY(-50%) translateX(-50%);
    }
    #nav-toggle > div > span.toggle {
        width: 100%;
        height: 1px;
        left: 0;
        display: block;
        background: #fff;
        position: absolute;
        transition: top .5s ease, -webkit-transform .3s ease-in-out;
        transition: transform .3s ease-in-out, top .5s ease;
        transition: transform .3s ease-in-out, top .5s ease, -webkit-transform .3s ease-in-out;
    }
    header.deteal_header #nav-toggle > div > span.toggle {
        width: 100%;
        height: 1px;
        left: 0;
        display: block;
        background: #fff;
        position: absolute;
        transition: top .5s ease, -webkit-transform .3s ease-in-out;
        transition: transform .3s ease-in-out, top .5s ease;
        transition: transform .3s ease-in-out, top .5s ease, -webkit-transform .3s ease-in-out;
    }
    #nav-toggle span.toggle:nth-child(1) { top: 0; }
    #nav-toggle span.toggle:nth-child(3) { top: 10px; }
    .open #nav-toggle span.toggle { background: #fff; }
    .open #nav-toggle span.toggle:nth-child(1) {
        top: 5px;
        -webkit-transform: rotate(45deg);
        transform: rotate(45deg);
    }
    .open #nav-toggle span.toggle:nth-child(2) {
        top: 10px;
        width: 0;
        left: 50%;
    }
    .open #nav-toggle span.toggle:nth-child(3) {
        top: 5px;
        -webkit-transform: rotate(-45deg);
        transform: rotate(-45deg);
    }
    /* z-index */
    #nav-toggle { z-index: 1000; }
    #container { z-index: 900; }
    #global-nav {
        background-color: rgba(40, 90, 120, .9);
        color: #fff;
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        width:100%;
        z-index: 990;
        text-align: center;
        display: flex;
        visibility: hidden;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        font-size: 29px;
        opacity: 0;
        transition: opacity .3s ease, visibility .3s ease;
    }
    #global-nav a {
        display: block;
        color: #fff;
        text-decoration: none;
        padding: 20px 0;
        transition: color .3s ease;
        font-size: .55em;
        font-family: -apple-system, BlinkMacSystemFont, 'Franklin Gothic Medium', 'Yu GothicPro','Yu Gothic', 'Open Sans', 'Helvetica Neue', sans-serif;
        font-weight: 300;
        letter-spacing: .5em;
    }
    #global-nav a:hover { color: #fff; }
    #global-nav ul {
        flex-direction: column;
        list-style: none;
        padding: 0;
    }
    #global-nav ul li {
        opacity: 0;
        -webkit-transform: translateX(200px);
        transform: translateX(200px);
        transition: opacity .2s ease, -webkit-transform .3s ease;
        transition: transform .3s ease, opacity .2s ease;
        transition: transform .3s ease, opacity .2s ease, -webkit-transform .3s ease;
    }
    #global-nav ul li:nth-child(2) { transition-delay: .05s; }
    #global-nav ul li:nth-child(3) { transition-delay: .15s; }
    #global-nav ul li:nth-child(4) { transition-delay: .25s; }

    /* open */
    .open { overflow: hidden; }
    .open #global-nav {
        visibility: visible;
        opacity: 1;
    }
    .open #global-nav li {
        opacity: 1;
        -webkit-transform: translateX(0);
        transform: translateX(0);
        transition: opacity .9s ease, -webkit-transform 1s ease;
        transition: transform 1s ease, opacity .9s ease;
        transition: transform 1s ease, opacity .9s ease, -webkit-transform 1s ease;
    }    

    /* Footer */
    .footer-info__link {
        width: 50%;
        margin-bottom: 1em;
    }
    /* common */
    .but-br-box { width:90%; }
}
@media screen and (max-width:640px) {
    /* Header */
    .header__inner { justify-content: center; }
    .top_logo-img { margin-left: 1em; }

    /* Footer */
    .footer-info {
        flex-direction: column;
        justify-content: center;
        align-items: center;
        padding: 2em 0 0;
    }
    .footer-info__link { width: 80%; margin: 1.5em 0 0; }
}
@media screen and (max-width: 480px) {
    .footer-info {
        width: 92%;
        height:240px;
    }
    .footer-info__link { width: 98%; }
}

/*-----------------------------------------------------------------------
    Contents Common
------------------------------------------------------------------------*/
main {
    position: relative;
    width:100%;
    margin:0 auto;
    background:#f0f0f0 url("imgs/bg_logopat.svg") center top;
    background-size: 100%;
}

/* ----- Index Intro ----- */
.page-title {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height:560px;
    background:#33668B url("imgs/main_mark_line.svg") no-repeat 50% 40%;
    background-size: clamp(150px, 280px, 300px);
}
    .page-title_inner {
        display: flex;
        width: 100vw;
        height: 300px;
        margin-bottom:4em;
        overflow: hidden;
      }
    .page-title_inner img {
        width: 280%;
        max-width: none;
        height: auto;
        max-height: none;
        padding: 0 5em;
      }
      .page-title_inner img:first-child { animation: loop 30s -15s linear infinite; }
      .page-title_inner img:last-child { animation: loop2 30s linear infinite; }

    @keyframes loop {
        0% {
            transform: translateX(100%);
        }
        to {
            transform: translateX(-100%);
        }
    }
    @keyframes loop2 {
        0% {
            transform: translateX(0);
        }
        to {
            transform: translateX(-200%);
        }
    }

/* --- BreakPoint --- */
@media screen and (max-width:480px) {

    /* ----- Index Intro ----- */
    .page-title {
        min-height:300px;
       /*background-position:50% 0%;*/
    }
    .page-title_inner { height: 220px; margin-bottom:0; }
        .page-title_inner img { width: 460%; }
}
/* -------------------------- */

.contents-wrap {
    position: relative;
    width:100%;
    max-width: 1200px;
    margin:-5em auto;
    background:#fff;
    z-index:10;
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.3);
}
.contents-container {
    display: flex;
    width:100%;
    height:100%;
    background-color:#fff;
}
.contents-wrap:nth-of-type(even)::after,
.contents-container:nth-of-type(even) {
    background-color:#EBF0F3;
}

/* Title */
.container-title {
    position: relative;
    align-self:stretch;
    width:calc(50% - 6em);
    margin-left:5em;
    padding:4em 4em 4em 2.5em;
    border-left:solid 1px #ccc;
}
.container-title::after {
    position:absolute;
    top:5em;
    left:0;
    content:"";
    height:4.2em;
    border-left:solid 5px #33668B;
}
    .container-title h2 {
		margin-bottom:0
		}

        .container-title h2 img { height:1.5em; }
        .container-title span { display:inline-block; padding-top:.6em; font-size: 1em; }

.container-title.line-2::after { height:6.2em; }
    .container-title.line-2 h2 img { height:3em; }


/* --- BreakPoint --- */
@media screen and (max-width:769px) {
    .container-title { margin-left: 2em; }
}
@media screen and (max-width:640px) {
    .contents-wrap { margin: 0 auto; }
}
@media screen and (max-width:480px) {
    .container-title span { display: block; }
}
/* ----- Contents Detail ----- */
.container-detail {
    /*width:calc(50% - 4em);*/
    width:50%;
    padding:4em 2em;
}
.contents-container {
    display: flex;
    width:100%;
    height:100%;
    background-color:#fff;
}
    .contents-wrap:nth-of-type(even)::after,
    .contents-container:nth-of-type(even) { background-color:#EBF0F3; }

/* --- BreakPoint --- */
 @media screen and (max-width:961px) {
    .container-detail { width:100%; }
}
@media screen and (max-width:769px) {
    .contents-container { flex-direction: column; padding-bottom: 2em; }
    .container-detail { padding: 0 2em 4em; }
}
@media screen and (max-width:640px) {
    .page-title {
        min-height:300px;
        background-size: 40%;
        background-position: 50%;
    }
        .page-title_inner { margin-bottom: 0; }
    .container-title {
        width: calc(100% - 6em);
        margin-left:0;
        padding: 4em 2em 2em 2.5em;
    }
    .container-detail {
        width: auto;
        padding: 0 2em 4em;
    }
}
/*-------- Button ------------------------------*/
 .button_su {
    overflow: hidden;
    position: relative;
    display: inline-block;
    margin-top:1em;
  }
.su_button_circle{
	border-radius: 1000px;
	position: absolute;
	left:0;
	top:0;
	width: 0px;
	height: 0px;
	margin-left: 0px;
	margin-top: 0px;
	pointer-events: none;
}

.button_su_inner{
	position: relative;
	display: inline-block;
	color:#33668B;
	font-size:.9em;
	font-weight: bold;
	text-align: center;
	transition: 400ms;
	text-decoration: none;
	padding:.6em 6em .6em 2em;
	border:solid 1px #33668B;
	z-index: 100000;
}

.button_su_inner::after{
	content:"";
	width:3em;
	height:100%;
	position: absolute;
	top:0;
	right:10%;
	background:url("imgs/blt_arw_box.svg") no-repeat 90% 50%;
	background-size: 3em;
	z-index: 100000;
}

.button_su_inner:hover {
	color:#fff;
	border:solid 1px rgba(222, 43, 72, 1);
}

.button_su_inner:hover::after {
	color:#fff;
	background-image:url("imgs/blt_arw_box_w.svg");
	background-repeat: no-repeat;
}

.button_text_container {
	position:relative;
	z-index: 10000;
}

.explode-circle { animation: explode 0.5s forwards; }
.desplode-circle{ animation: desplode 0.5s forwards; }

.but-area-rev .button_su { margin-top:0; }
@keyframes explode {
	0% {
		width: 0px;
		height: 0px;
		margin-left: 0px;
		margin-top: 0px;
		background-color: rgba(222, 43, 72, 1);
	}
	
	100% {
		width: 800px;
		height: 800px;
		margin-left: -300px;
		margin-top: -300px;
		background-color: rgba(222, 43, 72, 1);
	}
}

@keyframes desplode {
	0% {
		width: 800px;
		height:800px;
		margin-left: -300px;
		margin-top: -300px;
		background-color: rgba(222, 43, 72, 1);
	}
	
	100% {
		width: 0px;
		height: 0px;
		margin-left: 0px;
		margin-top: 0px;
		background-color: rgba(222, 43, 72, 1);
	}
}

/* Fukidashi */
.but-fukidashi__dot {
    position: relative;
    display: inline-block;
    flex-grow: 1;
    margin:auto;
    padding:.6em 3.5em .6em 2em;
    text-align: center;
    font-size:.9em;
    font-weight: bold;
    color:#33668B;
    background-color:#EBF0F3;
}
    .but-fukidashi__dot::after {
        content: "";
        width: 1.6em;
        height: 1.3em;
        position: absolute;
        top: 25%;
        right: 20%;
        background-image: url("imgs/ico_fukidashi_dot.svg");
        background-repeat: no-repeat;
        background-position: 65% 50%;
        background-size: 1.48em;
    }
    .contents-container:nth-of-type(even) .but-fukidashi__dot { background-color:#fff; }
    .but-area-rev .but-fukidashi__dot { margin: 0 1em 0 0; }

/* button - 横並び */
.but-area-rev .button_su { width:55%; }
.but-area-rev .but-fukidashi__dot { width:40%; }
.but-area-rev .button_su_inner { width:100%; }

/* --- BreakPoint --- */
@media screen and (max-width:961px) {
    .but-fukidashi__dot { background-position: 75% 50%; }
}
@media screen and (max-width:640px) {
    .but-area-rev .button_su { width:50%; }
    .button_su_inner { padding: .6em 4em .6em 2em; }
    .button_su_inner::after {
        width: 3em;
        height: 100%;
        background-size: 2em;
    }
}
@media screen and (max-width:480px) {
    .button_su_inner { padding: .5em 1em; background-image:transparent; }
        .button_su_inner::after, .button_su_inner:hover::after { background:transparent; }
    .but-fukidashi__dot {
        padding: .6em 3.2em .6em 2em;
        background-position: 86% 50%;
    }
        .but-fukidashi__dot::after { right: 10%; }
}
  /*------------------*/
  .hvr-radial-out {
    display: inline-block;
    vertical-align: middle;
    -webkit-transform: perspective(1px) translateZ(0);
    transform: perspective(1px) translateZ(0);
    box-shadow: 0 0 1px rgba(0, 0, 0, 0);
    position: relative;
    overflow: hidden;
    background: #e1e1e1;
    -webkit-transition-property: color;
    transition-property: color;
    -webkit-transition-duration: 0.3s;
    transition-duration: 0.3s;
}
/*-----------------------------------------------------------------------
    Common Parts
------------------------------------------------------------------------*/
/* Background */
.bg-basic-color { background-color:#EBF0F3; }

/* Batch */
.batch-12 {
    position: relative;
    width: 80px;
    height: 80px;
    color:#fff;
    background: #33668B;
    text-align: center;
  }
  .batch-12:before, .batch-12:after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    height: 80px;
    width: 80px;
    background: #33668B;
  }
  .batch-12:before { transform: rotate(30deg); }
  .batch-12:after { transform: rotate(60deg); }
  .batch-12-txt { position: inherit; padding-top: 12px; z-index: 99; }

 /* Border */
.bol-so1w { border-left:solid 1px #fff; }

/* Button */
.but-w-60 { width:100%; }
.but-w-60 .wp-block-button__link { width: 60%; padding:24px 0; margin-top:60px; }

.but-area-rev {
    display: flex;
    flex-direction: row-reverse;
    justify-content: space-between;
    align-items: center;
    width:100%;
    margin-top:2em;
}
.but-br01 {
    position: relative;
    width: calc(50% - 8em);
    padding:.6em 6em .6em 2em;
    text-align: center;
    font-size:.9em;
    font-weight: bold;
    color:#33668B;
    border:solid 1px #33668B;
    background:url("imgs/blt_arw_box.svg") no-repeat 90% 50%;
    background-size: 3em;
    z-index: 998;
}
/* GENERAL STYLES */
.but-br01 {
    display: inline-block;
    position: relative;
    overflow: hidden;
    transition: color .5s;
}
.but-br01::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0%;
    transition: all .7s;

    z-index: -1;
    background: crimson;
    height: 180px;
    width: 360px;
    border-radius:100%;
}
.but-br01:hover {
    position: relative;
    color: #fff;
    border: 1px solid crimson;
    background:url("imgs/blt_arw_box_w.svg") no-repeat 90% 50%;
    background-size: 3em;
    z-index: 9999;
}
    .but-br01:hover::before {
        top:-50px;
        left: -20px;
    }
.but-br-box {
    display: inline-block;
    width: 70%;
    margin: 0 auto;
    padding: 1.3em 2em;
    text-align: center;
    color: #33668B;
    font-size: 1.4em;
    border: solid 1px #33668B;
}
    .but-br-box:hover { background-color:rgba(52, 101, 143, 0.1); }


/* font & Text */
.font-smaller { font-size:0.85rem; }
.font-small { font-size: 1rem; }
.font-base { font-size: 16px; }
.font-large { font-size:1.2rem; }
.font-larger { font-size:1.4rem; }
.font-b-large {
    font-size: 2.3em;
    font-weight: 600;
}
.font-bold { font-weight: 600; }
.txt-style-ff { color:#33668B; }

.font-clamp__large { font-size: clamp(15px, 18px, 20px); }


/* Headline */
h3 {font-size: 1.3em;}

/* img */
figure { margin:0; }
img {
    /* width:auto;
    height:auto; */
    max-width:100%;
    max-height:100%;
}
/* Link */
.link_large-txt-info {
    width: fit-content;
    padding-bottom:5px;
    font-size: 14px;
    font-weight: 600;
    line-height: 36px;
    border-bottom:solid 2px #33668B;
    letter-spacing: 5px;
}
.link_underline { text-decoration: underline; }


/* List */
.list-indent { margin-left:2em; }

/* Position */
.center {
    margin:auto;
    text-align: center;
}
.align-center {text-align: center;}
.align-left {text-align: left;}
.align-right {text-align: right;}

/* Space */
.mt-2 { margin-top:2em; }
.mt-16 { margin-top:16px; }
.mt-24 { margin-top:24px; }
.mt-32 { margin-top:32px; }
.mt-40 { margin-top:40px; }
.mt-48 { margin-top:48px; }
.mt-56 { margin-top:56px; }
.mt-64 { margin-top:64px; }
.mt-72 { margin-top:72px; }

.mb-16 { margin-bottom:16px; }
.mb-24 { margin-bottom:24px; }
.mb-32 { margin-bottom:32px; }
.mb-40 { margin-bottom:40px; }
.mb-48 { margin-bottom:48px; }
.mb-56 { margin-bottom:56px; }
.mb-64 { margin-bottom:64px; }
.mb-72 { margin-bottom:72px; }

.ml-16 { margin-left:16px; }
.ml-24 { margin-left:24px; }
.ml-32 { margin-left:32px; }
.ml-40 { margin-left:40px; }
.ml-48 { margin-left:48px; }
.ml-56 { margin-left:56px; }
.ml-64 { margin-left:64px; }
.ml-72 { margin-left:72px; }

.mtb-16 { margin-top:16px; margin-bottom:16px; }
.mtb-24 { margin-top:24px; margin-bottom:24px; }
.mtb-32 { margin-top:32px; margin-bottom:32px; }
.mtb-40 { margin-top:40px; margin-bottom:40px; }

.prl-24 { padding-right:24px; padding-left:24px; }
.prl-32 { padding-right:32px; padding-left:32px; }
.prl-40 { padding-right:40px; padding-left:40px; }
.prl-48 { padding-right:48px; padding-left:48px; }
.prl-56 { padding-right:56px; padding-left:56px; }
.prl-64 { padding-right:64px; padding-left:64px; }

/* Size */
.w-80 { width: 80%; }
.w-85 { width: 85%; }
.w-90 { width: 90%; }

/* Video Play Button */
.video-but, .video-but a, .video-but a img { position: relative; }
    .video-but a { display: inline-block; }
    .video-but a:hover img::after, .video-but a:active img::after {
        content:"";
        display: block;
        background-color: rgba(0, 0, 0, 0.3);
    }
    .video-but a::after {
        content: "";
        position: absolute;
        display: block;
        width: 100%;
        min-height: 100%;
        top: 0;
        background-color: rgba(0, 0, 0, 0.6);
        background-image: url("./imgs/mark_play.png");
        background-repeat: no-repeat;
        background-position: center;
        background-size: 20%;
    }
    .video-but a:hover::after, .video-but a:active::after { background-color: rgba(0, 0, 0, 0.3); }

.news-title{
	margin-bottom:1em
}

/*-----------------------------------------------------------------------
    ブログ記事 single.php
------------------------------------------------------------------------*/

.contents-wrap-single {
    position: relative;
    width:100%;
    max-width: 800px;
    margin:-5em auto;
    background:#fff;
    z-index:10;
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.3);
}

@media screen and (max-width:640px) {
    .contents-wrap-single { margin: 0 auto; }
}


.blog-title--border {
	margin-bottom: 32px;
}

.blog-content h2 {
	margin: 22.4px 0 16px;
	padding: 15px 15px 16px;
	font-size: 24px;
	background-color: #33668B;
	color: white;
	box-shadow: 3px 3px 3px 0 rgba(0, 0, 0, .25);
}

.blog-content h3 {
	margin: 36.8px 0 25.6px;
	padding: 4px 8px;
	font-size: 22px;
	border-bottom: 3px solid #33668B;
}

.blog-content p {
	margin: 0;
	padding-bottom: 32px;
	line-height: 2;
}

.wp-block-image img{
	max-width: 100%;
	height: auto;
	margin-bottom: 20px;
	box-shadow: 3px 3px 3px 0 rgba(0, 0, 0, .25);
}

/*------------------------------------------------------------------------------------*/
/* Swiper スライダーのスタイル設定 */
.swiper-container {
    width: 100%;
    max-width: 800px;
    height: 400px;
    margin: auto;
	overflow: hidden; /* スライドエリア以外を隠す */
}

.swiper-slide img {
    width: 100%;
    height: auto;
    object-fit: cover;
}

/* スライドの横並び設定 */
.swiper-wrapper {
    display: flex; /* 画像を横並びにする */
}

/* ナビゲーションボタンのカスタマイズ */
.swiper-button-next,
.swiper-button-prev {
    color: #fff;
}

/* ページネーションのカスタマイズ */
.swiper-pagination-bullet {
    background-color: #fff;
}

/*------------------------------------------------------------------------------------*/


/* コンテナ内のレスポンシブ対応 */
.flx-wp {flex-wrap: nowrap}