@charset "UTF-8";
@layer base {
  /* reset */
  * {
    box-sizing: border-box;
    margin: 0;
  }
  *::before {
    display: inline-block;
  }
  *::after {
    display: inline-block;
  }
  script, style {
    display: none !important;
  }
  html {
    font-size: var(--initial-fontSize);
    scroll-behavior: smooth;
  }
  body {
    color: var(--initial-color);
    background-color: var(--initial-bgColor);
    font-family: var(--font-sansSerif);
    font-weight: normal;
  }
  :where(h1, h2, h3, h4, h5, p, li, dt, dd, th, td, legend) {
    word-break: break-all;
    overflow-wrap: break-word;
  }
  :where(video, iframe, img) {
    max-width: 100%;
  }
  :where(ul, ol, menu) {
    padding: 0;
    list-style-type: none;
  }
  address {
    font-style: normal;
  }
  code {
    font-family: var(--font-monospace);
  }
  fieldset {
    border: 0;
    padding: 0;
  }
  legend {
    width: 100%;
  }
  :where(i, b, em, strong) {
    font-style: normal;
  }
  a {
    display: inline-block;
    color: inherit;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
    text-decoration: none;
    transition: 0.2s;
  }
  a[href^=tel] {
    cursor: initial;
    pointer-events: none;
  }
  a[href] {
    cursor: pointer;
  }
  a[href]:hover {
    opacity: 0.8;
  }
  time {
    word-break: keep-all;
  }
  img {
    display: inline-block;
    height: auto;
    border: none;
    vertical-align: middle;
    object-fit: cover;
    image-rendering: -webkit-optimize-contrast;
  }
  :where(form, input, textarea, select, button) {
    font-family: var(--font-sansSerif);
    font-size: var(--initial-formFontSize);
    color: var(--initial-color);
  }
  :where(input, textarea, select, button) {
    border: 1px solid var(--color-border-gray);
    border-radius: 2px;
    vertical-align: baseline;
    padding: 0.5em;
  }
  :where(input, textarea, select, button, [type=file]) {
    max-width: 100%;
  }
  :where([type=submit], [type=button], [type=reset], button, [type=text], [type=password], [type=email], [type=number], [type=search], [type=tel], [type=url]) {
    -webkit-appearance: none;
    appearance: none;
    -moz-appearance: none;
  }
  :where(select, [type=submit], [type=button], [type=reset], button, [type=text], [type=password], [type=email], [type=number], [type=search], [type=tel], [type=url]) {
    min-height: var(--input-height);
  }
  :where(label, [type=submit], [type=button], [type=reset], button) {
    cursor: pointer;
  }
  label {
    display: inline-block;
  }
  input:-webkit-autofill {
    -webkit-box-shadow: 0 0 0 100em var(--color-inputBg) inset;
  }
  textarea {
    width: 100%;
    min-height: 5em;
  }
  select {
    background-color: #FFF;
  }
  /* lib/font */
  @font-face {
    font-family: "FontAwesome solid";
    font-style: normal;
    font-weight: 900;
    src: url("/assets/fontAwesome/fa-solid-900-0f4c21c1.woff2") format("woff2");
  }
  @font-face {
    font-family: "FontAwesome regular";
    font-style: normal;
    font-weight: 400;
    src: url("/assets/fontAwesome/fa-regular-400-b76fd21f.woff2") format("woff2");
  }
  @font-face {
    font-family: "FontAwesome brands";
    font-style: normal;
    font-weight: 400;
    src: url("/assets/fontAwesome/fa-brands-400-8663fa39.woff2") format("woff2");
  }
  @font-face {
    font-family: "Inter";
    font-weight: 200;
    font-display: swap;
    src: url("/assets/Inter/Inter-Light-529821cd.woff2") format("woff2");
  }
  @font-face {
    font-family: "Inter";
    font-weight: normal;
    font-display: swap;
    src: url("/assets/Inter/Inter-Regular-666c4de2.woff2") format("woff2");
  }
  @font-face {
    font-family: "Inter";
    font-weight: 700;
    font-display: swap;
    src: url("/assets/Inter/Inter-Bold-16b06d14.woff2") format("woff2");
  }
  @font-face {
    font-family: "Noto Sans JP";
    font-weight: 200;
    font-display: swap;
    src: url("/assets/NotoSansJP/NotoSansJP-ExtraLight-709b076b.woff2") format("woff2");
  }
  @font-face {
    font-family: "Noto Sans JP";
    font-weight: normal;
    font-display: swap;
    src: url("/assets/NotoSansJP/NotoSansJP-Regular-cd5368b6.woff2") format("woff2");
  }
  @font-face {
    font-family: "Noto Sans JP";
    font-weight: 700;
    font-display: swap;
    src: url("/assets/NotoSansJP/NotoSansJP-Bold-575eb181.woff2") format("woff2");
  }
  @font-face {
    font-family: "Noto Sans JP";
    font-weight: 900;
    font-display: swap;
    src: url("/assets/NotoSansJP/NotoSansJP-Black-6369c262.woff2") format("woff2");
  }
  /* font */
  /* animation */
  @keyframes bell {
    2% {
      transform: rotateZ(10deg);
    }
    4% {
      transform: rotateZ(-10deg);
    }
    6% {
      transform: rotateZ(10deg);
    }
    8% {
      transform: rotateZ(-10deg);
    }
    10% {
      transform: rotateZ(10deg);
    }
    12% {
      transform: rotateZ(-10deg);
    }
    14% {
      transform: rotateZ(10deg);
    }
    16% {
      transform: rotateZ(-10deg);
    }
    18% {
      transform: rotateZ(10deg);
    }
    20% {
      transform: rotateZ(-10deg);
    }
    20% {
      transform: rotateZ(0deg);
    }
  }
  @keyframes flash {
    from {
      left: 0;
      opacity: 1;
    }
    10%, 100% {
      left: calc(100% - 1em);
      opacity: 0;
    }
  }
  @keyframes spin {
    from {
      transform: rotate(0);
    }
    to {
      transform: rotate(360deg);
    }
  }
  @keyframes swipeRight {
    from {
      opacity: 0;
      translate: -1em 0;
    }
    25% {
      opacity: 1;
      translate: 0 0;
    }
    to {
      opacity: 1;
    }
  }
  @keyframes show {
    from {
      opacity: 0;
    }
    to {
      opacity: 1;
    }
  }
  @keyframes hide {
    from {
      opacity: 1;
    }
    to {
      opacity: 0;
    }
  }
  @keyframes open {
    from {
      opacity: 0;
      top: var(--animationMoveUp);
    }
    to {
      opacity: 1;
      top: 0;
    }
  }
  @keyframes close {
    from {
      opacity: 1;
      top: 0;
    }
    to {
      opacity: 0;
      top: calc(-1 * var(--animationMoveUp));
    }
  }
  @keyframes fold {
    from {
      max-height: var(--foldContentH);
    }
    to {
      max-height: var(--foldContentMaxH);
    }
  }
  @keyframes unfold {
    from {
      max-height: var(--foldContentMaxH);
    }
    to {
      max-height: var(--foldContentH);
    }
  }
}
@layer project {
  @layer init {
    :root {
      --zLayout-pc-1: '_a  _a  _a  _a  _a' min-content;
      --zLayout-pc-2: '_b  _b  _b  _b  _b' min-content;
      --zLayout-pc-3: '_c  _d  _d  _d  _i' min-content;
      --zLayout-pc-4: '_c  _e  _f  _g  _i' auto;
      --zLayout-pc-5: '_c  _h  _h  _h  _i' min-content;
      --zLayout-pc-6: '_j  _j  _j  _j  _j' min-content;
      --zLayout-pc-7: '_k  _k  _k  _k  _k' min-content;
      --zLayout-pc-colmuns: min-content min-content 1fr min-content min-content;
      --zLayout-sp-1: '_a' min-content;
      --zLayout-sp-2: '_b' min-content;
      --zLayout-sp-3: '_c' min-content;
      --zLayout-sp-4: '_d' min-content;
      --zLayout-sp-5: '_f' auto;
      --zLayout-sp-6: '_e' min-content;
      --zLayout-sp-7: '_g' min-content;
      --zLayout-sp-8: '_h' min-content;
      --zLayout-sp-9: '_i' min-content;
      --zLayout-sp-10: '_j' min-content;
      --zLayout-sp-11: '_k' min-content;
      --width-min: 350px;
      --width-max: 1200px;
      --width-max-m: 1000px;
      --width-max-s: 800px;
      --width-input-s: 10em;
      --width-input-ss: 5em;
      --font-sansSerif: 'Inter', 'Noto Sans JP', 'Yu Gothic', 'YuGothic', 'Meiryo';
      --font-monospace: Consolas, Menlo, Courier, Inter, Noto Sans JP, Yu Gothic;
      --color-gray: #999999;
      --color-gray-light: #F2F2F2;
      --color-gray-dark: #262626;
      --color-black: #0D0D0D;
      --color-ok: #0099DD;
      --color-ng: #ca3625;
      --color-notice: #0099DD;
      --color-alert: #ca3625;
      --color-main: #ca3625;
      --color-main-on: white;
      --color-sub: #3e3a39;
      --color-sub-on: white;
      --color-base: white;
      --color-inputBg: #FCFCFC;
      --color-a: var(--color-main);
      --color-border-gray: rgba(153, 153, 153, 0.5);
      --color-border-gray-thin: rgba(153, 153, 153, 0.25);
      --color-border-ok: rgba(0, 153, 221, 0.5);
      --color-border-ng: rgba(202, 54, 37, 0.5);
      --color-border-main: rgba(202, 54, 37, 0.5);
      --color-border-sub: rgba(62, 58, 57, 0.5);
      --color-shadow-gray: rgba(153, 153, 153, 0.5);
      --initial-color: #262626;
      --initial-bgColor: #FAFAFA;
      --initial-fontSize: 16px;
      --initial-formFontSize: 16px;
      --radius-s: 4px;
      --radius-m: 8px;
      --radius-l: 16px;
      --radius-x: 1.5em;
      --input-height: 2.5em;
      --siteHeaderHeight: 77.5px // initial;
      --sticky-pageTop: var(--siteHeaderHeight);
      --animationMoveUp: 5vh;
    }
    /* common */
    body {
      display: grid;
      grid-template-rows: auto 1fr auto;
      min-width: var(--width-min);
      min-height: 100dvh;
      line-height: 1.4;
    }
    ._defgh h1 {
      font-size: min(2em, 6cqw);
      text-align: center;
      padding: 7.5vh 5cqw;
      word-break: keep-all;
    }
    :where(h1, h2, h3, h4, h5) {
      font-size: 1em;
    }
    /* layout */
    ._z {
      min-width: var(--width-min);
      max-width: 100dvw;
      min-height: 100dvh;
    }
    @media (max-width: 800px) {
      ._z {
        display: grid;
        grid-template: var(--zLayout-sp-1) var(--zLayout-sp-2) var(--zLayout-sp-3) var(--zLayout-sp-4) var(--zLayout-sp-5) var(--zLayout-sp-6) var(--zLayout-sp-7) var(--zLayout-sp-8) var(--zLayout-sp-9) var(--zLayout-sp-10) var(--zLayout-sp-11);
      }
    }
    @media (min-width: 801px) {
      ._z {
        display: grid;
        grid-template: var(--zLayout-pc-1) var(--zLayout-pc-2) var(--zLayout-pc-3) var(--zLayout-pc-4) var(--zLayout-pc-5) var(--zLayout-pc-6) var(--zLayout-pc-7);
        grid-template-columns: var(--zLayout-pc-colmuns);
      }
    }
    @media (min-width: 1201px) {
      ._z:not(.m, .s, .x) :where(._c, ._i) {
        width: calc((100dvw - 1200px) / 2);
      }
    }
    @media (min-width: 1001px) {
      ._z.m :where(._c, ._i) {
        width: calc((100dvw - 1000px) / 2);
      }
    }
    @media (min-width: 801px) {
      ._z.s :where(._c, ._i) {
        width: calc((100dvw - 800px) / 2);
      }
    }
    ._z :where(._a, ._b, ._c, ._d, ._e, ._f, ._g, ._h, ._i, ._j, ._k) {
      min-width: 0;
    }
    ._z :where(._a, ._b, ._c, ._d, ._e, ._f, ._g, ._h, ._i, ._j, ._k):has(*) {
      container: _container/inline-size;
      position: relative;
      width: 100%;
      margin-inline: auto;
      z-index: 0;
    }
    ._z :where(._a, ._b, ._c, ._d, ._e, ._f, ._g, ._h, ._i, ._j, ._k):not(:has(*)) {
      z-index: -1;
    }
    ._z :where(._d, ._e, ._f, ._g, ._h, ._i):has(*) {
      padding: 1em;
    }
    @media (max-width: 800px) {
      ._z :where(._c, ._e, ._g, ._i):has(*) {
        min-width: calc(var(--width-max) * 0.25);
      }
    }
    @media (min-width: 801px) {
      ._z :where(._c, ._e, ._g, ._i):has(*) {
        width: calc(var(--width-max) * 0.25);
      }
    }
    ._z ._a {
      grid-area: _a;
      position: sticky;
      top: 0;
      z-index: 3;
    }
    ._z ._b {
      grid-area: _b;
    }
    ._z ._c {
      grid-area: _c;
    }
    ._z ._d {
      grid-area: _d;
    }
    ._z ._e {
      grid-area: _e;
    }
    ._z ._f {
      grid-area: _f;
      min-height: 75vh;
    }
    ._z ._g {
      grid-area: _g;
    }
    ._z ._h {
      grid-area: _h;
    }
    ._z ._i {
      grid-area: _i;
    }
    ._z ._j {
      grid-area: _j;
    }
    ._z ._k {
      grid-area: _k;
      margin-top: 10vh;
    }
    ._z ._cdefghi {
      grid-column: _c/_i;
      grid-row: _c/_i;
    }
    ._z ._defgh {
      grid-column: _d/_h;
      grid-row: _d/_h;
    }
    @media (max-width: 800px) {
      ._z ._efg {
        grid-column: _f/_g;
        grid-row: _f/_g;
      }
    }
    @media (min-width: 801px) {
      ._z ._efg {
        grid-column: _e/_g;
        grid-row: _e/_g;
      }
    }
    /* system */
    :where(._notice, ._alert) {
      font-weight: bold;
      color: var(--color);
      background-color: rgb(from var(--color) r g b/0.1);
      border-radius: var(--radius-s);
      padding: 1em;
    }
    :where(._notice, ._alert)::before {
      font-family: "FontAwesome solid";
      content: var(--icon);
      vertical-align: baseline;
      margin-right: 0.5em;
    }
    ._notice {
      --color: var(--color-notice);
      --icon: '\f05a';
    }
    ._alert {
      --color: var(--color-alert);
      --icon: '\f071';
    }
    /* partial */
    ._breadcrumbs {
      display: -webkit-flex;
      -webkit-flex-wrap: wrap;
      -webkit-align-items: center;
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      font-size: 0.85em;
      color: var(--color-sub);
      margin-bottom: 2.5vh;
    }
    ._breadcrumbs * {
      display: inline-block;
      padding: 0.25em;
    }
    ._breadcrumbs :first-child::before {
      font-family: "FontAwesome solid";
      content: "\e3af";
      vertical-align: baseline;
      margin-right: 0.25em;
    }
    ._breadcrumbs :not(:first-child)::before {
      font-family: "FontAwesome solid";
      content: "\f105";
      vertical-align: baseline;
      margin: 0 0.5em;
    }
    ._siteHeader {
      padding: 0.5em 1em;
    }
    ._siteHeader:not(.open) {
      background-color: white;
      box-shadow: 0 0 2px lightgray;
    }
    @media (max-width: 600px) {
      ._siteHeader {
        display: grid;
        grid-template: "strong strong" "h1 openClose";
        gap: 0 0.5em;
        -webkit-align-items: center;
        align-items: center;
      }
    }
    @media (min-width: 601px) {
      ._siteHeader {
        display: -webkit-flex;
        -webkit-flex-wrap: wrap;
        -webkit-align-items: center;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 0.25em 1em;
      }
    }
    ._siteHeader h1 {
      grid-area: h1;
      display: block;
      width: 10em;
    }
    @media (min-width: 601px) {
      ._siteHeader h1 {
        padding: 1em;
      }
    }
    ._siteHeader h1:is(.open *) {
      opacity: 0;
    }
    ._siteHeader h1 a {
      display: block;
    }
    ._siteHeader h1 img {
      width: 100%;
      object-fit: contain;
    }
    ._siteHeader strong {
      grid-area: strong;
      display: block;
    }
    ._siteHeader strong:is(.open *) {
      opacity: 0;
    }
    @media (max-width: 600px) {
      ._siteHeader strong {
        display: -webkit-flex;
        -webkit-flex-wrap: wrap;
        -webkit-align-items: baseline;
        display: flex;
        flex-wrap: wrap;
        align-items: baseline;
        gap: 0.25em 1em;
        font-size: xx-small;
        margin-bottom: 1em;
      }
    }
    ._siteHeader strong span {
      display: block;
    }
    @media (min-width: 601px) {
      ._siteHeader strong span {
        font-size: 0.85em;
      }
    }
    ._siteHeader strong b {
      display: block;
    }
    @media (min-width: 601px) {
      ._siteHeader strong b {
        text-align: justify;
        text-align-last: justify;
      }
    }
    ._siteHeader .u-overlayMenuOpenClose {
      grid-area: openClose;
      margin-left: auto;
    }
    ._siteFooter {
      container: _container/inline-size;
      position: relative;
      color: lightgray;
      background-color: #111111;
    }
    ._siteFooter .lr {
      max-width: 1200px;
      margin-right: auto;
      margin-left: auto;
      width: 100%;
      padding: 2.5vh 0;
    }
    @container _container (min-width: 1001px) {
      ._siteFooter .lr {
        display: grid;
        grid-template-columns: auto 1fr;
        gap: 5cqw;
        -webkit-justify-content: end;
        justify-content: end;
        -webkit-align-items: center;
        align-items: center;
      }
    }
    ._siteFooter h2 a {
      display: block;
      width: 10em;
      padding: 2em 1em;
    }
    ._siteFooter h2 img {
      width: 100%;
      object-fit: contain;
    }
    ._siteFooter .prefectures {
      --repeat: 2;
      -webkit-flex: 1 1 auto;
      flex: 1 1 auto;
      display: grid;
      grid-template-columns: repeat(var(--repeat), minmax(6em, 1fr));
    }
    @container _container (min-width: 501px) {
      ._siteFooter .prefectures {
        --repeat: 4;
      }
    }
    @container _container (min-width: 801px) {
      ._siteFooter .prefectures {
        --repeat: auto-fit;
      }
    }
    ._siteFooter .prefectures nav {
      padding: 0.5em;
    }
    ._siteFooter .prefectures nav h3 {
      font-size: 0.9em;
      font-weight: normal;
      color: gray;
      margin-bottom: 0.5em;
    }
    ._siteFooter .prefectures a {
      display: block;
      font-size: 0.9em;
      color: lightgray;
      padding: 0.25em 0;
    }
    @container _container (max-width: 800px) {
      ._siteFooter .prefectures a {
        border-bottom: 1px solid rgba(128, 128, 128, 0.25);
        padding: 0.5em 1em;
      }
      ._siteFooter .prefectures a:hover {
        color: var(--color-main-on);
        background-color: var(--color-main);
      }
    }
    ._siteFooter .info {
      display: -webkit-flex;
      -webkit-flex-wrap: wrap;
      -webkit-justify-content: center;
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: 0.5em;
      background-color: black;
      padding: 2.5vh 5cqw;
    }
    ._siteFooter .info a {
      font-size: small;
      color: lightgray;
      padding: 0.5em;
    }
    ._siteFooter .copyright {
      color: var(--color-main-on);
      background-color: var(--color-main);
      font-size: xx-small;
      text-align: center;
      padding: 1em;
    }
    ._overlayMenu {
      container: _container/inline-size;
      position: relative;
      display: none;
      height: 100dvh;
      background-color: rgba(255, 255, 255, 0.975);
      padding: 1em;
      position: fixed;
      top: 0;
      right: 0;
      left: 0;
      z-index: 2;
      overflow-y: auto;
    }
    ._overlayMenu.open {
      display: block;
      animation-name: open;
      animation-duration: 0.5s;
      animation-timing-function: ease-out;
      animation-fill-mode: forwards;
    }
    ._overlayMenu.close {
      animation-name: close;
      animation-duration: 0.25s;
      animation-timing-function: ease-out;
      animation-fill-mode: forwards;
    }
    ._overlayMenu .grid {
      height: 100%;
      padding: 1em;
    }
    @container _container (min-width: 601px) {
      ._overlayMenu .grid {
        display: grid;
        grid-template-columns: auto auto;
        -webkit-justify-content: center;
        justify-content: center;
        -webkit-place-items: center;
        place-items: center;
      }
    }
    ._overlayMenu .grid img {
      display: block;
      width: 100%;
      max-width: 200px;
      margin: 5vh auto;
    }
    ._overlayMenu .grid nav {
      padding: 0 5vw;
    }
    ._overlayMenu .grid a {
      display: block;
      border-bottom: 1px solid var(--color-border-gray);
      cursor: pointer;
      padding: 1em;
    }
    @container _container (min-width: 601px) {
      ._overlayMenu .grid a {
        min-width: 330px;
      }
    }
    ._overlayMenu .grid a.search::before {
      content: "\f002";
    }
    ._overlayMenu .grid a.note::before {
      content: "\f0eb";
    }
    ._overlayMenu .grid a.privacy::before {
      content: "\f3ed";
    }
    ._overlayMenu .grid a.term::before {
      content: "\f56c";
    }
    ._overlayMenu .grid a.contact::before {
      content: "\f0e0";
    }
    ._overlayMenu .grid a.company::before {
      content: "\f05a";
    }
    ._overlayMenu .grid a:hover {
      color: var(--color-main);
    }
    ._overlayMenu .grid a:hover::before {
      width: 2.5em;
    }
    ._overlayMenu .grid a::before {
      font-family: "FontAwesome solid";
      vertical-align: baseline;
      display: inline-block;
      width: 2em;
      color: var(--color-main);
      transition: 0.25s;
      text-align: center;
      margin-right: 1em;
    }
    ._error ._f {
      display: grid;
      -webkit-place-items: center;
      place-items: center;
    }
    ._error ._f .status {
      font-weight: bold;
      font-size: clamp(2em, 5vw, 4em);
      text-align: center;
    }
    ._error ._f h1 {
      font-size: 1rem;
      padding: 1.5em 0 3em;
    }
    ._error ._f a {
      display: block;
      padding: 0.25em;
      width: fit-content;
      margin-inline: auto;
    }
    ._error ._f a::before {
      font-family: "FontAwesome solid";
      content: "\f015";
      vertical-align: baseline;
      margin-right: 0.35em;
      color: var(--color-main);
    }
    /* general */
    ._none {
      display: none;
    }
    ._container {
      container: _container/inline-size;
      position: relative;
    }
    ._subgrid {
      display: grid;
      grid-template-columns: subgrid;
      grid-template-rows: subgrid;
    }
    ._subgrid.entire {
      grid-column: 1/-1;
      grid-row: 1/-1;
    }
    ._flex {
      display: -webkit-flex;
      -webkit-align-items: baseline;
      display: flex;
      align-items: baseline;
      gap: 0.5em;
    }
    ._flex:not(.nowrap) {
      flex-wrap: wrap;
    }
    ._noImage {
      object-fit: contain;
    }
    /* util */
    /** pj **/
    .u-overlayMenuOpenClose {
      display: inline-block;
      width: 26px;
      height: 22px;
      cursor: pointer;
      position: relative;
    }
    .u-overlayMenuOpenClose span {
      display: block;
      width: 100%;
      height: 2px;
      background-color: var(--initial-color);
      border-radius: 2px;
      transition: 0.25s;
      position: absolute;
      left: 0;
    }
    .u-overlayMenuOpenClose span:nth-of-type(1) {
      top: 0;
    }
    .u-overlayMenuOpenClose span:nth-of-type(2) {
      top: calc(50% - 1px);
    }
    .u-overlayMenuOpenClose span:nth-of-type(3) {
      bottom: 0;
    }
    .u-overlayMenuOpenClose span:is(.open *):nth-of-type(1) {
      transform: translateY(calc(11px - 1px)) rotate(-45deg);
    }
    .u-overlayMenuOpenClose span:is(.open *):nth-of-type(2) {
      opacity: 0;
    }
    .u-overlayMenuOpenClose span:is(.open *):nth-of-type(3) {
      transform: translateY(calc(-11px + 1px)) rotate(45deg);
    }
    @container _container (min-width: 401px) {
      .u-searchList {
        display: grid;
        grid-template-columns: minmax(4em, 8em) 1fr;
      }
    }
    .u-searchList > section {
      display: grid;
      grid-template-columns: subgrid;
      grid-template-rows: subgrid;
      grid-column: span 2;
      grid-row: auto;
      padding: 1rem 0;
    }
    @container _container (min-width: 401px) {
      .u-searchList > section {
        border-bottom: 1px solid var(--color-border-gray);
      }
    }
    .u-searchList :where(h2, h3) {
      display: grid;
      -webkit-place-items: center;
      place-items: center;
      font-size: 0.9rem;
      background-color: whitesmoke;
      line-height: 1.5rem;
      text-align: center;
      padding: 0.75rem 1.5rem;
    }
    .u-searchList .u-list {
      --min: 10em;
    }
    @container _container (max-width: 400px) {
      .u-searchList .u-list {
        padding-top: 1rem;
      }
    }
    @container _container (min-width: 401px) {
      .u-searchList .u-list {
        padding-left: 1rem;
      }
    }
    .u-list {
      --min: 7em;
    }
    .u-list:not(.fit) {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(var(--min), 1fr));
      gap: 0.5rem;
    }
    .u-list:is(.fit) {
      display: -webkit-flex;
      -webkit-flex-wrap: wrap;
      display: flex;
      flex-wrap: wrap;
      gap: 0.5rem;
    }
    .u-list a {
      width: 100%;
      font-size: 0.9em;
      background-color: white;
      border: 1px solid var(--color-border-gray-thin);
      border-radius: var(--radius-s);
      cursor: pointer;
      text-align: center;
      padding: 0.75rem 1.5rem;
    }
    .u-list a:hover {
      color: var(--color-main-on);
      background-color: var(--color-main);
      border: 1px solid var(--color-border-main);
      opacity: 1;
    }
    .u-list a.active {
      color: var(--color-main-on);
      background-color: var(--color-main);
      border: 1px solid var(--color-border-main);
    }
    /** import **/
    a.u {
      display: inline-block;
      color: var(--color-a);
      text-decoration: underline;
    }
    fieldset.u:is(.u-form *):has(+ .u) {
      margin-bottom: 0;
    }
    fieldset.u .u-validation {
      padding: 0.5em 1em;
      padding-top: 0;
    }
    fieldset.u textarea {
      min-height: 10em;
      border: none;
      resize: block;
    }
    fieldset.u :where([type=text], [type=password], [type=email], [type=number], [type=search], [type=tel], [type=url]) {
      width: 100%;
    }
    h1.u {
      font-size: min(2em, 8cqw);
      margin-bottom: 1em;
    }
    h2.u {
      font-size: min(1.75em, 7.5cqw);
      margin-bottom: 1em;
    }
    h2.u span {
      font-size: 0.8em;
      font-weight: normal;
      margin-left: 1em;
    }
    h3.u {
      font-size: min(1.5em, 5.5cqw);
      margin-bottom: 0.75em;
    }
    h4.u {
      font-size: min(1.25em, 4.5cqw);
      margin-bottom: 0.5em;
    }
    h5.u {
      font-size: min(1.15em, 4.5cqw);
      margin-bottom: 0.5em;
    }
    header.u {
      display: -webkit-flex;
      -webkit-flex-wrap: wrap;
      -webkit-align-items: center;
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.5em 1em;
    }
    header.u:has(h1.u) {
      margin-bottom: 1.75em;
    }
    header.u:has(h2.u) {
      margin-bottom: 1.5em;
    }
    header.u:has(h3.u) {
      margin-bottom: 0.9375em;
    }
    header.u:has(h4.u) {
      margin-bottom: 0.825em;
    }
    header.u :where(h2.u, h3.u, h4.u) {
      margin-bottom: 0;
    }
    header.u .u-btn {
      font-size: 0.8em;
    }
    p.u a {
      color: var(--color-a);
      padding: 0 0.25em;
    }
    p.u a[target=_blank]::after {
      font-family: "FontAwesome solid";
      content: "\f08e";
      vertical-align: baseline;
      margin-left: 0.25em;
    }
    table.u {
      font-size: 0.9em;
    }
    table.u.col {
      --min: 5em;
      --gtc: repeat(var(--colCount), minmax(var(--min), 1fr));
      --borderColor: rgb(from var(--color-gray) r g b/0.25);
    }
    table.u.col {
      display: grid;
      grid-template-columns: var(--gtc);
    }
    table.u.col:not(.fit) {
      width: 100%;
    }
    table.u.col:is(.fit) {
      width: fit-content;
    }
    table.u.col :where(thead, tbody, tr) {
      display: grid;
      grid-template-columns: subgrid;
      grid-column: 1/-1;
    }
    table.u.col thead {
      font-size: 0.8em;
    }
    table.u.col thead th {
      padding: 0.5em;
    }
    table.u.col tbody {
      background-color: white;
    }
    table.u.col tbody :where(tr):first-child {
      border-top: 1px solid var(--borderColor);
    }
    table.u.col tbody :where(th, td) {
      -webkit-align-content: center;
      align-content: center;
      min-width: var(--min);
      border-right: 1px solid var(--borderColor);
      border-bottom: 1px solid var(--borderColor);
      padding: 0.5em;
    }
    table.u.col tbody :where(th, td):first-child {
      border-left: 1px solid var(--borderColor);
    }
    table.u.col tbody td.c {
      text-align: center;
    }
    table.u.col tbody td.r {
      text-align: right;
    }
    table.u.col tbody a.u {
      display: block;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    table.u.col tbody a.u:not([target])::before {
      font-family: "FontAwesome solid";
      content: "\f304";
      vertical-align: baseline;
    }
    table.u.col tbody a.u:is([target])::before {
      font-family: "FontAwesome solid";
      content: "\f08e";
      vertical-align: baseline;
    }
    table.u.col tbody a.u::before {
      font-size: 0.8em;
      margin-right: 0.35em;
    }
    table.u.col tbody .stations {
      padding-left: 1.5em;
    }
    table.u.col tbody .stations li {
      list-style: disc;
    }
    table.u.col tbody .btns a {
      display: -webkit-flex;
      -webkit-justify-content: center;
      -webkit-align-items: baseline;
      display: flex;
      justify-content: center;
      align-items: baseline;
      font-size: 0.8rem;
      white-space: nowrap;
      padding: 0.25em;
    }
    table.u.col tbody .btns a::before {
      display: inline-block;
      width: 1.5em;
      font-size: 0.8em;
      text-align: center;
    }
    table.u.col tbody .btns a.delete::before {
      font-family: "FontAwesome solid";
      content: "\f1f8";
      vertical-align: baseline;
    }
    table.u.col tbody .btns a.edit::before {
      font-family: "FontAwesome solid";
      content: "\f304";
      vertical-align: baseline;
    }
    time.u {
      color: var(--color-gray);
      font-style: italic;
      font-size: 0.8em;
    }
    ul.u > li {
      padding: 1em 0;
    }
    ul.u > li:first-of-type {
      padding-top: 0;
    }
    ul.u > li:not(:last-of-type) {
      border-bottom: 1px solid var(--color-border-gray);
    }
    .u-choice ul {
      display: -webkit-flex;
      -webkit-flex-wrap: wrap;
      display: flex;
      flex-wrap: wrap;
      gap: 0.2em;
    }
    .u-choice li {
      -webkit-flex: 1 1 auto;
      flex: 1 1 auto;
    }
    .u-choice li:not(:has([type=checkbox], [type=radio])) {
      font-size: 0.9em;
      background-color: var(--color-base);
      border: 1px solid var(--color-border-gray);
      border-radius: var(--radius-s);
      text-align: center;
      padding: 0.25em 0.75em;
    }
    .u-choice li:has([type=checkbox]) label {
      font-size: 0.9em;
      background-color: var(--color-base);
      border: 1px solid var(--color-border-gray);
      border-radius: var(--radius-s);
      text-align: center;
      padding: 0.25em 0.75em;
      width: 100%;
      user-select: none;
    }
    .u-choice li:has([type=checkbox]) label:is(:checked + *) {
      color: var(--color-main-on);
      background-color: var(--color-main);
      border-color: transparent;
    }
    .u-choice li:has([type=checkbox]) input {
      display: none;
    }
    .u-choice li:has([type=radio]) {
      -webkit-flex: 0 1 auto;
      flex: 0 1 auto;
      padding: 0.5em;
    }
    .u-choice li:has([type=radio]) label {
      margin-left: 0.25em;
    }
    .u-back::before {
      font-family: "FontAwesome solid";
      content: "\f177";
      vertical-align: baseline;
      margin-right: 0.35em;
    }
    .u-breadcrumb li:not(:last-of-type)::after {
      font-family: "FontAwesome solid";
      vertical-align: baseline;
    }
    .u-breadcrumb a {
      display: inline-block;
      padding: 0.5em;
    }
    .u-btn {
      display: grid;
      -webkit-place-items: center;
      place-items: center;
      width: fit-content;
      min-height: var(--input-height);
      font-size: 0.9em;
      background-color: white;
      border: 1px solid var(--color-border-gray);
      border-radius: var(--radius-s);
      user-select: none;
      transition: 0.25s;
      padding-right: 1.5em;
      padding-left: 1.5em;
    }
    .u-btn.mainPrimary {
      color: var(--color-main-on);
      background-color: var(--color-main);
    }
    .u-btn.mainPrimary:hover {
      color: var(--color-main);
      background-color: var(--color-main-on);
      border: 1px solid var(--color-border-main);
      opacity: 1;
    }
    .u-btn.mainSecondary {
      color: var(--color-main);
      background-color: var(--color-main-on);
      border: 1px solid var(--color-border-main);
    }
    .u-btn.mainSecondary:hover {
      color: var(--color-main-on);
      background-color: var(--color-main);
      opacity: 1;
    }
    .u-btn.subPrimary {
      color: var(--color-sub-on);
      background-color: var(--color-sub);
    }
    .u-btn.subPrimary:hover {
      color: var(--color-sub);
      background-color: var(--color-sub-on);
      border: 1px solid var(--color-border-sub);
      opacity: 1;
    }
    .u-btn.subSecondary {
      color: var(--color-sub);
      background-color: var(--color-sub-on);
      border: 1px solid var(--color-border-sub);
    }
    .u-btn.subSecondary:hover {
      color: var(--color-sub-on);
      background-color: var(--color-sub);
      opacity: 1;
    }
    .u-btn[href]::before {
      font-family: "FontAwesome solid";
      vertical-align: baseline;
      margin-right: 0.5em;
    }
    .u-btns {
      display: -webkit-flex;
      -webkit-flex-wrap: wrap;
      -webkit-justify-content: center;
      -webkit-align-items: center;
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      align-items: center;
      gap: 0.5em;
    }
    .u-dls {
      display: grid;
      grid-template-columns: auto 1fr;
      gap: 0.5em 1em;
    }
    .u-dls dl {
      display: grid;
      grid-template-columns: subgrid;
      grid-template-rows: subgrid;
      -webkit-align-items: center;
      align-items: center;
      grid-column: span 2;
    }
    .u-form {
      container: _container/inline-size;
      position: relative;
    }
    .u-form fieldset {
      background-color: white;
      border-radius: var(--radius-m);
      padding: 1em;
      padding-top: 3em;
      margin-bottom: 2em;
    }
    .u-form legend {
      width: auto;
      font-weight: bold;
      font-size: 0.9em;
      color: var(--color-main);
      padding: 1em;
      translate: 0 3em;
    }
    .u-form legend:is(.required *) {
      position: relative;
    }
    .u-form legend:is(.required *)::before {
      font-family: "FontAwesome solid";
      content: "*";
      vertical-align: baseline;
      margin-right: 0.5em;
      color: var(--color-ng);
      position: absolute;
      top: 0;
      left: 0.5em;
    }
    .u-form dl {
      background-color: white;
      border-radius: var(--radius-m);
      padding: 0.75em 1.5em;
      margin: 0.5em 0;
    }
    @container _container (min-width: 601px) {
      .u-form dl {
        display: grid;
        grid-template-columns: 10em 1fr;
        -webkit-align-items: center;
        align-items: center;
      }
    }
    .u-form dt {
      font-size: 0.85em;
    }
    @container _container (max-width: 600px) {
      .u-form dt {
        margin-bottom: 0.5em;
      }
    }
    .u-form dd.multiple {
      display: -webkit-flex;
      -webkit-flex-wrap: wrap;
      -webkit-align-items: start;
      display: flex;
      flex-wrap: wrap;
      align-items: start;
      gap: 0.25em;
    }
    .u-form .l :where([type=text], [type=password], [type=email], [type=number], [type=search], [type=tel], [type=url]) {
      width: 100%;
    }
    .u-form .l textarea {
      min-height: 10em;
    }
    .u-form .m :where([type=text], [type=password], [type=email], [type=number], [type=search], [type=tel], [type=url]) {
      width: var(--width-input-m);
    }
    .u-form .s :where([type=text], [type=password], [type=email], [type=number], [type=search], [type=tel], [type=url]) {
      width: var(--width-input-s);
    }
    .u-form .ss :where([type=text], [type=password], [type=email], [type=number], [type=search], [type=tel], [type=url]) {
      width: var(--width-input-ss);
    }
    .u-form [type=text]:disabled, .u-form [type=password]:disabled, .u-form [type=email]:disabled, .u-form [type=number]:disabled, .u-form [type=search]:disabled, .u-form [type=tel]:disabled, .u-form [type=url]:disabled {
      color: gray;
    }
    .u-form textarea:disabled {
      color: gray;
    }
    .u-form .u-formFooter {
      background-color: var(--color-base);
      padding: 1em;
      position: sticky;
      bottom: 0;
      z-index: 1;
    }
    .u-formFooter {
      container: u-formFooter/inline-size;
      position: relative;
      display: -webkit-flex;
      -webkit-flex-wrap: wrap;
      -webkit-justify-content: center;
      -webkit-align-items: center;
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      align-items: center;
      gap: 2cqw;
      padding: 1em 0;
    }
    .u-formFooter:not(:is(.ui-dialog *)) {
      margin-top: 1em;
    }
    .u-formFooter div {
      display: contents;
    }
    .u-gMap {
      width: 100%;
      min-height: 250px;
      border-radius: var(--radius-l);
      resize: both;
      position: relative;
    }
    .u-gMap::after {
      font-family: "FontAwesome solid";
      content: "\f424";
      vertical-align: baseline;
      font-size: 1.5em;
      color: var(--color-main);
      position: absolute;
      right: 0.25em;
      bottom: 0.25em;
      z-index: 1;
      rotate: 90deg;
    }
    .u-help {
      display: block;
      font-size: smaller;
      margin-top: 0.25em;
    }
    .u-help:first-of-type {
      margin-top: 0.5em;
    }
    .u-help::before {
      content: "※";
    }
    .u-metaDatas {
      display: -webkit-flex;
      -webkit-flex-wrap: wrap;
      display: flex;
      flex-wrap: wrap;
      gap: 0.5em;
    }
    .u-metaDatas li:is(.hierarchy *):not(:first-child)::before {
      content: "\f105";
      margin-right: 0.5em;
    }
    .u-metaDatas li:not(:has(.u-status)):is(.tag *)::before {
      content: "\f02b";
    }
    .u-metaDatas li:not(:has(.u-status))::before {
      font-family: "FontAwesome solid";
      vertical-align: baseline;
      margin-right: 0.25em;
    }
    .u-note:not(:empty) {
      display: -webkit-flex;
      display: flex;
      padding: 1em 0;
    }
    .u-note:not(:empty)::before {
      font-family: "FontAwesome solid";
      content: "\f05a";
      vertical-align: baseline;
      margin-right: 0.5em;
      color: var(--color-main);
    }
    .u-note.c {
      -webkit-justify-content: center;
      justify-content: center;
    }
    .u-notice {
      color: var(--color-ng);
    }
    .u-notice:not(:empty) {
      padding: 1em 0;
    }
    .u-notice.c {
      text-align: center;
    }
    .u-numUnit {
      display: -webkit-flex;
      -webkit-align-items: baseline;
      display: flex;
      align-items: baseline;
    }
    .u-numUnit:is(.mainCurrency) b {
      font-size: 1.5em;
      color: var(--color-main);
    }
    .u-numUnit:not(.mainCurrency) b {
      font-weight: normal;
    }
    .u-numUnit small {
      font-size: 0.85em;
      margin-left: 0.5em;
    }
    .u-openClose {
      container: openClose/inline-size;
      position: relative;
      display: none;
      opacity: 0;
      position: relative;
      top: calc(-1 * var(--animationMoveUp));
    }
    .u-openClose:is(:has(:checked) + *) {
      display: block;
      animation-name: open;
      animation-duration: 0.5s;
      animation-fill-mode: forwards;
    }
    .u-openCloser {
      display: -webkit-flex;
      -webkit-justify-content: center;
      display: flex;
      justify-content: center;
    }
    .u-openCloser:has(:checked)::after {
      rotate: 180deg;
    }
    .u-openCloser::after {
      font-family: "FontAwesome solid";
      content: "\f078";
      vertical-align: baseline;
      display: inline-block;
      text-align: center;
      transition: 0.25s;
      rotate: 0deg;
    }
    .u-openCloser input {
      display: none;
    }
    .u-pageNav {
      border-top: 1px solid var(--color-border-gray);
      border-bottom: 1px solid var(--color-border-gray);
      padding: 0.5em 1em;
    }
    .u-pageNav.u-sticky {
      width: 100%;
      background-color: var(--initial-bgColor);
      top: var(--siteHeaderHeight);
    }
    .u-pageNav nav:is(.swiper-wrapper) {
      height: auto;
    }
    .u-pageNav nav:not(.swiper-wrapper) {
      display: -webkit-flex;
      -webkit-flex-wrap: wrap;
      display: flex;
      flex-wrap: wrap;
    }
    .u-pageNav a {
      display: -webkit-flex;
      -webkit-justify-content: center;
      -webkit-align-items: center;
      display: flex;
      justify-content: center;
      align-items: center;
      font-size: 0.9em;
      cursor: pointer;
      padding: 0.25em 0.75em;
    }
    .u-pageNav a:is(.swiper-wrapper *) {
      width: auto;
    }
    .u-pageNav a:not(.swiper-wrapper *) {
      -webkit-flex: 1 1 auto;
      flex: 1 1 auto;
    }
    .u-pageNav a:not(:last-of-type) {
      border-right: 1px solid var(--color-border-gray);
    }
    .u-pageNav a::after {
      font-family: "FontAwesome solid";
      content: "\f107";
      vertical-align: baseline;
      margin-left: 1em;
    }
    .u-progress {
      display: -webkit-flex;
      -webkit-flex-wrap: wrap;
      display: flex;
      flex-wrap: wrap;
      gap: 1em 0;
    }
    .u-progress span {
      display: inline-block;
      width: 7em;
      font-size: 0.7em;
      text-align: center;
      position: relative;
    }
    .u-progress span:last-of-type::after {
      display: none;
    }
    .u-progress span.active b::before {
      font-family: "FontAwesome solid";
      content: "\f111";
      vertical-align: baseline;
    }
    .u-progress span.active ~ span b::before {
      font-family: "FontAwesome regular";
      content: "\f111";
      vertical-align: baseline;
    }
    .u-progress span:where(.disabled, .rejection):not(.active) {
      display: none;
    }
    .u-progress span:first-of-type::before {
      border-top-left-radius: 0.5em;
      border-bottom-left-radius: 0.5em;
    }
    .u-progress span::before {
      content: "";
      display: inline-block;
      width: calc(50% - 1em + 1px);
      height: 8px;
      background-color: var(--color-main);
      position: absolute;
      top: 1em;
    }
    .u-progress span::after {
      content: "";
      display: inline-block;
      width: calc(50% - 1em + 1px);
      height: 8px;
      background-color: var(--color-main);
      position: absolute;
      top: 1em;
    }
    .u-progress span::before {
      left: 0;
    }
    .u-progress span::after {
      right: 0;
    }
    .u-progress b::before {
      font-family: "FontAwesome solid";
      content: "\f058";
      vertical-align: baseline;
      display: block;
      font-size: 2em;
      color: var(--color-main);
      margin-bottom: 0.25em;
    }
    .u-rate {
      display: -webkit-flex;
      display: flex;
      color: var(--color-main);
    }
    .u-rate::before {
      font-family: "FontAwesome solid";
      content: "";
      vertical-align: baseline;
      order: -2;
    }
    .u-rate::after {
      font-family: "FontAwesome regular";
      content: "";
      vertical-align: baseline;
      order: -1;
      margin-right: 0.5em;
    }
    .u-rate[data-rate="0.5"]::before {
      content: "\f5c0";
    }
    .u-rate[data-rate="0.5"]::after {
      content: "\f005\f005\f005\f005";
    }
    .u-rate[data-rate="1.0"]::before {
      content: "\f005";
    }
    .u-rate[data-rate="1.0"]::after {
      content: "\f005\f005\f005\f005";
    }
    .u-rate[data-rate="1.5"]::before {
      content: "\f005\f5c0";
    }
    .u-rate[data-rate="1.5"]::after {
      content: "\f005\f005\f005";
    }
    .u-rate[data-rate="2.0"]::before {
      content: "\f005\f005";
    }
    .u-rate[data-rate="2.0"]::after {
      content: "\f005\f005\f005";
    }
    .u-rate[data-rate="2.5"]::before {
      content: "\f005\f005\f5c0";
    }
    .u-rate[data-rate="2.5"]::after {
      content: "\f005\f005";
    }
    .u-rate[data-rate="3.0"]::before {
      content: "\f005\f005\f005";
    }
    .u-rate[data-rate="3.0"]::after {
      content: "\f005\f005";
    }
    .u-rate[data-rate="3.5"]::before {
      content: "\f005\f005\f005\f5c0";
    }
    .u-rate[data-rate="3.5"]::after {
      content: "\f005";
    }
    .u-rate[data-rate="4.0"]::before {
      content: "\f005\f005\f005\f005";
    }
    .u-rate[data-rate="4.0"]::after {
      content: "\f005";
    }
    .u-rate[data-rate="4.5"]::before {
      content: "\f005\f005\f005\f005\f5c0";
    }
    .u-rate[data-rate="5.0"]::before {
      content: "\f005\f005\f005\f005\f005";
    }
    .u-rateCount {
      display: -webkit-flex;
      -webkit-align-items: baseline;
      display: flex;
      align-items: baseline;
      gap: 0.25em;
      font-weight: bold;
      font-size: smaller;
    }
    .u-rateCount::before {
      transform: translateY(-1px);
    }
    .u-rateCount::after {
      transform: translateY(-1px);
    }
    .u-rateCount::before {
      content: "(";
    }
    .u-rateCount::after {
      content: ")";
    }
    .u-sticky {
      position: sticky;
      top: var(--sticky-pageTop);
      z-index: 1;
    }
    .u-sym.x::before {
      content: "\f00d";
    }
    .u-sym.plus::before {
      content: "+";
    }
    .u-sym.equal::before {
      content: "=";
    }
    .u-sym.search::before {
      content: "\f002";
    }
    .u-sym::before {
      font-family: "FontAwesome solid";
      vertical-align: baseline;
    }
    .u-tab {
      display: -webkit-flex;
      display: flex;
      gap: 0.5em;
      border-bottom: 1px solid #DDD;
    }
    .u-tab li {
      position: relative;
      top: 1px;
    }
    .u-tab label {
      display: block;
      border: 1px solid #DDD;
      border-top-left-radius: 3px;
      border-top-right-radius: 3px;
      transition: 0.25s;
      padding: 0.75em 1.5em;
    }
    .u-tab label:hover {
      color: var(--color-main);
    }
    .u-tab label:has(:checked) {
      font-weight: bold;
      color: var(--color-main);
      border-bottom-color: var(--initial-bgColor);
    }
    .u-toggle {
      min-height: unset;
      background: none;
      border: none;
      outline: none;
      padding: 0;
      transition: 0.25s;
    }
    .u-toggle.off::before {
      font-family: "FontAwesome solid";
      content: "\f204";
      vertical-align: baseline;
    }
    .u-toggle.on {
      color: var(--color-main);
    }
    .u-toggle.on::before {
      font-family: "FontAwesome solid";
      content: "\f205";
      vertical-align: baseline;
    }
    .u-validation {
      color: var(--color-ng);
      font-size: 0.8em;
      font-weight: normal;
      padding: 0.25em 0;
    }
    .u-validation:is(:where(._notice, ._alert) + *) {
      padding-left: 1em;
      margin: 1em 0;
    }
    .u-validation li:not(:last-of-type) {
      margin-bottom: 0.25em;
    }
    .u-validation li::before {
      font-family: "FontAwesome solid";
      content: "\f0da";
      vertical-align: baseline;
      margin-right: 0.35em;
    }
    aside li {
      counter-increment: li;
    }
    aside li:not(:last-of-type) {
      border-bottom: 1px solid var(--color-border-gray);
    }
    aside a {
      padding: 0.5em 1em;
    }
    aside a:not(ol *) {
      display: block;
    }
    aside a:is(ol *) {
      display: grid;
      grid-template-columns: 2em 1fr;
      -webkit-align-items: baseline;
      align-items: baseline;
    }
    aside a:is(ol *)::before {
      content: counter(li) ".";
    }
    aside a:hover {
      color: var(--color-main) x;
    }
    aside .banners {
      margin-top: 2em;
    }
    aside .banners img {
      width: 100%;
      margin: 1em 0;
    }
    /* _admin */
    ._admin ._e {
      background-color: var(--color-gray-dark);
      border-right: 1px solid rgba(128, 128, 128, 0.25);
      padding: 0;
    }
    ._admin ._e ._sidebar {
      font-size: 0.9em;
      padding: 2em;
    }
    ._admin ._e ._sidebar h2 {
      font-weight: normal;
      font-size: 0.9em;
      color: whitesmoke;
      text-align: center;
      padding: 1em 0.5em;
    }
    ._admin ._e ._sidebar ul {
      color: var(--color-sub-on);
      background-color: var(--color-sub);
      border-radius: var(--radius-s);
    }
    ._admin ._e ._sidebar ul:is(.area *) {
      display: grid;
      grid-template-columns: 1fr 1fr;
    }
    ._admin ._e ._sidebar li:not(:last-of-type) {
      border-bottom: 1px solid var(--color-border-gray);
    }
    ._admin ._e ._sidebar li:is(.area *):nth-of-type(odd) {
      border-right: 1px solid var(--color-border-gray);
    }
    ._admin ._e ._sidebar a {
      display: block;
      height: 100%;
      font-size: 0.9em;
      padding: 0.75em 1.5em;
    }
    ._admin ._e ._sidebar a:hover {
      background-color: var(--color-main);
      opacity: 1;
    }
    ._admin ._e ._sidebar a:not(.area *)::before {
      font-family: "FontAwesome solid";
      vertical-align: baseline;
      display: inline-block;
      width: 1.5em;
      text-align: center;
    }
    ._admin ._e ._sidebar a:not(.area *).admin::before {
      font-family: "FontAwesome solid";
      content: "\f7d9";
      vertical-align: baseline;
      margin-right: 0.5em;
    }
    ._admin ._e ._sidebar a:not(.area *)[href*="/clinics"]::before {
      font-family: "FontAwesome solid";
      content: "\f7f2";
      vertical-align: baseline;
      margin-right: 0.5em;
    }
    ._admin ._e ._sidebar a:not(.area *)[href*="/city_rankings"]::before {
      font-family: "FontAwesome solid";
      content: "\f5a0";
      vertical-align: baseline;
      margin-right: 0.5em;
    }
    ._admin ._e ._sidebar a:not(.area *)[href*="/station_rankings"]::before {
      font-family: "FontAwesome solid";
      content: "\f239";
      vertical-align: baseline;
      margin-right: 0.5em;
    }
    ._admin ._e ._sidebar a:not(.area *)[href*="/json_import"]::before {
      font-family: "FontAwesome solid";
      content: "\f56f";
      vertical-align: baseline;
      margin-right: 0.5em;
    }
    ._admin ._e ._sidebar a:not(.area *)[href*="/note_categories"]::before {
      font-family: "FontAwesome solid";
      content: "\f5fd";
      vertical-align: baseline;
      margin-right: 0.5em;
    }
    ._admin ._e ._sidebar a:not(.area *)[href*="/notes"]::before {
      font-family: "FontAwesome solid";
      content: "\f249";
      vertical-align: baseline;
      margin-right: 0.5em;
    }
    ._admin ._e ._sidebar a:is(.area *) {
      text-align: center;
    }
    ._admin ._e ._sidebar a:is(.current *) {
      background-color: var(--color-main);
    }
    ._admin ._k {
      margin-top: 0;
    }
    ._admin ._f {
      background-color: var(--initial-bgColor);
    }
    @media (min-width: 801px) {
      ._admin ._f {
        padding-left: 2em;
      }
    }
    ._admin ._f h2 {
      color: gray;
    }
    ._admin ._f h2:not(.u) {
      font-size: 1.75em;
      margin-bottom: 1em;
    }
    ._admin ._f main {
      padding-top: 2.5vh;
    }
    ._admin ._f main > .u-back {
      margin-bottom: 1em;
    }
    ._admin ._f .manage {
      background-color: white;
      border: 1px solid var(--color-border-gray);
      border-radius: var(--radius-s);
      padding: 1em;
      margin-bottom: 5vh;
    }
    ._admin ._f .manage form {
      display: -webkit-flex;
      -webkit-flex-wrap: wrap;
      -webkit-align-items: center;
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.5em;
    }
    ._admin ._f .manage .u-btns {
      -webkit-justify-content: start;
      justify-content: start;
    }
    ._admin ._f [target=_blank]:not(.u-btn)::before {
      font-family: "FontAwesome solid";
      content: "\f08e";
      vertical-align: baseline;
      margin-right: 0.25em;
      color: var(--color-main);
    }
    ._admin._prefecture ._f section {
      margin-bottom: 5vh;
    }
    ._admin._prefecture ._f:is(._clinic *) table {
      grid-template-columns: auto 1fr auto auto;
    }
    ._admin._prefecture ._f:is(._clinic *) [data-status]::before {
      display: inline-block;
      width: 2em;
      text-align: center;
    }
    ._admin._prefecture ._f:is(._clinic *) [data-status="0"]::before {
      font-family: "FontAwesome solid";
      content: "\f068";
      vertical-align: baseline;
    }
    ._admin._prefecture ._f:is(._clinic *) [data-status="1"]::before {
      font-family: "FontAwesome solid";
      content: "\f00c";
      vertical-align: baseline;
    }
    ._admin._clinic ._f :where(.intro, .opening) legend {
      padding-bottom: 0;
    }
    ._admin._clinic ._f :where(.intro, .opening) .u-note {
      font-size: 0.75em;
      margin-left: 1em;
    }
    ._admin._clinic ._f :where(.intro, .station) section {
      background-color: whitesmoke;
      border-radius: var(--radius-m);
      padding: 1em;
      margin-bottom: 1em;
    }
    ._admin._clinic ._f :where(.intro, .station) header.u {
      margin: 0;
    }
    ._admin._clinic ._f :where(.intro, .station) header.u h3.u {
      width: 5em;
    }
    ._admin._clinic ._f :where(.intro, .station) header.u a {
      font-size: 0.75em;
    }
    ._admin._clinic ._f :where(.intro, .station) header.u .add:not(.introSet:has(.is-hidden) *) {
      display: none;
    }
    ._admin._clinic ._f :where(.intro, .station) header.u .clear:is(.introSet:has(.is-hidden) *) {
      display: none;
    }
    ._admin._clinic ._f :where(.intro, .station) h3.u {
      font-size: 1em;
    }
    ._admin._clinic ._f .reviewTags :where(button) {
      min-height: unset;
      background: none;
      border: none;
      outline: none;
      padding: 0;
    }
    ._admin._clinic ._f .reviewTags ul {
      display: -webkit-flex;
      -webkit-flex-wrap: wrap;
      display: flex;
      flex-wrap: wrap;
      gap: 0.25em;
    }
    ._admin._clinic ._f .reviewTags li {
      display: grid;
      grid-template-columns: auto auto;
      gap: 0.5em;
      -webkit-align-items: baseline;
      align-items: baseline;
      width: fit-content;
      font-size: 0.85rem;
      border-radius: var(--radius-s);
      transition: 0.25s;
      padding: 0.35em 0.75em;
      color: var(--color-main-on);
      background-color: var(--color-main);
      border: 1px solid var(--color-border-main);
      cursor: grab;
    }
    ._admin._clinic ._f .reviewTags li:hover {
      color: var(--color-main);
      background-color: var(--color-main-on);
      border: 1px solid var(--color-border-main);
    }
    ._admin._clinic ._f .reviewTags li button {
      color: inherit;
    }
    ._admin._clinic ._f .reviewTags li button::before {
      font-family: "FontAwesome regular";
      content: "\f057";
      vertical-align: baseline;
      font-size: smaller;
    }
    ._admin._clinic ._f .reviewTags [type=text] {
      margin: 0.5em 0;
    }
    ._admin._clinic ._f .reviewTags .suggestions {
      display: -webkit-flex;
      -webkit-flex-wrap: wrap;
      display: flex;
      flex-wrap: wrap;
      gap: 0.25em;
    }
    ._admin._clinic ._f .reviewTags .suggestions button {
      display: grid;
      grid-template-columns: auto auto;
      gap: 0.5em;
      -webkit-align-items: baseline;
      align-items: baseline;
      width: fit-content;
      font-size: 0.85rem;
      border-radius: var(--radius-s);
      transition: 0.25s;
      padding: 0.35em 0.75em;
      color: var(--color-main);
      background-color: var(--color-main-on);
      border: 1px solid var(--color-border-main);
    }
    ._admin._clinic ._f .reviewTags .suggestions button:hover {
      color: var(--color-main-on);
      background-color: var(--color-main);
      border: 1px solid var(--color-border-main);
    }
    ._admin._clinic ._f .reviewTags .suggestions button.add {
      color: var(--color-sub-on);
      background-color: var(--color-sub);
      border: 1px solid var(--color-border-sub);
    }
    ._admin._clinic ._f .reviewTags .suggestions button::before {
      font-family: "FontAwesome regular";
      content: "\f0fe";
      vertical-align: baseline;
      font-size: smaller;
    }
    ._admin._clinic ._f .opening .bulk input {
      border-radius: 2px;
    }
    ._admin._clinic ._f .opening .bulk button {
      transition: 0.25s;
      height: 2.5rem;
    }
    ._admin._clinic ._f .opening .bulk button:hover {
      color: var(--color-main-on);
      background-color: var(--color-main);
    }
    ._admin._clinic ._f .opening .bulk button::before {
      font-family: "FontAwesome solid";
      content: "\f058";
      vertical-align: baseline;
    }
    ._admin._clinic ._f .opening table {
      --min: 8em;
      --gtc: 1fr 3fr 3fr;
    }
    ._admin._clinic ._f .opening tbody th .clear {
      margin-inline: auto;
    }
    ._admin._clinic ._f .opening tbody th .clear::before {
      font-family: "FontAwesome solid";
      content: "\f12d";
      vertical-align: baseline;
    }
    ._admin._clinic ._f .opening ._flex {
      -webkit-justify-content: center;
      justify-content: center;
    }
    ._admin._json_import ._f div {
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
    }
    ._admin._json_import ._f :where(.u.col) {
      --min: 2.5em;
      grid-template-columns: repeat(3, minmax(var(--min), auto)) minmax(10em, 1fr) repeat(5, minmax(var(--min), auto)) repeat(3, minmax(calc(var(--min) * 2), auto));
    }
    ._admin._json_import ._f .error {
      max-width: 10em;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    ._admin._json_import ._f [data-status=yet]::before {
      font-family: "FontAwesome solid";
      content: "\f068";
      vertical-align: baseline;
    }
    ._admin._json_import ._f [data-status=done] {
      color: dodgerblue;
    }
    ._admin._json_import ._f [data-status=done]::before {
      font-family: "FontAwesome solid";
      content: "\f058";
      vertical-align: baseline;
    }
    ._admin._json_import ._f [data-status=failed] {
      color: orangered;
    }
    ._admin._json_import ._f [data-status=failed]::before {
      font-family: "FontAwesome solid";
      content: "\f071";
      vertical-align: baseline;
    }
    ._admin._note_category ._f :where(.u.col) {
      grid-template-columns: 1fr 1fr auto auto;
    }
    ._admin._note ._f .u.col {
      grid-template-columns: 1fr repeat(5, auto);
    }
    ._admin._note ._f tbody i {
      display: block;
      font-size: 0.8em;
      margin-top: 0.25em;
    }
    ._admin._city_ranking ._f :where(.u.col) {
      grid-template-columns: 1fr auto;
    }
    ._admin._station_ranking ._f :where(.u.col) {
      grid-template-columns: 1fr auto;
    }
    ._admin._station_ranking ._f .pageNav {
      display: -webkit-flex;
      -webkit-flex-wrap: wrap;
      display: flex;
      flex-wrap: wrap;
      gap: 0.5em;
      padding: 1em;
      padding-top: 0;
      margin-bottom: 2em;
    }
    ._admin._station_ranking ._f .pageNav button {
      min-height: unset;
      background: none;
      border: none;
      outline: none;
      padding: 0;
      font-size: 0.9em;
    }
    ._admin._station_ranking ._f .pageNav button::after {
      font-family: "FontAwesome solid";
      content: "\f107";
      vertical-align: baseline;
      color: var(--color-main);
      margin-left: 0.25em;
    }
    ._admin._station_ranking ._f .company {
      background-color: white;
      padding: 1em;
      position: relative;
    }
    ._admin._station_ranking ._f .company h3 {
      background-color: white;
      padding: 0.5em;
    }
    ._admin._station_ranking ._f .line {
      background-color: whitesmoke;
      padding: 1em;
      margin-bottom: 2em;
    }
    ._admin._station_ranking ._f .line header {
      position: sticky;
      top: var(--sticky-pageTop);
      z-index: 1;
      padding: 0.5em;
    }
  }
  @layer component {
    /* _home */
    ._home._index {
      background-color: white;
    }
    ._home._index ._d {
      padding: 0;
    }
    ._home._index ._d .banners {
      padding: 5vh 0 !important;
    }
    ._home._index ._d .banners li {
      aspect-ratio: 16/9;
    }
    ._home._index ._d .banners li * {
      display: block;
      width: 100%;
      height: 100%;
    }
    ._home._index ._d .banners img {
      object-fit: cover;
      border-radius: var(--radius-s);
    }
    ._home._index ._f {
      padding: 0;
    }
    ._home._index ._f :where(.c) {
      max-width: var(--width-max);
      margin-right: auto;
      margin-left: auto;
    }
    ._home._index ._f main {
      background-color: var(--initial-bgColor);
      padding-top: 5vh;
    }
    @container _container (min-width: 601px) {
      ._home._index ._f main {
        padding-top: 10vh;
      }
    }
    ._home._index ._f :where(h1, h2) {
      font-size: min(1.75rem, 5cqw);
      text-align: center;
      padding: 1em;
    }
    ._home._index ._f :where(h1, h2) * {
      display: block;
    }
    ._home._index ._f :where(h1, h2) i {
      font-size: 1.5em;
      color: var(--color-main);
      letter-spacing: 0.15em;
      text-index: 0.15em;
    }
    ._home._index ._f :where(h1, h2) b {
      font-size: small;
      font-weight: 700;
    }
    ._home._index ._f :where(h1) {
      padding-bottom: 0;
    }
    ._home._index ._f :where(h2) {
      margin-bottom: 2.5vh;
    }
    ._home._index ._f .svgPrefectures {
      max-width: var(--width-max-m);
      margin: 0 auto 5vh;
      display: block;
      padding: 0 5vw;
    }
    @container _container (max-width: 600px) {
      ._home._index ._f .svgPrefectures {
        display: none;
      }
    }
    ._home._index ._f .svgPrefectures .japan path {
      cursor: pointer;
      transition: 0.25s;
    }
    ._home._index ._f .svgPrefectures .japan path:not(.st4):hover {
      fill: var(--color-main) !important;
    }
    ._home._index ._f .svgPrefectures .japan path:not(.st4):is(g.active *) {
      fill: var(--color-main) !important;
    }
    ._home._index ._f .strPrefectures {
      max-width: var(--width-max);
      margin: 0 auto 5vh;
      padding: 1em;
    }
    ._home._index ._f .strPrefectures nav {
      margin-bottom: 1em;
    }
    ._home._index ._f .recommend {
      background-color: white;
      padding: 10vh 0;
    }
    ._home._index ._f .recommend ul {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
      gap: 1em;
      padding: 1em;
    }
    ._home._index ._f .recommend a {
      display: grid;
      grid-template-columns: auto 1fr;
      gap: 1em;
      -webkit-align-items: center;
      align-items: center;
      border: 1px solid var(--color-border-gray-thin);
    }
    ._home._index ._f .recommend a:hover {
      color: var(--color-main-on);
      background-color: var(--color-main);
      opacity: 1;
    }
    ._home._index ._f .recommend .image {
      width: 5em;
      aspect-ratio: 1;
    }
    ._home._index ._f .recommend .image img {
      width: 100%;
      height: 100%;
    }
    ._home._index ._f .notes {
      padding: 10vh 0;
    }
    ._home._index ._f .notes :where(h3.u)::before {
      font-family: "FontAwesome solid";
      vertical-align: baseline;
      display: inline-block;
      width: 2.5em;
      text-align: center;
    }
    ._home._index ._f .notes nav {
      padding: 1em;
    }
    ._home._index ._f .notes nav h3.u::before {
      content: "\f0ca";
    }
    ._home._index ._f .notes :where(.new, .feature) {
      margin: 5vh 0;
    }
    ._home._index ._f .notes .new h3.u::before {
      content: "\f52d";
    }
    ._home._index ._f .notes .new .u-btn {
      width: 300px;
      border-radius: 3em;
      padding: 1.5em;
      margin: 3em auto 0;
    }
    ._home._index ._f .notes .new .u-btn:hover {
      color: var(--color-main-on);
      background-color: var(--color-main);
      opacity: 1;
    }
    ._home._index ._f .notes .feature h3.u::before {
      content: "*";
    }
    /* _prefecture */
    ._prefecture._show ._d .search {
      container: _container/inline-size;
      position: relative;
      max-width: var(--width-max-s);
      margin-top: 2.5vh;
      margin-bottom: 2.5vh;
      margin-right: auto;
      margin-left: auto;
    }
    ._prefecture._show ._d .search form {
      display: grid;
      grid-template-columns: auto auto;
      gap: 0.5em;
      -webkit-justify-content: center;
      justify-content: center;
    }
    ._prefecture._show ._d .search [type=search] {
      width: 15em;
    }
    ._prefecture._show ._d .result {
      margin-top: 1em;
    }
    ._prefecture._show ._d .result .u-noResult {
      text-align: center;
    }
    ._prefecture._show ._d .result dl {
      background-color: white;
      border-radius: var(--radius-m);
      padding: 1em;
      margin: 1em 0;
    }
    @container _container (min-width: 601px) {
      ._prefecture._show ._d .result dl {
        display: grid;
        grid-template-columns: 4em 1fr;
        -webkit-align-items: center;
        align-items: center;
      }
    }
    ._prefecture._show ._d .result dt {
      font-weight: bold;
      font-size: 0.85em;
    }
    @container _container (max-width: 600px) {
      ._prefecture._show ._d .result dt {
        margin-bottom: 1em;
      }
    }
    @container _container (max-width: 600px) {
      ._prefecture._show ._f .lr {
        display: grid;
        grid-template-columns: 1fr;
      }
    }
    @container _container (min-width: 601px) {
      ._prefecture._show ._f .lr {
        display: grid;
        grid-template-columns: 1fr 1fr;
        -webkit-align-items: start;
        align-items: start;
      }
    }
    ._prefecture._show ._f .lr > section {
      container: _container/inline-size;
      position: relative;
      padding: 2.5vh 2.5cqw;
    }
    @container _container (max-width: 600px) {
      ._prefecture._show ._f .lr > section.line {
        order: -1;
      }
    }
    ._prefecture._show ._f h2 {
      margin-bottom: 1em;
    }
    ._prefecture._show ._f h2:is(.city *)::before {
      font-family: "FontAwesome solid";
      content: "\f5a0";
      vertical-align: baseline;
      margin-right: 0.35em;
    }
    ._prefecture._show ._f h2:is(.line *)::before {
      font-family: "FontAwesome solid";
      content: "\f239";
      vertical-align: baseline;
      margin-right: 0.35em;
    }
    /* _line */
    @media (min-width: 801px) {
      ._line._show ._d .u-list {
        display: none;
      }
    }
    @media (max-width: 800px) {
      ._line._show ._e {
        display: none;
      }
    }
    ._line._show ._f .station:has(.clinics) {
      padding-bottom: 2.5vh;
    }
    ._line._show ._f h2 {
      margin-bottom: 0.5em;
      position: sticky;
      top: var(--sticky-pageTop);
      z-index: 1;
    }
    ._line._show ._f h2 a {
      display: block;
      background-color: var(--initial-bgColor);
      border-bottom: 1px solid var(--color-border-gray);
      border-bottom-right-radius: var(--radius-s);
      border-bottom-left-radius: var(--radius-s);
      padding: 0.5em 1em;
    }
    ._line._show ._f h2 a:hover {
      color: var(--color-main-on);
      background-color: var(--color-main);
      opacity: 1;
    }
    ._line._show ._f h2 a::before {
      font-family: "FontAwesome solid";
      content: "\f14c";
      vertical-align: baseline;
      margin-right: 0.25em;
    }
    ._line._show ._f .clinic {
      container: _container/inline-size;
      position: relative;
      padding: 2.5vh 1em;
    }
    ._line._show ._f .clinic:not(:last-of-type) {
      border-bottom: 1px solid var(--color-border-gray);
    }
    ._line._show ._f .clinic header.u {
      -webkit-justify-content: space-between;
      justify-content: space-between;
      padding-right: 1em;
    }
    ._line._show ._f .clinic h3 {
      font-size: 1.25em;
    }
    ._line._show ._f .clinic .lr {
      display: grid;
      grid-template-columns: 1fr 30%;
      gap: 1em;
      -webkit-align-items: center;
      align-items: center;
    }
    ._line._show ._f .clinic p {
      font-size: 0.9em;
      line-height: 1.75;
    }
    ._line._show ._f .clinic img {
      width: 100%;
      aspect-ratio: 16/9;
      border-radius: var(--radius-m);
    }
    ._line._show ._f .u-btn {
      border-radius: 1.5em;
      padding: 0.75em 1.5em;
      margin: 2em auto;
    }
    ._line._show ._f .u-list {
      max-width: var(--width-max-s);
      margin-right: auto;
      margin-left: auto;
    }
    /* _ranking */
    ._ranking .clinic {
      container: _container/inline-size;
      position: relative;
      padding: 2.5vh 0;
      margin-bottom: 2.5vh;
    }
    ._ranking .clinic h2 {
      display: grid;
      grid-template-columns: 1.5em 1fr;
      -webkit-align-items: baseline;
      align-items: baseline;
      background-color: var(--initial-bgColor);
      border-bottom: 1px solid var(--color-border-gray);
      border-bottom-right-radius: var(--radius-s);
      border-bottom-left-radius: var(--radius-s);
      padding: 0.5em 0;
      margin-bottom: 0.5em;
      position: sticky;
      top: var(--sticky-pageTop);
      z-index: 1;
    }
    ._ranking .clinic h2 i {
      display: inline-block;
      text-align: center;
    }
    ._ranking .clinic .overview {
      padding: 1rem 0;
    }
    @container _container (min-width: 601px) {
      ._ranking .clinic .overview {
        display: grid;
        grid-template-columns: 1fr 40%;
        gap: 1em;
        -webkit-align-items: center;
        align-items: center;
      }
    }
    @container _container (max-width: 600px) {
      ._ranking .clinic .overview .l {
        margin-bottom: 2em;
      }
    }
    ._ranking .clinic .overview .categories:not(:empty) {
      display: -webkit-flex;
      -webkit-flex-wrap: wrap;
      -webkit-align-items: center;
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.25em;
      margin-bottom: 1em;
    }
    ._ranking .clinic .overview .categories li {
      font-size: 0.9em;
      background-color: whitesmoke;
      border-radius: var(--radius-s);
      padding: 0.35em 0.75em;
    }
    ._ranking .clinic .overview .payments {
      display: -webkit-flex;
      -webkit-flex-wrap: wrap;
      -webkit-align-items: center;
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.25em;
      margin-top: 1em;
    }
    ._ranking .clinic .overview .payments li {
      font-size: 0.7em;
      background-color: whitesmoke;
      border-radius: var(--radius-s);
      padding: 0.35em 0.75em;
    }
    ._ranking .clinic .overview .payments li:not(.enable) {
      opacity: 0.25;
    }
    ._ranking .clinic .overview .payments li:is(.enable) {
      color: var(--color-main-on);
      background-color: var(--color-main);
    }
    ._ranking .clinic .overview .props li {
      display: grid;
      grid-template-columns: auto 1fr;
      -webkit-align-items: center;
      align-items: center;
      padding: 0.5em 0;
    }
    ._ranking .clinic .overview .props li::before {
      display: inline-block;
      width: 2em;
      text-align: center;
      margin-right: 0.5em;
    }
    ._ranking .clinic .overview .props li.address::before {
      font-family: "FontAwesome solid";
      content: "\f3c5";
      vertical-align: baseline;
    }
    ._ranking .clinic .overview .props li.phone::before {
      font-family: "FontAwesome solid";
      content: "\f095";
      vertical-align: baseline;
    }
    ._ranking .clinic .overview .props li.director::before {
      font-family: "FontAwesome solid";
      content: "\f0f0";
      vertical-align: baseline;
    }
    ._ranking .clinic .overview .props li.director dl {
      display: -webkit-flex;
      -webkit-align-items: baseline;
      display: flex;
      align-items: baseline;
      gap: 0.25em;
    }
    ._ranking .clinic .overview .props li.director dt {
      font-size: 0.8em;
    }
    ._ranking .clinic .overview .props li.hp::before {
      font-family: "FontAwesome solid";
      content: "\f0c1";
      vertical-align: baseline;
    }
    ._ranking .clinic .overview .props li.hp a {
      display: block;
      color: var(--color-main);
    }
    ._ranking .clinic .overview .props li.hp a.small {
      font-size: xx-small;
      margin-top: 0.5em;
    }
    @container _container (max-width: 600px) {
      ._ranking .clinic .overview .image {
        aspect-ratio: 16/9;
      }
      ._ranking .clinic .overview .image:has([src*="/noimage"]) {
        display: none;
      }
    }
    @container _container (min-width: 601px) {
      ._ranking .clinic .overview .image {
        aspect-ratio: 4/3;
      }
    }
    ._ranking .clinic .overview .image img {
      width: 100%;
      height: 100%;
      border-radius: var(--radius-m);
    }
    ._ranking .clinic .description {
      font-size: 0.9em;
      line-height: 2;
      padding: 1rem;
    }
    ._ranking .clinic .description h3 {
      font-size: min(1.5em, 5.5cqw);
      margin-bottom: 0.75em;
    }
    ._ranking .clinic .description h3 :not(:first-child) {
      margin-top: 1.5em;
    }
    ._ranking .clinic .description h4 {
      font-size: min(1.25em, 4.5cqw);
      margin: 1.5em 0 0.75em;
    }
    ._ranking .clinic .description h5 {
      font-size: min(1.15em, 4.5cqw);
      margin: 1.5em 0 0.75em;
    }
    ._ranking .clinic .description p {
      line-height: 2;
      margin: 0.5em 0;
    }
    ._ranking .clinic section {
      padding: 1rem 0;
      margin: 1em 0;
    }
    ._ranking .clinic section.rating h3::before {
      font-family: "FontAwesome solid";
      content: "\f559";
      vertical-align: baseline;
      margin-right: 0.5em;
    }
    @container _container (min-width: 601px) {
      ._ranking .clinic section.rating .lr {
        display: grid;
        grid-template-columns: auto 1fr;
        gap: 1em;
        -webkit-justify-content: center;
        justify-content: center;
        -webkit-align-items: center;
        align-items: center;
      }
    }
    ._ranking .clinic section.rating .l {
      -webkit-justify-content: center;
      justify-content: center;
      padding: 5cqw;
    }
    @container _container (max-width: 600px) {
      ._ranking .clinic section.rating .l {
        margin-bottom: 1em;
      }
    }
    ._ranking .clinic section.rating .l .total {
      display: -webkit-flex;
      -webkit-align-items: baseline;
      display: flex;
      align-items: baseline;
      gap: 1em;
      font-size: 1.25em;
      letter-spacing: 0.1em;
    }
    ._ranking .clinic section.rating .l a {
      display: -webkit-flex;
      -webkit-justify-content: end;
      display: flex;
      justify-content: end;
      font-size: 0.75em;
      margin-top: 1.5em;
    }
    ._ranking .clinic section.rating .l a::before {
      font-family: "FontAwesome solid";
      content: "\f08e";
      vertical-align: baseline;
      margin-right: 0.35em;
    }
    ._ranking .clinic section.rating .r {
      font-size: 0.9em;
    }
    ._ranking .clinic section.rating .r li {
      display: grid;
      grid-template-columns: auto 1fr auto;
      -webkit-align-items: center;
      align-items: center;
      background-color: white;
      letter-spacing: 0.25em;
      padding: 0.25em 1.5em;
    }
    ._ranking .clinic section.rating .r li:not(:first-of-type) {
      margin-top: 0.25em;
    }
    ._ranking .clinic section.rating .r li * {
      white-space: nowrap;
    }
    ._ranking .clinic section.rating .r b {
      color: var(--color-main);
    }
    ._ranking .clinic section.rating .r b:is(.star1 *)::before {
      content: "\f005";
    }
    ._ranking .clinic section.rating .r b:is(.star1 *)::after {
      content: "\f005\f005\f005\f005";
    }
    ._ranking .clinic section.rating .r b:is(.star2 *)::before {
      content: "\f005\f005";
    }
    ._ranking .clinic section.rating .r b:is(.star2 *)::after {
      content: "\f005\f005\f005";
    }
    ._ranking .clinic section.rating .r b:is(.star3 *)::before {
      content: "\f005\f005\f005";
    }
    ._ranking .clinic section.rating .r b:is(.star3 *)::after {
      content: "\f005\f005";
    }
    ._ranking .clinic section.rating .r b:is(.star4 *)::before {
      content: "\f005\f005\f005\f005";
    }
    ._ranking .clinic section.rating .r b:is(.star4 *)::after {
      content: "\f005";
    }
    ._ranking .clinic section.rating .r b:is(.star5 *)::before {
      content: "\f005\f005\f005\f005\f005";
    }
    ._ranking .clinic section.rating .r b:is(.star5 *)::after {
      content: "";
    }
    ._ranking .clinic section.rating .r b::before {
      font-family: "FontAwesome solid";
      vertical-align: baseline;
      order: -2;
    }
    ._ranking .clinic section.rating .r b::after {
      font-family: "FontAwesome regular";
      vertical-align: baseline;
      order: -1;
      margin-right: 0.5em;
    }
    ._ranking .clinic section.rating .r i {
      display: block;
      width: 100%;
      height: 50%;
      border-radius: 2px;
      letter-spacing: 0;
      overflow: hidden;
    }
    ._ranking .clinic section.rating .r i::before {
      content: "";
      display: block;
      width: 100%;
      height: 100%;
      background: var(--color-main);
      border-radius: inherit;
    }
    ._ranking .clinic section.rating .r span {
      display: inline-block;
      width: 3em;
      font-weight: bold;
      letter-spacing: 0;
      text-align: right;
    }
    ._ranking .clinic section.access h3::before {
      font-family: "FontAwesome solid";
      content: "\f239";
      vertical-align: baseline;
      margin-right: 0.5em;
    }
    ._ranking .clinic section.access ol {
      display: -webkit-flex;
      -webkit-flex-wrap: wrap;
      display: flex;
      flex-wrap: wrap;
      gap: 0.25em 0.75em;
      padding-left: 1em;
      margin-bottom: 1.5em;
    }
    ._ranking .clinic section.access li {
      font-size: 0.9em;
    }
    ._ranking .clinic section.access li::before {
      font-family: "FontAwesome regular";
      content: "\f192";
      vertical-align: baseline;
      margin-right: 0.25em;
      font-size: x-small;
    }
    ._ranking .clinic section.access iframe {
      width: 100%;
      aspect-ratio: 16/9;
      border: none;
    }
    ._ranking .clinic section.opening h3::before {
      font-family: "FontAwesome solid";
      content: "\f133";
      vertical-align: baseline;
      margin-right: 0.5em;
    }
    ._ranking .clinic section.opening table {
      --min: 10cqw;
      grid-template-columns: 1fr repeat(calc(var(--colCount) - 1), auto);
    }
    ._ranking .clinic section.opening tbody {
      text-align: center;
    }
    ._ranking .clinic section.opening tbody :where(th, td) {
      font-size: min(1em, 4cqw);
      white-space: nowrap;
    }
    ._ranking .clinic .reviewTags:not(:empty) {
      display: -webkit-flex;
      -webkit-flex-wrap: wrap;
      display: flex;
      flex-wrap: wrap;
      gap: 0.5em;
      padding: 1em;
    }
    ._ranking .clinic .reviewTags li {
      font-size: 0.7em;
      color: gray;
    }
    ._ranking .clinic .reviewTags li::before {
      font-family: "FontAwesome solid";
      content: "#";
      vertical-align: baseline;
      margin-right: 0.15em;
    }
    /* _note */
    ._note-list {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
      gap: 2em 1em;
    }
    ._note-category {
      --color: var(--color-main);
      display: grid;
      -webkit-align-items: center;
      align-items: center;
      width: fit-content;
      font-weight: normal;
      font-size: 0.75em;
      color: var(--color);
      border: 1px solid var(--color);
      border-radius: 1.5em;
      padding: 0.5em 1.5em;
    }
    ._note {
      /**/
    }
    ._note._post {
      height: 100%;
      background-color: white;
      border-radius: var(--radius-m);
      padding: 1em;
    }
    ._note._post .image {
      margin-bottom: 1em;
    }
    ._note._post .image img {
      aspect-ratio: 16/9;
      border-radius: var(--radius-m);
    }
    ._note._post .image img[src*=noimage] {
      object-fit: contain;
      border: 1px solid var(--color-border-gray);
      padding: 1em;
    }
    ._note._post .text {
      margin-bottom: 1em;
    }
    ._note._post .text h3 {
      min-height: 2em;
      font-size: 1.1em;
      display: -webkit-box;
      -webkit-box-orient: vertical;
      -webkit-line-clamp: 2;
      overflow: hidden;
      margin-top: 0.75em;
    }
    ._note._post p {
      line-height: 1.5;
      display: -webkit-box;
      -webkit-box-orient: vertical;
      -webkit-line-clamp: 2;
      overflow: hidden;
    }
    @media (min-width: 801px) {
      ._note._index ._d .u-list {
        display: none;
      }
    }
    @media (max-width: 800px) {
      ._note._index ._e {
        display: none;
      }
    }
    ._note._show ._f h1 {
      font-size: min(3em, 7.5cqw);
      margin-bottom: 1.5em;
    }
    ._note._show ._f .generateIndex {
      container: _container/inline-size;
      position: relative;
      max-width: var(--width-max-m);
      margin-right: auto;
      margin-left: auto;
      font-size: min(1em, 4cqw);
      margin-bottom: 5vh;
    }
    ._note._show ._f .generateIndex ul {
      margin-bottom: 2.5vh;
    }
    @container _container (min-width: 601px) {
      ._note._show ._f .generateIndex ul {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0 1em;
      }
    }
    ._note._show ._f .generateIndex ul:empty {
      display: none;
    }
    ._note._show ._f .generateIndex ul li {
      margin-bottom: 2.5vh;
    }
    ._note._show ._f .generateIndex ul ul {
      display: none !important;
    }
    @container _container (min-width: 601px) {
      ._note._show ._f .generateIndex ul ul {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0 1em;
      }
    }
    ._note._show ._f .generateIndex ul ul li {
      padding-left: 1.5em;
      margin-bottom: 0;
    }
    ._note._show ._f .generateIndex a {
      display: -webkit-flex;
      -webkit-justify-content: space-between;
      display: flex;
      justify-content: space-between;
      border-bottom: 1px solid var(--color-border-gray);
      cursor: pointer;
      padding: 0.75em;
    }
    ._note._show ._f .generateIndex a:hover {
      color: var(--color-main);
    }
    ._note._show ._f .generateIndex a::after {
      font-family: "FontAwesome solid";
      content: "\f078";
      vertical-align: baseline;
    }
    ._note._show ._f .content {
      --color: var(--color-main);
      --on: white;
      font-size: min(1.1em, 4cqw);
      padding: 1em;
    }
    ._note._show ._f .content :where(h2, h3, h4, li) {
      letter-spacing: 0.1em;
    }
    ._note._show ._f .content h2 {
      font-size: min(1.5em, 5.5cqw);
      color: var(--on);
      background-color: var(--color);
      border-radius: var(--radius-m);
      text-align: center;
      padding: 1em;
      margin: 2em 0 1em;
    }
    ._note._show ._f .content h3 {
      font-size: min(1.35em, 5cqw);
      color: var(--color);
      border-bottom: 1px solid var(--color);
      padding: 0.75em 0;
      margin: 2em 0 0.75em;
    }
    ._note._show ._f .content h4 {
      font-size: min(1.25em, 4.5cqw);
      background-color: whitesmoke;
      border-radius: var(--radius-m);
      padding: 0.5em 1em;
      margin: 2em 0 0.5em;
    }
    ._note._show ._f .content p {
      line-height: 2.5;
      letteer-spacin: 0.05em;
    }
    ._note._show ._f .content :where(ol, ul) {
      margin: 2em 0;
    }
    ._note._show ._f .content :where(li) {
      display: grid;
      -webkit-justify-content: start;
      justify-content: start;
      counter-increment: i;
      padding-left: 2em;
      position: relative;
    }
    ._note._show ._f .content :where(li):not(:last-of-type) {
      margin-bottom: 2em;
    }
    ._note._show ._f .content :where(li)::before {
      content: counter(i);
      display: grid;
      -webkit-place-items: center;
      place-items: center;
      width: 1.5em;
      height: 1.5em;
      line-height: 1.5em;
      font-weight: bold;
      color: var(--on);
      background-color: var(--color);
      border-radius: 100%;
      position: absolute;
      top: 0;
    }
    ._note._show ._f .content ol {
      counter-reset: i;
    }
    ._note._show ._f .content ol li {
      counter-increment: i;
    }
    ._note._show ._f .content ol li::before {
      content: counter(i);
    }
    ._note._show ._f .content ul li::before {
      content: "〇";
      color: transparent;
    }
    ._note._show ._f .content strong {
      display: block;
      font-size: 1.1em;
      margin-bottom: 0.25em;
    }
    ._note._show ._f .content img {
      display: block;
      width: 100%;
      border-radius: var(--radius-m);
      margin: 2em 0;
    }
    ._note._show ._f .content table {
      container: _container/inline-size;
      position: relative;
      font-size: 0.9em;
      border: 1px solid var(--color);
      border-collapse: separate;
      border-radius: var(--radius-l);
      border-spacing: 0;
      margin: 2em 0;
    }
    ._note._show ._f .content tr:not(:last-of-type) :where(th, td) {
      border-bottom: 1px dashed var(--color);
    }
    ._note._show ._f .content :where(th, td) {
      padding: 0.75em;
    }
    ._note._show ._f .content th {
      font-weight: bold;
      color: var(--color);
      background-color: rgb(from var(--color) r g b/0.1);
    }
    /* _page */
    ._page ._f h1 {
      margin-bottom: 5vh;
    }
    ._page ._f section {
      margin-bottom: 5vh;
    }
    ._page ._f h2 {
      font-size: min(1.5em, 5.5cqw);
    }
    ._page ._f p {
      line-height: 1.75;
    }
    ._page ._f p:not(:last-child) {
      margin-bottom: 1.5em;
    }
    ._page ._f dl {
      margin-bottom: 1em;
    }
    ._page ._f dt {
      margin-bottom: 0.5em;
    }
    ._page ._f dd {
      padding-left: 1em;
    }
    ._page ._f ul {
      padding-left: 1.5em;
    }
    ._page ._f li {
      list-style-type: disc;
      margin: 0.5em 0;
    }
    ._page._privacy ._f address h3 {
      font-weight: normall;
      margin-bottom: 1em;
    }
    ._page._privacy ._f address dl {
      display: grid;
      grid-template-columns: 7em auto;
      margin: 0;
    }
    ._page._privacy ._f address a {
      color: var(--color-a);
    }
    ._page._contact ._f main {
      max-width: var(--width-max-m);
      margin-right: auto;
      margin-left: auto;
    }
    ._page._contact ._f .u-validation li {
      list-style: none;
    }
    ._page._contact ._f form {
      container: _container/inline-size;
      position: relative;
    }
    ._page._contact ._f form .req {
      --str: '必須';
      --color: orangered;
    }
    ._page._contact ._f form .any {
      --str: '任意';
      --color: dodgerblue;
    }
    ._page._contact ._f form dl {
      grid-template-columns: auto 1fr;
    }
    @container _container (max-width: 600px) {
      ._page._contact ._f form dt {
        display: -webkit-flex;
        -webkit-align-items: center;
        display: flex;
        align-items: center;
      }
    }
    @container _container (min-width: 601px) {
      ._page._contact ._f form dt {
        display: grid;
        grid-template-columns: 10em max-content;
        -webkit-align-items: center;
        align-items: center;
      }
    }
    ._page._contact ._f form dt::after {
      content: var(--str);
      display: inline-block;
      font-size: 0.8em;
      color: var(--color);
      border: 1px solid var(--color);
      border-radius: var(--radius-s);
      padding: 0.25em 0.5em;
      margin-left: 0.5em;
    }
    @container _container (max-width: 600px) {
      ._page._contact ._f form dd {
        padding-left: 0;
      }
    }
  }
}
