@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap");
html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
  font-weight: normal;
}

article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block;
}

nav ul, nav li {
  margin: 0;
}

nav ul, ul {
  list-style: none;
}

.span1, .span2, .span3, .span4, .span5, .span6, .span7, .span8, .span9, .span10, .span11, .span12 {
  box-sizing: border-box;
}

.span1 {
  width: 8.333333333%;
}

.span2 {
  width: 16.66666667%;
}

.span3 {
  width: 25%;
}

.span4 {
  width: 33.33333333%;
}

.span5 {
  width: 41.66666667%;
}

.span6 {
  width: 50%;
}

.span7 {
  width: 58.33333333%;
}

.span8 {
  width: 66.66666667%;
}

.span9 {
  width: 75%;
}

.span10 {
  width: 83.33333333%;
}

.span11 {
  width: 91.66666667%;
}

.span12 {
  width: 100%;
}

.clear {
  clear: both;
}

.right {
  text-align: right;
}

.left {
  text-align: left;
}

.center {
  text-align: center;
}

img {
  vertical-align: bottom;
}

.pc_no {
  display: none;
}

.sp_no {
  display: inline;
}

html, body {
  overflow-x: clip;
}

body {
  font-size: 16px;
  font-family: "Inter", "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  color: rgb(12, 12, 12);
  line-height: 1.5;
  text-align: justify;
  text-justify: inter-ideograph;
  letter-spacing: 0.02em;
  font-feature-settings: "palt";
  -webkit-text-size-adjust: 100%;
}
body input[type=submit],
body input[type=button] {
  border-radius: 0;
  -webkit-box-sizing: content-box;
  -webkit-appearance: button;
  -moz-appearance: button;
       appearance: button;
  border: none;
  box-sizing: border-box;
  cursor: pointer;
}
body input[type=submit]::-webkit-search-decoration,
body input[type=button]::-webkit-search-decoration {
  display: none;
}
body input[type=submit]::focus,
body input[type=button]::focus {
  outline-offset: -2px;
}
body select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

a {
  color: rgb(5, 20, 62);
  text-decoration: none;
  transition: 0.3s ease-in-out;
}

a:hover,
a:active {
  text-decoration: none;
}

::-moz-selection {
  background: rgb(155, 255, 230);
}

::selection {
  background: rgb(155, 255, 230);
}

::-moz-selection {
  background: rgb(155, 255, 230);
}

.flex {
  display: flex;
}

.inner {
  max-width: 1300px;
  margin: 0 auto;
  padding: 1% 2%;
}

header {
  position: fixed;
  z-index: 9999;
  top: 25px;
  left: 0;
  width: 100%;
}
@media screen and (max-width: 480px) {
  header {
    top: 10px;
  }
}
header .area-menu {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: rgba(255, 255, 255, 0.18);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  border: 1px solid rgba(255, 255, 255, 0.35);
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);
  border-radius: 45px;
  padding: 15px 30px;
  margin: 0 20px; /* 画面端への張り付き防止 */
  box-sizing: border-box;
}
@media screen and (max-width: 480px) {
  header .area-menu {
    margin: 0;
  }
}
header .area-menu h1 img {
  width: 150px;
}
@media screen and (max-width: 480px) {
  header .area-menu h1 img {
    width: 100px;
  }
}

nav ul.flex {
  display: flex;
  align-items: center;
  list-style: none;
}
nav ul.flex li {
  white-space: nowrap; /* 文字の改行を防止 */
}
nav ul.flex li a {
  text-decoration: none;
  color: #333;
  font-size: 16px;
}
nav ul.flex li:not(:last-child)::after {
  content: "｜";
  display: inline-block;
  margin: 0 1vw; /* 画面幅に合わせて間隔を収縮させる */
}
@media (max-width: 768px) {
  nav {
    position: absolute;
    top: 100%;
    right: 5%;
    padding-top: 15px;
    pointer-events: none;
    visibility: hidden;
  }
  nav.is-active {
    visibility: visible;
    pointer-events: auto;
  }
  nav.is-active .flex li {
    transform: translateX(0);
    opacity: 1;
  }
  nav .flex {
    flex-direction: column;
    padding: 0;
  }
  nav .flex li {
    margin-bottom: 10px;
    transform: translateX(-50px);
    opacity: 0;
    transition: all 0.5s cubic-bezier(0.23, 1, 0.32, 1);
  }
  nav .flex li:nth-child(1) {
    transition-delay: 0.07s;
  }
  nav .flex li:nth-child(2) {
    transition-delay: 0.14s;
  }
  nav .flex li:nth-child(3) {
    transition-delay: 0.21s;
  }
  nav .flex li:nth-child(4) {
    transition-delay: 0.28s;
  }
  nav .flex li::after {
    display: none !important;
  }
  nav .flex li a {
    display: block;
    text-align: center;
    background: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(15px);
    -webkit-backdrop-filter: blur(15px);
    border: 1px solid rgba(255, 255, 255, 0.5);
    border-radius: 30px;
    padding: 18px 40px;
    min-width: 150px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
  }
  nav .flex li a:active {
    background: rgba(255, 255, 255, 0.7);
    transform: scale(0.98);
  }
}

.hamburger {
  display: none;
  position: relative;
  z-index: 10000;
  width: 30px;
  height: 24px;
  background: none;
  border: none;
  cursor: pointer;
}
@media (max-width: 768px) {
  .hamburger {
    display: block;
  }
}
.hamburger span {
  display: block;
  position: absolute;
  left: 0;
  width: 100%;
  height: 2px;
  background-color: #333;
  transition: all 0.4s;
}
.hamburger span:nth-child(1) {
  top: 0;
}
.hamburger span:nth-child(2) {
  top: 11px;
}
.hamburger span:nth-child(3) {
  bottom: 0;
}
.hamburger.is-active span:nth-child(1) {
  transform: translateY(11px) rotate(45deg);
}
.hamburger.is-active span:nth-child(2) {
  opacity: 0;
}
.hamburger.is-active span:nth-child(3) {
  transform: translateY(-11px) rotate(-45deg);
}

.area-fv {
  position: relative;
  margin: 0 0 63px 0;
}
@media screen and (max-width: 480px) {
  .area-fv {
    margin: 0 0 40px 0;
  }
}
.area-fv .area-catch {
  position: absolute;
  top: 40%;
  left: 10%;
}
.area-fv .area-catch h2 {
  font-size: 40px;
  font-weight: bold;
  color: #05143e;
  text-decoration: underline;
  text-decoration-color: #f3bb37;
  text-decoration-thickness: 15px;
  text-underline-offset: -3px;
  margin: 0 0 0.3em 0;
}
@media screen and (max-width: 480px) {
  .area-fv .area-catch h2 {
    font-size: 20px;
  }
}
.area-fv .area-catch p {
  color: #05143e;
  padding: 0 0 0 1em;
}
@media screen and (max-width: 480px) {
  .area-fv .area-catch p {
    padding: 0 3em 0 0;
    font-weight: bold;
    font-size: 90%;
  }
}

section {
  margin: 0 0 10% 0;
}
@media screen and (max-width: 480px) {
  section {
    margin: 0 0 5% 0;
  }
}

.btn-area {
  margin: 15% 0;
}
.btn-area .btn-showmore {
  display: none; /* 下層ページ公開時に外す */
  background: #05143e;
  padding: 0.5em 2em 0.6em 2em;
  border-radius: 2em;
  color: rgb(255, 255, 255);
}

.greeting {
  background: url("../images/bg_greeting.svg") no-repeat;
  background-position: top right;
  background-size: 60%;
}
@media screen and (max-width: 480px) {
  .greeting {
    background-size: 80%;
  }
}
.greeting .greeting__inner {
  margin-top: 7%;
}
@media screen and (max-width: 480px) {
  .greeting .greeting__inner {
    flex-direction: column;
  }
  .greeting .greeting__inner .greeting__catch,
  .greeting .greeting__inner .greeting__text {
    width: 100%;
  }
}
.greeting .greeting__inner .greeting__catch {
  flex-direction: column;
  align-items: center;
}
.greeting .greeting__inner .greeting__catch h2 {
  font-size: 40px;
  font-weight: bold;
  line-height: 1.4;
  margin-bottom: 20px;
}
.greeting .greeting__inner .greeting__catch div {
  justify-content: center;
}
@media screen and (max-width: 480px) {
  .greeting .greeting__inner .greeting__catch img {
    width: 70%;
    margin: 0 0 10% 0;
  }
}
.greeting .greeting__inner .greeting__text {
  padding: 0 7%;
}
.greeting .greeting__inner .greeting__text p {
  line-height: 30px;
  margin: 0 0 1em 0;
}

.service .ttl,
.aboutus .ttl {
  margin: 0 0 7em 0;
}
@media screen and (max-width: 480px) {
  .service .ttl,
  .aboutus .ttl {
    margin: 0 0 4em 0;
  }
}
.service h2,
.aboutus h2 {
  font-size: 40px;
  font-weight: bold;
  border-bottom: 2px solid #05143e;
  padding: 0 0 1em 0;
  display: inline;
}
.service .service_banner,
.aboutus .service_banner {
  margin: 0 0 7em 0;
}
@media screen and (max-width: 480px) {
  .service .service_banner,
  .aboutus .service_banner {
    margin: 0 0 4em 0;
  }
}
.service p,
.aboutus p {
  margin: 0 0 1em 0;
}
.service .area-txt,
.aboutus .area-txt {
  padding: 0 7%;
  justify-content: center;
  align-items: center;
  line-height: 30px;
}
.service .area-txt_inner,
.aboutus .area-txt_inner {
  text-align: center;
}
.service .area-txt_inner h3,
.aboutus .area-txt_inner h3 {
  position: relative;
  display: inline-block;
  font-size: 40px;
  font-weight: bold;
  line-height: 1.2;
  margin: 0 0 1em 0;
}
.service .area-txt_inner h3 img,
.aboutus .area-txt_inner h3 img {
  display: block;
  position: absolute;
  top: -10px;
  left: -36px;
  width: 36px;
  height: auto;
}
@media screen and (max-width: 480px) {
  .service .area-txt_inner h3,
  .aboutus .area-txt_inner h3 {
    font-size: 30px;
  }
  .service .area-txt_inner h3 img,
  .aboutus .area-txt_inner h3 img {
    top: -9px;
  }
}
.service .area-txt_inner p,
.aboutus .area-txt_inner p {
  display: block;
  text-align: left;
  max-width: 100%;
}
.service .service-accessories,
.aboutus .service-accessories {
  flex-direction: row-reverse;
}
@media screen and (max-width: 480px) {
  .service .service-hoken,
  .service .service-accessories,
  .aboutus .service-hoken,
  .aboutus .service-accessories {
    flex-direction: column;
  }
  .service .service-hoken .area-img,
  .service .service-hoken .area-txt,
  .service .service-accessories .area-img,
  .service .service-accessories .area-txt,
  .aboutus .service-hoken .area-img,
  .aboutus .service-hoken .area-txt,
  .aboutus .service-accessories .area-img,
  .aboutus .service-accessories .area-txt {
    width: 100%;
  }
}
.service .aboutus__inner,
.aboutus .aboutus__inner {
  padding: 0 30%;
}
.service .aboutus__inner th, .service .aboutus__inner td,
.aboutus .aboutus__inner th,
.aboutus .aboutus__inner td {
  padding: 1em 0;
}
.service .aboutus__inner th,
.aboutus .aboutus__inner th {
  width: 25%;
}
.service .aboutus__inner td,
.aboutus .aboutus__inner td {
  width: 75%;
}
@media screen and (max-width: 480px) {
  .service .aboutus__inner,
  .aboutus .aboutus__inner {
    padding: 0 5%;
  }
  .service .aboutus__inner th,
  .aboutus .aboutus__inner th {
    width: 30%;
  }
  .service .aboutus__inner td,
  .aboutus .aboutus__inner td {
    width: 70%;
  }
}

footer {
  padding: 3% 0;
  background: #05143e;
  color: rgb(255, 255, 255);
}
footer .navbar {
  justify-content: space-between;
  align-items: center;
  padding: 10px 20px;
}
@media screen and (max-width: 480px) {
  footer .navbar {
    flex-direction: column;
  }
  footer .navbar .logo {
    width: 100%;
    text-align: center;
  }
}
footer .f-menu li {
  margin-left: 20px;
}
footer .f-menu li a {
  color: rgb(255, 255, 255);
}
@media screen and (max-width: 480px) {
  footer .f-menu {
    display: none;
  }
}
footer .copy {
  color: rgb(255, 255, 255);
}

.ani {
  opacity: 0;
  transition: opacity 1s ease-out, transform 1s ease-out;
}

.ani.show {
  opacity: 1;
  transform: translateY(0);
}

.ani-FromTop {
  transform: translateY(-100px);
}

.ani-FromBottom {
  transform: translateY(100px);
}

.ani-FromLeft {
  transform: translateX(-100px);
}

.ani-FromRight {
  transform: translateX(100px);
}

.ani-Fvtxt {
  transform: translateX(-200px);
}

/* iPad用 */
@media screen and (max-width: 768px) {
  .pc_no {
    display: inline;
  }
  .sp_no {
    display: none;
  }
}
/* iPhone用 *//*# sourceMappingURL=style.css.map */