@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(40% 0.05 70);
  --color_accent: oklch(57% 0.072 62);
  --font_feature_settings: "palt";
  --font_base: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN",
    "Hiragino Sans", Meiryo, sans-serif;
  --letter_spacing: 0.05em;
  --font_weight_base: 400;
  --font_weight_mid: 500;
  --font_weight_bold: 700;
  --focus_border: oklch(65% 0.07 70);
  --input_bg: #fff;
  --scrollbar-width: 0px;
  --header_height: calc(140 / 16 * 1rem);
  --pagetop_bottom: calc(50 / 16 * 1rem);
  --vw1: calc(1vw - (var(--scrollbar-width) / 100));
}
@supports (width: 1dvw) {
  :root {
    --vw1: 1dvw;
  }
}
@media screen and (max-width: 768.999px) {
  :root {
    --header_height: calc(50 / 16 * 1rem);
    --pagetop_bottom: calc(20 / 16 * 1rem);
  }
}


/* ================================
Font Settings
================================ */

/* Noto Sans JP ------------ */
.notosans {
  font-family: "Noto Sans JP", sans-serif;
}


/* ================================
bese
================================ */
:focus-visible {
  outline: calc(2 / 16 * 1rem) solid var(--focus_border);
}
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);
  }
  img {
    width: 100%;
    height: auto;
  }
}


/* ================================
Safari Dialog focus対策
================================ */
dialog :focus {
  outline: none;
}
html.user-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: grid;
  grid-template-rows: auto 1fr auto;
  min-width: calc(1200 / 16 * 1rem);
  min-height: 100vh;
  min-height: 100dvh;
}

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


/* ================================
header
================================ */
.ly_header {
  position: relative;
  min-height: var(--header_height);
}
.header_inner {
  display: flex;
  align-items: center;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  background-color: rgb(220 215 210);
  z-index: 1000;
}
.header_logo {
  width: fit-content;
}
.header_logo a {
    display: block;
  }


/* ===============================
footer
=============================== */
.ly_footer {
  position: relative;
  background-color: rgb(220 215 210);
  padding: calc(15 / 16 * 1rem);
  text-align: center;
}
[data-pagetop_point] {
  position: absolute;
  left: 0;
  bottom: calc(400 / 16 * 1rem);
  height: 0;
  width: 100%;
}
[data-pagetop] {
  display: block;
  visibility: hidden;
  position: fixed;
  right: calc(50 / 16 * 1rem);
  bottom: var(--pagetop_bottom);
  transform: translateY(calc(10 / 16 * 1rem));
  padding: 0.5em 1em;
  background: #000;
  color: #fff;
  border-radius: calc(4 / 16 * 1rem);
  text-decoration: none;
  font-size: calc(14 / 16 * 1rem);
  z-index: 99;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s, transform 0.3s;
}
[data-pagetop].is_visible {
  opacity: 1;
  pointer-events: auto;
  visibility: visible;
  transform: translateY(0);
}
[data-pagetop].is_stay {
  display: block;
  position: absolute;
  bottom: 0;
}
@media screen and (max-width: 768.999px) {
  [data-pagetop_point] {
    bottom: calc(100 / 16 * 1rem);
  }
  [data-pagetop] {
    right: calc(20 / 16 * 1rem);
    bottom: var(--pagetop_bottom);
  }
}


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


/* ================================
dialog / modal
================================ */
:where([data-modal]) {
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	background: transparent;
	border: none;
	overflow: hidden;
}
:where([data-modal])::backdrop {
	display: none;
}
:where([data-modal][open]) {
	display: grid;
	place-content: center;
}
:where([data-modal-layer]) {
	position: fixed;
	inset: 0;
	background-color: rgb(0 0 0 / 40%);
	will-change: transform;
	transition: opacity 0.3s;
	opacity: 0;
}
:where([data-modal-contents]) {
	position: relative;
	background-color: #fff;
	will-change: transform;
}
:where([data-modal-close]) {
	position: fixed;
	top: 0;
	right: 0;
	width: calc(50 / 16 * 1rem);
	height: calc(50 / 16 * 1rem);
	cursor: pointer;
	transition: background-color 0.2s, color 0.2s;
}
:where([data-modal-close])::before,
:where([data-modal-close])::after {
	content: "";
	display: block;
	position: absolute;
	inset: 0;
	width: calc(2 / 16 * 1rem);
	height: calc(23 / 16 * 1rem);
	margin: auto;
	background-color: #000;
}
:where([data-modal-close])::before {
	transform: rotate(45deg);
}
:where([data-modal-close])::after {
	transform: rotate(-45deg);
}
:where([data-modal-close] span) {
	display: none;
}
:where(body.is_modal_open .header_inner) {
	width: calc(100vw - var(--scrollbar-width));
}

/* SP調整 ------------------ */
@media screen and (max-width: 768.999px) {
	:where([data-modal-close]) {
		width: calc(56 / 16 * 1rem);
		height: calc(56 / 16 * 1rem);
	}
}

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


/* ================================
Tab
================================ */
:where([data-tablist]) {
	display: flex;
}
:where([data-tabpanelWrapper]) {
	position: relative;
	transition: height 0.3s ease;
}
:where([data-tabpanel]) {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	opacity: 0;
	transition: opacity 0.3s ease;
	pointer-events: none;
}
:where([data-tabpanel].is_active) {
	opacity: 1;
	pointer-events: auto;
}


/* ================================
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
================================ */

/* 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;
  }
}


/* ================================
print
================================ */
@page {
  size: A4 portrait;
  margin: 10mm;
}
@media print {
  body {
    position: relative;
    width: calc(1280 / 16 * 1rem) !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;
  }
}