@layer theme {
  :root,
  :host {
    --font-mono:
      ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
      "Courier New", monospace;
    --color-black: #1d201f;
    --color-white: #fff;
    --spacing: 0.25rem;
    --breakpoint-2xl: 90rem;
    --text-xs: 0.75rem;
    --text-xs--line-height: calc(1/0.75);
    --text-sm: 0.875rem;
    --text-sm--line-height: calc(1.25/0.875);
    --text-base: 1rem;
    --text-base--line-height: 1.5;
    --text-lg: 1.125rem;
    --text-lg--line-height: calc(1.75/1.125);
    --text-xl: 1.25rem;
    --text-xl--line-height: calc(1.75/1.25);
    --text-2xl: 1.5rem;
    --text-2xl--line-height: calc(2/1.5);
    --text-4xl: 2.25rem;
    --text-4xl--line-height: calc(2.5/2.25);
    --font-weight-normal: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
    --tracking-normal: 0em;
    --radius-xs: 0.125rem;
    --radius-sm: 0.25rem;
    --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
    --default-transition-duration: 0.6s;
    --default-transition-timing-function: ease;
    --default-font-family: var(--font-noto-sans-jp);
    --default-mono-font-family: var(--font-mono);
    --color-pure-white: #fff;
    --color-pure-black: #000;
    --color-brown: #2b2321;
    --color-dark-brown: #392000;
    --color-linen: #eeeae5;
    --color-antique-white: #e1ddc7;
    --color-pale-goldenrod: #d8d3b1;
    --color-gainsboro: #f2f2f2;
    --color-sage: #bcb49b;
    --color-charcoal: #696d6a;
    --color-carbon: #020202;
    --color-silver-gray: #cfcfcf;
    --color-danger: #d30000;
    --default-text-color: var(--color-black);
    --default-bg-color: var(--color-linen);
    --font-noto-sans-jp: "Noto Sans JP", sans-serif;
    --font-noto-serif-jp: "Noto Serif JP", serif;
    --font-shippori-mincho: "Shippori Mincho", serif;
    --font-garamond: "Cormorant Garamond", serif;
    --text-10: 0.625rem;
    --text-11: 0.6875rem;
    --text-13: 0.8125rem;
    --text-15: 0.9375rem;
    --text-17: 1.0625rem;
    --text-22: 1.375rem;
    --ease-out-sine: cubic-bezier(0.61, 1, 0.88, 1);
    --ease-out-quad: cubic-bezier(0.5, 1, 0.89, 1);
    --ease-out-circ: cubic-bezier(0, 0.55, 0.45, 1);
    --ease-out-back: cubic-bezier(0.34, 1.56, 0.64, 1);
    --z-header: 10;
    --pi: 3.1415;
    --spacing-negative-full: calc(50% - 50vi);
    --infinity: calc(infinity * 1px);
    --mask-image-1: linear-gradient(
      -25deg,
      transparent,
      transparent 42%,
      #00000005 43%,
      #00000014 45%,
      #0003 50%,
      #0000004d 55%,
      #00000080 60%,
      #000000b3 65%,
      #000c 70%,
      #000000e6 75%,
      #000 80%,
      #000 85%,
      #000
    );
    --mask-image-2: linear-gradient(
      90deg,
      transparent,
      transparent 42%,
      #ffffff05 43%,
      #ffffff14 45%,
      #fff3 50%,
      #ffffff4d 55%,
      #ffffff80 60%,
      #ffffffb3 65%,
      #fffc 70%,
      #ffffffe6 75%,
      #fff 80%,
      #fff 85%,
      #fff
    );
  }
}
@layer base {
  *,
  :after,
  :before,
  ::backdrop {
    box-sizing: border-box;
    border: 0 solid;
    margin: 0;
    padding: 0;
  }
  ::file-selector-button {
    box-sizing: border-box;
    border: 0 solid;
    margin: 0;
    padding: 0;
  }
  html,
  :host {
    -webkit-text-size-adjust: 100%;
    -moz-tab-size: 4;
    tab-size: 4;
    line-height: 1.5;
    font-family: var(
      --default-font-family,
      ui-sans-serif,
      system-ui,
      sans-serif,
      "Apple Color Emoji",
      "Segoe UI Emoji",
      "Segoe UI Symbol",
      "Noto Color Emoji"
    );
    font-feature-settings: var(--default-font-feature-settings, normal);
    font-variation-settings: var(--default-font-variation-settings, normal);
    -webkit-tap-highlight-color: transparent;
  }
  hr {
    height: 0;
    color: inherit;
    border-top-width: 1px;
  }
  abbr:where([title]) {
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted;
  }
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    font-size: inherit;
    font-weight: inherit;
  }
  a {
    color: inherit;
    -webkit-text-decoration: inherit;
    text-decoration: inherit;
  }
  b,
  strong {
    font-weight: bolder;
  }
  code,
  kbd,
  samp,
  pre {
    font-family: var(
      --default-mono-font-family,
      ui-monospace,
      SFMono-Regular,
      Menlo,
      Monaco,
      Consolas,
      "Liberation Mono",
      "Courier New",
      monospace
    );
    font-feature-settings: var(--default-mono-font-feature-settings, normal);
    font-variation-settings: var(
      --default-mono-font-variation-settings,
      normal
    );
    font-size: 1em;
  }
  small {
    font-size: 80%;
  }
  sub,
  sup {
    vertical-align: baseline;
    font-size: 75%;
    line-height: 0;
    position: relative;
  }
  sub {
    bottom: -0.25em;
  }
  sup {
    top: -0.5em;
  }
  table {
    text-indent: 0;
    border-color: inherit;
    border-collapse: collapse;
  }
  :-moz-focusring {
    outline: auto;
  }
  progress {
    vertical-align: baseline;
  }
  summary {
    display: list-item;
  }
  ol,
  ul,
  menu {
    list-style: none;
  }
  img,
  svg,
  video,
  canvas,
  audio,
  iframe,
  embed,
  object {
    vertical-align: middle;
    display: block;
  }
  img,
  video {
    max-width: 100%;
    height: auto;
  }
  button,
  input,
  select,
  optgroup,
  textarea {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    opacity: 1;
    background-color: #0000;
    border-radius: 0;
  }
  ::file-selector-button {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    opacity: 1;
    background-color: #0000;
    border-radius: 0;
  }
  :where(select:is([multiple],[size])) optgroup {
    font-weight: bolder;
  }
  :where(select:is([multiple],[size])) optgroup option {
    padding-inline-start: 20px;
  }
  ::file-selector-button {
    margin-inline-end: 4px;
  }
  ::placeholder {
    opacity: 1;
  }
  @supports (not ((-webkit-appearance: -apple-pay-button))) or
    (contain-intrinsic-size: 1px) {
    ::placeholder {
      color: currentColor;
    }
    @supports (color: color-mix(in lab, red, red)) {
      ::placeholder {
        color: color-mix(in oklab, currentcolor 50%, transparent);
      }
    }
  }
  textarea {
    resize: vertical;
  }
  ::-webkit-search-decoration {
    -webkit-appearance: none;
  }
  ::-webkit-date-and-time-value {
    min-height: 1lh;
    text-align: inherit;
  }
  ::-webkit-datetime-edit {
    display: inline-flex;
  }
  ::-webkit-datetime-edit-fields-wrapper {
    padding: 0;
  }
  ::-webkit-datetime-edit {
    padding-block: 0;
  }
  ::-webkit-datetime-edit-year-field {
    padding-block: 0;
  }
  ::-webkit-datetime-edit-month-field {
    padding-block: 0;
  }
  ::-webkit-datetime-edit-day-field {
    padding-block: 0;
  }
  ::-webkit-datetime-edit-hour-field {
    padding-block: 0;
  }
  ::-webkit-datetime-edit-minute-field {
    padding-block: 0;
  }
  ::-webkit-datetime-edit-second-field {
    padding-block: 0;
  }
  ::-webkit-datetime-edit-millisecond-field {
    padding-block: 0;
  }
  ::-webkit-datetime-edit-meridiem-field {
    padding-block: 0;
  }
  :-moz-ui-invalid {
    box-shadow: none;
  }
  button,input:where([type=button],[type=reset],[type=submit]) {
    -webkit-appearance: button;
    -moz-appearance: button;
    appearance: button;
  }
  ::file-selector-button {
    -webkit-appearance: button;
    -moz-appearance: button;
    appearance: button;
  }
  ::-webkit-inner-spin-button {
    height: auto;
  }
  ::-webkit-outer-spin-button {
    height: auto;
  }
  [hidden]:where(:not([hidden="until-found"])) {
    display: none !important;
  }
  *,
  :before,
  :after {
    min-width: 0;
  }
  :focus:not(:focus-visible) {
    outline: none;
  }
  :root {
    -webkit-text-size-adjust: 100%;
    -moz-text-size-adjust: 100%;
    text-size-adjust: 100%;
    background-color: var(--default-bg-color);
    scrollbar-gutter: stable;
    color: var(--default-text-color);
    font-feature-settings: "palt";
    -webkit-hyphens: auto;
    hyphens: auto;
  }
  body {
    line-break: strict;
    min-height: 100dvh;
    text-rendering: optimizeSpeed;
    overflow-wrap: anywhere;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    line-height: 1.5;
  }
  body:before {
    opacity: 0;
    z-index: calc(var(--z-header) - 1);
    transition: opacity 0.6s var(--ease-out-sine);
    background-color: #02020266;
    position: fixed;
    top: 0;
    left: 0;
  }
  @supports (color: color-mix(in lab, red, red)) {
    body:before {
      background-color: color-mix(
        in oklab,
        var(--color-carbon) 40%,
        transparent
      );
    }
  }
  body:before {
    pointer-events: none;
    content: "";
    width: 100%;
    height: 100%;
  }
  body.is-submitting {
    cursor: wait;
  }
  body.is-submitting * {
    pointer-events: none !important;
  }
  body.is-fixed {
    width: calc(100% - var(--scrollbar-width));
    overflow: hidden;
  }
  body.is-fixed:before {
    opacity: 1;
  }
  body.is-fixed:has(dialog[open]):before {
    z-index: calc(var(--z-header) + 1);
  }
  body:has(:modal) {
    overflow: hidden;
  }
  ol,
  ul,
  li {
    list-style-type: "";
  }
  a {
    text-decoration: none;
  }
  a:not([class]) {
    color: currentColor;
    -webkit-text-decoration-skip-ink: auto;
    text-decoration-skip-ink: auto;
  }
  button,
  input,
  textarea,
  select {
    vertical-align: middle;
    cursor: pointer;
    outline: unset;
    border: unset;
    border-radius: unset;
    background-color: unset;
    color: unset;
    font: unset;
    letter-spacing: unset;
    text-align: unset;
    text-transform: unset;
  }
  img,
  svg,
  picture,
  video,
  canvas,
  model,
  audio,
  iframe,
  embed,
  object {
    max-width: 100%;
    display: block;
  }
  address {
    font-style: unset;
  }
  input[type="text"] {
    font-size: 1rem;
  }
  label[for] {
    cursor: pointer;
  }
  summary {
    cursor: pointer;
    display: block;
  }
  summary::-webkit-details-marker {
    display: none;
  }
  dialog {
    border: unset;
    background-color: unset;
    padding: unset;
    width: unset;
    max-width: unset;
    height: unset;
    max-height: unset;
    overflow: unset;
    color: unset;
  }
  dialog::backdrop {
    display: none;
  }
  [hidden="until-found"] {
    content-visibility: hidden;
  }
  @media (prefers-reduced-motion: reduce) {
    *,
    :before,
    :after {
      scroll-behavior: auto !important;
      transition-duration: 0.01ms !important;
      animation-duration: 0.01ms !important;
      animation-iteration-count: 1 !important;
    }
  }
  [x-cloak] {
    display: none !important;
  }
  [id] {
    scroll-margin-top: var(--header-height);
  }
  .grecaptcha-badge {
    visibility: hidden;
    z-index: calc(var(--z-header) - 1);
  }
  body:has(.wpcf7) .grecaptcha-badge {
    visibility: visible;
  }
}
@layer components {
  .c-grain-filter-bg {
    position: relative;
    overflow: hidden;
    background-color: var(--color-linen);
  }
  .c-grain-filter-bg::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: 0.18;
    background-image: var(--grain-noise-image);
    background-size: 160px 160px;
    background-repeat: repeat;
    mix-blend-mode: multiply;
  }
  .c-grain-filter-bg::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: 0.08;
    background-image:
      radial-gradient(circle at 15% 20%, #0000001e 0.7px, transparent 1.2px),
      radial-gradient(circle at 75% 45%, #0000001a 0.8px, transparent 1.3px),
      radial-gradient(circle at 55% 75%, #ffffff24 1px, transparent 1.5px);
    background-size: 6px 6px, 7px 7px, 8px 8px;
    mix-blend-mode: soft-light;
  }
  .c-intro-main-title {
    font-family: var(--font-noto-sans-jp);
    font-size: clamp(3rem, 5vw, 3.75rem);
    row-gap: 0.875rem;
  }
  .c-intro-heading-sub {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    font-family: var(--font-noto-sans-jp);
    font-size: 0.95rem;
    font-weight: 500;
    letter-spacing: 0.08em;
    line-height: 1;
    white-space: nowrap;
  }
  .c-intro-heading-sub::before {
    content: "";
    width: 0.75rem;
    height: 1px;
    background: currentColor;
    opacity: 0.9;
  }
  .c-intro-inner {
    margin-top: 12.5rem;
    padding-inline: clamp(2.5rem, 8vw, 12.5rem);
  }
  .c-intro-copy-p {
    font-family: var(--font-noto-sans-jp);
    font-size: 1rem;
    line-height: 2.1;
  }
  .c-intro-copy {
    max-width: 640px;
  }


  .c-section-ja-heading {
    font-family: var(--font-shippori-mincho);
    letter-spacing: 0.12em;
  }
  .about-itoga-support-copy {
    font-family: var(--font-noto-sans-jp);
    font-size: 14px !important;
    line-height: 1.9;
    letter-spacing: 0.12em;
    color: #555;
    opacity: 1;
  }
  .c-section-heading-gap {
    row-gap: 22px;
  }

  .c-access-map .c-access-map-gunma-fill {
    fill: #141414;
  }
  .access-map-embed,
  .access-step-map {
    width: 100%;
    border-radius: 0.5rem;
    overflow: hidden;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.12);
    aspect-ratio: 4 / 3;
    background: #f5f3ef;
  }
  .access-map-embed iframe,
  .access-step-map iframe {
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
  }
  .access-directions {
    row-gap: 2.5rem;
  }
  .access-directions-walk {
    padding-top: 2.5rem;
    border-top: 1px solid rgba(0, 0, 0, 0.14);
  }
  .access-directions-title {
    font-family: var(--font-garamond);
    font-size: clamp(1.65rem, 2.2vw, 2.25rem);
    line-height: 1.15;
    letter-spacing: 0.04em;
  }
  .access-route-meta {
    margin-top: 0.85rem;
    font-family: var(--font-noto-sans-jp);
    font-size: 0.95rem;
    line-height: 1.85;
    letter-spacing: 0.04em;
    opacity: 0.9;
  }
  .access-step {
    display: grid;
    gap: 0.75rem;
    align-content: start;
  }
  .access-step-title {
    font-family: var(--font-noto-sans-jp);
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.7;
    letter-spacing: 0.02em;
  }
  .access-step-copy,
  .access-step-copy-en {
    font-family: var(--font-noto-sans-jp);
    font-size: 0.95rem;
    line-height: 1.9;
    letter-spacing: 0.04em;
  }
  .access-step-copy-en {
    opacity: 0.92;
  }
  .access-step-map {
    margin-top: 0.35rem;
  }
  @media screen and (max-width: 768px) {
    .access-directions {
      row-gap: 1.75rem;
    }
    .access-directions-walk {
      padding-top: 1.75rem;
    }
    .access-directions-title {
      font-size: 1.4rem;
      line-height: 1.2;
    }
    .access-route-meta {
      margin-top: 0.6rem;
      font-size: 0.82rem;
      line-height: 1.75;
    }
    .about-itoga-support-copy {
      font-size: 20px;
    }
    .access-step-title {
      font-size: 0.95rem;
      line-height: 1.65;
    }
    .access-step-copy,
    .access-step-copy-en {
      font-size: 0.82rem;
      line-height: 1.75;
    }
    .c-intro-inner {
      margin-top: 7.5rem;
      padding-inline: 1.25rem;
    }
    .c-intro-copy {
      margin-top: 1.75rem;
    }
    .c-intro-copy-p {
      font-size: 0.95rem;
      line-height: 1.9;
    }
    .c-intro-main-title {
      font-size: 32px;
      row-gap: 0.625rem;
    }
    .c-intro-heading-sub {
      font-size: 0.82rem;
      gap: 0.5rem;
      letter-spacing: 0.06em;
    }
    .c-intro-heading-sub::before {
      width: 0.6rem;
    }
    .c-section-heading-gap > span[aria-hidden="true"] {
      white-space: normal !important;
      line-height: 1.08;
    }
    .c-section-ja-heading {
      white-space: normal !important;
      letter-spacing: 0.08em;
      line-height: 1.5;
    }
    .access-tab-descriptions {
      align-items: center;
      text-align: center;
    }
  }
  @media screen and (min-width: 768px) {
    .about-itoga-support-copy {
      font-size: 19px !important;
    }
  }
  @media (scripting: enabled) {
    .c-access-map .c-access-map-pin {
      transform-box: fill-box;
      transform-origin: 50%;
      opacity: 0;
      transition:
        scale 1s var(--ease-out-back),
        opacity 0.6s ease;
      transition-delay: 0.6s;
      scale: 0;
    }
    @media screen and (min-width: 768px) {
      .c-access-map .c-access-map-pin {
        transition-delay: 1.2s;
      }
    }
    .c-access-map .c-access-map-pin .c-access-map-pin-inner {
      transform-box: fill-box;
      transform-origin: 50%;
      animation: 1.4s infinite alternate bullet-scale-out;
    }
    .c-access-map .c-access-map-line {
      opacity: 0;
      transition:
        stroke-dashoffset 1s var(--ease-out-circ),
        opacity 0.8s var(--ease-out-sine);
      stroke-dasharray: 107;
      stroke-dashoffset: 107px;
    }
    @media screen and (min-width: 768px) {
      .c-access-map .c-access-map-line {
        stroke-dasharray: 330;
        stroke-dashoffset: 330px;
        transition:
          stroke-dashoffset 1.5s var(--ease-out-circ),
          opacity 1.6s var(--ease-out-sine);
      }
    }
    .c-access-map .c-access-map-gunma-fill {
      fill: #0000;
      transition: fill 1s var(--ease-out-sine);
      transition-delay: 0.6s;
    }
    @media screen and (min-width: 768px) {
      .c-access-map .c-access-map-gunma-fill {
        transition-delay: 1.2s;
      }
    }
    .c-access-map[data-inview] .c-access-map-pin {
      opacity: 1;
      scale: 1;
    }
    .c-access-map[data-inview] .c-access-map-line {
      stroke-dashoffset: 0;
      opacity: 1;
    }
    .c-access-map[data-inview] .c-access-map-gunma-fill {
      fill: #141414;
    }
  }
}
@layer utilities {
  .u-section-space-inner {
    max-width: var(--inner-width, var(--breakpoint-2xl));
    margin-left: auto;
    margin-right: auto;
    container-type: inline-size;
  }
  .\@container {
    container-type: inline-size;
  }
  .u-icon-circle {
    --icon-color: var(--color-black);
    --icon-bg: transparent;
    transition: background-color 0.65s var(--ease-out-quad);
    box-sizing: content-box;
    border: 1px solid;
    place-content: center;
    display: grid;
    position: relative;
  }
  @supports (color: color-mix(in lab, red, red)) {
    .u-icon-circle {
      border-color: color-mix(in oklab, currentcolor 50%, transparent);
    }
  }
  .u-icon-circle {
    border-radius: var(--infinity);
    background-color: var(--icon-bg);
  }
  .u-icon-circle[data-color="white"] {
    --icon-color: var(--color-pure-white);
  }
  .u-icon-circle svg {
    transition: color 0.65s var(--ease-out-quad);
    color: var(--icon-color);
  }
  @media (any-hover: hover) {
    .u-icon-circle:is(a:hover .u-icon-circle,button:hover .u-icon-circle,summary:hover .u-icon-circle) {
      --icon-color: var(--color-pure-white);
      --icon-bg: var(--color-black);
    }
    .u-icon-circle:is(a:hover .u-icon-circle,button:hover .u-icon-circle,summary:hover .u-icon-circle)[data-color=white] {
      --icon-color: var(--color-pure-black);
      --icon-bg: var(--color-pure-white);
    }
    .u-icon-circle:is(a:hover .u-icon-circle,button:hover .u-icon-circle,summary:hover .u-icon-circle):before {
      animation: 1s linear forwards pulse-animation;
    }
  }
  .pointer-events-none {
    pointer-events: none;
  }
  .sr-only {
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    position: absolute;
    overflow: hidden;
  }
  .absolute {
    position: absolute;
  }
  .fixed {
    position: fixed;
  }
  .relative {
    position: relative;
  }
  .sticky {
    position: sticky;
  }
  .inset-0 {
    inset: calc(var(--spacing) * 0);
  }
  .inset-x-0 {
    inset-inline: calc(var(--spacing) * 0);
  }
  .-top-0\.25 {
    top: calc(var(--spacing) * -0.25);
  }
  .-top-1 {
    top: calc(var(--spacing) * -1);
  }
  .top-0 {
    top: calc(var(--spacing) * 0);
  }
  .top-1\.5 {
    top: calc(var(--spacing) * 1.5);
  }
  .top-6\.5 {
    top: calc(var(--spacing) * 6.5);
  }
  .top-23 {
    top: calc(var(--spacing) * 23);
  }
  .top-66 {
    top: calc(var(--spacing) * 66);
  }
  .top-75\.5 {
    top: calc(var(--spacing) * 75.5);
  }
  .top-81 {
    top: calc(var(--spacing) * 81);
  }
  .top-\[min\(calc\(\(var\(--vh\)-var\(--drawer-container-height\)\)\/2\*-1\)\,-60px\)\] {
    top: min(
      calc((var(--vh) - var(--drawer-container-height)) / 2 * -1),
      -60px
    );
  }
  .top-full {
    top: 100%;
  }
  .-right-0\.5 {
    right: calc(var(--spacing) * -0.5);
  }
  .right-0 {
    right: calc(var(--spacing) * 0);
  }
  .right-5 {
    right: calc(var(--spacing) * 5);
  }
  .right-6 {
    right: calc(var(--spacing) * 6);
  }
  .right-23 {
    right: calc(var(--spacing) * 23);
  }
  .right-\[--fluid\(20px\,40px\)\] {
    right: clamp(1.25rem, -0.1786rem + 2.9762svw, 2.5rem);
  }
  .right-\[min\(calc\(50\/360\*100cqi\)\,50px\)\] {
    right: min(13.8889cqi, 50px);
  }
  .right-\[min\(calc\(113\/360\*100cqi\)\,115px\)\] {
    right: min(31.3889cqi, 115px);
  }
  .right-\[min\(calc\(134\/360\*100cqi\)\,134px\)\] {
    right: min(37.2222cqi, 134px);
  }
  .-bottom-12\.5 {
    bottom: calc(var(--spacing) * -12.5);
  }
  .-bottom-px {
    bottom: -1px;
  }
  .bottom-0 {
    bottom: calc(var(--spacing) * 0);
  }
  .bottom-5 {
    bottom: calc(var(--spacing) * 5);
  }
  .bottom-6 {
    bottom: calc(var(--spacing) * 6);
  }
  .bottom-\[calc\(-48\/360\*100cqi\)\] {
    bottom: -13.3333cqi;
  }
  .left-0 {
    left: calc(var(--spacing) * 0);
  }
  .left-5 {
    left: calc(var(--spacing) * 5);
  }
  .left-15 {
    left: calc(var(--spacing) * 15);
  }
  .z-1,
  .z-\[1\] {
    z-index: 1;
  }
  .z-\[calc\(var\(--z-header\)-2\)\] {
    z-index: calc(var(--z-header) - 2);
  }
  .order-1 {
    order: 1;
  }
  .order-2 {
    order: 2;
  }
  .order-3 {
    order: 3;
  }
  .order-4 {
    order: 4;
  }
  .order-6 {
    order: 6;
  }
  .order-7 {
    order: 7;
  }
  .order-first {
    order: -9999;
  }
  .order-last {
    order: 9999;
  }
  .col-span-2 {
    grid-column: span 2 / span 2;
  }
  .container {
    width: 100%;
  }
  @media (min-width: 25rem) {
    .container {
      max-width: 25rem;
    }
  }
  @media (min-width: 40rem) {
    .container {
      max-width: 40rem;
    }
  }
  @media (min-width: 48rem) {
    .container {
      max-width: 48rem;
    }
  }
  @media (min-width: 64rem) {
    .container {
      max-width: 64rem;
    }
  }
  @media (min-width: 80rem) {
    .container {
      max-width: 80rem;
    }
  }
  @media (min-width: 90rem) {
    .container {
      max-width: 90rem;
    }
  }
  .m-auto {
    margin: auto;
  }
  .mx-\(--spacing-negative-full\) {
    margin-inline: var(--spacing-negative-full);
  }
  .mx-2\.5 {
    margin-inline: calc(var(--spacing) * 2.5);
  }
  .mx-6 {
    margin-inline: calc(var(--spacing) * 6);
  }
  .mx-auto {
    margin-inline: auto;
  }
  .my-12 {
    margin-block: calc(var(--spacing) * 12);
  }
  .u-list-marker-disc {
    --marker-size: 0.2em;
  }
  .u-list-marker-disc > li {
    grid-template-columns: max-content 1fr;
    display: grid;
  }
  .u-list-marker-disc>li:before {
    margin-top: calc((1lh - var(--marker-size)) / 2);
    margin-bottom: calc((1lh - var(--marker-size)) / 2);
    border-radius: var(--infinity);
    aspect-ratio: 1;
    width: var(--marker-size);
    content: "";
    background-color: currentColor;
    display: inline-block;
  }
  .-mt-1 {
    margin-top: calc(var(--spacing) * -1);
  }
  .-mt-1\.5 {
    margin-top: calc(var(--spacing) * -1.5);
  }
  .mt-1 {
    margin-top: calc(var(--spacing) * 1);
  }
  .mt-1\.75 {
    margin-top: calc(var(--spacing) * 1.75);
  }
  .mt-2 {
    margin-top: calc(var(--spacing) * 2);
  }
  .mt-2\.5 {
    margin-top: calc(var(--spacing) * 2.5);
  }
  .mt-3 {
    margin-top: calc(var(--spacing) * 3);
  }
  .mt-4 {
    margin-top: calc(var(--spacing) * 4);
  }
  .mt-4\.5 {
    margin-top: calc(var(--spacing) * 4.5);
  }
  .mt-5 {
    margin-top: calc(var(--spacing) * 5);
  }
  .mt-6 {
    margin-top: calc(var(--spacing) * 6);
  }
  .mt-7 {
    margin-top: calc(var(--spacing) * 7);
  }
  .mt-7\.5 {
    margin-top: calc(var(--spacing) * 7.5);
  }
  .mt-8 {
    margin-top: calc(var(--spacing) * 8);
  }
  .mt-9 {
    margin-top: calc(var(--spacing) * 9);
  }
  .mt-10 {
    margin-top: calc(var(--spacing) * 10);
  }
  .mt-12 {
    margin-top: calc(var(--spacing) * 12);
  }
  .mt-12\.5 {
    margin-top: calc(var(--spacing) * 12.5);
  }
  .mt-15 {
    margin-top: calc(var(--spacing) * 15);
  }
  .mt-18 {
    margin-top: calc(var(--spacing) * 18);
  }
  .mt-20 {
    margin-top: calc(var(--spacing) * 20);
  }
  .mt-25 {
    margin-top: calc(var(--spacing) * 25);
  }
  .mt-50 {
    margin-top: calc(var(--spacing) * 50);
  }
  .mt-\[calc\(-56\/360\*100cqi\)\] {
    margin-top: -15.5556cqi;
  }
  .mr-\(--spacing-negative-full\) {
    margin-right: var(--spacing-negative-full);
  }
  .mr-4 {
    margin-right: calc(var(--spacing) * 4);
  }
  .mr-5 {
    margin-right: calc(var(--spacing) * 5);
  }
  .mr-\[calc\(30\/360\*100cqi\)\] {
    margin-right: 8.33333cqi;
  }
  .mb-0\.5 {
    margin-bottom: calc(var(--spacing) * 0.5);
  }
  .ml-\[calc\(-6\/360\*100cqi\)\] {
    margin-left: -1.66667cqi;
  }
  .ml-\[calc\(-7\/360\*100cqi\)\] {
    margin-left: -1.94444cqi;
  }
  .ml-\[calc\(-50\/360\*100cqi\)\] {
    margin-left: -13.8889cqi;
  }
  .ml-\[calc\(30\/360\*100cqi\)\] {
    margin-left: 8.33333cqi;
  }
  .ml-\[calc\(49\/360\*100cqi\)\] {
    margin-left: 13.6111cqi;
  }
  .ml-auto {
    margin-left: auto;
  }
  .box-content {
    box-sizing: content-box;
  }
  .u-toggle-text {
    --text-show-y: 0;
    --text-hide-y: 1;
    --text-show-opacity: 1;
    --text-hide-opacity: 0;
    grid-template-areas: "text";
    display: grid;
    overflow: hidden;
  }
  .u-toggle-text > span {
    translate: 0 calc(var(--text-show-y) * 100%);
    opacity: var(--text-show-opacity);
    transition:
      opacity 0.8s var(--ease-out-sine),
      translate 0.8s ease;
    grid-area: text;
  }
  .u-toggle-text>span:nth-of-type(2) {
    translate: 0 calc(var(--text-hide-y) * 100%);
    opacity: var(--text-hide-opacity);
  }
  @media (any-hover: hover) {
    .u-toggle-text:is(a:hover .u-toggle-text,button:hover .u-toggle-text,summary:hover .u-toggle-text) {
      --text-show-y: -1;
      --text-hide-y: 0;
      --text-show-opacity: 0;
      --text-hide-opacity: 1;
    }
  }
  .u-list-marker-note > li {
    grid-template-columns: max-content 1fr;
    display: grid;
  }
  .u-list-marker-note>li:before {
    content: "窶ｻ";
  }
  .line-clamp-1 {
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    display: -webkit-box;
    overflow: hidden;
  }
  .block {
    display: block;
  }
  .contents {
    display: contents;
  }
  .flex {
    display: flex;
  }
  .grid {
    display: grid;
  }
  .hidden {
    display: none;
  }
  .inline-block {
    display: inline-block;
  }
  .aspect-\[300\/340\] {
    aspect-ratio: 300/340;
  }
  .aspect-\[300\/350\] {
    aspect-ratio: 300/350;
  }
  .aspect-\[320\/230\] {
    aspect-ratio: 320/230;
  }
  .aspect-\[360\/250\] {
    aspect-ratio: 360/250;
  }
  .aspect-\[420\/252\] {
    aspect-ratio: 420/252;
  }
  .aspect-\[560\/395\] {
    aspect-ratio: 560/395;
  }
  .aspect-\[620\/440\] {
    aspect-ratio: 620/440;
  }
  .aspect-\[720\/515\] {
    aspect-ratio: 720/515;
  }
  .aspect-\[800\/570\] {
    aspect-ratio: 800/570;
  }
  .size-5 {
    width: calc(var(--spacing) * 5);
    height: calc(var(--spacing) * 5);
  }
  .size-5\.5 {
    width: calc(var(--spacing) * 5.5);
    height: calc(var(--spacing) * 5.5);
  }
  .size-7\.5 {
    width: calc(var(--spacing) * 7.5);
    height: calc(var(--spacing) * 7.5);
  }
  .size-fit {
    width: fit-content;
    height: fit-content;
  }
  .size-full {
    width: 100%;
    height: 100%;
  }
  .h-75 {
    height: calc(var(--spacing) * 75);
  }
  .h-225 {
    height: calc(var(--spacing) * 225);
  }
  .h-\[calc\(14\/20\*100\%\)\] {
    height: 70%;
  }
  .h-\[calc\(100\%\+20px\)\] {
    height: calc(100% + 20px);
  }
  .h-\[calc\(100\%\+30px\)\] {
    height: calc(100% + 30px);
  }
  .h-\[calc\(100\%\+60px\)\] {
    height: calc(100% + 60px);
  }
  .h-\[max\(var\(--vh\)\,calc\(var\(--drawer-container-height\)\+120px\)\)\] {
    height: max(var(--vh), calc(var(--drawer-container-height) + 120px));
  }
  .h-auto {
    height: auto;
  }
  .h-fit {
    height: fit-content;
  }
  .h-full {
    height: 100%;
  }
  .h-px {
    height: 1px;
  }
  .h-screen {
    height: 100vh;
  }
  .w-2\.5 {
    width: calc(var(--spacing) * 2.5);
  }
  .w-30 {
    width: calc(var(--spacing) * 30);
  }
  .w-42\.5 {
    width: calc(var(--spacing) * 42.5);
  }
  .w-55 {
    width: calc(var(--spacing) * 55);
  }
  .w-\[calc\(66\/360\*100cqi\)\] {
    width: 18.3333cqi;
  }
  .w-\[calc\(90\/360\*100cqi\)\] {
    width: 25cqi;
  }
  .w-\[calc\(120\/360\*100cqi\)\] {
    width: 33.3333cqi;
  }
  .w-\[calc\(125\/360\*100cqi\)\] {
    width: 34.7222cqi;
  }
  .w-\[calc\(155\/360\*100cqi\)\] {
    width: 43.0556cqi;
  }
  .w-\[calc\(170\/360\*100cqi\)\] {
    width: 47.2222cqi;
  }
  .w-\[calc\(180\/360\*100cqi\)\] {
    width: 50cqi;
  }
  .w-\[calc\(300\/360\*100cqi\)\] {
    width: 83.3333cqi;
  }
  .w-\[calc\(331\/360\*100cqi\)\] {
    width: 91.9444cqi;
  }
  .w-fit {
    width: fit-content;
  }
  .w-full {
    width: 100%;
  }
  .w-px {
    width: 1px;
  }
  .max-w-75 {
    max-width: calc(var(--spacing) * 75);
  }
  .max-w-89\.5 {
    max-width: calc(var(--spacing) * 89.5);
  }
  .max-w-90 {
    max-width: calc(var(--spacing) * 90);
  }
  .max-w-95 {
    max-width: calc(var(--spacing) * 95);
  }
  .max-w-105 {
    max-width: calc(var(--spacing) * 105);
  }
  .max-w-143 {
    max-width: calc(var(--spacing) * 143);
  }
  .max-w-153\.5 {
    max-width: calc(var(--spacing) * 153.5);
  }
  .min-w-5 {
    min-width: calc(var(--spacing) * 5);
  }
  @media (scripting: enabled) {
    .u-inview-text-fadeup {
      opacity: 0;
      transition:
        translate 1s var(--ease-out-quad),
        opacity 1s ease;
      transition-delay: var(--delay, 0s);
      translate: 0 5px;
    }
    .u-inview-text-fadeup[data-inview] {
      opacity: 1;
      translate: 0;
    }
  }
  .scale-100 {
    --tw-scale-x: 100%;
    --tw-scale-y: 100%;
    --tw-scale-z: 100%;
    scale: var(--tw-scale-x) var(--tw-scale-y);
  }
  .scale-103 {
    --tw-scale-x: 103%;
    --tw-scale-y: 103%;
    --tw-scale-z: 103%;
    scale: var(--tw-scale-x) var(--tw-scale-y);
  }
  @media (scripting: enabled) {
    .u-inview-img-filter {
      filter: blur(4px) brightness(1.3);
      transition:
        filter 1s var(--ease-out-sine),
        scale 1.6s var(--ease-out-circ);
      will-change: filter;
      transform: translateZ(0) scale(1.05);
    }
    @media screen and (min-width: 768px) {
      .u-inview-img-filter {
        filter: blur(6px) brightness(1.5);
        transition:
          filter 1.2s var(--ease-out-sine),
          scale 2s var(--ease-out-circ);
      }
    }
    .u-inview-img-filter[data-inview] {
      filter: blur() brightness();
      scale: 1;
    }
  }
  .-rotate-21 {
    rotate: -21deg;
  }
  .rotate-21 {
    rotate: 21deg;
  }
  .rotate-180 {
    rotate: 180deg;
  }
  @media (scripting: enabled) {
    .u-inview-mask-linear {
      -webkit-mask-image: var(--mask-image-1);
      mask-image: var(--mask-image-1);
      filter: blur(12px) brightness(2);
      transition:
        mask-position var(--mask-duration, 1.9s) var(--ease-out-sine),
        filter var(--filter-duration, 1.6s) var(--ease-out-sine);
      will-change: filter;
      transform: translateZ(0);
      -webkit-mask-position: 100% 100%;
      mask-position: 100% 100%;
      -webkit-mask-repeat: no-repeat;
      mask-repeat: no-repeat;
    }
    @media screen and (min-width: 768px) {
      .u-inview-mask-linear {
        transition:
          mask-position var(--mask-duration, 2.1s) var(--ease-out-sine),
          filter var(--filter-duration, 1.8s) var(--ease-out-sine);
      }
    }
    .u-inview-mask-linear[data-inview] {
      filter: blur() brightness();
      -webkit-mask-position: 0 0;
      mask-position: 0 0;
    }
  }
  .cursor-pointer {
    cursor: pointer;
  }
  .auto-cols-\[20rem\] {
    grid-auto-columns: 20rem;
  }
  .auto-cols-\[21rem\] {
    grid-auto-columns: 21rem;
  }
  .grid-flow-col {
    grid-auto-flow: column;
  }
  .auto-rows-fr {
    grid-auto-rows: minmax(0, 1fr);
  }
  .grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .grid-cols-\[1fr_110px\] {
    grid-template-columns: 1fr 110px;
  }
  .grid-cols-\[1fr_max-content\] {
    grid-template-columns: 1fr max-content;
  }
  .grid-cols-\[1fr_max-content_1fr\] {
    grid-template-columns: 1fr max-content 1fr;
  }
  .grid-cols-\[auto_1fr\] {
    grid-template-columns: auto 1fr;
  }
  .grid-cols-\[max-content_1fr\] {
    grid-template-columns: max-content 1fr;
  }
  .grid-cols-\[max-content_1fr_max-content\] {
    grid-template-columns: max-content 1fr max-content;
  }
  .grid-cols-\[max-content_auto\] {
    grid-template-columns: max-content auto;
  }
  .grid-cols-\[repeat\(2\,max-content\)\] {
    grid-template-columns: repeat(2, max-content);
  }
  .grid-cols-\[repeat\(3\,max-content\)\] {
    grid-template-columns: repeat(3, max-content);
  }
  .flex-wrap {
    flex-wrap: wrap;
  }
  .place-content-center {
    place-content: center;
  }
  .place-items-center {
    place-items: center;
  }
  .items-center {
    align-items: center;
  }
  .items-end {
    align-items: flex-end;
  }
  .justify-between {
    justify-content: space-between;
  }
  .justify-center {
    justify-content: center;
  }
  .gap-2\.5 {
    gap: calc(var(--spacing) * 2.5);
  }
  .gap-4 {
    gap: calc(var(--spacing) * 4);
  }
  .gap-6 {
    gap: calc(var(--spacing) * 6);
  }
  .gap-10 {
    gap: calc(var(--spacing) * 10);
  }
  .gap-11 {
    gap: calc(var(--spacing) * 11);
  }
  .gap-12 {
    gap: calc(var(--spacing) * 12);
  }
  .gap-13 {
    gap: calc(var(--spacing) * 13);
  }
  .gap-14 {
    gap: calc(var(--spacing) * 14);
  }
  .gap-x-0\.5 {
    column-gap: calc(var(--spacing) * 0.5);
  }
  .gap-x-1 {
    column-gap: calc(var(--spacing) * 1);
  }
  .gap-x-1\.5 {
    column-gap: calc(var(--spacing) * 1.5);
  }
  .gap-x-2 {
    column-gap: calc(var(--spacing) * 2);
  }
  .gap-x-2\.5 {
    column-gap: calc(var(--spacing) * 2.5);
  }
  .gap-x-3 {
    column-gap: calc(var(--spacing) * 3);
  }
  .gap-x-4 {
    column-gap: calc(var(--spacing) * 4);
  }
  .gap-x-4\.5 {
    column-gap: calc(var(--spacing) * 4.5);
  }
  .gap-x-5 {
    column-gap: calc(var(--spacing) * 5);
  }
  .gap-x-6 {
    column-gap: calc(var(--spacing) * 6);
  }
  .gap-x-\[--fluid\(1\.25rem\,1\.875rem\)\] {
    column-gap: clamp(1.25rem, 0.5357rem + 1.4881svw, 1.875rem);
  }
  .gap-x-\[calc\(16\/400\*100cqi\)\] {
    column-gap: 4cqi;
  }
  .gap-x-\[calc\(77\/360\*100cqi\)\] {
    column-gap: 21.3889cqi;
  }
  .gap-y-2\.5 {
    row-gap: calc(var(--spacing) * 2.5);
  }
  .gap-y-4 {
    row-gap: calc(var(--spacing) * 4);
  }
  .gap-y-5 {
    row-gap: calc(var(--spacing) * 5);
  }
  .gap-y-10 {
    row-gap: calc(var(--spacing) * 10);
  }
  .self-end {
    align-self: flex-end;
  }
  .justify-self-end {
    justify-self: flex-end;
  }
  .overflow-clip {
    overflow: clip;
  }
  .overflow-hidden {
    overflow: hidden;
  }
  .overflow-x-clip {
    overflow-x: clip;
  }
  .overflow-y-auto {
    overflow-y: auto;
  }
  .rounded-full {
    border-radius: 3.40282e38px;
  }
  .rounded-sm {
    border-radius: var(--radius-sm);
  }
  .rounded-xs {
    border-radius: var(--radius-xs);
  }
  .rounded-tr-sm {
    border-top-right-radius: var(--radius-sm);
  }
  .border {
    border-style: var(--tw-border-style);
    border-width: 1px;
  }
  .border-t {
    border-top-style: var(--tw-border-style);
    border-top-width: 1px;
  }
  .border-r {
    border-right-style: var(--tw-border-style);
    border-right-width: 1px;
  }
  .border-b {
    border-bottom-style: var(--tw-border-style);
    border-bottom-width: 1px;
  }
  .border-black {
    border-color: var(--color-black);
  }
  .border-black\/50 {
    border-color: #1d201f80;
  }
  @supports (color: color-mix(in lab, red, red)) {
    .border-black\/50 {
      border-color: color-mix(in oklab, var(--color-black) 50%, transparent);
    }
  }
  .border-charcoal\/20 {
    border-color: #696d6a33;
  }
  @supports (color: color-mix(in lab, red, red)) {
    .border-charcoal\/20 {
      border-color: color-mix(in oklab, var(--color-charcoal) 20%, transparent);
    }
  }
  .border-current\/40 {
    border-color: currentColor;
  }
  @supports (color: color-mix(in lab, red, red)) {
    .border-current\/40 {
      border-color: color-mix(in oklab, currentcolor 40%, transparent);
    }
  }
  .border-sage {
    border-color: var(--color-sage);
  }
  .border-white\/15 {
    border-color: #ffffff26;
  }
  @supports (color: color-mix(in lab, red, red)) {
    .border-white\/15 {
      border-color: color-mix(in oklab, var(--color-white) 15%, transparent);
    }
  }
  .bg-antique-white {
    background-color: var(--color-antique-white);
  }
  .bg-black {
    background-color: var(--color-black);
  }
  .bg-brown {
    background-color: var(--color-brown);
  }
  .bg-charcoal\/20 {
    background-color: #696d6a33;
  }
  @supports (color: color-mix(in lab, red, red)) {
    .bg-charcoal\/20 {
      background-color: color-mix(
        in oklab,
        var(--color-charcoal) 20%,
        transparent
      );
    }
  }
  .bg-current,
  .bg-current\/20 {
    background-color: currentColor;
  }
  .bg-linen {
    background-color: var(--color-linen);
  }
  .bg-pure-black {
    background-color: var(--color-pure-black);
  }
  .bg-pure-black\/50 {
    background-color: #00000080;
  }
  @supports (color: color-mix(in lab, red, red)) {
    .bg-pure-black\/50 {
      background-color: color-mix(
        in oklab,
        var(--color-pure-black) 50%,
        transparent
      );
    }
  }
  .bg-pure-white\/15 {
    background-color: #ffffff26;
  }
  @supports (color: color-mix(in lab, red, red)) {
    .bg-pure-white\/15 {
      background-color: color-mix(
        in oklab,
        var(--color-pure-white) 15%,
        transparent
      );
    }
  }
  .bg-pure-white\/20 {
    background-color: #fff3;
  }
  @supports (color: color-mix(in lab, red, red)) {
    .bg-pure-white\/20 {
      background-color: color-mix(
        in oklab,
        var(--color-pure-white) 20%,
        transparent
      );
    }
  }
  .bg-sage {
    background-color: var(--color-sage);
  }
  .bg-transparent {
    background-color: #0000;
  }
  .bg-white\/20 {
    background-color: #fff3;
  }
  @supports (color: color-mix(in lab, red, red)) {
    .bg-white\/20 {
      background-color: color-mix(
        in oklab,
        var(--color-white) 20%,
        transparent
      );
    }
  }
  .bg-linear-\[currentColor_0_0\] {
    --tw-gradient-position: currentColor 0 0;
    background-image: linear-gradient(
      var(--tw-gradient-stops, currentColor 0 0)
    );
  }
  .bg-linear-\[currentColor_50\%\,transparent_50\%\] {
    --tw-gradient-position: currentColor 50%, transparent 50%;
    background-image: linear-gradient(
      var(--tw-gradient-stops, currentColor 50%, transparent 50%)
    );
  }
  .u-text-under-line {
    background-image: linear-gradient(currentColor 0 0);
    background-position: 0 100%;
    background-repeat: no-repeat;
    background-size: 100% 1px;
  }
  .bg-\[image\:var\(--bg-img-paper\)\] {
    background-image: var(--bg-img-paper);
  }
  .mask-\(--mask-image-1\) {
    -webkit-mask-image: var(--mask-image-1);
    mask-image: var(--mask-image-1);
  }
  .mask-\(--mask-image-2\) {
    -webkit-mask-image: var(--mask-image-2);
    mask-image: var(--mask-image-2);
  }
  .bg-size-\[0\%_1px\] {
    background-size: 0% 1px;
  }
  .bg-size-\[1px_4px\] {
    background-size: 1px 4px;
  }
  .bg-size-\[1440px_1014px\] {
    background-size: 1440px 1014px;
  }
  .bg-bottom-right {
    background-position: 100% 100%;
  }
  .bg-no-repeat {
    background-repeat: no-repeat;
  }
  .bg-repeat {
    background-repeat: repeat;
  }
  .bg-repeat-y {
    background-repeat: repeat-y;
  }
  .mask-size-\[350\%_100\%\] {
    -webkit-mask-size: 350% 100%;
    mask-size: 350% 100%;
  }
  .mask-size-\[350\%_350\%\] {
    -webkit-mask-size: 350% 350%;
    mask-size: 350% 350%;
  }
  .mask-size-\[400\%_400\%\] {
    -webkit-mask-size: 400% 400%;
    mask-size: 400% 400%;
  }
  .mask-position-\[0_0\] {
    -webkit-mask-position: 0 0;
    mask-position: 0 0;
  }
  .mask-position-\[80\%_80\%\] {
    -webkit-mask-position: 80% 80%;
    mask-position: 80% 80%;
  }
  .mask-no-repeat {
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
  }
  .object-cover {
    object-fit: cover;
  }
  .p-4 {
    padding: calc(var(--spacing) * 4);
  }
  .px-3 {
    padding-inline: calc(var(--spacing) * 3);
  }
  .px-3\.5 {
    padding-inline: calc(var(--spacing) * 3.5);
  }
  .px-4 {
    padding-inline: calc(var(--spacing) * 4);
  }
  .px-6 {
    padding-inline: calc(var(--spacing) * 6);
  }
  .px-\[--fluid\(0\.75rem\,0rem\)\] {
    padding-inline: clamp(0rem, 1.6071rem + -1.7857svw, 0.75rem);
  }
  .px-\[--fluid\(1\.25rem\,6\.25rem\)\] {
    padding-inline: clamp(1.25rem, -4.4643rem + 11.9048svw, 6.25rem);
  }
  .px-\[--fluid\(1\.25rem\,7\.5rem\)\] {
    padding-inline: clamp(1.25rem, -5.8929rem + 14.881svw, 7.5rem);
  }
  .px-\[--fluid\(1\.25rem\,9\.375rem\)\] {
    padding-inline: clamp(1.25rem, -8.0357rem + 19.3452svw, 9.375rem);
  }
  .px-\[--fluid\(1\.25rem\,9rem\)\] {
    padding-inline: clamp(1.25rem, -7.6071rem + 18.4524svw, 9rem);
  }
  .px-\[--fluid\(2\.5rem\,12\.5rem\)\] {
    padding-inline: clamp(2.5rem, -8.9286rem + 23.8095svw, 12.5rem);
  }
  .px-\[min\(calc\(34\/400\*100vw\)\,34px\)\] {
    padding-inline: min(8.5vw, 34px);
  }
  .py-1\.5 {
    padding-block: calc(var(--spacing) * 1.5);
  }
  .py-2 {
    padding-block: calc(var(--spacing) * 2);
  }
  .py-2\.5 {
    padding-block: calc(var(--spacing) * 2.5);
  }
  .py-4 {
    padding-block: calc(var(--spacing) * 4);
  }
  .py-5 {
    padding-block: calc(var(--spacing) * 5);
  }
  .py-25 {
    padding-block: calc(var(--spacing) * 25);
  }
  .pt-0\.25 {
    padding-top: calc(var(--spacing) * 0.25);
  }
  .pt-1\.5 {
    padding-top: calc(var(--spacing) * 1.5);
  }
  .pt-2\.25 {
    padding-top: calc(var(--spacing) * 2.25);
  }
  .pt-4 {
    padding-top: calc(var(--spacing) * 4);
  }
  .pt-5 {
    padding-top: calc(var(--spacing) * 5);
  }
  .pt-8 {
    padding-top: calc(var(--spacing) * 8);
  }
  .pt-20 {
    padding-top: calc(var(--spacing) * 20);
  }
  .pt-\[calc\(115\/840\*100vh\)\] {
    padding-top: 13.6905vh;
  }
  .pt-\[var\(--header-height\)\] {
    padding-top: var(--header-height);
  }
  .pr-2 {
    padding-right: calc(var(--spacing) * 2);
  }
  .pr-2\.5 {
    padding-right: calc(var(--spacing) * 2.5);
  }
  .pr-5 {
    padding-right: calc(var(--spacing) * 5);
  }
  .pr-7 {
    padding-right: calc(var(--spacing) * 7);
  }
  .pr-\[--fluid\(0\.9375rem\,8\.125rem\)\] {
    padding-right: clamp(0.9375rem, -7.2768rem + 17.1131svw, 8.125rem);
  }
  .pb-0\.5 {
    padding-bottom: calc(var(--spacing) * 0.5);
  }
  .pb-1\.25 {
    padding-bottom: calc(var(--spacing) * 1.25);
  }
  .pb-2\.75 {
    padding-bottom: calc(var(--spacing) * 2.75);
  }
  .pb-3 {
    padding-bottom: calc(var(--spacing) * 3);
  }
  .pb-7 {
    padding-bottom: calc(var(--spacing) * 7);
  }
  .pb-8 {
    padding-bottom: calc(var(--spacing) * 8);
  }
  .pb-10 {
    padding-bottom: calc(var(--spacing) * 10);
  }
  .pb-12 {
    padding-bottom: calc(var(--spacing) * 12);
  }
  .pb-15 {
    padding-bottom: calc(var(--spacing) * 15);
  }
  .pb-16 {
    padding-bottom: calc(var(--spacing) * 16);
  }
  .pl-1 {
    padding-left: calc(var(--spacing) * 1);
  }
  .pl-2\.5 {
    padding-left: calc(var(--spacing) * 2.5);
  }
  .pl-3 {
    padding-left: calc(var(--spacing) * 3);
  }
  .pl-6 {
    padding-left: calc(var(--spacing) * 6);
  }
  .pl-\[--fluid\(1\.5rem\,10rem\)\] {
    padding-left: clamp(1.5rem, -8.2143rem + 20.2381svw, 10rem);
  }
  .text-center {
    text-align: center;
  }
  .text-right {
    text-align: right;
  }
  .font-garamond {
    font-family: var(--font-garamond);
  }
  .font-noto-serif-jp {
    font-family: var(--font-noto-serif-jp);
  }
  .font-shippori-mincho {
    font-family: var(--font-shippori-mincho);
    line-height: 1.9;
  }
  .text-2xl {
    font-size: var(--text-2xl);
    line-height: var(--tw-leading, var(--text-2xl--line-height));
  }
  .text-4xl {
    font-size: var(--text-4xl);
    line-height: var(--tw-leading, var(--text-4xl--line-height));
  }
  .text-base {
    font-size: var(--text-base);
    line-height: var(--tw-leading, var(--text-base--line-height));
  }
  .text-lg {
    font-size: var(--text-lg);
    line-height: var(--tw-leading, var(--text-lg--line-height));
  }
  .text-sm {
    font-size: var(--text-sm);
    line-height: var(--tw-leading, var(--text-sm--line-height));
  }
  .text-xl {
    font-size: var(--text-xl);
    line-height: var(--tw-leading, var(--text-xl--line-height));
  }
  .text-xs {
    font-size: var(--text-xs);
    line-height: var(--tw-leading, var(--text-xs--line-height));
  }
  .text-10 {
    font-size: var(--text-10);
  }
  .text-11 {
    font-size: var(--text-11);
  }
  .text-13 {
    font-size: var(--text-13);
  }
  .text-15 {
    font-size: var(--text-15);
  }
  .text-17 {
    font-size: var(--text-17);
  }
  .text-\[1\.625rem\] {
    font-size: 1.625rem;
  }
  .text-\[length\:--fluid\(1\.25rem\,1\.375rem\)\] {
    font-size: clamp(1.25rem, 1.1071rem + 0.2976svw, 1.375rem);
  }
  .text-\[length\:--fluid\(1\.125rem\,1rem\)\] {
    font-size: clamp(1rem, 1.2679rem + -0.2976svw, 1.125rem);
  }
  .text-\[length\:--fluid\(1\.375rem\,1\.5rem\)\] {
    font-size: clamp(1.375rem, 1.2321rem + 0.2976svw, 1.5rem);
  }
  .text-\[length\:--fluid\(1\.375rem\,1\.75rem\)\] {
    font-size: clamp(1.375rem, 0.9464rem + 0.8929svw, 1.75rem);
  }
  .text-\[length\:--fluid\(1\.625rem\,2rem\)\] {
    font-size: clamp(1.625rem, 1.1964rem + 0.8929svw, 2rem);
  }
  .text-\[length\:--fluid\(1rem\,1\.125rem\)\] {
    font-size: clamp(1rem, 0.8571rem + 0.2976svw, 1.125rem);
  }
  .text-\[length\:--fluid\(2\.75rem\,3\.25rem\)\] {
    font-size: clamp(2.75rem, 2.1786rem + 1.1905svw, 3.25rem);
  }
  .text-\[length\:--fluid\(3\.5rem\,4\.875rem\)\] {
    font-size: clamp(3.5rem, 1.9286rem + 3.2738svw, 4.875rem);
  }
  .text-\[length\:--fluid\(3\.75rem\,5\.625rem\)\] {
    font-size: clamp(3.75rem, 1.6071rem + 4.4643svw, 5.625rem);
  }
  .text-\[length\:--fluid\(4\.25rem\,6\.25rem\)\] {
    font-size: clamp(4.25rem, 1.9643rem + 4.7619svw, 6.25rem);
  }
  .leading-\[1\.4\] {
    --tw-leading: 1.4;
    line-height: 1.4;
  }
  .leading-\[1\.6\] {
    --tw-leading: 1.6;
    line-height: 1.6;
  }
  .leading-\[1\.7\] {
    --tw-leading: 1.7;
    line-height: 1.7;
  }
  .leading-\[1\.8\] {
    --tw-leading: 1.8;
    line-height: 1.8;
  }
  .leading-\[1\.85\] {
    --tw-leading: 1.85;
    line-height: 1.85;
  }
  .leading-\[2\.3\] {
    --tw-leading: 2.3;
    line-height: 2.3;
  }
  .leading-none {
    --tw-leading: 1;
    line-height: 1;
  }
  .font-medium {
    --tw-font-weight: var(--font-weight-medium);
    font-weight: var(--font-weight-medium);
  }
  .font-semibold {
    --tw-font-weight: var(--font-weight-semibold);
    font-weight: var(--font-weight-semibold);
  }
  .tracking-\[0\.08em\] {
    --tw-tracking: 0.08em;
    letter-spacing: 0.08em;
  }
  .tracking-\[0\.12em\] {
    --tw-tracking: 0.12em;
    letter-spacing: 0.12em;
  }
  .u-auto-phrase {
    word-break: keep-all;
    overflow-wrap: anywhere;
  }
  .text-ellipsis {
    text-overflow: ellipsis;
  }
  .whitespace-nowrap {
    white-space: nowrap;
  }
  .text-black {
    color: var(--color-black);
  }
  .text-charcoal {
    color: var(--color-charcoal);
  }
  .text-pure-white {
    color: var(--color-pure-white);
  }
  .text-white {
    color: var(--color-white);
  }
  .opacity-50 {
    opacity: 0.5;
  }
  .opacity-70 {
    opacity: 0.7;
  }
  .opacity-80 {
    opacity: 0.8;
  }
  .brightness-100 {
    --tw-brightness: brightness(100%);
    filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,)
      var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,)
      var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
  }
  .brightness-130 {
    --tw-brightness: brightness(130%);
    filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,)
      var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,)
      var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
  }
  .drop-shadow-\[0px_0px_20px_var\(--color-pure-black\)\] {
    --tw-drop-shadow-size: drop-shadow(
      0px 0px 20px var(--tw-drop-shadow-color, var(--color-pure-black))
    );
    --tw-drop-shadow: var(--tw-drop-shadow-size);
    filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,)
      var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,)
      var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
  }
  .drop-shadow-\[0px_0px_30px_rgba\(0\,0\,0\,0\.3\)\] {
    --tw-drop-shadow-size: drop-shadow(
      0px 0px 30px var(--tw-drop-shadow-color, #0000004d)
    );
    --tw-drop-shadow: var(--tw-drop-shadow-size);
    filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,)
      var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,)
      var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
  }
  .transition-\[background-color\,color\] {
    transition-property: background-color, color;
    transition-timing-function: var(
      --tw-ease,
      var(--default-transition-timing-function)
    );
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }
  .transition-\[background-color\] {
    transition-property: background-color;
    transition-timing-function: var(
      --tw-ease,
      var(--default-transition-timing-function)
    );
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }
  .transition-\[background-size\] {
    transition-property: background-size;
    transition-timing-function: var(
      --tw-ease,
      var(--default-transition-timing-function)
    );
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }
  .transition-\[color\,background-color\] {
    transition-property: color, background-color;
    transition-timing-function: var(
      --tw-ease,
      var(--default-transition-timing-function)
    );
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }
  .transition-\[mask-position\] {
    transition-property: -webkit-mask-position, mask-position;
    transition-timing-function: var(
      --tw-ease,
      var(--default-transition-timing-function)
    );
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }
  .transition-\[scale\] {
    transition-property: scale;
    transition-timing-function: var(
      --tw-ease,
      var(--default-transition-timing-function)
    );
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }
  .transition-\[translate\] {
    transition-property: translate;
    transition-timing-function: var(
      --tw-ease,
      var(--default-transition-timing-function)
    );
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }
  .transition-opacity {
    transition-property: opacity;
    transition-timing-function: var(
      --tw-ease,
      var(--default-transition-timing-function)
    );
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }
  .transition-transform {
    transition-property: transform, translate, scale, rotate;
    transition-timing-function: var(
      --tw-ease,
      var(--default-transition-timing-function)
    );
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }
  .delay-100 {
    transition-delay: 0.1s;
  }
  .delay-200 {
    transition-delay: 0.2s;
  }
  .delay-1600 {
    transition-delay: 1.6s;
  }
  .duration-\(--duration\) {
    --tw-duration: var(--duration);
    transition-duration: var(--duration);
  }
  .duration-400 {
    --tw-duration: 0.4s;
    transition-duration: 0.4s;
  }
  .duration-450 {
    --tw-duration: 0.45s;
    transition-duration: 0.45s;
  }
  .duration-600 {
    --tw-duration: 0.6s;
    transition-duration: 0.6s;
  }
  .duration-650 {
    --tw-duration: 0.65s;
    transition-duration: 0.65s;
  }
  .duration-700 {
    --tw-duration: 0.7s;
    transition-duration: 0.7s;
  }
  .duration-800 {
    --tw-duration: 0.8s;
    transition-duration: 0.8s;
  }
  .duration-850 {
    --tw-duration: 0.85s;
    transition-duration: 0.85s;
  }
  .duration-1300 {
    --tw-duration: 1.3s;
    transition-duration: 1.3s;
  }
  .duration-1500 {
    --tw-duration: 1.5s;
    transition-duration: 1.5s;
  }
  .duration-1600 {
    --tw-duration: 1.6s;
    transition-duration: 1.6s;
  }
  .duration-1800 {
    --tw-duration: 1.8s;
    transition-duration: 1.8s;
  }
  .duration-3000 {
    --tw-duration: 3s;
    transition-duration: 3s;
  }
  .duration-3200 {
    --tw-duration: 3.2s;
    transition-duration: 3.2s;
  }
  .duration-3600 {
    --tw-duration: 3.6s;
    transition-duration: 3.6s;
  }
  .ease-in-out {
    --tw-ease: var(--ease-in-out);
    transition-timing-function: var(--ease-in-out);
  }
  .ease-out-circ {
    --tw-ease: var(--ease-out-circ);
    transition-timing-function: var(--ease-out-circ);
  }
  .ease-out-quad {
    --tw-ease: var(--ease-out-quad);
    transition-timing-function: var(--ease-out-quad);
  }
  .ease-out-sine {
    --tw-ease: var(--ease-out-sine);
    transition-timing-function: var(--ease-out-sine);
  }
  .\[--delay\:0\.15s\] {
    --delay: 0.15s;
  }
  .\[--duration\:0\.6s\] {
    --duration: 0.6s;
  }
  .\[--mask-duration\:1\.8s\] {
    --mask-duration: 1.8s;
  }
  .\[--mask-duration\:2\.4s\] {
    --mask-duration: 2.4s;
  }
  .\[grid-area\:1\/1\/2\/2\] {
    grid-area: 1/1/2/2;
  }
  .\[grid-area\:1\/2\/2\/3\] {
    grid-area: 1/2/2/3;
  }
  .\[transition\:filter_2s_ease\,scale_3\.3s_ease\] {
    transition:
      filter 2s,
      scale 3.3s;
  }
  .\[transition\:opacity_0\.6s_ease\,translate_1s_ease\,rotate_0\.8s_ease\] {
    transition:
      opacity 0.6s,
      translate 1s,
      rotate 0.8s;
  }
  .\[transition\:opacity_0\.6s_ease_0\.1s\,translate_1s_ease_0\.1s\,rotate_0\.8s_ease_0\.1s\] {
    transition:
      opacity 0.6s 0.1s,
      translate 1s 0.1s,
      rotate 0.8s 0.1s;
  }
  .\[transition\:opacity_0\.6s_ease_0\.2s\,translate_1s_ease_0\.2s\,rotate_0\.8s_ease_0\.2s\] {
    transition:
      opacity 0.6s 0.2s,
      translate 1s 0.2s,
      rotate 0.8s 0.2s;
  }
  .\[transition\:opacity_0\.75s_ease\,translate_1\.2s_var\(--ease-out-quad\)\] {
    transition:
      opacity 0.75s ease,
      translate 1.2s var(--ease-out-quad);
  }
  .\[transition\:opacity_1s_ease\,translate_1\.6s_var\(--ease-out-circ\)\] {
    transition:
      opacity 1s ease,
      translate 1.6s var(--ease-out-circ);
  }
  .\[transition\:rotate_1\.2s_var\(--ease-in-out\)\,opacity_0\.8s_ease\] {
    transition:
      rotate 1.2s var(--ease-in-out),
      opacity 0.8s ease;
  }
  .\[transition\:scale_1\.9s_var\(--ease-out-circ\)\,filter_1\.2s_var\(--ease-out-sine\)\] {
    transition:
      scale 1.9s var(--ease-out-circ),
      filter 1.2s var(--ease-out-sine);
  }
  .grid-area-\[gallery\] {
    grid-area: gallery;
  }
  .grid-area-\[item\] {
    grid-area: item;
  }
  .grid-area-\[main-nav\] {
    grid-area: main-nav;
  }
  .grid-area-\[other\] {
    grid-area: other;
  }
  .grid-area-\[sub-nav\] {
    grid-area: sub-nav;
  }
  .writing-vertical {
    writing-mode: vertical-rl;
  }
  :is(.\*\:\[grid-area\:1\/1\] > *) {
    grid-area: 1/1;
  }
  @media (hover: hover) {
    .group-hover\:scale-103:is(:where(.group):hover *) {
      --tw-scale-x: 103%;
      --tw-scale-y: 103%;
      --tw-scale-z: 103%;
      scale: var(--tw-scale-x) var(--tw-scale-y);
    }
    .group-hover\:scale-105:is(:where(.group):hover *) {
      --tw-scale-x: 105%;
      --tw-scale-y: 105%;
      --tw-scale-z: 105%;
      scale: var(--tw-scale-x) var(--tw-scale-y);
    }
    .group-hover\:border-black:is(:where(.group):hover *) {
      border-color: var(--color-black);
    }
    .group-hover\:bg-black:is(:where(.group):hover *) {
      background-color: var(--color-black);
    }
    .group-hover\:bg-size-\[100\%_1px\]:is(:where(.group):hover *) {
      background-size: 100% 1px;
    }
    .group-hover\:bg-bottom-left:is(:where(.group):hover *) {
      background-position: 0 100%;
    }
    .group-hover\:text-pure-white:is(:where(.group):hover *) {
      color: var(--color-pure-white);
    }
    .group-hover\:opacity-60:is(:where(.group):hover *) {
      opacity: 0.6;
    }
  }
  .group-aria-selected\:animate-\[draw-circle_var\(--duration\,6s\)_linear\]:is(
    :where(.group)[aria-selected="true"] *
  ) {
    animation: draw-circle var(--duration, 6s) linear;
  }
  .group-aria-selected\:text-current:is(:where(.group)[aria-selected=true] *) {
    color: currentColor;
  }
  .group-aria-selected\:opacity-100:is(:where(.group)[aria-selected=true] *) {
    opacity: 1;
  }
  .group-aria-\[current\=page\]\:bg-size-\[100\%_1px\]:is(
    :where(.group)[aria-current="page"] *
  ),
  .group-aria-\[current\=true\]\:bg-size-\[100\%_1px\]:is(
    :where(.group)[aria-current="true"] *
  ) {
    background-size: 100% 1px;
  }
  .aria-\[current\=page\]\:pointer-events-none[aria-current="page"] {
    pointer-events: none;
  }
  @media (min-width: 48rem) {
    .md\:sticky {
      position: sticky;
    }
    .md\:-top-10 {
      top: calc(var(--spacing) * -10);
    }
    .md\:-top-15 {
      top: calc(var(--spacing) * -15);
    }
    .md\:-top-22 {
      top: calc(var(--spacing) * -22);
    }
    .md\:top-4 {
      top: calc(var(--spacing) * 4);
    }
    .md\:top-6 {
      top: calc(var(--spacing) * 6);
    }
    .md\:top-8\.25 {
      top: calc(var(--spacing) * 8.25);
    }
    .md\:top-60 {
      top: calc(var(--spacing) * 60);
    }
    .md\:top-\[calc\(-95\/1200\*100cqi\)\] {
      top: -7.91667cqi;
    }
    .md\:top-\[unset\] {
      top: unset;
    }
    .md\:-right-55 {
      right: calc(var(--spacing) * -55);
    }
    .md\:right-0 {
      right: calc(var(--spacing) * 0);
    }
    .md\:right-5 {
      right: calc(var(--spacing) * 5);
    }
    .md\:right-6 {
      right: calc(var(--spacing) * 6);
    }
    .md\:right-\[calc\(-47\/1200\*100cqi\)\] {
      right: -3.91667cqi;
    }
    .md\:right-\[calc\(-105\/1200\*100cqi\)\] {
      right: -8.75cqi;
    }
    .md\:right-\[unset\] {
      right: unset;
    }
    .md\:bottom-5 {
      bottom: calc(var(--spacing) * 5);
    }
    .md\:bottom-7\.5 {
      bottom: calc(var(--spacing) * 7.5);
    }
    .md\:bottom-21 {
      bottom: calc(var(--spacing) * 21);
    }
    .md\:bottom-\[unset\] {
      bottom: unset;
    }
    .md\:left-7\.5 {
      left: calc(var(--spacing) * 7.5);
    }
    .md\:left-45 {
      left: calc(var(--spacing) * 45);
    }
    .md\:left-\[calc\(-177\/1200\*100cqi\)\] {
      left: -14.75cqi;
    }
    .md\:left-\[unset\] {
      left: unset;
    }
    .md\:order-\[unset\] {
      order: unset;
    }
    .md\:order-last {
      order: 9999;
    }
    .md\:order-none {
      order: 0;
    }
    .md\:col-span-\[unset\] {
      grid-column: span unset/span unset;
    }
    .md\:mx-0 {
      margin-inline: calc(var(--spacing) * 0);
    }
    .md\:mx-10 {
      margin-inline: calc(var(--spacing) * 10);
    }
    .md\:my-20 {
      margin-block: calc(var(--spacing) * 20);
    }
    .md\:-mt-27\.5 {
      margin-top: calc(var(--spacing) * -27.5);
    }
    .md\:mt-0 {
      margin-top: calc(var(--spacing) * 0);
    }
    .md\:mt-1\.5 {
      margin-top: calc(var(--spacing) * 1.5);
    }
    .md\:mt-2 {
      margin-top: calc(var(--spacing) * 2);
    }
    .md\:mt-2\.5 {
      margin-top: calc(var(--spacing) * 2.5);
    }
    .md\:mt-3\.5 {
      margin-top: calc(var(--spacing) * 3.5);
    }
    .md\:mt-4 {
      margin-top: calc(var(--spacing) * 4);
    }
    .md\:mt-4\.5 {
      margin-top: calc(var(--spacing) * 4.5);
    }
    .md\:mt-5 {
      margin-top: calc(var(--spacing) * 5);
    }
    .md\:mt-6\.5 {
      margin-top: calc(var(--spacing) * 6.5);
    }
    .md\:mt-7\.5 {
      margin-top: calc(var(--spacing) * 7.5);
    }
    .md\:mt-8 {
      margin-top: calc(var(--spacing) * 8);
    }
    .md\:mt-10 {
      margin-top: calc(var(--spacing) * 10);
    }
    .md\:mt-12 {
      margin-top: calc(var(--spacing) * 12);
    }
    .md\:mt-12\.5 {
      margin-top: calc(var(--spacing) * 12.5);
    }
    .md\:mt-14 {
      margin-top: calc(var(--spacing) * 14);
    }
    .md\:mt-17 {
      margin-top: calc(var(--spacing) * 17);
    }
    .md\:mt-18 {
      margin-top: calc(var(--spacing) * 18);
    }
    .md\:mt-20 {
      margin-top: calc(var(--spacing) * 20);
    }
    .md\:mt-22\.5 {
      margin-top: calc(var(--spacing) * 22.5);
    }
    .md\:mt-25 {
      margin-top: calc(var(--spacing) * 25);
    }
    .md\:mt-26 {
      margin-top: calc(var(--spacing) * 26);
    }
    .md\:mt-30 {
      margin-top: calc(var(--spacing) * 30);
    }
    .md\:mt-34 {
      margin-top: calc(var(--spacing) * 34);
    }
    .md\:mt-35 {
      margin-top: calc(var(--spacing) * 35);
    }
    .md\:mt-37\.5 {
      margin-top: calc(var(--spacing) * 37.5);
    }
    .md\:mt-41\.5 {
      margin-top: calc(var(--spacing) * 41.5);
    }
    .md\:mt-45 {
      margin-top: calc(var(--spacing) * 45);
    }
    .md\:mt-50 {
      margin-top: calc(var(--spacing) * 50);
    }
    .md\:mt-100 {
      margin-top: calc(var(--spacing) * 100);
    }
    .md\:mr-0 {
      margin-right: calc(var(--spacing) * 0);
    }
    .md\:mr-5\.75 {
      margin-right: calc(var(--spacing) * 5.75);
    }
    .md\:mr-6 {
      margin-right: calc(var(--spacing) * 6);
    }
    .md\:mr-\[--fluid\(-1\.5rem\,-7\.5rem\)\] {
      margin-right: clamp(-7.5rem, 5.3571rem + -14.2857svw, -1.5rem);
    }
    .md\:mb-0 {
      margin-bottom: calc(var(--spacing) * 0);
    }
    .md\:ml-0 {
      margin-left: calc(var(--spacing) * 0);
    }
    .md\:ml-\[calc\(-8\/1200\*100cqi\)\] {
      margin-left: -0.666667cqi;
    }
    .md\:ml-\[calc\(-10\/1200\*100cqi\)\] {
      margin-left: -0.833333cqi;
    }
    .md\:ml-\[calc\(-80\/1200\*100cqi\)\] {
      margin-left: -6.66667cqi;
    }
    .md\:ml-\[calc\(-81\/1200\*100cqi\)\] {
      margin-left: -6.75cqi;
    }
    .md\:ml-\[calc\(-130\/1200\*100cqi\)\] {
      margin-left: -10.8333cqi;
    }
    .md\:ml-\[calc\(80\/1200\*100cqi\)\] {
      margin-left: 6.66667cqi;
    }
    .md\:ml-auto {
      margin-left: auto;
    }
    .md\:block {
      display: block;
    }
    .md\:contents {
      display: contents;
    }
    .md\:flex {
      display: flex;
    }
    .md\:grid {
      display: grid;
    }
    .md\:hidden {
      display: none;
    }
    .md\:inline {
      display: inline;
    }
    .md\:aspect-\[600\/430\] {
      aspect-ratio: 600/430;
    }
    .md\:h-8 {
      height: calc(var(--spacing) * 8);
    }
    .md\:h-16\.25 {
      height: calc(var(--spacing) * 16.25);
    }
    .md\:h-140 {
      height: calc(var(--spacing) * 140);
    }
    .md\:h-300 {
      height: calc(var(--spacing) * 300);
    }
    .md\:h-\[calc\(100\%\+35px\)\] {
      height: calc(100% + 35px);
    }
    .md\:h-\[calc\(100\%\+40px\)\] {
      height: calc(100% + 40px);
    }
    .md\:h-\[calc\(100\%\+45px\)\] {
      height: calc(100% + 45px);
    }
    .md\:h-\[calc\(100\%\+100px\)\] {
      height: calc(100% + 100px);
    }
    .md\:w-40 {
      width: calc(var(--spacing) * 40);
    }
    .md\:w-56 {
      width: calc(var(--spacing) * 56);
    }
    .md\:w-235 {
      width: calc(var(--spacing) * 235);
    }
    .md\:w-\[calc\(94\/1200\*100cqi\)\] {
      width: 7.83333cqi;
    }
    .md\:w-\[calc\(130\/1200\*100cqi\)\] {
      width: 10.8333cqi;
    }
    .md\:w-\[calc\(260\/1240\*100cqi\)\] {
      width: 20.9677cqi;
    }
    .md\:w-\[calc\(260\/1260\*100cqi\)\] {
      width: 20.6349cqi;
    }
    .md\:w-\[calc\(300\/1200\*100cqi\)\] {
      width: 25cqi;
    }
    .md\:w-\[calc\(360\/1200\*100cqi\)\] {
      width: 30cqi;
    }
    .md\:w-\[calc\(720\/1200\*100cqi\)\] {
      width: 60cqi;
    }
    .md\:w-\[calc\(800\/1200\*100cqi\)\],
    .md\:w-\[calc\(960\/1440\*100cqi\)\] {
      width: 66.6667cqi;
    }
    .md\:w-auto {
      width: auto;
    }
    .md\:w-fit {
      width: fit-content;
    }
    .md\:max-w-97\.5 {
      max-width: calc(var(--spacing) * 97.5);
    }
    .md\:max-w-200 {
      max-width: calc(var(--spacing) * 200);
    }
    .md\:max-w-260 {
      max-width: calc(var(--spacing) * 260);
    }
    .md\:scale-y-0 {
      --tw-scale-y: 0%;
      scale: var(--tw-scale-x) var(--tw-scale-y);
    }
    .md\:scale-y-100 {
      --tw-scale-y: 100%;
      scale: var(--tw-scale-x) var(--tw-scale-y);
    }
    .md\:auto-cols-\[38\.75rem\] {
      grid-auto-columns: 38.75rem;
    }
    .md\:auto-cols-\[39rem\] {
      grid-auto-columns: 39rem;
    }
    .md\:grid-cols-2 {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .md\:grid-cols-\[1fr_auto\] {
      grid-template-columns: 1fr auto;
    }
    .md\:grid-cols-\[1fr_calc\(641\/1200\*100cqi\)\] {
      grid-template-columns: 1fr 53.4167cqi;
    }
    .md\:grid-cols-\[1fr_calc\(660\/1200\*100cqi\)\] {
      grid-template-columns: 1fr 55cqi;
    }
    .md\:grid-cols-\[1fr_calc\(740\/1150\*100cqi\)\] {
      grid-template-columns: 1fr 64.3478cqi;
    }
    .md\:grid-cols-\[1fr_max-content\] {
      grid-template-columns: 1fr max-content;
    }
    .md\:grid-cols-\[auto_1fr\] {
      grid-template-columns: auto 1fr;
    }
    .md\:grid-cols-\[calc\(450\/1260\*100cqi\)_auto_auto\] {
      grid-template-columns: 35.7143cqi auto auto;
    }
    .md\:grid-cols-auto-fit-34 {
      grid-template-columns: repeat(
        auto-fit,
        minmax(min(calc(var(--spacing) * 34), 100%), 1fr)
      );
    }
    .md\:grid-rows-\[auto_auto_1fr\] {
      grid-template-rows: auto auto 1fr;
    }
    .md\:flex-wrap {
      flex-wrap: wrap;
    }
    .md\:place-items-center {
      place-items: center;
    }
    .md\:items-center {
      align-items: center;
    }
    .md\:justify-between {
      justify-content: space-between;
    }
    .md\:gap-5 {
      gap: calc(var(--spacing) * 5);
    }
    .md\:gap-7 {
      gap: calc(var(--spacing) * 7);
    }
    .md\:gap-8 {
      gap: calc(var(--spacing) * 8);
    }
    .md\:gap-\[calc\(80\/1140\*100cqi\)\] {
      gap: 7.01754cqi;
    }
    .md\:gap-\[calc\(80\/1150\*100cqi\)\] {
      gap: 6.95652cqi;
    }
    .md\:gap-\[calc\(80\/1200\*100cqi\)\] {
      gap: 6.66667cqi;
    }
    .md\:gap-\[calc\(88\/1260\*100cqi\)\] {
      gap: 6.98413cqi;
    }
    .md\:gap-\[calc\(120\/1200\*100cqi\)\] {
      gap: 10cqi;
    }
    .md\:gap-\[calc\(160\/1200\*100cqi\)\] {
      gap: 13.3333cqi;
    }
    .md\:gap-x-0 {
      column-gap: calc(var(--spacing) * 0);
    }
    .md\:gap-x-2 {
      column-gap: calc(var(--spacing) * 2);
    }
    .md\:gap-x-2\.5 {
      column-gap: calc(var(--spacing) * 2.5);
    }
    .md\:gap-x-3 {
      column-gap: calc(var(--spacing) * 3);
    }
    .md\:gap-x-5 {
      column-gap: calc(var(--spacing) * 5);
    }
    .md\:gap-x-6 {
      column-gap: calc(var(--spacing) * 6);
    }
    .md\:gap-x-8 {
      column-gap: calc(var(--spacing) * 8);
    }
    .md\:gap-x-\[--fluid\(1rem\,2\.5rem\)\] {
      column-gap: clamp(1rem, -0.7143rem + 3.5714svw, 2.5rem);
    }
    .md\:gap-x-\[calc\(42\/1260\*100cqi\)\] {
      column-gap: 3.33333cqi;
    }
    .md\:gap-x-\[calc\(80\/1120\*100cqi\)\] {
      column-gap: 7.14286cqi;
    }
    .md\:gap-x-\[calc\(80\/1200\*100cqi\)\] {
      column-gap: 6.66667cqi;
    }
  }
.access-how-to-get {
  text-align: center;
  margin-top: 4rem;
}

.access-how-title {
  font-size: 1.25rem;
  letter-spacing: 0.1em;
  margin-bottom: 1.5rem;
}

.access-tab-buttons {
  display: flex;
  justify-content: center;
  gap: 1rem;
  margin-bottom: 2.5rem;
}

.access-tab-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
}

.access-tab-descriptions {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  align-items: center;
  margin-top: 1.5rem;
  padding-bottom: 2.5rem;
  border-bottom: 1px solid rgba(255,255,255,0.12);
}

.access-desc-item {
  text-align: center;
  margin-top: 1rem;
}

.access-tab-desc {
  font-size: 1rem;
  color: #666;
  margin: 0;
  text-align: center;
}

.access-tab-btn {
  padding: 0.6em 2.5em;
  border: 1px solid currentColor;
  background: transparent;
  cursor: pointer;
  font-size: 0.875rem;
  letter-spacing: 0.08em;
  transition: background 0.2s, color 0.2s;
}

.access-tab-btn:hover {
  background: #fff;
  color: #1d201f;
}

.access-tab-btn.is-active {
  background: #000;
  color: #fff;
}
.access-directions,
.access-directions-walk {
  grid-template-columns: 1fr !important;
  max-width: 740px;
  margin-left: auto;
  margin-right: auto;
}

/* 左右ボタン */
.mv-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  width: 3rem;
  height: 3rem;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0.7;
  transition: opacity 0.3s ease;
}
.mv-arrow:hover { opacity: 1; }
.mv-arrow-prev { left: 1.5rem; }
.mv-arrow-next { right: 1.5rem; }

.mv-arrow span {
  display: block;
  width: 0.75rem;
  height: 0.75rem;
  border-top: 1.5px solid #fff;
  border-right: 1.5px solid #fff;
}
.mv-arrow-prev span { transform: rotate(-135deg) translateX(-2px); }
.mv-arrow-next span { transform: rotate(45deg) translateX(-2px); }

/* スライド番号 */
.mv-counter {
  position: absolute;
  bottom: 2rem;
  right: 2rem;
  z-index: 10;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: #fff;
  font-family: var(--font-garamond);
  font-size: 0.875rem;
  letter-spacing: 0.08em;
  opacity: 0.8;
}
.mv-counter-sep {
  display: block;
  width: 1.5rem;
  height: 1px;
  background: rgba(255,255,255,0.6);
}

/* ドット */
.mv-dots {
  position: absolute;
  bottom: 2rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
  display: flex;
  gap: 0.5rem;
}
.mv-dot {
  width: 0.375rem;
  height: 0.375rem;
  border-radius: 50%;
  background: rgba(255,255,255,0.4);
  cursor: pointer;
  transition: background 0.3s ease, transform 0.3s ease;
}
.mv-dot.is-active {
  background: #fff;
  transform: scale(1.3);
}

.footer-contact-block {
  margin-top: 1.75rem;
  padding-top: 1.75rem;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.footer-contact-note {
  font-size: 0.8125rem;
  line-height: 1.8;
  letter-spacing: 0.06em;
  opacity: 0.6;
  margin-bottom: 1rem;
}

.footer-booking-btn {
  display: inline-block;
  border: 1px solid rgba(255, 255, 255, 0.35);
  padding: 0.65em 1.5em;
  font-family: var(--font-noto-serif-jp);
  font-size: 0.8125rem;
  letter-spacing: 0.08em;
  opacity: 0.75;
  transition: opacity 0.25s ease, border-color 0.25s ease;
  white-space: nowrap;
}

.footer-booking-btn:hover {
  opacity: 1;
  border-color: rgba(255, 255, 255, 0.75);
}
/* ===== Footer Layout ===== */
.footer-inner {
  max-width: 90rem;
  margin-inline: auto;
  padding-inline: clamp(1.25rem, -4.46rem + 11.9svw, 6.25rem);
  padding-top: clamp(4rem, 6vw, 6rem);
  padding-bottom: 2.5rem;
}

.footer-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
  padding-bottom: 3rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

@media (min-width: 768px) {
  .footer-grid {
    grid-template-columns: 1fr auto auto;
    gap: clamp(3rem, 6cqi, 5rem);
  }
}

.footer-logo {
  display: inline-block;
  margin-bottom: 1.25rem;
}

.footer-logo img {
  height: 28px;
  width: auto;
  opacity: 0.88;
}

.footer-tagline {
  font-family: var(--font-noto-serif-jp);
  font-size: 0.8125rem;
  letter-spacing: 0.06em;
  opacity: 0.6;
  margin-bottom: 1rem;
}

.footer-address {
  font-style: normal;
  font-size: 0.8125rem;
  line-height: 1.9;
  letter-spacing: 0.05em;
  opacity: 0.55;
}

.footer-col-label {
  display: block;
  font-family: var(--font-garamond);
  font-size: clamp(0.8125rem, 1vw, 0.9375rem);
  letter-spacing: 0.1em;
  opacity: 0.45;
  margin-bottom: 1.25rem;
}

.footer-nav-list {
  display: grid;
  gap: 0.875rem;
}

.footer-nav-link {
  font-size: 0.8125rem;
  letter-spacing: 0.08em;
  opacity: 0.65;
  transition: opacity 0.25s ease;
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

.footer-nav-link:hover {
  opacity: 1;
}

.footer-nav-link-pdf-icon {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.footer-nav-link-pdf-icon svg {
  flex-shrink: 0;
  opacity: 0.6;
}

.footer-nav-link-pdf-badge {
  font-size: 0.625rem;
  letter-spacing: 0.1em;
  opacity: 0.55;
}

.footer-sns-list {
  display: grid;
  gap: 0.875rem;
  margin-bottom: 2.25rem;
}

.footer-sns-link {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  font-size: 0.8125rem;
  letter-spacing: 0.08em;
  opacity: 0.65;
  transition: opacity 0.25s ease;
}

.footer-sns-link:hover {
  opacity: 1;
}

.footer-bottom {
  margin-top: 2rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.footer-copyright,
.footer-privacy-link {
  font-size: 0.6875rem;
  letter-spacing: 0.06em;
  opacity: 0.38;
  transition: opacity 0.25s ease;
}

.footer-privacy-link:hover {
  opacity: 0.7;
}
/* ===== Access Detail ===== */
.access-detail {
  margin-top: 3.5rem;
  display: grid;
  gap: 2.5rem;
}

@media (min-width: 768px) {
  .access-detail { gap: 0; }
}

.access-detail-block {
  border-top: 1px solid rgba(0, 0, 0, 0.1);
  padding-top: 2rem;
}

.access-detail-en-block {
  margin-top: 1rem;
  padding-top: 2.5rem;
  border-top: 2px solid rgba(0, 0, 0, 0.08);
}

.access-detail-en-label {
  font-family: var(--font-garamond);
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  opacity: 0.4;
  margin-bottom: 2rem;
}

.access-detail-heading {
  display: flex;
  align-items: baseline;
  gap: 1rem;
  margin-bottom: 1.25rem;
}

.access-detail-heading-en {
  font-family: var(--font-garamond);
  font-size: clamp(1.25rem, 1.5vw, 1.5rem);
  line-height: 1.2;
  letter-spacing: 0.04em;
}

.access-detail-heading-ja {
  font-family: var(--font-shippori-mincho);
  font-size: 0.8125rem;
  letter-spacing: 0.1em;
  opacity: 0.55;
}

.access-detail-body {
  display: grid;
  gap: 0.75rem;
}

.access-detail-row {
  display: grid;
  grid-template-columns: 4.5rem 1fr;
  gap: 0.75rem;
  font-size: 0.9rem;
  line-height: 1.85;
  letter-spacing: 0.04em;
  align-items: baseline;
}

.access-detail-row-label {
  font-family: var(--font-garamond);
  font-size: 0.75rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  opacity: 0.45;
  white-space: nowrap;
  padding-top: 0.2em;
}

.access-detail-note {
  margin-top: 0.5rem;
  padding: 0.875rem 1.125rem;
  background: rgba(0, 0, 0, 0.04);
  border-left: 2px solid var(--color-sage);
  font-size: 0.8125rem;
  line-height: 1.85;
  letter-spacing: 0.04em;
}

.access-detail-note-winter {
  border-left-color: #9ca3af;
  background: rgba(107, 138, 173, 0.06);
}

.access-route-block {
  padding: 1.25rem 1.375rem;
  border: 1px solid rgba(0, 0, 0, 0.09);
  border-radius: 0.25rem;
}

.access-route-block + .access-route-block {
  margin-top: 1rem;
}

.access-route-title {
  font-family: var(--font-garamond);
  font-size: 1.0625rem;
  letter-spacing: 0.06em;
  margin-bottom: 0.75rem;
}

.access-route-steps {
  display: grid;
  gap: 0.35rem;
  font-size: 0.875rem;
  line-height: 1.85;
  letter-spacing: 0.04em;
  opacity: 0.85;
}

.access-route-step {
  display: grid;
  grid-template-columns: 1.25rem 1fr;
  gap: 0.5rem;
  align-items: baseline;
}

.access-route-step-arrow {
  font-family: var(--font-garamond);
  opacity: 0.4;
  text-align: center;
}

.access-tip {
  margin-top: 0.75rem;
  font-size: 0.8125rem;
  line-height: 1.8;
  opacity: 0.7;
  font-style: italic;
}
/* ===== この main.css は元のファイル（document 6）に、不足していたすべてのカスタムCSSを追記した完全版です ===== */
/* 元ファイルの @layer theme / @layer base / @layer utilities はそのまま先頭に配置してください */
/* ここには末尾に追記すべきカスタムCSSのみを記載します */

/* ===== } バグ修正: 元ファイルの該当箇所を下記に差し替え ===== */
/* ===== Access ===== */
.access-how-to-get {
  text-align: center;
  margin-top: 4rem;
}
.access-how-title {
  font-size: 1.25rem;
  letter-spacing: 0.1em;
  margin-bottom: 1.5rem;
}
.access-howto-lead {
  font-size: 0.9rem;
  line-height: 1.85;
  letter-spacing: 0.04em;
  margin-bottom: 1.5rem;
  opacity: 0.8;
}
.access-howto-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  border: 1px solid rgba(0, 0, 0, 0.3);
  padding: 0.65em 1.75em;
  font-size: 0.875rem;
  letter-spacing: 0.1em;
  transition: background 0.25s ease, color 0.25s ease;
}
.access-howto-btn:hover { background: #1d201f; color: #fff; }
.access-howto-line {
  border: none;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  margin: 2rem 0;
}
.access-tab-buttons {
  display: flex;
  justify-content: center;
  gap: 1rem;
  margin-bottom: 2.5rem;
}
.access-tab-btn {
  padding: 0.6em 2.5em;
  border: 1px solid currentColor;
  background: transparent;
  cursor: pointer;
  font-size: 0.875rem;
  letter-spacing: 0.08em;
  transition: background 0.2s, color 0.2s;
}
.access-tab-btn:hover { background: #1d201f; color: #fff; }
.access-tab-btn.is-active { background: #000; color: #fff; }
.access-directions,
.access-directions-walk {
  grid-template-columns: 1fr !important;
  max-width: 740px;
  margin-left: auto;
  margin-right: auto;
}

/* ===== Access Detail ===== */
.access-detail {
  margin-top: 3.5rem;
  display: grid;
  gap: 0;
}
@media (min-width: 768px) { .access-detail { gap: 0; } }
.access-detail-block {
  border-top: 1px solid rgba(0, 0, 0, 0.1);
  padding-top: 2rem;
}
.access-detail-en-block {
  margin-top: 1rem;
  padding-top: 2.5rem;
  border-top: 2px solid rgba(0, 0, 0, 0.08);
}
.access-detail-en-label {
  font-family: var(--font-garamond);
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  opacity: 0.4;
  margin-bottom: 2rem;
}
.access-detail-heading {
  display: flex;
  align-items: baseline;
  gap: 1rem;
  margin-bottom: 1.25rem;
}
.access-detail-heading-en {
  font-family: var(--font-garamond);
  font-size: clamp(1.25rem, 1.5vw, 1.5rem);
  line-height: 1.2;
  letter-spacing: 0.04em;
}
.access-detail-heading-ja {
  font-family: var(--font-shippori-mincho);
  font-size: 0.8125rem;
  letter-spacing: 0.1em;
  opacity: 0.55;
}
.access-detail-body { display: grid; gap: 0.75rem; }
.access-detail-row {
  display: grid;
  grid-template-columns: 4.5rem 1fr;
  gap: 0.75rem;
  font-size: 0.9rem;
  line-height: 1.85;
  letter-spacing: 0.04em;
  align-items: baseline;
}
.access-detail-row-label {
  font-family: var(--font-garamond);
  font-size: 0.75rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  opacity: 0.45;
  white-space: nowrap;
  padding-top: 0.2em;
}
.access-detail-note {
  margin-top: 0.5rem;
  padding: 0.875rem 1.125rem;
  background: rgba(0, 0, 0, 0.04);
  border-left: 2px solid var(--color-sage);
  font-size: 0.8125rem;
  line-height: 1.85;
  letter-spacing: 0.04em;
}
.access-detail-note-winter {
  border-left-color: #9ca3af;
  background: rgba(107, 138, 173, 0.06);
}
.access-route-block {
  padding: 1.25rem 1.375rem;
  border: 1px solid rgba(0, 0, 0, 0.09);
  border-radius: 0.25rem;
}
.access-route-block + .access-route-block { margin-top: 1rem; }
.access-route-title {
  font-family: var(--font-garamond);
  font-size: 1.0625rem;
  letter-spacing: 0.06em;
  margin-bottom: 0.75rem;
}
.access-route-steps {
  display: grid;
  gap: 0.35rem;
  font-size: 0.875rem;
  line-height: 1.85;
  letter-spacing: 0.04em;
  opacity: 0.85;
}
.access-route-step {
  display: grid;
  grid-template-columns: 1.25rem 1fr;
  gap: 0.5rem;
  align-items: baseline;
}
.access-route-step-arrow { font-family: var(--font-garamond); opacity: 0.4; text-align: center; }
.access-tip { margin-top: 0.75rem; font-size: 0.8125rem; line-height: 1.8; opacity: 0.7; font-style: italic; }

/* ===== Hero Slider ===== */

.mv-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  width: 3rem;
  height: 3rem;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0.7;
  transition: opacity 0.3s ease;
}
.mv-arrow:hover { opacity: 1; }
.mv-arrow-prev { left: 1.5rem; }
.mv-arrow-next { right: 1.5rem; }
.mv-arrow span {
  display: block;
  width: 0.75rem;
  height: 0.75rem;
  border-top: 1.5px solid #fff;
  border-right: 1.5px solid #fff;
}
.mv-arrow-prev span { transform: rotate(-135deg) translateX(-2px); }
.mv-arrow-next span { transform: rotate(45deg) translateX(-2px); }
.mv-counter {
  position: absolute;
  bottom: 2rem;
  right: 2rem;
  z-index: 10;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: #fff;
  font-family: var(--font-garamond);
  font-size: 0.875rem;
  letter-spacing: 0.08em;
  opacity: 0.8;
}
.mv-counter-sep { display: block; width: 1.5rem; height: 1px; background: rgba(255,255,255,0.6); }
.mv-dots {
  position: absolute;
  bottom: 2rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
  display: flex;
  gap: 0.5rem;
}
.mv-dot {
  width: 0.375rem;
  height: 0.375rem;
  border-radius: 50%;
  background: rgba(255,255,255,0.4);
  cursor: pointer;
  transition: background 0.3s ease, transform 0.3s ease;
}
.mv-dot.is-active { background: #fff; transform: scale(1.3); }

/* ===== Contact ===== */
.contact-inner { display: grid; gap: 3rem; max-width: 640px; }
@media (min-width: 768px) { .contact-inner { gap: 4rem; } }
.contact-body { display: grid; gap: 0; }
.contact-airbnb-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  margin-top: 2.5rem;
  padding: 1em 2.5em;
  background: #2f4f3e;
  color: #fff;
  border-radius: 999px;
  font-family: var(--font-noto-serif-jp);
  font-size: 1.0625rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  line-height: 1.35;
  text-decoration: none;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
  transition: background 0.3s ease, transform 0.3s ease;
}
.contact-airbnb-btn:hover { background: #3d6550; transform: translateY(-2px); }
.contact-airbnb-btn-en {
  display: block;
  font-size: 0.8125rem;
  font-weight: 400;
  opacity: 0.85;
  letter-spacing: 0.04em;
}

/* ===== Footer ===== */
.footer-inner {
  max-width: 90rem;
  margin-inline: auto;
  padding-inline: clamp(1.25rem, -4.46rem + 11.9svw, 6.25rem);
  padding-top: clamp(4rem, 6vw, 6rem);
  padding-bottom: 2.5rem;
}
.footer-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
  padding-bottom: 3rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}
@media (min-width: 768px) {
  .footer-grid { grid-template-columns: 1fr auto auto; gap: clamp(3rem, 6cqi, 5rem); }
}
.footer-logo { display: inline-block; margin-bottom: 1.25rem; }
.footer-logo img { height: 28px; width: auto; opacity: 0.88; }
.footer-tagline { font-family: var(--font-noto-serif-jp); font-size: 0.8125rem; letter-spacing: 0.06em; opacity: 0.6; margin-bottom: 1rem; }
.footer-address { font-style: normal; font-size: 0.8125rem; line-height: 1.9; letter-spacing: 0.05em; opacity: 0.55; }
.footer-nav-list { display: grid; gap: 0.875rem; }
.footer-nav-link { font-size: 0.8125rem; letter-spacing: 0.08em; opacity: 0.65; transition: opacity 0.25s ease; display: flex; align-items: center; gap: 0.4rem; }
.footer-nav-link:hover { opacity: 1; }
.footer-nav-link-pdf-icon { display: inline-flex; align-items: center; gap: 0.35rem; }
.footer-nav-link-pdf-icon svg { flex-shrink: 0; opacity: 0.6; }
.footer-nav-link-pdf-badge { font-size: 0.625rem; letter-spacing: 0.1em; opacity: 0.55; }
.footer-sns-list { display: grid; gap: 0.875rem; margin-bottom: 2.25rem; }
.footer-sns-link { display: flex; align-items: center; gap: 0.625rem; font-size: 0.8125rem; letter-spacing: 0.08em; opacity: 0.65; transition: opacity 0.25s ease; }
.footer-sns-link:hover { opacity: 1; }
.footer-contact-block { margin-top: 1.75rem; padding-top: 1.75rem; border-top: 1px solid rgba(255, 255, 255, 0.12); }
.footer-contact-note { font-size: 0.8125rem; line-height: 1.8; letter-spacing: 0.06em; opacity: 0.6; margin-bottom: 1rem; }
.footer-booking-btn {
  display: inline-block;
  border: 1px solid rgba(255, 255, 255, 0.35);
  padding: 0.65em 1.5em;
  font-family: var(--font-noto-serif-jp);
  font-size: 0.8125rem;
  letter-spacing: 0.08em;
  opacity: 0.75;
  transition: opacity 0.25s ease, border-color 0.25s ease;
  white-space: nowrap;
}
.footer-booking-btn:hover { opacity: 1; border-color: rgba(255, 255, 255, 0.75); }
.footer-bottom { margin-top: 2rem; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; }
.footer-copyright, .footer-privacy-link { font-size: 0.6875rem; letter-spacing: 0.06em; opacity: 0.38; transition: opacity 0.25s ease; }
.footer-privacy-link:hover { opacity: 0.7; }
.access-lang-switch {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 0;
}

.access-lang-btn {
  padding: 0.4em 1.5em;
  border: 1px solid rgba(0, 0, 0, 0.25);
  background: transparent;
  font-size: 0.8125rem;
  letter-spacing: 0.08em;
  cursor: pointer;
  border-radius: 999px;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
  opacity: 0.6;
}

.access-lang-btn.is-active {
  background: #1d201f;
  color: #fff;
  border-color: #1d201f;
  opacity: 1;
}

.access-lang-btn:hover {
  opacity: 1;
}


.contact-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to right,
    rgba(0, 0, 0, 0.65) 0%,
    rgba(0, 0, 0, 0.45) 60%,
    rgba(0, 0, 0, 0.2) 100%
  );
  z-index: 1;
}

.contact-inner {
  position: relative;
  display: grid;
  gap: 3rem;
  max-width: 580px;
}

@media (min-width: 768px) {
  .contact-inner { gap: 4rem; }
}

.contact-body { display: grid; gap: 0; justify-items: start;}

.contact-airbnb-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  margin-top: 2.5rem;
  padding: 0.875em clamp(1.25rem, 5vw, 2.5rem);
  background: #2f4f3e;
  color: #fff;
  border-radius: 999px;
  font-family: var(--font-noto-serif-jp);
  font-size: clamp(0.875rem, 2.5vw, 1.0625rem);
  font-weight: 600;
  letter-spacing: 0.06em;
  line-height: 1.35;
  text-decoration: none;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
  transition: background 0.3s ease, transform 0.3s ease;
  max-width: 100%;
  white-space: nowrap;
}

.contact-airbnb-btn:hover {
  background: #3d6550;
  transform: translateY(-2px);
}

.contact-airbnb-btn-en {
  display: block;
  font-size: 0.8125rem;
  font-weight: 400;
  opacity: 0.85;
  letter-spacing: 0.04em;
}
.contact-lead {
  white-space: nowrap;
}

/* 地図サイズ調整 */
.c-access-map {
  height: 100%;
}

.access-map-embed {
  height: 100%;
  min-height: 300px;
  aspect-ratio: unset;
}

/* アイコン */
.access-detail-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  border: 1px solid rgba(0, 0, 0, 0.15);
  border-radius: 50%;
  color: var(--color-charcoal);
  flex-shrink: 0;
}

/* 日英ボタン — 既存タブスタイルと統一 */
.access-lang-switch {
  display: flex;
  gap: 0.75rem;
  margin-bottom: 0;
}

.access-lang-btn {
  padding: 0.6em 2em;
  border: 1px solid currentColor;
  background: transparent;
  cursor: pointer;
  font-size: 0.875rem;
  letter-spacing: 0.08em;
  transition: background 0.2s, color 0.2s;
  opacity: 0.7;
}

.access-lang-btn.is-active {
  background: #1d201f;
  color: #fff;
  opacity: 1;
}

.access-lang-btn:hover {
  opacity: 1;
}


.access-lang-btn.is-active {
  background: #fff;
  color: #1d201f;
  border-color: #1d201f;
}

.access-lang-btn.is-active {
  background: #fff;
  color: #1d201f;
  border-color: #1d201f;
}
.access-lang-btn:hover {
  color: #1d201f;
background: #fff;
}

.access-tab-btn:hover {
  background: #fff;
  color: #1d201f;
}

.access-tab-btn.is-active {
  background: #fff;
  color: #1d201f;
  border-color: #1d201f;
}
#access {
  padding-bottom: clamp(5rem, 8vw, 8rem);
}
/* ドット → ライン */
.mv-dot {
  width: 2rem;
  height: 2px;
  border-radius: 0;
  background: rgba(255, 255, 255, 0.35);
  cursor: pointer;
  transition: background 0.3s ease, width 0.3s ease;
}

.mv-dot.is-active {
  background: #fff;
  width: 3.5rem;
}

.mv-slider {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: #000;
}

.mv-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  z-index: 1;
  transition: opacity 1.4s ease;
}

.mv-slide.is-active {
  opacity: 1;
  z-index: 2;
}

.mv-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}


.mv-counter {
  position: absolute;
  bottom: 2rem;
  right: 2rem;
  z-index: 10;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: #fff;
  font-family: var(--font-garamond);
  font-size: 0.875rem;
  letter-spacing: 0.08em;
  opacity: 0.8;
}

.mv-counter-sep {
  display: block;
  width: 1.5rem;
  height: 1px;
  background: rgba(255,255,255,0.6);
}

.mv-dots {
  position: absolute;
  bottom: 2rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
  display: flex;
  gap: 0.5rem;
}

.mv-dot {
  width: 2rem;
  height: 2px;
  border-radius: 0;
  background: rgba(255,255,255,0.35);
  cursor: pointer;
  transition: background 0.3s ease, width 0.3s ease;
}

.mv-dot.is-active {
  width: 3.5rem;
  background: #fff;
}

/* ===== mv-dots → ライン ===== */
.mv-dot {
  width: 2rem;
  height: 2px;
  border-radius: 0;
  background: rgba(255, 255, 255, 0.35);
  cursor: pointer;
  transition: background 0.3s ease, width 0.3s ease;
}

.mv-dot.is-active {
  background: #fff;
  width: 3.5rem;
}

/* ===== access-tab-btn 白背景 ===== */
.access-tab-btn:hover {
  background: #fff;
  color: #1d201f;
}

.access-tab-btn.is-active {
  background: #fff;
  color: #1d201f;
  border-color: #1d201f;
}

/* ===== access-lang-switch / access-lang-btn ===== */
.access-lang-switch {
  display: flex;
  gap: 0.75rem;
  margin-bottom: 2.5rem;
}

.access-lang-btn {
  padding: 0.6em 2em;
  border: 1px solid currentColor;
  background: transparent;
  cursor: pointer;
  font-size: 0.875rem;
  letter-spacing: 0.08em;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
  border-radius: 999px;
  color: rgba(0, 0, 0, 0.45);
  color: #fff;
}

.access-lang-btn.is-active {
  background: #fff;
  color: #1d201f;
  border-color: #1d201f;
}


.access-lang-btn:hover {
  color: #1d201f;
  border-color: rgba(0, 0, 0, 0.4);
}

/* ===== access-detail-heading align修正 ===== */
.access-detail-heading {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.25rem;
}

/* ===== access-detail-icon ===== */
.access-detail-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  border: 1px solid rgba(0, 0, 0, 0.15);
  border-radius: 50%;
  color: var(--color-charcoal);
  flex-shrink: 0;
}

/* ===== access-map 高さ調整 ===== */
.c-access-map {
  height: 100%;
}

.access-map-embed {
  height: 100%;
  min-height: 320px;
  aspect-ratio: unset;
}

.access-map-embed iframe {
  width: 100%;
  height: 100%;
  min-height: 320px;
  display: block;
  border: 0;
}

/* ===== #access 下マージン ===== */
#access {
  padding-bottom: clamp(5rem, 8vw, 8rem);
}

/* ===== access-car-summary / access-steps-toggle ===== */
.access-car-summary {
  margin-bottom: 1.5rem;
  padding: 1.25rem 1.375rem;
  background: rgba(0, 0, 0, 0.03);
  border-radius: 0.25rem;
  display: grid;
  gap: 0.5rem;
}

.access-steps-toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
  font-size: 0.875rem;
  letter-spacing: 0.08em;
  opacity: 0.7;
  cursor: pointer;
  border: 1px solid rgba(0, 0, 0, 0.2);
  background: transparent;
  padding: 0.5em 1.25em;
  border-radius: 999px;
  transition: opacity 0.2s, border-color 0.2s;
}

.access-steps-toggle:hover {
  opacity: 1;
  border-color: rgba(0, 0, 0, 0.5);
}

.access-steps-toggle-icon {
  transition: transform 0.3s ease;
}

.access-steps-toggle-icon.is-open {
  transform: rotate(180deg);
}

/* ===== contact-section 背景画像版 ===== */
.contact-section {
  position: relative;
  padding-top: clamp(4rem, 10vw, 8rem);
  padding-bottom: clamp(4rem, 10vw, 8rem);
  overflow: hidden;
}

.contact-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to right,
    rgba(0, 0, 0, 0.65) 0%,
    rgba(0, 0, 0, 0.45) 60%,
    rgba(0, 0, 0, 0.2) 100%
  );
  z-index: 1;
}

.contact-inner {
  position: relative;
  display: grid;
  gap: 3rem;
  max-width: 580px;
}

@media (min-width: 768px) {
  .contact-inner { gap: 4rem; }
}

/* ===== contact-lead 1行表示 ===== */
.contact-lead {
  white-space: nowrap;
}
.access-map-embed {
  aspect-ratio: 16 / 9;
  min-height: unset;
}
.access-map-embed {
  height: 100%;
  min-height: 420px;
  aspect-ratio: unset;
}
/* ===== Site Header ===== */
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: clamp(1rem, 2vw, 1.75rem) clamp(1.25rem, 3vw, 2.5rem);
  background: transparent;
  transition: background 0.5s ease, backdrop-filter 0.5s ease, padding 0.4s ease;
}

.site-header.is-scrolled {
  background: rgba(20, 20, 18, 0.72);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  padding-top: 0.875rem;
  padding-bottom: 0.875rem;
}

/* ロゴ */
.site-header-logo {
  display: block;
  text-decoration: none;
  flex-shrink: 0;
}

.site-header-logo img {
  filter: drop-shadow(0 2px 10px rgba(0,0,0,0.45));
}

.site-header-logo-sub {
  display: block;
  margin-top: 0.4rem;
  color: #fff;
  font-size: clamp(9px, 1.2vw, 11px);
  letter-spacing: 0.06em;
  line-height: 1;
  text-align: center;
  filter: drop-shadow(0 2px 8px rgba(0,0,0,0.45));
}

/* PC ナビ */
.site-header-nav {
  display: none;
}

@media (min-width: 768px) {
  .site-header-nav {
    display: flex;
    align-items: center;
  }
}

.site-header-nav-list {
  display: flex;
  align-items: center;
  gap: clamp(1.25rem, 2vw, 2.25rem);
  list-style: none;
}

.site-header-nav-link {
  font-family: var(--font-garamond);
  font-size: clamp(0.8125rem, 1vw, 0.9375rem);
  letter-spacing: 0.1em;
  color: rgba(255, 255, 255, 0.82);
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.2s ease;
}

.site-header-nav-link:hover {
  color: #fff;
}

.site-header-nav-soon {
  opacity: 0.38;
  cursor: default;
}

.site-header-nav-airbnb {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  border: 1px solid rgba(255, 255, 255, 0.4);
  padding: 0.4em 1.1em;
  border-radius: 999px;
  transition: background 0.25s ease, border-color 0.25s ease;
}

.site-header-nav-airbnb:hover {
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.75);
  color: #fff;
}

/* SP ハンバーガー */
.site-header-burger {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 2.5rem;
  height: 2.5rem;
  cursor: pointer;
  background: none;
  border: none;
  padding: 0.35rem;
  z-index: 10001;
  flex-shrink: 0;
}

@media (min-width: 768px) {
  .site-header-burger {
    display: none;
  }
}

.site-header-burger-line {
  display: block;
  width: 100%;
  height: 1.5px;
  background: #fff;
  border-radius: 999px;
  transform-origin: center;
  transition: transform 0.35s ease, opacity 0.25s ease;
  filter: drop-shadow(0 1px 4px rgba(0,0,0,0.5));
}

.site-header-burger-line:nth-child(1).is-open {
  transform: translateY(6.5px) rotate(45deg);
}
.site-header-burger-line:nth-child(2).is-open {
  opacity: 0;
  transform: scaleX(0);
}
.site-header-burger-line:nth-child(3).is-open {
  transform: translateY(-6.5px) rotate(-45deg);
}

/* SP ドロワー */
.site-header-drawer {
  position: fixed;
  inset: 0;
  background: rgba(15, 15, 13, 0.96);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.4s ease;
}

.site-header-drawer.is-open {
  opacity: 1;
  pointer-events: auto;
}

.site-header-drawer-list {
  list-style: none;
  display: grid;
  gap: 2.5rem;
  text-align: center;
}

.site-header-drawer-link {
  font-family: var(--font-garamond);
  font-size: clamp(1.75rem, 6vw, 2.5rem);
  letter-spacing: 0.12em;
  color: rgba(255, 255, 255, 0.85);
  text-decoration: none;
  transition: color 0.2s ease;
  display: block;
}

.site-header-drawer-link:hover {
  color: #fff;
}

.site-header-drawer-soon {
  opacity: 0.3;
  cursor: default;
  font-size: clamp(1.5rem, 5vw, 2rem);
}

.site-header-drawer-airbnb {
  font-size: clamp(1rem, 3.5vw, 1.375rem);
  border: 1px solid rgba(255, 255, 255, 0.35);
  padding: 0.6em 2em;
  border-radius: 999px;
  margin-top: 0.5rem;
  display: inline-block;
  transition: background 0.25s ease, border-color 0.25s ease;
}

.site-header-drawer-airbnb:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.6);
}


.booking-float-wrap {
  position: fixed;
  bottom: 1.25rem;
  right: 1.25rem;
  z-index: 2147483647;
  pointer-events: auto;
}

.booking-float {
   font-family: var(--font-noto-serif-jp);
  background: #2f4f3e;
  color: #fff;
  border-radius: 999px;
  padding: clamp(10px, 1.5vw, 20px) clamp(20px, 3vw, 42px);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.28);
  font-weight: 600;
  line-height: 1.35;
  text-align: center;
  text-decoration: none;
  display: block;
  font-size: clamp(0.9rem, 1.8vw, 1.25rem);
  transition: background-color 0.3s ease, transform 0.3s ease,
    box-shadow 0.3s ease, opacity 0.3s ease;
  white-space: nowrap;
}

.booking-float .en {
  display: block;
  font-size: clamp(0.72rem, 1.2vw, 0.95rem);
  font-weight: 500;
  letter-spacing: 0.04em;
  opacity: 0.9;
  margin-top: 3px;
}

.booking-float:hover {
  background: #3d6550;
  transform: translateY(-2px);
}
.booking-float:active {
  transform: translateY(0);
}

.booking-float:focus-visible {
  outline: 2px solid #ffffffe6;
  outline-offset: -4px;
}

@media screen and (max-width: 768px) {
  .booking-float-wrap {
    bottom: 1rem;
    right: 1rem;
  }

  .booking-float {
    padding: 0.7em 1.4em;
    font-size: 0.875rem;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
  }

  .booking-float .en {
    font-size: 0.7rem;
  }
}
[id] {
  scroll-margin-top: var(--header-height);
}
#access {
  scroll-margin-top: 140px;
}
/* =========================
   Promises Section
========================= */

#promises .c-promises-list {
  display: grid;
  gap: 2.5rem;
}

#promises .c-promises-list > li {
  border-radius: var(--radius-sm);
}

/* 画像 */
#promises .c-promises-list > li > div[x-bind="inviewTarget"] {
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: var(--radius-sm);
}

#promises .c-promises-list > li > div[x-bind="inviewTarget"] > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
}

/* カード */
#promises .c-promises-card-copy {
  display: block;
  padding: 1.25rem 0.25rem 0;
}

/* タイトル */
#promises .c-promises-title-jp {
  font-size: 1.25rem;
  line-height: 1.5;
}

#promises .c-promises-title-en {
  font-size: 1.1rem;
  line-height: 1.4;
}

/* 説明 */
#promises .c-promises-desc-wrap {
  padding: 0.75rem 0 0.25rem;
  margin-top: 0.625rem;
  border-top: 1px solid currentColor;
  opacity: 0.6;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

#promises .c-promises-desc-jp {
  font-size: 0.9rem;
  line-height: 1.75;
  text-align: justify;
}

#promises .c-promises-desc-en {
  font-size: 0.85rem;
  line-height: 1.7;
}

/* ボタン */
.c-promises-toggle-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-family: var(--font-noto-sans-jp);
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.7);
  cursor: pointer;
  border: none;
  background: none;
  padding: 0;
  margin-top: 0.5rem;
  transition: color 0.25s ease;
}

.c-promises-toggle-btn:hover {
  color: #fff;
}

.c-promises-close-btn {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  margin-left: auto;
  margin-bottom: 0.625rem;
  font-family: var(--font-noto-sans-jp);
  font-size: 0.725rem;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.55);
  cursor: pointer;
  border: none;
  background: none;
  padding: 0;
  transition: color 0.2s ease;
}

.c-promises-close-btn:hover {
  color: rgba(255, 255, 255, 0.9);
}

.c-promises-close-btn::after {
  content: "×";
  font-size: 0.9rem;
  line-height: 1;
}
.anchor-offset {
  position: relative;
  top: -140px;
}



@media (max-width: 767px) {
  #promises .c-promises-list > li {
    min-height: unset;
  }

  #promises .c-promises-list > li > div[x-bind="inviewTarget"] {
    aspect-ratio: 16 / 9;
    position: static;
    height: auto;
  }

  #promises .c-promises-list > li > div[x-bind="inviewTarget"] > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  #promises .c-promises-card-copy {
    position: static;
    padding: 1rem 0.125rem 0;
  }

  #promises .c-promises-desc-wrap {
    display: flex !important;
    background: transparent;
  }
}
/* ================================================
   Local Guide Page
   ================================================ */

   .lg-section-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
  }
  
  .lg-hero-img-wrap {
    aspect-ratio: 21 / 9;
    overflow: hidden;
    border-radius: var(--radius-sm);
    transform: translateZ(0);
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    position: relative;
  }
  
  .lg-hero-img-wrap img,
  .lg-hero-img-wrap-inner {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    position: absolute;
    inset: 0;
    margin: 0;
    padding: 0;
  }

  /* Keep rounded corners stable while parallax image moves */
  .u-inview-mask-linear.rounded-sm,
  [x-data="parallaxWindow"].rounded-sm {
    overflow: hidden;
    border-radius: var(--radius-sm);
    isolation: isolate;
    transform: translateZ(0);
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
  }

  .u-inview-mask-linear.rounded-sm > picture,
  [x-data="parallaxWindow"].rounded-sm > picture {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: inherit;
    overflow: clip;
  }

  .u-inview-mask-linear.rounded-sm > picture > img,
  [x-data="parallaxWindow"].rounded-sm > picture > img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: translateZ(0);
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
  }

  .lg-list-item-ja {
    font-family: var(--font-shippori-mincho);
    font-size: clamp(1rem, 0.857rem + 0.298svw, 1.125rem);
    line-height: 1.7;
  }

  .lg-list-item-en {
    font-size: 0.875rem;
    line-height: 1.75;
    opacity: 0.6;
  }

  .lg-section-list-ja {
    display: grid !important;
    gap: 0.5rem !important;
    font-family: var(--font-noto-sans-jp) !important;
    font-size: 16px !important;
    line-height: 1.9 !important;
    list-style: disc;
    padding-left: 1.25rem;
    overflow: visible !important;
  }

  .lg-section-list-ja > li {
    display: list-item;
    visibility: visible !important;
    opacity: 1 !important;
  }

  .lg-section-title-en {
    font-size: clamp(2.75rem, 2.1rem + 1.4vw, 3.75rem) !important;
    line-height: 1;
  }



/* TOP */
.c-section-body-copy {
  font-family: var(--font-noto-sans-jp); 
  font-size: 0.9rem;
  line-height: 1.75;
  text-align: justify;
}

.c-section-body-copy + .c-section-body-copy {
  text-align: left; /* ← 英語段落だけ left */
}
.c-grain-filter-bg::after {
  display: none;
}
figure {
  margin: 0;
}
@media (max-width: 767px) {
  .about-itoga-text-ja {
    font-size: 1.125rem;
  }
  .c-intro-copy {
    padding-bottom: 4rem;
  }
	.access-detail-heading {
       gap: 0.25rem;
  }


  #stay .font-garamond {
    font-size:4.2rem !important;
  }

}
/* Additional styles extracted from main.css custom overrides */

.access-how-to-get {
  text-align: center;
  margin-top: 4rem;
}

.access-how-title {
  font-size: 1.25rem;
  letter-spacing: 0.1em;
  margin-bottom: 1.5rem;
}

.access-tab-buttons {
  display: flex;
  justify-content: center;
  gap: 1rem;
  margin-bottom: 2.5rem;
}

.access-tab-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
}

.access-tab-descriptions {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  align-items: center;
  margin-top: 1.5rem;
  padding-bottom: 2.5rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.access-desc-item {
  text-align: center;
  margin-top: 1rem;
}

.access-tab-desc {
  font-size: 1rem;
  color: #666;
  margin: 0;
  text-align: center;
}

.access-tab-btn {
  padding: 0.6em 2.5em;
  border: 1px solid currentColor;
  background: transparent;
  cursor: pointer;
  font-size: 0.875rem;
  letter-spacing: 0.08em;
  transition: background 0.2s, color 0.2s;
}

.access-tab-btn:hover {
  background: #fff;
  color: #1d201f;
}

.access-tab-btn.is-active {
  background: #fff;
  color: #1d201f;
  border-color: #1d201f;
}

.access-directions,
.access-directions-walk {
  grid-template-columns: 1fr !important;
  max-width: 740px;
  margin-left: auto;
  margin-right: auto;
}

.mv-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  width: 3rem;
  height: 3rem;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0.7;
  transition: opacity 0.3s ease;
}

.mv-arrow:hover {
  opacity: 1;
}

.mv-arrow-prev {
  left: 1.5rem;
}

.mv-arrow-next {
  right: 1.5rem;
}

.mv-arrow span {
  display: block;
  width: 0.75rem;
  height: 0.75rem;
  border-top: 1.5px solid #fff;
  border-right: 1.5px solid #fff;
}

.mv-arrow-prev span {
  transform: rotate(-135deg) translateX(-2px);
}

.mv-arrow-next span {
  transform: rotate(45deg) translateX(-2px);
}

.mv-counter {
  position: absolute;
  bottom: 2rem;
  right: 2rem;
  z-index: 10;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: #fff;
  font-family: var(--font-garamond);
  font-size: 0.875rem;
  letter-spacing: 0.08em;
  opacity: 0.8;
}

.mv-counter-sep {
  display: block;
  width: 1.5rem;
  height: 1px;
  background: rgba(255, 255, 255, 0.6);
}

.mv-dots {
  position: absolute;
  bottom: 2rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
  display: flex;
  gap: 0.5rem;
}

.mv-dot {
  width: 2rem;
  height: 2px;
  border-radius: 0;
  background: rgba(255, 255, 255, 0.35);
  cursor: pointer;
  transition: background 0.3s ease, width 0.3s ease;
}

.mv-dot.is-active {
  background: #fff;
  width: 3.5rem;
}

.footer-contact-block {
  margin-top: 1.75rem;
  padding-top: 1.75rem;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.footer-contact-note {
  font-size: 0.8125rem;
  line-height: 1.8;
  letter-spacing: 0.06em;
  opacity: 0.6;
  margin-bottom: 1rem;
}

.footer-booking-btn {
  display: inline-block;
  border: 1px solid rgba(255, 255, 255, 0.35);
  padding: 0.65em 1.5em;
  font-family: var(--font-noto-serif-jp);
  font-size: 0.8125rem;
  letter-spacing: 0.08em;
  opacity: 0.75;
  transition: opacity 0.25s ease, border-color 0.25s ease;
  white-space: nowrap;
}

.footer-booking-btn:hover {
  opacity: 1;
  border-color: rgba(255, 255, 255, 0.75);
}

.footer-inner {
  max-width: 90rem;
  margin-inline: auto;
  padding-inline: clamp(1.25rem, -4.46rem + 11.9svw, 6.25rem);
  padding-top: clamp(4rem, 6vw, 6rem);
  padding-bottom: 2.5rem;
}

.footer-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
  padding-bottom: 3rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

@media (min-width: 768px) {
  .footer-grid {
    grid-template-columns: 1fr auto auto;
    gap: clamp(3rem, 6cqi, 5rem);
  }
}

.footer-logo {
  display: inline-block;
  margin-bottom: 1.25rem;
}

.footer-logo img {
  height: 28px;
  width: auto;
  opacity: 0.88;
}

.footer-tagline {
  font-family: var(--font-noto-serif-jp);
  font-size: 0.8125rem;
  letter-spacing: 0.06em;
  opacity: 0.6;
  margin-bottom: 1rem;
}

.footer-address {
  font-style: normal;
  font-size: 0.8125rem;
  line-height: 1.9;
  letter-spacing: 0.05em;
  opacity: 0.55;
}

.footer-col-label {
  display: block;
  font-family: var(--font-garamond);
  font-size: clamp(0.8125rem, 1vw, 0.9375rem);
  letter-spacing: 0.1em;
  opacity: 0.45;
  margin-bottom: 1.25rem;
}

.footer-nav-list {
  display: grid;
  gap: 0.875rem;
}

.footer-nav-link {
  font-size: 0.8125rem;
  letter-spacing: 0.08em;
  opacity: 0.65;
  transition: opacity 0.25s ease;
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

.footer-nav-link:hover {
  opacity: 1;
}

.footer-nav-link-pdf-icon {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.footer-nav-link-pdf-icon svg {
  flex-shrink: 0;
  opacity: 0.6;
}

.footer-nav-link-pdf-badge {
  font-size: 0.625rem;
  letter-spacing: 0.1em;
  opacity: 0.55;
}

.footer-sns-list {
  display: grid;
  gap: 0.875rem;
  margin-bottom: 2.25rem;
}

.footer-sns-link {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  font-size: 0.8125rem;
  letter-spacing: 0.08em;
  opacity: 0.65;
  transition: opacity 0.25s ease;
}

.footer-sns-link:hover {
  opacity: 1;
}

.footer-bottom {
  margin-top: 2rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.footer-copyright,
.footer-privacy-link {
  font-size: 0.6875rem;
  letter-spacing: 0.06em;
  opacity: 0.38;
  transition: opacity 0.25s ease;
}

.footer-privacy-link:hover {
  opacity: 0.7;
}

.c-section-body-copy {
  font-size: 0.9rem;
  line-height: 1.75;
  text-align: justify;
}

.lg-section-title-en {
  font-size: clamp(3.5rem, 5vw, 4.25rem) !important;
}


/* 追記 */

/* TOP */
.c-section-body-copy {
  font-size: 0.9rem;
  line-height: 1.75;
  text-align: justify;
  font-family: var(--font-noto-sans-jp); /* ← 追加 */
}

@media (max-width: 767px) {
  .about-itoga-text-ja {
    font-size: 1.125rem;
  }
}
@media (max-width: 767px) {
  .c-intro-copy {
    padding-bottom: 4rem;
  }
}

@media (max-width: 767px) {
  .access-detail-heading {
    gap: 0.25rem;
  }
}
@media (min-width: 768px) {
  .lg-page-title-row {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: start;
  }
}

.lg-section-list-ja {
  font-size: 0.9375rem !important;
  display: grid;
  gap: 0.75rem;
  margin-top: 2rem;
  padding-left: 0;
 
}


@media (max-width: 767px) {
  .lg-section-list-ja {
    font-size: 0.875rem !important;
    gap: 0.625rem;
    margin-top: 1.5rem;
  }
}
.lg-list-title {
  display: block;
  font-family: var(--font-shippori-mincho);
  font-size: 1.4375rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  line-height: 1.45;
}

.lg-list-meta {
  display: block;
  font-size: 0.8125rem;
  opacity: 0.55;
  letter-spacing: 0.06em;
  margin-top: 0.1rem;
  margin-bottom: 0.35rem;
}

.lg-list-desc {
  font-size: 0.875rem;
  line-height: 1.8;
  letter-spacing: 0.04em;
}
.lg-list-title-en {
  display: block;
  font-family: var(--font-garamond);
  font-size: 1.125rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  line-height: 1.4;
}
.lg-img-col {
  display: grid;
  gap: 1rem;
  align-content: start;
}

.lg-img-single {
  aspect-ratio: 16 / 9;
  border-radius: var(--radius-sm);
  overflow: hidden;
}

.lg-img-single img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
.lg-img-clip {
  clip-path: inset(0 round var(--radius-sm));
  overflow: hidden;
}
[x-data="parallaxWindow"].rounded-sm {
  isolation: isolate;
}

/* Dining image grid */
.lg-img-col-wrap {
  align-self: start;
}

.lg-img-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.5rem;
  align-self: start;
  grid-auto-flow: dense;
}

.lg-img-item {
  aspect-ratio: 1 / 1;
  overflow: hidden;
    border-radius: var(--radius-sm);
}

.lg-img-item.span-2 {
  grid-column: span 2;
  grid-row: span 2;   
  aspect-ratio: auto;
}

.lg-img-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}


@media (max-width: 768px) {
  .access-lang-switch {
    justify-content: center;
  }
	.access-detail-row{
		gap: 0.5rem;
	}
	.access-detail-icon{
		justify-content: flex-start;
    	width: 30px;
    	border: 0;
	}
}