@import url("https://fonts.googleapis.com/css2?family=Shippori+Mincho:wght@400;500;600;700&display=swap");
:root {
 --ff_main: "Shippori Mincho", serif;
 --white: #ffffff;
 --black: #000000;
 --c_txt: #000000;
 --c_gy: #333333;
 --c_bl: #272377;
 --bdc: #d4d4d4;
 --fz_xs: 12px;
 --fz_sm: 14px;
 --fz_md: 16px;
 --fz_lg: 18px;
 --fz_xl: 20px;
 --lh_xs: 1.25;
 --lh_sm: 1.5;
 --lh_md: 1.75;
 --lh_lg: 2;
 --fw_r: 400;
 --fw_b: 900;
}
@media screen and (max-width: 1024px) {
 :root {
  --fz_xs: 10px;
  --fz_sm: 12px;
  --fz_md: 14px;
  --fz_lg: 16px;
  --fz_xl: 18px;
  --lh_xs: 1.2;
  --lh_sm: 1.4;
  --lh_md: 1.6;
  --lh_lg: 1.8;
 }
}

*,::before,::after {
 border-width: 0;
 border-style: solid;
 box-sizing: border-box;
}

html {
 line-height: 1.15;

 -webkit-text-size-adjust: 100%;
 -webkit-tap-highlight-color: transparent;
}

body {
 margin: 0;
}

img {
 max-width: 100%;
}

main {
 display: block;
}

p,table,blockquote,address,pre,iframe,form,figure,dl {
 margin: 0;
}

h1,h2,h3,h4,h5,h6 {
 margin: 0;
 font-weight: inherit;
 font-size: inherit;
}

ul,ol {
 margin: 0;
 padding: 0;
 list-style: none;
}

dt {
 font-weight: 700;
}

dd {
 margin-left: 0;
}

hr {
 clear: both;
 height: 0;
 overflow: visible;
 margin: 0;
 border-top-width: 1px;
 color: inherit;
 box-sizing: content-box;
}

pre {
 font-family: monospace, monospace;
 font-size: inherit;
}

address {
 font-style: inherit;
}

a {
 color: inherit;
 background-color: transparent;
 text-decoration: none;
}

abbr[title] {
 -webkit-text-decoration: underline dotted;
         text-decoration: underline dotted;
}

b,strong {
 font-weight: bolder;
}

code,kbd,samp {
 font-family: monospace, monospace;
 font-size: inherit;
}

small {
 font-size: 80%;
}

sub,sup {
 position: relative;
 line-height: 0;
 vertical-align: baseline;
 font-size: 75%;
}

sub {
 bottom: -0.25em;
}

sup {
 top: -0.5em;
}

svg,img,embed,object,iframe {
 vertical-align: bottom;
}

button,input,optgroup,select,textarea {
 vertical-align: middle;
 margin: 0;
 padding: 0;
 border-radius: 0;
 color: inherit;
 background: transparent;
 font: inherit;
 text-align: inherit;
 text-transform: inherit;
}

button,[type=button],[type=reset],[type=submit] {
 cursor: pointer;
}

button:disabled,[type=button]:disabled,[type=reset]:disabled,[type=submit]:disabled {
 cursor: default;
}

:-moz-focusring {
 outline: auto;
}

select:disabled {
 opacity: inherit;
}

option {
 padding: 0;
}

fieldset {
 min-width: 0;
 margin: 0;
 padding: 0;
}

legend {
 padding: 0;
}

progress {
 vertical-align: baseline;
}

textarea {
 overflow: auto;
}

[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button {
 height: auto;
}

[type=search] {
 outline-offset: -2px;
}

[type=search]::-webkit-search-decoration {
 -webkit-appearance: none;
}

::-webkit-file-upload-button {
 font: inherit;

 -webkit-appearance: button;
}

[type=number] {
 -moz-appearance: textfield;
 -webkit-appearance: textfield;
         appearance: textfield;
}

label[for] {
 cursor: pointer;
}

details {
 display: block;
}

summary {
 display: list-item;
}

[contenteditable]:focus {
 outline: auto;
}

table {
 border-color: inherit;
 border-collapse: collapse;
}

caption {
 text-align: left;
}

td,th {
 vertical-align: top;
 padding: 0;
}

th {
 font-weight: 700;
 text-align: left;
}

html:has([content=article]) .nav-icon {
 background: var(--white);
 transition: all 0s;
}

.pc {
 display: block;
}
@media screen and (max-width: 1024px) {
 .pc {
  display: none;
 }
}

.tb {
 display: none;
}
@media screen and (max-width: 1024px) {
 .tb {
  display: block;
 }
}

.tb-dn {
 display: block;
}
@media screen and (max-width: 1024px) {
 .tb-dn {
  display: none;
 }
}
@media screen and (max-width: 600px) {
 .tb-dn {
  display: block;
 }
}

.pt {
 display: block;
}
@media screen and (max-width: 600px) {
 .pt {
  display: none;
 }
}

.sp {
 display: none;
}
@media screen and (max-width: 600px) {
 .sp {
  display: block;
 }
}

.ov {
 transition: opacity 0.3s;
}
@media (hover) {
 .ov:hover {
  opacity: 0.7;
 }
}

html {
 width: 100%;
 height: 100%;
 color: var(--c_txt);
 font-family: var(--ff_main);
 font-weight: 400;
 font-feature-settings: "palt";
 box-sizing: border-box;

 -webkit-font-smoothing: antialiased;
 -moz-osx-font-smoothing: grayscale;
 -webkit-tap-highlight-color: transparent;
 -webkit-text-size-adjust: 100%;
}

body.is_spOverflow {
 height: 100%;
 overflow: hidden;
}

.kv_sub {
 height: 500px;
}
@media screen and (max-width: 1024px) {
 .kv_sub {
  display: grid;
  height: auto;
  align-items: flex-end;
  grid-template-columns: 20% 1fr;
  gap: 20px 5%;
 }
}
.kv_sub--logo {
 position: absolute;
 top: 40px;
 left: 3%;
 width: 135px;
}
@media screen and (max-width: 1024px) {
 .kv_sub--logo {
  top: 20px;
  width: 70px;
 }
}
.kv_sub--base {
 position: absolute;
 top: 0;
 right: 0;
 height: 100%;
}
@media screen and (max-width: 1024px) {
 .kv_sub--base {
  position: static;
 }
}
.kv_sub--base img {
 height: 100%;
}
@media screen and (max-width: 1024px) {
 .kv_sub--base img {
  height: auto;
 }
}
.kv_sub--deco {
 position: absolute;
 bottom: 0;
 left: 10%;
 z-index: 2;
}
@media screen and (max-width: 1024px) {
 .kv_sub--deco {
  position: static;
  padding-left: 5vw;
 }
}
.kv_sub >.inner {
 display: flex;
 position: relative;
 z-index: 2;
 width: 90%;
 max-width: 900px;
 height: 100%;
 align-items: center;
 margin: 0 auto;
}
@media screen and (max-width: 1024px) {
 .kv_sub >.inner {
  grid-column: span 2;
 }
}
.kv_sub >.inner h1 {
 line-height: 1.4;
 color: var(--c_bl);
 font-weight: 600;
 font-size: clamp(2.5rem, 0.537rem + 3.07vw, 3.125rem);
 letter-spacing: 0.08em;
}
@media screen and (min-width: 1025px) {
 .kv_sub >.inner h1 {
  writing-mode: vertical-rl;
  text-orientation: upright;
  font-feature-settings: normal;
 }
}
@media screen and (max-width: 1024px) {
 .kv_sub >.inner h1 {
  font-size: 32px;
 }
}

@media (hover) {
 .link_line:hover >span:after {
  left: 0;
  width: 100%;
 }
}
.link_line span {
 position: relative;
}
.link_line span:after {
 content: "";
 position: absolute;
 right: 0;
 bottom: -10px;
 width: 0%;
 height: 1px;
 background: var(--c_bl);
 transition: width 0.3s;
}

@media (hover) {
 .link_line-v:hover >span:after {
  top: 0;
  height: 100%;
 }
}
.link_line-v span {
 position: relative;
}
.link_line-v span:after {
 content: "";
 position: absolute;
 right: -7px;
 bottom: 0;
 width: 1px;
 height: 0;
 background: var(--c_bl);
 transition: height 0.3s;
}

.icon_btn_arw {
 transition: all 0.3s;
}
.icon_btn_arw .cls-1,.icon_btn_arw .cls-2 {
 transition: all 0.3s;

 fill: transparent;
 stroke: var(--c_bl);
 stroke-width: 1px;
}
.icon_btn_arw .cls-2 {
 fill-rule: evenodd;
}

.ft_contact {
 width: 70px;

 aspect-ratio: 1;
}
.ft_contact .cls-1 {
 transition: all 0.3s;

 stroke: var(--c_bl);
 fill: var(--c_bl);
}
.ft_contact.ft_contact_tel .cls-2 {
 transition: all 0.3s;

 fill: none;
 stroke: #ffffff;
 stroke-width: 1px;
 fill-rule: evenodd;
}
.ft_contact.ft_contact_mail .cls-2 {
 transition: all 0.3s;

 fill: #ffffff;
 fill-rule: evenodd;
}

@media (hover) {
 a:hover .icon_btn_arw {
  translate: 5px 0;
 }
 a:hover .icon_btn_arw .cls-1 {
  fill: var(--c_bl);
 }
 a:hover .icon_btn_arw .cls-2 {
  stroke: #ffffff;
 }
 a:hover .ft_contact .cls-1 {
  fill: #ffffff;
 }
 a:hover .ft_contact.ft_contact_tel .cls-2 {
  fill: none;
  stroke: var(--c_bl);
  stroke-width: 1px;
  fill-rule: evenodd;
 }
 a:hover .ft_contact.ft_contact_mail .cls-2 {
  fill: var(--c_bl);
  fill-rule: evenodd;
 }
}

.nav-icon {
 display: flex;
 position: fixed;
 top: 20px;
 right: 4%;
 z-index: 50;
 flex-direction: column;
 justify-content: center;
 align-items: center;
 gap: 20px;
 padding: 25px 15px 15px;
 transition: background 0.3s;
 cursor: pointer;
}
@media screen and (max-width: 600px) {
 .nav-icon {
  top: 10px;
  right: 1%;
  padding: 15px 10px 10px;
 }
}
.nav-icon.is-sc {
 background: var(--white);
}
.nav-icon.is-open {
 background: transparent !important;
}
.nav-icon.is-open +.fixed-nav {
 visibility: visible;
 opacity: 1;
}
.nav-icon.is-open .icon-animation .top {
 top: 50%;
 width: 0;
 opacity: 0;
}
.nav-icon.is-open .icon-animation .bottom {
 bottom: 50%;
 width: 0;
 opacity: 0;
}
.nav-icon.is-open .icon-animation .middle:before {
 transform: rotate(45deg);
}
.nav-icon.is-open .icon-animation .middle:after {
 transform: rotate(-45deg);
}
.nav-icon.is-open p.close {
 display: none;
}
.nav-icon.is-open p.open {
 display: block;
}
.nav-icon p {
 writing-mode: vertical-rl;
 text-orientation: upright;
 line-height: 1;
 font-size: 20px;
 font-feature-settings: normal;
 letter-spacing: 0.075em;
}
@media screen and (max-width: 600px) {
 .nav-icon p {
  font-size: 16px;
 }
}
.nav-icon p.open {
 display: none;
}

.icon-animation {
 display: block;
 z-index: 30;
 width: 30px;
 height: 20px;
 padding: 0;
 border: none;
 background: transparent;
 rotate: 90deg;
 cursor: pointer;

 touch-action: manipulation;
}
.icon-animation span {
 display: block;
 position: absolute;
 top: 50%;
 left: 50%;
 width: 100%;
 height: 3px;
 background: #000000;
 transform: translate(-50%, -50%);
 transition: all 0.3s;
}
.icon-animation .top {
 top: 0;
 transform: translate(-50%, 0) scale(1);
}
.icon-animation .bottom {
 top: auto;
 bottom: 0;
 transform: translate(-50%, 0) scale(1);
}
.icon-animation .middle {
 background: none;
}
.icon-animation .middle:before,.icon-animation .middle:after {
 content: "";
 display: block;
 position: absolute;
 width: 100%;
 height: 100%;
 background: #000000;
 transform: rotate(0deg);
 transition: all 0.3s;
}

.fixed-nav {
 display: flex;
 position: fixed;
 top: 0;
 left: 0;
 z-index: 4;
 width: 100%;
 height: 100vh;
 visibility: hidden;
 justify-content: center;
 background: rgba(248, 248, 248, 0.95);
 opacity: 0;
 transition: opacity 0.3s, visibility 0.3s;
}
@media screen and (max-width: 600px) {
 .fixed-nav {
  overflow: auto;
  align-items: flex-start;
  padding: 30px 0;

  overscroll-behavior-y: contain;
 }
}
.fixed-nav--wrap {
 display: grid;
 width: 95%;
 max-width: 1100px;
 grid-template-columns: 63% 1fr;
}
@media screen and (max-width: 1024px) {
 .fixed-nav--wrap {
  grid-template-columns: 67% 1fr;
 }
}
@media screen and (max-width: 600px) {
 .fixed-nav--wrap {
  width: 90%;
  grid-template-columns: 1fr;
  margin-top: 100px;
 }
}
.fixed-nav--links {
 display: flex;
 align-items: center;
 align-items: center;
 padding-left: 5%;
 border-right: 1px solid #cdcdcd;
}
@media screen and (max-width: 1024px) {
 .fixed-nav--links {
  padding: 0;
 }
}
@media screen and (max-width: 600px) {
 .fixed-nav--links {
  margin-bottom: 60px;
  border-right: none;
 }
}
.fixed-nav--links >.inner {
 display: grid;
 align-items: center;
 grid-template-columns: 47% 1fr;
 gap: 7%;
}
@media screen and (max-width: 600px) {
 .fixed-nav--links >.inner {
  align-items: flex-start;
  grid-template-columns: 30% 1fr;
 }
}
.fixed-nav--links nav ul li:not(:last-child) {
 margin-bottom: 40px;
}
@media screen and (max-width: 1024px) {
 .fixed-nav--links nav ul li:not(:last-child) {
  margin-bottom: 25px;
 }
}
@media screen and (max-width: 600px) {
 .fixed-nav--links nav ul li:not(:last-child) {
  margin-bottom: 0;
 }
}
@media screen and (max-width: 600px) {
 .fixed-nav--links nav ul li:last-child {
  border-bottom: 1px solid #cdcdcd;
 }
}
.fixed-nav--links nav ul li:last-child a {
 font-size: 14px;
}
@media screen and (max-width: 600px) {
 .fixed-nav--links nav ul li {
  border-top: 1px solid #cdcdcd;
 }
}
.fixed-nav--links nav ul li a {
 line-height: 1;
 font-weight: 500;
 font-size: 20px;
 letter-spacing: 0.2em;
 white-space: nowrap;
}
@media screen and (max-width: 1024px) {
 .fixed-nav--links nav ul li a {
  font-size: 18px;
 }
}
@media screen and (max-width: 600px) {
 .fixed-nav--links nav ul li a {
  display: block;
  padding: 25px 0;
 }
}
.fixed-nav--illust img {
 border-radius: 5px;
}
.fixed-nav--info {
 display: flex;
 flex-direction: column;
 justify-content: center;
 align-items: center;
}
.fixed-nav--logo {
 margin-bottom: 100px;
 text-align: center;
}
@media screen and (max-width: 1024px) {
 .fixed-nav--logo {
  margin-bottom: 30px;
 }
}
@media screen and (max-width: 600px) {
 .fixed-nav--logo {
  position: absolute;
  top: 20px;
  bottom: 0;
  left: 3%;
 }
}
.fixed-nav--logo img {
 width: 166px;
}
@media screen and (max-width: 1024px) {
 .fixed-nav--logo img {
  width: 140px;
 }
}
@media screen and (max-width: 600px) {
 .fixed-nav--logo img {
  width: 100px;
 }
}
.fixed-nav--contact p {
 line-height: 1;
 margin-bottom: 20px;
 font-size: 16px;
 letter-spacing: 0.2em;
}
@media screen and (max-width: 1024px) {
 .fixed-nav--contact p {
  margin-bottom: 10px;
  font-size: 14px;
 }
}
.fixed-nav--contact ul li {
 display: flex;
 justify-content: flex-start;
}
.fixed-nav--contact ul li:not(:last-child) {
 margin-bottom: 15px;
}
.fixed-nav--contact ul li a {
 display: flex;
 line-height: 1;
 align-items: center;
 gap: 15px;
 font-size: 20px;
 letter-spacing: 0.1em;
}
@media screen and (max-width: 1024px) {
 .fixed-nav--contact ul li a {
  gap: 10px;
  font-size: 14px;
 }
}
.fixed-nav--contact ul li a[href*="tel:"] {
 line-height: 1;
 font-weight: 500;
 font-size: 26px;
 letter-spacing: 0.1em;
}
@media screen and (max-width: 1024px) {
 .fixed-nav--contact ul li a[href*="tel:"] {
  font-size: 20px;
 }
}
@media screen and (max-width: 1024px) {
 .fixed-nav--contact ul li a svg {
  width: 40px;
  height: 40px;
 }
}
@media screen and (max-width: 600px) {
 .fixed-nav--contact ul li a svg {
  width: 50px;
  height: 50px;
 }
}

.ft-contact {
 padding: 80px 0;
 background: var(--white);
}
@media screen and (max-width: 600px) {
 .ft-contact {
  padding: 40px 0;
 }
}
.ft-contact >.inner {
 display: grid;
 width: 90%;
 max-width: 1020px;
 align-items: center;
 grid-template-columns: 45% 1fr;
 gap: 7.8%;
 margin: 0 auto;
}
@media screen and (max-width: 1024px) {
 .ft-contact >.inner {
  grid-template-columns: 40% 1fr;
  gap: 5%;
 }
}
@media screen and (max-width: 600px) {
 .ft-contact >.inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 30px;
 }
}
@media screen and (max-width: 600px) {
 .ft-contact--img {
  text-align: center;
 }
 .ft-contact--img img {
  width: 70%;
 }
}
.ft-contact--ttl {
 line-height: 1;
 font-weight: bold;
 font-size: 22px;
 letter-spacing: 0.2em;
}
@media screen and (max-width: 1024px) {
 .ft-contact--ttl {
  font-size: 18px;
 }
}
.ft-contact--lead {
 line-height: 1.4;
 margin: 30px 0 70px;
 color: var(--c_bl);
 font-weight: 500;
 font-size: 40px;
 letter-spacing: 0.15em;
}
@media screen and (max-width: 1024px) {
 .ft-contact--lead {
  margin: 15px 0 30px;
  font-size: 28px;
  letter-spacing: 0.1em;
 }
}
@media screen and (max-width: 600px) {
 .ft-contact--lead {
  font-size: 25px;
 }
}
.ft-contact--links li {
 display: flex;
 justify-content: flex-start;
}
.ft-contact--links li:not(:last-child) {
 margin-bottom: 15px;
}
.ft-contact--links li a {
 display: flex;
 line-height: 1;
 align-items: center;
 gap: 20px;
 font-size: 24px;
 letter-spacing: 0.1em;
}
@media screen and (max-width: 1024px) {
 .ft-contact--links li a {
  gap: 10px;
  font-size: 18px;
 }
}
@media screen and (max-width: 600px) {
 .ft-contact--links li a svg {
  width: 55px;
  height: 55px;
 }
}
.ft-contact--links li a[href*="tel:"] {
 line-height: 1;
 font-weight: 500;
 font-size: 32px;
 letter-spacing: 0.1em;
}
@media screen and (max-width: 1024px) {
 .ft-contact--links li a[href*="tel:"] {
  font-size: 26px;
 }
}

.ft {
 padding: 90px 0 40px;
 color: var(--white);
 background: #2c2c2c;
}
@media screen and (max-width: 1024px) {
 .ft {
  padding: 40px 0 20px;
 }
}
.ft >.inner {
 width: 90%;
 max-width: 1300px;
 margin: 0 auto;
}
.ft--block_1 {
 display: flex;
 justify-content: space-between;
}
.ft--block_2 {
 display: flex;
 justify-content: space-between;
 align-items: center;
 margin-top: 100px;
 padding-top: 20px;
 border-top: 1px solid #6c6c6c;
}
@media screen and (max-width: 1024px) {
 .ft--block_2 {
  margin-top: 50px;
 }
}
@media screen and (max-width: 600px) {
 .ft--block_2 {
  margin-top: 30px;
 }
}
@media screen and (max-width: 600px) {
 .ft--logo {
  width: 180px;
 }
}
.ft--links ul {
 display: grid;
 grid-template-rows: repeat(2, 1fr);
 grid-auto-flow: column;
 gap: 20px 80px;
}
@media screen and (max-width: 1024px) {
 .ft--links ul {
  grid-auto-flow: row;
 }
}
.ft--links ul li a {
 line-height: 1;
 font-size: 16px;
 letter-spacing: 0.05em;
 white-space: nowrap;
 transition: opacity 0.3s;
}
@media (hover) {
 .ft--links ul li a:hover {
  opacity: 0.7;
 }
}
@media screen and (max-width: 1024px) {
 .ft--links ul li a {
  font-size: 14px;
 }
}
.ft--copy {
 font-size: 0;
}
.ft--copy small {
 line-height: 1;
 font-size: 12px;
 letter-spacing: 0em;
}
@media screen and (max-width: 600px) {
 .ft--copy small {
  font-size: 8px;
 }
}
.ft--privacy {
 line-height: 1;
 font-size: 12px;
 letter-spacing: 0em;
 transition: opacity 0.3s;
}
@media (hover) {
 .ft--privacy:hover {
  opacity: 0.7;
 }
}
/*# sourceMappingURL=common.css.map */