@charset "UTF-8";
/* ///////////////////////////////////////////////

　common style for modern browser
　Version: 4.0

/////////////////////////////////////////////// */
/* Base
----------------------------------------------- */
/*
　各要素のスタイルを初期化し、デフォルトのスタイルを定義
*/
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans:wght@400&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Shippori+Mincho:wght@400;500&display=swap");
*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

:where([hidden]:not([hidden=until-found])) {
  display: none !important;
}

:where(html) {
  -webkit-text-size-adjust: none;
}

@supports not (min-block-size: 100dvb) {
  :where(html) {
    block-size: 100%;
  }
}
:where(body) {
  block-size: 100%;
  block-size: 100dvb;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -webkit-text-size-adjust: 100%;
}

:where(input, button, textarea, select) {
  font: inherit;
  color: inherit;
}

:where(textarea) {
  resize: vertical;
  resize: block;
}

:where(button, label, select, summary, [role=button], [role=option]) {
  cursor: pointer;
}

:where(:disabled) {
  cursor: not-allowed;
}

:where(label:has(> input:disabled), label:has(+ input:disabled)) {
  cursor: not-allowed;
}

:where(button) {
  border: none;
  background: none;
  outline: none;
  -webkit-appearance: none;
  appearance: none;
}

:where(a) {
  text-underline-offset: 0.1ex;
}

:where(ul, ol) {
  list-style: none;
}

:where(img, svg) {
  max-inline-size: 100%;
  block-size: auto;
  vertical-align: bottom;
}

:where(p, li, dt, dd, th, td, h1, h2, h3, h4, h5, h6) {
  overflow-wrap: break-word;
}

:where(hr) {
  border: none;
  -webkit-border-before: 1px solid;
          border-block-start: 1px solid;
  color: inherit;
  block-size: 0;
  overflow: visible;
}

:where(table) {
  border-collapse: collapse;
  border-spacing: 0;
}

:where(picture) {
  display: block;
}

:where(i, em) {
  font-style: normal;
}

/* Module
----------------------------------------------- */
.ul-disc > li {
  list-style: disc;
  margin-left: 1.5em;
}

.ol-decimal > li {
  list-style: decimal;
  margin-left: 1.5em;
}

/* State
----------------------------------------------- */
.hidden {
  display: none;
}

.hidden-pc {
  display: none;
}

@media (max-width: 960px) {
  .hidden-pc {
    display: block;
  }
  .hidden-pc.inline {
    display: inline-block;
  }
  .hidden-tab {
    display: none;
  }
}
@media (max-width: 520px) {
  .hidden-tab {
    display: block;
  }
  .hidden-tab.inline {
    display: inline-block;
  }
  .hidden-sp {
    display: none;
  }
}
@media (orientation: landscape) and (max-width: 960px) {
  .hidden-land {
    display: none;
  }
}
/* Utillity
----------------------------------------------- */
/* Text */
.taR {
  text-align: right;
}

.taL {
  text-align: left;
}

.taC {
  text-align: center;
}

.indent {
  padding-left: 1em;
  text-indent: -1em;
}

/* Image */
a img {
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  transition: all 0.2s;
}
@media (hover: hover) {
  a:hover img {
    opacity: 0.8;
  }
}

*[class|=logo] a {
  text-decoration: none;
}
*[class|=logo] a:hover {
  text-decoration: none;
}
*[class|=logo] a:hover img {
  opacity: 1;
}

a.tel {
  text-decoration: none;
}
a.tel img {
  opacity: 1;
}

/* button */
.btn {
  display: inline-block;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  text-decoration: none;
  transition: opacity 0.2s;
}
@media (hover: hover) {
  .btn:hover {
    text-decoration: none;
    opacity: 0.8;
  }
  .btn:hover img {
    opacity: 1;
  }
}

/*

  FONT
----------------------------------------------- */
:root {
  font-size: 1px;
  --color-text-base: #000;
  --color-main: #1C252C;
  --color-main-overlay: rgba(3, 12, 19, .92);
  --font-noto: "Noto Sans", sans-serif;
  --font-shippori: "Shippori Mincho", serif;
}
@media (min-width: 961px) {
  :root {
    --dist-header-height: 150px;
  }
}
@media (max-width: 960px) {
  :root {
    --dist-header-height: 56px;
    font-size: 0.875px;
  }
}

body {
  color: #fff;
  font-size: 16rem;
  font-family: var(--font-shippori);
  font-style:  normal;
  -webkit-font-feature-settings: "palt";
          font-feature-settings: "palt";
}

:is(p) {
  line-height: 2.1;
}

:is(li, dt, dd, th, td, address) {
  line-height: 1.85;
}

:where(a) {
  color: inherit;
  text-decoration: none;
}
:where(a):hover {
  text-decoration: underline;
}

.ffN {
  font-family: var(--font-noto);
}

/*

  LAYOUT
----------------------------------------------- */
body.isOpenMenu {
  overflow: hidden;
}

.mainContents {
  background-color: var(--color-main);
  margin-top: var(--dist-header-height);
}

/*
  HEADER
----------------------------------------------- */
.header {
  position: fixed;
  z-index: 10;
  top: 0;
  left: 0;
  right: 0;
  display: flex;
  align-items: center;
  transition: 0.3s;
  padding-left: calc(50vw - 640px);
  padding-right: calc(50vw - 640px);
  height: var(--dist-header-height);
  background-color: var(--color-main-overlay);
}
@media (max-width: 1320px) {
  .header {
    padding-left: 20px;
    padding-right: 20px;
  }
}
.header .logo {
  margin-right: auto;
}
.header .logo a {
  display: grid;
  justify-items: end;
  grid-template-columns: auto 1fr;
  align-items: center;
}
@media (min-width: 961px) {
  .header .logo a {
    gap: 0px 15px;
  }
}
@media (max-width: 960px) {
  .header .logo a {
    gap: 5px 10px;
  }
}
.header .logo .symbol {
  grid-area: 1/1/3/2;
}
@media (max-width: 960px) {
  .header .logo .symbol img {
    width: 16px;
  }
}
.header .logo .name {
  font-family: var(--font-noto);
  font-weight: 400;
  letter-spacing: 0.08em;
  transition: 0.2s;
  white-space: nowrap;
}
@media (min-width: 961px) {
  .header .logo .name {
    margin: 0.5em 0 0.4em;
    font-size: 22rem;
  }
}
@media (max-width: 960px) {
  .header .logo .name {
    margin-top: 6px;
    font-size: 14px;
  }
}
.header .logo .group {
  line-height: 0;
  transition: 0.2s;
}
@media (min-width: 961px) {
  .header .logo .group {
    margin-right: 15px;
  }
}
@media (max-width: 960px) {
  .header .logo .group {
    margin-right: 10px;
  }
  .header .logo .group img {
    width: 79px;
  }
}
.header-info {
  position: relative;
  display: grid;
  justify-items: end;
}
.header-info .desc {
  font-size: 14rem;
  font-weight: 500;
  transition: 0.2s;
}
.header-info .cta {
  padding: 12px 0;
  font-weight: 500;
  transition: 0.2s;
  text-decoration: none;
}
.header-info .cta em {
  margin-left: 0.5em;
  font-size: 25rem;
  letter-spacing: 0.02em;
}
@media (max-width: 960px) {
  .header-info .desc {
    display: none;
  }
  .header-info .cta {
    position: fixed;
    z-index: 11;
    bottom: 0;
    left: 0;
    right: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0 12px;
    height: var(--dist-header-height);
    background-color: var(--color-main-overlay);
    font-size: 12px;
  }
  .header-info .cta::before {
    content: url(../img/common/ico-tel.svg);
  }
  .header-info .cta em {
    display: none;
  }
}
@media (min-width: 961px) {
  .header.transform {
    height: 120px;
  }
  .header.transform .logo .name {
    font-size: 14rem;
  }
  .header.transform .logo .group {
    margin-right: 2px;
  }
  .header.transform .desc {
    display: none;
  }
  .header.transform .cta {
    margin-right: 50px;
  }
  .header.transform .btnMenu {
    opacity: 1;
    pointer-events: inherit;
  }
}

/*
  MENU
----------------------------------------------- */
@media (min-width: 961px) {
  .gnav {
    margin-top: 8px;
  }
  .gnav::before {
    content: "";
    position: fixed;
    top: 120px;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: -1;
    background: rgba(51, 51, 51, 0.1);
    -webkit-backdrop-filter: blur(5px);
            backdrop-filter: blur(5px);
    pointer-events: none;
    opacity: 0;
  }
}
@media (max-width: 960px) {
  .gnav {
    opacity: 0;
    pointer-events: none;
    position: fixed;
    top: var(--dist-header-height);
    left: 0;
    right: 0;
    bottom: 0;
    background-color: var(--color-main-overlay);
    transition: 0.3s;
  }
}
.gnav-menu {
  display: flex;
}
.gnav-menu li {
  line-height: 1.1;
}
.gnav-menu a {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 0 2.5em;
  padding: 0 min(2.5em, 3.2vw);
  font-family: var(--font-noto);
  font-size: 14px;
  text-decoration: none;
  white-space: nowrap;
}
@media (min-width: 961px) {
  .gnav-menu li + li {
    border-left: 1px solid currentColor;
  }
  .gnav-menu li:last-child a {
    padding-right: 0;
  }
}
@media (max-width: 960px) {
  .gnav-menu {
    flex-direction: column;
    margin-top: 25px;
  }
  .gnav-menu a {
    height: 50px;
  }
}
@media (min-width: 961px) {
  .gnav.transition .gnav-menu {
    transition: 0.3s;
  }
}

@media (min-width: 961px) {
  .transform .gnav {
    margin-top: 0;
    opacity: 0;
  }
  .transform .gnav-menu {
    position: fixed;
    top: 120px;
    right: 0;
    bottom: 0;
    width: clamp(400px, 40vw, 500px);
    background-color: var(--color-main-overlay);
    flex-direction: column;
    gap: 50px;
    padding-top: 40px;
    translate: 100%;
    transition: 0.3s;
  }
  .transform .gnav-menu li + li {
    border-left: none;
  }
  .transform .gnav-menu a {
    padding: 0;
  }
}
.isOpenMenu .gnav {
  opacity: 1;
  pointer-events: inherit;
}
.isOpenMenu .gnav::before {
  opacity: 1;
  pointer-events: inherit;
}
.isOpenMenu .gnav-menu {
  translate: 0;
}

/*
  BUTTON MENU
----------------------------------------------- */
.btnMenu {
  position: absolute;
  top: 50%;
  translate: 0 -50%;
  display: grid;
  place-items: center;
  width: 20px;
  height: 36px;
  opacity: 0;
  pointer-events: none;
}
@media (max-width: 960px) {
  .btnMenu {
    opacity: 1;
    pointer-events: inherit;
  }
}
.btnMenu span, .btnMenu::before, .btnMenu::after {
  content: "";
  grid-area: 1/1;
  width: 20px;
  height: 1px;
  background: #fff;
  transition: 0.2s;
}
.btnMenu::before {
  rotate: -45deg;
  -webkit-transform: translate(6px, -7px);
          transform: translate(6px, -7px);
}
.btnMenu span {
  rotate: -45deg;
}
.btnMenu::after {
  rotate: -45deg;
  -webkit-transform: translate(-6px, 7px);
          transform: translate(-6px, 7px);
}
.btnMenu:hover::before {
  rotate: 0deg;
  -webkit-transform: translate(0, -7px);
          transform: translate(0, -7px);
}
.btnMenu:hover span {
  rotate: 0deg;
}
.btnMenu:hover::after {
  rotate: 0deg;
  -webkit-transform: translate(0, 7px);
          transform: translate(0, 7px);
}

.isOpenMenu .btnMenu span {
  opacity: 0;
}
.isOpenMenu .btnMenu::before {
  rotate: 45deg;
  -webkit-transform: none;
          transform: none;
}
.isOpenMenu .btnMenu::after {
  rotate: -225deg;
  -webkit-transform: none;
          transform: none;
}

/*
  TAXI ICON
----------------------------------------------- */
.taxi-icon {
  position: fixed;
  z-index: 5;
  top: 50%;
  left: 63px;
  translate: 0 -50%;
}
@media (max-width: 960px) {
  .taxi-icon {
    display: none;
  }
}

@media (min-width: 961px) {
  .sec-taxi-bar {
    position: relative;
  }
}

.taxi-bar {
  position: absolute;
  z-index: 4;
  top: 50%;
  left: 77.5px;
}
.taxi-bar::before {
  display: block;
  margin-top: 45px;
  width: 17px;
  height: 172px;
  background-image: url(../img/common/bar-taxi.png);
  background-size: 100%;
  background-position: center top;
  background-repeat: no-repeat;
  content: "";
}
.taxi-bar.scroll {
  top: calc(50% + 45px);
  left: 82px;
}
.taxi-bar.scroll::before {
  margin-top: 0;
  width: 7.5px;
  width: 13.5px;
  height: 157px;
  height: 162.5px;
  background-image: url(../img/common/bar-scroll.png);
}
.taxi-bar.scroll .label {
  position: absolute;
  top: 0;
  left: -1.5em;
  -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
  -webkit-font-feature-settings: "pkna";
          font-feature-settings: "pkna";
  font-size: 14rem;
  letter-spacing: 0.2em;
  white-space: nowrap;
  text-shadow: 0px 0px 3px black;
}
.taxi-bar .passenger {
  position: absolute;
  top: -21px;
  left: 34px;
  width: 36px;
  transition: opacity 0.5s ease, -webkit-transform 0.4s ease;
  transition: transform 0.4s ease, opacity 0.5s ease;
  transition: transform 0.4s ease, opacity 0.5s ease, -webkit-transform 0.4s ease;
}
.taxi-bar.getOn .passenger {
  position: fixed;
  top: calc(50% - 21px);
  left: 111.5px;
  -webkit-transform: translateX(-40px);
          transform: translateX(-40px);
  opacity: 0;
}
@media (max-width: 960px) {
  .taxi-bar {
    display: none;
  }
}

/*
  タクシーのご用命フリーダイヤル
----------------------------------------------- */
.cta-tel {
  background-color: var(--color-main);
  text-align: center;
  color: #fff;
}
@media (min-width: 961px) {
  .cta-tel {
    padding-top: 70px;
    padding-bottom: 65px;
  }
}
@media (max-width: 960px) {
  .cta-tel {
    padding-top: 40px;
    padding-bottom: 43px;
  }
}
.cta-tel .ttl {
  margin-bottom: 0.6em;
  font-weight: 500;
}
@media (min-width: 961px) {
  .cta-tel .ttl {
    font-size: 20rem;
  }
}
@media (max-width: 960px) {
  .cta-tel .ttl {
    font-size: 14px;
  }
}
.cta-tel .tel {
  position: relative;
  letter-spacing: 0.09em;
}
.cta-tel .tel::before {
  content: url(../img/common/ico-call-w.svg);
}
@media (min-width: 961px) {
  .cta-tel .tel {
    font-size: 50rem;
  }
  .cta-tel .tel::before {
    position: absolute;
    top: 50%;
    left: -60px;
    -webkit-transform: translateY(-63%);
            transform: translateY(-63%);
  }
}
@media (max-width: 960px) {
  .cta-tel .tel {
    margin: 13px 0 10px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    font-size: 25px;
  }
  .cta-tel .tel::before {
    zoom: 0.67;
    -moz-transform: scale(0.67);
    translate: 0 3px;
  }
}
.cta-tel .text {
  margin-top: 0.4em;
  font-family: var(--font-noto);
}
@media (min-width: 961px) {
  .cta-tel .text {
    font-size: 18rem;
  }
}

.bg-white .cta-tel {
  background-color: #fff;
  color: #000;
}
.bg-white .cta-tel .tel::before {
  content: url(../img/common/ico-call.svg);
}

/*
  三洋タクシーは、新潟運輸グループです。
----------------------------------------------- */
.niigata-unyu-group {
  padding-left: calc(50% - 300px);
  padding-right: calc(50% - 300px);
  background-color: #fff;
  color: #000;
  text-align: center;
}
@media screen and (max-width: 940px) {
  .niigata-unyu-group {
    padding-left: 170px;
    padding-right: 170px;
  }
}
@media (max-width: 960px) {
  .niigata-unyu-group {
    padding-left: 20px;
    padding-right: 20px;
  }
}
@media (min-width: 961px) {
  .niigata-unyu-group {
    padding-top: 80px;
    padding-bottom: 80px;
  }
}
@media (max-width: 960px) {
  .niigata-unyu-group {
    padding-top: 60px;
    padding-bottom: 80px;
  }
}
.niigata-unyu-group .title {
  margin-bottom: 1.2em;
  font-weight: 400;
}
@media (min-width: 961px) {
  .niigata-unyu-group .title {
    font-size: 23rem;
  }
}
@media (max-width: 960px) {
  .niigata-unyu-group .title {
    font-size: 20px;
    line-height: 1.5;
  }
}
.niigata-unyu-group .banners {
  display: grid;
}
.niigata-unyu-group .banners a {
  display: block;
  box-shadow: 0.2em 0.2em 0.3em rgba(0, 0, 0, 0.2);
}
@media (min-width: 521px) {
  .niigata-unyu-group .banners {
    grid-template-columns: repeat(2, 1fr);
    gap: 25px;
  }
}
@media (max-width: 960px) {
  .niigata-unyu-group .banners {
    margin: 0 10px;
  }
}
@media (max-width: 520px) {
  .niigata-unyu-group .banners {
    gap: 25px;
  }
}

/*
  FOOTER
----------------------------------------------- */
.footer {
  background: url(../img/common/bg-footer.jpg) no-repeat center/cover;
  display: flex;
  position: relative;
}
@media (min-width: 961px) {
  .footer {
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 50px;
  }
}
@media (max-width: 960px) {
  .footer {
    flex-direction: column;
    gap: 20px;
    padding: 50px 30px 80px;
  }
}
.footer-number {
  background-color: var(--color-main-overlay);
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.7em;
}
@media (min-width: 961px) {
  .footer-number {
    width: 100%;
    height: 90px;
    font-size: 20rem;
  }
  .footer-number a {
    font-size: 26rem;
    text-decoration: none;
    letter-spacing: 0.05em;
  }
}
@media (max-width: 960px) {
  .footer-number {
    display: none;
  }
}
@media (min-width: 961px) {
  .footer-info {
    padding-left: calc(50vw - 620px);
  }
}
@media screen and (min-width: 961px) and (max-width: 1280px) {
  .footer-info {
    padding-left: 20px;
  }
}
.footer-info .logo {
  display: grid;
  justify-items: end;
  grid-template-columns: auto 1fr;
}
@media (min-width: 961px) {
  .footer-info .logo {
    gap: 0 15px;
  }
}
@media (max-width: 960px) {
  .footer-info .logo {
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    gap: 5px 10px;
  }
}
.footer-info .logo .symbol {
  grid-area: 1/1/3/2;
}
@media (max-width: 960px) {
  .footer-info .logo .symbol {
    width: 26px;
  }
}
.footer-info .logo .name {
  font-family: var(--font-noto);
  font-weight: 400;
  letter-spacing: 0.08em;
}
@media (min-width: 961px) {
  .footer-info .logo .name {
    margin: 0.5em 0 0.4em;
    font-size: 22rem;
  }
}
@media (max-width: 960px) {
  .footer-info .logo .name {
    margin-top: 3px;
    font-size: 20px;
  }
}
.footer-info .logo .group {
  margin-right: 3px;
  line-height: 0;
}
@media (min-width: 961px) {
  .footer-info .logo .group img {
    width: 140px;
  }
}
@media (max-width: 960px) {
  .footer-info .logo .group img {
    width: 125px;
  }
}
.footer-info .address {
  margin: 1.3em 0 0.2em;
  font-style: normal;
}
.footer-info .tel {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 0 1.2em;
}
.footer-info .tel dt {
  font-size: 14rem;
}
.footer-info .tel dd {
  font-size: 18rem;
}
@media (max-width: 960px) {
  .footer-info .tel dd {
    font-size: 14px;
  }
}
.footer-info .tel a {
  text-decoration: none;
}
.footer-menu {
  display: grid;
  gap: 1.1em;
  margin-right: 100px;
}
@media (min-width: 961px) {
  .footer-menu {
    padding-right: calc(50vw - 620px);
  }
}
@media screen and (min-width: 961px) and (max-width: 1280px) {
  .footer-menu {
    padding-right: 20px;
  }
}
@media (max-width: 960px) {
  .footer-menu {
    display: none;
  }
}
.footer-copyright {
  display: flex;
  justify-content: center;
  align-items: center;
}
@media (min-width: 961px) {
  .footer-copyright {
    width: 100%;
    height: 60px;
    font-size: 14rem;
  }
}
@media (max-width: 960px) {
  .footer-copyright {
    font-size: 10px;
  }
}
@media (min-width: 961px) {
  .footer .pagetop {
    position: absolute;
    bottom: 50px;
    right: 35px;
  }
  .footer .pagetop .bar {
    -webkit-writing-mode: vertical-rl;
        -ms-writing-mode: tb-rl;
            writing-mode: vertical-rl;
    -webkit-font-feature-settings: "pkna";
            font-feature-settings: "pkna";
    flex-direction: row-reverse;
  }
  .footer .pagetop .bar::after {
    width: 1px;
    height: 100px;
    -webkit-transform: translateX(-0.15em);
            transform: translateX(-0.15em);
  }
  .footer .pagetop:hover .bar::after {
    -webkit-animation: linkLineFooter 0.7s ease-in-out both;
            animation: linkLineFooter 0.7s ease-in-out both;
  }
}
@media (max-width: 960px) {
  .footer .pagetop {
    margin: 60px auto;
  }
}

@-webkit-keyframes linkLineFooter {
  0% {
    scale: 100% 100%;
    -webkit-transform-origin: center top;
            transform-origin: center top;
  }
  50% {
    scale: 100% 0;
    -webkit-transform-origin: center top;
            transform-origin: center top;
  }
  51% {
    scale: 100% 0;
    -webkit-transform-origin: center bottom;
            transform-origin: center bottom;
  }
  100% {
    scale: 100% 100%;
    -webkit-transform-origin: center bottom;
            transform-origin: center bottom;
  }
}

@keyframes linkLineFooter {
  0% {
    scale: 100% 100%;
    -webkit-transform-origin: center top;
            transform-origin: center top;
  }
  50% {
    scale: 100% 0;
    -webkit-transform-origin: center top;
            transform-origin: center top;
  }
  51% {
    scale: 100% 0;
    -webkit-transform-origin: center bottom;
            transform-origin: center bottom;
  }
  100% {
    scale: 100% 100%;
    -webkit-transform-origin: center bottom;
            transform-origin: center bottom;
  }
}
/*
  modules
----------------------------------------------- */
/* intersection */
.intersection.fadeUp {
  opacity: 0;
  transition: opacity 1s, -webkit-transform 1.5s;
  transition: transform 1.5s, opacity 1s;
  transition: transform 1.5s, opacity 1s, -webkit-transform 1.5s;
}
.intersection.bulr {
  -webkit-filter: blur(8px);
          filter: blur(8px);
  -webkit-transform: translateY(5px);
          transform: translateY(5px);
  opacity: 0;
  transition: 1s cubic-bezier(0.55, 0.05, 0.22, 0.99);
}
.intersection.view.bulr {
  -webkit-filter: blur(0);
          filter: blur(0);
  -webkit-transform: none;
          transform: none;
  opacity: 1;
}
.intersection.delay1 {
  transition-delay: 0.2s;
}
.intersection.delay2 {
  transition-delay: 0.4s;
}
.intersection.delay3 {
  transition-delay: 0.6s;
}

.bg-white {
  background-color: #fff;
  color: #000;
}

.link-line .bar {
  display: inline-flex;
  align-items: center;
  gap: 1em;
  line-height: 1.1;
  padding-bottom: 0.3em;
  letter-spacing: 0.04em;
}
.link-line .bar::after {
  content: "";
  width: 45px;
  height: 1px;
  background-color: currentColor;
  -webkit-transform: translateY(0.15em);
          transform: translateY(0.15em);
}
.link-line:hover {
  text-decoration: none;
}
.link-line:hover .bar::after {
  -webkit-animation: linkLine 0.7s ease-in-out both;
          animation: linkLine 0.7s ease-in-out both;
}

@-webkit-keyframes linkLine {
  0% {
    scale: 100% 100%;
    -webkit-transform-origin: right center;
            transform-origin: right center;
  }
  50% {
    scale: 0% 100%;
    -webkit-transform-origin: right center;
            transform-origin: right center;
  }
  51% {
    scale: 0% 100%;
    -webkit-transform-origin: left center;
            transform-origin: left center;
  }
  100% {
    scale: 100% 100%;
    -webkit-transform-origin: left center;
            transform-origin: left center;
  }
}

@keyframes linkLine {
  0% {
    scale: 100% 100%;
    -webkit-transform-origin: right center;
            transform-origin: right center;
  }
  50% {
    scale: 0% 100%;
    -webkit-transform-origin: right center;
            transform-origin: right center;
  }
  51% {
    scale: 0% 100%;
    -webkit-transform-origin: left center;
            transform-origin: left center;
  }
  100% {
    scale: 100% 100%;
    -webkit-transform-origin: left center;
            transform-origin: left center;
  }
}
.page-title {
  background-position: center;
  background-size: cover;
  color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
}
@media (min-width: 961px) {
  .page-title {
    height: 230px;
  }
}
@media (max-width: 960px) {
  .page-title {
    height: 110px;
    margin-bottom: 65px;
  }
}
.page-title h2 {
  display: grid;
  font-weight: 400;
  text-align: center;
}
@media (min-width: 961px) {
  .page-title h2 {
    gap: 15px;
  }
}
@media (max-width: 960px) {
  .page-title h2 {
    gap: 5px;
  }
}
@media (min-width: 961px) {
  .page-title .ja {
    font-size: 35rem;
  }
}
@media (max-width: 960px) {
  .page-title .ja {
    font-size: 22px;
  }
}
@media (min-width: 961px) {
  .page-title .en {
    font-size: 20rem;
  }
}
@media (max-width: 960px) {
  .page-title .en {
    font-size: 18px;
  }
}

.heading {
  font-weight: 400;
  letter-spacing: 0.2em;
}
@media (min-width: 961px) {
  .heading {
    -webkit-writing-mode: vertical-rl;
        -ms-writing-mode: tb-rl;
            writing-mode: vertical-rl;
    -webkit-font-feature-settings: "pkna";
            font-feature-settings: "pkna";
    font-size: 35rem;
  }
}
@media (max-width: 960px) {
  .heading {
    font-size: 22px;
    text-align: center;
  }
}

.breadcrumb {
  padding-left: calc(50% - 530px);
  padding-right: calc(50% - 530px);
  margin: 10px 0;
  display: flex;
  justify-content: flex-end;
}
@media screen and (max-width: 1400px) {
  .breadcrumb {
    padding-left: 170px;
    padding-right: 170px;
  }
}
@media (max-width: 960px) {
  .breadcrumb {
    padding-left: 20px;
    padding-right: 20px;
  }
}
.breadcrumb > * {
  font-size: 14rem;
}
.breadcrumb > * + * {
  position: relative;
  margin-left: 28px;
}
.breadcrumb > * + *::before {
  position: absolute;
  left: -18px;
  content: ">";
}
@media (min-width: 961px) {
  .breadcrumb {
    margin-bottom: 60px;
  }
}
@media (max-width: 960px) {
  .breadcrumb {
    display: none;
  }
}

.section {
  padding-left: calc(50% - 370px);
  padding-right: calc(50% - 370px);
  display: grid;
}
@media screen and (max-width: 1080px) {
  .section {
    padding-left: 170px;
    padding-right: 170px;
  }
}
@media (max-width: 960px) {
  .section {
    padding-left: 20px;
    padding-right: 20px;
  }
}
@media (min-width: 961px) {
  .section {
    padding-top: 100px;
    padding-bottom: 100px;
    grid-template-columns: auto 1fr;
    gap: 0 100px;
  }
}
@media (max-width: 960px) {
  .section {
    padding-top: 60px;
    padding-bottom: 60px;
  }
}

.table {
  display: grid;
  grid-template-columns: auto 1fr;
}
.table > * {
  padding: 0.6em 0;
  border-bottom: 1px solid currentColor;
  line-height: 1.85;
}
.table dt {
  padding-right: 2em;
}

.other-page {
  padding-left: calc(50% - 370px);
  padding-right: calc(50% - 370px);
}
@media screen and (max-width: 1080px) {
  .other-page {
    padding-left: 170px;
    padding-right: 170px;
  }
}
@media (max-width: 960px) {
  .other-page {
    padding-left: 20px;
    padding-right: 20px;
  }
}
.other-page a {
  display: grid;
  background-position: center;
  background-size: cover;
  color: #fff;
}
.other-page .desc {
  font-family: var(--font-noto);
}
@media (min-width: 961px) {
  .other-page a {
    gap: 1.6em;
    padding: 50px 55px 40px;
  }
  .other-page .title {
    font-size: 40rem;
  }
  .other-page .desc {
    margin-top: 0.2em;
    font-size: 18rem;
  }
}
@media (max-width: 960px) {
  .other-page a {
    gap: 1.1em;
    padding: 35px 20px 25px;
  }
  .other-page .title {
    font-size: 25px;
  }
  .other-page .desc {
    margin-bottom: 20px;
  }
}

@media (max-width: 520px) {
  .sp-overflow {
    overflow-x: auto;
    padding-bottom: 15px;
  }
}
.sp-overflow::-webkit-scrollbar {
  width: 100%;
}
.sp-overflow::-webkit-scrollbar-thumb {
  background: var(--color-main);
  border-radius: 30px;
}