@charset "UTF-8";

/* ress.css v5.0.2 custom */

/* ===============================
Global selectors
=============================== */
html {
  box-sizing: border-box;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  word-break: normal;
  tab-size: 4;
}
:where(*, *::before, *::after) {
  margin: 0;
  padding: 0;
  box-sizing: inherit;
}
:where(::before, ::after) {
  text-decoration: inherit;
  vertical-align: inherit;
}

/* ===============================
Global elements
=============================== */
:where(hr) {
  overflow: visible;
  height: 0;
  color: inherit;
}
:where(details, main) {
  display: block;
}
:where(summary) {
  display: list-item;
}
:where(small) {
  font-size: 80%;
}
:where(abbr[title]) {
  border-bottom: none;
  text-decoration: underline;
  -webkit-text-decoration: underline dotted;
  text-decoration: underline dotted;
}
:where(a) {
  background-color: transparent;
}
:where(a:active, a:hover) {
  outline-width: 0;
}
:where(code, kbd, pre, samp) {
  font-family: monospace, monospace;
}
:where(pre) {
  font-size: 1em;
}
:where(b, strong) {
  font-weight: bolder;
}
:where(sub, sup) {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
:where(sub) {
  bottom: -0.25em;
}
:where(sup) {
  top: -0.5em;
}
:where(table) {
  border-color: inherit;
  text-indent: 0;
}
:where(iframe) {
  border-style: none;
}

/* ===============================
Forms
=============================== */
:where(input) {
  border-radius: 0;
}
:where(
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button
) {
  height: auto;
}
:where([type="search"]) {
  appearance: textfield;
  outline-offset: calc(-2 / 16 * 1rem);
}
:where([type="search"]::-webkit-search-decoration) {
  appearance: none;
}
:where(textarea) {
  overflow: auto;
  resize: vertical;
}
:where(button, input, optgroup, select, textarea) {
  font: inherit;
}
:where(optgroup) {
  font-weight: bold;
}
:where(button) {
  overflow: visible;
}
:where(button, select) {
  text-transform: none;
}
:where(
button,
[type="button"],
[type="reset"],
[type="submit"],
[role="button"]
) {
  cursor: pointer;
}
:where(
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner
) {
  border-style: none;
  padding: 0;
}
:where(
button:-moz-focusring,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner
) {
  outline: 1px dotted ButtonText;
}
:where(button, html [type="button"], [type="reset"], [type="submit"]) {
  appearance: auto;
}
:where(button, input, select, textarea) {
  background-color: transparent;
  border-style: none;
}
:where(a:focus, button:focus, input:focus, select:focus, textarea:focus) {
  outline-width: 0;
}
:where(select) {
  appearance: none;
}
:where(select::-ms-expand) {
  display: none;
}
:where(select::-ms-value) {
  color: currentColor;
}
:where(legend) {
  border: 0;
  color: inherit;
  display: table;
  white-space: normal;
  max-width: 100%;
}
:where(::-webkit-file-upload-button) {
  appearance: auto;
  color: inherit;
  font: inherit;
}
:where([disabled]) {
  cursor: default;
}

/* ===============================
Specify media element style
=============================== */
:where(img) {
  border-style: none;
}
:where(progress) {
  vertical-align: baseline;
}

/* ===============================
Accessibility
=============================== */
:where([aria-busy="true"]) {
  cursor: progress;
}
:where([aria-controls]) {
  cursor: pointer;
}
:where([aria-disabled="true"]) {
  cursor: default;
}

/* ===============================
Additional Reset （追加のリセット）
=============================== */
:where(:root) {
  text-spacing-trim: trim-start;
}
:where(address:lang(ja)) {
  font-style: unset;
}
:where(em:lang(ja)) {
  font-weight: bolder;
}
:where(:is(i, cite, em, dfn, var):lang(ja)) {
  font-style: unset;
}
:where(
a:focus,
button:focus,
input:focus,
select:focus,
textarea:focus,
summary:focus
) {
  outline: revert;
}
:where(a) {
  color: inherit;
  text-decoration: none;
  text-underline-offset: 0.2ex;
}
:where(img, svg, video, canvas, audio, iframe, embed, object) {
  display: block;
}
:where(img, picture, svg, video) {
  max-inline-size: 100%;
  block-size: auto;
}
:where(h1, h2, h3, h4, h5, h6) {
  font-weight: var(--font_weight_base);
}
:where(ul, ol, menu) {
  list-style-type: "";
}
:where(button) {
  box-sizing: border-box;
}
:where(dialog) {
  width: unset;
  max-width: unset;
  height: unset;
  max-height: unset;
  padding: unset;
  color: unset;
  background-color: unset;
  border: unset;
  overflow: unset;
}
:where(table) {
  border-collapse: collapse;
  border-spacing: 0;
}
:where(th) {
  font-weight: inherit;
}
:where(address) {
  font-style: normal;
}
:where(iframe) {
  border-width: 0;
}
:where(summary) {
  display: block;
  cursor: pointer;
  list-style: none;
}
:where(fieldset) {
  border: none;
}
:where(select) {
  color: var(--base_color);
  border-radius: 0;
}
summary::-webkit-details-marker {
  display: none;
}
:where([hidden]:not([hidden="until-found"])) {
  display: none;
}
:where([hidden="until-found"]) {
  overflow: hidden;
}
: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;
}

/* ===============================
Root
=============================== */
:root {
  --color_base: oklch(0% 0 0);
  --color_hover: oklch(50% 0 0);
  --font_feature_settings: normal;
  --font_base: 'M PLUS 1p', sans-serif;
  --letter_spacing: 0.05em;
  --font_weight_base: 700;
  --font_weight_mid: 500;
  --font_weight_bold: 700;
  --font_weight_black: 900;
  --noto_sans: 'Noto Sans JP', sans-serif;
  --mplus1p: 'M PLUS 1p', sans-serif;
  --focus_border: oklch(67.259% 0.13404 137.863);
  --input_bg: oklch(100% 0 0);
  --scrollbar-width: 0px;
  --header_height: 80px;
  --leading_trim: calc((1em - 1lh) / 2);
  --pagetop_bottom: 50px;
  --vw1: calc(1vw - (var(--scrollbar-width) / 100));
  --sp_space: calc(var(--vw1) * 5);
}
@supports (width: 1dvw) {
  :root {
    --vw1: 1dvw;
  }
}
@media screen and (max-width: 768.999px) {
  :root {
    --header_height: 45px;
    --pagetop_bottom: 20px;
  }
}
@supports not (top: 1lh) {
  :root {
    --leading-trim: 0px;
  }
}

/* ===============================
Font Settings
=============================== */
.m-plus-1p-medium {
  font-family: "M PLUS 1p", sans-serif;
  font-weight: 500;
  font-style: normal;
}
.m-plus-1p-bold {
  font-family: "M PLUS 1p", sans-serif;
  font-weight: 700;
  font-style: normal;
}
.m-plus-1p-black {
  font-family: "M PLUS 1p", sans-serif;
  font-weight: 900;
  font-style: normal;
}

/* ===============================
bese
=============================== */
:focus-visible {
  outline: calc(2 / 16 * 1rem) solid var(--focus_border);
}
html {
  overflow-y: scroll;
}
body {
  font-feature-settings: var(--font_feature_settings);
  letter-spacing: var(--letter_spacing);
  font-family: var(--font_base);
  font-weight: var(--font_weight_base);
  font-size: calc(16 / 16 * 1rem);
  line-height: 1.8;
  color: var(--color_base);
  background-color: #fff;
  font-optical-sizing: auto;
  overflow-wrap: anywhere;
  word-break: normal;
  line-break: strict;
  -webkit-font-smoothing: antialiased;
}

/* SP調整 ------------------ */
@media screen and (max-width: 768.999px) {
  body {
    font-size: calc(14 / 16 * 1rem);
    line-height: 1.5;
  }
  img {
    width: 100%;
    height: auto;
  }
}

/* ===============================
Safari Dialog focus対策
=============================== */
dialog :focus {
  outline: none;
}
.is_tabbing dialog :focus-visible {
  outline: calc(2 / 16 * 1rem) solid var(--focus_border);
}

/* ===============================
mousedevice / touchdevice
=============================== */

/* hoverデバイス ----------- */
@media (any-hover: hover) {
  a:hover {
    color: color-mix(in srgb, var(--color_base) 70%, #fff);
  }
  a[href^="tel:"] {
    cursor: default;
    pointer-events: none;
  }
}

/* ================================
layout
================================ */
.ly_wrapper {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  min-width: calc(1200 / 16 * 1rem);
}

/* SP調整 ------------------ */
@media screen and (max-width:768.999px) {
  .ly_wrapper {
    min-width: calc(320 / 16 * 1rem);
  }
}

/* ================================
header
================================ */
.ly_header {
  height: var(--header_height);
}
.header_inner {
  position: fixed;
  top: 0;
  width: 100%;
  height: var(--header_height);
  z-index: 100;
  background-color: #fff;
  filter: drop-shadow(0 0 0 rgb(0 0 0 / 0));
  transition: filter .3s;
}
.is_scroll .header_inner,
.is_modal_open .header_inner {
  filter: drop-shadow(0 0 calc(2 / 16 * 1rem) rgb(0 0 0 / 0.3));
}
.header_column {
  display: flex;
  justify-content: space-between;
  margin: 0 calc(112 / 16 * 1rem) 0 calc(29 / 16 * 1rem);
  font-family: var(--mplus1p);
  font-weight: 700;
  letter-spacing: 0;
}
.header_column a {
  display: block;
  padding: calc(10 / 16 * 1rem);
}
.header_title {
  padding-top: calc(21 / 16 * 1rem);
  font-size: calc(28 / 16 * 1rem);
  font-family: var(--mplus1p);
  font-weight: 700;
}

/* hoverデバイス ----------- */
@media (any-hover: hover) {
  .header_title a {
    transition: opacity .1s;
  }
  .header_title a:hover {
    opacity: .7;
  }
}

/* SP調整 ------------------ */
@media screen and (max-width:768.999px) {
  .header_column {
    margin-left: calc(15 / 16 * 1rem);
    padding-top: calc(4 / 16 * 1rem);
  }
  .header_title {
    padding-top: 0;
  }
  .header_title img {
    width: calc(177 / 16 * 1rem);
    height: auto;
  }
}

/* ================================
humberger
================================ */
.humberger {
  display: block;
  position: fixed;
  top: 0;
  right: 0;
  width: calc(80 / 16 * 1rem);
  height: calc(80 / 16 * 1rem);
  background-color: var(--color_base);
  transition: background-color .2s;
}
button.humberger:focus {
  outline: none;
}
.is_tabbing button.humberger:focus {
  outline-offset: calc(-2 / 16 * 1rem);
  outline: calc(2 / 16 * 1rem) solid var(--focus_border);
}
.humberger::before,
.humberger_line:before,
.humberger_line:after {
  content: "";
  display: block;
  position: absolute;
  top: calc(39 / 16 * 1rem);
  left: 0;
  right: 0;
  width: calc(50 / 16 * 1rem);
  height: calc(2 / 16 * 1rem);
  margin: auto;
  background-color: #fff;
  transition: transform 0.4s, width 0.3s;
}
.humberger::before {
  transform: translateY(calc(-15 / 16 * 1rem));
}
.humberger_line:after {
  transform: translateY(calc(15 / 16 * 1rem));
}

/* 閉じるハンバーガーメニュー */
.humberger.__close {
  z-index: 110;
}
.is_menu_open .humberger_line {
  width: calc(54 / 16 * 1rem);
}
.is_menu_open .humberger::before {
  transform: rotate(45deg);
}
.is_menu_open .humberger_line::before {
  width: 0;
}
.is_menu_open .humberger_line::after {
  transform: rotate(-45deg);
}

/* hover ----------- */
@media (any-hover: hover) {
  .humberger {
    transition: background-color .1s;
  }
  .humberger:hover {
    background-color: var(--color_hover);
  }
}

/* SP調整 ------------------ */
@media screen and (max-width:768.999px) {
  .humberger {
    width: calc(45 / 16 * 1rem);
    height: calc(45 / 16 * 1rem);
  }
  .humberger::before,
  .humberger_line::before,
  .humberger_line::after {
    top: calc(22 / 16 * 1rem);
    width: calc(28 / 16 * 1rem);
    height: 1px;
  }
  .humberger::before {
    transform: translateY(calc(-9 / 16 * 1rem));
  }
  .humberger_line::after {
    transform: translateY(calc(9 / 16 * 1rem));
  }

  /* 閉じるハンバーガーメニュー */
  .is_menu_open .humberger_line {
    width: calc(19 / 16 * 1rem);
  }
}

/* ===============================
コンテンツのスクロールバーを表示
PCサイズ背景レイヤー
=============================== */
.header_menu_layer {
  background-color: var(--color_base);
  transition: background-color 0.2s, opacity 0.2s;
  opacity: 0;
}
.is_menu_open .header_menu_layer,
.header_menu.is_hide .header_menu_layer {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  mix-blend-mode: multiply;
  z-index: -1;
  opacity: .4;
}
.header_menu.is_hide .header_menu_layer {
  opacity: 0;
}

/* SP調整 ------------------ */
@media screen and (max-width:768.999px) {
  .is_menu_open .header_menu_layer {
    display: none;
  }
}

/* ================================
header_menu / モーダルメニューの枠組み
================================ */
.header_menu,
.header_menu::backdrop {
  background-color: transparent;
  border: none;
}
.menu_inner {
  position: fixed;
  top: 0;
  right: 0;
  height: 100%;
  max-height: 100%;
  width: calc(400 / 16 * 1rem);
  padding: calc(103 / 16 * 1rem) calc(50 / 16 * 1rem) calc(50 / 16 * 1rem) calc(60 / 16 * 1rem);
  overflow: auto;
  background-color: oklch(100% 0 0 / 0.9);
}

/* SP調整 ------------------ */
@media screen and (max-width:768.999px) {
  .header_menu {
    width: 100%;
    min-width: calc(320 / 16 * 1rem);
  }
  .menu_inner {
    width: 100%;
    padding: calc(60 / 16 * 1rem) calc(20 / 16 * 1rem) calc(42 / 16 * 1rem);
    background-color: oklch(100% 0 0);
  }
}

/* アニメーション ---------------------------- */
.menu_inner {
  transform: translateX(100%);
}
.header_menu[open] .menu_inner {
  animation: menuSlideIn 0.3s forwards;
  transform: translateX(0);
}
.header_menu.is_hide .menu_inner {
  animation: menuSlideOut 0.3s forwards;
}
@keyframes menuSlideIn {
  from {
    transform: translateX(100%);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}
@keyframes menuSlideOut {
  from {
    display: block;
    transform: translateX(0);
    opacity: 1;
  }
  to {
    transform: translateX(100%);
    opacity: 0;
  }
}

/* ===============================
header_menu / モーダルメニューの中身
=============================== */
.menu_logo {
  position: absolute;
  top: calc(38 / 16 * 1rem);
  left: calc(29 / 16 * 1rem);
}
.nav_list li + li {
  border-top: 1px solid var(--color_base);
}
.nav_list a {
  display: block;
  padding: calc(18 / 16 * 1rem) calc(10 / 16 * 1rem) calc(17 / 16 * 1rem);
  letter-spacing: 0.15em;
  color: var(--color_accent);
  text-align: center;
}
.nav_list .nav_link.__inquiry {
  display: grid;
  place-content: center;
  position: relative;
  width: 100%;
  height: calc(50 / 16 * 1rem);
  margin-top: calc(55 / 16 * 1rem);
  padding: 0 calc(10 / 16 * 1rem) calc(2 / 16 * 1rem);
  background-color: var(--color_base);
  color: #fff;
  font-size: calc(16 / 16 * 1rem);
  border-radius: calc(9999 / 16 * 1rem);
  letter-spacing: 0.05em;
}
.nav_list a:not(.__inquiry):focus-visible {
  background-color: oklch(0% 0 0 / 0.15);
  outline: none;
  box-shadow: 0 0 0 0 transparent;
}

/* hoverデバイス ----------- */
@media (any-hover: hover) {
  .nav_list a {
    transition: background-color .1s;
  }
  .nav_list a:hover {
    opacity: 1;
    background-color: oklch(0% 0 0 / 0.15);
  }
  .nav_link.__inquiry:hover {
    background-color: var(--color_hover);
  }
}

/* SP調整 ------------------ */
@media screen and (max-width:768.999px) {
  .nav_list a {
    padding: calc(12 / 16 * 1rem) calc(10 / 16 * 1rem) calc(13 / 16 * 1rem);
  }
  .menu_logo {
    position: absolute;
    top: calc(15 / 16 * 1rem);
    left: calc(20 / 16 * 1rem);
    max-width: calc(177 / 16 * 1rem);
  }
}

/* ===============================
ly_main
=============================== */
.ly_main {
  flex: 1;
}

/* ===============================
ly_footer
=============================== */
.footer_top {
  min-height: calc(240 / 16 * 1rem);
  padding: calc(62 / 16 * 1rem) calc(15 / 16 * 1rem);
  text-align: center;
}
.footer_logo {
  width: calc(278 / 16 * 1rem);
  margin: 0 auto calc(25 / 16 * 1rem);
}
.footer_end {
  padding-bottom: 1px;
  background-color: var(--color_base);
  color: oklch(100% 0 0);
  text-align: center;
}
.footer_copy small {
  font-size: calc(12 / 16 * 1rem);
  letter-spacing: 0;
}

/* PC背景画像 ------------------ */
@media (min-width:769px), print {
  .footer_top {
    background: url(../../img/common/footer_bg_pc.jpg) no-repeat center bottom / cover;
  }
}

/* SP調整 ------------------ */
@media screen and (max-width:768.999px) {
  .footer_top {
    min-height: calc(513 / 16 * 1rem);
    padding: calc(100 / 16 * 1rem) 6.25vw;
    background: url(../../img/common/footer_bg_sp.jpg) no-repeat center center / cover;
  }
  .footer_text {
    max-width: calc(360 / 16 * 1rem);
    margin: 0 auto;
  }
  .footer_logo {
    width: calc(256 / 16 * 1rem);
    margin: 0 auto calc(30 / 16 * 1rem);
  }
  .footer_text {
    line-height: 2;
    text-align: left;
    font-size: calc(16 / 16 * 1rem);
  }
}

/* ===============================
Module / Block
=============================== */

/* ===============================
md_inquiry
=============================== */
.md_inquiry {
  padding: calc(70 / 16 * 1rem) calc(15 / 16 * 1rem) calc(75 / 16 * 1rem);
}
.md_inquiry_inner {
  text-align: center;
}
.md_inquiry_title {
  margin-bottom: calc(50 / 16 * 1rem);
  padding: var(--leading_trim) 0 var(--leading_trim) 0.2em;
  font-size: calc(21 / 16 * 1rem);
  text-align: center;
  letter-spacing: 0.2em;
}
.md_inquiry_text {
  margin-top: -1.1em;
  margin-bottom: 1.5em;
  line-height: 2;
}
.md_inquiry_tel {
  margin-bottom: 3.4em;
}
.md_inquiry_tel_link {
  display: inline-block;
  margin: 0 auto;
  padding-left: 0.2em;
  font-size: calc(21 / 16 * 1rem);
  letter-spacing: 0.2em;
}
.md_inquiry_time {
  display: block;
  margin-top: 0.1em;
}
.md_inquiry_button a {
  display: grid;
  place-content: center;
  max-width: calc(300 / 16 * 1rem);
  height: calc(56 / 16 * 1rem);
  margin: 0 auto;
  padding: 0 0 0 0.2em;
  background-color: var(--color_base);
  border-radius: calc(9999 / 16 * 1rem);
  font-size: calc(15 / 16 * 1rem);
  color: oklch(100% 0 0);
  letter-spacing: 0.2em;
  transition: background-color .1s;
}

/* hoverデバイス ----------- */
@media (any-hover: hover) {
  .md_inquiry_button a:hover {
    background-color: var(--color_hover);
  }
}

/* SP調整 ------------------ */
@media screen and (max-width:768.999px) {
  .md_inquiry {
    padding: calc(40 / 16 * 1rem) calc(15 / 16 * 1rem);
  }
  .md_inquiry_title {
    margin-bottom: calc(40 / 16 * 1rem);
    font-size: calc(21 / 16 * 1rem);
  }
  .md_inquiry_text {
    margin-top: 0;
    margin-bottom: 0.7em;
    font-size: calc(16 / 16 * 1rem);
    line-height: 2;
  }
  .md_inquiry_tel {
    margin-bottom: 2em;
  }
  .md_inquiry_time {
    display: block;
    margin-top: 1em;
    font-size: calc(16 / 16 * 1rem);
  }
}

/* ===============================
dialog / modal
=============================== */
:where([data-modal]) {
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  background: transparent;
  border: none;
  overflow: hidden;
}
:where([data-modal])::backdrop {
  background: transparent;
}
:where([data-modal][open]) {
  display: flex;
  align-items: center;
  justify-content: center;
}
:where([data-modal-layer]) {
  position: fixed;
  inset: 0;
  background-color: oklch(0% 0 0 / 40%);
  transform: translateZ(0);
  will-change: opacity;
  transition: opacity 0.4s;
  opacity: 0;
}
:where([data-modal-contents]) {
  position: relative;
  background-color: oklch(100% 0 0);
  transform: translate3d(0, 0, 0);
  will-change: transform, opacity;
  contain: layout paint style;
  isolation: isolate;
}
:where(body.is_modal_open .header_inner) {
  width: calc(100vw - var(--scrollbar-width));
}

/* Animation  ------------- */
:where([open] [data-modal-layer]) {
  opacity: 1;
}
:where([data-modal-layer]) {
  animation: dialogFadeIn 0.3s forwards;
}
:where(.is_animation [data-modal-layer]) {
  animation: dialogFadeOut 0.3s forwards;
}
:where([open] [data-modal-contents]) {
  animation: dialogFadeInUp 0.6s forwards;
}
:where(.is_animation [data-modal-contents]) {
  animation: dialogFadeOutUp 0.6s forwards;
}
@keyframes dialogFadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes dialogFadeOut {
  from { opacity: 1; }
  to { opacity: 0; }
}
@keyframes dialogFadeInUp {
  from { transform: translate3d(0, calc(50 / 16 * 1rem), 0); opacity: 0; }
  to   { transform: translate3d(0, 0, 0); opacity: 1; }
}
@keyframes dialogFadeOutUp {
  from { transform: translate3d(0, 0, 0); opacity: 1; }
  to   { transform: translate3d(0, calc(-50 / 16 * 1rem), 0); opacity: 0; }
}
@keyframes dialogFadeRightIn {
  from { transform: translate3d(calc(40 / 16 * 1rem), 0, 0); opacity: 0; }
  to   { transform: translate3d(0, 0, 0); opacity: 1; }
}
@keyframes dialogFadeLeftOut {
  from { transform: translate3d(0, 0, 0); opacity: 1; }
  to   { transform: translate3d(calc(-40 / 16 * 1rem), 0, 0); opacity: 0; }
}
@keyframes dialogFadeLeftIn {
  from { transform: translate3d(calc(-40 / 16 * 1rem), 0, 0); opacity: 0; }
  to   { transform: translate3d(0, 0, 0); opacity: 1; }
}
@keyframes dialogFadeRightOut {
  from { transform: translate3d(0, 0, 0); opacity: 1; }
  to   { transform: translate3d(calc(40 / 16 * 1rem), 0, 0); opacity: 0; }
}

/* ===============================
md_modal
=============================== */
.md_modal {
  top: 0;
  left: 0;
  width: 100%;
  max-width: initial;
  height: 100%;
  max-height: initial;
  margin: 0;
  padding: calc(50 / 16 * 1rem);
  background: transparent;
  border: none;
  overflow: hidden;
}
.md_modal::backdrop {
  display: none;
}
.md_dmodal_layer {
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0 0 0 / 0.7);
}
.md_modal.is_show {
  display: flex;
  justify-content: center;
  align-items: center;
  opacity: 1;
}
.md_modal_close {
  position: fixed;
  top: 0;
  right: 0;
  width: calc(70 / 16 * 1rem);
  height: calc(70 / 16 * 1rem);
  background: var(--color_base);
  cursor: pointer;
  transition: background-color .2s, color .2s;
  z-index: 10;
}
.md_modal_close::before,
.md_modal_close::after {
  content: "";
  display: block;
  position: absolute;
  inset: 0;
  width: calc(2 / 16 * 1rem);
  height: calc(56 / 16 * 1rem);
  margin: auto;
  transform: rotate(45deg);
  background-color: #fff;
}
.md_modal_close::after {
  transform: rotate(-45deg);
}
.md_modal_close:focus {
  outline: none;
  box-shadow: 0 0 0 0 transparent;
}
.md_modal_close span {
  display: none;
}
.is_tabbing .md_modal_close:focus {
  outline-offset: calc(-2 / 16 * 1rem);
  outline: calc(2 / 16 * 1rem) solid var(--focus_border);
  box-shadow: 0 0 0 calc(2 / 16 * 1rem) #fff;
}
.md_modal_close_2 {
  display: grid;
  place-content: center;
  width: 100%;
  max-width: calc(290 / 16 * 1rem);
  height: calc(50 / 16 * 1rem);
  margin: calc(65 / 16 * 1rem) auto 0;
  padding-left: 0.5em;
  background-color: var(--color_base);
  color: oklch(100% 0 0);
  letter-spacing: 0.5em;
}
.md_modal_contents {
  position: relative;
  width: 100%;
  max-width: calc(1100 / 16 * 1rem);
  height: 100%;
  min-width: calc(1100 / 16 * 1rem);
  background-color: #fff;
  overflow: auto;
}
.md_modal_layer,
.md_modal_contents {
  will-change: transform;
}
.is_modal_open .md_modal {
  z-index: 1000;
}
.md_modal_main {
  padding: calc(100 / 16 * 1rem);
}
.md_modal_title {
  margin-bottom: 2em;
  padding-left: 0.2em;
  font-size: calc(21 / 16 * 1rem);
  text-align: center;
  letter-spacing: 0.2em;
}

/* hoverデバイス ----------- */
@media (any-hover: hover) {
  .md_modal_close,
  .md_modal_close_2 {
    transition: background-color .15s;
  }
  .md_modal_close:hover,
  .md_modal_close_2:hover {
    background-color: var(--color_hover);
  }
}

/* SP調整 ------------------ */
@media screen and (max-width:768.999px) {
  .md_modal {
    padding: 4.688vw;
  }
  .md_modal_close {
    width: calc(45 / 16 * 1rem);
    height: calc(45 / 16 * 1rem);
  }
  .md_modal_close::before,
  .md_modal_close::after {
    height: calc(35 / 16 * 1rem);
  }
  .md_modal_close_2 {
    margin: calc(30 / 16 * 1rem) auto 0;
  }
  .md_modal_contents {
    min-width: calc(290 / 16 * 1rem);
  }
  .md_modal_main {
    padding: calc(60 / 16 * 1rem) 4.688vw;
  }
  .md_modal_title {
    margin-bottom: 1em;
  }
}

/* animation */
.md_modal_layer.is_show {
  animation: dialogFadeInUp 0.6s forwards;
}
.md_modal_layer.is_hide {
  animation: dialogFadeOutUp 0.6s forwards;
}

/* ===============================
modal scrollbar 調整
=============================== */
.md_modal_contents .simplebar-track.simplebar-vertical {
  top: calc(120 / 16 * 1rem);
  right: calc(30 / 16 * 1rem);
  height: calc(100% - calc(180 / 16 * 1rem));
}
.simplebar-track.simplebar-vertical {
  width: calc(10 / 16 * 1rem);
}
.simplebar-track.simplebar-vertical .simplebar-scrollbar:before {
  inset: 0;
}

/* SP調整 ------------------ */
@media screen and (max-width:768.999px) {
  .md_modal_contents .simplebar-track {
    display: none;
  }
}

/* ===============================
md_pagetop
=============================== */
.md_pagetop {
  width: fit-content;
  margin: 0 auto calc(50 / 16 * 1rem);
}
.md_pagetop_link {
  display: block;
  position: relative;
  width: calc(52 / 16 * 1rem);
  height: calc(52 / 16 * 1rem);
  padding-top: calc(18 / 16 * 1rem);
  padding-left: 0.05em;
  border-radius: calc(999 / 16 * 1rem);
  background-color: lch(100% 0 0);
  color: lch(0% 0 0);
  border: 1px solid oklch(23.929% 0.00003 271.152);
  text-align: center;
  font-size: calc(14 / 16 * 1rem);
  font-weight: 900;
  transition: background-color .25s, color .25s ease;
}
.md_pagetop_link::before {
  content: "";
  display: block;
  position: absolute;
  inset: calc(10 / 16 * 1rem) 0 0;
  width: calc(24 / 16 * 1rem);
  height: calc(8 / 16 * 1rem);
  margin: 0 auto;
  background: url(../../img/common/icon_pagetop.svg) no-repeat 0 0 / contain;
  transition: filter .25s;
}

/* hoverデバイス ----------- */
@media (any-hover: hover) {
  .md_pagetop_link:hover {
    opacity: 1;
    background-color: lch(0% 0 0);
    color: lch(100% 0 0);
  }
  .md_pagetop_link:hover::before {
    filter: invert(100%);
  }
}

/* SP調整 ------------------ */
@media screen and (max-width:768.999px) {
  .md_pagetop {
    margin-bottom: calc(45 / 16 * 1rem);
  }
}

/* ===============================
md_404
=============================== */
.md_404 {
  padding: calc(70 / 16 * 1rem) 0;
  text-align: center;
}
.md_404_title {
  margin-bottom: calc(50 / 16 * 1rem);
  padding: var(--leading_trim) 0 var(--leading_trim) 0.2em;
  font-size: calc(21 / 16 * 1rem);
  text-align: center;
  letter-spacing: 0.1em;
}
.md_404_inner {
  line-height: 2;
}
.md_404_link {
  margin-top: 4em;
  font-size: calc(18 / 16 * 1rem);
}

/* SP調整 ------------------ */
@media screen and (max-width:768.999px) {
  .md_404 {
    padding: calc(40 / 16 * 1rem) 6.25vw;
  }
  .md_404_title {
    margin-bottom: 2em;
    letter-spacing: 0;
  }
  .md_404_inner {
    text-align: left;
    font-size: calc(15 / 16 * 1rem);
  }
  .md_404_link {
    margin-top: 2em;
    font-size: calc(16 / 16 * 1rem);
  }
}

/* ===============================
Animation
=============================== */

/* fade */
.md_view.__fadeUp {
  opacity: 0;
  transform: translateY(calc(60 / 16 * 1rem));
}
.md_view.__fadeDown {
  opacity: 0;
  transform: translateY(calc(-60 / 16 * 1rem));
}
.md_view.__fadeLeft {
  opacity: 0;
  transform: translateX(calc(-60 / 16 * 1rem));
}
.md_view.__fadeRight {
  opacity: 0;
  transform: translateX(calc(60 / 16 * 1rem));
}
.md_view.is_view {
  opacity: 1;
  transition: opacity .8s ease, transform .8s ease;
  transform: translate(0, 0);
  will-change: opacity, transform;
}

/* SP調整 ------------------ */
@media screen and (max-width:768.999px) {
  .md_view.__fadeUp {
    transform: translateY(calc(30 / 16 * 1rem));
  }
  .md_view.__fadeDown {
    transform: translateY(calc(-30 / 16 * 1rem));
  }
  .md_view.__fadeLeft {
    transform: translateX(calc(-30 / 16 * 1rem));
  }
  .md_view.__fadeRight {
    transform: translateX(calc(30 / 16 * 1rem));
  }
  .md_view.is_view {
    transform: translate(0, 0);
  }
}

/* zoom */
.md_view.__zoomIn {
  opacity: 1;
  transform: scale(0.6);
}
.md_view.is_view.__zoomIn {
  animation-name: zoomInAnime;
  animation-duration: 0.5s;
  animation-fill-mode: forwards;
  transition: none;
}
@keyframes zoomInAnime {
  from {
    transform: scale(0.6);
  }
  to {
    transform: scale(1);
  }
}

/* ===============================
helper
=============================== */
.visually_hidden {
  display: block;
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

/* PC調整 ------------------ */
@media (min-width:769px), print {
  .sp_br,
  .sp_only {
    display: none !important;
  }
}

/* SP調整 ------------------ */
@media screen and (max-width:768.999px) {
  .pc_br,
  .pc_only {
    display: none !important;
  }
  .sp_noSpace {
    display: none;
  }
  .sp_brNoSpace {
    display: block;
    text-indent: -1em;
  }
  .sp_nowrap {
    white-space: nowrap;
  }
  .sp_ib {
    display: inline-block;
  }
}

/* ===============================
print
=============================== */
@page {
  size: A4 portrait;
  margin: 10mm;
}
@media print {
  body {
    position: relative;
    width: 1280px !important;
    page-break-after: always;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
    zoom: 0.617;
  }
  .ly_wrapper {
    display: block;
    min-width: initial;
    min-height: initial;
  }
  .header_inner {
    position: static;
  }
  .md_modal_contents {
    top: 0;
    min-height: 100%;
    z-index: 10;
  }
}