*:where(:not(html, div, iframe, canvas, img, svg, video, audio, svg *, symbol *)) {
  all: unset;
  display: revert;
}

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

a,
button {
  cursor: revert;
}

ol,
ul,
menu {
  list-style: none;
}

img {
  max-inline-size: 100%;
  max-block-size: 100%;
}

table {
  border-collapse: collapse;
}

input,
textarea {
  -webkit-user-select: auto;
     -moz-user-select: auto;
          user-select: auto;
}

textarea {
  white-space: revert;
}

meter {
  -webkit-appearance: revert;
     -moz-appearance: revert;
          appearance: revert;
}

pre {
  all: revert;
}

::-moz-placeholder {
  color: unset;
}

::placeholder {
  color: unset;
}

:where([contenteditable]:not([contenteditable=false])) {
  -moz-user-modify: read-write;
  -webkit-user-modify: read-write;
  overflow-wrap: break-word;
  line-break: after-white-space;
  -webkit-user-select: auto;
     -moz-user-select: auto;
          user-select: auto;
}

:where([draggable=true]) {
  -webkit-user-drag: element;
}

:where(dialog:modal) {
  all: revert;
}

:where(a, button, summary, label, input, select, textarea):focus-visible {
  outline: var(--focus-color, -webkit-focus-ring-color) auto 1px;
}

:root {
  --base-vw: 375;
  --f-gothic: "Zen Kaku Gothic New", sans-serif;
  --f-libre: "Proza Libre", sans-serif;
  --c-white: #f8f8ed;
  --c-beige-light: #ededdc;
  --c-beige-dark: #c8bf7f;
  --c-black: #333333;
  --c-gray: #e5e5e5;
  --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
  --ease-hover: cubic-bezier(0.25, 0, 0, 1);
  --ease-in: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  --z-base: 0;
  --z-line: 10;
  --z-menu: 100;
  --z-header: 101;
  --z-menu-btn: 102;
  --z-modal: 103;
}

@media screen and (min-width: 768px) {
  :root {
    --base-vw: 1366;
  }
}
html {
  font-size: calc(100 / var(--base-vw) * 1vw * 16);
}

body {
  font-family: "Proza Libre", "Zen Kaku Gothic New", sans-serif, serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  color: #333333;
}

a {
  display: block;
  color: currentcolor;
  cursor: pointer;
}

button {
  color: currentcolor;
  cursor: pointer;
}

details {
  cursor: pointer;
}

video,
img {
  display: block;
  width: 100%;
  height: auto;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
}

svg {
  display: block;
  width: 100%;
  height: 100%;
}

.preload * {
  transition: none !important;
}

.lContainer {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}
.lContainer.is-open {
  pointer-events: none;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

.lMain {
  flex: 1;
  overflow: hidden;
}

.uVisuallyHidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.uDpNone {
  display: none;
}
.uDpNone--md {
  display: none;
}

.uLetterSpacing--sm {
  letter-spacing: -1em;
}
.uLetterSpacing--lg {
  letter-spacing: -0.3em;
}

@media screen and (min-width: 768px) {
  .uDpNone--sp {
    display: none;
  }
  .uDpNone--md {
    display: inherit;
  }
}
@keyframes anime-line-short1 {
  to {
    background-position: calc(-792rem / 16) 0;
  }
}
@keyframes anime-line-short2 {
  to {
    background-position: calc(-828rem / 16) 0;
  }
}
@keyframes anime-line-long1 {
  to {
    background-position: calc(-1248rem / 16) 0;
  }
}
@keyframes anime-line-long2 {
  to {
    background-position: calc(-1230rem / 16) 0;
  }
}
.cLine__short1 {
  background-image: url(/assets/images/common/line-short1.png);
  background-repeat: no-repeat;
  z-index: var(--z-line);
  animation: anime-line-short1 5s steps(6) infinite;
  background-size: calc(792rem / 16) 100%;
  width: calc(132rem / 16);
  height: calc(125rem / 16);
}
.cLine__short2 {
  background-image: url(/assets/images/common/line-short2.png);
  background-repeat: no-repeat;
  z-index: var(--z-line);
  animation: anime-line-short2 5s steps(6) infinite;
  background-size: calc(828rem / 16) 100%;
  width: calc(138rem / 16);
  height: calc(117rem / 16);
}
.cLine__long1 {
  background-image: url(/assets/images/common/line-long1.png);
  background-repeat: no-repeat;
  z-index: var(--z-line);
  animation: anime-line-long1 5s steps(6) infinite;
  background-size: calc(1248rem / 16) 100%;
  width: calc(208rem / 16);
  height: calc(173rem / 16);
}
.cLine__long2 {
  background-image: url(/assets/images/common/line-long2.png);
  background-repeat: no-repeat;
  z-index: var(--z-line);
  animation: anime-line-long2 5s steps(6) infinite;
  background-size: calc(1230rem / 16) 100%;
  width: calc(205rem / 16);
  height: calc(179rem / 16);
}

.cFadeup {
  transform: translateY(10%);
  transition: transform 0.8s, opacity 0.8s var(--ease-in);
  opacity: 0;
}
.cFadeup.is-active {
  transform: translateY(0);
  opacity: 1;
}

.cLeadFadeup {
  transform: translateY(20%);
  transition: transform 1.2s, opacity 1.1s var(--ease-in);
  opacity: 0;
  display: block;
}
.cLeadFadeup.is-active {
  transform: translateY(0);
  opacity: 1;
}

.cFadein {
  opacity: 0;
  transition: opacity 0.8s var(--ease-in);
}
.cFadein.is-active {
  opacity: 1;
}

.cOPFadein {
  opacity: 0;
  transition: opacity 1.2s var(--ease-in);
}
.cOPFadein.is-active {
  opacity: 1;
}

.cOPFadeup {
  transform: translateY(20%);
  transition: transform 1s, opacity 1s var(--ease-out);
  opacity: 0;
}
.cOPFadeup.is-active {
  transform: translateY(0);
  opacity: 1;
}

.cOPFadedown {
  transform: translateY(-20%);
  transition: transform 1s, opacity 1s var(--ease-out);
  opacity: 0;
}
.cOPFadedown.is-active {
  transform: translateY(0);
  opacity: 1;
}

.lHeader {
  height: calc(77rem / 16);
  width: 100%;
}
.lHeader__inner {
  width: 100%;
  height: 100%;
  padding: 0 calc(15rem / 16) 0 calc(15rem / 16);
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.lHeader__logo {
  width: calc(126rem / 16);
}
.lHeader__button {
  width: calc(55rem / 16);
  height: calc(55rem / 16);
  position: fixed;
  right: calc(21rem / 16);
  top: calc(9rem / 16);
  z-index: var(--z-header);
}
.lHeader__button_line {
  position: absolute;
  background: var(--c-black);
  width: 100%;
  height: 1px;
}
.lHeader__button_line:nth-of-type(1) {
  top: 22px;
}
.lHeader__button_line:nth-of-type(2) {
  top: 29px;
}
.lHeader__button_line:nth-of-type(3) {
  top: 36px;
}

[header-color=black] .lHeader__button_line {
  background: var(--c-black);
}

[header-color=white] .lHeader__button_line {
  background: #fff;
}

.cMenu__inner.is-open {
  min-height: 100vh;
  transform: translateX(0);
  transition: transform 0.8s var(--ease-out);
}

.cMenu__inner {
  position: fixed;
  top: 0;
  right: 0;
  z-index: var(--z-modal);
  width: 100%;
  height: 100%;
  overflow: auto;
  transition: transform 0.8s var(--ease-out);
  transform: translateX(101%);
}
.cMenu__wrapper {
  width: 100%;
  height: 100%;
}
.cMenu__overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.cMenu__content {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 1;
  width: calc(325rem / 16);
  height: 100vh;
  border-radius: calc(50rem / 16) 0 0 calc(50rem / 16);
  background: var(--c-white);
  display: flex;
  align-items: center;
  justify-content: center;
}
.cMenu__nav {
  margin-top: calc(53rem / 16);
}
.cMenu__nav_item {
  margin-top: calc(34rem / 16);
}
.cMenu__nav_item:first-child {
  margin-top: 0;
}
.cMenu__nav_item_link {
  position: relative;
  display: flex;
  align-items: center;
  -moz-column-gap: calc(12rem / 16);
       column-gap: calc(12rem / 16);
  width: -moz-fit-content;
  width: fit-content;
}
.cMenu__nav_item_title--icon {
  width: calc(75rem / 16);
  position: absolute;
  top: calc(-16rem / 16);
  left: calc(-38rem / 16);
  z-index: -1;
}
.cMenu__nav_item_title--en {
  font-size: calc(18rem / 16);
  letter-spacing: 0.03em;
}
.cMenu__nav_item_title--jp.service {
  width: calc(76rem / 16);
}
.cMenu__nav_item_title--jp.voice {
  width: calc(65rem / 16);
}
.cMenu__nav_item_title--jp.message {
  width: calc(91rem / 16);
}
.cMenu__nav_item_title--jp.company {
  width: calc(52rem / 16);
}
.cMenu__nav_item_title--jp.contact {
  width: calc(77rem / 16);
}
.cMenu__close {
  position: absolute;
  top: calc(8rem / 16);
  right: calc(23rem / 16);
  z-index: 1;
}
.cMenu__close_button {
  display: block;
  width: calc(60rem / 16);
  height: calc(60rem / 16);
  position: relative;
}
.cMenu__close_button::before, .cMenu__close_button::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1px;
  height: calc(55rem / 16);
  background: var(--c-black);
}
.cMenu__close_button::before {
  transform: translate(-50%, -50%) rotate(58deg);
}
.cMenu__close_button::after {
  transform: translate(-50%, -50%) rotate(-58deg);
}

.lFooter {
  background: #fff;
  width: 100%;
  padding: calc(109rem / 16) calc(20rem / 16) calc(30rem / 16);
  margin-top: -1px;
}
.lFooter__inner {
  display: flex;
  justify-content: space-between;
}

.lFooterLeft__logo {
  width: calc(126rem / 16);
}

.lFooterRight {
  display: flex;
  align-items: center;
  -moz-column-gap: calc(3rem / 16);
       column-gap: calc(3rem / 16);
}
.lFooterRight__text {
  font-size: calc(10rem / 16);
  letter-spacing: 0.05em;
  margin-top: calc(2rem / 16);
}
.lFooterRight__name {
  font-family: var(--f-gothic);
  font-size: calc(12rem / 16);
  letter-spacing: 0.02em;
}

@media (min-width: 768px) {
  @keyframes anime-line-short1 {
    to {
      background-position: max(-792px, calc(-792rem / 16)) 0;
    }
  }
  @keyframes anime-line-short2 {
    to {
      background-position: max(-828px, calc(-828rem / 16)) 0;
    }
  }
  @keyframes anime-line-long1 {
    to {
      background-position: max(-1248px, calc(-1248rem / 16)) 0;
    }
  }
  @keyframes anime-line-long2 {
    to {
      background-position: max(-1230px, calc(-1230rem / 16)) 0;
    }
  }
  .cLine__short1 {
    background-size: min(792px, calc(792rem / 16)) 100%;
    width: min(132px, calc(132rem / 16));
    height: min(125px, calc(125rem / 16));
  }
  .cLine__short2 {
    background-size: min(828px, calc(828rem / 16)) 100%;
    width: min(138px, calc(138rem / 16));
    height: min(117px, calc(117rem / 16));
  }
  .cLine__long1 {
    background-size: min(1248px, calc(1248rem / 16)) 100%;
    width: min(208px, calc(208rem / 16));
    height: min(173px, calc(173rem / 16));
  }
  .cLine__long2 {
    background-size: min(1230px, calc(1230rem / 16)) 100%;
    width: min(205px, calc(205rem / 16));
    height: min(179px, calc(179rem / 16));
  }
  .lHeader {
    height: min(122px, calc(122rem / 16));
  }
  .lHeader__logo {
    width: min(126px, calc(126rem / 16));
  }
  .lHeader__inner {
    padding: 0 0 0 calc(40rem / 16);
  }
  .lHeader__button {
    top: min(31px, calc(31rem / 16));
    right: min(52px, calc(52rem / 16));
    width: min(60px, calc(60rem / 16));
    height: min(60px, calc(60rem / 16));
  }
  .lHeader__button_line:nth-of-type(1), .lHeader__button_line:nth-of-type(3) {
    transition: transform 0.7s var(--ease-out);
    transform: translateY(0px);
  }
  .cMenu__inner {
    transition: transform 1s;
  }
  .cMenu__content {
    width: calc(390rem / 16);
  }
  .cMenu__nav {
    margin: calc(-7rem / 16) 0 0 calc(-25rem / 16);
  }
  .cMenu__nav_title--icon {
    left: calc(-44rem / 16);
  }
  .cMenu__close {
    top: calc(31rem / 16);
    right: calc(51rem / 16);
  }
  .lFooter {
    background: #fff;
    width: 100%;
    padding: min(255px, calc(255rem / 16)) 0 calc(30rem / 16);
  }
  .lFooter__inner {
    width: min(1366px, 100%);
    margin: 0 auto;
    padding: 0 min(40px, calc(40rem / 16));
  }
  .lFooterLeft__logo {
    width: min(126px, calc(126rem / 16));
  }
  .lFooterRight {
    display: flex;
    align-items: center;
    -moz-column-gap: calc(3rem / 16);
         column-gap: calc(3rem / 16);
  }
  .lFooterRight__text {
    font-size: min(11px, calc(11rem / 16));
    margin-top: 0;
  }
  .lFooterRight__name {
    font-size: min(13px, calc(13rem / 16));
  }
}
@media (min-width: 768px) and (hover: hover) {
  .lHeader__button:hover .lHeader__button_line:nth-of-type(1) {
    transform: translateY(-4px);
  }
  .lHeader__button:hover .lHeader__button_line:nth-of-type(3) {
    transform: translateY(4px);
  }
  .cMenu__nav_item_link {
    opacity: 1;
    transition: opacity 0.5s var(--ease-out);
  }
  .cMenu__nav_item_link:hover {
    opacity: 0.5;
  }
}


/* 20240426 add
------------------------------------------------------------------------------- */
.lHeader__button_line.add_202404:nth-of-type(1) {
	top: 11px;
}
.lHeader__button_line.add_202404:nth-of-type(2) {
	top: 24px;
}
.lHeader__button_line.add_202404:nth-of-type(3) {
	top: 37px;
}
.lHeader__button.add_202404 {
	width: calc(55rem / 16);
	height: calc(55rem / 16);
	position: fixed;
	right: calc(21rem / 16);
	top: calc(9rem / 16);
	z-index: var(--z-header);
	width: 40px;
    height: 40px;
    top: 12px;
}
.lHeader__logo.add_202404 {
	width: calc(70rem / 16);
    margin-top: 30px;
}
.lFooterLeft__logo.add_202404 {
    width: calc(70rem / 16);
}
.pLinkButton.add_202404 {
    border-radius: calc(28rem / 16);
    border: 1px solid var(--c-black);
    position: relative;
    z-index: 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.pVoice__link.add_202404 {
    margin-top: calc(140rem / 16);
    padding: calc(20rem / 16) calc(25rem / 16) calc(18rem / 16) calc(22rem / 16);
	margin: calc(90rem / 16) calc(30rem / 16) 0;
	margin-top: 0;
}
.pLinkButton__text.add_202404 {
    font-size: calc(16rem / 16);
    letter-spacing: 0.02em;
    line-height: 1.6;
}
.pLinkButton__arrow.add_202404 {
    width: calc(8rem / 16);
}
.pLinkButton__cloud.add_202404 {
    width: calc(71rem / 16);
    position: absolute;
    top: -32px;
    right: -15px;
    z-index: 1;
}
.pCompany__line1.add_202404 {
    position: absolute;
    top: calc(-11rem / 16) !important;
    left: calc(-27rem / 16);
}

@media (min-width: 768px) {
	.lHeader__button.add_202404 {
        top: min(31px, 31rem / 16);
        right: min(52px, 52rem / 16);
        width: min(50px, 50rem / 16);
        height: min(56px, 56rem / 16);
    }
	.lHeader__logo.add_202404 {
        width: min(90px, 90rem / 16);
    }
	.lFooterLeft__logo.add_202404 {
        width: min(80px, 80rem / 16);
    }
	.pLinkButton.add_202404 {
        border-radius: min(20px, 20rem / 16);
        margin-top: min(125px, 125rem / 16);
        width: min(668px, 668rem / 16);
        -moz-column-gap: min(15px, 15rem / 16);
        column-gap: min(15px, 15rem / 16);
        justify-content: center;
        transition: 0.6s var(--ease-out);
    }
	.pVoice__link.add_202404 {
        margin: min(240px, 240rem / 16) auto 0;
        padding: min(25px, 25rem / 16) 0 min(20px, 20rem / 16);
		margin-top: 0;
    }
	.pVoice__link_text.add_202404 {
		letter-spacing: 0;
	}
	.pLinkButton__text.add_202404 {
        font-size: min(17px, 17rem / 16);
        transition: 0.6s var(--ease-out);
    }
	.pLinkButton__arrow.add_202404 {
        width: min(6px, 6rem / 16);
    }
	.pLinkButton__cloud.add_202404 {
        width: min(71px, 71rem / 16);
        top: -25px;
        right: -36px;
    }
}
@media (min-width: 768px) and (hover: hover) {
    .pLinkButton.add_202404:hover {
        border-radius: calc(30rem / 16);
    }
}

@media (min-width: 768px) and (hover: hover) {
    .pVoice .pLinkButton.add_202404:hover {
        border-radius: calc(30rem / 16);
    }
}
@media (min-width: 768px) and (hover: hover) {
    .pLinkButton.add_202404:hover .pLinkButton__text.add_202404 {
        letter-spacing: 0.16em;
    }
}
@media (min-width: 768px) and (hover: hover) {
    .pVoice .pLinkButton.add_202404:hover .pLinkButton__text.add_202404 {
        letter-spacing: 0.11em;
    }
}