/* =============================================================

Custom Properties

* ============================================================= */
:root {
  /* ========================================
  color
  ======================================== */
  /* text color */
  --base-color: #333;
  /* border color */
  --border-color:#ccc;
  /* bg color */
  --bg-color:#f5f5f5;
  /* key color */
  --key-color: #6f86d6;
  --grade-color: linear-gradient(90deg, #48c6ef 0%, #6f86d6 100%);
  /* maintenance color */
  --ciao-color:#0068b7;
  --mamoru-color:#8dc21f;
  /* color */
  --white:#fff;
  --black: #333333;
  --darkgray:#666666;
  --gray:#999999;
  --lightgray:#edeff2;
  --red:#ea3d0f;
  /* ========================================
  layouts
  ======================================== */
  --header-height: 80px;
  --sticky-height:60px;
  --contents-width: 1080;
  --contents-width-px: calc(var(--contents-width) * 1px);
  --inner-width: 1200;
  --inner-width-px: calc(var(--inner-width) * 1px);
  --outer-frame-width:1366;
  --outer-frame-width-px: calc(var(--outer-frame-width) * 1px);
  --inner-padding: calc(10px + var(--slope-1px) * 10);
  --outer-padding: calc(15px + var(--slope-1px) * 35);
  --inner-overflow: calc(var(--vw) * 50 - var(--inner-width-px) * .5);
  --contents-padding-inline: calc(15px + var(--slope-1px) * 35);
  /* utility */
  --vw: 1vw;
  --vh: 1vh;
  --slope-1px: clamp(0px, -.95663px + .2551vw, 1px);
  --base-border-radius: 10px;
  --ovall-radius:calc(1px / 0);
  --loading-time: 2.4s;
  /* ========================================
  font
  ======================================== */
  /* size */
  --line-height: 1.5;
  --leading-trim:  calc((1em - 1lh) / 2);
  --is-support-lh: initial;
  --is-support-not-lh: "";
  /* z-index */
  --header-z-index: 1000;
  --navigation-z-index: 200;
  --modal-z-index: 1001;
  --local-z-index: 0;
  /* family */
  --base-font-family: "Barlow", "Noto Sans JP", sans-serif;
  --en-font-family: "Barlow", sans-serif;
  --ja-font-family: "Noto Sans JP", sans-serif;
  /* animation */
  --animation: cubic-bezier(.455, .03, .515, .955);
  --t-duration: .2s;
  --transition: var(--t-duration) var(--animation);
  /* svg icon */
  --icon-arrow:  url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path fill='currentColor' fill-rule='evenodd' d='m19.7489 10.5282-3.9184 3.8109c-.1674.1629-.3871.2443-.606.2443-.2197 0-.4386-.0814-.606-.2443-.3348-.3258-.3348-.853 0-1.178l2.3926-2.3273H.857093C.383643 10.8338 0 10.4602 0 10.0001c0-.46011.383643-.83373.857093-.83373H17.1366l-2.3943-2.32735c-.3348-.32493-.3348-.85303 0-1.17795.3349-.32576.8772-.32576 1.212 0l3.7946 3.68917c.3348.32492.3348.85216 0 1.17796Z' clip-rule='evenodd'/></svg>");
  --icon-external: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 27'><path fill='currentColor' fill-rule='evenodd' d='M20.6,13.5c-.3,0-.6.3-.6.6v5.1c0,.3-.1.6-.3.8s-.5.3-.8.3H7.1c-.3,0-.6-.1-.8-.3-.2-.2-.3-.5-.3-.8V7.4c0-.3,0-.6.3-.8s.5-.3.8-.3h5.1c.3,0,.6-.3.6-.6s-.3-.6-.6-.6h-5.1c-.6,0-1.2.2-1.6.7-.4.4-.7,1-.7,1.6v11.8c0,.6.2,1.2.7,1.6.4.4,1,.7,1.6.7h11.8c.6,0,1.2-.2,1.6-.7.4-.4.7-1,.7-1.6v-5.1c0-.3-.3-.6-.6-.6ZM21.2,5.6v-.4h-5.6c-.3,0-.6.3-.6.6s.3.6.6.6h3.6l-6.5,6.5c-.2.2-.2.6,0,.9.1.1.3.2.4.2s.3,0,.4-.2l6.5-6.5v3.6c0,.3.3.6.6.6s.6-.3.6-.6v-5.1h0v-.2Z'/></svg>");
  --icon-search: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 21 21'><path fill='currentColor' fill-rule='evenodd' d='M8.14577 13.281C6.70858 13.281 5.49166 12.7822 4.49499 11.7848C3.49833 10.7874 3 9.57939 3 8.16081C3 6.7421 3.49866 5.53403 4.49597 4.53661C5.49342 3.53918 6.7035 3.04047 8.12622 3.04047C9.54908 3.04047 10.757 3.53918 11.75 4.53661C12.743 5.53403 13.2395 6.74275 13.2395 8.16277C13.2395 8.73252 13.1509 9.27359 12.9735 9.78599C12.7962 10.2983 12.539 10.7696 12.2018 11.2L16.7846 15.7586C16.9282 15.9016 17 16.0786 17 16.2897C17 16.5008 16.9277 16.6782 16.783 16.8219C16.6382 16.9676 16.4598 17.0405 16.2477 17.0405C16.0357 17.0405 15.8597 16.9676 15.7199 16.8219L11.1518 12.2564C10.7639 12.576 10.3124 12.8267 9.79736 13.0084C9.28228 13.1901 8.73176 13.281 8.14577 13.281ZM8.13385 11.7999C9.14315 11.7999 9.99958 11.4451 10.7031 10.7355C11.4067 10.0258 11.7584 9.16762 11.7584 8.16081C11.7584 7.15387 11.4065 6.29559 10.7027 5.58597C9.9988 4.87636 9.1425 4.52155 8.13385 4.52155C7.11803 4.52155 6.25528 4.87636 5.54561 5.58597C4.83595 6.29559 4.48111 7.15387 4.48111 8.16081C4.48111 9.16762 4.83575 10.0258 5.54503 10.7355C6.25443 11.4451 7.11737 11.7999 8.13385 11.7999Z'/></svg>");
  --icon-angle: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 6' fill='none'><path fill='currentColor' fill-rule='evenodd' clip-rule='evenodd' d='M8 1.44334L7.057 0.500001L3.99867 3.613L0.943 0.5L0 1.44333L3.99867 5.5L8 1.44334Z'/></svg>");
  --icon-plus: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'><path fill='currentColor' fill-rule='evenodd' d='M15 17H7.66666C7.38332 17 7.14588 16.9036 6.95432 16.7107C6.76255 16.518 6.66666 16.2791 6.66666 15.994C6.66666 15.7091 6.76255 15.4722 6.95432 15.2834C7.14588 15.0945 7.38332 15 7.66666 15H15V7.66669C15 7.38335 15.0964 7.1458 15.2893 6.95402C15.482 6.76246 15.7209 6.66669 16.006 6.66669C16.2909 6.66669 16.5278 6.76246 16.7167 6.95402C16.9055 7.1458 17 7.38335 17 7.66669V15H24.3333C24.6167 15 24.8542 15.0965 25.046 15.2894C25.2375 15.482 25.3333 15.7209 25.3333 16.006C25.3333 16.2909 25.2375 16.5278 25.046 16.7167C24.8542 16.9056 24.6167 17 24.3333 17H17V24.3334C17 24.6167 16.9035 24.8541 16.7107 25.0457C16.518 25.2375 16.2791 25.3334 15.994 25.3334C15.7091 25.3334 15.4722 25.2375 15.2833 25.0457C15.0944 24.8541 15 24.6167 15 24.3334V17Z'/></svg>");
  --icon-minus: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'><path fill='currentColor' fill-rule='evenodd' d='M30 18.75L30.1279 18.7568C30.7582 18.8209 31.25 19.3528 31.25 20C31.25 20.6472 30.7582 21.1791 30.1279 21.2432L30 21.25H10C9.30964 21.25 8.75 20.6904 8.75 20C8.75 19.3096 9.30964 18.75 10 18.75H30Z'/></svg>");
  --icon-information: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path d='M10 0C4.47715 0 0 4.47703 0 10C0 15.523 4.47715 20 10 20C15.5228 20 20 15.523 20 10C20 4.47703 15.5228 0 10 0ZM10.9953 16.1225C10.7248 16.3927 10.3934 16.5273 10 16.5273C9.6068 16.5273 9.27492 16.3889 9.00484 16.1109C8.73481 15.8255 8.6 15.4975 8.6 15.1275C8.6 14.7418 8.73477 14.4141 9.00484 14.1439C9.27488 13.8743 9.60676 13.7388 10 13.7388C10.401 13.7388 10.7332 13.8698 10.9953 14.1323C11.265 14.4025 11.4001 14.734 11.4001 15.1275C11.4001 15.5207 11.265 15.8529 10.9953 16.1225ZM11.3538 5.36965L10.4511 12.3047C10.4203 12.5904 10.27 12.7334 10 12.7334C9.88426 12.7334 9.78371 12.6869 9.6993 12.5946C9.61422 12.5016 9.56402 12.4051 9.54867 12.3047L8.64606 5.36969C8.63055 5.23117 8.62313 5.05781 8.62313 4.84926C8.62313 4.50965 8.73887 4.1975 8.97016 3.91145C9.20164 3.61863 9.54449 3.47238 10 3.47238C10.4397 3.47238 10.7791 3.61512 11.0184 3.90047C11.2576 4.18617 11.3769 4.50191 11.3769 4.84926C11.3769 5.07297 11.3691 5.24695 11.3538 5.36965Z' fill='currentColor'/></svg>");
  --icon-close: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 41'><path fill='%23333' fill-rule='evenodd' d='M30.5404 9.20074C31.0075 9.14294 31.3899 9.26311 31.6879 9.56109C31.9858 9.85907 32.1061 10.2416 32.0482 10.7085C31.99 11.1756 31.7696 11.6005 31.3871 11.983L22.4955 20.8746L31.3871 29.7662C31.7695 30.1486 31.9901 30.5735 32.0482 31.0406C32.106 31.5075 31.9858 31.8901 31.6879 32.188C31.39 32.486 31.0073 32.6061 30.5404 32.5484C30.0734 32.4902 29.6485 32.2696 29.266 31.8873L20.3734 22.9957L11.4828 31.8873C11.1004 32.2697 10.6754 32.4902 10.2084 32.5484C9.74142 32.6062 9.35892 32.4859 9.06094 32.188C8.76295 31.8901 8.64279 31.5076 8.70059 31.0406C8.75878 30.5734 8.9792 30.1487 9.36172 29.7662L18.2523 20.8746L9.36074 11.983C8.97832 11.6005 8.75784 11.1756 8.69961 10.7085C8.64181 10.2417 8.76223 9.85904 9.05996 9.56109C9.35797 9.26308 9.74131 9.14291 10.2084 9.20074C10.6753 9.25903 11.1004 9.47949 11.4828 9.86187L20.3744 18.7535L29.266 9.86187C29.6485 9.47935 30.0733 9.25893 30.5404 9.20074Z'/></svg>");
}

@media screen and (max-width: 768px) {
  :root {
    --header-height: 60px;
  }
}

:where(:lang(en)) {
  --leading-trim: var(--is-support-lh, calc((1cap - 1lh) / 2)) var(--is-support-not-lh, 0px);
}

@supports not (top: 1lh) {
  :where(:root) {
    --is-support-lh: "";
    --is-support-not-lh: initial;
  }
}

*[data-intersection] {
  opacity: 0;
  transition: opacity 1s, transform .8s;
  transform: translateY(30px);
}

*[data-intersection][data-intersecting=true] {
  opacity: 1;
  transform: translateY(0);
}

/* =============================================================

Base

* ============================================================= */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  height: 100%;
  margin: 0;
  padding: 0;
  background: var(--white);
  font-size: 62.5%;

  touch-action: manipulation;
}

body {
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  color: var(--base-color);
  letter-spacing: .03em;
  font-weight: 400;
  font-size: calc(1.4rem + var(--slope-1px) * 4);
  font-family: var(--base-font-family);
  font-feature-settings: "palt";
  line-height: var(--line-height);
  -webkit-text-size-adjust: 100%;
}

body > * {
  backface-visibility: hidden;
}

:where(img, svg) {
  display: block;
  height: auto;
  max-width: 100%;
}

:where(svg path:not([fill])) {
  fill: currentColor;
}

:where(
button,
input:is([type="button" i], [type="submit" i], [type="reset" i]),
[role="tab" i],
[role="button" i],
[role="option" i]
),
::file-selector-button {
  touch-action: manipulation;
}

img[src$=".svg"] {
  opacity: 0;
}

a {
  color: var(--base-color);
  text-decoration: underline;

  text-decoration-thickness: 1px;
  text-underline-offset: .25em;
}

a:hover {
  text-decoration: none;
}

a.js-tel {
  text-decoration: none;
}

a.js-tel._active {
  color: var(--key-color);
  text-decoration: underline;
}

a.js-tel._inactive {
  color: var(--base-color);
  text-decoration: none;
}

button {
  cursor: pointer;
}

sup {
  vertical-align: super;
  font-size: 70%;
}

sub {
  vertical-align: sub;
  font-size: 70%;
}

*[data-anchor-id] {
  scroll-margin-top: var(--header-height);
}

*[data-toggle-id] {
  display: none;
}

*[data-intersection][data-intersection] {
  opacity: 0;
  transition: opacity .5s ease-out .4s;
}

*[data-intersection][data-intersection][data-intersecting=true] {
  opacity: 1;
  transition: opacity .5s ease-out .4s;
}

*[data-intersection][data-intersection-fade] {
  opacity: 0;
  transition: all .5s ease-out .2s;
}

*[data-intersection][data-intersection-fade][data-intersecting=true] {
  opacity: 1;
  transition: all .5s ease-out .2s;
}

*[data-intersection][data-intersection-fade-up] {
  opacity: 0;
  transition: opacity .4s ease-out .5s, transform 1.4s cubic-bezier(.215, .61, .355, 1) .5s;
  transform: translateY(60px);
}

*[data-intersection][data-intersection-fade-up][data-intersecting=true] {
  opacity: 1;
  transition: opacity .4s ease-out .5s, transform 1.4s cubic-bezier(.215, .61, .355, 1) .5s;
  transform: translateY(0);
}

*[data-intersection][data-intersection-scale] {
  opacity: 0;
  transition: all .5s cubic-bezier(.175, .885, .32, 1.275);
  transition-property: transform, opacity;
  transform: scale(.5);
}

*[data-intersection][data-intersection-scale][data-intersecting=true] {
  opacity: 1;
  transition: opacity 1.4s cubic-bezier(.215, .61, .355, 1) .5s, transform 1.4s cubic-bezier(.215, .61, .355, 1) .5s;
  transform: scale(1);
}

/* =============================================================

Loader

* ============================================================= */
.l-loader {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100000;
  display: grid;
  overflow: hidden;
  width: 100%;
  height: 100%;
  background: #fff;
  background: url(../img/logo.png) 50% 50%/300px auto no-repeat var(--bg-color);
  perspective: 10rem;
  transition: all .4s ease-in;
  will-change: opacity;
  pointer-events: none;

  place-items: center;
}

body.is-loaded .l-loader {
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
}

/* =============================================================

Wrapper

* ============================================================= */
.l-wrapper {
  position: relative;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  width: 100%;
  min-height: 100%;
  min-height: 100vh;
  margin: 0 auto;
  padding: 0;
}

@media print {
  .l-wrapper {
    min-width: 1080px;
  }
}

body[data-id=index] .l-wrapper {
  margin-bottom: -100px;
}

/* =============================================================

Contact

* ============================================================= */
.l-contact-container {
  position: relative;
  overflow: hidden;
  width: calc(100% + var(--padding)*2);
  max-width: calc(var(--contents-width-px)* var(--padding)* 2);
  margin-bottom: 100px;
  border-radius: var(--base-border-radius);

  --padding:calc(25px + var(--slope-1px) * 4);
  margin-inline: calc(-1* var(--padding));
}

@media screen and (max-width: 768px) {
  .l-contact-container {
    width: 100%;
    margin-bottom: 0;
  }
}

.l-contact {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 20px;
  max-width: calc(var(--contents-width-px)* var(--padding)* 2);
  padding: 64px;
  color: var(--white);

  padding-inline: var(--padding);
  padding-block: clamp(20px, -81.64706px + 13.23529vw, 83px);
  margin-inline: auto;
}

.l-contact::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  display: block;
  width: 100%;
  height: 100%;
  background: url("../img/contact-bg.png");
  background-size: cover;
}

.l-contact__head {
  text-align: center;
  font-weight: 500;
  font-style: normal;
  font-size: 36px;
  line-height: 100%;
}

.l-contact__body {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  width: 100%;
}

.l-contact-nav {
  flex: 1 1;
  color: #fff;
}

.l-contact-nav-button {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 20px;
  border-radius: var(--base-border-radius);
  background: var(--key-color);
  text-decoration: none;
  transition: scale .2s var(--animation), opacity .2s var(--animation);
}

@media (any-hover: hover) {
  .l-contact-nav-button:where(:hover) {
    opacity: .7;

    scale: .98;
  }
}

.l-contact-nav-button i {
  display: block;
  width: 50px;
  height: 50px;
}

.l-contact-nav-button i svg {
  width: 50px;
  height: 50px;
}

.l-contact-nav-button__head {
  color: var(--white, #fff);
  text-align: center;
  letter-spacing: .52px;
  font-weight: 700;
  font-size: 26px;
}

.l-contact-nav-button__body {
  color: var(--point-color);
  text-align: center;
  letter-spacing: .3px;
  font-weight: 700;
  font-size: 15px;
}

.l-contact-nav-button::after {
  content: "";
  position: absolute;
  right: .75em;
  bottom: .75em;
  aspect-ratio: 1;
  background: #fff;
  transition: all .2s ease-out;

  inline-size: 26px;
  -webkit-mask: var(--icon-external) 50% 50%/contain no-repeat;
          mask: var(--icon-external) 50% 50%/contain no-repeat;
}

/* =============================================================

sticky

* ============================================================= */
.l-sticky {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1002;
  display: flex;
  justify-content: center;
  align-items: center;
  width: calc(100% - 20px);
  height: var(--sticky-height);
  max-width: 800px;
  border-radius: var(--base-border-radius) var(--base-border-radius) 0 0;
  background: var(--key-color);
  opacity: 1;
  transition: translate .3s var(--animation), opacity .2s var(--animation);
  pointer-events: auto;

  margin-inline: auto;
  translate: 0 0;
}

@media screen and (max-width: 768px) {
  .l-sticky {
    width: 100%;
    max-width: 100%;
    border-radius: unset;
  }
}

.l-sticky-nav {
  display: flex;
  width: 100%;
  height: 100%;
}

.l-sticky-nav-button {
  position: relative;
  display: flex;
  flex: 1 1;
  justify-content: center;
  align-items: center;
  gap: 10px;
  width: 20%;
  color: #fff;
  text-decoration: none;
  transition: all .2s var(--animation);

  padding-block: 10px;
}

@media screen and (max-width: 768px) {
  .l-sticky-nav-button {
    display: flex;
    flex-direction: column;
    flex: 1 1;
    justify-content: center;
    align-items: center;
    gap: 8px;
    width: auto;

    padding-block: 10px;
    padding-inline: 0;
  }
}

@media (any-hover: hover) {
  .l-sticky-nav-button:where(:hover) {
    opacity: .7;
  }
}

.l-sticky-nav-button i {
  display: block;
  width: 24px;
  height: 24px;

  margin-block: var(--leading-trim);
}

.l-sticky-nav-button i svg {
  width: 24px;
  height: 24px;
}

.l-sticky-nav-button i :where(svg path) {
  fill: currentColor;
}

.l-sticky-nav-button span {
  word-break: keep-all;
  letter-spacing: .36px;
  font-weight: 700;
  font-style: normal;
  font-size: calc(12px + var(--slope-1px) * 6);

  margin-block: var(--leading-trim);
}

@media screen and (max-width: 768px) {
  .l-sticky-nav-button span {
    letter-spacing: .24px;
    font-weight: 500;
    font-size: 12px;
  }
}

.l-sticky-nav-button:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 1px;
  height: calc(100% - 20px);
  margin: auto;
  background: #fff;
}

/* =============================================================

Header

* ============================================================= */
/* header
=============================== */
.l-header {
  position: fixed;
  top: 0;
  left: 0;
  z-index: var(--header-z-index);
  z-index: 1001;
  display: grid;
  align-items: center;
  grid-template-columns: 1fr auto;
  gap: clamp(10px, -27.76224px + 3.4965vw, 20px);
  width: 100%;
  height: var(--header-height);
  padding-right: 1.0981%;
  background: var(--white);
  font-size: calc(11px + var(--slope-1px) * 1);
  transition: all .3s var(--animation), color .3s var(--animation);
}

@media screen and (max-width: 768px) {
  .l-header {
    display: grid;
    padding-right: 0;
    background: var(--white);
  }
}

@media print {
  .l-header {
    display: none;
    visibility: hidden;
    opacity: 0;
  }
}

.l-header::before {
  content: "";
  position: absolute;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  box-shadow: 0 0 6px 0 rgba(102, 102, 102, .4);
}

/* l-header-logo
=============================== */
.l-header-logo {
  position: relative;
  z-index: 1001;
  display: flex;
  flex-grow: 0;
  flex-shrink: 1;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: var(--header-height);
  max-width: 278px;

  padding-block: 24px;
  padding-inline: 24px 30px;
}

@media screen and (max-width: 560px) {
  .l-header-logo {
    width: 100%;
    max-width: 244px;
    padding: 4%;
  }
}

.l-header-logo a {
  position: relative;
  transition: opacity .25s;
}

.l-header-logo a img {
  width: 100%;
  min-width: 0%;
}

.l-header-logo a:hover {
  opacity: .8;
}

/* l-header-menu
=============================== */
.l-header-menu {
  z-index: 1;
  display: flex;
  flex-grow: 0;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  gap: clamp(15px, -41.64336px + 5.24476vw, 30px);
  height: var(--header-height);
  transition: opacity .4s cubic-bezier(.1, .91, .3, .98), visibility .4s cubic-bezier(.1, .91, .3, .98);
}

@media screen and (max-width: 1116px) {
  .l-header-menu {
    display: none;
    visibility: none;
    opacity: 0;
    pointer-events: none;
  }
  body.is-menu-nav-open .l-header-menu {
    position: fixed;
    inset: 0;
    z-index: 0;
    display: flex;
    visibility: visible;
    flex-direction: column;
    overflow-y: auto;
    width: 100%;
    height: calc(100% - var(--header-height));
    margin-top: var(--header-height);
    padding-bottom: var(--sticky-height);
    background: var(--white);
    opacity: 1;
    pointer-events: all;
  }
}

.l-header-menu__nav {
  display: grid;
  order: 1;
  justify-content: center;
  align-items: center;
  grid-template-columns: 100%;
  height: 100%;
}

@media screen and (max-width: 1116px) {
  .l-header-menu__nav {
    width: 100%;
  }
}

.l-header-menu__button {
  display: flex;
  order: 2;
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
}

@media screen and (max-width: 1116px) {
  .l-header-menu__button {
    display: none;
  }
}

.l-header-menu__button > .c-icon-button {
  flex: 1 1;
  width: 9.6em;
  height: 3.33333em;
}

/* l-header-toggle
=============================== */
.l-header-toggle {
  position: relative;
  z-index: 1003;
  display: flex;
  display: none;
  visibility: visible;
  visibility: hidden;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 12px;
  width: 60px;
  height: 60px;
  aspect-ratio: 1;
  padding: 1.125em;
  outline: none;
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  transition: all .5s cubic-bezier(.55, .05, .22, .99);
  pointer-events: all;
  -moz-appearance: none;
       appearance: none;
}

@media screen and (max-width: 1116px) {
  .l-header-toggle {
    display: flex;
    visibility: visible;
    justify-content: flex-end;
    align-items: center;
  }
}

.l-header-toggle span {
  position: relative;
  width: 35px;
  letter-spacing: .55px;
  font-weight: 600;
  font-style: normal;
  font-size: 11px;
  line-height: 1;
}

.l-header-toggle span:after {
  content: "CLOSE";
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 35px;
  background: var(--white);
  opacity: 0;
  transition: all .3s;
  transform: translateY(-50%);
}

.l-header-toggle > div {
  position: relative;
  width: 27px;
  height: 2px;
  border-radius: var(--ovall-radius);
  background: currentColor;
  transition: background .2s;
}

.l-header-toggle > div:before, .l-header-toggle > div:after {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  border-radius: var(--ovall-radius);
  background: currentColor;
}

.l-header-toggle > div:before {
  bottom: 7px;
  transition: background .2s, bottom .2s .2s, transform .2s;
}

.l-header-toggle > div:after {
  top: 7px;
  transition: background .2s, top .2s .2s, transform .2s;
}

body.is-menu-nav-open .l-header-toggle > div {
  background: transparent;
  transition: background .2s;
}

body.is-menu-nav-open .l-header-toggle > div:before {
  bottom: 0;
  transition: bottom .2s, transform .2s .2s;
  transform: rotate(45deg);
}

body.is-menu-nav-open .l-header-toggle > div:after {
  top: 0;
  transition: top .2s, transform .2s .2s;
  transform: rotate(-45deg);
}

body.is-menu-nav-open .l-header-toggle span:after {
  background: var(--white);
  opacity: 1;
  transform: translateY(0);
}

/* =============================================================

Main

* ============================================================= */
/* main
=============================== */
.l-main {
  position: relative;
  flex-grow: 1;
  width: 100%;
  min-height: 0%;
  max-height: 100%;

  margin-inline: auto;
}

.l-main-head {
  position: relative;
  width: calc(100% - var(--outer-padding)* 2);

  margin-inline: auto;
}

.l-main-body {
  width: calc(100% - var(--outer-padding)* 2);
  max-width: var(--contents-width-px);

  margin-inline: auto;
}

/* heading
=============================== */
.l-main-heading {
  position: relative;
  display: flex;
  flex-direction: column;
  row-gap: calc(26.5px + var(--slope-1px) * 11.5);
  width: calc(100% - var(--outer-padding)*2);
  max-width: var(--contents-width-px);

  padding-block: var(--header-height) calc(26.5px + var(--slope-1px) * 8.5);
  margin-inline: auto;
}

.l-main-heading::before {
  content: "";
  position: absolute;
  top: calc(var(--header-height));
  right: 0;
  left: 0;
  z-index: -1;
  display: block;
  width: 100cqi;
  height: 100%;
  background: var(--gradation_title, linear-gradient(180deg, #edeff2 0%, rgba(237, 239, 242, 0) 100%));

  margin-inline: calc(50% - 50cqi);
}

.l-main-heading::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: -1;
  display: block;
  width: 100cqi;
  height: calc(var(--header-height));
  background: #edeff2;

  margin-inline: calc(50% - 50cqi);
}

.l-main-title {
  display: flex;
  flex-direction: column;
  row-gap: calc(10px + var(--slope-1px) * 10);
}

/* breadcrumbs
=============================== */
.l-main-breadcrumbs {
  grid-area: main-breadcrumbs;

  padding-block: calc(15px + var(--slope-1px) * 5);
}

/* main banner
=============================== */
.l-main-banner {
  padding: 2.5em 0;
  background: var(--bg-color);
}

.l-main-banner__inner {
  width: 1080px;
  max-width: 91.21523%;
  margin: 0 auto;
}

@media screen and (max-width: 768px) {
  .l-main-banner__inner {
    width: 550px;
  }
}

.l-main-banner-list {
  display: flex;
  flex-wrap: wrap;
  width: 101.85185%;
  margin: -.92593% -.92593%;
  padding-top: 1px;
}

.l-main-banner-list__item {
  width: 20%;
  padding: .90909% .90909%;
}

@media screen and (max-width: 768px) {
  .l-main-banner-list__item {
    width: 50%;
  }
}

/* main showroom nav
=============================== */
.l-main-showroom-nav {
  padding: 5.85652% 0;
  background: var(--bg-color);
}

.c-section._bg + .l-main-showroom-nav {
  background: #fff;
}

.l-main-showroom-nav__inner {
  width: 1080px;
  max-width: 91.21523%;
  margin: 0 auto;
}

/* main category nav
=============================== */
.l-main-category-nav {
  padding: 4.39239% 0;
}

.c-section._bg + .l-main-showroom-nav + .l-main-category-nav {
  background: var(--bg-color);
}

.l-main-category-nav__inner {
  width: 1244px;
  max-width: 95.4612%;
  margin: 0 auto;
}

.l-main-category-nav__grid {
  display: flex;
  flex-wrap: wrap;
  width: calc(100% + 2px);
}

.l-main-category-nav__item {
  width: 33.33333%;
  padding-right: 2px;
}

@media screen and (max-width: 560px) {
  .l-main-category-nav__item {
    width: 100%;
    margin-top: 2px;
  }
}

.l-page[data-category=car] .l-main-category-nav__item[data-banner=car] {
  display: none;
}

.l-page[data-category=showroom] .l-main-category-nav__item[data-banner=campaign],
.l-page[data-category=campaign] .l-main-category-nav__item[data-banner=campaign],
.l-page[data-category=company] .l-main-category-nav__item[data-banner=campaign],
.l-page[data-category=other] .l-main-category-nav__item[data-banner=campaign] {
  display: none;
}

.l-page[data-id=welcome] .l-main-category-nav__item[data-banner=campaign] {
  display: block;
}

.l-page[data-category=maintenance] .l-main-category-nav__item[data-banner=maintenance] {
  display: none;
}

.l-page[data-id=welcome] .l-main-category-nav__item[data-banner=welcome] {
  display: none;
}

/* =============================================================

Footer

* ============================================================= */
.l-footer {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100cqi;
  padding-bottom: calc(var(--sticky-height));
  background: var(--base-color);

  margin-inline: calc(50% - 50cqi);
  padding-inline: var(--inner-padding);
}

z
.l-footer__head {
  width: 100%;
}

.l-footer__body {
  display: flex;
  width: 100%;
  max-width: var(--inner-width-px);
  margin-bottom: 117px;
  -moz-column-gap: 40px;
       column-gap: 40px;

  margin-inline: auto;
}

/* l-footer-contact
============================== */
.l-footer-contact {
  display: flex;
  flex-direction: column;
  gap: 30px;
  width: 100cqi;
  background: var(--grade-color);

  padding-block: calc(25px + var(--slope-1px) * 5);
  margin-inline: calc(50% - 50cqi);
  padding-inline: 29px;
}

@media screen and (max-width: 1116px) {
  .l-footer-contact {
    padding-inline: var(--outer-padding);
  }
}

@media screen and (max-width: 768px) {
  .l-footer-contact {
    padding-inline: 25px;
  }
}

.l-footer-contact__button {
  display: grid;
  justify-content: center;
  align-items: center;
  grid-template-rows: auto auto auto;
  grid-template-columns: repeat(3, 1fr);
  gap: 25px clamp(10px, -65.52448px + 6.99301vw, 30px);
}

@media screen and (max-width: 768px) {
  .l-footer-contact__button {
    grid-template-columns: 100%;
    width: 100%;
  }
}

/* l-footer-contact-button
============================== */
.l-footer-contact-button {
  position: relative;
  display: grid;
  justify-content: center;
  align-items: center;
  grid-template-rows: subgrid;
  grid-template-columns: 100%;
  grid-template-areas: "head" "body" "foot";
  grid-row: span 3;
  gap: clamp(20px, -17.76224px + 3.4965vw, 30px);
  overflow: hidden;
  border-radius: var(--base-border-radius);
  background: #425080;
  color: var(--white);
  text-align: center;
  text-decoration: none;
}

@media screen and (max-width: 768px) {
  .l-footer-contact-button {
    grid-template-rows: auto;
    grid-row: auto;
  }
}

.l-footer-contact-button__head {
  z-index: 1;
  grid-area: head;
  word-break: keep-all;
  overflow-wrap: anywhere;
  letter-spacing: 0;
  font-weight: 700;
  font-size: clamp(22px, 6.8951px + 1.3986vw, 26px);

  margin-block: calc(var(--leading-trim) + calc(36.5px + var(--slope-1px) * 8.5)) var(--leading-trim);
  padding-inline: clamp(16px, -48.1958px + 5.94406vw, 33px);
}

.l-footer-contact-button__body {
  z-index: 1;
  grid-area: body;
  max-width: 350px;
  word-break: keep-all;
  overflow-wrap: anywhere;
  letter-spacing: 0;
  font-weight: 500;
  font-size: clamp(14px, 6.44755px + .6993vw, 16px);

  padding-inline: clamp(16px, -48.1958px + 5.94406vw, 33px);
  margin-block: var(--leading-trim);
  margin-inline: auto;
}

.l-footer-contact-button__foot {
  grid-area: foot;

  padding-inline: clamp(23px, -14.76224px + 3.4965vw, 33px);
}

.l-footer-contact-button__foot .c-button._full {
  z-index: 1;
  max-width: 350px;
  font-size: clamp(14px, -1.1049px + 1.3986vw, 18px);

  margin-inline: auto;
  margin-block: var(--leading-trim) calc(var(--leading-trim) + calc(36.5px + var(--slope-1px) * 8.5));
}

.l-footer-contact-button__image {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  opacity: .35;
  transition: opacity var(--t-duration) ease-out, scale .3s ease-out;
}

.l-footer-contact-button__image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

@media (any-hover: hover) {
  :is(a:hover.l-footer-contact-button) .l-footer-contact-button__image {
    opacity: .2;

    scale: 1.02;
  }
}

/* l-footer-logo
=============================== */
.l-footer-profile {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  width: 100%;
  margin-top: 80px;
  margin-top: calc(50px + var(--slope-1px) * -10);
  margin-bottom: calc(50px + var(--slope-1px) * 10);
  color: var(--white);
  text-align: center;
  font-weight: 500;
  font-size: 1.2rem;
  font-size: calc(11px + var(--slope-1px) * 3);
}

.l-footer-profile__head {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  margin-bottom: calc(10px + var(--slope-1px) * 10);
}

.l-footer-profile__hansha {
  /* 27px */
  letter-spacing: .9px;
  font-weight: 500;
  font-style: normal;
  font-size: 18px;
  line-height: 150%;
}

.l-footer-copyright {
  justify-self: flex-end;
  text-align: right;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

/* .l-footer-sitemap
============================== */
.l-footer-sitemap {
  width: 100%;
  max-width: var(--inner-width-px);

  margin-inline: auto;
  padding-block: calc(25px + var(--slope-1px) * 55) calc(25px + var(--slope-1px) * 15);
}

/* ============================================================= *

Grid

* ============================================================= */
/* c-grid
=============================== */
.c-grid {
  display: grid;
  grid-template-columns: repeat(var(--columns), minmax(min(0px, 100%), 398px));
  gap: calc(10px + var(--slope-1px) * 10);

  place-content: center;
  margin-inline: auto;
}

.c-grid .c-button {
  max-width: 100%;
}

.c-grid .c-bannr {
  max-width: 100%;
}

.c-grid._x4 {
  max-width: 100%;

  --columns:4;
}

.c-grid._x3 {
  max-width: 100%;

  --columns:3;
}

@media screen and (max-width: 768px) {
  .c-grid._x3\:tablet {
    --columns:3;
  }
}

@media screen and (max-width: 560px) {
  .c-grid._x3\:mobile {
    --columns:3;
  }
}

.c-grid._x2 {
  --columns:2;
}

.c-grid._x1 {
  grid-template-columns: repeat(var(--columns), minmax(min(0px, 100%), 398px));
  max-width: 100%;

  --columns:1;
}

@media screen and (max-width: 768px) {
  .c-grid._x1\:tablet {
    --columns:1;
  }
}

@media screen and (max-width: 560px) {
  .c-grid._x1\:mobile {
    --columns:1;
  }
}

@media screen and (max-width: 768px) {
  .c-grid._x2\:tablet {
    --columns:2;
  }
}

@media screen and (max-width: 560px) {
  .c-grid._x2\:mobile {
    --columns:2;
  }
}

/* ============================================================= *

Navigation

* ============================================================= */
/* breadcrumbs
=============================== */
.c-breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  row-gap: 1em;
  width: 100%;
  max-width: calc(var(--inner-width-px) + var(--inner-padding) * 2);
  font-size: calc(13px + var(--slope-1px));

  margin-inline: auto;
}

.c-breadcrumbs > li {
  display: flex;
  align-items: center;
  /* -0.375em for line-height offset */
  margin-top: -.375em;
  margin-bottom: -.375em;
  letter-spacing: 0;
}

.c-breadcrumbs > li + li:before {
  content: "";
  position: relative;
  display: inline;
  width: calc(9px + var(--slope-1px) * 1);
  height: calc(9px + var(--slope-1px) * 1);
  aspect-ratio: 1/1;
  margin: 0 .61538em;
  background: var(--icon-angle) 100% 100%/100% 100% no-repeat;

  rotate: -90deg;
}

.c-breadcrumbs > li a {
  color: var(--base-color);
  text-decoration: underline;
  transition: all .2s ease-out;

  text-underline-offset: .25em;
}

.c-breadcrumbs > li a:hover {
  text-decoration: none;
}

/* c-anchor
=============================== */
.c-anchor-block {
  display: flex;
  align-items: center;
  gap: calc(15px + var(--slope-1px) * 15);
  padding: calc(20px + var(--slope-1px) * 10) calc(15px + var(--slope-1px) * 25);
  border-radius: 10px;
  background: var(--lightgray);
}

.c-anchor__list {
  display: flex;
  flex-wrap: wrap;
  gap: calc(15px + var(--slope-1px) * 15);
}

.c-anchor__item {
  display: inherit;
  min-width: -moz-fit-content;
  min-width: fit-content;
}

.c-anchor-nav {
  position: relative;
  display: flex;
  align-items: center;
  gap: 5px;
  text-decoration: none;
  font-weight: 500;
  font-size: calc(12px + var(--slope-1px) * 4);
  line-height: 150%;
  transition-timing-function: var(--animation);
  transition-duration: var(--t-duration);
  transition-property: color;
  -moz-appearance: none;
       appearance: none;
  /* 24px */

  text-decoration-line: underline;
  text-decoration-style: solid;
  text-decoration-skip-ink: auto;
  text-decoration-thickness: auto;
  text-underline-offset: auto;
  text-underline-position: from-font;
}

.c-anchor-nav span {
  text-align: center;
  word-break: keep-all;

  margin-block: var(--leading-trim);
}

.c-anchor-nav:after {
  content: "";
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: .625em;
  height: .625em;
  aspect-ratio: 1 / 1;
  margin: auto 0;
  border-radius: 100%;
  background: currentColor;

  -webkit-mask-image: var(--icon-angle);

          mask-image: var(--icon-angle);
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: contain;
          mask-size: contain;
  -webkit-mask-position: center center;
          mask-position: center center;
}

@media (any-hover: hover) {
  :is(a:hover .c-anchor-nav, a.c-anchor-nav:hover) {
    color: var(--key-color);
  }
}

/* c-button
=============================== */
.c-button {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: calc(5px + var(--slope-1px) * 5);
  overflow: hidden;
  width: 100%;
  height: 3.55556em;
  max-width: 19.44444em;
  /* style */
  border: none;
  border-radius: var(--ovall-radius);
  background: var(--_bg-color);
  box-shadow: 0 0 6px 0 rgba(102, 102, 102, .4);
  color: var(--_color);
  text-decoration: none;
  font-weight: 500;
  /* Layout */
  font-size: calc(16px + var(--slope-1px) * 2);
  transition-timing-function: var(--animation);
  transition-duration: var(--t-duration);
  transition-property: transform, color, background;
  -moz-appearance: none;
       appearance: none;

  --_color:var(--base-color);
  --_hover-color: var(--white);
  --_bg-color: var(--white);
  --_hover-bg-color: var(--base-color);
  padding-inline: 1.22222em;
  padding-block: 1.25em;
}

.c-button._primary {
  position: relative;
  box-shadow: unset;

  --_color: var(--white);
  --_hover-bg-color: var(--base-color);
}

.c-button._primary::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  background: var(--grade-color);
  transition: opacity var(--t-duration) var(--animation);
}

.c-button._primary::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  background: var(--_hover-bg-color);
  transition: opacity var(--t-duration) var(--animation);
}

.c-button._secondary {
  --_color: var(--white);
  --_hover-bg-color: var(--base-color);
  --_bg-color:var(--key-color);
}

.c-button._border {
  --_bg-color: transparent;
}

.c-button.js-scroll span:after {
  width: calc(12px + var(--slope-1px) * 2);
  height: calc(12px + var(--slope-1px) * 2);

  -webkit-mask-image: var(--icon-angle);

          mask-image: var(--icon-angle);
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center center;
          mask-position: center center;
}

.c-button.js-scroll:after {
  opacity: 0;
}

.c-button._full {
  width: 100%;
  max-width: 100%;
}

@media screen and (max-width: 768px) {
  .c-button {
    height: 3.125em;
    max-width: 15.9375em;

    padding-inline: 1.1875em;
    padding-block: 1em;
  }
}

.c-button > span {
  z-index: 2;
  display: grid;
  align-items: center;
  grid-template-columns: 1.11111em auto 1.11111em;
  width: 100%;
  text-align: center;
  word-break: keep-all;
  overflow-wrap: anywhere;
  letter-spacing: 0;
  line-height: 1.3;

  margin-block: var(--leading-trim);
}

@media screen and (max-width: 768px) {
  .c-button > span {
    grid-template-columns: .75em auto .75em;
  }
}

.c-button > span::before {
  content: "";
  grid-column: 1/2;
}

.c-button > span::after {
  content: "";
  position: relative;
  display: block;
  grid-column: 3/4;
  width: calc(12px + var(--slope-1px) * 8);
  height: calc(12px + var(--slope-1px) * 8);
  background: currentColor;

  -webkit-mask-image: var(--icon-arrow);

          mask-image: var(--icon-arrow);
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: contain;
          mask-size: contain;
}

.c-button svg path:not([fill]) {
  fill: var(--_color);
  transition: color var(--t-duration) var(--animation);
}

@media (any-hover: hover) {
  :is(a:hover .c-button, a.c-button:hover, button:hover .c-button, button.c-button:hover) {
    background: var(--_hover-bg-color);
    color: var(--_hover-color);
  }
  :is(a:hover .c-button, a.c-button:hover, button:hover .c-button, button.c-button:hover):after {
    opacity: 1;
  }
  :is(a:hover .c-button, a.c-button:hover, button:hover .c-button, button.c-button:hover):before {
    opacity: 0;
  }
}

/* c-button-wrap
============================== */
.c-button-wrap {
  position: relative;
  display: block;
  width: 100%;
  text-decoration: none;

  --label-pos: 14px;
}

.c-button-wrap:has(.c-button-wrap__label) {
  margin-top: var(--label-pos);
}

.c-button-wrap:has(.c-button-wrap__label) .c-button span {
  padding-top: 6px;
}

.c-button-wrap__label {
  position: absolute;
  top: calc(var(--label-pos) * -1);
  right: 0;
  left: 0;
  z-index: 1;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 81.81818%;
  height: 2em;
  min-width: 200px;
  border: 1px solid var(--key-color);
  border-radius: 2em;
  background: #fff;
  color: var(--key-color);
  font-weight: bold;
  font-size: 12px;
  transition: all var(--t-duration) var(--animation);

  margin-inline: auto;
  padding-inline: 2px;
}

@media screen and (max-width: 768px) {
  .c-button-wrap__label {
    width: 180px;
    min-width: -moz-fit-content;
    min-width: fit-content;
  }
}

.c-button-wrap__label:after {
  content: "";
  position: absolute;
  top: calc(100% - 1px);
  right: 0;
  left: 0;
  display: block;
  width: 10px;
  height: 5px;
  background: inherit;
  clip-path: polygon(0 0, 100% 0, 50% 100%);

  margin-inline: auto;
}

.c-button-wrap:has(.c-button._large) {
  --label-pos: 21px;
}

.c-button-wrap:has(.c-button._large) .c-button-wrap__label {
  min-width: -moz-fit-content;
  min-width: fit-content;
  font-size: calc(13px + var(--slope-1px) * 1);
}

@media screen and (max-width: 768px) {
  .c-button-wrap:has(.c-button._large) .c-button-wrap__label {
    width: calc(100% - 10px);
  }
}

.c-button-wrap:has(.c-button._large) .c-button-wrap__label:after {
  width: 14px;
  height: 7px;
}

/* container */
.c-button-container {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1em;
  justify-items: center;
  width: 100%;
  margin-top: calc(40px + var(--slope-1px) * 10);

  place-content: center;
}

.c-button-container > .c-button {
  min-width: 360px;
  max-width: 360px;
}

@media screen and (max-width: 560px) {
  .c-button-container > .c-button {
    min-width: 100%;
    max-width: 100%;
  }
}

/* c-icon-button
=============================== */
.c-icon-button {
  position: relative;
  position: relative;
  display: grid;
  justify-content: center;
  align-items: center;
  grid-template-rows: auto;
  grid-template-columns: auto auto auto;
  gap: calc(5px + var(--slope-1px) * 5);
  overflow: hidden;
  width: 100%;
  max-width: 18.66667em;
  border: unset;
  border-radius: var(--ovall-radius);
  background: var(--_bg-color);
  color: var(--_color);
  text-decoration: none;
  font-weight: 500;
  font-size: calc(13px + var(--slope-1px) * 2);
  -moz-appearance: none;
       appearance: none;

  --_bg-color:var(--white);
  --_color:var(--white);
  --_hover-color: var(--white);
  --_hover-bg-color: var(--base-color);
  place-content: center;
  padding-block: 1.2em;
}

.c-icon-button::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  background: var(--grade-color);
  transition: opacity var(--t-duration) var(--animation);
}

.c-icon-button::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  background: var(--_hover-bg-color);
  transition: opacity var(--t-duration) var(--animation);
}

@media screen and (max-width: 768px) {
  .c-icon-button {
    max-width: 100%;
  }
}

.c-icon-button span {
  z-index: 1;
  grid-column: 2/3;
  text-align: center;
  word-break: keep-all;
  overflow-wrap: anywhere;
  letter-spacing: 0;
  font-weight: 700;
  line-height: 1.3;

  margin-block: var(--leading-trim);
}

.c-icon-button svg {
  z-index: 1;
  width: 1.6em;
  height: 1.6em;
}

.c-icon-button svg path[fill] {
  fill: var(--_color);
  transition: color var(--t-duration) var(--animation);
}

@media (any-hover: hover) {
  :is(a:hover .c-icon-button, a.c-icon-button:hover, button:hover .c-icon-button, button.c-icon-button:hover) {
    background: var(--_hover-bg-color);
    color: var(--_hover-color);
  }
  :is(a:hover .c-icon-button, a.c-icon-button:hover, button:hover .c-icon-button, button.c-icon-button:hover):after {
    opacity: 1;
  }
  :is(a:hover .c-icon-button, a.c-icon-button:hover, button:hover .c-icon-button, button.c-icon-button:hover):before {
    opacity: 0;
  }
}

/* banner
=============================== */
.c-banner {
  display: grid;
  height: 100%;
  padding: 20px 10px;
  border-radius: 20px;
  background: var(--white);
  box-shadow: 0 0 8px 0 rgba(68, 64, 63, .25);
  transition: opacity var(--t-duration);

  place-content: center;
}

@media (any-hover: hover) {
  .c-banner:where(:hover) {
    opacity: .7;
  }
}

/* tab
=============================== */
*[data-tab-id] {
  display: none;
}

*[data-tab-id].is-current {
  display: block;
}

.c-tab {
  overflow: hidden;
  margin-bottom: calc(50px + var(--slope-1px) * 30);
}

.c-tab__list {
  display: flex;
  justify-content: center;
  align-items: flex-end;
  gap: calc(4px + var(--slope-1px) * 36);
  width: 100%;
  margin: auto;
  border-bottom: 1px solid var(--base-color);

  padding-inline: calc(6px + var(--slope-1px) * 34);
}

.c-tab__item {
  z-index: 1;
  display: flex;
  align-items: stretch;
  width: 50%;
  height: calc(64px + var(--slope-1px) * 16);
  margin-bottom: -2px;
}

.c-tab__button {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  overflow: visible;
  width: 100%;
  padding: 1em .25em;
  outline: none;
  border: 1px solid var(--lightgray);
  border-bottom-width: 1px;
  border-radius: var(--base-border-radius) var(--base-border-radius) 0 0;
  background: var(--lightgray);
  text-align: center;
  text-decoration: none;
  font-weight: 500;
  font-size: calc(14px + var(--slope-1px) * 4);
  line-height: 1.2;
  cursor: pointer;
  transition: background var(--t-duration);
}

.c-tab__button:after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  z-index: 2;
  display: block;
  width: calc(100% + 4px);
  border-bottom: 1px solid var(--base-color);
  transform: translateX(-50%);
}

@media screen and (max-width: 768px) {
  .c-tab__button {
    font-size: .98214em;
  }
}

.c-tab__button span {
  display: block;
  margin-bottom: 1em;
  font-size: .8em;
}

.c-tab__button em {
  font-size: 1.4em;
}

.c-tab__button.is-current {
  border: 1px solid var(--base-color);
  background: var(--white);
  color: var(--base-color);
}

.c-tab__button.is-current:after {
  width: 100%;
  border-bottom: 1px solid var(--white);
}

/* for tab.js view control */
.js-tab-channel {
  display: none;
}

.js-tab-channel.is-current {
  display: block;
}

/* ============================================================= *

Section

* ============================================================= */
.c-section {
  display: flex;
  flex-direction: column;
  align-content: center;
  gap: calc(25px + var(--slope-1px) * 15);
}

.c-section:not(:first-child) {
  margin-top: calc(50px + var(--slope-1px) * 30);
}

.c-section:last-child {
  margin-bottom: calc(50px + var(--slope-1px) * 30);
}

.c-section._no-space {
  margin-top: 0;
}

.c-section:has(.c-section__foot) {
  display: grid;
  align-content: center;
  grid-template-columns: 1fr auto;
}

@media screen and (max-width: 768px) {
  .c-section:has(.c-section__foot) {
    grid-template-columns: 100%;
  }
}

.c-section:has(.c-section__foot) .c-section__head {
  align-self: flex-end;
}

@media screen and (min-width: 769px) {
  .c-section:has(.c-section__foot) .c-section__body {
    grid-column: span 2;
  }
}

.c-section__head {
  align-self: flex-start;
  width: 100%;
}

.c-section__foot {
  display: flex;
}

@media screen and (min-width: 769px) {
  .c-section__foot {
    justify-content: flex-end;
    grid-column: 2 / 3;
    grid-row: 1 / 2;
  }
}

@media screen and (max-width: 768px) {
  .c-section__foot {
    justify-content: center;
  }
}

.c-section__foot .c-button {
  width: 320px;
  max-width: 320px;
}

@media screen and (max-width: 768px) {
  .c-section__foot .c-button {
    max-width: 100%;
  }
}

/* inner section
=============================== */
.c-inner-section {
  margin-top: calc(40px + var(--slope-1px) * 20);
}

.c-inner-section__head {
  margin-bottom: calc(10px + var(--slope-1px) * 10);
}

/* ============================================================= *

Table

* ============================================================= */
/* scroll container
=============================== */
.c-table-container {
  position: relative;
  overflow: auto;
  width: 100%;
  background-color: #fff;
}

@media screen and (max-width: 768px) {
  .c-table-container {
    overflow-x: scroll;
    width: calc(100% + var(--contents-padding-inline));
    padding-right: var(--contents-padding-inline);
    background: linear-gradient(to left, rgba(255, 255, 255, 0), #fff 15px) 0 0/50px 100%, linear-gradient(to left, rgba(255, 255, 255, 0), rgba(0, 0, 0, .2)) 0 0/20px 100%, linear-gradient(to right, rgba(255, 255, 255, 0), #fff 15px) right/50px 100%, linear-gradient(to right, rgba(255, 255, 255, 0), rgba(0, 0, 0, .2)) right/20px 100%;
    background-color: #fff;
    background-attachment: local, scroll, local, scroll;
    background-repeat: no-repeat;
  }
}

.c-table-container + .c-table-container {
  margin-top: 5rem;
}

.c-table-container > * {
  min-width: 50em;
}

.c-table-container > ._stretch {
  min-width: auto;
}

.c-table-container:has(._stretch) {
  width: 100%;
}

/* data table
=============================== */
.c-data-table {
  width: 100%;
  border-collapse: collapse;
  border-top: 1px solid var(--gray);
  border-left: 1px solid var(--gray);
}

.c-data-table._fixed {
  table-layout: fixed;
}

.c-data-table th,
.c-data-table td {
  padding: 1.25em .75em;
  border-right: 1px solid var(--gray);
  border-bottom: 1px solid var(--gray);
  text-align: center;
}

@media screen and (max-width: 768px) {
  .c-data-table th,
  .c-data-table td {
    padding-inline: .25em;
  }
}

.c-data-table thead th {
  background: rgba(0, 0, 0, .6);
  color: #fff;
}

.c-data-table thead th > small {
  display: block;
  margin-top: .25em;
  font-size: calc(12px + var(--slope-1px) * 2);
}

.c-data-table tbody th {
  background: var(--key-color);
  color: var(--white);
}

.c-data-table tbody td {
  width: 16.66667%;
  border-right: 1px solid var(--lightgray);
  border-bottom: 1px solid var(--lightgray);
}

.c-data-table tbody small {
  font-size: calc(11px + var(--slope-1px) * 1);
}

/* profile table
=============================== */
.c-profile-table {
  position: relative;
  width: 100%;
  border-collapse: collapse;
  font-size: calc(14px + var(--slope-1px) * 4);
}

.c-profile-table::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  width: 100%;
  height: 1px;
  border-top: 1px dashed var(--gray);
}

.c-profile-table tr {
  position: relative;
}

.c-profile-table tr::before {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  border-bottom: 1px dashed var(--gray);
}

.c-profile-table th,
.c-profile-table td {
  padding: 1.27778em 0;

  margin-block: var(--leading-trim);
}

.c-profile-table th {
  min-width: 7.88889em;
  text-align: left;
  font-weight: bold;
}

@media screen and (max-width: 768px) {
  .c-profile-table th {
    min-width: 4.71429em;
  }
}

.c-profile-table td {
  padding-left: 1em;
}

@media screen and (min-width: 769px) {
  .c-profile-table td {
    padding-left: 1em;
  }
}

/* ============================================================= *

Text

* ============================================================= */
/* lead
=============================== */
.c-lead {
  text-align: left;
}

.c-lead > p {
  /* -0.375em for line-height offset */
  margin-top: -.375em;
  margin-bottom: -.375em;
}

.c-lead > p em {
  font-weight: 500;
}

.c-lead > p + p {
  margin-top: 1em;
}

/* text
=============================== */
.c-text {
  margin-top: var(--leading-trim);
  text-align: left;
  font-size: calc(14px + var(--slope-1px) * 4);
  line-height: 1.5;
}

.c-text + .c-text {
  margin-top: calc(var(--leading-trim) + calc(15px + var(--slope-1px) * 15));
}

.c-text._center {
  text-align: center;
}

/* notes
=============================== */
.c-notes {
  margin-top: 4rem;
  font-size: calc(12px + var(--slope-1px) * 2);
}

.c-notes > li {
  padding-left: 1em;
  text-indent: -1em;
}

.c-notes > li + li {
  margin-top: .25em;
}

.c-notes > li:before {
  content: "\203b";
}

.c-notes > li._strong {
  color: var(--key-color);
}

.c-notes._dot > li:before {
  content: "\30fb";
}

.c-notes._square > li:before {
  content: "\25a0";
}

.c-notes._star > li:before {
  content: "\2605";
}

.c-notes > li._dot:before {
  content: "\30fb";
}

.c-notes > li._square:before {
  content: "\25a0";
}

.c-notes > li._star:before {
  content: "\2605";
}

/* ============================================================= *

Title

* ============================================================= */
/* c-page-title
============================== */
.c-page-title {
  text-align: center;
  letter-spacing: .05em;
  font-weight: 700;
  font-weight: 500;
  font-style: normal;
  font-size: calc(26px + var(--slope-1px) * 10);
  line-height: 1;

  margin-block: var(--leading-trim);
}

.c-page-category {
  position: relative;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  color: var(--gray);
  text-align: center;
  text-transform: uppercase;
  letter-spacing: .05em;
  font-weight: 500;
  font-size: calc(12px + var(--slope-1px) * 4);
  font-family: var(--en-font-family);
  line-height: 1;

  margin-block: var(--leading-trim);
}

/* c-section-title
============================== */
.c-section-title {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0 calc(25px + var(--slope-1px) * 15);
  margin-top: var(--leading-trim);
  font-weight: 700;
  font-size: calc(18px + var(--slope-1px) * 6);
  line-height: 1.7;
}

.c-section-title._white::before {
  color: var(--white);
}

.c-section-title::before {
  content: attr(data-en);
  position: relative;
  display: block;
  grid-column: 1/3;
  grid-row: 2/3;
  color: var(--gray, #999);
  /* 14px */
  text-transform: uppercase;
  font-weight: 500;
  font-size: calc(12px + var(--slope-1px) * 2);
  font-family: var(--en-font-family);
  line-height: 100%;
}

.c-section-title::after {
  content: "";
  position: relative;
  align-self: center;
  grid-column: 2/3;
  grid-row: 1/2;
  width: 100%;
  height: 1px;
  background: currentColor;
}

.c-section-title._has-wbr {
  word-break: keep-all;
  overflow-wrap: anywhere;
}

/* c-sub-title
============================== */
.c-sub-title {
  position: relative;
  display: inline-flex;
  justify-content: flex-start;
  align-items: center;
  gap: .19048em;
  width: 100%;
  padding-left: .95238em;
  font-weight: 500;
  font-size: calc(16px + var(--slope-1px) * 5);
  line-height: 1.5;

  margin-block: var(--leading-trim);
}

.c-sub-title::before {
  content: "";
  position: absolute;
  top: calc((1lh - .47619em) / 2);
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: .47619em;
  height: .47619em;
  margin-left: calc(-1 * .95238em);
  border-radius: 50%;
  background: var(--key-color);
}

/* detailed title
=============================== */
.c-detailed-title {
  font-weight: 500;
  font-size: calc(18px + var(--slope-1px) * 6);
}

.c-detailed-title span {
  display: block;
}

/* ============================================================= *

Blog

* ============================================================= */
.c-blog-container__table {
  width: 100%;
}

.c-blog-container__td > article + article {
  margin-top: calc(25px + var(--slope-1px) * 15);
}

.c-blog-container img {
  display: inline;
}

.c-blog-container article {
  padding: calc(15px + var(--slope-1px) * 25) calc(15px + var(--slope-1px) * 25) calc(30px + var(--slope-1px) * 10);
  border: 1px solid var(--gray, #999);
  border-radius: 10px;
}

.c-blog-container .blog__header {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: .75em 2em;
  width: 100%;
  padding: calc(20px + var(--slope-1px) * 12);
  border-radius: 5px;
  background: var(--lightgray);

  scroll-margin-top: calc(var(--header-height) + calc(15px + var(--slope-1px) * 25));
}

@media screen and (max-width: 768px) {
  .c-blog-container .blog__header {
    flex-direction: column;
    align-items: flex-start;
  }
}

.c-blog-container .blog__title {
  font-weight: bold;
  font-size: calc(18px + var(--slope-1px) * 6);
  line-height: 1;
}

.c-blog-container .blog__date {
  font-weight: 500;
  font-size: calc(12px + var(--slope-1px) * 4);
}

.c-blog-container .blog__body {
  padding-top: calc(25px + var(--slope-1px) * 15);
  word-break: break-all;
}

.c-blog-container .blog__body img {
  height: auto;
  max-width: 1080px;
}

@media screen and (max-width: 768px) {
  .c-blog-container .blog__body img {
    max-width: 100%;
  }
}

.c-blog-container .blog__paging {
  margin-top: calc(15px + var(--slope-1px) * 5);
  text-align: right;
}

.c-blog-container .blog__paging a {
  color: var(--key-color);
}

.c-blog-container .blog__paging + article {
  margin-top: calc(15px + var(--slope-1px) * 5);
}

.c-blog-container .blog__paging:has(+ article) {
  margin-top: 0px;
}

/* ============================================================= *

blog-card

* ============================================================= */
.c-blog-card-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: calc(15px + var(--slope-1px) * 15);
}

@media screen and (max-width: 768px) {
  .c-blog-card-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

.c-blog-card {
  display: flex;
  display: flex;
  flex-direction: column;
  flex-direction: column;
  align-items: flex-start;
  gap: calc(25px + var(--slope-1px) * 15);
  overflow: hidden;
  max-width: 340px;
  padding: calc(15px + var(--slope-1px) * 5) calc(15px + var(--slope-1px) * 5) calc(25px + var(--slope-1px) * 15) calc(15px + var(--slope-1px) * 5);
  border-radius: 10px;
  background: var(--white);
  /* btn */
  box-shadow: 0 0 6px 0 rgba(102, 102, 102, .4);
  text-decoration: none;
}

.c-blog-card:has(.c-blog-card__shop) {
  gap: calc(15px + var(--slope-1px) * 5);
}

.c-blog-card:hover .c-blog-card__image img {
  opacity: .7;
  transform: scale(1.03);
}

.c-blog-card__image {
  overflow: hidden;
  width: 100%;
  height: 100%;
  aspect-ratio: 4/3;
  background: var(--base-color);
}

.c-blog-card__image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: all .3s;
}

.c-blog-card__contents {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  align-self: stretch;
  gap: calc(10px + var(--slope-1px) * 5);
}

.c-blog-card__shop {
  display: flex;
  justify-content: center;
  align-items: center;
  min-width: 10.08333em;
  padding: 5px 30px;
  border-radius: var(--ovall-radius);
  background: var(--lightgray);
  text-align: center;
  font-size: calc(10px + var(--slope-1px) * 2);
  line-height: 1;
}

.c-blog-card__title {
  display: -webkit-box;
  overflow: hidden;
  text-overflow: ellipsis;
  font-weight: 700;
  font-size: calc(14px + var(--slope-1px) * 4);

  margin-block: var(--leading-trim);
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
}

.c-blog-card__text {
  display: -webkit-box;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: calc(12px + var(--slope-1px) * 4);
  line-height: 1.5;

  margin-block: var(--leading-trim);
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.c-blog-card__date {
  font-weight: 500;
  font-style: normal;
  font-size: calc(12px + var(--slope-1px) * 4);
  font-family: var(--en-font-family);
  line-height: 1.5;

  margin-block: var(--leading-trim);
}

/* ============================================================= *

CMN-blog

* ============================================================= */
/* CMN-blog
=============================== */
.CMS-blog__head, .CMS-blog__heed {
  margin-bottom: 3rem;
}

/* CMN-blog-block
=============================== */
.CMS-blog-block {
  padding: calc(15px + var(--slope-1px) * 25);
  border: 1px solid var(--gray);
  border-radius: var(--base-border-radius);
}

.CMS-blog-block__head {
  margin-bottom: calc(32px + var(--slope-1px) * 8);
}

.CMS-blog-block__body strong {
  font-weight: bold;
}

.CMS-blog-block__body em {
  font-style: italic;
}

.CMS-blog-block__body u {
  text-decoration: underline;
}

.CMS-blog-block__body img {
  display: inline;
}

.CMS-blog-block__foot {
  margin-top: 4rem;
  padding-top: 2.5rem;
  border-top: 1px solid #ccc;
}

.CMS-blog-block-table {
  width: 100%;
}

/* CMN-blog-heading
=============================== */
.CMS-blog-heading {
  display: flex;
  align-items: center;
  gap: 14px 1em;
  width: 100%;
  padding: calc(16px + var(--slope-1px) * 13) calc(15px + var(--slope-1px) * 17);
  border-radius: 8px;
  background: var(--lightgray);
}

@media screen and (max-width: 768px) {
  .CMS-blog-heading {
    flex-direction: column;
    align-items: flex-start;
  }
}

.CMS-blog-heading__main {
  flex-grow: 1;
}

.CMS-blog-heading__sub {
  flex-shrink: 0;
  margin-left: auto;
}

@media screen and (max-width: 768px) {
  .CMS-blog-heading__sub {
    margin-top: pxToRemt(18);
    margin-left: 0;
  }
}

.CMS-blog-heading__author {
  display: none;
  /* -0.375em for line-height offset */
  margin-top: -.375em;
  margin-bottom: .76786em;
  font-size: 1.4rem;
}

.CMS-blog-heading__author:before {
  content: "-";
  margin-right: .25em;
}

.CMS-blog-heading__title {
  font-weight: 700;
  font-size: calc(18px + var(--slope-1px) * 6);
  line-height: 1.5;

  margin-block: var(--leading-trim);
}

.CMS-blog-heading__date {
  display: flex;
  align-items: center;
  color: var(--base-color);
  font-weight: 500;
  font-size: calc(12px + var(--slope-1px) * 4);
  font-family: var(--en-font-family);

  margin-block: var(--leading-trim);
}

.CMS-blog-heading__date > i {
  display: none;
}

/* ============================================================= *

calendar

* ============================================================= */
.c-calendar {
  position: relative;
}

/* c-calendar-item
============================== */
.c-calendar-item {
  flex: 1 1;
  overflow: hidden;
  border: 1px solid var(--gray);
  border-radius: 10px;
  background: var(--white);
}

.c-calendar-item__contents {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: calc(25px + var(--slope-1px) * 7);
  font-family: var(--en-font-family);
}

.c-calendar-item__head {
  position: relative;
  text-align: left;
  font-weight: 500;
  font-size: calc(30px + var(--slope-1px) * 6);
  line-height: .7;

  margin-block: 0 calc(var(--leading-trim) + 20px - var(--slope-1px) * 5);
}

.c-calendar-item__head .cal_month {
  font-size: calc(36px + var(--slope-1px) * 4);
  line-height: .7;
  -moz-user-select: none;
       user-select: none;
}

.c-calendar-item__head .cal_year {
  position: relative;
  font-size: calc(18px + var(--slope-1px) * -2);
  line-height: .7;
  -moz-user-select: none;
       user-select: none;
}

.c-calendar-item__head .cal_year::before {
  content: "/";
  position: relative;
  display: inline;
}

.c-calendar-item__pager {
  position: absolute;
  top: calc(25px + var(--slope-1px) * 7);
  right: calc(25px + var(--slope-1px) * 7);
  left: auto;
  z-index: 1;
  display: flex;
  justify-content: space-between;
  width: calc(40px + var(--slope-1px) * -4);
  height: calc(40px + var(--slope-1px) * -4);
}

@media screen and (max-width: 768px) {
  .c-calendar-item__pager {
    top: 25px;
    right: 25px;
    width: 40px;
    height: 40px;
  }
}

.c-calendar-item__nav {
  position: absolute;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 6px;
  width: calc(40px + var(--slope-1px) * -4);
  height: calc(40px + var(--slope-1px) * -4);
  padding: 0;
  outline: none;
  border: 0;
  border-radius: 50%;
  background: none;
  background: var(--white, #fff);
  color: currentColor;
  font-size: 14px;
  opacity: 0;
  filter: drop-shadow(0 0 3.857px rgba(102, 102, 102, .4));
  pointer-events: none;
  -moz-appearance: none;
       appearance: none;
}

.c-calendar-item__nav svg path {
  fill: currentColor;
}

.c-calendar-item__nav._next :is(img, svg) {
  width: 1.4rem;
  height: 1.4rem;
  transform: rotate(0deg);
}

.c-calendar-item__nav._prev :is(img, svg) {
  width: 1.4rem;
  height: 1.4rem;
  transform: rotate(180deg);
}

.c-calendar-grid:not([data-calendar-current="0"]) .c-calendar-item__nav:first-child {
  display: flex;
  opacity: 1;
  pointer-events: auto;
}

.c-calendar-grid:not([data-calendar-current="1"]) .c-calendar-item__nav:last-child {
  display: flex;
  opacity: 1;
  pointer-events: auto;
}

.c-calendar-item__body {
  margin-bottom: auto;
  -moz-user-select: none;
       user-select: none;
}

.c-calendar-item__foot {
  padding-top: calc(20px + var(--slope-1px) * -5);
}

.c-calendar-item__notes {
  display: grid;
  gap: .5em;
  font-weight: 400;
  font-size: calc(13px + var(--slope-1px) * 1);

  margin-block: var(--leading-trim);
}

.c-calendar-item__notes .cal_close01 {
  color: var(--key-color);
}

.c-calendar-item table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.c-calendar-item table .cal_sat {
  color: var(--key-color);
}

.c-calendar-item table .cal_holiday,
.c-calendar-item table .cal_sun {
  color: var(--red);
}

.c-calendar-item table th {
  padding-bottom: 5px;
  vertical-align: middle;
  text-align: center;
  font-weight: 400;
  font-size: calc(11px + var(--slope-1px) * 1);
}

.c-calendar-item table th > div {
  padding-bottom: 10px;
  border-bottom: 1px solid var(--border-color);
  text-align: center;
  line-height: .7;
}

.c-calendar-item table td {
  position: relative;
  padding: var(--padding);
  vertical-align: middle;
  text-align: center;
  font-weight: 400;
  font-size: calc(13px + var(--slope-1px) * -1);
  font-family: var(--en-font-family);

  --padding: 3px;
}

.c-calendar-item table td:before {
  content: "";
  position: static;
  display: block;
  width: 100%;
  height: 0;
  padding-top: 100%;
}

.c-calendar-item table td > div {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 2.8rem;
  max-width: calc(100% - var(--padding) * 2);
  aspect-ratio: 1 / 1;
  margin: auto;
  background: radial-gradient(circle, var(--bg) calc(144% / 2 - 1px), transparent calc(144% / 2));
  font-weight: 400;

  --bg: #fff;
}

.c-calendar-item table td .cal_close01 {
  color: #fff;

  --bg: var(--key-color);
}

/* ============================================================= *

Maintenance

* ============================================================= */
.c-maintenance-reservation {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 10px;
  overflow: hidden;
  width: 100%;
  margin-top: calc(30px + var(--slope-1px) * 30);
  border-radius: 10px;
  background: var(--white);
  box-shadow: 0 0 6px 0 rgba(102, 102, 102, .4);
  text-decoration: none;
  transition-timing-function: var(--animation);
  transition-duration: var(--t-duration);
  transition-property: filter;

  padding-block: calc(50px + var(--slope-1px) * 30);
}

.c-maintenance-reservation__head {
  position: relative;
  z-index: 1;
  width: 100%;
  color: var(--white);
  text-align: center;
}

.c-maintenance-reservation__head p {
  margin-block: var(--leading-trim);
}

.c-maintenance-reservation .c-button {
  z-index: 1;
}

.c-maintenance-reservation__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
}

.c-maintenance-reservation__bg img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: scale .2s var(--animation);
}

.c-maintenance-reservation:where(:hover) {
  filter: brightness(.95);
}

.c-maintenance-reservation:where(.c-maintenance-reservation:hover) .c-maintenance-reservation__bg img {
  scale: 1.01;
}

/* service
=============================== */
.c-maintenance-service {
  display: flex;
  flex-wrap: wrap;
  width: 103.7037%;
  margin: -1.85185% -1.85185%;
  padding-top: 1px;
}

.c-maintenance-service:not(:first-child) {
  margin-top: 4.375em;
}

@media screen and (max-width: 560px) {
  .c-maintenance-service {
    flex-direction: column;
    gap: 2.85714em;
  }
}

.c-maintenance-service__item {
  width: 50%;
  padding: 1.78571% 1.78571%;
}

.c-maintenance-service__item:first-child:last-child {
  margin: 0 auto;
}

@media screen and (max-width: 560px) {
  .c-maintenance-service__item {
    width: 100%;
  }
}

.c-maintenance-service-block {
  display: block;
  text-decoration: none;
}

.c-maintenance-service-block__lead {
  /* -0.375em for line-height offset */
  margin-top: -.375em;
  margin-bottom: .825em;
  font-weight: bold;
  font-size: .9375em;
}

.c-maintenance-service-block__lead span {
  display: inline-block;
}

.c-maintenance-service-block__banner {
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
  border-radius: 20px;
  background: var(---white, #fff);
  box-shadow: 0 0 8px 0 rgba(68, 64, 63, .25);
  transition: opacity .2s;
}

.c-maintenance-service-block:hover .c-maintenance-service-block__banner {
  opacity: .7;
}

.c-maintenance-service-block__desc {
  width: -moz-fit-content;
  width: fit-content;
  /* -0.375em for line-height offset */
  margin-top: .625em;
  margin-bottom: -.375em;
  font-size: .875em;

  margin-inline: auto;
}

/* ============================================================= *

Inspection

* ============================================================= */
/* c-inspection-overview
============================== */
.c-inspection-overview {
  padding: calc(40px + var(--slope-1px) * 10) calc(20px + var(--slope-1px) * 30);
  border: 2px solid var(--lightgray);
  border-radius: var(--base-border-radius);
  background: var(--white);
}

.c-inspection-overview:not(:first-child) {
  margin-top: 32px;
}

.c-inspection-overview__inner {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 40px;
  width: 100%;

  margin-inline: auto;
}

@media screen and (max-width: 768px) {
  .c-inspection-overview__inner {
    grid-template-columns: 100%;
  }
}

/* c-inspection-overview-requirements
============================== */
.c-inspection-overview-requirements {
  display: grid;
  align-items: center;
  max-width: 100%;

  margin-inline: auto;
}

@media screen and (min-width: 769px) {
  .c-inspection-overview-requirements {
    grid-template-columns: subgrid;
    grid-column: span 2;
    gap: 40px;
  }
}

@media screen and (max-width: 768px) {
  .c-inspection-overview-requirements {
    grid-template-columns: 100%;
    gap: 15px;
    width: 100%;
  }
}

.c-inspection-overview-requirements__head {
  word-break: keep-all;
  overflow-wrap: anywhere;
}

@media screen and (max-width: 768px) {
  .c-inspection-overview-requirements__head {
    text-align: center;
  }
}

@media screen and (min-width: 769px) {
  .c-inspection-overview-requirements__body {
    min-height: 60px;
    padding-left: 40px;
    border-left: 2px solid var(--lightgray);

    place-content: center;
  }
}

@media screen and (max-width: 768px) {
  .c-inspection-overview-requirements__body {
    min-height: unset;
    padding-top: 20px;
    padding-left: 0;
    border-top: 2px solid var(--lightgray);
    border-left: none;
  }
}

.c-inspection-overview-requirements__list {
  display: grid;
  grid-template-columns: max-content max-content;
  gap: 12px 20px;

  margin-block: var(--leading-trim);
}

@media screen and (max-width: 768px) {
  .c-inspection-overview-requirements__list {
    grid-template-columns: 100%;
  }
}

.c-inspection-overview-requirements__list > li {
  display: flex;
  align-items: center;
  gap: .5em;
}

.c-inspection-overview-requirements__list > li:before {
  content: "";
  display: block;
  flex-shrink: 0;
  width: 1.25em;
  height: 1.25em;
  background: url(../img/icon/checkbox.svg) 50% 50%/contain no-repeat;
}

/* c-inspection-overview-list
============================== */
.c-inspection-overview-list {
  font-size: calc(14px + var(--slope-1px) * 1);
  line-height: 1.75;

  margin-block: var(--leading-trim);
}

.c-inspection-overview-list > li {
  padding-left: 1em;
  text-indent: -1em;
}

.c-inspection-overview-list > li:before {
  content: "\30fb";
}

/* c-inspection-checkpoint
============================== */
.c-inspection-checkpoint {
  display: grid;
  align-items: center;
  grid-template-columns: 1fr 50%;
  gap: 24px 40px;
  margin-top: 32px;
}

@media screen and (max-width: 768px) {
  .c-inspection-checkpoint {
    grid-template-columns: 100%;
  }
}

.c-inspection-checkpoint-figure {
  position: relative;
}

.c-inspection-checkpoint-figure__image {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 74.16667%;
  margin: auto;
  transform: translate3d(-50%, -50%, 0px);
}

.c-inspection-checkpoint-figure__pointer {
  position: relative;
  z-index: 1;
}

.c-inspection-checkpoint-figure__pointer :is(img, svg) {
  width: 100%;
  height: auto;
}

.c-inspection-checkpoint-figure__pointer._pointer-safety {
  padding-bottom: 12.08333%;
}

.c-inspection-checkpoint-figure__pointer._pointer-check1 {
  padding-top: 8.95833%;
  padding-bottom: 22.70833%;
}

.c-inspection-checkpoint-figure__pointer._pointer-check6 {
  padding-top: 8.95833%;
  padding-bottom: 3.54167%;
}

.c-inspection-checkpoint-nav {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: calc(10px + var(--slope-1px) * 2);
}

.c-inspection-checkpoint-button {
  display: flex;
  align-items: center;
  gap: calc(4px + var(--slope-1px) * 4);
  height: 100%;
  padding: 7.5px 16px;
  border: 2px solid var(--base-color);
  border-radius: 56px;
  color: var(--base-color);
  text-decoration: none;
  letter-spacing: 0;
  font-size: calc(14px + var(--slope-1px) * 2);
  transition: all .2s;
}

@media screen and (max-width: 768px) {
  .c-inspection-checkpoint-button {
    height: 54px;
    padding: 10px 9px;
  }
}

.c-inspection-checkpoint-button:hover {
  background: var(--base-color);
  color: #fff;
}

.c-inspection-checkpoint-button > ._number {
  display: flex;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  width: 32px;
  height: 32px;
  font-weight: 600;
}

.c-inspection-checkpoint-button > ._text {
  word-break: keep-all;
  overflow-wrap: anywhere;
  font-weight: 700;
  line-height: 1.2;
}

.c-inspection-checkpoint-button > ._icon {
  flex-shrink: 0;
  width: calc(25px + var(--slope-1px) * 15);
  margin-left: auto;
}

.c-inspection-checkpoint-button > ._icon svg path {
  fill: currentColor;
}

/* c-inspection-checkpoint-detail
=============================== */
.c-inspection-checkpoint-detail__col {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: .8em 4em;
}

@media screen and (max-width: 768px) {
  .c-inspection-checkpoint-detail__col {
    grid-template-columns: 100%;
  }
}

.c-inspection-checkpoint-detail__col > li {
  display: flex;
  width: 100%;
  line-height: 1.5;

  margin-block: var(--leading-trim);
}

.c-inspection-checkpoint-detail__col > li._option:before {
  color: var(--key-color);
}

.c-inspection-checkpoint-detail__col > li:before {
  content: "\25cf";
}

/* c-inspection-checkpoint-notes
============================== */
.c-inspection-checkpoint-notes {
  display: flex;
  justify-content: flex-end;
  gap: 2em;
  width: -moz-fit-content;
  width: fit-content;
  max-width: 100%;
  margin-top: 2em;
  padding: 1em;
  border: 1px solid vaR(--lightgray);
  font-size: calc(12px + var(--slope-1px) * 1);
}

@media screen and (min-width: 769px) {
  .c-inspection-checkpoint-notes {
    margin-left: auto;
  }
}

.c-inspection-checkpoint-notes > li {
  padding-left: 1em;
  text-indent: -1em;
}

.c-inspection-checkpoint-notes > li._option:before {
  color: var(--key-color);
}

.c-inspection-checkpoint-notes > li:before {
  content: "\25cf";
}

/* ============================================================= *

Modal

* ============================================================= */
/* l-modal
=============================== */
.l-modal {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100005;
  display: none;
  visibility: hidden;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  padding: calc(var(--vh) * 5) var(--inner-padding);
  background: rgba(51, 51, 51, .9);
  opacity: 0;
  pointer-events: none;
}

.l-modal.is-show {
  display: flex;
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}

.l-modal__inner {
  position: relative;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  max-width: 1040px;
  max-height: -moz-fit-content;
  max-height: fit-content;
  margin: auto;
  opacity: 0;
  transition: all .6s .6s;
}

.l-modal.is-show .l-modal__inner {
  opacity: 1;
}

.l-modal__bg {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  font-size: 0;
  opacity: 0;
}

.l-modal__contents {
  position: relative;
  z-index: 1;
  overflow-y: auto;
  width: 100%;
  max-height: calc(var(--vh) * 90);
  border-radius: var(--base-border-radius);
  background: #fff;
}

.l-modal__contents:has(.l-modal-calendar) {
  padding: calc(25px + var(--slope-1px) * 15) calc(20px + var(--slope-1px) * 20) calc(30px + var(--slope-1px) * 18);
}

@media screen and (max-width: 768px) {
  .l-modal__contents:has(.l-modal-calendar) {
    padding: 0;
    background: transparent;
  }
}

.l-modal__close {
  position: relative;
  z-index: 4;
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  width: calc(40px + var(--slope-1px) * 16);
  height: calc(40px + var(--slope-1px) * 16);
  outline: none;
  border: 0;
  border-radius: 50%;
  background: var(--icon-close) 50% 50%/50% 50% no-repeat var(--white);
  line-height: 1;
  filter: drop-shadow(0 0 6px rgba(102, 102, 102, .4));
  transition: all .3s ease-out;
  -moz-appearance: none;
       appearance: none;
}

@media screen and (max-width: 768px) {
  .l-modal__close {
    width: 40px;
    height: 40px;
  }
}

.l-modal[data-modal-id=calendar] .l-modal__close {
  position: absolute;
  top: calc(25px + var(--slope-1px) * -5);
  right: calc(25px + var(--slope-1px) * -5);
}

@media screen and (max-width: 768px) {
  .l-modal[data-modal-id=calendar] .l-modal__close {
    top: 25px;
    right: 25px;
  }
}

.l-modal__close:hover {
  opacity: .7;
}

.l-modal__close span {
  display: none;
}

/* l-modal-contents
=============================== */
.l-modal-contents__head {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: .5em;
  height: var(--modal-header-height);
  background: var(--lightgray);

  --modal-header-height:calc(70px + var(--slope-1px) * 26);
  padding-block: calc(var(--padding-block) + var(--leading-trim)) calc(var(--padding-block)  + var(--leading-trim));
  --padding-block: calc(29px + var(--slope-1px) * 11);
  padding-inline: calc(15px + var(--slope-1px) * 45) calc(15px + var(--slope-1px) * 5);
}

.l-modal-contents__body {
  padding-inline: calc(15px + var(--slope-1px) * 45);
  padding-block: calc(30px + var(--slope-1px) * 10) calc(30px + var(--slope-1px) * 30);
}

/* l-modal-calendar
=============================== */
.l-modal-calendar {
  display: flex;
  justify-content: center;
  align-items: center;
}

.l-modal-calendar .c-calendar-grid {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  gap: clamp(15px, -41.64336px + 5.24476vw, 30px);
  max-width: 670px;
}

.l-modal-calendar .c-calendar-grid .c-calendar-item__pager {
  display: none;
}

@media screen and (max-width: 768px) {
  .l-modal-calendar .c-calendar-grid .c-calendar-item__pager {
    right: calc(15px + 25px + 40px);
    display: flex;
  }
}

.l-modal-calendar .c-calendar-grid .c-calendar-item {
  flex: 1 1;
}

@media screen and (max-width: 768px) {
  .l-modal-calendar .c-calendar-grid .c-calendar-item {
    display: none;
  }
  .l-modal-calendar .c-calendar-grid[data-calendar-current="0"] .c-calendar-item[data-calendar-index="0"],
  .l-modal-calendar .c-calendar-grid[data-calendar-current="1"] .c-calendar-item[data-calendar-index="1"] {
    display: block;
  }
}

/* l-modal-section
=============================== */
.l-modal-section-title {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  color: currentColor;
  font-weight: 800;
  font-size: calc(48px + var(--slope-1px) * 34);
}

.l-modal-section-title__icon {
  width: calc(40px + var(--slope-1px) * 24);
  height: calc(40px + var(--slope-1px) * 24);
  padding: calc(8px + var(--slope-1px) * 8);
  border-radius: 50%;
  background: var(--key-color);
  color: var(--white);
}

.l-modal-section-title__icon svg path {
  fill: var(--white);
}

.l-modal-section-title__ja {
  display: grid;
  justify-content: center;
  align-items: center;
  grid-template-columns: 1fr auto 1fr;
  gap: calc(10px + var(--slope-1px) * 20);
  width: 100%;
  margin-top: calc(var(--leading-trim) + 15px);
  margin-bottom: calc(var(--leading-trim) + calc(10px + var(--slope-1px) * 5));
  text-align: center;
  letter-spacing: .72px;
  font-weight: 700;
  font-style: normal;
  font-size: calc(24px + var(--slope-1px) * 12);
}

.l-modal-section-title__ja::before, .l-modal-section-title__ja::after {
  content: "";
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 1px;
  background: var(--base-color);
}

.l-modal-section-title__en {
  padding-top: .03em;
  color: var(--gray);
  text-align: center;
  text-transform: uppercase;
  font-weight: 500;
  font-style: normal;
  font-size: calc(14px + var(--slope-1px) * 2);
  line-height: .7;
}

.l-modal-section-title._center {
  text-align: center;
}

.l-modal-section-title._has-wbr {
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.l-modal-section_lead {
  text-align: center;
  letter-spacing: 0;
  font-weight: 500;
  font-size: calc(13px + var(--slope-1px) * 5);

  margin-block: var(--leading-trim);
}

/* l-modal-bluehands
=============================== */
.l-modal-bluehands {
  padding: calc(var(--vh) * 5 + calc(35px + var(--slope-1px) * 5)) var(--inner-padding);
}

.l-modal-bluehands .l-modal__inner {
  width: -moz-fit-content;
  width: fit-content;
}

.l-modal-bluehands .l-modal__close {
  position: absolute;
  top: -10px;
  right: 0;
  transform: translateY(-100%);
}

.l-modal-bluehands .l-modal__contents {
  width: -moz-fit-content;
  width: fit-content;
  max-height: calc(var(--vh) * 90 - (calc(35px + var(--slope-1px) * 5) * 2));
  aspect-ratio: 1040 / 626;
}

.l-modal-bluehands__video {
  width: -moz-fit-content;
  width: fit-content;
  padding: calc(15px + var(--slope-1px) * 25);

  margin-inline: auto;
}

.l-modal-bluehands__video video {
  width: 100%;
  height: 100%;
  aspect-ratio: 16 / 9;
  line-height: 1;
}

/* l-modal-usedcar
=============================== */
.l-modal-usedcar {
  position: relative;
  z-index: 0;
  display: grid;
  justify-content: center;
  align-items: center;
  grid-template-rows: auto auto;
  grid-template-columns: 100%;

  margin-inline: auto;
  padding-block: 40px 120px;
  padding-inline: calc(15px + var(--slope-1px) * 45);
}

@media screen and (max-width: 768px) {
  .l-modal-usedcar {
    padding-bottom: 0;
  }
}

.l-modal-usedcar .l-modal__close {
  position: absolute;
  top: calc(15px + var(--slope-1px) * 5);
  right: calc(15px + var(--slope-1px) * 5);
}

.l-modal-usedcar__head {
  display: flex;
  flex-direction: column;
  grid-column: 1/2;
  grid-row: 1/2;
  gap: calc(40px + var(--slope-1px) * 20);
  margin-bottom: calc(25px + var(--slope-1px) * 15);
}

.l-modal-usedcar__body {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  align-self: flex-start;
  grid-column: 1/2;
  grid-row: 2/3;
  gap: calc(20px + var(--slope-1px) * 20);
  width: 100%;
  text-align: center;

  margin-inline: auto;
  padding-inline: var(--inner-padding);
}

@media screen and (max-width: 768px) {
  .l-modal-usedcar__body {
    padding-inline: 0;
  }
}

.l-modal-usedcar__body > .c-button {
  flex-shrink: 0;
  max-width: 19.875em;

  padding-inline: 0;
}

@media screen and (max-width: 768px) {
  .l-modal-usedcar__body > .c-button {
    max-width: 20.71429em;
  }
}

.l-modal-usedcar__button {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: calc(10px + var(--slope-1px) * 16);
  width: 100%;
}

@media screen and (max-width: 768px) {
  .l-modal-usedcar__button .c-button {
    max-width: 100%;
  }
}

.l-modal-usedcar__bg {
  position: absolute;
  inset: 0;
  inset: 0;
  z-index: -1;
  display: block;
  overflow: hidden;
  width: 100%;
  height: auto;
  background: var(--lightgray);
  pointer-events: none;
}

@media screen and (max-width: 768px) {
  .l-modal-usedcar__bg {
    position: relative;
    grid-column: 1 / 2;
    grid-row: 2 / 4;
    width: calc(100% + calc(15px + var(--slope-1px) * 45) * 2);
    min-height: 160px;
    aspect-ratio: 3/2;
    -o-object-position: bottom;
       object-position: bottom;
    margin-top: 60px;

    margin-inline: calc(-1 * calc(15px + var(--slope-1px) * 45));
  }
}

.l-modal-usedcar__bg::before {
  content: "";
  position: absolute;
  top: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  background: linear-gradient(180deg, #fff 0%, rgba(255, 255, 255, 0) 100%);
}

@media screen and (max-width: 768px) {
  .l-modal-usedcar__bg::before {
    height: 40%;
  }
}

.l-modal-usedcar__bg img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  opacity: .5;
}

/* ============================================================= *

newcar

* ============================================================= */
/* c-newcar-guide-block
============================== */
.c-newcar-guide-block {
  display: grid;
  grid-template-columns: 1fr min(50%, 464px);
  gap: calc(30px + var(--slope-1px) * 10) 20px;
  margin-bottom: calc(50px + var(--slope-1px) * 30);
  padding: 3rem calc(30px + var(--slope-1px) * 20);
  border-radius: 20px;
  background: var(--white);
  box-shadow: 0 0 8px 0 rgba(68, 64, 63, .25);
}

@media screen and (max-width: 768px) {
  .c-newcar-guide-block {
    grid-template-columns: 100%;
  }
}

.c-newcar-guide-block__text {
  align-self: center;
}

.c-newcar-guide-block__text p {
  width: -moz-fit-content;
  width: fit-content;
  max-width: 100%;
  font-size: calc(14px + var(--slope-1px) * 7);

  margin-inline: auto;
}

.c-newcar-guide-block__nav {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px 14px;
}

@media screen and (max-width: 768px) {
  .c-newcar-guide-block__nav {
    grid-template-columns: 100%;
  }
}

/* c-newcar-guide-nav
=============================== */
.c-newcar-guide-nav {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(8px + var(--slope-1px) * 4);
  text-decoration: underline;
  font-size: calc(14px + var(--slope-1px) * 2);
  line-height: 1.5;
  cursor: pointer;
}

.c-newcar-guide-nav__image {
  overflow: hidden;
  border: 2px solid var(--lightgray);
  border-radius: 20px;
  transition: all .2s ease-out;
}

@media screen and (max-width: 768px) {
  .c-newcar-guide-nav__image {
    width: 100%;
    aspect-ratio: 285 / 95;
  }
}

.c-newcar-guide-nav__image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.c-newcar-guide-nav:hover {
  text-decoration: none;
}

.c-newcar-guide-nav:hover .c-newcar-guide-nav__image {
  transform: scale(.98);
}

.c-newcar-guide-nav > p {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  word-break: keep-all;
  overflow-wrap: anywhere;

  margin-block: var(--leading-trim);
}

.c-newcar-guide-nav > p::after {
  content: "";
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 1em;
  height: 1em;
  background: var(--icon-angle);
  background-repeat: no-repeat;
  transform: rotate(180deg);
}

/* ============================================================= *

Showroom

* ============================================================= */
.c-showroom-facility {
  display: grid;
  display: flex;
  align-items: center;
  gap: 20px calc(20px + var(--slope-1px) * 20);
  padding: calc(20px + var(--slope-1px) * 10) calc(15px + var(--slope-1px) * 25);
  border-radius: 10px;
  background: var(--lightgray);
}

@media screen and (max-width: 768px) {
  .c-showroom-facility {
    flex-direction: column;
    width: 100%;
  }
}

.c-showroom-facility__head {
  flex-shrink: 0;
  align-self: stretch;

  place-content: center;
}

@media screen and (min-width: 769px) {
  .c-showroom-facility__head {
    padding-right: 40px;
    border-right: 1px solid;
  }
}

@media screen and (max-width: 768px) {
  .c-showroom-facility__head {
    margin-block: var(--leading-trim);
  }
}

.c-showroom-facility-title {
  font-weight: 700;
  font-size: calc(14px + var(--slope-1px) * 4);
  line-height: 1.5;
}

@media screen and (max-width: 768px) {
  .c-showroom-facility__body {
    width: 100%;
  }
}

.c-showroom-facility__list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 40px;
}

@media screen and (max-width: 768px) {
  .c-showroom-facility__list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;

    margin-block: var(--leading-trim);
  }
}

.c-showroom-facility__item {
  display: grid;
  grid-template-columns: calc(15px + var(--slope-1px) * 9) auto;
  gap: 10px;
  font-weight: 500;
  font-size: calc(11px + var(--slope-1px) * 5);
}

/* c-showroom-list
============================== */
.c-showroom-list {
  display: grid;
  grid-template-columns: 100%;
  gap: calc(25px + var(--slope-1px) * 15);
}

/* c-showroom-card
=============================== */
.c-showroom-card {
  position: relative;
  display: grid;
  grid-template-columns: 55.55556% 44.44444%;
  overflow: hidden;
  width: 100%;
  height: 100%;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 0 6px 0 rgba(102, 102, 102, .4);
  text-decoration: none;
}

@media screen and (max-width: 768px) {
  .c-showroom-card {
    grid-template-columns: 100%;
  }
}

.c-showroom-card__link {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
}

.c-showroom-card__image {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
  min-height: 0%;
  aspect-ratio: 2 / 1;
}

.c-showroom-card__image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: all .3s;
}

.c-showroom-card:hover .c-showroom-card__image img {
  transform: scale(1.03);
}

.c-showroom-card__contents {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  gap: 30px;
  width: 100%;
  padding: calc(30px + var(--slope-1px) * 5) calc(30px + var(--slope-1px) * 10) calc(30px + var(--slope-1px) * 10);
}

.c-showroom-card__contents::before {
  content: "";
  position: absolute;
  right: 30px;
  bottom: 30px;
  z-index: 4;
  z-index: 1;
  display: flex;
  flex-direction: column;
  width: calc(40px + var(--slope-1px) * 16);
  height: calc(40px + var(--slope-1px) * 16);
  outline: none;
  border: 0;
  border-radius: 50%;
  background: var(--base-color);
  line-height: 1;
  transition: all .3s ease-out;
  -moz-appearance: none;
       appearance: none;

  -webkit-mask: var(--icon-arrow) 50% 50%/50% 50% no-repeat;

          mask: var(--icon-arrow) 50% 50%/50% 50% no-repeat;
}

@media screen and (max-width: 768px) {
  .c-showroom-card__contents::before {
    width: 40px;
    height: 40px;
  }
}

.c-showroom-card__contents::after {
  content: "";
  position: absolute;
  right: 30px;
  bottom: 30px;
  z-index: 4;
  z-index: 0;
  display: flex;
  flex-direction: column;
  width: calc(40px + var(--slope-1px) * 16);
  height: calc(40px + var(--slope-1px) * 16);
  outline: none;
  border: 0;
  border-radius: 50%;
  background: var(--white);
  line-height: 1;
  filter: drop-shadow(0 0 6px rgba(102, 102, 102, .4));
  transition: all .3s ease-out;
  -moz-appearance: none;
       appearance: none;
}

.c-showroom-card:hover .c-showroom-card__contents::before {
  background: var(--white);
}

.c-showroom-card:hover .c-showroom-card__contents::after {
  background: var(--base-color);
}

.c-showroom-card__head {
  font-weight: 700;
  font-size: calc(21px + var(--slope-1px) * 5);

  margin-block: var(--leading-trim);
}

.c-showroom-card__head a {
  position: relative;
  z-index: 1;
  text-decoration: none;
}

.c-showroom-card__body {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  gap: calc(15px + var(--slope-1px) * 10);
  font-size: calc(14px + var(--slope-1px) * 4);

  margin-block: var(--leading-trim);
}

.c-showroom-card__body > * {
  margin-block: var(--leading-trim);
}

.c-showroom-card__tel {
  margin-block: var(--leading-trim);
}

.c-showroom-card__tel > p {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: baseline;
  line-height: 1;

  margin-block: var(--leading-trim);
}

.c-showroom-card__tel > p small {
  font-weight: calc(12px + var(--slope-1px) * 10);
  font-weight: 700;
}

.c-showroom-card__tel > p em {
  color: var(--key-color);
  font-weight: 700;
  font-style: normal;
  font-size: calc(24px + var(--slope-1px) * 6);
}

.c-showroom-card__facility {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: calc(2px + var(--slope-1px) * 3);
  width: -moz-fit-content;
  width: fit-content;
}

.c-showroom-card__facility > li {
  max-width: 36px;
  max-height: 36px;
  aspect-ratio: 1 / 1;
  padding: 6px;
  background: var(--lightgray);
}

.c-showroom-card__facility > li :is(svg, img) {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}

.c-showroom-card__facility > li svg path {
  fill: var(--base-color);
}

.c-showroom-card__facility > li.is-disabled {
  border: 1px solid var(--lightgray);
  background: var(--white);
}

.c-showroom-card__facility > li.is-disabled svg path {
  fill: var(--lightgray);
}

/* ============================================================= *

Sitemap

* ============================================================= */
/* .l-footer-sitemap / .c-sitemap
============================== */
.l-footer-sitemap .c-sitemap {
  display: grid;
  justify-content: center;
  grid-template-rows: auto auto 1fr;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  grid-template-areas: "showroom newcar maintenance company" "showroom usedcar maintenance company" "campaign usedcar maintenance company";
  gap: 40px;
  width: 100%;
  color: var(--white);

  margin-inline: auto;
}

@media screen and (max-width: 1116px) {
  .l-footer-sitemap .c-sitemap {
    display: block;
  }
}

.l-footer-sitemap .c-sitemap-box {
  display: flex;
  flex-direction: column;
  gap: 30px;
}

.l-footer-sitemap .c-sitemap-box[data-category=showroom] {
  grid-area: showroom;
}

.l-footer-sitemap .c-sitemap-box[data-category=newcar] {
  grid-area: newcar;
}

.l-footer-sitemap .c-sitemap-box[data-category=usedcar] {
  grid-area: usedcar;
}

.l-footer-sitemap .c-sitemap-box[data-category=campaign] {
  grid-area: campaign;
}

.l-footer-sitemap .c-sitemap-box[data-category=maintenance] {
  grid-area: maintenance;
}

.l-footer-sitemap .c-sitemap-box[data-category=company] {
  grid-area: company;
}

.l-footer-sitemap .c-sitemap-box__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 30px;
  width: 100%;
  margin: 0;
  padding: 0;
  outline: none;
  border: 0;
  background: none;
  color: inherit;
  text-align: left;
  text-decoration: none;
  font-size: calc(14px + var(--slope-1px) * 10);
  cursor: unset;
  -moz-appearance: none;
       appearance: none;
}

.l-footer-sitemap .c-sitemap-box__head::after {
  content: "";
  position: relative;
  display: block;
  flex-grow: 1;
  flex-shrink: 1;
  width: 100%;
  height: 1px;
  background: currentColor;
}

.l-footer-sitemap .c-sitemap-box__head span {
  position: relative;
  display: flex;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
}

@media screen and (min-width: 1117px) {
  .l-footer-sitemap .c-sitemap-box__head {
    font-weight: 700;
    pointer-events: none;

    margin-block: var(--leading-trim);
  }
}

@media screen and (max-width: 1116px) {
  .l-footer-sitemap .c-sitemap-box__head {
    position: relative;
    margin-bottom: 0;
  }
}

.l-footer-sitemap .c-sitemap-box__body {
  display: block;
  margin-top: var(--leading-trim);
  font-size: calc(14px + var(--slope-1px) * 2);
}

@media screen and (max-width: 1116px) {
  .l-footer-sitemap .c-sitemap-box__body {
    display: none;
    gap: 0;

    padding-block: 2.30769em;
  }
}

.l-footer-sitemap .c-sitemap-pages {
  letter-spacing: .8px;
  line-height: 2;
}

.l-footer-sitemap .c-sitemap-pages li {
  vertical-align: middle;
  font-weight: 500;
}

.l-footer-sitemap .c-sitemap-pages li a {
  display: inline-flex;
  align-items: center;
  color: currentColor;
  text-decoration: none;
  word-break: keep-all;
  overflow-wrap: anywhere;
  transition: color .2s, opacity .2s;
}

@media (any-hover: hover) {
  .l-footer-sitemap .c-sitemap-pages li a:where(:hover) {
    opacity: .6;
  }
}

@media screen and (max-width: 1116px) {
  .l-header-menu__nav {
    overflow: scroll;
    height: 100%;
  }
}

.l-header-menu__nav .c-sitemap {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: clamp(15px, -41.64336px + 5.24476vw, 30px);
  height: 100%;
  color: var(--base-color);
}

.l-header-menu__nav .c-sitemap-box {
  position: relative;
  display: grid;
  justify-content: center;
  align-items: center;
  height: 100%;
  border-bottom: 5px solid transparent;
  transition: all .4s;
}

@media screen and (min-width: 1117px) {
  .l-header-menu__nav .c-sitemap-box[data-category="company"] {
    display: none;
  }
}

@media screen and (min-width: 1117px) {
  .l-header-menu__nav .c-sitemap-box__body {
    position: absolute;
    top: var(--header-height);
    left: 50%;
    display: flex !important;
    visibility: hidden;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    width: -moz-fit-content;
    width: fit-content;
    min-width: 373px;
    padding: 16px 40px 40px 40px;
    background: var(--base-color);
    opacity: 0;
    transition: all .4s;
    transform: translateX(-50%) translateY(3px);
    pointer-events: none;
  }
}

@media screen and (min-width: 1117px) {
  .l-header-menu__nav .c-sitemap-box:hover {
    border-bottom: 5px solid var(--key-color);
  }
  .l-header-menu__nav .c-sitemap-box:hover:not([data-category=usedcar]):not([data-category=campaign]) .c-sitemap-box__body {
    visibility: visible;
    opacity: 1;
    transform: translateX(-50%) translateY(0);
    pointer-events: auto;
  }
  .l-header-menu__nav .c-sitemap-box:hover:not([data-category=usedcar]):not([data-category=campaign]) .c-sitemap-box__body ul {
    display: grid;
    grid-template-columns: 100%;
    width: 100%;
  }
  .l-header-menu__nav .c-sitemap-box:hover:not([data-category=usedcar]):not([data-category=campaign]) .c-sitemap-box__body ul li {
    border-bottom: 1px dashed var(--lightgray);
  }
  .l-header-menu__nav .c-sitemap-box:hover:not([data-category=usedcar]):not([data-category=campaign]) .c-sitemap-box__body ul li a {
    position: relative;
    display: flex;
    justify-content: space-between;
    padding: 24px 0;
    color: var(--white);
    text-decoration: none;
    letter-spacing: .9px;
    font-weight: 500;
    font-size: clamp(14px, -1.1049px + 1.3986vw, 18px);
    line-height: 1;
    transition: opacity .2s;

    margin-block: var(--leading-trim);
  }
  .l-header-menu__nav .c-sitemap-box:hover:not([data-category=usedcar]):not([data-category=campaign]) .c-sitemap-box__body ul li a:hover {
    opacity: .6;
  }
  .l-header-menu__nav .c-sitemap-box:hover:not([data-category=usedcar]):not([data-category=campaign]) .c-sitemap-box__body ul li a::after {
    content: "";
    position: relative;
    display: block;
    width: calc(12px + var(--slope-1px) * 8);
    height: calc(12px + var(--slope-1px) * 8);
    background: currentColor;

    -webkit-mask-image: var(--icon-arrow);

            mask-image: var(--icon-arrow);
    -webkit-mask-size: contain;
            mask-size: contain;
  }
}

.l-header-menu__nav .c-sitemap-box__head {
  width: 100%;
  margin: 0;
  padding: 0;
  outline: none;
  border: 0;
  background: none;
  text-align: left;
  text-decoration: none;
  font-weight: 500;
  font-style: normal;
  font-size: clamp(14px, 6.44755px + .6993vw, 16px);
  -moz-appearance: none;
       appearance: none;
}

@media screen and (min-width: 1117px) {
  .l-header-menu__nav .c-sitemap-box__head .l-header-nav-none {
    display: none;
  }
}

@media screen and (max-width: 1116px) {
  .l-header-menu__nav .c-sitemap-box__head .l-header-nav-none {
    display: inline;
  }
}

@media screen and (max-width: 1116px) {
  .l-header-menu__nav,
  .l-footer-sitemap {
    width: 100cqi;
    padding: var(--outer-padding);
    background: var(--white);
    color: var(--base-color);

    margin-inline: calc(50% - 50cqi);
  }
}

@media screen and (max-width: 1116px) and (max-width: 768px) {
  .l-header-menu__nav,
  .l-footer-sitemap {
    padding: 25px;
  }
}

@media screen and (max-width: 1116px) {
  .l-header-menu__nav .c-sitemap,
  .l-footer-sitemap .c-sitemap {
    display: block;
    justify-content: center;
    gap: 0;
    width: 100%;

    margin-inline: auto;
  }
  .l-header-menu__nav .c-sitemap-box,
  .l-footer-sitemap .c-sitemap-box {
    display: flex;
    flex-direction: column;
    gap: 0;
    height: auto;
    border-bottom: none;
  }
  .l-header-menu__nav .c-sitemap-box[data-category=company],
  .l-footer-sitemap .c-sitemap-box[data-category=company] {
    border-bottom: 1px solid var(--base-color);
  }
}

@media screen and (max-width: 1116px) and (max-width: 1116px) {
  .l-header-menu__nav .c-sitemap-box__head,
  .l-footer-sitemap .c-sitemap-box__head {
    position: relative;
    margin-bottom: 0;
    border-top: 1px solid var(--base-color);
    color: var(--base-color);
    font-weight: 500;
    cursor: pointer;
    pointer-events: all;

    padding-block: 1.07143em;
  }
  .l-header-menu__nav .c-sitemap-box__head span,
  .l-footer-sitemap .c-sitemap-box__head span {
    font-size: 14px;

    margin-block: var(--leading-trim);
  }
  .l-header-menu__nav .c-sitemap-box__head:after,
  .l-footer-sitemap .c-sitemap-box__head:after {
    content: "";
    position: absolute;
    top: 0;
    right: 4px;
    bottom: 0;
    display: block;
    width: 12px;
    height: 12px;
    margin: auto;
    background: var(--base-color);
    transition: rotate .2s;

    -webkit-mask: var(--icon-angle) 50% 50%/contain no-repeat;

            mask: var(--icon-angle) 50% 50%/contain no-repeat;
  }
  .l-header-menu__nav .c-sitemap-box__head.is-open:after,
  .l-footer-sitemap .c-sitemap-box__head.is-open:after {
    rotate: -180deg;
  }
}

@media screen and (max-width: 1116px) and (max-width: 1116px) {
  .l-header-menu__nav a.c-sitemap-box__head:after,
  .l-footer-sitemap a.c-sitemap-box__head:after {
    content: "";
    position: absolute;
    top: 0;
    right: 4px;
    bottom: 0;
    display: block;
    width: 12px;
    height: 12px;
    margin: auto;
    background: var(--base-color);

    -webkit-mask: var(--icon-angle) 50% 50%/contain no-repeat;

            mask: var(--icon-angle) 50% 50%/contain no-repeat;
    rotate: -90deg;
  }
}

@media screen and (max-width: 1116px) {
  .l-header-menu__nav .c-sitemap-box__body,
  .l-footer-sitemap .c-sitemap-box__body {
    position: relative;
    display: none;
    gap: 0;
    width: 100%;
    margin-top: 0;
    font-size: 14px;

    padding-block: 0 15px;
  }
  .l-header-menu__nav .c-sitemap-box__body.js-sitemap-toggle.is-open,
  .l-footer-sitemap .c-sitemap-box__body.js-sitemap-toggle.is-open {
    display: flex;
  }
  .l-header-menu__nav .c-sitemap-box__body ul,
  .l-footer-sitemap .c-sitemap-box__body ul {
    display: grid;
    grid-template-columns: 100%;
    gap: 4px;
    width: 100%;
  }
  .l-header-menu__nav .c-sitemap-box__body ul li a,
  .l-footer-sitemap .c-sitemap-box__body ul li a {
    position: relative;
    display: flex;
    justify-content: space-between;
    padding: 24px 0;
    border-radius: 5px;
    background: var(--lightgray);
    color: var(--base-color);
    text-decoration: none;
    letter-spacing: .9px;
    font-weight: 500;
    font-size: 14px;
    line-height: 1;
    transition: opacity .2s;

    padding-inline: 1.71429em 1.07143em;
    padding-block: 1.07143em;
    margin-block: var(--leading-trim);
  }
  .l-header-menu__nav .c-sitemap-box__body ul li a:hover,
  .l-footer-sitemap .c-sitemap-box__body ul li a:hover {
    opacity: .6;
  }
  .l-header-menu__nav .c-sitemap-box__body ul li a::after,
  .l-footer-sitemap .c-sitemap-box__body ul li a::after {
    content: "";
    position: relative;
    display: block;
    width: 12px;
    height: 12px;
    background: currentColor;

    -webkit-mask-image: var(--icon-arrow);

            mask-image: var(--icon-arrow);
    -webkit-mask-size: contain;
            mask-size: contain;
  }
}

/* ============================================================= *

Slider

* ============================================================= */
.c-info-slider__list {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: calc(14px + var(--slope-1px) * 16);
  width: calc(100% + var(--_slide-gap)*2);

  --_slide-gap: 15px;
  margin-inline: calc(-1 * var(--_slide-gap));
}

@media screen and (max-width: 560px) {
  .c-info-slider__list {
    --_slide-gap: 7.5px;
  }
}

.c-info-slider__list .c-info-slider__item {
  padding-inline: var(--_slide-gap);
}

.c-info-slider__list .c-info-slider__item img {
  border-radius: 10px;
  transition: transform var(--t-duration) var(--animation), filter var(--t-duration) var(--animation);
}

@media (any-hover: hover) {
  .c-info-slider__list .c-info-slider__item a:hover img {
    filter: brightness(.9);
    transform: scale(.98);
  }
}

.c-info-slider__list .c-slide-arrow {
  position: absolute;
}

.c-info-slider__list .c-slide-arrow.slick-prev {
  top: 0;
  bottom: 0;
  left: 0;

  translate: -50% 0;
  margin-block: auto;
}

@media screen and (max-width: 768px) {
  .c-info-slider__list .c-slide-arrow.slick-prev {
    translate: -35% 0;
  }
}

@media screen and (max-width: 560px) {
  .c-info-slider__list .c-slide-arrow.slick-prev {
    left: 15px;

    translate: unset;
  }
}

.c-info-slider__list .c-slide-arrow.slick-next {
  top: 0;
  right: 0;
  bottom: 0;

  margin-block: auto;
  translate: 50% 0;
}

@media screen and (max-width: 768px) {
  .c-info-slider__list .c-slide-arrow.slick-next {
    translate: 35% 0;
  }
}

@media screen and (max-width: 560px) {
  .c-info-slider__list .c-slide-arrow.slick-next {
    right: 15px;

    translate: unset;
  }
}

.c-newcar-slider__list {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: calc(14px + var(--slope-1px) * 16);
  width: calc(100% + var(--_slide-gap)*2);

  --_slide-gap: 15px;
  margin-inline: calc(-1 * var(--_slide-gap));
}

@media screen and (max-width: 560px) {
  .c-newcar-slider__list {
    --_slide-gap: 7.5px;
  }
}

.c-newcar-slider__list .c-newcar-slider__item {
  padding-inline: var(--_slide-gap);
}

.c-newcar-slider__list .c-newcar-slider__item img {
  border-radius: 10px;
  transition: transform var(--t-duration) ease-out, filter var(--t-duration) ease-out;
}

@media (any-hover: hover) {
  .c-newcar-slider__list .c-newcar-slider__item a:hover img {
    filter: brightness(.9);
    transform: scale(.98);
  }
}

.c-newcar-slider__list .c-slide-arrow {
  position: absolute;
}

.c-newcar-slider__list .c-slide-arrow.slick-prev {
  top: auto;
  left: 0;

  translate: -50% 0;
}

@media screen and (max-width: 768px) {
  .c-newcar-slider__list .c-slide-arrow.slick-prev {
    translate: -35% 0;
  }
}

@media screen and (max-width: 560px) {
  .c-newcar-slider__list .c-slide-arrow.slick-prev {
    left: 15px;

    translate: unset;
  }
}

.c-newcar-slider__list .c-slide-arrow.slick-next {
  top: auto;
  right: 0;

  translate: 50% 0;
}

@media screen and (max-width: 768px) {
  .c-newcar-slider__list .c-slide-arrow.slick-next {
    translate: 35% 0;
  }
}

@media screen and (max-width: 560px) {
  .c-newcar-slider__list .c-slide-arrow.slick-next {
    right: 15px;

    translate: unset;
  }
}

/* c-slider-controls
============================== */
.c-slider-controls {
  display: flex;
  justify-content: center;
  align-items: center;
  align-items: center;
  gap: calc(12px + var(--slope-1px) * 6);
  width: 100%;

  margin-inline: auto;
}

/* c-slide-arrow
============================== */
.slick-arrow.c-slide-arrow {
  display: flex;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  width: var(--arrow-size);
  height: var(--arrow-size);
  padding: 17px;
  border-radius: 100%;
  background: var(--white);
  color: var(--_arrow-color);
  filter: drop-shadow(0 0 6px rgba(102, 102, 102, .4));
  cursor: pointer;

  --_arrow-color:var(--base-color);
  --_arrow-hover-color: var(--white);
  --arrow-size: 56px;
}

.slick-arrow.c-slide-arrow svg path:not([fill]) {
  fill: var(-_arrow-color);
  transition: all var(--t-duration) var(--animetion);
}

@media screen and (max-width: 768px) {
  .slick-arrow.c-slide-arrow {
    padding: 14px;

    --arrow-size: 40px;
  }
}

@media (any-hover: hover) {
  .slick-arrow.c-slide-arrow:where(:hover) {
    background: var(--base-color);

    scale: 1.05;
  }
  .slick-arrow.c-slide-arrow:where(:hover) svg path:not([fill]) {
    fill: var(--_arrow-hover-color);
  }
}

/* ============================================================= *

Topics

* ============================================================= */
/* c-topics-section
=============================== */
.c-topics-section {
  position: relative;
  display: grid;
  grid-template-rows: auto 1fr;
  grid-template-columns: 325px 1fr;
  grid-template-areas: "head body" "foot body";
  gap: 40px 80px;
  padding-bottom: calc(50px + var(--slope-1px) * 50);
}

@media screen and (max-width: 1116px) {
  .c-topics-section {
    grid-template-columns: 100%;
    grid-template-areas: "head" "body" "foot";
  }
}

.c-topics-section__head {
  display: flex;
  flex-direction: column;
  grid-area: head;
  gap: calc(40px + var(--slope-1px) * 20);
}

@media screen and (min-width: 1117px) {
  .c-topics-section__head .c-topics-section-title__ja::before, .c-topics-section__head .c-topics-section-title__ja::after {
    visibility: hidden;
    opacity: 0;
  }
}

.c-topics-section__body {
  grid-area: body;
}

.c-topics-section__foot {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  grid-area: foot;
}

@media screen and (max-width: 768px) {
  .c-topics-section__foot {
    justify-content: center;

    padding-inline: 2.89855%;
  }
  .c-topics-section__foot .c-button {
    max-width: 100%;
  }
}

/* c-topics-section-title
============================== */
.c-topics-section-title {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  color: currentColor;
  font-weight: 800;
  font-size: calc(48px + var(--slope-1px) * 34);
}

.c-topics-section-title__icon {
  width: calc(40px + var(--slope-1px) * 24);
  height: calc(40px + var(--slope-1px) * 24);
  padding: calc(8px + var(--slope-1px) * 8);
  border-radius: 50%;
  background: var(--key-color);
  color: var(--white);
}

.c-topics-section-title__icon svg path {
  fill: var(--white);
}

.c-topics-section-title__ja {
  display: grid;
  justify-content: center;
  align-items: center;
  grid-template-columns: 1fr auto 1fr;
  gap: calc(10px + var(--slope-1px) * 20);
  width: 100%;
  margin-top: calc(var(--leading-trim) + 15px);
  margin-bottom: calc(var(--leading-trim) + calc(10px + var(--slope-1px) * 5));
  text-align: center;
  letter-spacing: .72px;
  font-weight: 700;
  font-style: normal;
  font-size: calc(24px + var(--slope-1px) * 12);
}

.c-topics-section-title__ja::before, .c-topics-section-title__ja::after {
  content: "";
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 1px;
  background: var(--base-color);
}

.c-topics-section-title__en {
  padding-top: .03em;
  color: var(--gray);
  text-align: center;
  text-transform: uppercase;
  font-weight: 500;
  font-style: normal;
  font-size: calc(14px + var(--slope-1px) * 2);
  line-height: .7;
}

.c-topics-section-title._center {
  text-align: center;
}

.c-topics-section-title._has-wbr {
  word-break: keep-all;
  overflow-wrap: anywhere;
}

/* c-topics
============================== */
.c-topics {
  display: flex;
  flex-direction: column;
  row-gap: 16px;
}

@media screen and (max-width: 768px) {
  .c-topics {
    grid-template-columns: 100%;
    row-gap: 1em;
    width: 100%;
    max-width: 100%;
  }
}

.c-topics__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  text-align: left;
}

.c-topics-title {
  font-weight: 700;
  font-size: calc(21px + var(--slope-1px) * 9);
}

.topics-link {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 20px;
  color: var(--base-color);
  text-decoration: none;
  letter-spacing: .9px;
  font-weight: 500;
  font-style: normal;
  font-size: calc(14px + var(--slope-1px) * 4);

  padding-block: 24px;
}

.topics-link__category {
  display: flex;
  display: flex;
  justify-content: center;
  justify-content: center;
  align-items: center;
  align-items: center;
  gap: 10px;
  width: calc(121px + var(--slope-1px) * 14);
  height: 1.58333em;
  padding: 5px 30px;
  border-radius: 9px;
  background: var(--bg-color);
  letter-spacing: .6px;
  font-weight: 500;
  font-size: calc(10px + var(--slope-1px) * 2);
}

.topics-link .topics-link__head, .topics-link .topics-link__body {
  transition: color .3s;
}

.topics-link__head {
  position: relative;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: .5em;
  text-align: center;

  margin-block: var(--leading-trim);
}

.topics-link__body {
  position: relative;
  padding-right: calc(42px + var(--slope-1px) * 8);

  margin-block: var(--leading-trim);
}

a.topics-link {
  cursor: pointer;
}

a.topics-link:hover .topics-link__head, a.topics-link:hover .topics-link__body {
  color: var(--key-color);
}

a.topics-link:hover::after {
  opacity: .6;
}

a.topics-link .topics-link__body::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  display: block;
  flex-shrink: 0;
  width: 1.11111em;
  height: 1.11111em;
  margin: auto;
  padding: .5em;
  background: currentColor;
  transition: all .3s;
  transition: translate .3s;

  -webkit-mask: var(--icon-arrow) 50% 50%/contain no-repeat;

          mask: var(--icon-arrow) 50% 50%/contain no-repeat;
}

/* c-topics-list
============================== */
.c-topics-list {
  display: block;
}

.c-topics-list__item {
  border-bottom: 1px dashed var(--base-color);
}

/* c-topics__foot
============================== */
.c-topics__foot {
  display: flex;
  justify-content: flex-end;
}

/* c-topics-toggle
============================== */
.c-topics-toggle {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 0;
  outline: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: inherit;
  color: var(--base-color);
  font-weight: 400;
  font-size: calc(13px + var(--slope-1px) * 1);
  transition: all .2s ease-out;
  -moz-appearance: none;
       appearance: none;
}

.c-topics-toggle:hover {
  opacity: .7;
}

.c-topics-toggle:after {
  content: "";
  display: block;
  width: 12px;
  height: 12px;
  background: var(--icon-angle) 50% 50%/contain no-repeat;
  transform: rotate(0deg);
}

.c-topics-toggle > span:last-child {
  display: none;
}

.c-topics-toggle.is-show > span:first-child {
  display: none;
}

.c-topics-toggle.is-show > span:last-child {
  display: block;
}

.c-topics-toggle.is-show:after {
  transform: rotate(-180deg);
}

/* ============================================================= *

usedcar slider

* ============================================================= */
.c-usedcar-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  max-width: 413px;
  border-radius: 20px;
  text-decoration: none;
}

.c-usedcar-card__image {
  overflow: hidden;
  aspect-ratio: 413 / 320;
}

.c-usedcar-card__image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.c-usedcar-card__contents {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  align-self: stretch;
  gap: 20px;
  padding: calc(20px + var(--slope-1px) * 15) calc(20px + var(--slope-1px) * 20) 25px calc(20px + var(--slope-1px) * 20);
  background: var(--white);
}

.c-usedcar-card__head {
  font-weight: 600;
  font-size: calc(21px + var(--slope-1px) * 3);

  margin-block: var(--leading-trim);
}

.c-usedcar-card__body {
  width: 100%;
}

.c-usedcar-card__data {
  display: flex;
  justify-content: flex-start;
  gap: 15px;
  padding-bottom: 20px;
  border-bottom: 1px solid;
  font-size: calc(13px + var(--slope-1px) * 3);

  margin-block: var(--leading-trim);
}

.c-usedcar-card__data dl {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
}

.c-usedcar-card__data dl dt {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  padding: 12px 20px;
  border: 1px solid;
  line-height: 1;
}

@media screen and (max-width: 768px) {
  .c-usedcar-card__data dl dt {
    padding: 10px 10px;
  }
}

.c-usedcar-card__price {
  display: flex;
  align-items: baseline;
  gap: .5em;
  color: var(--key-color);
  font-weight: 700;
}

.c-usedcar-card__price ._head {
  font-size: 16px;
}

.c-usedcar-card__price ._body em {
  font-weight: 600;
  font-style: normal;
  font-size: 21px;
  font-family: var(--en-font-family);
}

/* ============================================================= *

Scroll Bar

* ============================================================= */
[data-simplebar] {
  position: relative;
  flex-direction: column;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: flex-start;
  align-content: flex-start;
}

.simplebar-wrapper {
  overflow: hidden;
  width: inherit;
  height: inherit;
  max-width: inherit;
  max-height: inherit;
}

.simplebar-mask {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 0;
  overflow: hidden;
  width: auto !important;
  height: auto !important;
  margin: 0;
  padding: 0;
  direction: inherit;
}

.simplebar-offset {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  -webkit-overflow-scrolling: touch;
  box-sizing: inherit !important;
  margin: 0;
  padding: 0;
  resize: none !important;
  direction: inherit !important;
}

.simplebar-content-wrapper {
  position: relative;
  display: block;
  box-sizing: border-box !important;
  width: auto;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  direction: inherit;

  scrollbar-width: none;
  -ms-overflow-style: none;
}

.simplebar-content-wrapper::-webkit-scrollbar,
.simplebar-hide-scrollbar::-webkit-scrollbar {
  width: 0;
  height: 0;
}

.simplebar-content:before,
.simplebar-content:after {
  content: ' ';
  display: table;
}

.simplebar-placeholder {
  width: 100%;
  max-width: 100%;
  max-height: 100%;
  pointer-events: none;
}

.simplebar-height-auto-observer-wrapper {
  position: relative;
  z-index: -1;
  float: left;
  flex-grow: inherit;
  flex-shrink: 0;
  flex-basis: 0;
  overflow: hidden;
  box-sizing: inherit !important;
  width: 100%;
  height: 100%;
  max-width: 1px;
  max-height: 1px;
  margin: 0;
  padding: 0;
  pointer-events: none;
}

.simplebar-height-auto-observer {
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  display: block;
  overflow: hidden;
  box-sizing: inherit;
  width: 1000%;
  height: 1000%;
  min-width: 1px;
  min-height: 1px;
  opacity: 0;
  pointer-events: none;
}

.simplebar-track {
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: 1;
  overflow: hidden;
  background: rgba(200, 200, 200, .3);
  /* pointer-events: none; */
}

[data-simplebar].simplebar-dragging .simplebar-content {
  pointer-events: none;
  -moz-user-select: none;
       user-select: none;
}

[data-simplebar].simplebar-dragging .simplebar-track {
  pointer-events: all;
}

.simplebar-scrollbar {
  position: absolute;
  right: 0;
  left: 0;
  min-height: 10px;
}

.simplebar-scrollbar:before {
  content: '';
  position: absolute;
  right: 2px;
  left: 2px;
  border-radius: 12px;
  background: var(--key-color);
  transition: opacity 0s linear;
}

.simplebar-track.simplebar-vertical {
  top: 0;
  width: 11px;
}

.simplebar-track.simplebar-vertical .simplebar-scrollbar:before {
  top: 2px;
  bottom: 2px;
}

.simplebar-track.simplebar-horizontal {
  bottom: 3px;
  left: 0;
  overflow: visible;
  width: 100%;
  height: 6px;
  max-width: 952px;
  margin: 0 auto;
}

.simplebar-track.simplebar-horizontal.is-fixed {
  position: fixed;
  top: auto;
}

.simplebar-track.simplebar-horizontal .simplebar-scrollbar {
  top: auto;
  right: auto;
  bottom: -3px;
  left: 0;
  width: auto;
  height: 12px;
  min-width: 10px;
  min-height: 0;
  margin: auto 0;
  border-radius: 12px;
  background: var(--key-color);
}

/* Rtl support */
[data-simplebar-direction='rtl'] .simplebar-track.simplebar-vertical {
  right: auto;
  left: 0;
}

.hs-dummy-scrollbar-size {
  position: fixed;
  visibility: hidden;
  overflow-x: scroll;
  overflow-y: hidden;
  width: 500px;
  height: 500px;
  opacity: 0;
  direction: rtl;
}

.simplebar-hide-scrollbar {
  position: fixed;
  left: 0;
  visibility: hidden;
  overflow-y: scroll;

  scrollbar-width: none;
  -ms-overflow-style: none;
}

/* ============================================================= *

Utility

* ============================================================= */
/* Media Query Setting
====================================== */
.u-tablet-block {
  display: none !important;
}

@media screen and (max-width: 768px) {
  .u-tablet-block {
    display: block !important;
  }
}

.u-tablet-inline-block {
  display: none !important;
}

@media screen and (max-width: 768px) {
  .u-tablet-inline-block {
    display: inline-block !important;
  }
}

.u-tablet-flex {
  display: none !important;
}

@media screen and (max-width: 768px) {
  .u-tablet-flex {
    display: flex !important;
  }
}

@media screen and (max-width: 768px) {
  .u-tablet-none {
    display: none !important;
  }
}

.u-mobile-block {
  display: none !important;
}

@media screen and (max-width: 560px) {
  .u-mobile-block {
    display: block !important;
  }
}

.u-mobile-inline-block {
  display: none !important;
}

@media screen and (max-width: 560px) {
  .u-mobile-inline-block {
    display: inline-block !important;
  }
}

.u-mobile-flex {
  display: none !important;
}

@media screen and (max-width: 560px) {
  .u-mobile-flex {
    display: flex !important;
  }
}

@media screen and (max-width: 560px) {
  .u-mobile-none {
    display: none !important;
  }
}

/* text align
====================================== */
.u-ta-left {
  text-align: left !important;
}

.u-ta-right {
  text-align: right !important;
}

.u-ta-center {
  text-align: center !important;
}

/* display
====================================== */
.u-d-block {
  display: block !important;
}

.u-d-none {
  display: none !important;
}

.u-d-inline {
  display: inline !important;
}

.u-d-ib {
  display: inline-block !important;
}

/* position
====================================== */
.u-pos-static {
  position: static !important;
}

.u-pos-relative {
  position: relative !important;
}

.u-pos-absolute {
  position: absolute !important;
}

.u-pos-fixed {
  position: fixed !important;
}

/* clear
====================================== */
.u-clearfix:after {
  content: "";
  display: block;
  visibility: hidden;
  clear: both;
}

/* other
====================================== */
.u-strong {
  font-weight: bold !important;
}

.u-pointer {
  cursor: pointer;
}

.u-nowrap {
  white-space: nowrap;
}

.u-color-honda {
  color: #cc0000 !important;
}

.u-color-ciao {
  color: #0068b6 !important;
}

.u-color-mamoru {
  color: #8fc31f !important;
}

.u-rotate-90 {
  transform: rotate(90deg);
}

/* animationn
====================================== */
.u-no-transition {
  transition: none !important;
}

/* u-wide-width
============================== */
.u-wide-width {
  width: 100cqi;

  margin-inline: calc(50% - 50cqi);
}

/* u-inner-width
============================== */
.u-inner-width {
  max-width: 990px;
  margin-right: auto;
  margin-left: auto;
}
