@charset "utf-8";*,::after,::before{box-sizing:border-box}html{line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{font-family: "source-han-sans-japanese", "source-han-serif-japanese", sans-serif, serif;margin:0;font-size:1rem;font-weight:400;line-height:1.5;color:#002773;text-align:left;background-color:#fff;overflow-x:hidden}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin:0;padding:0;list-style:none}ol ol,ol ul,ul ol,ul ul{margin:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:none}a:not([href]):not([class]){color:inherit;text-decoration:none}a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit;text-align:-webkit-match-parent}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.featherlight-sample{display:none}#law td{background:#fff;border:solid 1px #999}ol{margin-bottom:1rem}.clearfix:after{content:"";clear:both;display:block}.button,::file-selector-button{inline-size:fit-content;touch-action: manipulation;user-select:none;}*:focus-visible{outline:2px solid magenta;outline-offset:2px}
.inter-<uniquifier> { font-family: "Inter", sans-serif; font-optical-sizing: auto; font-weight: <weight>; font-style: normal; font-variation-settings: "slnt" 0;}
.noto-sans jp-<uniquifier> { font-family: "Noto Sans JP", sans-serif; font-optical-sizing: auto; font-weight: <weight>; font-style: normal;}

.GenKaku {
    font-family: "source-han-sans-japanese", sans-serif;
    font-weight: 400;
    font-style: normal;}
	/***	ExtraLight | 100
		Light      | 200
		Normal     | 300
		Regular    | 400
		Medium     | 500
		Bold       | 700
		Heavy      | 900
	***/
.GenMin {
    font-family: "source-han-serif-japanese", serif;
    font-weight: 400;
    font-style: normal;}
	/***	ExtraLight | 200
		Light      | 300
		Regular    | 400
		Medium     | 500
		SemiBold   | 600
		Bold       | 700
		Heavy      | 900
	***/
.svg-elem-1 {
    stroke-dasharray: 270px;
    stroke-dashoffset: 270px;
    fill: transparent;
    transition: none;
    opacity: 0;}
.svg-elem-1.active {
    stroke-dashoffset: 0;
    fill: rgb(4, 0, 0);
    -webkit-transition: stroke-dashoffset 0.05s cubic-bezier(0.47, 0, 0.745, 0.715) 0s, fill 0.01s cubic-bezier(0.47, 0, 0.745, 0.715) 0s;
    transition: stroke-dashoffset 0.05s cubic-bezier(0.47, 0, 0.745, 0.715) 0s, fill 0.01s cubic-bezier(0.47, 0, 0.745, 0.715) 0s;
    opacity: 1;}
.svg-elem-2 {
    stroke-dashoffset: 66px;
    stroke-dasharray: 66px;
    fill: transparent;
    transition: none;
    opacity: 0;}
.svg-elem-2.active {
    stroke-dashoffset: 0;
    fill: rgb(4, 0, 0);
    -webkit-transition: stroke-dashoffset 0.05s cubic-bezier(0.47, 0, 0.745, 0.715) 0.04s, fill 0.05s cubic-bezier(0.47, 0, 0.745, 0.715) 0.04s;
    transition: stroke-dashoffset 0.05s cubic-bezier(0.47, 0, 0.745, 0.715) 0.04s, fill 0.05s cubic-bezier(0.47, 0, 0.745, 0.715) 0.04s;
    opacity: 1;}
.svg-elem-3 {
  stroke-dasharray: 270px;
  stroke-dashoffset: 270px;
    fill: transparent;
    transition: none;
    opacity: 0;}
.svg-elem-3.active {
    stroke-dashoffset: 0;
    fill: rgb(4, 0, 0);
    -webkit-transition: stroke-dashoffset 0.05s cubic-bezier(0.47, 0, 0.745, 0.715) 0.08s, fill 0.09s cubic-bezier(0.47, 0, 0.745, 0.715) 0.08s;
    transition: stroke-dashoffset 0.05s cubic-bezier(0.47, 0, 0.745, 0.715) 0.08s, fill 0.09s cubic-bezier(0.47, 0, 0.745, 0.715) 0.08s;
    opacity: 1;}
.svg-elem-4 {
    stroke-dashoffset: 66px;
    stroke-dasharray: 66px;
    fill: transparent;
    transition: none;
    opacity: 0;}
.svg-elem-4.active {
    stroke-dashoffset: 0;
    fill: rgb(4, 0, 0);
    -webkit-transition: stroke-dashoffset 0.05s cubic-bezier(0.47, 0, 0.745, 0.715) 0.12s, fill 0.13s cubic-bezier(0.47, 0, 0.745, 0.715) 0.12s;
    transition: stroke-dashoffset 0.05s cubic-bezier(0.47, 0, 0.745, 0.715) 0.12s, fill 0.13s cubic-bezier(0.47, 0, 0.745, 0.715) 0.12s;
    opacity: 1;}
.svg-elem-5 {
    stroke-dashoffset: 154px;
    stroke-dasharray: 154px;
    fill: transparent;
    transition: none;
    opacity: 0;}
.svg-elem-5.active {
    stroke-dashoffset: 0;
    fill: rgb(4, 0, 0);
    -webkit-transition: stroke-dashoffset 0.05s cubic-bezier(0.47, 0, 0.745, 0.715) 0.16s, fill 0.17s cubic-bezier(0.47, 0, 0.745, 0.715) 0.16s;
    transition: stroke-dashoffset 0.05s cubic-bezier(0.47, 0, 0.745, 0.715) 0.16s, fill 0.17s cubic-bezier(0.47, 0, 0.745, 0.715) 0.16s;
    opacity: 1;}
.svg-elem-6 {
    stroke-dashoffset: 846px;
    stroke-dasharray: 846px;
    fill: transparent;
    transition: none;
    opacity: 0;}
.svg-elem-6.active {
    stroke-dashoffset: 0;
    fill: rgb(4, 0, 0);
    -webkit-transition: stroke-dashoffset 0.05s cubic-bezier(0.47, 0, 0.745, 0.715) 0.2s, fill 0.21s cubic-bezier(0.47, 0, 0.745, 0.715) 0.2s;
    transition: stroke-dashoffset 0.05s cubic-bezier(0.47, 0, 0.745, 0.715) 0.2s, fill 0.21s cubic-bezier(0.47, 0, 0.745, 0.715) 0.2s;
    opacity: 1;}
.svg-elem-7 {
    stroke-dashoffset: 300px;
    stroke-dasharray: 300px;
    fill: transparent;
    transition: none;
    opacity: 0;}
.svg-elem-7.active {
    stroke-dashoffset: 0;
    fill: rgb(4, 0, 0);
    -webkit-transition: stroke-dashoffset 0.05s cubic-bezier(0.47, 0, 0.745, 0.715) 0.24s, fill 0.25s cubic-bezier(0.47, 0, 0.745, 0.715) 0.24s;
    transition: stroke-dashoffset 0.05s cubic-bezier(0.47, 0, 0.745, 0.715) 0.24s, fill 0.25s cubic-bezier(0.47, 0, 0.745, 0.715) 0.24s;
    opacity: 1;}
.svg-elem-8 {
    stroke-dashoffset: 306px;
    stroke-dasharray: 306px;
    fill: transparent;
    transition: none;
    opacity: 0;}
.svg-elem-8.active {
    stroke-dashoffset: 0;
    fill: rgb(4, 0, 0);
    -webkit-transition: stroke-dashoffset 0.05s cubic-bezier(0.47, 0, 0.745, 0.715) 0.28s, fill 0.29s cubic-bezier(0.47, 0, 0.745, 0.715) 0.28s;
    transition: stroke-dashoffset 0.05s cubic-bezier(0.47, 0, 0.745, 0.715) 0.28s, fill 0.29s cubic-bezier(0.47, 0, 0.745, 0.715) 0.28s;
    opacity: 1;}
.svg-elem-9 {
    stroke-dashoffset: 120px;
    stroke-dasharray: 120px;
    fill: transparent;
    transition: none;
    opacity: 0;}
.svg-elem-9.active {
    stroke-dashoffset: 0;
    fill: rgb(4, 0, 0);
    -webkit-transition: stroke-dashoffset 0.05s cubic-bezier(0.47, 0, 0.745, 0.715) 0.32s, fill 0.33s cubic-bezier(0.47, 0, 0.745, 0.715) 0.32s;
    transition: stroke-dashoffset 0.05s cubic-bezier(0.47, 0, 0.745, 0.715) 0.32s, fill 0.33s cubic-bezier(0.47, 0, 0.745, 0.715) 0.32s;
    opacity: 1;}
.svg-elem-10 {
    stroke-dashoffset: 126px;
    stroke-dasharray: 126px;
    fill: transparent;
    transition: none;
    opacity: 0;}
.svg-elem-10.active {
    stroke-dashoffset: 0;
    fill: rgb(4, 0, 0);
    -webkit-transition: stroke-dashoffset 0.05s cubic-bezier(0.47, 0, 0.745, 0.715) 0.36s, fill 0.37s cubic-bezier(0.47, 0, 0.745, 0.715) 0.36s;
    transition: stroke-dashoffset 0.05s cubic-bezier(0.47, 0, 0.745, 0.715) 0.36s, fill 0.37s cubic-bezier(0.47, 0, 0.745, 0.715) 0.36s;
    opacity: 1;}
.svg-elem-11 {
    stroke-dashoffset: 780px;
    stroke-dasharray: 780px;
    fill: transparent;
    transition: none;
    opacity: 0;}
.svg-elem-11.active {
    stroke-dashoffset: 0;
    fill: rgb(4, 0, 0);
    -webkit-transition: stroke-dashoffset 0.05s cubic-bezier(0.47, 0, 0.745, 0.715) 0.4s, fill 0.41s cubic-bezier(0.47, 0, 0.745, 0.715) 0.4s;
    transition: stroke-dashoffset 0.05s cubic-bezier(0.47, 0, 0.745, 0.715) 0.4s, fill 0.41s cubic-bezier(0.47, 0, 0.745, 0.715) 0.4s;
    opacity: 1;}
.svg-elem-12 {
    stroke-dashoffset: 32px;
    stroke-dasharray: 32px;
    fill: transparent;
    transition: none;
    opacity: 0;}

.svg-elem-12.active {
    stroke-dashoffset: 0;
    fill: rgb(4, 0, 0);
    -webkit-transition: stroke-dashoffset 0.05s cubic-bezier(0.47, 0, 0.745, 0.715) 0.44s, fill 0.45s cubic-bezier(0.47, 0, 0.745, 0.715) 0.44s;
    transition: stroke-dashoffset 0.05s cubic-bezier(0.47, 0, 0.745, 0.715) 0.44s, fill 0.45s cubic-bezier(0.47, 0, 0.745, 0.715) 0.44s;
    opacity: 1;}
.svg-elem-13,
.svg-elem-14,
.svg-elem-15 {
    opacity: 0;
    transition: none;
    fill: transparent;}
.svg-elem-13.active,
.svg-elem-14.active,
.svg-elem-15.active {
    fill: rgb(4, 0, 0);
    opacity: 1;
    transition: opacity 0s ease 0.1s, fill 0.3s ease 0s;}
.loading {
    background: #fff;
    width: 100%;
    height: 100vh;
    margin: 0;
    position: fixed;
    top: 0;
    z-index: 1000;}
.loading .inner {
    position: absolute;
    top: calc(50% - 63px);
    left: calc(50% - 80px);
    transform: translateY(-50%) translateX(-50%);}
.loading .inner .svg {
    width: 80px;
    position: relative;
    margin: 0 auto;}
.loading #logo {
    display: block;
    width: 100%;
    height: auto;
    transition: transform 0.6s ease, opacity 0.5s ease;
    transform: translateY(0);
    opacity: 1;
    will-change: transform;}
.loading #logo.moved { transform: translateY(-14px);}
.loading .inner {
    transition: transform 0.6s ease;
    transform: translateY(0);}
.loading .inner.moved { transform: translateY(-14px);}
.loading #caption {
    opacity: 0;
    transition: opacity 1s ease;
    font-weight: 700;
    font-size: 20px;}
.loading #caption.show {
    opacity: 1;
    margin: 0;
    text-align: center;
    line-height: 1;}
.wrapper {
    opacity: 0;
    transition: opacity 1s ease;
    overflow: hidden;}
.wrapper.show { opacity: 1;}
.loading.fadeout {
    opacity: 0;
    transition: opacity 1s ease;
    pointer-events: none;}
header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: fixed;
    top: 0;
    width: 100%;
    height: 120px;
    background-color: #fff;
    z-index: 99;
    transition: 0.5s;}
header h1 {
    width: 23.667%;
    max-width: 310px;
    min-width: 200px;
    transition: 0.5s;
    margin: 7px 20px 7px 75px;}
header h1 a {
    width: 100%;
    max-width: 310px;
    min-width: 200px;
    transition: 0.5s;
    display: block;}
header.active h1 a { width: 15%;}
header .menu {
    display: flex;
    align-items: center;
    gap: 50px;}
nav ul {
    display: flex;
    gap: 50px;}
nav ul .accordion { position: relative;}
nav ul .inner {
    display: none;
    overflow: hidden;
    padding: 5px 14px 0;
    background: #f9f9f9;
    border: 1px solid #ccc;
    position: absolute;
    top: 25px;
    left: 0;
    min-width: max-content;}
nav ul li {
    font-size: 20px;
    font-weight: 500;
    color: #1b2f5f;}
nav ul a {
    display: block;
    font-size: 20px;
    font-weight: 500;
    color: #1b2f5f;
    transition: 0.5s;}
nav ul li .onmouse { cursor: pointer;}
nav ul li:first-child .onmouse:first-child { display:none;}
nav ul li .inner a {
    border-bottom: solid 0.5px #1b2f5f7a;
    margin-bottom: 3.5px;
    padding-bottom: 3.5px;}
nav ul li .inner a:last-child { border:none;}
header .menu .contact { margin-right: 50px;}
header .menu .contact a {
    background-color: #1b2f5f;
    color: #fff;
    padding: 8px 30px;
    font-size: 20px;
    border-radius: 5px;}
header .menu .contact a:hover { background-color: #0056b3;}
header.active {
    height: 80px;
    background-color: #ffffff85;}
header.active h1 { width: 15%;}
header.active nav ul a { font-size: 15px;}
header.active nav ul li { font-size: 15px;}
.mv .mv-h2 span {
    display: block;
    width: max-content;
    max-width: max-content;
    margin: 0 0 min(1.5vw,15px);
    background: #fff;
    padding: 0 40px 0 75px;
    position: relative;
    font-weight: 600;
    font-size: min(6vw, 60px);}
.inner .mv-h2 span {
    display: block;
    width: max-content;
    max-width: max-content;
    margin: 0;
    background: #fff;
    padding: 5px 20px 5px 75px;
    position: relative;
    font-weight: 500;
    font-size: min(2.4vw, 24px);}
footer {
    background: #f0f3f8;
    text-align: center;
    padding: 0;}
footer .logo {
    width: 20.667%;
    max-width: 310px;
    min-width:200px;}
footer ul li {
    font-size: 13px;
    display: inline-block;
    margin: 0 7px;}
footer ul li a { color: #222;}
footer .inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 95%;
    max-width: 1000px;
    margin: 0 auto;
    padding: 35px 0;}
footer .inner .left { width: calc(100% / 2);}
footer .inner .left .logo {
    width: 80%;
    max-width: 400px;
    min-width: 200px;}
footer .inner .left .address {
    text-align: left;
    margin: 14px auto 0;
    font-size: 20px;}
footer .inner .left .address p { margin: 0;}
footer .inner .right {
    display: flex;
    flex-wrap: wrap;
    align-items: self-start;
    justify-content: space-between;
    width: 400px;
    margin: 0 0 0 auto;}
footer .inner .right ul { width: calc(100% / 2);}
footer .inner .right ul li {
    width: 100%;
    font-size: 15px;
    text-align: left;}
footer .inner .right ul li.ttl {
    font-size: 24px;
    font-weight: 500;}
footer .inner .right ul li:before { content:"-";}
footer .inner .right ul li.ttl:before { content:"";}
footer .inner .right ul:nth-child(3),
footer .inner .right ul:nth-child(4) { margin-top: 21px;}
footer .inner .right ul:nth-child(1),
footer .inner .right ul:nth-child(3) { width: 200px;}
footer .inner .right ul:nth-child(2),
footer .inner .right ul:nth-child(4) { width: 160px;}
footer .inner .right ul li a { color: #5e7498;}
footer .inner .right ul li.ttl a { color: #002773;}
footer .copyright {
    background-color: #fff;
    padding:14px;
    width: 100%;}
footer .copyright .element {
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 15px;}
#main_logo .cls-1 { fill: #1b2f5f;}
.hamburger {
    display: none;
    position: relative;
    width: 30px;
    height: 24px;
    cursor: pointer;
    z-index: 1001;
    transition: all 0.5s ease;
    right: 7px;}
.hamburger span {
    position: absolute;
    height: 3px;
    width: 100%;
    background: #002772;
    border-radius: 2px;
    left: 0;
    transition: 0s ease;}
.hamburger span:nth-child(1) { top: 0;}
.hamburger span:nth-child(2) { top: 10px;}
.hamburger span:nth-child(3) { top: 20px;}
.hamburger.active span:nth-child(1) {
    transform: rotate(45deg);
    top: 10px;}
.hamburger.active span:nth-child(2) { opacity: 0;}
.hamburger.active span:nth-child(3) {
    transform: rotate(-45deg);
    top: 10px;}
.mv {
    width: 100%;
    max-width: 100%;
    position: relative;
    height: 0;
    padding-bottom: 48.8vw;}
.mv_in {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    position: absolute;
    top: 80%;
    left: 50%;
    transform: translateY(-50%) translateX(-50%);}
.mv img{
    width: 100%;
    height: auto;
    position: absolute;
    border-bottom: solid 3px #fbb03b;}
.mv-h2 {
    padding: 0;
    position: relative;
    text-align: left;
    width: 94%;
    max-width: 1280px;
    margin: 0 auto 0 0;
    font-family: "source-han-serif-japanese", serif;
    font-size: 30px;}
.mv-h2 span {
    display: block;
    width: max-content;
    max-width: max-content;
    margin: 0;
    background: #fff;
    padding: 10px;
    position: relative;
    font-weight: 500;
    font-size: 40px;}
.mv-h2 span:before {
    content: "";
    background: #fff;
    width: 5000%;
    height: 100%;
    position: absolute;
    top: 0;
    right: 99%;}
p.mv-h2 {
    font-family: "source-han-sans-japanese", sans-serif;
    line-height: 1;
    padding: 0;
    margin: 7px 0 0 0;}
p.mv-h2 span { font-size: 20px;}
.contents { width: 100%;}
.contents .inner {}
.bg { background-color: #f0f4f8;}
.nobi {
    width: 94%;
    max-width: 1000px;
    margin: 100px auto;
    background-color: #f1f1f1;}
.fade,
.fade-up,
.fade-left,
.fade-right {
    opacity: 0;
    transition: opacity 0.6s ease, transform 0.6s ease;
    will-change: opacity, transform;}
.fade-up { transform: translateY(30px);}
.fade { transform: translateY(30px);}
.fade-left { transform: translateX(-30px);}
.fade-right { transform: translateX(30px);}
.fade-up.is-visible,
.fade.is-visible,
.fade-left.is-visible,
.fade-right.is-visible {  opacity: 1;}
.fade-up.is-visible,
.fade.is-visible { transform: translateY(0);}
.fade-left.is-visible,
.fade-right.is-visible { transform: translateX(0);}
.mainttl {
    display: block;
    width: max-content;
    max-width: max-content;
    padding: 10px;
    position: relative;
    text-align: center;
    margin: 0 auto;}
.mainttl span {}
.mainttl span:last-child {
    font-family: "source-han-sans-japanese", sans-serif;
    z-index: 0;
    font-weight: 300;
    font-size: 80px;
    color: #e5e9f1;
    position: absolute;
    top: 40%;
    left: 50%;
    transform: translateY(-50%) translateX(-50%);}
.mainttl span:first-child {
    font-family: "source-han-serif-japanese", serif;
    position: relative;
    z-index: 1;
    font-weight: 500;
    font-size: 50px;
    left: 0%;
    color: #002772;}
.mainttl span.right {
    left: initial;
    right: -50px;
    text-align: right;
    transform: translateY(-50%) translateX(0%);}
.mainttl span.left {
    left: -50px;
    right: initial;
    text-align: left;
    transform: translateY(-50%) translateX(0%);}
.arrow {
    position: relative;
	width: 100%;
    max-width: max-content;
    margin: 0 auto;
    display: block;
    font-size: 30px;
    font-weight: 500;
    color: #002772;}
.arrow:before,
.arrow:after {
    content: "";
    position: absolute;
    top: 50%;
    transform: translateY(-50%) translateX(-50%);
    transition: all 0.1s ease;}
.arrow:before {
    right: 100%;
    background-color: #fbb03b;
    width: 24px;
    height: 24px;
    opacity: 1;}
.arrow:after {
    right: calc(100% + 17px);
    transform: translateY(-50%) translateX(-50%) rotate(45deg) skew(-14deg, -14deg);
    width: 10px;
    height: 10px;
    border-top: solid 1px #fff;
    border-right: solid 1px #fff;}
.arrow:hover:before {
    right: calc(100% - 10px);
    opacity: 0;}
.arrow:hover:after {
    border-top: solid 2px #fbb03b;
    border-right: solid 2px #fbb03b;}
.pagecmn {
    width: 90%;
    max-width: 1000px;
    margin: 0 auto 100px;
    border: solid 1px #002772;}
.pagecmn .inner {
    width: 100% !important;}
.pagecmn .inner h3 {
    width: 100%;
    text-align: center;
    font-weight: 500;
    font-size: 30px;
    margin: 14px auto;
    line-height: 1;}
.pagecmn .inner .element {
    background-color: #002772;
    padding: 24px 0 22px 0;}
.pagecmn .inner .element .free {
    width: max-content;
    display: flex;
    align-items: center;
    margin: 0 auto;}
.pagecmn .inner .element .free:before {
    content: "見積無料";
    color: #fff;
    border: solid 1px #fbb03b;
    width: 156px;
    text-align: center;
    font-size: 30px;
    border-radius: 3px;}
.pagecmn .inner .element .free span {
    font-size: 78px;
    color: #fff;
    line-height: 1;
    text-box: trim-both cap alphabetic;}
.pagecmn .inner .element .free span:before {
    content: "";
    color: #fff;
    width: 156px;
    text-align: center;
    font-size: 30px;
    width: min(4.5vw, 41px);
    height: min(6.75vw, 61.5px);
    margin: 0 min(.5vw, 6px) 0 min(2.5vw, 33px);
    display: inline-block;
    background-image: url(../img/phone.svg);
    background-repeat: no-repeat;
    background-size: contain;
    position: relative;
    top: 2px;}
.pagecmn .inner .element p {
    color: #fff;
    font-size: 24px;
    margin: 14px auto 0 33%;
    display: flex;
    max-width: max-content;
    align-items: center;}
.pagecmn .inner .element p a {
    background-color: #fbb03b;
    font-size: 24px;
    color: #002772;
    font-weight: 500;
    margin-left: 7px;
    padding: 5px 42px 6px 14px;
    line-height: 1;
    border-radius: 5px;
    position: relative;
    display: flex;
    align-items: center;}
.pagecmn .inner .element p a:before,
.pagecmn .inner .element p a:after {
    content: "";
    position: absolute;
    top: 50%;
    left: initial;
    right: 13px;
    transform: translateY(-50%) translateX(0%);}
.pagecmn .inner .element p a:before {
    background-color: #fbb03b;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    border: solid 1px #002772;}
.pagecmn .inner .element p a:after {
    right: 18px;
    transform: translateY(-50%) translateX(-50%) rotate(45deg) skew(-14deg, -14deg);
    background-color: #00000000;
    width: 10px;
    height: 10px;
    border-top: solid 1px #002772;
    border-right: solid 1px #002772;
    line-height: 0;}
.building {
	width: 100%;
	height: 98px;
	background-image: url(../img/building.png);
	background-size: contain;
	background-repeat: repeat-x;
	display: block;}
.about,
.kaitai,
.sangyo,
.asbestos,
.contact,
.flow {}
.about .mv_in,
.kaitai .mv_in,
.sangyo .mv_in,
.asbestos .mv_in,
.contact .mv_in,
.flow .mv_in { top: 80%;}
.about .contents .inner {
    display: flex;
    text-align: left;}
.first-cont { margin: min(12vw, 130px) auto 0;}
.first-cont .inner {
    width: 90%;
    max-width: 1000px;
    margin: 0 auto;}
.first-cont .inner h2 {
    font-family: "source-han-serif-japanese", serif;
    font-weight: 500;
    font-size: 50px;}
.first-cont .inner p {
    font-size: 24px;
    line-height: 1.875;
    letter-spacing: -1px;}
.first-cont .inner p.subttl {
    font-size: 30px;
    color: #fbb03b;
    font-feature-settings: "palt";
    letter-spacing: 1px;}
.second-cont {
    margin: 130px auto 0;
    padding-bottom: 50px;
    background-color: #f0f4f8;}
.second-cont .inner {}
.second-cont .inner h2 {
    font-family: "source-han-serif-japanese", serif;
    font-weight: 500;
    font-size: 50px;
    padding: 50px 0;
    text-align: center;}
.second-cont .inner ul {
    display: flex;
    align-items: self-start;
    justify-content: center;}
.second-cont .inner ul.view4 {}
.second-cont .inner ul.view5 {}
.second-cont .inner ul li {
    position: relative;}
.second-cont .inner ul.view4 li { width: calc(100% / 4);}
.second-cont .inner ul.view5 li { width: calc(100% / 5);}
.second-cont .inner ul li div {}
.second-cont .inner ul li div img {
    width: 100%;}
.second-cont .inner ul li p {
    writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateY(-50%) translateX(-50%);
    height: 100%;
    font-size: 30px;
    color: #fff;
    text-align: left;
    margin: 0 auto;
    padding: 30px 0 0;}
.second-cont .inner ul li p small {
    font-size: 24px;
    display: block;}
.second-cont .inner ul li p br {}
.third-cont {
    margin: 130px auto 0;}
.third-cont .inner {
    width: 96%;
    max-width: 1000px;
    margin: 0 auto;}
.third-cont .inner h2 {
    font-family: "source-han-serif-japanese", serif;
    font-weight: 500;
    font-size: 50px;
    padding: 0;
    text-align: center;}
.third-cont .inner ul {}
.third-cont .inner ul li {
    width: 100%;
    border: solid 1px #b1bed5;}
.third-cont .inner ul li p {
    margin: 0;}
.third-cont .inner ul li p span {}
.third-cont .inner ul li p span:first-child {
    font-size: 30px;
    font-weight: 500;
    color: #fff;
    width: 100%;
    display: block;
    background-color: #b1bed5;
    text-align: center;}
.third-cont .inner ul li p span:last-child {
    font-size: 24px;
    text-align: center;
    display: block;
    line-height: 1.791;
    padding: 30px 0;}
.third-cont .inner ul li p span:last-child br {}

.fourth-cont {
    margin: 130px auto 0;}
.fourth-cont .inner {}
.fourth-cont .inner h2 {}
.fourth-cont .inner h2.mainttl {}
.fourth-cont .inner h2.mainttl span {}
.fourth-cont .inner h2.mainttl span:first-child {}
.fourth-cont .inner h2.mainttl span:last-child {
    font-size: 110px;
    top: 20%;}
.fourth-cont .inner ul {
    width: 100%;
    max-width: 660px;
    margin: 40px auto 0;}
.fourth-cont .inner ul li {
    position: relative;}
.fourth-cont .inner ul li:before {
    font-family: "source-han-serif-japanese", serif;
    position: absolute;
    top: 0;
    left: -10px;
    font-size: 40px;
    color: #fbb03b;
    line-height: 0;}
.fourth-cont .inner ul li:nth-child(1):before { content:"01";}
.fourth-cont .inner ul li:nth-child(2):before { content:"02";}
.fourth-cont .inner ul li:nth-child(3):before { content:"03";}
.fourth-cont .inner ul li:nth-child(4):before { content:"04";}
.fourth-cont .inner ul li:nth-child(5):before { content:"05";}
.fourth-cont .inner ul li:nth-child(6):before { content:"06";}
.fourth-cont .inner ul li:nth-child(7):before { content:"07";}
.fourth-cont .inner ul li:nth-child():before { content:"";}
.fourth-cont .inner ul li p {
    background-color: #f0f4f8;
    font-size: 24px;
    text-align: center;
    font-weight: 400;
    line-height: 2.083;
    margin: 0 auto;
    border-radius: 3px;}
.fourth-cont .inner ul li p:before {
    position: relative;
    content:"";
    background-color: #fff;
    display: block;
    font-size: 24px;
    line-height: 2.083;
    width: 100%;
    z-index: 1;}

.fourth-cont .inner ul li:after {
    position: relative;
    content: "▼";
    left: 0;
    right: 0;
    margin: 0 auto;
    width: max-content;
    display: block;
    line-height: 1;
    padding: 14px;
    transform: rotateX(45deg);
    font-size: 24px;
    color: #b2bed5;}
.fourth-cont .inner ul li:last-child:after {
    content:"";
    display:none;}

.fifith-cont {
    position: relative;
    margin: 200px auto 0;}
.fifith-cont:before {
    content: "";
    position: absolute;
    inset: 0;
    background: #f0f4f8;
    clip-path: polygon(100% 0, 100% 0, 100% 100%, 0 100%, 0 100%);
    z-index: -1;}
.fifith-cont .inner {
    width: 96%;
    max-width: 1000px;
    margin: 200px auto 0;
    display: flex;
    align-items: self-start;
    justify-content: space-between;}
.fifith-cont .inner h2 {
    font-family: "source-han-serif-japanese", serif;
    font-size: 50px;
    font-weight: 500;
    line-height: 1.3;
    margin: 0;}
.fifith-cont .inner ul { margin: 0 0 50px;}
.fifith-cont .inner ul li {
    font-size: 24px;
    line-height: 1.875;}
.sixth-cont {}
.sixth-cont .inner {
    width: 96%;
    max-width: 1000px;
    margin: 170px auto 140px;
    padding: 30px 0;
    position: relative;}
.sixth-cont .inner h2 {
    font-family: "source-han-serif-japanese", serif;
    font-size: 50px;
    font-weight: 500;
    line-height: 1.3;
    margin: 0;}
.sixth-cont .inner p {
    font-size: 24px;
    line-height: 1.875;
    margin: 30px auto 0}
.sixth-cont .inner div {
    width: 30%;
    position: absolute;
    top: 50%;
    transform: translateY(-50%) translateX(0%);
    z-index: -1;
    right: 0;
    opacity: 0.5;}
.heart { fill: #fbb03b;}

@media screen and (max-width:1300px) {
	.mv_in {
		top: 78%;}
	.mv .mv-h2 span {
		margin: 0 0 min(1vw, 10px);
		font-size: min(4.5vw, 45px);}
	.inner .mv-h2 span {
		font-size: min(2vw, 20px);}
	.first-cont .inner h2,.second-cont .inner h2,.third-cont .inner h2,.fifith-cont .inner h2,.sixth-cont .inner h2 {
		font-size: 40px;
	}
	.first-cont .inner p.subttl,.second-cont .inner ul li p,.third-cont .inner ul li p span:first-child {
		font-size: 24px;
	}
	.first-cont .inner p,.second-cont .inner ul li p small,.third-cont .inner ul li p span:last-child,.fifith-cont .inner ul li,.sixth-cont .inner p {
		font-size: 20px;
	}
	.first-cont .inner,.fifith-cont .inner,.sixth-cont .inner {
		width: 85%;
	}
	.mainttl span:last-child {
		font-size: 70px;
	}
	.mainttl span:first-child {
		font-size: 40px;
	}
	footer .inner {
		width: 85%;}
}
@media screen and (max-width: 1100px) {
	header h1 { margin: 0 auto;}
}
@media screen and (max-width:1000px) {
	.pagecmn .inner h3 {
		font-size: 24px;
		margin: 12px auto;
	}
	.pagecmn .inner .element {
		padding: 22px 0 20px 0;
	}
	.pagecmn .inner .element p {
	    font-size: 18px;
	    margin: 7px auto 0;
	    display: block;
		text-align: center;}
	.pagecmn .inner .element .free span {
		font-size: 70px;
	}
	.pagecmn .inner .element .free:before {
		width: 125px;
    	font-size: 24px;
	}
	.pagecmn .inner .element p a {
		margin-left: 0;
    	margin-top: 5px;
	}
	footer .inner .left .address {
		font-size: 15px;
	}
	
}
@media screen and (max-width: 960px) {
	nav ul {
	    display: flex;
	    gap: 25px;}
	nav ul a { font-size: 18px;}
	nav ul li .onmouse {font-size: 20px;}
	header .menu { gap: 25px;}
	header .menu .contact { margin-right: 25px;}
	header .menu .contact a {
	    background-color: #1b2f5f;
	    color: #fff;
	    padding: 8px 15px;
	    font-size: 18px;}
	}
@media screen and (max-width: 768px) {
	header,
	header.active { height: 60px;}
	header h1,
	header.active h1 {
	    margin: 0 auto;
	    min-width: 150px;}
	header h1 a { min-width: 150px;}
	p.mv-h2 span {
	    font-size: 20px;
	    overflow-wrap: break-word;
	    width: 100%;
	    line-height: 1.4;}
	.about .mv_in, .contact .mv_in, .flow .mv_in {
    	top: 80%;
	}
	.kaitai .mv_in, .sangyo .mv_in, .asbestos .mv_in {
    	top: 75%;
	}
	.hamburger { display: block;}
	.menu {
	    position: absolute;
	    top: 60px;
	    left: 0;
	    right: 0;
	    background: #fff;
	    z-index: 1000;
	    padding: 20px;
	    opacity: 0;
	    visibility: hidden;
	    pointer-events: none;
	    transition: opacity 0.5s ease;}
	.menu.open {
	    opacity: 1;
	    visibility: visible;
	    pointer-events: auto;}
	@keyframes fadein {
	    from { opacity: 0; transform: translateY(-10px); }
	    to   { opacity: 1; transform: translateY(0); }
	}
	footer .inner .right {display: none;}
	footer .inner .left { width: 100%;}
	footer .inner .left .logo {
	    width: 200px;
	    margin: 0 auto;}
	footer .inner .left .address {
	    font-size: min(3.5vw, 18px);
	    text-align: center;}
	footer .copyright .element { flex-direction: column-reverse;}
	.mainttl span:last-child {
	    font-size: min(9vw, 60px);
        left: 50%;
        top: 45%;
    }
	footer ul li,footer .copyright .element {
		font-size: min(3.5vw, 18px);
	}
	.mainttl span:first-child {
	    font-size: min(6vw, 40px);
	    left: 0;}
	.mainttl span.left { left: -28px;}
	.mainttl span.right {
	    right: -28px;
	    left: initial;}
	.pagecmn {
    	width: 90%;
    	max-width: 1000px;
		margin: 0 auto 20vw;}
	.pagecmn .inner h3 { font-size: min(3.5vw, 22px);
        margin: 2vw auto;}
	.pagecmn .inner .element .free {
		margin: 0 auto -1vw;}
	.pagecmn .inner .element .free:before {
	    width: min(17vw, 110px);
        font-size: min(3.5vw, 22px);
		margin: 2.5vw auto;}
	.pagecmn .inner .element .free span {
	    font-size: 9vw;
	    height: auto;}
	.pagecmn .inner .element p {
        font-size: min(3.5vw, 20px);
		margin: 1vw auto 0;}
	.pagecmn .inner .element p a {
	    font-size: min(4vw, 24px);
		margin-top: 1vw;
		margin-left: 0;
        padding: 1vw 7vw 1.5vw 3vw;}
	.pagecmn .inner .element { padding: 2vw 0 3.5vw;}
	.pagecmn .inner .element p a:before {
		width: 4vw;
    	height: 4vw;
		right: 2.5vw;
	}
	.pagecmn .inner .element p a:after {
		right: 3.3vw;
		width: 1.8vw;
    	height: 1.8vw;
	}
	header .menu { display: block;}
	header .menu .contact a {
	    background-color: initial;
	    color: #1b2f5f;
	    padding: 0;
	    font-weight: 500;
	    font-size: 24px;}
	nav { width: 100%;}
	nav ul { display: block;}
	nav ul .inner {
	    display: block;
	    overflow: initial;
	    padding: 0;
	    background: #f9f9f9;
	    border: none;
	    position: relative;
	    top: initial;
		left: 0;
	    min-width: max-content;
	    width: 100% !important;}
	nav ul li .inner a {
	    border-bottom: none;
	    margin-bottom: initial;
	    padding-bottom: initial;
	    font-size: 24px;
	    margin-bottom: 10px;
	    border-bottom: solid 1px;}
	.menu.open {
	    top: 0;
	    opacity: 1;
	    visibility: visible;
	    pointer-events: auto;
	    height: 100vh;
	    background-color: #fff;}
	header.active nav ul li {
	    font-size: 24px;
	    margin-bottom: 10px;}
	nav ul a {
	    margin-bottom: 10px;
	    border-bottom: solid 1px;
	    font-size: 24px;}
	header.active nav ul a {
	    font-size: 24px;
	    margin-bottom: 10px;
	    border-bottom: solid 1px;}
	header.active a {
	    font-size: 24px;
	    margin-bottom: 10px;}
	headera a {
	    font-size: 24px;
	    border-bottom: solid 1px;}
	nav ul li:nth-child(2) .onmouse {
	    display:none;
	    margin-bottom: 10px;
	    border-bottom: solid 1px;}
	nav ul li .inner a:last-child {
	    border: none;
	    border-bottom: solid 1px;}
	header .menu .contact {
	    margin-right: 0px;
	    margin-bottom: 10px;
	    border-bottom: solid 1px;}
	.mv { padding-bottom: 50vh;}
	.mv img {
            width: auto;
            height: 50vh;
            aspect-ratio: 53 / 24;
            position: absolute;
            border-bottom: solid 3px #fbb03b;
            left: 50%;
            transform: translateY(0%) translateX(-50%);}
	.mv_in {
	    width: 100%;
	    max-width: 100%;
	    margin: 0 auto;
	    position: absolute;
	    top: auto;
	    bottom: 5%;
	    left: 50%;
	    transform: translateY(0%) translateX(-50%);}
	.inner .mv-h2 span {
	    margin: 0 0 min(1.5vw, 15px);
	    padding: 5px 20px 5px 15px;
	    font-size: min(6vw,15px);
	    width: 100%;}
	.mv .mv-h2 span {
	    margin: 0 0 min(1vw, 10px);
	    padding: 0 12px 0 20px;}
	.mv h2.mv-h2 span { font-size: min(10vw,30px);}
	.first-cont .inner h2 {
	    font-size: min(4.4vw, 30px);
	    text-align: center;}
	.first-cont .inner p.subttl { font-size: min(4vw, 24px);}
	.first-cont .inner p { font-size: min(3.5vw, 18px);}
	.second-cont {
	    margin: 13vw auto 0;
	    padding-bottom: 5vw;}
	.second-cont .inner h2 {
	    padding: 5vw 0;
	    font-size: min(6vw, 40px);
	    margin: 0 auto;}
	.second-cont .inner ul {
	    display: block;
	    align-items: self-start;
	    justify-content: center;}
	.second-cont .inner ul li img {
	    width: 100%;
	    position: absolute;
	    top: 50%;
	    left: 50%;
	    transform: translateY(-50%) translateX(-50%);}
	.second-cont .inner ul.view4 li,
	.second-cont .inner ul.view5 li {
	    width: 100%;
	    height: auto;
	    aspect-ratio: 1.5 / 1;
	    overflow: hidden;}
	.second-cont .inner ul li p {
	    writing-mode: lr-tb;
	    -ms-writing-mode: lr-tb;
	    width: 100%;
	    height: auto;
	    font-size: min(4.5vw, 30px);
	    text-align: center;
	    padding: 0;}
	.second-cont .inner ul li p small { font-size: min(3.5vw, 20px);}
	.third-cont { margin: 13vw auto 0;}
	.third-cont .inner h2 {
	    padding: 5vw 0;
	    font-size: min(6vw, 40px);
	    margin: 0 auto;}
	.third-cont .inner ul li p span:first-child { font-size: min(4vw, 24px);}
	.third-cont .inner ul li p span:last-child {
	    font-size: min(3.5vw, 20px);
	    padding: 3vw 5vw;
	    text-align: left;}
	.third-cont .inner ul li p span:last-child br { display: none;}
	.fourth-cont { margin: 13vw auto 0;}
	.fourth-cont .inner h2.mainttl span:first-child {
	    padding: 5vw 0;
	    font-size: min(6vw, 40px);
	    margin: 0 auto;}
	.fourth-cont .inner h2.mainttl span:last-child { font-size: min(11vw, 80px);}
	.fourth-cont .inner ul li p {
		font-size: min(3.5vw, 22px);}
	.fourth-cont .inner ul {
	    width: 86%;
	    margin: 4vw auto 0;}
	.fourth-cont .inner ul li:before { font-size: min(6.5vw,40px);}
	.fourth-cont .inner ul li:after {
		padding: 2vw;
		font-size: 5vw;}
	.fourth-cont .inner ul li p span:last-child {
	    font-size: 3.5vw;
	    padding: 3vw 5vw;
	    text-align: left;}
	.fourth-cont .inner ul li p span:last-child br { display: none;}
	.fifith-cont { 
		margin: 20vw auto 0;
		padding: 0 0 5vw;}
	.fifith-cont .inner {
	    margin: 0vw auto;
	    display: block;}
	.fifith-cont .inner h2 {
	    font-size: min(6vw, 40px);
	    text-align: center;}
	.fifith-cont .inner ul {
	    margin: 5vw auto;
	    width: 100%;}
	.fifith-cont .inner ul li { font-size: min(4vw, 24px);}
	.kaitai .fifith-cont .inner ul {
		width: max-content;}
	.sangyo .fifith-cont .inner ul {
        margin: 2vw auto 0;
		width: max-content;}
	.asbestos .fifith-cont .inner ul li {
        font-size: min(3.8vw, 24px);}
	.sixth-cont .inner {
	    width: 94%;
	    max-width: 1000px;
	    margin: 13vw auto;
	    padding: 3vw 0;
	    position: relative;}
	.sixth-cont .inner h2 {
	    font-size: min(6vw, 40px);
	    text-align: center;}
	.sixth-cont .inner p {
	     font-size: min(4vw, 24px);
	     margin: 3vw auto 0;
		width: 85%;}
	.sixth-cont .inner div {
	     top: 3vw;
	     transform: translateY(0%) translateX(0%);}
}
@media screen and (max-width: 480px) {
}
@media screen and (max-width: 320px) {
}

.contact form .submit div {
    display: block;}
.contact form .submit div input[type="submit"] {}
.contact form .submit div input[type="button"] {
    display: block;
    width: max-content;
    margin: 0 auto;
    font-size: 18px;
    line-height: 1;
    border: none;
    padding: 10px 30px;}

.legal-cont {
    margin: 130px auto;
}
.legal-cont .inner {
    width: 96%;
    max-width: 1000px;
    margin: 0 auto;
}
.legal-cont .inner h3 {}
.legal-cont .inner p {}
@media screen and (max-width: 768px) {
	.legal-cont { margin: 65px auto;}
}

