.cf {
  *zoom: 1;
}
.cf:after {
  content: "";
  display: block;
  clear: both;
  height: 0;
}

form ::-webkit-input-placeholder {
  color: #C6C6C6;
}
form :-moz-placeholder {
  opacity: 1;
  color: #C6C6C6;
}
form ::-moz-placeholder {
  opacity: 1;
  color: #C6C6C6;
}
form :-ms-input-placeholder {
  color: #C6C6C6;
}

::-moz-selection {
  color: var(--main-color);
  background: rgba(255, 255, 255, 0.7);
}

::selection {
  color: var(--main-color);
  background: rgba(255, 255, 255, 0.7);
}

.l-header {
  backdrop-filter: blur(5px);
  background: rgba(255, 255, 255, 0.8);
}
@media (hover: hover) {
  .l-header .nav-list a {
    -webkit-transition: opacity 0.3s, color 0.3s;
    transition: opacity 0.3s, color 0.3s;
  }
  .l-header .nav-list a:hover, .l-header .nav-list a:active {
    opacity: 0.7;
  }
}
.l-header .btn-list {
  font-size: 1.125em;
}
.l-header .btn-list a {
  display: block;
  padding: 0.4em 1em;
  border-radius: 2em;
  font-weight: 700;
}
@media (hover: hover) {
  .l-header .btn-list a {
    -webkit-transition: opacity 0.3s;
    transition: opacity 0.3s;
  }
  .l-header .btn-list a:hover, .l-header .btn-list a:active {
    opacity: 0.7;
  }
}
.l-header .btn-line a {
  background: #06c755;
  color: #fff;
}
.l-header .btn-line a:before {
  content: "";
  width: 1.5em;
  height: 1.5em;
  display: inline-block;
  margin-top: -0.35em;
  margin-right: 0.25em;
  vertical-align: middle;
  background: url(../img/icon_line.svg) no-repeat left center/contain;
}
.l-header .btn-contact a {
  background: var(--cvbg-color);
  color: #fff;
}
.l-header .btn-contact a:before {
  content: "";
  width: 1.25em;
  height: 1.5em;
  display: inline-block;
  margin-top: -0.1em;
  margin-right: 0.25em;
  vertical-align: middle;
  background: url(../img/icon_mail_01.svg) no-repeat left center/contain;
}
@media only screen and (min-width: 768px) {
  .l-header {
    font-size: min(1em, 1.5vw);
  }
  .l-header .header-logo {
    position: absolute;
    left: 3.125%;
    top: min(1em, 0.4vw);
    max-width: min(12em, 11vw);
  }
  .l-header .l-nav {
    padding-top: 0.5em;
    display: -webkit-box !important;
    display: -ms-flexbox !important;
    display: flex !important;
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
    gap: 0.5em 0;
  }
  .l-header .nav-list {
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
  }
  .l-header .nav-list li a:not(.sub-menu a):not(.btn a) {
    padding: 0.25em min(0.5em, 1vw);
    white-space: nowrap;
  }
  .l-header .btn-list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    margin-left: auto;
    gap: 1em 0.5em;
    font-size: 1.125em;
  }
}
@media only screen and (max-width: 767px) {
  .l-header .btn-list {
    margin-top: 1em;
    padding: 0 3.125%;
  }
  .l-header .btn-list li + li {
    margin-top: 0.5em;
  }
}

.single-post .l-breadcrumbs, .single-case .l-breadcrumbs, .single-doc .l-breadcrumbs, .single .l-breadcrumbs {
  padding-top: min(15vw, 9.5em);
}

.mv-layout-02 {
  padding-top: min(20vw, 9em);
  background: url(../img/mv_bg.jpg) no-repeat left center/cover;
}

.wp-block-button.cta-line a {
  font-size: clamp(1em, 3.8vw, 1.25em);
  background: #06c755;
  color: #fff;
}
.wp-block-button.cta-line a:before {
  content: "";
  width: 1.5em;
  height: 1.5em;
  display: inline-block;
  margin-top: -0.35em;
  margin-right: 0.25em;
  vertical-align: middle;
  background: url(../img/icon_line.svg) no-repeat left center/contain;
}

.wp-block-button.cta-contact a {
  font-size: clamp(1em, 3.8vw, 1.25em);
  background: var(--cvbg-color);
  color: #fff;
}
.wp-block-button.cta-contact a:before {
  content: "";
  width: 1.25em;
  height: 1.5em;
  display: inline-block;
  margin-top: -0.1em;
  margin-right: 0.25em;
  vertical-align: middle;
  background: url(../img/icon_mail_01.svg) no-repeat left center/contain;
}

.md-subscription {
  position: relative;
  border: min(2.4vw, 2em) solid var(--main-color);
  background: var(--base-bg-color);
}

.subscription-bnr a {
  position: relative;
  border: 1px solid var(--main-color);
  border-radius: 5px;
  padding: min(2em, 4.16vw) 3%;
  background: #fff;
  -webkit-transition: background 0.3s;
  transition: background 0.3s;
  font-weight: 700;
  font-size: 1.25em;
  text-align: center;
  display: block;
  margin: min(2em, 4.16vw) auto;
  background: #fff url(../img/subscription_bnr.png) no-repeat left center/200px auto;
}
.subscription-bnr a:before {
  content: none;
}
.subscription-bnr a:after {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 2%;
  margin: auto;
  height: 1em;
}
@media (hover: hover) {
  .subscription-bnr a:hover, .subscription-bnr a:active {
    background-color: rgba(255, 255, 255, 0.5);
  }
}

.subscription-group {
  gap: min(1.5em, 2.24vw) 2%;
}
.subscription-group a {
  display: block;
  border: 1px solid var(--main-color);
  border-radius: 5px;
  padding: 1em 3%;
  background: #fff;
  -webkit-transition: background 0.3s;
  transition: background 0.3s;
}
@media (hover: hover) {
  .subscription-group a:hover, .subscription-group a:active {
    background: rgba(255, 255, 255, 0.5);
  }
}
.subscription-group .card-layout-img {
  text-align: center;
}
.subscription-group img {
  max-width: 30%;
}
.subscription-group .ttl {
  max-inline-size: -webkit-max-content;
  max-inline-size: -moz-max-content;
  max-inline-size: max-content;
  margin-inline: auto;
}

.md-category {
  padding: min(4.25em, 8.84vw) 0;
  background: var(--base-bg-color);
  margin-top: min(4em, 8.32vw);
}
.md-category .md-category-list {
  display: grid;
  gap: min(1.5em, 2.24vw) 2%;
}
.md-category .md-category-list a {
  display: block;
  border: 1px solid var(--main-color);
  border-radius: 5px;
  padding: 1em 3%;
  background: #fff;
  -webkit-transition: background 0.3s;
  transition: background 0.3s;
}
@media (hover: hover) {
  .md-category .md-category-list a:hover, .md-category .md-category-list a:active {
    background: rgba(255, 255, 255, 0.5);
  }
}
.md-category .md-category-list .md-category-img {
  text-align: center;
}
.md-category .md-category-list .md-category-img img {
  max-width: 30%;
}
.md-category .md-category-list .md-category-txt {
  max-inline-size: -webkit-max-content;
  max-inline-size: -moz-max-content;
  max-inline-size: max-content;
  margin-inline: auto;
  font-size: 0.875em;
}
@media only screen and (min-width: 768px) {
  .md-category .md-category-list {
    grid-template-columns: repeat(4, 1fr);
  }
  .md-category .md-category-list.article-category-list {
    grid-template-columns: repeat(5, 1fr);
  }
  .md-category .md-category-list.article-category-list .md-category-img img {
    max-width: 40%;
  }
}
@media only screen and (max-width: 767px) {
  .md-category .md-category-list {
    grid-template-columns: repeat(2, 1fr);
  }
}
.md-category .md-category-btn {
  margin-top: min(2em, 4.16vw);
  text-align: center;
}
.md-category .md-category-btn a {
  display: block;
  padding: 1em 3%;
  border-radius: 2em;
  font-weight: 700;
  background: var(--main-text-color);
  text-align: center;
  color: #fff;
  max-width: -webkit-max-content;
  max-width: -moz-max-content;
  max-width: max-content;
  margin: auto;
}
@media (hover: hover) {
  .md-category .md-category-btn a {
    -webkit-transition: opacity 0.3s;
    transition: opacity 0.3s;
  }
  .md-category .md-category-btn a:hover, .md-category .md-category-btn a:active {
    opacity: 0.7;
  }
}

.cta-layout-02 .cta-layout-inner {
  max-inline-size: none;
}
.cta-layout-02 .cta-layout-btn {
  margin-top: min(2em, 4.16vw);
  gap: 1em 1.5%;
}
.cta-layout-02 .contact a:before {
  content: "";
  width: 1.25em;
  height: 1.5em;
  display: inline-block;
  margin-top: -0.1em;
  margin-right: 0.25em;
  vertical-align: middle;
  background: url(../img/icon_mail_02.svg) no-repeat left center/contain;
}
.cta-layout-02 .line a {
  background: #06c755;
  color: #fff;
}
.cta-layout-02 .line a:before {
  content: "";
  width: 1.5em;
  height: 1.5em;
  display: inline-block;
  margin-top: -0.35em;
  margin-right: 0.25em;
  vertical-align: middle;
  background: url(../img/icon_line.svg) no-repeat left center/contain;
}

.l-footer {
  font-weight: 500;
  color: #fff;
}
.l-footer .footer-inner {
  padding: 0em 3.125%;
}
.l-footer .footer-logo .footer-logo-img {
  max-width: 8em;
}
.l-footer .footer-addr a {
  color: #fff;
  text-decoration: underline;
}
@media (hover: hover) {
  .l-footer .footer-addr a {
    -webkit-transition: opacity 0.3s;
    transition: opacity 0.3s;
  }
  .l-footer .footer-addr a:hover, .l-footer .footer-addr a:active {
    text-decoration: none;
    opacity: 0.7;
  }
}
.l-footer .footer-btn {
  margin-top: 1.5em;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 1em 0.5em;
}
.l-footer .footer-btn a {
  display: block;
  padding: 1em 1em;
  border-radius: 2em;
  font-weight: 700;
}
@media (hover: hover) {
  .l-footer .footer-btn a {
    -webkit-transition: opacity 0.3s;
    transition: opacity 0.3s;
  }
  .l-footer .footer-btn a:hover, .l-footer .footer-btn a:active {
    opacity: 0.7;
  }
}
.l-footer .btn-line a {
  background: #06c755;
  color: #fff;
}
.l-footer .btn-line a:before {
  content: "";
  width: 1.5em;
  height: 1.5em;
  display: inline-block;
  margin-top: -0.35em;
  margin-right: 0.25em;
  vertical-align: middle;
  background: url(../img/icon_line.svg) no-repeat left center/contain;
}
.l-footer .btn-contact a {
  background: var(--cvbg-color);
  color: #fff;
}
.l-footer .btn-contact a:before {
  content: "";
  width: 1.25em;
  height: 1.5em;
  display: inline-block;
  margin-top: -0.1em;
  margin-right: 0.25em;
  vertical-align: middle;
  background: url(../img/icon_mail_01.svg) no-repeat left center/contain;
}
.l-footer .l-footer-nav {
  display: grid;
  gap: 2em 1.5em;
}
.l-footer .l-footer-nav ul {
  font-weight: 700;
}
.l-footer .l-footer-nav ul li {
  line-height: 1.35;
}
.l-footer .l-footer-nav ul li + li {
  margin-top: 0.75em;
}
.l-footer .l-footer-nav ul .secondary {
  padding-left: 1em;
  position: relative;
  font-size: 0.875em;
}
.l-footer .l-footer-nav ul .secondary:before {
  content: "-";
  position: absolute;
  left: 0;
  top: 0;
  color: #fff;
}
.l-footer .l-footer-nav ul a {
  color: #fff;
}
@media (hover: hover) {
  .l-footer .l-footer-nav ul a {
    -webkit-transition: opacity 0.3s;
    transition: opacity 0.3s;
  }
  .l-footer .l-footer-nav ul a:hover, .l-footer .l-footer-nav ul a:active {
    text-decoration: none;
    opacity: 0.7;
  }
}
@media only screen and (min-width: 768px) {
  .l-footer {
    background: url(../img/footer_bg.jpg) no-repeat left top/cover;
  }
  .l-footer .footer-logo {
    width: 34%;
  }
  .l-footer .footer-logo .footer-logo-img {
    max-width: 8em;
  }
  .l-footer .l-footer-nav {
    grid-template-columns: repeat(4, 1fr);
    width: 63%;
  }
}
@media only screen and (max-width: 767px) {
  .l-footer {
    background: #233589 url(../img/sp_footer_bg.jpg) no-repeat center top/100%;
  }
  .l-footer .footer-btn {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
  .l-footer .l-footer-nav {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media only screen and (max-width: 480px) {
  .l-footer .l-footer-nav {
    grid-template-columns: repeat(1, 1fr);
  }
}

::-moz-selection {
  color: var(--main-color);
  background: rgba(204, 204, 204, 0.7);
}

::selection {
  color: var(--main-color);
  background: rgba(204, 204, 204, 0.7);
}

.l-404 {
  padding-top: min(15vw, 9.5em);
}
.l-404 p {
  text-align: center;
}