@charset "UTF-8";
/* Noto Sans */
/* normal */
@font-face {
  font-family: "Noto Sans";
  font-style: normal;
  font-weight: 100;
  src: url("/fonts/NotoSansJP-Thin.woff2") format("woff2"); }

@font-face {
  font-family: "Noto Sans";
  font-style: normal;
  font-weight: 200;
  src: url("/fonts/NotoSansJP-ExtraLight.woff2") format("woff2"); }

@font-face {
  font-family: "Noto Sans";
  font-style: normal;
  font-weight: 300;
  src: url("/fonts/NotoSansJP-Light.woff2") format("woff2"); }

@font-face {
  font-family: "Noto Sans";
  font-style: normal;
  font-weight: 400;
  src: url("/fonts/NotoSansJP-Regular.woff2") format("woff2"); }

@font-face {
  font-family: "Noto Sans";
  font-style: normal;
  font-weight: 500;
  src: url("/fonts/NotoSansJP-Medium.woff2") format("woff2"); }

@font-face {
  font-family: "Noto Sans";
  font-style: normal;
  font-weight: 600;
  src: url("/fonts/NotoSansJP-SemiBold.woff2") format("woff2"); }

@font-face {
  font-family: "Noto Sans";
  font-style: normal;
  font-weight: 700;
  src: url("/fonts/NotoSansJP-Bold.woff2") format("woff2"); }

@font-face {
  font-family: "Noto Sans";
  font-style: normal;
  font-weight: 800;
  src: url("/fonts/NotoSansJP-ExtraBold.woff2") format("woff2"); }

@font-face {
  font-family: "Noto Sans";
  font-style: normal;
  font-weight: 900;
  src: url("/fonts/NotoSansJP-Black.woff2") format("woff2"); }

/* Noto Serif */
@font-face {
  font-family: "Noto Serif";
  font-style: normal;
  font-weight: 200;
  src: url("/fonts/NotoSerifJP-ExtraLight.woff2") format("woff2"); }

@font-face {
  font-family: "noto serif";
  font-style: normal;
  font-weight: 300;
  src: url("/fonts/NotoSerifJP-Light.woff2") format("woff2"); }

@font-face {
  font-family: "Noto Serif";
  font-style: normal;
  font-weight: 400;
  src: url("/fonts/NotoSerifJP-Regular.woff2") format("woff2"); }

@font-face {
  font-family: "Noto Serif";
  font-style: normal;
  font-weight: 700;
  src: url("/fonts/NotoSerifJP-Bold.woff2") format("woff2"); }

/* Lato - Normal */
@font-face {
  font-family: "Lato";
  font-style: normal;
  font-weight: 100;
  src: url("/fonts/Lato-Thin.woff2") format("woff2"); }

@font-face {
  font-family: "Lato";
  font-style: normal;
  font-weight: 300;
  src: url("/fonts/Lato-Light.woff2") format("woff2"); }

@font-face {
  font-family: "Lato";
  font-style: normal;
  font-weight: 400;
  src: url("/fonts/Lato-Regular.woff2") format("woff2"); }

@font-face {
  font-family: "Lato";
  font-style: normal;
  font-weight: 700;
  src: url("/fonts/Lato-Bold.woff2") format("woff2"); }

@font-face {
  font-family: "Lato";
  font-style: normal;
  font-weight: 900;
  src: url("/fonts/Lato-Black.woff2") format("woff2"); }

@font-face {
  font-family: "Lato";
  font-style: italic;
  font-weight: 100;
  src: url("/fonts/Lato-ThinItalic.woff2") format("woff2"); }

@font-face {
  font-family: "Lato";
  font-style: italic;
  font-weight: 300;
  src: url("/fonts/Lato-LightItalic.woff2") format("woff2"); }

@font-face {
  font-family: "Lato";
  font-style: italic;
  font-weight: 400;
  src: url("/fonts/Lato-Italic.woff2") format("woff2"); }

@font-face {
  font-family: "Lato";
  font-style: italic;
  font-weight: 700;
  src: url("/fonts/Lato-BoldItalic.woff2") format("woff2"); }

@font-face {
  font-family: "Lato";
  font-style: italic;
  font-weight: 900;
  src: url("/fonts/Lato-BlackItalic.woff2") format("woff2"); }

@font-face {
  font-family: "Zen Old Mincho";
  font-style: normal;
  font-weight: 400;
  src: url("/fonts/ZenOldMincho-Regular.woff2") format("woff2"); }

@font-face {
  font-family: "Zen Old Mincho";
  font-style: normal;
  font-weight: 500;
  src: url("/fonts/ZenOldMincho-Medium.woff2") format("woff2"); }

@font-face {
  font-family: "Zen Old Mincho";
  font-style: normal;
  font-weight: 600;
  src: url("/fonts/ZenOldMincho-SemiBold.woff2") format("woff2"); }

@font-face {
  font-family: "Zen Old Mincho";
  font-style: normal;
  font-weight: 700;
  src: url("/fonts/ZenOldMincho-Bold.woff2") format("woff2"); }

@font-face {
  font-family: "Zen Old Mincho";
  font-style: normal;
  font-weight: 900;
  src: url("/fonts/ZenOldMincho-Black.woff2") format("woff2"); }

@font-face {
  font-family: "New Tegomin";
  font-style: normal;
  font-weight: 400;
  src: url("/fonts/NewTegomin-Regular.woff2") format("woff2"); }

html[lang="ja"] {
  font-family: "Noto Serif";
  font-weight: 300; }

body {
  overflow-x: hidden; }

a {
  color: dimgray;
  text-decoration: none; }

.header-phone {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  justify-content: flex-end; }
  @media only screen and (max-width: 767px) {
    .header-phone {
      position: absolute;
      right: 0; } }
  .header-phone p a {
    pointer-events: none;
    display: inline-flex;
    padding: .25rem .75rem;
    font-family: "Zen Old Mincho";
    color: #005bac;
    border: 1px solid #005bac;
    border-radius: 0 0 .5rem .5rem;
    justify-content: center;
    align-items: center; }
    @media only screen and (max-width: 767px) {
      .header-phone p a {
        pointer-events: auto; } }
    .header-phone p a span {
      display: flex; }
    @media only screen and (max-width: 767px) {
      .header-phone p a {
        margin-right: 4rem; } }

.header-top {
  caret-color: transparent;
  display: flex;
  max-width: 1200px;
  margin: 0 auto;
  align-items: center; }
  .header-top .header-logo {
    display: flex;
    margin: 0 .25rem; }
    @media only screen and (max-width: 767px) {
      .header-top .header-logo {
        margin: .25rem; } }
    .header-top .header-logo p {
      margin: 0; }
    .header-top .header-logo .logo {
      display: flex;
      margin: 0;
      justify-content: center;
      align-items: center; }
      .header-top .header-logo .logo:hover {
        opacity: .5; }
      @media only screen and (min-width: 768px) {
        .header-top .header-logo .logo {
          padding: 1rem 1.5rem; } }
      @media only screen and (max-width: 1200px) {
        .header-top .header-logo .logo {
          padding: 1rem 1.5rem 1rem 0; } }
      @media only screen and (max-width: 1200px) {
        .header-top .header-logo .logo {
          padding: 1rem; } }
      .header-top .header-logo .logo svg {
        height: auto; }
        @media only screen and (min-width: 768px) {
          .header-top .header-logo .logo svg {
            width: clamp(6rem, calc(4.00rem + 2.50vw), 7rem); } }
        @media only screen and (max-width: 1200px) {
          .header-top .header-logo .logo svg {
            width: clamp(5rem, calc(3.50rem + 3.13vw), 6rem); } }
        @media only screen and (max-width: 767px) {
          .header-top .header-logo .logo svg {
            width: clamp(4rem, calc(3.29rem + 3.57vw), 5rem); } }
  @media only screen and (max-width: 767px) {
    .header-top:has(.menu-toggle:checked) .header-menu {
      position: fixed;
      margin: 0;
      padding: 1rem;
      display: flex;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
      background-color: rgba(255, 255, 255, 0.9);
      z-index: 2; } }
  .header-top .header-menu {
    flex: 1 1 0px;
    display: flex;
    margin: 0 1rem;
    gap: 1rem;
    position: relative; }
    @media only screen and (max-width: 767px) {
      .header-top .header-menu {
        display: none; } }
    @media only screen and (max-width: 1200px) {
      .header-top .header-menu {
        margin: 0 clamp(0.5rem, calc(-0.25rem + 1.56vw), 1rem); } }
    .header-top .header-menu a {
      display: inline-block; }
    .header-top .header-menu .menu-contents {
      flex: 1 1 0px;
      align-items: center;
      max-width: 1440px; }
      .header-top .header-menu .menu-contents ul {
        margin: 0;
        padding: 0;
        display: flex;
        justify-content: flex-end;
        align-items: stretch;
        flex-wrap: wrap; }
        @media only screen and (max-width: 767px) {
          .header-top .header-menu .menu-contents ul {
            flex-direction: column;
            justify-content: center; } }
        @media only screen and (min-width: 768px) {
          .header-top .header-menu .menu-contents ul {
            font-size: clamp(1rem, calc(0.75rem + 0.31vw), 1.125rem); } }
        @media only screen and (max-width: 1200px) {
          .header-top .header-menu .menu-contents ul {
            font-size: clamp(0.8rem, calc(0.50rem + 0.63vw), 1rem); } }
        @media only screen and (max-width: 767px) {
          .header-top .header-menu .menu-contents ul {
            font-size: 1rem; } }
        .header-top .header-menu .menu-contents ul li {
          position: relative;
          flex: 0 1 0px;
          list-style: none;
          text-wrap: nowrap; }
          .header-top .header-menu .menu-contents ul li:before {
            content: "";
            position: absolute;
            left: 0;
            top: 50%;
            transform: translateY(-50%);
            height: 70%;
            border-left: 1px solid #999999; }
            @media only screen and (max-width: 767px) {
              .header-top .header-menu .menu-contents ul li:before {
                border-left: none; } }
          @media only screen and (min-width: 768px) {
            .header-top .header-menu .menu-contents ul li {
              padding: 0 1.5rem; } }
          @media only screen and (max-width: 1200px) {
            .header-top .header-menu .menu-contents ul li {
              padding: 0 clamp(0.8rem, calc(-0.25rem + 2.19vw), 1.5rem); } }
          @media only screen and (max-width: 767px) {
            .header-top .header-menu .menu-contents ul li {
              padding: 0; } }
          .header-top .header-menu .menu-contents ul li:last-child:after {
            content: "";
            position: absolute;
            left: 0;
            top: 50%;
            transform: translateY(-50%);
            height: 70%;
            border-right: 1px solid #999999; }
            @media only screen and (max-width: 767px) {
              .header-top .header-menu .menu-contents ul li:last-child:after {
                border-right: none; } }
          @media only screen and (max-width: 767px) {
            .header-top .header-menu .menu-contents ul li {
              padding: .5rem 0; } }
          .header-top .header-menu .menu-contents ul li a {
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            width: 100%;
            height: 100%;
            cursor: pointer; }
            .header-top .header-menu .menu-contents ul li a:hover {
              color: #999999; }
            @media only screen and (max-width: 767px) {
              .header-top .header-menu .menu-contents ul li a {
                flex-direction: row; } }
            .header-top .header-menu .menu-contents ul li a span.sep {
              display: none; }
              @media only screen and (max-width: 767px) {
                .header-top .header-menu .menu-contents ul li a span.sep {
                  display: flex; } }
          .header-top .header-menu .menu-contents ul li.exception-home {
            display: none; }
            @media only screen and (max-width: 767px) {
              .header-top .header-menu .menu-contents ul li.exception-home {
                display: inline-block; } }
  .header-top .menu-icon {
    display: none;
    width: 3rem;
    height: 3rem;
    position: fixed;
    top: 0;
    right: 0;
    z-index: 3;
    background-color: #005bac; }
    @media only screen and (max-width: 767px) {
      .header-top .menu-icon {
        display: flex; } }
    .header-top .menu-icon .menu-toggle {
      display: none; }
    .header-top .menu-icon .humberger {
      width: 50%;
      height: 50%;
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      cursor: pointer;
      background-color: tranceparent; }
      .header-top .menu-icon .humberger span {
        display: block;
        width: 100%;
        height: 2px;
        background-color: white;
        position: absolute;
        transition: transform 0.3s, opacity 0.3s; }
        .header-top .menu-icon .humberger span:nth-child(1) {
          top: 0; }
        .header-top .menu-icon .humberger span:nth-child(2) {
          top: 50%; }
        .header-top .menu-icon .humberger span:nth-child(3) {
          bottom: 0; }
    .header-top .menu-icon .menu-toggle:checked + .humberger span {
      margin-top: calc(50% - 2px / 2); }
    .header-top .menu-icon .menu-toggle:checked + .humberger span:nth-child(1) {
      transform: rotate(45deg); }
    .header-top .menu-icon .menu-toggle:checked + .humberger span:nth-child(2) {
      transform: scale(0); }
    .header-top .menu-icon .menu-toggle:checked + .humberger span:nth-child(3) {
      bottom: none;
      top: 0;
      transform: rotate(-45deg); }

#home .header-message {
  position: relative; }
  @media only screen and (min-width: 768px) {
    #home .header-message {
      margin-top: 1rem; } }
  @media only screen and (max-width: 1200px) {
    #home .header-message {
      margin-top: clamp(0.5rem, calc(-0.25rem + 1.56vw), 1rem); } }
  @media only screen and (max-width: 767px) {
    #home .header-message {
      margin-top: 0; } }
  @media only screen and (min-width: 768px) {
    #home .header-message {
      height: 768px; } }
  @media only screen and (max-width: 1200px) {
    #home .header-message {
      height: calc(100vw * (768 / 1280)); } }
  @media only screen and (max-width: 767px) {
    #home .header-message {
      height: calc(100vw * (492 / 768)); } }
  #home .header-message:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat; }
    @media only screen and (min-width: 768px) {
      #home .header-message:before {
        background-image: url("/wp-content/uploads/main-visual-pc.jpg"); } }
    @media only screen and (max-width: 1200px) {
      #home .header-message:before {
        background-image: url("/wp-content/uploads/main-visual-cs.jpg"); } }
    @media only screen and (max-width: 767px) {
      #home .header-message:before {
        background-image: url("/wp-content/uploads/main-visual-sp.jpg"); } }

@media only screen and (min-width: 768px) {
  .headline-home {
    margin-top: 2rem; } }

@media only screen and (max-width: 1200px) {
  .headline-home {
    margin-top: clamp(1.5rem, calc(0.75rem + 1.56vw), 2rem); } }

@media only screen and (max-width: 767px) {
  .headline-home {
    margin-top: clamp(1rem, calc(0.64rem + 1.79vw), 1.5rem); } }

.headline-home h2 {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  color: #005bac;
  font-weight: 300;
  gap: .5rem; }
  @media only screen and (min-width: 768px) {
    .headline-home h2 {
      font-size: 1.5rem; } }
  @media only screen and (max-width: 1200px) {
    .headline-home h2 {
      font-size: clamp(1.25rem, calc(0.88rem + 0.78vw), 1.5rem); } }
  @media only screen and (max-width: 767px) {
    .headline-home h2 {
      font-size: clamp(1.125rem, calc(1.04rem + 0.45vw), 1.25rem); } }
  .headline-home h2:after {
    content: "";
    width: 3rem;
    border-bottom: 1px solid #005bac; }

@media only screen and (min-width: 768px) {
  .divergent {
    margin-bottom: 3rem; } }

@media only screen and (max-width: 1200px) {
  .divergent {
    margin-bottom: clamp(2rem, calc(0.50rem + 3.13vw), 3rem); } }

@media only screen and (max-width: 767px) {
  .divergent {
    margin-bottom: clamp(1rem, calc(0.29rem + 3.57vw), 2rem); } }

.divergent .contents {
  max-width: 1200px;
  margin: 0 auto;
  overflow: hidden;
  justify-content: center; }
  .divergent .contents .gallery {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    flex-wrap: nowrap; }
    .divergent .contents .gallery .part {
      display: flex;
      justify-content: center;
      flex-direction: column;
      background-color: white;
      box-sizing: border-box; }
      @media only screen and (min-width: 768px) {
        .divergent .contents .gallery .part {
          min-width: 15rem; } }
      @media only screen and (max-width: 1200px) {
        .divergent .contents .gallery .part {
          min-width: clamp(10rem, calc(2.50rem + 15.63vw), 15rem); } }
      @media only screen and (max-width: 767px) {
        .divergent .contents .gallery .part {
          min-width: clamp(10rem, calc(2.86rem + 35.71vw), 20rem); } }
      @media only screen and (min-width: 768px) {
        .divergent .contents .gallery .part {
          padding: 0 1rem; } }
      @media only screen and (max-width: 1200px) {
        .divergent .contents .gallery .part {
          padding: 0 clamp(0.75rem, calc(0.38rem + 0.78vw), 1rem); } }
      @media only screen and (max-width: 767px) {
        .divergent .contents .gallery .part {
          padding: 0 clamp(0.5rem, calc(0.32rem + 0.89vw), 0.75rem); } }
      .divergent .contents .gallery .part picture {
        display: flex;
        justify-content: center;
        align-items: center;
        aspect-ratio: 16 / 9;
        overflow: hidden;
        box-shadow: 0.25rem 0.25rem 0.25rem rgba(0, 0, 0, 0.25); }
        .divergent .contents .gallery .part picture img {
          object-fit: contain; }
      .divergent .contents .gallery .part p {
        text-align: center; }
      .divergent .contents .gallery .part a {
        display: flex;
        justify-content: center;
        padding: .5rem 0;
        line-height: 1.25; }
      .divergent .contents .gallery .part .title {
        color: dimgray;
        font-weight: 500;
        display: flex;
        justify-content: flex-start;
        align-items: center; }
        @media only screen and (min-width: 768px) {
          .divergent .contents .gallery .part .title {
            font-size: 1.125rem; } }
        @media only screen and (max-width: 1200px) {
          .divergent .contents .gallery .part .title {
            font-size: clamp(1rem, calc(0.81rem + 0.39vw), 1.125rem); } }
        @media only screen and (max-width: 767px) {
          .divergent .contents .gallery .part .title {
            font-size: clamp(0.85rem, calc(0.74rem + 0.54vw), 1rem); } }
        .divergent .contents .gallery .part .title:after {
          content: "＞";
          margin-left: .25rem; }
          @media only screen and (min-width: 768px) {
            .divergent .contents .gallery .part .title:after {
              font-size: .85rem; } }
          @media only screen and (max-width: 1200px) {
            .divergent .contents .gallery .part .title:after {
              font-size: clamp(0rem, calc(-1.28rem + 2.66vw), 0.85rem); } }
          @media only screen and (max-width: 767px) {
            .divergent .contents .gallery .part .title:after {
              font-size: clamp(0.65rem, calc(0.58rem + 0.36vw), 0.75rem); } }
      .divergent .contents .gallery .part .meta {
        justify-content: flex-start;
        font-family: "Noto Sans";
        font-weight: 300;
        color: #005bac; }
        @media only screen and (min-width: 768px) {
          .divergent .contents .gallery .part .meta {
            font-size: 1rem; } }
        @media only screen and (max-width: 1200px) {
          .divergent .contents .gallery .part .meta {
            font-size: clamp(0.8rem, calc(0.50rem + 0.63vw), 1rem); } }
        @media only screen and (max-width: 767px) {
          .divergent .contents .gallery .part .meta {
            font-size: clamp(0.65rem, calc(0.54rem + 0.54vw), 0.8rem); } }
      .divergent .contents .gallery .part .button {
        font-weight: 500;
        padding: .5rem 2rem .75rem;
        display: inline-flex;
        color: white; }
        @media only screen and (min-width: 768px) {
          .divergent .contents .gallery .part .button {
            margin: 1rem 0 0; } }
        @media only screen and (max-width: 1200px) {
          .divergent .contents .gallery .part .button {
            margin: clamp(0.75rem, calc(0.38rem + 0.78vw), 1rem) 0 0; } }
        @media only screen and (max-width: 767px) {
          .divergent .contents .gallery .part .button {
            margin: clamp(0.5rem, calc(0.32rem + 0.89vw), 0.75rem) 0 0; } }

.divergent .foot {
  max-width: 1200px;
  display: flex;
  justify-content: flex-end; }
  @media only screen and (min-width: 768px) {
    .divergent .foot {
      margin: 1rem auto 0; } }
  @media only screen and (max-width: 1200px) {
    .divergent .foot {
      margin: clamp(0.75rem, calc(0.38rem + 0.78vw), 1rem) auto 0; } }
  @media only screen and (max-width: 767px) {
    .divergent .foot {
      margin: clamp(0.5rem, calc(0.32rem + 0.89vw), 0.75rem) auto 0; } }
  .divergent .foot .link .link-button {
    display: flex;
    align-items: center;
    font-family: Lato;
    color: #005bac; }
    @media only screen and (min-width: 768px) {
      .divergent .foot .link .link-button {
        gap: 0 .75rem; } }
    @media only screen and (max-width: 1200px) {
      .divergent .foot .link .link-button {
        gap: 0 clamp(0.5rem, calc(0.13rem + 0.78vw), 0.75rem); } }
    @media only screen and (max-width: 767px) {
      .divergent .foot .link .link-button {
        gap: 0 clamp(0.25rem, calc(0.07rem + 0.89vw), 0.5rem); } }
    @media only screen and (min-width: 768px) {
      .divergent .foot .link .link-button {
        font-size: .8rem; } }
    @media only screen and (max-width: 1200px) {
      .divergent .foot .link .link-button {
        font-size: clamp(0.7rem, calc(0.55rem + 0.31vw), 0.8rem); } }
    @media only screen and (max-width: 767px) {
      .divergent .foot .link .link-button {
        font-size: clamp(0.6rem, calc(0.53rem + 0.36vw), 0.7rem); } }
    .divergent .foot .link .link-button .icon {
      display: flex;
      align-items: center; }
      .divergent .foot .link .link-button .icon svg {
        height: auto; }
        @media only screen and (min-width: 768px) {
          .divergent .foot .link .link-button .icon svg {
            width: 1.75rem; } }
        @media only screen and (max-width: 1200px) {
          .divergent .foot .link .link-button .icon svg {
            width: clamp(1.5rem, calc(1.13rem + 0.78vw), 1.75rem); } }
        @media only screen and (max-width: 767px) {
          .divergent .foot .link .link-button .icon svg {
            width: clamp(1.25rem, calc(1.07rem + 0.89vw), 1.5rem); } }

.divergent.sns {
  text-align: center; }
  .divergent.sns .contents {
    width: auto;
    margin: 0 auto;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: 0 2rem; }
    .divergent.sns .contents .content {
      flex: 1 1 0px; }
      .divergent.sns .contents .content.invisible .icon {
        height: 0;
        overflow: hidden; }
      .divergent.sns .contents .content.instagram-wrapper {
        display: flex;
        justify-content: center;
        align-items: center;
        flex: 1 1 auto; }
        .divergent.sns .contents .content.instagram-wrapper .instagram-box {
          display: flex;
          justify-content: center;
          align-items: center;
          border: 0.25rem solid #999999;
          gap: 0 1rem; }
          @media only screen and (min-width: 768px) {
            .divergent.sns .contents .content.instagram-wrapper .instagram-box {
              padding: 1.5rem; } }
          @media only screen and (max-width: 1200px) {
            .divergent.sns .contents .content.instagram-wrapper .instagram-box {
              padding: clamp(1.25rem, calc(0.88rem + 0.78vw), 1.5rem); } }
          @media only screen and (max-width: 767px) {
            .divergent.sns .contents .content.instagram-wrapper .instagram-box {
              padding: clamp(1rem, calc(0.82rem + 0.89vw), 1.25rem); } }
          .divergent.sns .contents .content.instagram-wrapper .instagram-box .icon-wrapper {
            flex: 0 0 0px; }
            .divergent.sns .contents .content.instagram-wrapper .instagram-box .icon-wrapper .icon {
              display: flex;
              align-items: center; }
      .divergent.sns .contents .content p {
        display: flex;
        align-items: center;
        gap: 0 1.5rem; }
      .divergent.sns .contents .content .icon svg {
        height: auto; }
        @media only screen and (min-width: 768px) {
          .divergent.sns .contents .content .icon svg {
            width: 2rem; } }
        @media only screen and (max-width: 1200px) {
          .divergent.sns .contents .content .icon svg {
            width: clamp(1.75rem, calc(1.38rem + 0.78vw), 2rem); } }
        @media only screen and (max-width: 767px) {
          .divergent.sns .contents .content .icon svg {
            width: clamp(1.5rem, calc(1.32rem + 0.89vw), 1.75rem); } }

@media only screen and (min-width: 768px) {
  .gallery .textarea {
    margin-top: 2rem; } }

@media only screen and (max-width: 1200px) {
  .gallery .textarea {
    margin-top: clamp(1.5rem, calc(0.75rem + 1.56vw), 2rem); } }

@media only screen and (max-width: 767px) {
  .gallery .textarea {
    margin-top: clamp(1rem, calc(0.64rem + 1.79vw), 1.5rem); } }

.textarea {
  line-height: 1.75;
  color: #4d4d4d; }
  @media only screen and (min-width: 768px) {
    .textarea {
      font-size: 1rem; } }
  @media only screen and (max-width: 1200px) {
    .textarea {
      font-size: clamp(0.9rem, calc(0.75rem + 0.31vw), 1rem); } }
  @media only screen and (max-width: 767px) {
    .textarea {
      font-size: clamp(0.8rem, calc(0.73rem + 0.36vw), 0.9rem); } }

.overflow {
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden; }
  @media only screen and (min-width: 768px) {
    .overflow {
      margin-bottom: 4rem; } }
  @media only screen and (max-width: 1200px) {
    .overflow {
      margin-bottom: clamp(2.5rem, calc(0.25rem + 4.69vw), 4rem); } }
  @media only screen and (max-width: 767px) {
    .overflow {
      margin-bottom: clamp(1rem, calc(-0.07rem + 5.36vw), 2.5rem); } }
  .overflow .block {
    margin: 0; }
    .overflow .block .item {
      align-items: stretch; }
      @media only screen and (min-width: 768px) {
        .overflow .block .item {
          gap: 0 2rem; } }
      @media only screen and (max-width: 1200px) {
        .overflow .block .item {
          gap: 0 clamp(1.5rem, calc(0.75rem + 1.56vw), 2rem); } }
      @media only screen and (max-width: 767px) {
        .overflow .block .item {
          gap: 0 clamp(1rem, calc(0.64rem + 1.79vw), 1.5rem); } }
      .overflow .block .item .image {
        margin-bottom: 0; }
      .overflow .block .item .textarea {
        display: flex;
        flex-direction: column;
        justify-content: center;
        border-top: 1px solid gray;
        border-bottom: 1px solid gray; }
        .overflow .block .item .textarea h2 {
          display: flex;
          align-items: center;
          gap: 0 .5rem;
          line-height: 1.5;
          position: relative;
          margin-left: .5rem; }
          .overflow .block .item .textarea h2:before {
            margin-left: -.5rem;
            position: absolute;
            content: "";
            width: .25rem;
            margin-top: .125rem;
            height: 80%;
            display: inline-block;
            background-color: #005bac; }
  @media only screen and (min-width: 768px) {
    .overflow .block {
      width: 1720px;
      max-width: 1720px;
      flex-shrink: 0; }
    .overflow .infographic .image {
      flex: 2 1 0px; }
    .overflow .infographic .textarea {
      flex: 1 1 0px; } }
  @media only screen and (max-width: 1200px) {
    .overflow .block {
      width: 100%;
      margin: 0 auto; }
    .overflow .infographic .image {
      flex: 1 1 0px;
      overflow: hidden; }
      .overflow .infographic .image img {
        width: 170%;
        height: auto; }
    .overflow .infographic .textarea {
      flex: 1 1 0px; } }
  @media only screen and (max-width: 767px) {
    .overflow .block {
      width: 100%;
      margin: 0 auto; }
      .overflow .block .item .textarea {
        border-top: none;
        border-bottom: none;
        margin-bottom: 1rem; }
    .overflow .infographic .image {
      flex: 1 1 0px; }
      .overflow .infographic .image img {
        transform: translate(0);
        width: 100%;
        height: auto; }
    .overflow .infographic .textarea {
      flex: 1 1 0px; }
      .overflow .infographic .textarea h2 {
        margin-top: 1rem; } }

.overflow-right {
  overflow: visible; }
  @media only screen and (min-width: 768px) {
    .overflow-right .block {
      margin-right: 520px; } }
  @media only screen and (max-width: 1200px) {
    .overflow-right .block {
      width: 100%;
      margin: 0 auto; }
    .overflow-right .infographic .image img {
      transform: translate(-35%, 0); } }
  @media only screen and (max-width: 767px) {
    .overflow-right .infographic .image img {
      transform: translate(0); } }

.overflow-left {
  overflow: visible; }
  @media only screen and (min-width: 768px) {
    .overflow-left .block {
      margin-left: 520px; } }
  @media only screen and (max-width: 1200px) {
    .overflow-left .block {
      width: 100%;
      margin: 0 auto; }
    .overflow-left .infographic .image img {
      transform: translate(0, 0); } }
  @media only screen and (max-width: 767px) {
    .overflow-left .infographic .image img {
      transform: translate(0); } }

.divergent-link {
  color: dimgray;
  background-color: #e3e3dd;
  display: flex;
  justify-content: center;
  align-items: center;
  width: fit-content;
  margin: 0 auto;
  gap: 0 1.5rem; }
  .divergent-link .image {
    margin: 0;
    max-width: 8rem;
    max-height: 8rem;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden; }
    .divergent-link .image img {
      width: 100%;
      height: auto; }
  .divergent-link .text {
    margin: 0; }
    .divergent-link .text p {
      font-size: 1.25rem;
      display: flex;
      justify-content: center;
      align-items: center; }
      .divergent-link .text p span {
        display: flex;
        justify-content: center;
        align-items: center; }
      .divergent-link .text p:nth-child(3) {
        gap: 0 .5rem;
        margin-top: .5rem;
        font-family: "Noto Sans";
        font-weight: 300;
        font-size: .9rem; }

@media only screen and (max-width: 767px) {
  .home-banner {
    width: 80%;
    height: auto;
    margin: 0 auto; } }

@media only screen and (max-width: 479px) {
  .home-banner {
    width: 100%; } }

@media only screen and (min-width: 768px) {
  .home-banner {
    margin-bottom: 3rem; } }

@media only screen and (max-width: 1200px) {
  .home-banner {
    margin-bottom: clamp(2rem, calc(0.50rem + 3.13vw), 3rem); } }

@media only screen and (max-width: 767px) {
  .home-banner {
    margin-bottom: clamp(1rem, calc(0.29rem + 3.57vw), 2rem); } }

.home-banner .part {
  border: 1px solid #999999;
  background-color: white;
  padding: .5rem;
  display: flex;
  justify-content: center;
  align-items: center; }
  .home-banner .part a {
    display: flex;
    justify-content: center;
    align-items: center; }
  .home-banner .part picture img {
    width: 70%;
    height: auto; }
  .home-banner .part.banner-om picture img {
    width: 12%;
    height: auto; }

footer {
  font-family: "Zen Old Mincho";
  background-color: #e3e3dd; }
  footer .footer-contents {
    max-width: 1200px;
    margin: 0 auto; }
    @media only screen and (max-width: 767px) {
      footer .footer-contents {
        flex-direction: column; } }
    @media only screen and (min-width: 768px) {
      footer .footer-contents {
        gap: 2rem; } }
    @media only screen and (max-width: 1200px) {
      footer .footer-contents {
        gap: clamp(1.5rem, calc(0.75rem + 1.56vw), 2rem); } }
    @media only screen and (max-width: 767px) {
      footer .footer-contents {
        gap: clamp(1rem, calc(0.64rem + 1.79vw), 1.5rem); } }
    @media only screen and (max-width: 767px) {
      footer .footer-contents .footer-content:nth-child(2) {
        display: none; } }
    @media only screen and (max-width: 767px) {
      footer .footer-contents .footer-content {
        flex-direction: row;
        justify-content: center;
        display: inline-block;
        width: fit-content;
        margin: 0 auto; }
        footer .footer-contents .footer-content.flex {
          display: inline-flex; }
        footer .footer-contents .footer-content:last-child {
          margin-top: 1rem; } }
    @media only screen and (min-width: 768px) {
      footer .footer-contents .footer-content {
        gap: 0 1.5rem; } }
    @media only screen and (max-width: 1200px) {
      footer .footer-contents .footer-content {
        gap: 0 clamp(1rem, calc(0.25rem + 1.56vw), 1.5rem); } }
    @media only screen and (max-width: 767px) {
      footer .footer-contents .footer-content {
        gap: 0 clamp(0.5rem, calc(0.14rem + 1.79vw), 1rem); } }
    footer .footer-contents .footer-content .logomark-wrapper {
      flex: 1 1 0px; }
      footer .footer-contents .footer-content .logomark-wrapper svg {
        margin-top: .35rem;
        width: 100%;
        height: auto; }
    footer .footer-contents .footer-content .company-information {
      flex: 3 1 0px;
      font-family: "Noto Sans";
      font-weight: 300;
      font-size: .85rem; }
      footer .footer-contents .footer-content .company-information p {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 0 1rem; }
        footer .footer-contents .footer-content .company-information p span {
          white-space: nowrap; }
      footer .footer-contents .footer-content .company-information .campany-name {
        font-weight: 400; }
        @media only screen and (min-width: 768px) {
          footer .footer-contents .footer-content .company-information .campany-name {
            font-size: 1.25rem; } }
        @media only screen and (max-width: 1200px) {
          footer .footer-contents .footer-content .company-information .campany-name {
            font-size: clamp(1rem, calc(0.63rem + 0.78vw), 1.25rem); } }
        @media only screen and (max-width: 767px) {
          footer .footer-contents .footer-content .company-information .campany-name {
            font-size: 1rem; } }
      @media only screen and (min-width: 768px) {
        footer .footer-contents .footer-content .company-information .company-address {
          gap: 0 1rem; } }
      @media only screen and (max-width: 1200px) {
        footer .footer-contents .footer-content .company-information .company-address {
          gap: 0 clamp(0.75rem, calc(0.38rem + 0.78vw), 1rem); } }
      @media only screen and (max-width: 767px) {
        footer .footer-contents .footer-content .company-information .company-address {
          gap: 0 clamp(0.5rem, calc(0.32rem + 0.89vw), 0.75rem); } }
      footer .footer-contents .footer-content .company-information .company-address .zip:before {
        content: "〒"; }
      @media only screen and (min-width: 768px) {
        footer .footer-contents .footer-content .company-information .campany-dial {
          gap: 0 1rem; } }
      @media only screen and (max-width: 1200px) {
        footer .footer-contents .footer-content .company-information .campany-dial {
          gap: 0 clamp(0.75rem, calc(0.38rem + 0.78vw), 1rem); } }
      @media only screen and (max-width: 767px) {
        footer .footer-contents .footer-content .company-information .campany-dial {
          gap: 0 clamp(0.5rem, calc(0.32rem + 0.89vw), 0.75rem); } }
      footer .footer-contents .footer-content .company-information .campany-dial a {
        color: black;
        pointer-events: none; }
        @media only screen and (max-width: 767px) {
          footer .footer-contents .footer-content .company-information .campany-dial a {
            pointer-events: auto; } }
      footer .footer-contents .footer-content .company-information .campany-dial .phone:before {
        content: "TEL."; }
      footer .footer-contents .footer-content .company-information .campany-dial .phone:after {
        content: "(代表)"; }
      footer .footer-contents .footer-content .company-information .campany-dial .facsimile:before {
        content: "FAX."; }
      footer .footer-contents .footer-content .company-information .campany-profile {
        font-size: 1rem;
        font-weight: 400;
        margin-top: 1rem;
        flex-wrap: wrap; }
    footer .footer-contents .footer-content .headline {
      font-size: 1.25rem;
      font-weight: 200;
      border-bottom: 1px solid #999999; }
    footer .footer-contents .footer-content ul {
      margin: 0;
      padding: 0;
      list-style: none;
      font-size: .9rem;
      font-family: "Noto Serif";
      font-weight: 200; }
      footer .footer-contents .footer-content ul li {
        display: flex; }
        footer .footer-contents .footer-content ul li:before {
          content: "－"; }
  footer .copyright {
    max-width: 1200px;
    font-family: "Noto Sans";
    font-weight: 200;
    font-size: .85rem; }
    @media only screen and (max-width: 767px) {
      footer .copyright {
        text-align: center; } }
    @media only screen and (min-width: 768px) {
      footer .copyright {
        margin: 2rem auto 0; } }
    @media only screen and (max-width: 1200px) {
      footer .copyright {
        margin: clamp(1.5rem, calc(0.75rem + 1.56vw), 2rem) auto 0; } }
    @media only screen and (max-width: 767px) {
      footer .copyright {
        margin: clamp(1rem, calc(0.64rem + 1.79vw), 1.5rem) auto 0; } }

main {
  max-width: 1200px;
  overflow: visible; }
  @media only screen and (min-width: 768px) {
    main {
      margin: 0 auto 2rem; } }
  @media only screen and (max-width: 1200px) {
    main {
      margin: 0 auto clamp(1.5rem, calc(0.75rem + 1.56vw), 2rem); } }
  @media only screen and (max-width: 767px) {
    main {
      margin: 0 auto clamp(1rem, calc(0.64rem + 1.79vw), 1.5rem); } }
  @media only screen and (min-width: 768px) {
    main {
      padding: 0 1rem; } }
  @media only screen and (max-width: 1200px) {
    main {
      padding: 0 clamp(0.75rem, calc(0.38rem + 0.78vw), 1rem); } }
  @media only screen and (max-width: 767px) {
    main {
      padding: 0 clamp(0.5rem, calc(0.32rem + 0.89vw), 0.75rem); } }

@media only screen and (min-width: 768px) {
  footer {
    padding: 2rem 1rem 1rem; } }

@media only screen and (max-width: 1200px) {
  footer {
    padding: clamp(1.5rem, calc(0.75rem + 1.56vw), 2rem) clamp(0.75rem, calc(0.38rem + 0.78vw), 1rem) 1rem; } }

@media only screen and (max-width: 767px) {
  footer {
    padding: clamp(1rem, calc(0.64rem + 1.79vw), 1.5rem) clamp(0.5rem, calc(0.32rem + 0.89vw), 0.75rem) 1rem; } }

#home .exception-home {
  display: none; }

#home main {
  max-width: unset; }

.gallery {
  flex-basis: auto; }
