@charset "UTF-8";
/*
Version: 1.0.0
Creation Date: 2023.5.13
Last Updated: 2023.6.13
*/


/* import
------------------------------------------------------------ */
@import "https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;700;900&display=swap";
@import "https://w-shiya.com/release/font/fontawesome-free-6.2.1-web/css/all.css";


/* set
------------------------------------------------------------ */
* {
margin: 0;
padding: 0;
font-weight: normal;
font-style: normal;
box-sizing: border-box;
}
body {
-webkit-text-size-adjust: 100%;
font-family: "Noto Sans JP", sans-serif;
color: #000;
font-size: 100%;
font-weight: 400;
line-height: 1.3;
}
ul,ol {
list-style: none;
}
img {
vertical-align: middle;
max-width: 100%;
height: auto;
}
table {
width: 100%;
border-collapse: collapse;
}
table th {
white-space: nowrap;
vertical-align: top;
text-align: left;
}
a {
color: inherit;
text-decoration: none;
}
a:hover {
color: #004776;
}
:hover {
transition: .3s;
}
.smp {
display: none;
}


/* common
------------------------------------------------------------ */
/* font */
small {
font-size: .75rem;
letter-spacing: normal;
}
sup {
font-size: .5rem;
margin-right: .5rem;
}

/* layout */
main {
width: 100%;
display: block;
position: relative;
overflow: hidden;
}
article {
width: 100%;
position: relative;
}
section {
width: 1000px;
max-width: 92%;
margin: 0 auto;
position: relative;
}

/* color */
.dbl {
color: #004776;
}

/* background */
.bg_lbl {
background: #F4F8FA;
}
.bg_wht {
background: #FFF;
}
.bg_dbl {
background: #004776;
color: #FFF;
}

/* .more */
p.more {
font-size: 1.5rem;
line-height: 1.6;
text-align: center;
margin: 0 0 2rem;
}
p.more strong {
font-size: 2rem;
}
div.more {
text-align: center;
}
div.more a {
background: #004776;
color: #FFF;
font-size: 1.5rem;
font-weight: 500;
min-width: 640px;
padding: 2rem 2.5rem;
display: inline-block;
border: 1px solid #004776;
}
div.more a:hover {
background: #FFF;
color: #004776;
}


/* header
------------------------------------------------------------ */
header section {
width: 1100px;
}
header h1 {
position: absolute;
top: 0;
left: 0;
z-index: 1;
}


/* main
------------------------------------------------------------ */
/* #main */
#main {
padding-bottom: 8rem;
}
#main div {
text-align: right;
padding-right: 4%;
}
#main div img {
max-width: 75%;
}
#main h1 {
text-align: center;
max-width: 92%;
margin: -2% auto 0;
}

/* #about */
#about {
text-align: center;
padding-bottom: 8rem;
}
#about h2 {
font-size: 3rem;
letter-spacing: .2rem;
padding: 5rem 0;
}
#about .bg_wht {
width: 960px;
max-width: 100%;
margin-bottom: 3rem;
padding: 5rem 5rem 1.5rem;
}
#about h3 {
font-size: 1.5rem;
font-weight: bold;
letter-spacing: .2rem;
padding: 1rem 0;
border-top: 1px solid #004776;
border-bottom: 1px solid #004776;
}
#about ul {
font-size: 1.125rem;
letter-spacing: .1rem;
text-align: left;
margin: 2.5rem 3rem 4rem;
}
#about ul li {
margin-bottom: 1.5rem;
padding-left: 2rem;
position: relative;
}
#about ul li::before {
content: "\f14a";
color: #004776;
font-family: "Font Awesome 6 Free";
position: absolute;
top: 2px;
left: 0;
}
#about p.more {
padding: 0 2rem;
display: inline-block;
position: relative;
}
#about p.more::before,
#about p.more::after {
content: "";
background: #004776;
width: 1px;
height: 100%;
position: absolute;
top: 0;
left: 0;
transform:rotate(-30deg);
}
#about p.more::after {
left: auto;
right: 0;
transform:rotate(30deg);
}

/* #point */
#point {
margin-bottom: 3rem;
padding: 8rem 0 3rem;
}
#point::after {
content: "";
background: url("img/point_bg.png") no-repeat center;
background-size: cover;
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
z-index: -1;
}
#point ol {
width: 80%;
max-width: calc(1000px + 20%);
margin: 6rem 0 4rem auto;
}
#point ol li {
background: rgba(0,71,118,.5);
color: #FFF;
margin-bottom: 4rem;
padding: 2rem 3rem 3rem 120px;
position: relative;
}
#point ol li div {
position: absolute;
top: -20px;
left: -30px;
}
#point ol h3 {
font-size: 2rem;
font-weight: 500;
letter-spacing: .1rem;
margin-bottom: 1.5rem;
}
#point ol h3 strong {
color: #ffe921;
font-size: 2.8rem;
font-weight: bold;
}
#point ol li p {
font-size: 1.125rem;
line-height: 2;
letter-spacing: .1rem;
max-width: 860px;
}

/* #smart-unite */
#smart-unite {
margin-bottom: 8rem;
padding: 8rem 0 0;
overflow: hidden;
}
#smart-unite::after {
content: "";
background: #F4F8FA;
width: 100%;
height: 60%;
position: absolute;
top: 23%;
right: 0;
z-index: -2;
}
#smart-unite section {
position: absolute;
top: 50%;
left: 50%;
-webkit-transform: translateX(-50%);
transform: translateX(-50%);
}
#smart-unite h1 {
margin-bottom: -1rem;
position: relative;
z-index: 1;
}
#smart-unite ul:first-of-type {
margin-bottom: 10%;
overflow: hidden;
}
#smart-unite ul:first-of-type li:nth-child(1) {
max-width: 55%;
float: left;
}
#smart-unite ul:first-of-type li:nth-child(2) {
text-align: center;
width: 45%;
padding: 2rem 0 10%;
float: right;
}
#smart-unite ul:first-of-type li:nth-child(3) {
max-width: 40%;
float: right;
position: relative;
z-index: -1;
}
#smart-unite ul:last-of-type li:nth-child(1) {
max-width: 52%;
float: right;
}
#smart-unite ul:last-of-type li:nth-child(2) {
max-width: 40%;
padding-top: 20%;
}

/* #detail */
#detail section {
width: 700px;
padding: 8rem 0;
}
#detail table th {
font-size: 2.25rem;
font-weight: bold;
letter-spacing: .2rem;
padding-right: 3rem;
}
#detail table td {
font-size: 1.5rem;
font-weight: bold;
line-height: 1.8;
_letter-spacing: .2rem;
vertical-align: top;
padding-bottom: 4rem;
}
#detail table small {
font-size: 1.125rem;
font-weight: bold;
margin-top: .5rem;
display: block;
}
#detail p.more {
font-weight: bold;
margin: 3rem 0;
}

/* #light-plan */
#light-plan section {
width: 800px;
padding: 8rem 0;
}
#light-plan p {
font-size: 1.25rem;
line-height: 2;
letter-spacing: .2rem;
margin-bottom: 5rem;
}

/* #contact */
#contact {
text-align: center;
}
#contact section:first-of-type {
width: 800px;
padding: 2.5rem 0;
border-top: 1px solid #000;
border-bottom: 1px solid #000;
}
#contact h1 + ul {
font-size: .875rem;
display: flex;
justify-content: center;
margin-top: 2rem;
}
#contact h1 + ul li:not(:first-child)::before {
content: "｜";
margin: 0 .3rem;
}
#contact section:last-of-type {
padding: 5rem 0 0;
}
#contact h2 {
font-size: 1.7rem;
font-weight: bold;
letter-spacing: .2rem;
}
#contact h2 + p {
font-size: 1.12rem;
line-height: 1.8;
margin: 1rem 0;
}
#contact p + ul {
text-align: left;
display: inline-block;
}
#contact p + ul li {
margin-top: 1rem;
}
#contact i {
font-size: 1.75rem;
margin-right: 1rem;
}
#contact p + ul li:first-child a {
font-size: 2rem;
letter-spacing: .08rem;
}
#contact p + ul li:last-child a {
font-size: 1.31rem;
}

/* #pagetop */
.scroll-top {
-webkit-writing-mode: vertical-rl;
-ms-writing-mode: tb-rl;
writing-mode: vertical-rl;
white-space: nowrap;
position: fixed;
right: 20px;
bottom: 10px;
z-index: 2;
visibility: hidden;
opacity: 0;
transition: opacity .5s, visibility .5s;
animation: arrowmove 1s ease-in-out infinite;
}
@keyframes arrowmove {
0%{bottom:20px;}
50%{bottom:30px;}
100%{bottom:20px;}
}
.scroll-top.scroll-view {
visibility: visible;
opacity: 1;
}
.scroll-top a {
color: #004776;
font-weight: 500;
display: block;
text-transform: uppercase;
}
.js-scroll a::before,
.js-scroll a::after,
.js-pagetop a::before,
.js-pagetop a::after {
content: "";
background: #004776;
width: 1px;
height: 20px;
position: absolute;
top: 30px;
right: -6px;
transform: skewX(-31deg);
}
.js-scroll a::after {
height: 50px;
top: 0;
right: 0;
transform: skewX(0deg);
}
.js-pagetop a::before,
.js-pagetop a::after {
top: 0;
transform: skewX(31deg);
}
.js-pagetop a::after {
height: 50px;
right: 0;
transform: skewX(0deg);
}


/* footer
------------------------------------------------------------ */
footer p {
letter-spacing: .2rem;
text-align: center;
padding: 2rem 4%;
}





@media screen and (max-width: 1180px) {
/* iPad横以下 */

/* main
------------------------------------------------------------ */
/* #point */
#point ol {
width: 93%;
}

}


@media screen and (max-width: 1180px) and (orientation:portrait) {
/* iPad縦以下 */

/* main
------------------------------------------------------------ */
/* #point */
#point h2 {
text-align: center;
}
#point ol li {
margin-bottom: 120px;
padding: 2rem 3rem 3rem 3rem;
}
#point ol li:last-child {
margin-bottom: 0;
}
#point ol li div {
top: -90px;
}
#point ol h3 {
font-size: 1.8rem;
}
#point ol h3 strong {
font-size: 2.3rem;
}
#point ol li p {
max-width: auto;
}

}


@media screen and (max-width: 740px) {
/* iPhone以下 */

/* set
------------------------------------------------------------ */
* {
letter-spacing: normal !important;
}
.smp {
display: block;
}
br.smp {
font-size: 0;
}

/* common
------------------------------------------------------------ */
/* .more */
p.more {
font-size: 1rem;
}
p.more strong {
font-size: 1.2rem;
}
div.more a {
font-size: 1rem;
min-width: auto;
padding: 1rem;
}

/* header
------------------------------------------------------------ */
header section {
max-width: 100%;
}
header h1 {
width: 90px;
}

/* main
------------------------------------------------------------ */
/* #main */
#main {
padding-bottom: 4rem;
}

/* #about */
#about {
padding-bottom: 4rem;
}
#about h2 {
font-size: 1.8rem;
padding: 2.5rem 0;
}
#about .bg_wht {
margin-bottom: 1.5rem;
padding: 2.5rem 2rem .5rem;
}
#about ul {
margin: 1.5rem 0 2.5rem;
}
#about ul li {
padding-left: 1.5rem;
}
#about p.more {
padding: 0 1rem;
}

/* #point */
#point {
padding: 4rem 0 1.5rem;
}
#point h2 {
max-width: 70%;
margin: 0 auto;
padding-bottom: 2rem;
}
#point ol {
margin: 3rem auto 2rem;
}
#point ol li {
margin: 80px 0 4rem;
padding: 2rem 1.5rem;
}
#point ol li div {
width: 80px;
top: -60px;
left: 50%;
-webkit-transform: translateX(-50%);	
transform: translateX(-50%);
}
#point ol h3 {
font-size: 1.3rem;
}
#point ol h3 strong {
font-size: 1.8rem;
}
#point ol li p {
font-size: .9rem;
line-height: 1.8;
}

/* #smart-unite */
#smart-unite {
margin-bottom: 4rem;
padding: 4rem 0 0;
}
#smart-unite ul:first-of-type li:nth-child(1) {
max-width: 70%;
}
#smart-unite ul:first-of-type li:nth-child(2) {
width: 30%;
padding: 2rem 1rem 10%;
}
#smart-unite ul:first-of-type li:nth-child(3) {
max-width: 70%;
margin-top: -10%;
}
#smart-unite ul:last-of-type li:nth-child(1) {
padding-top: 40%;
}
#smart-unite ul:last-of-type li:nth-child(2) {
padding-top: 40%;
}

/* #detail */
#detail section {
padding: 4rem 0;
}
#detail table th {
font-size: 1.5rem;
padding: 0 0 .5rem;
display: block;
}
#detail table td {
font-size: 1.2rem;
padding-bottom: 2rem;
display: block;
}
#detail table small {
font-size: 1rem;
}
#detail p.more {
margin: 2rem 0 1rem;
}

/* #light-plan */
#light-plan section {
padding: 4rem 0;
}
#light-plan p {
font-size: 1rem;
line-height: 1.8;
margin-bottom: 2.5rem;
}

/* #contact */
#contact section:first-of-type {
padding: 1.5rem 0;
}
#contact h1 + ul {
margin-top: 1rem;
}
#contact section:last-of-type {
padding: 2.5rem 0 0;
}
#contact h2 {
font-size: 1.3rem;
}
#contact h2 + p {
font-size: 1rem;
}

/* footer
------------------------------------------------------------ */
footer p {
font-size: .875rem;
padding: 1rem 4%;
}

}