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

properties

============================================================= */
:root {
  /* color
  ============================== */
  --base-color: #333;
  --base-color-light: #666;
  --bg-color: #F5F5F5;
  --key-color: #c00;
  --key-color-light: #FFF0F1;
  --border-color: #ccc;
  --border-color-light: #ddd;
  --border-color-input: #bbb;
  /* layouts
  ============================== */
  --inner-width-px: 1200px;
  --inner-padding: min(40px, calc(4 * var(--vw)));
  --header-height: 0px;
  /* utility & fonts
  ============================== */
  --vw: 1vw;
  --vh: 1vh;
  --slope-1px: clamp(0px, -0.95663px + 0.2551vw, 1px);
  --leading-trim: calc((1em - 1lh) / 2);
  --base-font-family: "Noto Sans JP", sans-serif;
  --en-font-family: Lato, sans-serif;
  /* icon
  ============================== */
  --icon-arrow: url(../img/arrow-right.svg);
  --icon-back: url(../img/arrow-left.svg);
  --icon-down: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" fill="none"><path d="M9.07217 2.92391C9.30928 3.15579 9.30928 3.53165 9.07217 3.76352L5.42927 7.32609C5.19217 7.55797 4.80783 7.55797 4.57073 7.32609L0.927831 3.76352C0.690723 3.53165 0.690723 3.15579 0.927831 2.92391C1.16494 2.69203 1.54927 2.69203 1.78638 2.92391L5 6.06667L8.21362 2.92391C8.45073 2.69203 8.83506 2.69203 9.07217 2.92391Z" fill="%23333333"/></svg>');
  --icon-blank: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 10 10"><path fill="%23333" d="M0 8.5v-7C0 1.1022.1581.7208.4395.4395A1.5 1.5 0 0 1 1.5 0h3a.5.5 0 0 1 0 1h-3a.5.5 0 0 0-.5.5v7a.5.5 0 0 0 .5.5h7a.5.5 0 0 0 .5-.5v-3a.5.5 0 0 1 1 0v3c0 .3978-.1581.7792-.4395 1.0605A1.5 1.5 0 0 1 8.5 10h-7a1.5 1.5 0 0 1-1.0605-.4395A1.5 1.5 0 0 1 0 8.5"/><path fill="%23333" d="M9.1465.1465a.5.5 0 1 1 .707.707l-4.5 4.5a.5.5 0 1 1-.707-.707z"/><path fill="%23333" d="M9 3.5V1H6.5a.5.5 0 0 1 0-1h3a.5.5 0 0 1 .5.5v3a.5.5 0 0 1-1 0"/></svg>');
  --icon-checked: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 14 14"><path fill="%23fff" d="M11.3463 2.7246c.3669-.3661.9616-.3661 1.3285 0a.936.936 0 0 1 0 1.3257l-6.8895 6.8751c-.367.3661-.9616.3661-1.3285 0l-3.1316-3.125a.936.936 0 0 1 0-1.3257c.3669-.3662.9616-.3662 1.3284 0L5.121 8.9369z"/></svg>');
  --icon-search: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 18 18"><path fill="%23fff" d="M13.59 8.235c0-2.9575-2.3975-5.355-5.355-5.355S2.88 5.2775 2.88 8.235s2.3975 5.355 5.355 5.355 5.355-2.3975 5.355-5.355m1.53 0c0 1.6256-.5647 3.1186-1.5068 4.2964l2.8127 2.8127a.765.765 0 0 1 0 1.0818.765.765 0 0 1-1.0818 0l-2.8127-2.8127c-1.1778.9421-2.6708 1.5068-4.2964 1.5068-3.8025 0-6.885-3.0825-6.885-6.885S4.4325 1.35 8.235 1.35s6.885 3.0825 6.885 6.885"/></svg>');
  --icon-schedule: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 20 20"><path fill="%23c00" d="M6 5.091V1.8181C6 1.3663 6.3582 1 6.8 1s.8.3663.8.8182v3.2727c0 .4519-.3582.8182-.8.8182S6 5.5428 6 5.0909m6.4.0001V1.8181c0-.4519.3582-.8182.8-.8182s.8.3663.8.8182v3.2727c0 .4519-.3582.8182-.8.8182s-.8-.3663-.8-.8182"/><path fill="%23c00" d="M16.4 5.091c0-.452-.3582-.8183-.8-.8183H4.4c-.4418 0-.8.3663-.8.8182v11.4546c0 .4518.3582.8181.8.8181h11.2c.4418 0 .8-.3663.8-.8181zM18 16.5454C18 17.9011 16.9255 19 15.6 19H4.4C3.0745 19 2 17.9011 2 16.5455V5.0909c0-1.3556 1.0745-2.4545 2.4-2.4545h11.2c1.3255 0 2.4 1.0989 2.4 2.4545z"/><path fill="%23c00" d="M17.2 7.5455c.4418 0 .8.3663.8.8181 0 .452-.3582.8182-.8.8182H2.8c-.4418 0-.8-.3663-.8-.8182 0-.4518.3582-.8182.8-.8182z"/></svg>');
  --icon-map: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 20 20"><path fill="%23c00" d="M15.8333 8.3636c0-1.519-.6142-2.976-1.7081-4.0501-1.0257-1.007-2.3944-1.5998-3.8363-1.67L10 2.6365c-1.5471 0-3.0312.603-4.1252 1.677-1.094 1.0742-1.7081 2.5313-1.7081 4.0502 0 1.7668 1.014 3.6713 2.3315 5.371C7.7714 15.3769 9.233 16.7061 10 17.3596c.767-.6535 2.2286-1.9827 3.5018-3.625 1.3175-1.6997 2.3315-3.6042 2.3315-5.371m1.6667 0c0 2.3185-1.2939 4.5843-2.6717 6.3617-1.397 1.8022-2.9865 3.2363-3.7826 3.9112a1 1 0 0 1-.0439.0351 1.685 1.685 0 0 1-.8667.3228L10 19c-.3613 0-.713-.1152-1.0018-.3284a1 1 0 0 1-.044-.0351c-.796-.6749-2.3855-2.109-3.7825-3.9112C3.7938 12.9479 2.5 10.6821 2.5 8.3636c0-1.953.79-3.8261 2.1964-5.207C6.103 1.7755 8.011 1 10 1s3.897.7756 5.3035 2.1565C16.7101 4.5375 17.5 6.4107 17.5 8.3636"/><path fill="%23c00" d="M11.6667 8.3636c0-.9037-.7462-1.6363-1.6667-1.6363s-1.6667.7326-1.6667 1.6363S9.0795 10 10 10s1.6667-.7326 1.6667-1.6364m1.6666 0c0 1.8075-1.4924 3.2728-3.3333 3.2728s-3.3333-1.4653-3.3333-3.2728C6.6667 6.5562 8.159 5.091 10 5.091s3.3333 1.4653 3.3333 3.2727"/></svg>');
  --icon-job: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 20 20"><path fill="%23c00" d="M12.4677 17.175v-13.2a.826.826 0 0 0-.2409-.5833.822.822 0 0 0-.5005-.2377l-.0811-.004H8.3548a.82.82 0 0 0-.5815.2417.826.826 0 0 0-.241.5833v13.2c0 .4556-.3683.825-.8226.825s-.8226-.3694-.8226-.825v-13.2c0-.6564.2602-1.2858.723-1.7499A2.464 2.464 0 0 1 8.3548 1.5h3.2904a2.464 2.464 0 0 1 1.7447.7251 2.478 2.478 0 0 1 .723 1.7499v13.2c0 .4556-.3683.825-.8226.825s-.8226-.3694-.8226-.825"/><path fill="%23c00" d="M17.4032 7.275c0-.4556-.3683-.825-.8226-.825H3.4194c-.4543 0-.8226.3694-.8226.825v8.25c0 .4556.3683.825.8226.825h13.1612c.4543 0 .8226-.3694.8226-.825zm1.6452 8.25c0 1.3669-1.1049 2.475-2.4678 2.475H3.4194c-1.363 0-2.4678-1.1081-2.4678-2.475v-8.25c0-1.3669 1.1049-2.475 2.4678-2.475h13.1612c1.3629 0 2.4678 1.1081 2.4678 2.475z"/></svg>');
  --icon-person: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 18 18"><path fill="%23c00" d="M13.725 15.885v-1.53c0-.6087-.2491-1.1923-.6921-1.6227-.3876-.3765-.8959-.6089-1.4366-.6611l-.2338-.0112h-4.725c-.6266 0-1.2273.2419-1.6703.6723-.4431.4304-.6922 1.014-.6922 1.6227v1.53c0 .4225-.3526.765-.7875.765-.435 0-.7875-.3425-.7875-.765v-1.53c0-1.0145.4151-1.9871 1.1536-2.7044S5.5932 10.53 6.6376 10.53h4.7249c1.0443 0 2.0455.4033 2.7839 1.1206.7385.7173 1.1536 1.6899 1.1536 2.7044v1.53c0 .4225-.3526.765-.7875.765s-.7875-.3425-.7875-.765m-2.3625-10.71c0-1.2675-1.0577-2.295-2.3625-2.295S6.6375 3.9075 6.6375 5.175 7.6952 7.47 9 7.47s2.3625-1.0275 2.3625-2.295m1.575 0C12.9375 7.2875 11.1746 9 9 9S5.0625 7.2875 5.0625 5.175 6.8254 1.35 9 1.35s3.9375 1.7125 3.9375 3.825"/></svg>');
  --icon-tel: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 18 18"><path fill="%23c00" d="M6.2182 3.4363a.6954.6954 0 0 0-.6269-.692l-.0686-.0034H3.4363a.6954.6954 0 0 0-.6954.6954 11.823 11.823 0 0 0 3.463 8.3598 11.823 11.823 0 0 0 8.3597 3.463.695.695 0 0 0 .4917-.2038.695.695 0 0 0 .2038-.4917v-2.0864a.6957.6957 0 0 0-.6955-.6954h-2.0864a.7.7 0 0 0-.311.0733.7.7 0 0 0-.2452.2051l-.0034.0048-.2472.3219a1.39 1.39 0 0 1-.7688.5073 1.392 1.392 0 0 1-.9175-.0855l-.0163-.0075a10.432 10.432 0 0 1-4.763-4.7568l-.0013-.0027a1.391 1.391 0 0 1 .4061-1.7149l.0048-.0034.3253-.2445a.696.696 0 0 0 .2051-.2451.696.696 0 0 0 .0734-.3111zM7.609 5.5227c0 .3239-.0752.6435-.22.9332a2.09 2.09 0 0 1-.6147.7362l-.3213.2397a9.04 9.04 0 0 0 4.111 4.1123l.2438-.3185.0761-.0951a2.085 2.085 0 0 1 .6601-.5196c.2897-.1448.6093-.22.9331-.22h2.0864c.5534 0 1.0839.22 1.4751.6112s.6113.9218.6113 1.4751v2.0864c0 .5534-.22 1.0839-.6113 1.4751a2.086 2.086 0 0 1-1.4751.6113 13.213 13.213 0 0 1-9.3431-3.8705A13.213 13.213 0 0 1 1.35 3.4363c0-.5533.22-1.0838.6112-1.475A2.086 2.086 0 0 1 3.4363 1.35h2.0864c.5533 0 1.0839.22 1.4751.6112s.6113.9218.6113 1.4751z"/></svg>');
  --icon-mail: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 18 18"><path fill="%23c00" d="M15.5809 4.9093c.3239-.2075.754-.1113.9603.2147.2062.326.1106.759-.2133.9666l-6.2528 4.0086c-.0079.005-.0157.0103-.0238.015a2.077 2.077 0 0 1-2.1203-.015L1.672 6.0906c-.324-.2076-.4194-.6405-.2132-.9666s.6363-.4222.9603-.2147l6.2386 3.9963a.691.691 0 0 0 .69 0z"/><path fill="%23c00" d="M15.2589 4.8c0-.3866-.3113-.7-.6954-.7H3.4365c-.3841 0-.6955.3134-.6955.7v8.4c0 .3866.3114.7.6954.7h11.1271c.3841 0 .6954-.3134.6954-.7zm1.3909 8.4c0 1.1597-.934 2.1-2.0863 2.1H3.4365c-1.1523 0-2.0864-.9403-2.0864-2.1V4.8c0-1.1598.9341-2.1 2.0863-2.1h11.1271c1.1523 0 2.0863.9402 2.0863 2.1z"/></svg>');
  --icon-website: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 18 18"><path fill="%23c00" d="M14.4583 4.6324a.8.8 0 0 0-.2285-.5615.773.773 0 0 0-.5513-.2327H4.3208a.773.773 0 0 0-.5513.2327.802.802 0 0 0-.2285.5614v6.7702a2.42 2.42 0 0 1-.2475 1.0687l-.0007.0007-.8324 1.6891-.0008.0008h13.0808l-.0007-.0008-.8332-1.6891a2.42 2.42 0 0 1-.2482-1.0694zm1.5596 6.7709.0053.0923a.8.8 0 0 0 .0777.2636l.8316 1.6875c.1202.243.1779.5138.166.7856a1.61 1.61 0 0 1-.233.767 1.574 1.574 0 0 1-.5719.5529 1.54 1.54 0 0 1-.7593.197L2.465 15.75a1.54 1.54 0 0 1-.7585-.1978 1.57 1.57 0 0 1-.572-.5529 1.615 1.615 0 0 1-.0678-1.5526l.8325-1.6875.0357-.0845a.81.81 0 0 0 .0465-.2714v-6.771c0-.6317.2467-1.2376.6854-1.6843.4387-.4468 1.0337-.698 1.654-.698h9.3577c.6204 0 1.2161.2512 1.6548.698.4385.4467.6846 1.0527.6846 1.6843z"/><path fill="%23c00" d="M15.2807 10.975c.4306.0001.7798.3556.7798.7941s-.3492.7939-.7798.7941H2.7193c-.4307 0-.7798-.3555-.7798-.7941s.3491-.7941.7798-.7941z"/></svg>');
}

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

base

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

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

html {
  font-size: 62.5%;
  height: 100%;
  margin: 0;
  padding: 0;
}

body {
  font-family: var(--body-font-family);
  font-size: calc(13px + var(--slope-1px) * 2);
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: .03em;
  width: 100%;
  height: 100%;
  color: var(--base-color);
  background: var(--bg-color);
  margin: 0;
  padding: 0;
  -webkit-text-size-adjust: 100%;
}

img {
  display: block;
  max-width: 100%;
  height: auto;
}

legend {
  padding: 0;
}

svg {
  width: 100%;
  display: block;
  overflow: unset;
}

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

a {
  cursor: pointer;
  color: inherit;
  text-decoration: underline;
}

a:hover {
  text-decoration: none;
}

@media screen and (min-width: 769px) {
  a[href^="tel:"] {
    text-decoration: none !important;
    pointer-events: none;
    cursor: text;
  }
}

:where(button) {
  cursor: pointer;
  background: none;
  border: none;
  padding: 0;
  overflow: hidden;
}

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

wrapper

* ============================================================= */
/* l-wrapper
============================== */
.l-wrapper {
  background: var(--base-bg-color);
  color: var(--base-color);
  letter-spacing: .03em;
  line-height: 1.8;
  -webkit-text-size-adjust: 100%;
  font-family: var(--base-font-family);
  display: flex;
  flex-direction: column;
  font-size: calc(14px + var(--slope-1px) * 2);
  width: 100%;
  min-height: 100%;
  position: relative;
  margin: 0 auto;
  opacity: 0;
  transition: opacity .4s ease-out;
}

body.is-loaded .l-wrapper {
  opacity: 1;
}

@media screen and (max-width: 768px) {
  .l-wrapper {
    min-width: 0;
  }
}

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

header

* ============================================================= */
/* l-header
============================== */
.l-header {
  background: #fff;
  padding-block: calc(24px + var(--slope-1px) * 8);
  border-bottom: 1px solid var(--border-color-light);
  display: flex;
  align-items: center;
  justify-content: center;
}

/* l-header-title
============================== */
.l-header-title {
  font-size: calc(16px + var(--slope-1px) * 8);
  font-weight: 700;
  text-align: center;
}

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

main

* ============================================================= */
/* main
=============================== */
.l-main {
  width: 100%;
  max-height: 100%;
  position: relative;
  container-type: inline-size;
  padding: 0;
  flex-grow: 1;
  padding-inline: var(--inner-padding);
}

.l-main__head {
  width: calc(100% + var(--inner-padding) * 2);
  margin-inline: calc(var(--inner-padding) * -1);
  display: flex;
  flex-direction: column;
  --contents-padding-inline: var(--inner-padding);
}

.l-main__title {
  padding: 24px var(--inner-padding);
  background: #fff;
  display: grid;
  grid-template-columns: 100%;
  gap: calc(10px + var(--slope-1px) * 2);
}

.l-main__title > * {
  width: min(1200px, 100%);
  margin-inline: auto;
}

.l-main__breadcrumbs {
  order: -1;
  padding: 10px var(--inner-padding);
}

.l-main__body {
  width: var(--inner-width-px);
  max-width: 100%;
  margin-inline: auto;
  padding-top: 40px;
  container-type: inline-size;
  container-name: MAIN-BODY;
}

@media screen and (max-width: 1040px) {
  .l-main__body {
    padding-top: 16px;
  }
}

.l-main:has(.l-main__head) .l-main__body {
  padding-top: 32px;
}

@media screen and (max-width: 1040px) {
  .l-main:has(.l-main__head) .l-main__body {
    padding-top: 13px;
  }
}

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

footer

* ============================================================= */
/* l-footer
============================== */
.l-footer {
  border-top: 1px solid var(--border-color-light);
}

/* l-footer-nav
============================== */
.l-footer-nav {
  width: calc(1200px + var(--inner-padding) * 2);
  max-width: 100%;
  margin-inline: auto;
  padding: 18px var(--inner-padding) 24px;
}

.l-footer-nav__item {
  border-bottom: 1px solid var(--border-color-light);
}

.l-footer-nav__item a {
  padding: 16px 8px 16px 0;
  margin-block: var(--leading-trim);
  text-decoration: none;
  font-size: calc(12px + var(--slope-1px) * 1);
  font-weight: 400;
  line-height: 1;
  display: grid;
  grid-template-columns: 1fr auto;
  transition: opacity .2s ease-out;
}

@media (any-hover: hover) {
  .l-footer-nav__item a:hover {
    opacity: .7;
  }
}

.l-footer-nav__item a:after {
  content: "";
  display: block;
  flex-shrink: 0;
  width: calc(9px + var(--slope-1px) * 1);
  aspect-ratio: 1/1;
  background: currentColor;
  mask: var(--icon-arrow) 50% 50%/contain no-repeat;
}

.l-footer-nav__item a[target="_blank"]:after {
  mask-image: var(--icon-blank);
}

/* l-footer-copyright
============================== */
.l-footer-copyright {
  font-size: calc(12px + var(--slope-1px) * 1);
  font-weight: 400;
  background: var(--base-color-light);
  color: #fff;
  text-align: center;
  line-height: 1;
  padding-block: 24px;
}

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

navigation

* ============================================================= */
/* c-button
============================== */
.c-button {
  font-size: calc(13px + var(--slope-1px) * 3);
  font-weight: 700;
  border-radius: 10px;
  border: 1px solid var(--border-color);
  height: calc(44px + var(--slope-1px) * 16);
  text-decoration: none;
  background: #fff;
  color: var(--base-color);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: filter .2s ease-out;
}

@media (any-hover: hover) {
  .c-button:hover {
    filter: brightness(0.94);
  }
}

.c-button._primary {
  border: 0;
  color: #fff;
  background: var(--key-color);
}

@media (any-hover: hover) {
  .c-button._primary:hover {
    filter: brightness(1.1);
  }
}

.c-button._mynavi {
  border: 0;
  color: #fff;
  background: #00AFEC;
}

@media (any-hover: hover) {
  .c-button._mynavi:hover {
    filter: brightness(1.1);
  }
}

.c-button._mynavi img {
  width: max(calc(64px + var(--slope-1px) * 21), 24%);
}

/* c-breadcrumbs
============================== */
.c-breadcrumbs {
  font-size: calc(10px + var(--slope-1px) * 2);
  font-weight: 500;
  width: min(1200px, 100%);
  margin-inline: auto;
}

.c-breadcrumbs__item {
  display: inline;
  word-break: break-all;
}

.c-breadcrumbs__item:not(:last-child) {
  padding-right: 5px;
}

.c-breadcrumbs__item:not(:first-child):before {
  content: "";
  display: inline-block;
  margin-right: 5px;
  width: calc(8px + var(--slope-1px) * 2);
  aspect-ratio: 1/1;
  background: currentColor;
  mask: var(--icon-arrow) 50% 50%/contain no-repeat;
}

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

title

* ============================================================= */
/* c-page-title
============================== */
.c-page-title {
  font-size: calc(18px + var(--slope-1px) * 4);
  font-weight: 700;
  margin-block: var(--leading-trim);
}

/* c-page-subtitle
============================== */
.c-page-subtitle {
  font-size: calc(11px + var(--slope-1px) * 2);
  font-weight: 500;
  color: var(--base-color-light);
  margin-block: var(--leading-trim);
}

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

index

* ============================================================= */
/* p-index
============================== */
.p-index {
  display: grid;
  grid-template-columns: 100%;
  grid-template-areas: "nav" "head" "body" "foot";
  gap: 24px min(40px, 3.333%);
  padding-bottom: calc(32px + var(--slope-1px) * 32);
}

@container MAIN-BODY (width > 960px) {
  .p-index {
    grid-template-columns: 360px 1fr;
    grid-template-areas: "head head" "nav body" "foot foot";
  }
}

.p-index__head {
  grid-area: head;
}

.p-index__body {
  grid-area: body;
  display: grid;
  grid-template-columns: 100%;
  gap: calc(16px + var(--slope-1px) * 8);
}

.p-index__foot {
  grid-area: foot;
}

.p-index__nav {
  grid-area: nav;
}

@container MAIN-BODY (width < 768px) {
  .p-index__nav {
    padding-bottom: 16px;
  }
}

/* p-index-navigation
============================== */
.p-index-navigation {
  display: flex;
  justify-content: flex-end;
  gap: 20px 32px;
}

@container MAIN-BODY (width < 768px) {
  .p-index-navigation {
    flex-direction: column;
    align-items: center;
  }
}

/* p-index-current
============================== */
.p-index-current {
  display: flex;
  align-items: baseline;
  line-height: 1;
}

.p-index-current__total {
  font-size: 15px;
}

.p-index-current__total em {
  font-size: 26px;
  color: var(--key-color);
  padding-inline: 2px;
}

.p-index-current__range {
  font-size: 13px;
}

/* p-index-pager
============================== */
.p-index-pager {
  display: flex;
  align-items: center;
  gap: 20px;
}

.p-index-pager__list {
  display: flex;
  align-items: center;
  gap: 10px;
}

@container MAIN-BODY (width < 768px) {
  .p-index-pager__list {
    gap: 8px;
  }
}

.p-index-pager__list > li a {
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  width: 32px;
  aspect-ratio: 1/1;
  text-decoration: none;
  transition: color .2s ease-out;
}

@media (any-hover: hover) {
  .p-index-pager__list > li a:hover {
    opacity: .6;
  }
}

@container MAIN-BODY (width < 768px) {
  .p-index-pager__list > li a {
    width: 36px;
  }
}

.p-index-pager__list > li a.is-current {
  color: #fff;
  background: var(--base-color);
  pointer-events: none;
}

.p-index-pager__arrow a {
  display: block;
  transition: color .2s ease-out;
}

@media (any-hover: hover) {
  .p-index-pager__arrow a:hover {
    opacity: .6;
  }
}

/* p-index-filter
============================== */
.p-index-filter {
  position: sticky;
  top: 16px;
  background: #fff;
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.08);
  display: grid;
  grid-template-rows: auto 1fr auto;
}

@container MAIN-BODY (width > 960px) {
  .p-index-filter {
    max-height: calc(var(--vh) * 100 - 32px);
  }
}

.p-index-filter__head {
  background: var(--base-color);
  color: #fff;
  font-size: calc(16px + var(--slope-1px) * 2);
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-block: 20px;
  line-height: 1;
  position: relative;
  z-index: 1;
}

.p-index-filter__head:after {
  content: "";
  display: block;
  width: calc(100% - 48px);
  height: 24px;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  margin-inline: auto;
  background: linear-gradient(to bottom, #fff 0%, rgba(255, 255, 255, 0) 100%);
}

.p-index-filter__body {
  padding: 24px 32px;
  display: grid;
  grid-template-columns: 100%;
  gap: 32px;
  overflow-y: auto;
}

.p-index-filter__foot {
  padding: 8px 24px 32px;
  display: grid;
  grid-template-columns: 100%;
  gap: 20px;
  position: relative;
  z-index: 1;
}

.p-index-filter__foot:before {
  content: "";
  display: block;
  width: calc(100% - 48px);
  height: 24px;
  position: absolute;
  bottom: 100%;
  left: 0;
  right: 0;
  margin-inline: auto;
  background: linear-gradient(to top, #fff 0%, rgba(255, 255, 255, 0) 100%);
}

.p-index-filter__submit {
  border-radius: 10px;
  background: var(--key-color);
  color: #fff;
  text-decoration: none;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  line-height: 1;
  font-size: calc(16px + var(--slope-1px) * 2);
  font-weight: 700;
  gap: 5px;
  transition: filter .2s ease-out;
}

.p-index-filter__submit:hover {
  filter: brightness(1.1);
}

.p-index-filter__submit:before {
  content: "";
  display: block;
  width: calc(18px + var(--slope-1px) * 2);
  aspect-ratio: 1/1;
  flex-shrink: 0;
  background: currentColor;
  mask: var(--icon-search) 50% 50%/contain no-repeat;
}

.p-index-filter__reset {
  width: fit-content;
  margin-inline: auto;
  font-size: calc(13px + var(--slope-1px) * 1);
  text-decoration: underline;
  margin-block: var(--leading-trim);
}

.p-index-filter__reset:hover {
  text-decoration: none;
}

/* p-index-filter-block
============================== */
.p-index-filter-block {
  display: grid;
  grid-template-columns: 100%;
  gap: 16px;
  min-width: 0;
  font-size: calc(14px + var(--slope-1px) * 1);
}

.p-index-filter-block__head {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  line-height: 1;
  margin-bottom: 16px;
}

.p-index-filter-block__head._schedule {
  --icon: var(--icon-schedule);
}

.p-index-filter-block__head._area {
  --icon: var(--icon-map);
}

.p-index-filter-block__head._job {
  --icon: var(--icon-job);
}

.p-index-filter-block__head:before {
  content: "";
  display: block;
  width: calc(18px + var(--slope-1px) * 2);
  aspect-ratio: 1/1;
  flex-shrink: 0;
  background: var(--key-color);
  mask: var(--icon) 50% 50%/contain no-repeat;
}

/* p-index-filter-radio
============================== */
.p-index-filter-radio {
  display: flex;
  width: fit-content;
  gap: 8px;
  align-items: center;
  max-width: 100%;
  line-height: 1;
}

.p-index-filter-radio:not(:first-child) {
  margin-top: 14px;
}

.p-index-filter-radio input {
  accent-color: var(--key-color);
  width: calc(18px + var(--slope-1px) * 2);
  aspect-ratio: 1/1;
  appearance: none;
  border: 1px solid var(--border-color-input);
  border-radius: 50%;
  transition: border .2s ease-out;
}

.p-index-filter-radio input:checked {
  border-color: var(--key-color);
  background-color: #fff;
  background-image: radial-gradient(circle, #c00 0%, #c00 calc(5px + var(--slope-1px) * 1), transparent calc(5.5px + var(--slope-1px) * 1));
}

@media (any-hover: hover) {
  .p-index-filter-radio:hover input {
    border-color: var(--key-color);
  }
}

/* p-index-filter-checkbox
============================== */
.p-index-filter-checkbox {
  display: flex;
  width: fit-content;
  gap: 8px;
  align-items: center;
  max-width: 100%;
  line-height: 1;
}

.p-index-filter-checkbox input {
  accent-color: var(--key-color);
  width: calc(18px + var(--slope-1px) * 2);
  aspect-ratio: 1/1;
  border-radius: 4px;
  overflow: hidden;
  border: 1px solid var(--border-color-input);
  appearance: none;
  border-radius: 4px;
  background: #fff;
  transition: border .2s ease-out;
}

.p-index-filter-checkbox input:checked {
  border: 0;
  background: var(--icon-checked) 50% 50%/14px 14px no-repeat var(--key-color);
}

@media (any-hover: hover) {
  .p-index-filter-checkbox:hover input {
    border-color: var(--key-color);
  }
}

/* p-index-filter-area
============================== */
.p-index-filter-area {
  display: block;
  min-width: 0;
  width: 100%;
  border-bottom: 1px solid var(--border-color-light);
}

.p-index-filter-area__head {
  display: block;
  width: 100%;
}

.p-index-filter-area:first-child .p-index-filter-area__head {
  border-top: 1px solid var(--border-color-light);
}

.p-index-filter-area__toggle {
  width: 100%;
  height: 51px;
  display: flex;
  align-items: center;
  line-height: 1;
  padding: 20px 4px;
  gap: 8px;
  font-size: calc(14px + var(--slope-1px) * 1);
}

@media (any-hover: hover) {
  .p-index-filter-area__toggle:hover {
    opacity: .6;
  }
}

.p-index-filter-area__toggle:after {
  content: "";
  width: 10px;
  height: 10px;
  background: currentColor;
  mask: var(--icon-down) 50% 50%/contain no-repeat;
  margin-left: auto;
  transition: rotate .2s ease-out;
}

.p-index-filter-area__toggle.is-open:after {
  rotate: 180deg;
}

.p-index-filter-area__selected {
  border-radius: 3px;
  padding: 6px;
  color: #fff;
  background: var(--base-color);
  line-height: 1;
  font-size: 12px;
  font-weight: 700;
  display: none;
}

.p-index-filter-area:has(input:checked) .p-index-filter-area__selected {
  display: block;
}

.p-index-filter-area__body {
  display: none;
  padding: 6px 4px 20px;
}

.p-index-filter-area__control {
  display: flex;
  align-items: center;
  margin-bottom: 16px;
  font-size: calc(13px + var(--slope-1px) * 1);
  gap: 12px;
}

.p-index-filter-area__control:before {
  content: "";
  width: 1px;
  height: 18px;
  background: var(--border-color-light);
  order: 0;
}

.p-index-filter-area__control > button {
  text-decoration: underline;
}

.p-index-filter-area__control > button:hover {
  text-decoration: none;
}

.p-index-filter-area__control > button:first-child {
  order: -1;
}

.p-index-filter-area:not(:has(label:nth-child(2))) .p-index-filter-area__control {
  display: none;
}

.p-index-filter-area__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
}

/* p-index-card
============================== */
.p-index-card {
  padding: calc(24px + var(--slope-1px) * 8) calc(20px + var(--slope-1px) * 12) calc(20px + var(--slope-1px) * 12);
  background: #fff;
  border: 1px solid var(--border-color-light);
  border-radius: 16px;
  font-size: calc(13px + var(--slope-1px) * 2);
}

.p-index-card__head {
  padding-bottom: 16px;
  border-bottom: 1px solid var(--border-color-light);
  margin-bottom: calc(16px + var(--slope-1px) * 8);
  display: grid;
  grid-template-columns: 100%;
  gap: 12px;
}

.p-index-card__title {
  font-size: calc(20px + var(--slope-1px) * 4);
  font-weight: 700;
  margin-block: var(--leading-trim);
}

.p-index-card__subtitle {
  font-size: calc(11px + var(--slope-1px) * 2);
  font-weight: 500;
  color: var(--base-color-light);
  margin-block: var(--leading-trim);
}

.p-index-card__profile {
  display: grid;
  grid-template-columns: 100%;
  gap: 20px;
}

.p-index-card__item {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 3px 12px;
}

@media screen and (max-width: 768px) {
  .p-index-card__item {
    gap: 6px 12px;
  }
}

.p-index-card__item[data-label="year"] {
  --icon: var(--icon-schedule);
}

.p-index-card__item[data-label="address"] {
  --icon: var(--icon-map);
}

.p-index-card__item[data-label="job"] {
  --icon: var(--icon-job);
}

.p-index-card__item[data-label="recruiter"] {
  --icon: var(--icon-person);
}

.p-index-card__item[data-label="tel"] {
  --icon: var(--icon-tel);
}

.p-index-card__item[data-label="mail"] {
  --icon: var(--icon-mail);
}

.p-index-card__item[data-label="website"] {
  --icon: var(--icon-website);
}

.p-index-card__item:before {
  content: "";
  grid-row: span 2;
  display: block;
  width: calc(30px + var(--slope-1px) * 6);
  height: calc(30px + var(--slope-1px) * 6);
  align-self: center;
  border-radius: 50%;
  background: var(--icon) 50% 50%/calc(16px + var(--slope-1px) * 2) no-repeat var(--key-color-light);
}

.p-index-card__label {
  font-size: calc(13px + var(--slope-1px) * 1);
  font-weight: 700;
  color: var(--base-color-light);
  margin-block: var(--leading-trim);
}

.p-index-card__data {
  margin-block: var(--leading-trim);
  word-break: break-all;
  line-height: 1.5;
}

.p-index-card__foot {
  margin-top: 24px;
  padding-top: calc(16px + var(--slope-1px) * 8);
  border-top: 1px solid var(--border-color-light);
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: calc(9px + var(--slope-1px) * 2);
}

.p-index-card__foot:has(.c-button:nth-child(3)) {
  grid-template-columns: repeat(3, 1fr);
}

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

detail

* ============================================================= */
/* p-detail
============================== */
.p-detail {
  padding-bottom: calc(32px + var(--slope-1px) * -4);
}

.p-detail__head {
  display: flex;
  justify-content: space-between;
  width: 100%;
  align-items: center;
  margin-bottom: calc(24px + var(--slope-1px) * 8);
  gap: 24px;
}

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

.p-detail__body {
  display: grid;
  grid-template-columns: 100%;
  gap: calc(20px + var(--slope-1px) * 12);
}

.p-detail__foot {
  display: flex;
  justify-content: space-between;
  width: 100%;
  align-items: center;
  margin-top: calc(16px + var(--slope-1px) * 8);
}

/* p-detail-back
============================== */
.p-detail-back {
  font-size: calc(12px + var(--slope-1px) * 1);
  border-radius: 10px;
  border: 1px solid var(--border-color);
  padding: 6px 8px;
  gap: 5px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  width: fit-content;
  max-width: 100%;
  background: transparent;
  text-decoration: none;
  transition: background .2s ease-out;
}

@media (any-hover: hover) {
  .p-detail-back:hover {
    background: #fff;
  }
}

.p-detail-back:before {
  content: "";
  width: calc(8px + var(--slope-1px) * 1);
  aspect-ratio: 1/1;
  display: block;
  background: currentColor;
  flex-shrink: 0;
  mask: var(--icon-back) 50% 50%/contain no-repeat;
}

/* p-detail-anchor-block
============================== */
.p-detail-anchor-block {
  gap: calc(11px + var(--slope-1px) * 5);
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  width: 344px;
  max-width: 100%;
}

@media screen and (max-width: 768px) {
  .p-detail-anchor-block {
    width: 100%;
  }
}

/* p-detail-anchor
============================== */
.p-detail-anchor {
  font-size: calc(13px + var(--slope-1px) * 2);
  font-weight: 700;
  background: #fff;
  color: var(--base-color);
  border-radius: 10px;
  border: 1px solid var(--border-color);
  line-height: 1;
  padding: 16px 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  position: relative;
  transition: filter .2s ease-out;
}

@media (any-hover: hover) {
  .p-detail-anchor:hover {
    filter: brightness(0.96);
  }
}

.p-detail-anchor:after {
  content: "";
  display: block;
  width: calc(8px + var(--slope-1px) * 2);
  aspect-ratio: 1/1;
  background: currentColor;
  mask: var(--icon-down) 50% 50%/contain no-repeat;
  position: absolute;
  top: 0;
  bottom: 0;
  right: calc(8px + var(--slope-1px) * 8);
  margin-block: auto;
}

/* p-detail-contents
============================== */
.p-detail-contents {
  padding: 0 calc(16px + var(--slope-1px) * 16) calc(24px + var(--slope-1px) * 8);
  display: grid;
  grid-template-columns: 100%;
  gap: calc(24px + var(--slope-1px) * -2);
  background: #fff;
  border-radius: 16px;
}

.p-detail-contents__head {
  font-size: calc(16px + var(--slope-1px) * 4);
  font-weight: 700;
  line-height: 1;
  display: flex;
  flex-direction: column;
  width: fit-content;
  gap: 18px;
}

.p-detail-contents__head:before {
  content: "";
  display: block;
  width: 100%;
  height: 2px;
  background: var(--key-color);
}

/* p-detail-table
============================== */
.p-detail-table {
  border-top: 1px solid var(--border-color-light);
  width: 100%;
  border-collapse: collapse;
  font-size: calc(13px + var(--slope-1px) * 2);
}

.p-detail-table :is(th, td) {
  border-bottom: 1px solid var(--border-color-light);
  padding-block: calc(16px + var(--slope-1px) * 4 + var(--leading-trim));
  font-weight: 500;
  text-align: left;
  word-break: break-all;
}

.p-detail-table th {
  padding-inline: 12px;
  background: var(--bg-color);
  width: calc(96px + var(--slope-1px) * 64);
  border-right: 1px solid var(--border-color-light);
}

.p-detail-table td {
  padding-inline: 16px;
}

/* p-detail-contact
============================== */
.p-detail-contact {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.p-detail-contact .c-button {
  width: min(calc(285px + var(--slope-1px) * 115), 100%);
}

/* p-detail-sticky
============================== */
.p-detail-sticky {
  position: sticky;
  bottom: 0;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(51, 51, 51, 0.9);
  padding: calc(12px + var(--slope-1px) * 6) var(--inner-padding);
}

.p-detail-sticky .c-button {
  width: min(calc(285px + var(--slope-1px) * 115), 100%);
}

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

404

* ============================================================= */
/* p-404
============================== */
.p-404 {
  font-size: calc(15px + var(--slope-1px) * 1);
  padding-bottom: calc(32px + var(--slope-1px) * 8);
}

@media screen and (max-width: 1040px) {
  .p-404 {
    padding-top: calc(8px + var(--slope-1px) * 8);
  }
}

/* p-404-nav
============================== */
.p-404-nav {
  display: grid;
  text-align: center;
  justify-content: center;
  gap: 1em;
}

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

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: "";
  visibility: hidden;
  display: block;
  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;
}
