@charset "UTF-8";
html { font-size: 62.5%; }

body { color: #4d4d4d; font-family: "Noto Sans JP", sans-serif; font-optical-sizing: auto; font-style: normal; font-weight: 400; background-color: #FFFFFF; -webkit-text-size-adjust: 100%; -moz-text-size-adjust: 100%; -ms-text-size-adjust: 100%; -o-text-size-adjust: 100%; text-size-adjust: 100%; -webkit-font-smoothing: subpixel-antialiased; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; font-feature-settings: "palt"; letter-spacing: 0.1em; }

@media screen and (max-width: 768px) { .spHide { display: none !important; }
  main p { font-size: calc( ( 100vw * 16) / 375); line-height: calc( 32 / 16); text-align: justify; } }
@media screen and (min-width: 769px) { .pcHide { display: none !important; }
  a img:hover { filter: brightness(1.1); }
  main p { font-size: 1.6rem; line-height: calc( 32 / 16); text-align: justify; } }
.en { font-family: helvetica-neue-lt-pro, sans-serif; font-weight: 100; font-style: normal; }

.en_h { font-family: sui-generis, sans-serif; }

body.top nav li.goback { display: none; }
body.under .menu-btn { display: none; }
body.under nav li:not(.goback) { display: none; }

header { position: fixed; top: 0; width: 100%; background-color: rgba(255, 255, 255, 0.8); z-index: 1; }
@media screen and (max-width: 768px) { header { padding-top: calc( 30 / 375 * 100vw); padding-right: calc( 30 / 375 * 100vw); padding-bottom: calc( 30 / 375 * 100vw); padding-left: calc( 30 / 375 * 100vw); }
  header h1 { width: calc( 120 / 375 * 100vw); margin: 0; }
  header .menu-btn { width: calc( 32 / 375 * 100vw); height: calc( 20 / 375 * 100vw); position: absolute; cursor: pointer; top: calc( 40 / 375 * 100vw); right: calc( 30 / 375 * 100vw); bottom: calc( 30 / 375 * 100vw); z-index: 999; }
  header .menu-btn span { display: block; height: calc( 2 / 375 * 100vw); width: 100%; background: #008aeb; position: absolute; left: 0; transition: 0.3s; }
  header .menu-btn span:first-child { top: 0; }
  header .menu-btn span:last-child { bottom: 0; }
  header .menu-btn.btn-open span:first-child { transform: rotate(45deg); top: 9px; top: calc( 9 / 375 * 100vw); }
  header .menu-btn.btn-open span:last-child { transform: rotate(-45deg); bottom: 9px; bottom: calc( 9 / 375 * 100vw); }
  header nav { display: none; }
  header .btn-open + nav { display: block; width: 100%; height: 100vh; position: absolute; top: 0; left: 0; background-color: #f0f0f0; z-index: 1; overflow-y: auto; }
  header .btn-open + nav ul { margin-top: calc( 107 / 375 * 100vw); padding-right: calc( 24 / 375 * 100vw); padding-left: calc( 24 / 375 * 100vw); }
  header .btn-open + nav ul li { border-top: 1px solid #FFFFFF; }
  header .btn-open + nav ul li:last-of-type { border-bottom: 1px solid #FFFFFF; }
  header .btn-open + nav ul li a { display: block; font-size: calc((100vw * 18) / 375); line-height: 1; padding-top: calc( 25 / 375 * 100vw); padding-right: calc( 15 / 375 * 100vw); padding-bottom: calc( 25 / 375 * 100vw); padding-left: calc( 15 / 375 * 100vw); color: #008aeb; } }
@media screen and (min-width: 769px) { header { display: flex; justify-content: space-between; align-items: center; height: 100px; padding: 0 60px; overflow: hidden; }
  header h1 { width: 120px; }
  header nav { font-size: 1.6rem; }
  header nav ul { display: flex; }
  header nav ul li { position: relative; }
  header nav ul li:hover:before { position: absolute; display: block; content: ""; width: 100%; height: 2px; bottom: -8px; background-color: #008aeb; }
  header nav ul li a { color: #008aeb; }
  header nav ul li + li { margin-left: min(45px, 4vw); } }

@media screen and (max-width: 768px) { main { width: calc( 315 / 375 * 100vw); margin: 0 auto; }
  main .linkTxt { font-family: sui-generis, sans-serif; margin-top: calc( 20 / 375 * 100vw); text-align: center; } }
@media screen and (min-width: 769px) { main { max-width: 960px; margin: 0 auto; }
  main .linkTxt { font-family: sui-generis, sans-serif; margin-top: 40px; text-align: left; } }
main .tab-content { display: none; opacity: 0; transition: opacity 2.4s ease; }
main .tab-content.active { display: flex; opacity: 1; }
main .tab-content.hide { opacity: 0; transition: opacity 0s; }
main .modal { display: none; position: fixed; z-index: 1000; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.4); }
@media screen and (max-width: 768px) { main .modal-content { background-color: #f0f0f0; margin: 0 auto; padding-top: calc( 80 / 375 * 100vw); padding-right: calc( 20 / 375 * 100vw); padding-bottom: calc( 20 / 375 * 100vw); padding-left: calc( 20 / 375 * 100vw); width: 100%; height: 100%; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3); position: absolute; top: 0; right: 0; bottom: 0; left: 0; overflow: auto; }
  main .modal-content h3 { font-size: calc((100vw * 18) / 375); font-weight: 400; }
  main .modal-content .content-img { margin-top: calc( 20 / 375 * 100vw); }
  main .modal-content .content-img img { width: 100%; }
  main .modal-content .content-txt { margin-top: calc( 20 / 375 * 100vw); font-size: calc((100vw * 14) / 375); }
  main .modal-content time { position: absolute; top: calc( 45 / 375 * 100vw); left: calc( 20 / 375 * 100vw); font-size: calc((100vw * 12) / 375); color: #808080; }
  main .modal-content .pagenav { display: flex; justify-content: center; column-gap: calc( 20 / 375 * 100vw); margin-top: calc( 50 / 375 * 100vw); }
  main .modal-content .pagenav .prev, main .modal-content .pagenav .next { border: none; }
  main .modal-content .pagenav .prev::before, main .modal-content .pagenav .next::before { content: url("../images/arw.svg"); display: block; width: calc( 44 / 375 * 100vw); }
  main .modal-content .pagenav .prev { text-align: left; }
  main .modal-content .pagenav .prev::before { transform: scaleX(-1); }
  main .modal-content .pagenav .next { text-align: right; }
  main .modal-content .pagenav .infotxt { font-family: sui-generis, sans-serif; font-size: calc((100vw * 12) / 375); padding-bottom: calc( 15 / 375 * 100vw); } }
@media screen and (min-width: 769px) { main .modal-content { background-color: #f0f0f0; margin: auto; padding: 30px; width: 100%; max-width: 960px; height: fit-content; max-height: 80vh; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3); position: absolute; top: 0; right: 0; bottom: 0; left: 0; overflow: auto; display: grid; grid-template-columns: 65% 32%; grid-template-rows: 90px min-content min-content min-content; grid-template-areas: "p2 p4" "p2 p1" "p3 p3" "p5 p5"; }
  main .modal-content h3 { grid-area: p1; align-self: start; font-size: 1.8rem; font-weight: 400; }
  main .modal-content .content-img { grid-area: p2; align-self: start; padding-right: 3%; padding-bottom: 3%; }
  main .modal-content .content-img img { width: 100%; }
  main .modal-content .content-txt { grid-area: p3; font-size: 1.4rem; }
  main .modal-content time { grid-area: p4; font-size: 1.2rem; color: #808080; position: absolute; top: 50px; }
  main .modal-content .pagenav { grid-area: p5; display: flex; justify-content: center; align-items: center; column-gap: 20px; margin-top: 50px; }
  main .modal-content .pagenav .prev, main .modal-content .pagenav .next { border: none; }
  main .modal-content .pagenav .prev::before, main .modal-content .pagenav .next::before { content: url("../images/arw.svg"); display: block; width: 44px; }
  main .modal-content .pagenav .prev { text-align: left; }
  main .modal-content .pagenav .prev::before { transform: scaleX(-1); }
  main .modal-content .pagenav .next { text-align: right; }
  main .modal-content .pagenav .infotxt { font-family: sui-generis, sans-serif; font-size: 1.2rem; padding-bottom: 15px; } }
main .close { color: #008aeb; position: fixed; top: calc( 20 / 375 * 100vw); right: calc( 20 / 375 * 100vw); font-size: calc((100vw * 32) / 375); cursor: pointer; }
@media screen and (min-width: 769px) { main .close { position: absolute; font-size: 36px; top: 25px; right: 40px; } }
main .close:hover { color: #000; }

@media screen and (max-width: 768px) { footer { padding-top: calc( 80 / 375 * 100vw); padding-bottom: calc( 30 / 375 * 100vw); }
  footer > div:nth-child(1) div { width: calc( 180 / 375 * 100vw); margin: 0 auto; }
  footer > div:nth-child(1) nav { display: none; }
  footer > div:nth-child(2) { margin-top: calc( 40 / 375 * 100vw); }
  footer > div:nth-child(2) address { font-size: calc( ( 100vw * 16) / 375); text-align: center; color: #333333; }
  footer > div:nth-child(2) address .linkTxt { font-family: sui-generis, sans-serif; margin-top: calc( 20 / 375 * 100vw); text-align: center; color: #008aeb; }
  footer > div:nth-child(2) ul.bnr { margin: 0 auto; margin-top: calc( 65 / 375 * 100vw); width: calc( 315 / 375 * 100vw); display: flex; justify-content: space-between; align-items: flex-end; }
  footer > div:nth-child(2) ul.bnr li:nth-child(1) { width: calc( 79 / 375 * 100vw); }
  footer > div:nth-child(2) ul.bnr li:nth-child(2) { width: calc( 111 / 375 * 100vw); }
  footer > div:nth-child(2) ul.bnr li:nth-child(3) { width: calc( 77 / 375 * 100vw); }
  footer > div:nth-child(2) ul.bnr li a { display: block; }
  footer small { margin-top: calc( 70 / 375 * 100vw); font-size: calc((100vw * 12) / 375); text-align: center; display: block; } }
@media screen and (min-width: 769px) { footer { margin-top: 75px; }
  footer > div { max-width: 960px; padding: 0 30px; margin: 0 auto; }
  footer > div:nth-child(1) { display: flex; justify-content: space-between; align-items: center; }
  footer > div:nth-child(1) div { width: 180px; }
  footer > div:nth-child(1) nav { font-size: 1.6rem; }
  footer > div:nth-child(1) nav ul { display: flex; }
  footer > div:nth-child(1) nav ul li { position: relative; }
  footer > div:nth-child(1) nav ul li:hover:before { position: absolute; display: block; content: ""; width: 100%; height: 2px; bottom: -8px; background-color: #666666; }
  footer > div:nth-child(1) nav ul li a { color: #666666; }
  footer > div:nth-child(1) nav ul li + li { margin-left: min(45px, 4vw); }
  footer > div:nth-child(2) { margin-top: 40px; display: flex; justify-content: space-between; }
  footer > div:nth-child(2) address { font-size: 1.6rem; line-height: calc( 32 / 16); }
  footer > div:nth-child(2) address .linkTxt { font-family: sui-generis, sans-serif; margin-top: 15px; color: #008aeb; }
  footer > div:nth-child(2) ul.bnr { display: flex; justify-content: space-between; align-items: flex-end; column-gap: min(45px, 4vw); padding-bottom: 40px; }
  footer > div:nth-child(2) ul.bnr li:nth-child(1) { width: 103px; }
  footer > div:nth-child(2) ul.bnr li:nth-child(2) { width: 147px; }
  footer > div:nth-child(2) ul.bnr li:nth-child(3) { width: 97px; }
  footer > div:nth-child(2) ul.bnr li a { display: block; }
  footer small { margin-top: 60px; display: block; background-color: #f2f2f2; font-size: 1.2rem; color: #262626; }
  footer small span { display: block; text-align: right; max-width: 960px; margin: 0 auto; padding: 1em 0; } }

@media screen and (max-width: 768px) { body.top main .mv { position: relative; width: 100vw; height: 100vh; overflow: hidden; margin-right: calc( -30 / 375 * 100vw); margin-left: calc( -30 / 375 * 100vw); }
  body.top main .mv video { position: absolute; top: 50%; left: 50%; min-width: 100%; min-height: 100%; transform: translate(-50%, -50%); object-fit: cover; }
  body.top main .catch { margin-top: calc( 30 / 375 * 100vw); color: #008aeb; }
  body.top main .catch .en { font-size: calc((100vw * 24) / 375); line-height: calc(36 / 24); }
  body.top main .catch .txt { margin-top: calc( 50 / 375 * 100vw); }
  body.top main section { margin-top: calc( 60 / 375 * 100vw); color: #008aeb; }
  body.top main section h2 { font-family: sui-generis, sans-serif; font-weight: 400; font-size: calc( ( 100vw * 30) / 375); line-height: 1; }
  body.top main section h2 span { font-family: "Noto Sans JP", sans-serif; font-weight: 600; margin-top: 1em; display: block; font-size: calc( ( 100vw * 12) / 375); line-height: 1; }
  body.top main section.weare p { margin-top: 1.2em; }
  body.top main section.weare > div > div { width: calc( 270 / 375 * 100vw); margin: 0 auto; margin-top: calc( 60 / 375 * 100vw); }
  body.top main section.works ul.tab-menu { display: grid; grid-template-columns: repeat(3, auto); gap: 0.5em 0; font-size: calc((100vw * 12) / 375); margin-top: 1em; }
  body.top main section.works ul.tab-menu li:nth-child(1) { grid-column: 1; grid-row: 1; }
  body.top main section.works ul.tab-menu li:nth-child(2) { grid-column: 2; grid-row: 1; }
  body.top main section.works ul.tab-menu li:nth-child(3) { grid-column: 3; grid-row: 1; }
  body.top main section.works ul.tab-menu li:nth-child(4) { grid-column: 2; grid-row: 2; }
  body.top main section.works ul.tab-menu li:nth-child(5) { grid-column: 3; grid-row: 2; }
  body.top main section.works ul.tab-menu li a::before { content: "□"; display: inline-block; }
  body.top main section.works ul.tab-menu li a.active::before { content: "■"; }
  body.top main section.works ul.modalWrapper { margin-top: calc( 30 / 375 * 100vw); flex-wrap: wrap; justify-content: space-between; row-gap: 3vw; }
  body.top main section.works ul.modalWrapper li { width: calc(150 / 315 * 100%); }
  body.top main section.works ul.modalWrapper li a span { display: block; aspect-ratio: 3 / 2; width: 100%; overflow: hidden; }
  body.top main section.works ul.modalWrapper li a span img { width: 100%; height: 100%; object-fit: cover; }
  body.top main section.works ul.modalWrapper li a p { text-align: center; font-size: calc((100vw * 14) / 375); }
  body.top main section.profile .profile01 { display: flex; justify-content: space-between; margin-top: calc( 25 / 375 * 100vw); }
  body.top main section.profile .profile01 div:nth-child(1) { flex: 1; }
  body.top main section.profile .profile01 div:nth-child(1) p:nth-child(1) { font-size: calc((100vw * 14) / 375); line-height: calc(23 / 14); }
  body.top main section.profile .profile01 div:nth-child(1) p:nth-child(2) { font-size: calc((100vw * 21) / 375); line-height: 1; margin-top: calc( 18 / 375 * 100vw); }
  body.top main section.profile .profile01 div:nth-child(1) p:nth-child(2) span { display: block; font-family: sui-generis, sans-serif; font-size: calc((100vw * 10) / 375); margin-top: calc( 10 / 375 * 100vw); }
  body.top main section.profile .profile01 div:nth-child(2) { width: calc( 120 / 375 * 100vw); margin-top: calc( 5 / 375 * 100vw); }
  body.top main section.profile .profile02 { margin-top: calc( 30 / 375 * 100vw); }
  body.top main section.profile .profile02 p { letter-spacing: 0.1em; }
  body.top main section.profile .profile03 { margin-top: calc( 30 / 375 * 100vw); }
  body.top main section.profile .profile03 ul { display: flex; flex-wrap: wrap; row-gap: 0.5em; font-size: calc( ( 100vw * 16) / 375); }
  body.top main section.profile .profile03 ul li:nth-child(2n+1) { width: 3.5em; }
  body.top main section.profile .profile03 ul li:nth-child(2n) { width: calc(100% - 3.5em); }
  body.top main section.topics ul { margin-top: calc( 20 / 375 * 100vw); border-top: 1px solid #e4e4e4; border-bottom: 1px solid #e4e4e4; }
  body.top main section.topics ul li { padding-top: calc( 20 / 375 * 100vw); padding-bottom: calc( 20 / 375 * 100vw); }
  body.top main section.topics ul li + li { border-top: 1px solid #e4e4e4; }
  body.top main section.topics ul li a { font-size: calc( ( 100vw * 16) / 375); }
  body.top main section.topics ul li .meta { display: flex; align-items: center; margin-top: calc( 10 / 375 * 100vw); }
  body.top main section.topics ul li .meta time { color: #808080; font-size: calc((100vw * 12) / 375); }
  body.top main section.topics ul li .meta .cat { font-family: sui-generis, sans-serif; font-size: calc((100vw * 11) / 375); color: #FFFFFF; padding: 0.3em 1em; line-height: 1; border-radius: 0.3em; margin-left: 1em; }
  body.top main section.topics ul li .meta .cat.blog { background-color: #84a2b2; }
  body.top main section.topics ul li .meta .cat.news { background-color: #979797; }
  body.top main section.contact .wpcf7 { margin-top: calc( 30 / 375 * 100vw); margin-right: calc( -30 / 375 * 100vw); margin-left: calc( -30 / 375 * 100vw); padding-bottom: calc( 60 / 375 * 100vw); background-color: #f0f0f0; }
  body.top main section.contact .wpcf7 .cf7_table { width: calc( 315 / 375 * 100vw); margin: 0 auto; color: #4d4d4d; font-size: 1.6rem; }
  body.top main section.contact .wpcf7 .cf7_table tr th, body.top main section.contact .wpcf7 .cf7_table tr td { display: block; }
  body.top main section.contact .wpcf7 .cf7_table tr th { font-size: calc( ( 100vw * 16) / 375); color: #008aeb; font-weight: 500; margin-top: calc( 30 / 375 * 100vw); }
  body.top main section.contact .wpcf7 .cf7_table tr th span:not(.title-contactform7) { color: #4d4d4d; font-size: calc((100vw * 14) / 375); padding-left: 1em; }
  body.top main section.contact .wpcf7 .cf7_table tr td { margin-top: calc( 15 / 375 * 100vw); }
  body.top main section.contact .wpcf7 .cf7_table .wpcf7-list-item { display: block; margin: 0; }
  body.top main section.contact .wpcf7 .cf7_table input.wpcf7-text, body.top main section.contact .wpcf7 .cf7_table textarea { width: 100%; max-width: 100%; }
  body.top main section.contact .wpcf7 .cf7_table input, body.top main section.contact .wpcf7 .cf7_table textarea { border: none; padding: 0.5em; border-radius: 0.2em; }
  body.top main section.contact .wpcf7 .cf7_table input::placeholder, body.top main section.contact .wpcf7 .cf7_table textarea::placeholder { color: #cacaca; }
  body.top main section.contact .wpcf7 .cf7_table .onamae td { display: flex; justify-content: space-between; }
  body.top main section.contact .wpcf7 .cf7_table .onamae td span:not(.wpcf7-not-valid-tip) { width: 48%; }
  body.top main section.contact .wpcf7 .cf7_table .wpcf7-not-valid-tip { margin-top: 0.5em; }
  body.top main section.contact .wpcf7 .cf7_table .wpcf7-radio span + span { margin-top: calc( 5 / 375 * 100vw); }
  body.top main section.contact .wpcf7 .wpcf7-response-output { font-size: calc((100vw * 12) / 375); border: none; }
  body.top main section.contact .wpcf7 #wpcf7cpcnf { width: calc( 315 / 375 * 100vw); margin: 0 auto; padding-top: calc( 30 / 375 * 100vw); position: relative; }
  body.top main section.contact .wpcf7 #wpcf7cpcnf tr + tr th { margin-top: calc( 20 / 375 * 100vw); }
  body.top main section.contact .wpcf7 #wpcf7cpcnf th, body.top main section.contact .wpcf7 #wpcf7cpcnf td { display: block; }
  body.top main section.contact .wpcf7 #wpcf7cpcnf td { color: #4d4d4d; }
  body.top main section.contact .wpcf7 .wpcf7cp-form-hide { display: none; }
  body.top main section.contact .wpcf7 .cf7_btn, body.top main section.contact .wpcf7 .wpcf7cp-btns { margin-top: calc( 40 / 375 * 100vw); text-align: center; font-size: calc( ( 100vw * 16) / 375); }
  body.top main section.contact .wpcf7 .cf7_btn input, body.top main section.contact .wpcf7 .cf7_btn button, body.top main section.contact .wpcf7 .wpcf7cp-btns input, body.top main section.contact .wpcf7 .wpcf7cp-btns button { color: #FFFFFF; background-color: #008aeb; border-radius: 0.4em; min-width: 14em; padding: 0.2em 1em; }
  body.top main section.contact .wpcf7 .cf7_btn button, body.top main section.contact .wpcf7 .wpcf7cp-btns button { min-width: 4em; }
  body.top main section.contact .wpcf7 .cf7_btn button.wpcf7cp-cfm-edit-btn, body.top main section.contact .wpcf7 .wpcf7cp-btns button.wpcf7cp-cfm-edit-btn { color: #4d4d4d; background-color: #f0f0f0; }
  body.top main section.contact .wpcf7 .cf7_btn .wpcf7-spinner, body.top main section.contact .wpcf7 .wpcf7cp-btns .wpcf7-spinner { display: none; }
  body.under main { padding-top: calc( 40 / 375 * 100vw); }
  body.under main section { margin-top: calc( 60 / 375 * 100vw); color: #008aeb; }
  body.under main section h2 { font-family: sui-generis, sans-serif; font-weight: 400; font-size: calc( ( 100vw * 30) / 375); line-height: 1; }
  body.under main section h2 span { font-family: "Noto Sans JP", sans-serif; font-weight: 600; margin-top: 1em; display: block; font-size: calc( ( 100vw * 12) / 375); line-height: 1; }
  body.under main section.topics ul { margin-top: calc( 20 / 375 * 100vw); border-top: 1px solid #e4e4e4; border-bottom: 1px solid #e4e4e4; }
  body.under main section.topics ul li { padding-top: calc( 20 / 375 * 100vw); padding-bottom: calc( 20 / 375 * 100vw); }
  body.under main section.topics ul li + li { border-top: 1px solid #e4e4e4; }
  body.under main section.topics ul li a { font-size: calc( ( 100vw * 16) / 375); }
  body.under main section.topics ul li .meta { display: flex; align-items: center; margin-top: calc( 10 / 375 * 100vw); }
  body.under main section.topics ul li .meta time { color: #808080; font-size: calc((100vw * 12) / 375); }
  body.under main section.topics ul li .meta .cat { font-family: sui-generis, sans-serif; font-size: calc((100vw * 11) / 375); color: #FFFFFF; padding: 0.3em 1em; line-height: 1; border-radius: 0.3em; margin-left: 1em; }
  body.under main section.topics ul li .meta .cat.blog { background-color: #84a2b2; }
  body.under main section.topics ul li .meta .cat.news { background-color: #979797; }
  body.under main section.topics .pagination { display: flex; justify-content: center; column-gap: 1em; font-size: calc((100vw * 11) / 375); margin-top: calc( 20 / 375 * 100vw); }
  body.under main section.topics .pagination span, body.under main section.topics .pagination a.page-numbers { border: 1px solid #008aeb; padding: 0.5em 0.8em; }
  body.under main section.topics .pagination .page-numbers { display: none; }
  body.under main section.topics .pagination a.page-numbers.next, body.under main section.topics .pagination a.page-numbers.prev { border: none; display: block; }
  body.under main section.topics .pagination span.current { display: block; background-color: #008aeb; color: #FFFFFF; }
  body.under main section.topics article { margin-top: calc( 20 / 375 * 100vw); }
  body.under main section.topics article div.tit { border-top: 1px solid #e4e4e4; border-bottom: 1px solid #e4e4e4; padding-top: calc( 20 / 375 * 100vw); padding-bottom: calc( 20 / 375 * 100vw); }
  body.under main section.topics article div.tit h3 { font-size: calc( ( 100vw * 16) / 375); font-weight: 500; }
  body.under main section.topics article div.tit .meta { display: flex; align-items: center; margin-top: calc( 10 / 375 * 100vw); }
  body.under main section.topics article div.tit .meta time { color: #808080; font-size: calc((100vw * 12) / 375); }
  body.under main section.topics article div.tit .meta .cat { font-family: sui-generis, sans-serif; font-size: calc((100vw * 11) / 375); color: #FFFFFF; padding: 0.3em 1em; line-height: 1; border-radius: 0.3em; margin-left: 1em; }
  body.under main section.topics article div.tit .meta .cat.blog { background-color: #84a2b2; }
  body.under main section.topics article div.tit .meta .cat.news { background-color: #979797; }
  body.under main section.topics article h4, body.under main section.topics article p, body.under main section.topics article div { margin-top: calc( 30 / 375 * 100vw); }
  body.under main section.topics article h4 { font-size: calc( ( 100vw * 16) / 375); border-left: 2px solid #008aeb; background-color: #eaeff2; padding: 1em; font-weight: 500; }
  body.under main section.topics article p { font-size: calc((100vw * 14) / 375); }
  body.under main section.topics article p.btn { text-align: center; }
  body.under main section.topics article p.btn a { display: inline-block; font-size: calc( ( 100vw * 16) / 375); color: #FFFFFF; background-color: #008aeb; border-radius: 0.4em; min-width: 14em; padding: 0.2em 1em; }
  body.under main section.topics article div.youtube { aspect-ratio: 16 / 9; }
  body.under main section.topics article div.youtube iframe { width: 100%; height: 100%; }
  body.under main section.topics article div.map { aspect-ratio: 1; }
  body.under main section.topics article div.map iframe { width: 100%; height: 100%; }
  body.under main section.error404 { text-align: center; }
  body.under main section.error404 p { margin-top: calc( 20 / 375 * 100vw); }
  body.under main section.error404 p.btn { margin-top: calc( 30 / 375 * 100vw); }
  body.under main section.error404 p.btn a { display: inline-block; font-size: calc( ( 100vw * 16) / 375); color: #FFFFFF; background-color: #008aeb; border-radius: 0.4em; min-width: 12em; padding: 0.5em 1em; text-align: center; } }
@media screen and (min-width: 769px) { body.top main { padding-bottom: 60px; border-bottom: 1px solid #cccccc; }
  body.top main .mv { aspect-ratio: 16 / 9; background-color: #BBBBBB; margin-right: min((100vw - 960px) / 2 * -1, 0px); margin-left: min((100vw - 960px) / 2 * -1, 0px); }
  body.top main .catch { margin-top: 40px; color: #008aeb; }
  body.top main .catch .en { font-size: 2.4rem; line-height: calc(36 / 24); }
  body.top main .catch .txt { margin-top: 30px; font-weight: 600; }
  body.top main section { max-width: 760px; margin: 80px auto 0; color: #008aeb; }
  body.top main section h2 { font-family: sui-generis, sans-serif; font-weight: 400; font-size: 3rem; line-height: 1; }
  body.top main section h2 span { font-family: "Noto Sans JP", sans-serif; font-weight: 600; margin-top: 1em; display: block; font-size: 1.2rem; line-height: 1; }
  body.top main section.weare > div { display: flex; }
  body.top main section.weare > div p { margin-top: 1.2em; width: 380px; }
  body.top main section.weare > div > div { flex: 1; padding-right: 8%; padding-left: 8%; }
  body.top main section.works ul.tab-menu { display: grid; grid-template-columns: repeat(3, auto); gap: 0.5em 0; font-size: 1.2rem; margin-top: 1em; max-width: 340px; }
  body.top main section.works ul.tab-menu li:nth-child(1) { grid-column: 1; grid-row: 1; }
  body.top main section.works ul.tab-menu li:nth-child(2) { grid-column: 2; grid-row: 1; }
  body.top main section.works ul.tab-menu li:nth-child(3) { grid-column: 3; grid-row: 1; }
  body.top main section.works ul.tab-menu li:nth-child(4) { grid-column: 2; grid-row: 2; }
  body.top main section.works ul.tab-menu li:nth-child(5) { grid-column: 3; grid-row: 2; }
  body.top main section.works ul.tab-menu li a::before { content: "□"; display: inline-block; }
  body.top main section.works ul.tab-menu li a.active::before { content: "■"; }
  body.top main section.works ul.modalWrapper { margin-top: 30px; flex-wrap: wrap; justify-content: flex-start; column-gap: calc(40px / 3); row-gap: 10px; }
  body.top main section.works ul.modalWrapper li { width: calc(180 / 760 * 100%); }
  body.top main section.works ul.modalWrapper li a span { display: block; aspect-ratio: 3 / 2; width: 100%; overflow: hidden; }
  body.top main section.works ul.modalWrapper li a span img { width: 100%; height: 100%; object-fit: cover; }
  body.top main section.works ul.modalWrapper li a p { text-align: center; font-size: 1.4rem; }
  body.top main section.profile > div { margin-top: 25px; display: grid; grid-template-columns: 50% 42%; grid-template-rows: auto auto; gap: 8%; grid-template-areas: "p2 p1" "p2 p3"; }
  body.top main section.profile > div .profile01 { grid-area: p1; display: flex; justify-content: space-between; }
  body.top main section.profile > div .profile01 div:nth-child(1) { flex: 1; }
  body.top main section.profile > div .profile01 div:nth-child(1) p:nth-child(1) { font-size: 1.4rem; line-height: calc(23 / 14); }
  body.top main section.profile > div .profile01 div:nth-child(1) p:nth-child(2) { font-size: 2.1rem; line-height: 1; margin-top: 15px; }
  body.top main section.profile > div .profile01 div:nth-child(1) p:nth-child(2) span { display: block; font-family: sui-generis, sans-serif; font-size: 1rem; margin-top: 10px; }
  body.top main section.profile > div .profile01 div:nth-child(2) { width: 120px; margin-top: 5px; }
  body.top main section.profile > div .profile02 { grid-area: p2; }
  body.top main section.profile > div .profile03 { grid-area: p3; }
  body.top main section.profile > div .profile03 ul { display: flex; flex-wrap: wrap; row-gap: 0.5em; font-size: 1.6rem; }
  body.top main section.profile > div .profile03 ul li:nth-child(2n+1) { width: 3.5em; }
  body.top main section.profile > div .profile03 ul li:nth-child(2n) { width: calc(100% - 3.5em); }
  body.top main section.topics ul { margin-top: 40px; border-top: 1px solid #e4e4e4; border-bottom: 1px solid #e4e4e4; }
  body.top main section.topics ul li { padding-top: 25px; padding-bottom: 25px; }
  body.top main section.topics ul li + li { border-top: 1px solid #e4e4e4; }
  body.top main section.topics ul li a { font-size: 1.6rem; }
  body.top main section.topics ul li .meta { display: flex; align-items: center; margin-top: 10px; }
  body.top main section.topics ul li .meta time { color: #808080; font-size: 1.2rem; }
  body.top main section.topics ul li .meta .cat { font-family: sui-generis, sans-serif; font-size: 1.1rem; color: #FFFFFF; padding: 0.3em 1em; line-height: 1; border-radius: 0.3em; margin-left: 1em; }
  body.top main section.topics ul li .meta .cat.blog { background-color: #84a2b2; }
  body.top main section.topics ul li .meta .cat.news { background-color: #979797; }
  body.top main section.contact .wpcf7 { margin-top: 30px; padding-bottom: 60px; background-color: #f0f0f0; }
  body.top main section.contact .wpcf7::before { content: url("../images/contact_bk.svg"); position: absolute; top: 35px; right: 39px; width: 90px; }
  body.top main section.contact .wpcf7::after { content: ''; position: absolute; bottom: 0; right: 0; width: 0; height: 0; border-style: solid; border-width: 0 0 50px 50px; border-color: transparent transparent #cccccc transparent; z-index: 1; }
  body.top main section.contact .wpcf7 .cf7_table { width: calc(50% - 30px); min-width: 350px; margin: 0 0 0 30px; color: #4d4d4d; font-size: 1.6rem; }
  body.top main section.contact .wpcf7 .cf7_table tr th, body.top main section.contact .wpcf7 .cf7_table tr td { display: block; }
  body.top main section.contact .wpcf7 .cf7_table tr th { font-size: 1.6rem; color: #008aeb; font-weight: 500; margin-top: 30px; }
  body.top main section.contact .wpcf7 .cf7_table tr th span:not(.title-contactform7) { color: #4d4d4d; font-size: 1.4rem; padding-left: 1em; }
  body.top main section.contact .wpcf7 .cf7_table tr td { margin-top: 15px; }
  body.top main section.contact .wpcf7 .cf7_table .wpcf7-list-item { display: block; margin: 0; }
  body.top main section.contact .wpcf7 .cf7_table input.wpcf7-text, body.top main section.contact .wpcf7 .cf7_table textarea { width: 100%; max-width: 100%; }
  body.top main section.contact .wpcf7 .cf7_table input, body.top main section.contact .wpcf7 .cf7_table textarea { border: none; padding: 0.5em; border-radius: 0.2em; }
  body.top main section.contact .wpcf7 .cf7_table input::placeholder, body.top main section.contact .wpcf7 .cf7_table textarea::placeholder { color: #cacaca; }
  body.top main section.contact .wpcf7 .cf7_table .onamae td { display: flex; justify-content: space-between; }
  body.top main section.contact .wpcf7 .cf7_table .onamae td span:not(.wpcf7-not-valid-tip) { width: 48%; }
  body.top main section.contact .wpcf7 .cf7_table .wpcf7-not-valid-tip { margin-top: 0.5em; }
  body.top main section.contact .wpcf7 .cf7_table .wpcf7-radio span + span { margin-top: 5px; }
  body.top main section.contact .wpcf7 .wpcf7-response-output { font-size: 1.2rem; border: none; }
  body.top main section.contact .wpcf7 #wpcf7cpcnf { width: calc(50% - 30px); min-width: 350px; padding-top: 30px; margin-left: 30px; position: relative; }
  body.top main section.contact .wpcf7 #wpcf7cpcnf tr + tr th { margin-top: 20px; }
  body.top main section.contact .wpcf7 #wpcf7cpcnf th, body.top main section.contact .wpcf7 #wpcf7cpcnf td { display: block; }
  body.top main section.contact .wpcf7 #wpcf7cpcnf td { color: #4d4d4d; }
  body.top main section.contact .wpcf7 .wpcf7cp-form-hide { display: none; }
  body.top main section.contact .wpcf7 .cf7_btn, body.top main section.contact .wpcf7 .wpcf7cp-btns { width: calc(50% - 30px); min-width: 410px; margin-top: 40px; text-align: center; font-size: 1.6rem; }
  body.top main section.contact .wpcf7 .cf7_btn input, body.top main section.contact .wpcf7 .cf7_btn button, body.top main section.contact .wpcf7 .wpcf7cp-btns input, body.top main section.contact .wpcf7 .wpcf7cp-btns button { color: #FFFFFF; background-color: #008aeb; border-radius: 0.4em; min-width: 18em; padding: 0.2em 1em; }
  body.top main section.contact .wpcf7 .cf7_btn button, body.top main section.contact .wpcf7 .wpcf7cp-btns button { min-width: 4em; }
  body.top main section.contact .wpcf7 .cf7_btn button.wpcf7cp-cfm-edit-btn, body.top main section.contact .wpcf7 .wpcf7cp-btns button.wpcf7cp-cfm-edit-btn { color: #4d4d4d; background-color: #f0f0f0; }
  body.top main section.contact .wpcf7 .cf7_btn .wpcf7-spinner, body.top main section.contact .wpcf7 .wpcf7cp-btns .wpcf7-spinner { display: none; }
  body.under main section { max-width: 760px; margin: 120px auto 0; color: #008aeb; }
  body.under main section h2 { font-family: sui-generis, sans-serif; font-weight: 400; font-size: 3rem; line-height: 1; }
  body.under main section h2 span { font-family: "Noto Sans JP", sans-serif; font-weight: 600; margin-top: 1em; display: block; font-size: 1.2rem; line-height: 1; }
  body.under main section.topics ul { margin-top: 40px; border-top: 1px solid #e4e4e4; border-bottom: 1px solid #e4e4e4; }
  body.under main section.topics ul li { padding-top: 25px; padding-bottom: 25px; }
  body.under main section.topics ul li + li { border-top: 1px solid #e4e4e4; }
  body.under main section.topics ul li a { font-size: 1.6rem; }
  body.under main section.topics ul li .meta { display: flex; align-items: center; margin-top: 10px; }
  body.under main section.topics ul li .meta time { color: #808080; font-size: 1.2rem; }
  body.under main section.topics ul li .meta .cat { font-family: sui-generis, sans-serif; font-size: 1.1rem; color: #FFFFFF; padding: 0.3em 1em; line-height: 1; border-radius: 0.3em; margin-left: 1em; }
  body.under main section.topics ul li .meta .cat.blog { background-color: #84a2b2; }
  body.under main section.topics ul li .meta .cat.news { background-color: #979797; }
  body.under main section.topics .pagination { display: flex; justify-content: center; column-gap: 1em; font-size: 1.2rem; margin-top: 40px; }
  body.under main section.topics .pagination span, body.under main section.topics .pagination a.page-numbers { border: 1px solid #008aeb; padding: 0.5em 0.8em; }
  body.under main section.topics .pagination a.page-numbers.next, body.under main section.topics .pagination a.page-numbers.prev { border: none; }
  body.under main section.topics .pagination span.current { background-color: #008aeb; color: #FFFFFF; }
  body.under main section.topics article { margin-top: 40px; }
  body.under main section.topics article div.tit { border-top: 1px solid #e4e4e4; border-bottom: 1px solid #e4e4e4; padding-top: 25px; padding-bottom: 25px; }
  body.under main section.topics article div.tit h3 { font-size: 1.6rem; font-weight: 500; }
  body.under main section.topics article div.tit .meta { display: flex; align-items: center; margin-top: 10px; }
  body.under main section.topics article div.tit .meta time { color: #808080; font-size: 1.2rem; }
  body.under main section.topics article div.tit .meta .cat { font-family: sui-generis, sans-serif; font-size: 1.1rem; color: #FFFFFF; padding: 0.3em 1em; line-height: 1; border-radius: 0.3em; margin-left: 1em; }
  body.under main section.topics article div.tit .meta .cat.blog { background-color: #84a2b2; }
  body.under main section.topics article div.tit .meta .cat.news { background-color: #979797; }
  body.under main section.topics article h4, body.under main section.topics article p, body.under main section.topics article div { margin-top: 30px; }
  body.under main section.topics article h4 { font-size: 1.6rem; border-left: 2px solid #008aeb; background-color: #eaeff2; padding: 1em; font-weight: 500; }
  body.under main section.topics article p { font-size: 1.4rem; }
  body.under main section.topics article p.btn { text-align: center; }
  body.under main section.topics article p.btn a { display: inline-block; font-size: 1.6rem; color: #FFFFFF; background-color: #008aeb; border: 1px solid #008aeb; border-radius: 0.4em; min-width: 14em; padding: 0.2em 1em; }
  body.under main section.topics article p.btn a:hover { color: #008aeb; background-color: #FFFFFF; }
  body.under main section.topics article div.youtube { aspect-ratio: 16 / 9; }
  body.under main section.topics article div.youtube iframe { width: 100%; height: 100%; }
  body.under main section.topics article div.map { aspect-ratio: 3 / 2; }
  body.under main section.topics article div.map iframe { width: 100%; height: 100%; }
  body.under main section.error404 { text-align: center; }
  body.under main section.error404 p { margin-top: 20px; }
  body.under main section.error404 p.btn { margin-top: 40px; }
  body.under main section.error404 p.btn a { display: inline-block; font-size: 1.6rem; color: #FFFFFF; background-color: #008aeb; border: 1px solid #008aeb; border-radius: 0.4em; min-width: 12em; padding: 0.5em 1em; text-align: center; }
  body.under main section.error404 p.btn a:hover { color: #008aeb; background-color: #FFFFFF; } }
@media screen and (min-width: 769px) and (max-width: 960px) { body.top main .catch { padding-right: 20px; padding-left: 20px; } }

/*# sourceMappingURL=style.css.map */
