@layer global, reset, base, vendor, layout, components, site, page, javascript, utility;

@layer global{

/* ============================================================
 * global — CSS カスタムプロパティ（デザイントークン）
 *
 * プロジェクトに合わせてカラー・フォント・サイズを変更してください。
 * ============================================================ */

:root {
  /* ---- Breakpoints ---- */
  --bp-xxs: 375;
  --bp-xs: 475;
  --bp-sm: 640;
  --bp-md: 768;
  --bp-lg: 1024;
  --bp-xl: 1280;
  --bp-xxl: 1536;
  --bp-xxxl: 1920;

  /* ---- Colors ---- */
  --color-back: #fff;
  --color-back-sub: #f8f8f8;
  --color-gray: #999999;
  --color-gray-dark: #666666;
  --color-text: #353333;
  --color-primary: #5b4c47;
  --color-secondary: #5b4c47;
  --color-cta: #d2653a;
  --color-error: #d30000;

  --drop-shadow: drop-shadow(
    0 0 1.25rem color-mix(in srgb, black 10%, transparent)
  );

  /* ---- Fonts ---- */
  --fontFamily-default: "Zen Kaku Gothic New", sans-serif;
  --fontFamily-complex: "Lexend", "Zen Kaku Gothic New", sans-serif;
  --fontFamily-lexend: "Lexend", sans-serif;

  /* ---- Sizing ---- */
  --height-design: 1300;
  --height-header: 89;
  --height-header-sp: 91;
  --height-design-sp: 667;
  --line-clamp: 3;
  --line-height-auto: 1.4375;
  --scroll-padding-top: 70;
  --scroll-padding-top-sp: 94;
  --scroll-threshold: calc(500 / 1300 * 100vw);

  /* ---- Spacing ---- */
  --spacing-sm: 3.125rem;
  --spacing-md: 5rem;
  --spacing-lg: 6.25rem;

  /* ---- Layout ---- */
  --width-design: 1300;
  --width-design-sp: 375;
  --width-inner-lg: 1200;
  --width-inner: 1100;
  --width-inner-sm: 800;

  /* ---- Side Navigation ---- */
  --width-sidenav: 200;
  --width-content: 600;

  /* ---- z-index ---- */
  --zIndex-mainvisual: 1;
  --zIndex-content: 2;
  --zIndex-header: 40;
  --zIndex-spmenu: 41;
  --zIndex-toggle: 42;
  --zIndex-modal: 43;
  --zIndex-back: 30;
  --zIndex-splash: 50;

  /* ---- Misc ---- */
  --leading-trim: calc((1em - 1lh) / 2);
  --gutter: 1.25rem;
  --gutter-half: 0.625rem;

  /* ---- Easing ---- */
  --ease-in-sine: cubic-bezier(0.47, 0, 0.745, 0.715);
  --ease-out-sine: cubic-bezier(0.39, 0.575, 0.565, 1);
  --ease-in-out-sine: cubic-bezier(0.445, 0.05, 0.55, 0.95);
  --ease-in-quad: cubic-bezier(0.55, 0.085, 0.68, 0.53);
  --ease-out-quad: cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --ease-in-out-quad: cubic-bezier(0.455, 0.03, 0.515, 0.955);
  --ease-in-cubic: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  --ease-out-cubic: cubic-bezier(0.215, 0.61, 0.355, 1);
  --ease-in-out-cubic: cubic-bezier(0.645, 0.045, 0.355, 1);
  --ease-in-quart: cubic-bezier(0.895, 0.03, 0.685, 0.22);
  --ease-out-quart: cubic-bezier(0.165, 0.84, 0.44, 1);
  --ease-in-out-quart: cubic-bezier(0.77, 0, 0.175, 1);
  --ease-in-quint: cubic-bezier(0.755, 0.05, 0.855, 0.06);
  --ease-out-quint: cubic-bezier(0.23, 1, 0.32, 1);
  --ease-in-out-quint: cubic-bezier(0.86, 0, 0.07, 1);
  --ease-in-expo: cubic-bezier(0.95, 0.05, 0.795, 0.035);
  --ease-out-expo: cubic-bezier(0.19, 1, 0.22, 1);
  --ease-in-out-expo: cubic-bezier(1, 0, 0, 1);
  --ease-in-circ: cubic-bezier(0.6, 0.04, 0.98, 0.335);
  --ease-out-circ: cubic-bezier(0.075, 0.82, 0.165, 1);
  --ease-in-out-circ: cubic-bezier(0.785, 0.135, 0.15, 0.86);
  --ease-in-back: cubic-bezier(0.6, -0.28, 0.735, 0.045);
  --ease-out-back: cubic-bezier(0.175, 0.885, 0.32, 1.275);
  --ease-in-out-back: cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

/* @font-face {
  font-family: "CustomFont";
  src: url(../fonts/CustomFont.otf) format("opentype");
  font-weight: 400;
  font-style: normal;
} */

@media screen and (max-width: 1024px) {
  :root {
    --height-header: 57;
  }
}

@media screen and (max-width: 768px) {
  :root {
    --scroll-threshold: calc(300 / 400 * 100vw);
    --spacing-sm: 1.875rem;
    --spacing-md: 3.125rem;
    --spacing-lg: 3.125rem;
  }
}
}

@layer reset{

/*! destyle.css v4.0.1 | MIT License | https://github.com/nicolas-cusan/destyle.css */

/* Reset box-model and set borders */
/* ============================================ */

*,
::before,
::after {
  box-sizing: border-box;
  border-style: solid;
  border-width: 0;
  min-width: 0;
}

/* Document */
/* ============================================ */

/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 * 3. Use a more readable tab size.
 */

html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
  tab-size: 4; /* 3 */
}

/* Sections */
/* ============================================ */

/**
 * Remove the margin in all browsers.
 */

body {
  margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */

main {
  display: block;
}

/* Vertical rhythm */
/* ============================================ */

p,
table,
blockquote,
address,
pre,
iframe,
form,
figure,
dl {
  margin: 0;
}

/* Headings */
/* ============================================ */

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
  margin: 0;
}

/* Lists (enumeration) */
/* ============================================ */

ul,
ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

/* Lists (definition) */
/* ============================================ */

dt {
  font-weight: bold;
}

dd {
  margin-left: 0;
}

/* Grouping content */
/* ============================================ */

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */

hr {
  box-sizing: content-box; /* 1 */
  height: 0; /* 1 */
  overflow: visible; /* 2 */
  border-top-width: 1px;
  margin: 0;
  clear: both;
  color: inherit;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

pre {
  font-family: monospace, monospace; /* 1 */
  font-size: inherit; /* 2 */
}

address {
  font-style: inherit;
}

/* Text-level semantics */
/* ============================================ */

/**
 * Remove the gray background on active links in IE 10.
 */

a {
  background-color: transparent;
  text-decoration: none;
  color: inherit;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */

abbr[title] {
  text-decoration: underline dotted; /* 2 */
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */

b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

code,
kbd,
samp {
  font-family: monospace, monospace; /* 1 */
  font-size: inherit; /* 2 */
}

/**
 * Add the correct font size in all browsers.
 */

small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Replaced content */
/* ============================================ */

/**
 * Prevent vertical alignment issues.
 */

svg,
img,
embed,
object,
iframe {
  vertical-align: bottom;
}

/* Forms */
/* ============================================ */

/**
 * Reset form fields to make them styleable.
 */

button,
input,
optgroup,
select,
textarea {
  -webkit-appearance: none;
  appearance: none;
  vertical-align: middle;
  color: inherit;
  font: inherit;
  background: transparent;
  padding: 0;
  margin: 0;
  border-radius: 0;
  text-align: inherit;
  text-transform: inherit;
}

/**
 * Correct cursors for clickable elements.
 */

button,
[type="button"],
[type="reset"],
[type="submit"] {
  cursor: pointer;
}

button:disabled,
[type="button"]:disabled,
[type="reset"]:disabled,
[type="submit"]:disabled {
  cursor: default;
}

/**
 * Improve outlines for Firefox and unify style with input elements & buttons.
 */

:-moz-focusring {
  outline: auto;
}

select:disabled {
  opacity: inherit;
}

/**
 * Remove padding
 */

option {
  padding: 0;
}

/**
 * Reset to invisible
 */

fieldset {
  margin: 0;
  padding: 0;
  min-width: 0;
}

legend {
  padding: 0;
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */

progress {
  vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */

textarea {
  overflow: auto;
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * Correct the outline style in Safari.
 */

[type="search"] {
  outline-offset: -2px;
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */

[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Fix font inheritance.
 */

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/**
 * Fix appearance for Firefox
 */
[type="number"] {
  -moz-appearance: textfield;
}

/**
 * Clickable labels
 */

label[for] {
  cursor: pointer;
}

/* Interactive */
/* ============================================ */

/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */

details {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */

summary {
  display: list-item;
}

/*
 * Remove outline for editable content.
 */

[contenteditable]:focus {
  outline: auto;
}

/* Tables */
/* ============================================ */

/**
 * 1. Correct table border color inheritance in all Chrome and Safari.
 */

table {
  border-color: inherit; /* 1 */
  border-collapse: collapse;
}

caption {
  text-align: left;
}

td,
th {
  vertical-align: top;
  padding: 0;
}

th {
  text-align: left;
  font-weight: bold;
}
}

@layer base{

/* ============================================================
 * base — ベースラインスタイル
 *
 * リセット後の最低限のスタイル定義。
 * サイト全体に適用される基礎的なルール。
 * ============================================================ */

html {
  scroll-padding-top: calc(var(--scroll-padding-top) * 1px + 1.25rem);
}

@media screen and (max-width: 768px) {
  html {
    scroll-padding-top: calc(var(--scroll-padding-top-sp) * 1px);
  }
}

@media screen and (max-width: 599.98px) {
  html {
    font-size: max(12px, calc(16 / 600 * 100vw));
  }
}

* {
  min-width: 0;
}
body {
  background: url("../images/site/texture_noise.png") repeat;
  color: var(--color-text);
  font-family: var(--fontFamily-default);
  overflow-wrap: break-word;
  text-rendering: optimizeLegibility;
  overflow-x: clip;
  line-height: var(--line-height-auto);
}

:where(th) {
  font-weight: 400;
}

iframe {
  border: 0;
}

li {
  list-style: none;
}

button {
  cursor: pointer;
}

summary {
  display: block;
  list-style: none;
}

summary::-webkit-details-marker {
  display: none;
}

a {
  color: inherit;
  text-decoration: none;
  text-decoration-skip-ink: auto;
}

code {
  white-space: pre-wrap;
}

pre {
  font-family: var(--fontFamily-default);
  white-space: pre-wrap;
}

figure {
  max-width: 100%;
}

picture > img {
  max-width: 100%;
}

picture > source {
  max-width: 100%;
}

img {
  height: auto;
  image-rendering: -webkit-optimize-contrast;
  image-rendering: crisp-edges;
  max-width: 100%;
  vertical-align: middle;
  display: block;
}

main {
  display: block;
}

@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}

/* ---- Form resets ---- */

input {
  min-width: 0;
}

input:focus {
  outline: 2px solid var(--color-primary);
}

input:focus-visible {
  outline: 2px solid var(--color-primary);
}

button {
  font-size: 1rem;
}

optgroup {
  font-size: 1rem;
}

textarea {
  resize: none;
}

textarea:focus {
  outline: 2px solid var(--color-primary);
}

textarea:focus-visible {
  outline: 2px solid var(--color-primary);
}

select {
  font-size: 1rem;
}

select:focus {
  outline: 2px solid var(--color-primary);
}

select:focus-visible {
  outline: 2px solid var(--color-primary);
}

::placeholder {
  color: #ccc;
}

label {
  cursor: pointer;
}

/* スピンボタン非表示 (Chrome / Safari) */
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button,
input[type="date"]::-webkit-outer-spin-button,
input[type="date"]::-webkit-inner-spin-button {
  appearance: none;
  display: none;
  margin: 0;
}

/* スピンボタン非表示 (FireFox) */
input[type="number"],
input[type="date"] {
  appearance: textfield;
}

/* ---- Radio / Checkbox ---- */

input[type="radio"],
input[type="checkbox"] {
  opacity: 0;
  position: absolute;
}

input[type="radio"] + span,
input[type="checkbox"] + span {
  cursor: pointer;
  display: inline-block;
  line-height: 1;
  padding: 0.3em 0.3em 0.3em 2em;
  position: relative;
  vertical-align: middle;
}

input[type="radio"]:focus-visible + span,
input[type="checkbox"]:focus-visible + span {
  outline: 2px solid var(--color-primary);
}

/* Radio */
input[type="radio"] + span::before {
  background: #fff;
  border: 2px solid var(--color-primary);
  border-radius: 50%;
  content: "";
  height: calc(23 / 16 * 1em);
  left: 0;
  line-height: 1;
  position: absolute;
  top: 1px;
  width: calc(23 / 16 * 1em);
}

input[type="radio"] + span::after {
  content: "";
  display: none;
}

input[type="radio"]:checked + span::after {
  background: var(--color-primary);
  border-radius: 50%;
  display: block;
  height: calc(13 / 16 * 1em);
  left: calc(5 / 16 * 1em);
  line-height: 1;
  margin: 0;
  padding: 0;
  position: absolute;
  top: calc(6 / 16 * 1em);
  width: calc(13 / 16 * 1em);
}

/* Checkbox */
input[type="checkbox"] + span::before {
  position: absolute;
  top: 0.1em;
  left: 0;
  content: "";
  width: calc(20 / 16 * 1em);
  height: calc(20 / 16 * 1em);
  border: 1px solid var(--color-primary);
  background: #fff;
  line-height: 1;
  vertical-align: middle;
}

input[type="checkbox"] + span::after {
  content: "";
  display: none;
}

input[type="checkbox"]:checked + span::after {
  display: block;
  position: absolute;
  top: 0.1em;
  left: 0.4em;
  width: 0.5em;
  height: 1em;
  content: "";
  border-bottom: 3px solid var(--color-primary);
  border-right: 3px solid var(--color-primary);
  transform: rotate(45deg);
}
}

@layer vendor{

/**
 * Swiper 12.1.2
 * Most modern mobile touch slider and framework with hardware accelerated transitions
 * https://swiperjs.com
 *
 * Copyright 2014-2026 Vladimir Kharlampidi
 *
 * Released under the MIT License
 *
 * Released on: February 18, 2026
 */

:root{--swiper-theme-color:#007aff}:host{display:block;margin-left:auto;margin-right:auto;position:relative;z-index:1}.swiper{display:block;list-style:none;margin-left:auto;margin-right:auto;overflow:hidden;padding:0;position:relative;z-index:1}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{box-sizing:initial;display:flex;height:100%;position:relative;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);width:100%;z-index:1}.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{transform:translateZ(0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide{display:block;flex-shrink:0;height:100%;position:relative;transition-property:transform;width:100%}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{backface-visibility:hidden;transform:translateZ(0)}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px;.swiper-cube-shadow,.swiper-slide{transform-style:preserve-3d}}.swiper-css-mode{>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none;&::-webkit-scrollbar{display:none}}>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}&.swiper-horizontal{>.swiper-wrapper{scroll-snap-type:x mandatory}>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-slides-offset-before);scroll-margin-inline-start:var(--swiper-slides-offset-before)}>.swiper-wrapper>.swiper-slide:last-child{margin-inline-end:var(--swiper-slides-offset-after)}}&.swiper-vertical{>.swiper-wrapper{scroll-snap-type:y mandatory}>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-slides-offset-before);scroll-margin-block-start:var(--swiper-slides-offset-before)}>.swiper-wrapper>.swiper-slide:last-child{margin-block-end:var(--swiper-slides-offset-after)}}&.swiper-free-mode{>.swiper-wrapper{scroll-snap-type:none}>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}}&.swiper-centered{>.swiper-wrapper:before{content:"";flex-shrink:0;order:9999}>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}}&.swiper-centered.swiper-horizontal{>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}>.swiper-wrapper:before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}}&.swiper-centered.swiper-vertical{>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}>.swiper-wrapper:before{height:var(--swiper-centered-offset-after);min-width:1px;width:100%}}}.swiper-3d{.swiper-slide-shadow,.swiper-slide-shadow-bottom,.swiper-slide-shadow-left,.swiper-slide-shadow-right,.swiper-slide-shadow-top{height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:10}.swiper-slide-shadow{background:#00000026}.swiper-slide-shadow-left{background-image:linear-gradient(270deg,#00000080,#0000)}.swiper-slide-shadow-right{background-image:linear-gradient(90deg,#00000080,#0000)}.swiper-slide-shadow-top{background-image:linear-gradient(0deg,#00000080,#0000)}.swiper-slide-shadow-bottom{background-image:linear-gradient(180deg,#00000080,#0000)}}.swiper-lazy-preloader{border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top:4px solid #0000;box-sizing:border-box;height:42px;left:50%;margin-left:-21px;margin-top:-21px;position:absolute;top:50%;transform-origin:50%;width:42px;z-index:10}.swiper-watch-progress .swiper-slide-visible,.swiper:not(.swiper-watch-progress){.swiper-lazy-preloader{animation:swiper-preloader-spin 1s linear infinite}}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.swiper-virtual .swiper-slide{-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode{.swiper-wrapper:after{content:"";left:0;pointer-events:none;position:absolute;top:0}}.swiper-virtual.swiper-css-mode.swiper-horizontal{.swiper-wrapper:after{height:1px;width:var(--swiper-virtual-size)}}.swiper-virtual.swiper-css-mode.swiper-vertical{.swiper-wrapper:after{height:var(--swiper-virtual-size);width:1px}}:root{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{align-items:center;color:var(--swiper-navigation-color,var(--swiper-theme-color));cursor:pointer;display:flex;height:var(--swiper-navigation-size);justify-content:center;position:absolute;width:var(--swiper-navigation-size);z-index:10;&.swiper-button-disabled{cursor:auto;opacity:.35;pointer-events:none}&.swiper-button-hidden{cursor:auto;opacity:0;pointer-events:none}.swiper-navigation-disabled &{display:none!important}svg{height:100%;object-fit:contain;transform-origin:center;width:100%;fill:currentColor;pointer-events:none}}.swiper-button-lock{display:none}.swiper-button-next,.swiper-button-prev{margin-top:calc(0px - var(--swiper-navigation-size)/2);top:var(--swiper-navigation-top-offset,50%)}.swiper-button-prev{left:var(--swiper-navigation-sides-offset,4px);right:auto;.swiper-navigation-icon{transform:rotate(180deg)}}.swiper-button-next{left:auto;right:var(--swiper-navigation-sides-offset,4px)}.swiper-horizontal{.swiper-button-next,.swiper-button-prev,~.swiper-button-next,~.swiper-button-prev{margin-left:0;margin-top:calc(0px - var(--swiper-navigation-size)/2);top:var(--swiper-navigation-top-offset,50%)}&.swiper-rtl .swiper-button-next,&.swiper-rtl~.swiper-button-next,&~.swiper-button-prev,.swiper-button-prev{left:var(--swiper-navigation-sides-offset,4px);right:auto}&.swiper-rtl .swiper-button-prev,&.swiper-rtl~.swiper-button-prev,&~.swiper-button-next,.swiper-button-next{left:auto;right:var(--swiper-navigation-sides-offset,4px)}&.swiper-rtl .swiper-button-next,&.swiper-rtl~.swiper-button-next,&~.swiper-button-prev,.swiper-button-prev{.swiper-navigation-icon{transform:rotate(180deg)}}&.swiper-rtl .swiper-button-prev,&.swiper-rtl~.swiper-button-prev{.swiper-navigation-icon{transform:rotate(0deg)}}}.swiper-vertical{.swiper-button-next,.swiper-button-prev,~.swiper-button-next,~.swiper-button-prev{left:var(--swiper-navigation-top-offset,50%);margin-left:calc(0px - var(--swiper-navigation-size)/2);margin-top:0;right:auto}.swiper-button-prev,~.swiper-button-prev{bottom:auto;top:var(--swiper-navigation-sides-offset,4px);.swiper-navigation-icon{transform:rotate(-90deg)}}.swiper-button-next,~.swiper-button-next{bottom:var(--swiper-navigation-sides-offset,4px);top:auto;.swiper-navigation-icon{transform:rotate(90deg)}}}.swiper-pagination{position:absolute;text-align:center;transform:translateZ(0);transition:opacity .3s;z-index:10;&.swiper-pagination-hidden{opacity:0}&.swiper-pagination-disabled,.swiper-pagination-disabled>&{display:none!important}}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:var(--swiper-pagination-bottom,8px);left:0;top:var(--swiper-pagination-top,auto);width:100%}.swiper-pagination-bullets-dynamic{font-size:0;overflow:hidden;.swiper-pagination-bullet{position:relative;transform:scale(.33)}.swiper-pagination-bullet-active,.swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullet-active-next-next{transform:scale(.33)}}.swiper-pagination-bullet{background:var(--swiper-pagination-bullet-inactive-color,#000);border-radius:var(--swiper-pagination-bullet-border-radius,50%);display:inline-block;height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));opacity:var(--swiper-pagination-bullet-inactive-opacity,.2);width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));button&{appearance:none;border:none;box-shadow:none;margin:0;padding:0}.swiper-pagination-clickable &{cursor:pointer}&:only-child{display:none!important}}.swiper-pagination-bullet-active{background:var(--swiper-pagination-color,var(--swiper-theme-color));opacity:var(--swiper-pagination-bullet-opacity,1)}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{left:var(--swiper-pagination-left,auto);right:var(--swiper-pagination-right,8px);top:50%;transform:translate3d(0,-50%,0);.swiper-pagination-bullet{display:block;margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0}&.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px;.swiper-pagination-bullet{display:inline-block;transition:transform .2s,top .2s}}}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-horizontal.swiper-pagination-bullets{.swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}&.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap;.swiper-pagination-bullet{transition:transform .2s,left .2s}}}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:transform .2s,right .2s}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color,inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color,#00000040);position:absolute;.swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));height:100%;left:0;position:absolute;top:0;transform:scale(0);transform-origin:left top;width:100%}.swiper-rtl & .swiper-pagination-progressbar-fill{transform-origin:right top}&.swiper-pagination-horizontal,&.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-horizontal>&,.swiper-vertical>&.swiper-pagination-progressbar-opposite{height:var(--swiper-pagination-progressbar-size,4px);left:0;top:0;width:100%}&.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,&.swiper-pagination-vertical,.swiper-horizontal>&.swiper-pagination-progressbar-opposite,.swiper-vertical>&{height:100%;left:0;top:0;width:var(--swiper-pagination-progressbar-size,4px)}}.swiper-pagination-lock{display:none}.swiper-scrollbar{background:var(--swiper-scrollbar-bg-color,#0000001a);border-radius:var(--swiper-scrollbar-border-radius,10px);position:relative;touch-action:none;&.swiper-scrollbar-disabled,.swiper-scrollbar-disabled>&{display:none!important}&.swiper-scrollbar-horizontal,.swiper-horizontal>&{bottom:var(--swiper-scrollbar-bottom,4px);height:var(--swiper-scrollbar-size,4px);left:var(--swiper-scrollbar-sides-offset,1%);position:absolute;top:var(--swiper-scrollbar-top,auto);width:calc(100% - var(--swiper-scrollbar-sides-offset, 1%)*2);z-index:50}&.swiper-scrollbar-vertical,.swiper-vertical>&{height:calc(100% - var(--swiper-scrollbar-sides-offset, 1%)*2);left:var(--swiper-scrollbar-left,auto);position:absolute;right:var(--swiper-scrollbar-right,4px);top:var(--swiper-scrollbar-sides-offset,1%);width:var(--swiper-scrollbar-size,4px);z-index:50}}.swiper-scrollbar-drag{background:var(--swiper-scrollbar-drag-bg-color,#00000080);border-radius:var(--swiper-scrollbar-border-radius,10px);height:100%;left:0;position:relative;top:0;width:100%}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{align-items:center;display:flex;height:100%;justify-content:center;text-align:center;width:100%;>canvas,>img,>svg{max-height:100%;max-width:100%;object-fit:contain}}.swiper-slide-zoomed{cursor:move;touch-action:none}.swiper .swiper-notification{left:0;opacity:0;pointer-events:none;position:absolute;top:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{margin:0 auto;transition-timing-function:ease-out}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-direction:column;flex-wrap:wrap}.swiper-fade{&.swiper-free-mode{.swiper-slide{transition-timing-function:ease-out}}.swiper-slide{pointer-events:none;transition-property:opacity;.swiper-slide{pointer-events:none}}.swiper-slide-active{pointer-events:auto;& .swiper-slide-active{pointer-events:auto}}}.swiper.swiper-cube{overflow:visible}.swiper-cube{.swiper-slide{backface-visibility:hidden;height:100%;pointer-events:none;transform-origin:0 0;visibility:hidden;width:100%;z-index:1;.swiper-slide{pointer-events:none}}&.swiper-rtl .swiper-slide{transform-origin:100% 0}.swiper-slide-active{&,& .swiper-slide-active{pointer-events:auto}}.swiper-slide-active,.swiper-slide-next,.swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-cube-shadow{bottom:0;height:100%;left:0;opacity:.6;position:absolute;width:100%;z-index:0;&:before{background:#000;bottom:0;content:"";filter:blur(50px);left:0;position:absolute;right:0;top:0}}}.swiper-cube{.swiper-slide-next+.swiper-slide{pointer-events:auto;visibility:visible}}.swiper-cube{.swiper-slide-shadow-cube.swiper-slide-shadow-bottom,.swiper-slide-shadow-cube.swiper-slide-shadow-left,.swiper-slide-shadow-cube.swiper-slide-shadow-right,.swiper-slide-shadow-cube.swiper-slide-shadow-top{backface-visibility:hidden;z-index:0}}.swiper.swiper-flip{overflow:visible}.swiper-flip{.swiper-slide{backface-visibility:hidden;pointer-events:none;z-index:1;.swiper-slide{pointer-events:none}}.swiper-slide-active{&,& .swiper-slide-active{pointer-events:auto}}}.swiper-flip{.swiper-slide-shadow-flip.swiper-slide-shadow-bottom,.swiper-slide-shadow-flip.swiper-slide-shadow-left,.swiper-slide-shadow-flip.swiper-slide-shadow-right,.swiper-slide-shadow-flip.swiper-slide-shadow-top{backface-visibility:hidden;z-index:0}}.swiper-creative{.swiper-slide{backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}}.swiper.swiper-cards{overflow:visible}.swiper-cards{.swiper-slide{backface-visibility:hidden;overflow:hidden;transform-origin:center bottom}}
}

@layer layout{

/* ============================================================
 * layout — レイアウト・グリッド
 *
 * l- プレフィックスのクラス。
 * コンテナ幅・グリッド・ページレイアウトを定義。
 * ============================================================ */

.l-main {
  margin-left: calc(var(--width-sidenav) * 1px);
}

@media screen and (max-width: 1024px) {
  .l-main {
    margin-left: 0;
  }
}

.l-content {
  max-width: calc(var(--width-content) * 1px);
  margin-left: auto;
  margin-right: auto;
  position: relative;
  z-index: 3;
  overflow-x: clip;
  background: url("../images/site/texture_noise.png") repeat;
}

.l-col-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.l-inner {
  max-width: calc(var(--width-inner) * 1px);
  margin-left: auto;
  margin-right: auto;
}

.l-inner-lg {
  max-width: calc(var(--width-inner-lg) * 1px);
  margin-left: auto;
  margin-right: auto;
}

.l-page-main {
  border-radius: min(5rem, calc(80 / 1300 * 100vw));
  padding-top: 7%;
  padding-bottom: 7%;
  position: relative;
  z-index: 5;
}

@media screen and (max-width: 768px) {
  .l-page-main {
    padding-top: 12%;
    padding-bottom: 12%;
    border-radius: 1.25rem;
  }
}

.l-page-upper {
  position: relative;
  z-index: 2;
}

.l-page-main {
  margin-top: calc(-75 / 1300 * 100vw);
}

.l-page-main + .s-footer {
  padding-top: 8%;
  margin-top: -8%;
}

/* ---- Grid variants ---- */

.l-grid--400-650 {
  display: grid;
  grid-template-columns: 400fr 650fr;
  column-gap: 3.125rem;
}

@media screen and (max-width: 768px) {
  .l-grid--400-650 {
    row-gap: 1.875rem;
    grid-template-columns: 1fr;
  }
}

.l-grid--650-400 {
  display: grid;
  grid-template-columns: 650fr 400fr;
  column-gap: 3.125rem;
}

@media screen and (max-width: 768px) {
  .l-grid--650-400 {
    row-gap: 1.875rem;
    grid-template-columns: 1fr;
  }
}

.l-grid--col-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 2.5rem;
}

@media screen and (max-width: 768px) {
  .l-grid--col-2 {
    row-gap: 1.875rem;
    grid-template-columns: 1fr;
  }
}

.l-grid--col-3 {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  column-gap: 3.4375rem;
}

@media screen and (max-width: 768px) {
  .l-grid--col-3 {
    row-gap: 3.125rem;
    grid-template-columns: 1fr;
  }
}
}

@layer components{
.c-text-main {
  font-size: 1.375rem;
  line-height: calc(36 / 22);
  font-weight: 500;
}
}

@layer components{

/* ---- c-button-arrow ---- */

.c-button-arrow {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1;
  color: var(--color-primary);
  transition: opacity 0.3s;
}

.c-button-arrow:hover {
  opacity: 0.7;
}

.c-button-arrow__text {
  /* テキスト部分 */
}

.c-button-arrow__arrow {
  flex-shrink: 0;
}
}

@layer components{

/* ---- c-button-anchor ---- */

.c-button-anchor {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--color-primary);
  transition: opacity 0.3s;
}

.c-button-anchor:hover {
  opacity: 0.7;
}
}

@layer components{

/* ---- c-hamburger ---- */

.c-hamburger {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 2.75rem;
  height: 2.75rem;
  background: none;
  border: none;
  cursor: pointer;
  z-index: var(--zIndex-toggle);
  position: relative;
}

.c-hamburger__line {
  display: block;
  width: 1.5rem;
  height: 2px;
  background-color: var(--color-primary);
  transition:
    transform 0.3s,
    opacity 0.3s;
}

.c-hamburger__text {
  font-size: 0.625rem;
  font-weight: 700;
  color: var(--color-primary);
  line-height: 1;
}

.c-hamburger._is-open .c-hamburger__line:nth-child(1) {
  transform: translateY(4px) rotate(45deg);
}

.c-hamburger._is-open .c-hamburger__line:nth-child(2) {
  transform: translateY(-4px) rotate(-45deg);
}

.c-hamburger._is-open .c-hamburger__text {
  opacity: 0;
}
}

@layer components{

/* ---- c-icon-arrow-circle ---- */

.c-icon-arrow-circle {
  flex-shrink: 0;
}
}

@layer components{

/* ---- c-label-gray ---- */

.c-label-gray {
  display: inline-block;
  padding: 4px 0.75rem;
  background-color: #f0f0f0;
  border-radius: 4px;
  font-size: 0.8125rem;
  line-height: 1.5;
}
}

@layer components{

/* ---- c-news-row ---- */

.c-news-row__date {
  font-size: 1.625rem;
  font-family: var(--fontFamily-lexend);
  line-height: calc(60 / 26);
}

.c-news-row__layout {
  display: grid;
  align-items: center;
  grid-template-columns: 1fr 2.8125rem;
  column-gap: 1.25rem;
}

.c-news-row__title {
  font-size: 1.5rem;
  line-height: calc(42 / 24);
}
.c-news-row__arrow {
  color: #5b4c47;
  transition: color 0.3s;
}

.c-news-row__link:hover .c-news-row__arrow {
  color: var(--color-cta);
}
}

@layer components{

/* ---- c-accordion-main ---- */

.c-accordion-main {
  background-color: #fff;
  border-radius: 2.5rem;
  box-shadow: 4px 4px 0 0 color-mix(in srgb, #dcd1d1, transparent);
}

.c-accordion-main._brown {
  background-color: #f4f0ee;
}

.c-accordion-main__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.9375rem 1.25rem 0.9375rem 1.25rem;
  cursor: pointer;
  list-style: none;
}

.c-accordion-main__heading {
  font-weight: 700;
  font-size: 1.625rem;
  line-height: 1.5;
  color: var(--color-primary);
}

.c-accordion-main__plus,
.c-accordion-main__minus {
  flex-shrink: 0;
}

/* closed: show plus, hide minus */
.c-accordion-main__plus {
  display: block;
}

.c-accordion-main__minus {
  display: none;
}

/* open: show minus, hide plus */
.c-accordion-main__summary[aria-expanded="true"] .c-accordion-main__plus {
  display: none;
}

.c-accordion-main__summary[aria-expanded="true"] .c-accordion-main__minus {
  display: block;
}

.c-accordion-main__container {
  position: relative;
  padding-left: var(--gutter);
  padding-right: var(--gutter);
  padding-top: 0.9375rem;
  padding-bottom: 0.9375rem;
}
.c-accordion-main__container::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='3'%3E%3Cline x1='1' y1='1.5' x2='1' y2='1.5' stroke='%23DCD1D1' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: repeat-x;
  background-size: 12px 3px;
}
.c-accordion-main__row {
  position: relative;
  padding-top: 1.5625rem;
  padding-bottom: 1.875rem;
}

.c-accordion-main__row:first-of-type {
  padding-top: 0.625rem;
}
.c-accordion-main__row:last-of-type {
  padding-bottom: 0;
}
.c-accordion-main__row:not(:first-of-type)::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='3'%3E%3Cline x1='1' y1='1.5' x2='1' y2='1.5' stroke='%23DCD1D1' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: repeat-x;
  background-size: 12px 3px;
}
}

@layer components{

/* ---- c-accordion-simple ---- */

.c-accordion-simple {
}

.c-accordion-simple__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
  cursor: pointer;
  list-style: none;
}

.c-accordion-simple__heading {
  font-weight: 700;
  font-size: 1.5rem;
  line-height: 1.5;
  color: var(--color-primary);
}

.c-accordion-simple__plus,
.c-accordion-simple__minus {
  flex-shrink: 0;
}

/* closed: show plus, hide minus */
.c-accordion-simple__plus {
  display: block;
}

.c-accordion-simple__minus {
  display: none;
}

/* open: show minus, hide plus */
.c-accordion-simple__summary[aria-expanded="true"] .c-accordion-simple__plus {
  display: none;
}

.c-accordion-simple__summary[aria-expanded="true"] .c-accordion-simple__minus {
  display: block;
}

.c-accordion-simple__container {
  padding-top: 1.875rem;
  padding-bottom: 1.875rem;
  position: relative;
}
.c-accordion-simple__container::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='3'%3E%3Cline x1='1' y1='1.5' x2='1' y2='1.5' stroke='%23DCD1D1' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: repeat-x;
  background-size: 12px 3px;
}

.c-accordion-simple__body {
  font-size: 1.25rem;
  line-height: calc(30 / 20);
  font-weight: 500;
}

.c-accordion-simple__body li {
  text-indent: -1em;
  padding-left: 1em;
}

.c-accordion-simple__body *:not(:first-child) {
  margin-top: 1lh;
}
}

@layer components{

.c-button-cta {
  text-align: center;
  padding: 0.9375rem;
  background-color: white;
  color: var(--color-primary);
  border-radius: 4.375rem;
  display: flex;
  flex-direction: column;
  row-gap: 2px;
}

.c-button-cta__heading {
  font-size: 1.375rem;
  font-weight: 700;
  line-height: calc(36 / 22);
}

.c-button-cta__tel {
  font-size: 2rem;
  font-weight: 500;
  line-height: calc(36 / 32);
  font-family: var(--fontFamily-lexend);
}

.c-button-cta__business {
  font-weight: 500;
  font-size: 1.25rem;
  line-height: calc(30 / 20);
}
}

@layer components{

/* ---- c-list-camp ---- */

.c-list-camp {
  display: grid;
  grid-template-columns: 1fr;
}

.c-list-camp__head {
  font-weight: 700;
  font-size: 1.375rem;
  line-height: calc(36 / 22);
}
.c-list-camp__head:not(:first-of-type) {
  padding-top: 0.625rem;
}

.c-list-camp__body {
  font-size: 1.25rem;
  line-height: calc(30 / 20);
  font-weight: 500;
}

.c-list-camp__body:not(:last-of-type) {
  padding-bottom: 9px;
  border-bottom: 1px solid;
}

.c-list-camp__notes li::before {
  content: "・";
}
.c-list-camp__notes li {
  text-indent: -1em;
  padding-left: 1em;
}
}

@layer components{

.c-heading-slash {
  text-align: center;
}

.c-heading-slash._white {
  color: white;
}

.c-heading-slash__sub {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.25rem;
  font-size: 1.375rem;
  font-weight: 700;
}

.c-heading-slash__sub::before,
.c-heading-slash__sub::after {
  content: "";
  display: block;
  width: 1.375rem;
  height: 1.375rem;
  flex-shrink: 0;
  background-color: currentColor;
}

.c-heading-slash__sub::before {
  mask: url("data:image/svg+xml,%3Csvg width='22' height='22' viewBox='0 0 22 22' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cline x1='0.353553' y1='0.353478' x2='21.3536' y2='21.3535' stroke='black'/%3E%3C/svg%3E")
    no-repeat center / contain;
}

.c-heading-slash__sub::after {
  mask: url("data:image/svg+xml,%3Csvg width='22' height='22' viewBox='0 0 22 22' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cline x1='21.3536' y1='0.353553' x2='0.353554' y2='21.3536' stroke='black'/%3E%3C/svg%3E")
    no-repeat center / contain;
}

.c-heading-slash__main {
  font-size: 2.5rem;
  font-weight: 700;
  line-height: calc(56 / 40);
}
}

@layer components{

.c-card-enjoy {
  padding: 1.25rem 1.25rem 2.1875rem;
  border-radius: 1.875rem;
  max-width: 21.875rem;
  background: url("../images/site/texture_noise.png") repeat;
}

.c-card-enjoy__body {
  padding-top: 1.5rem;
  color: var(--color-primary);
}

.c-card-enjoy__heading {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: calc(37 / 24);
  text-align: center;
}

.c-card-enjoy__text {
  margin-top: 1rem;
  font-size: 1.125rem;
  font-weight: 500;
  line-height: calc(26 / 18);
  min-height: 3lh;
}
}

@layer components{

.c-card-sightseeing {
  padding: 0.9375rem 0.9375rem 1.5625rem;
  border-radius: 1.875rem;
  max-width: 21.875rem;
  background: url("../images/site/texture_noise.png") repeat;
}

.c-card-sightseeing__thumbnail .-img {
  width: 100%;
}

.c-card-sightseeing__body {
  padding-top: 0.625rem;
  color: var(--color-primary);
}

.c-card-sightseeing__heading {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: calc(37 / 24);
  text-align: center;
}

.c-card-sightseeing__text {
  margin-top: 0.625rem;
  font-size: 1.125rem;
  font-weight: 500;
  line-height: calc(26 / 18);
}

.c-card-sightseeing__access {
  margin-top: 1.25rem;
  position: relative;
  padding-top: 1.25rem;
}

.c-card-sightseeing__access::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background-image: url("data:image/svg+xml,%3Csvg width='320' height='3' viewBox='0 0 320 3' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cline x1='1.5' y1='1.5' x2='318.5' y2='1.5' stroke='%23DCD1D1' stroke-width='3' stroke-linecap='round' stroke-dasharray='2 10'/%3E%3C/svg%3E");
  background-repeat: repeat-x;
  background-size: auto 3px;
}

.c-card-sightseeing__list {
}

.c-card-sightseeing__list-head {
  font-size: 1.125rem;
  font-weight: 500;
  line-height: calc(26 / 18);
  padding-top: 2px;
  padding-bottom: 2px;
  padding-left: 0.7em;
  padding-right: 0.7em;
  border-radius: 1.5625rem;
  background-color: #d2c8c4;
  font-weight: 500;
  width: fit-content;
}
.c-card-sightseeing__list-body {
  font-size: 1rem;
  line-height: calc(26 / 16);
  font-weight: 500;
  padding-top: 5px;
  min-height: 2lh;
}

.c-card-sightseeing__list-body:not(:last-of-type) {
  padding-bottom: 0.625rem;
}
}

@layer components{

/* ---- c-top-access-table ---- */

.c-top-access-table {
  --color-top-access-table-border: #353333;
  width: 100%;
  border-collapse: collapse;
  border: 1px solid var(--color-top-access-table-border);
  font-size: 1rem;
  line-height: calc(26 / 16);
  font-weight: 500;
}

.c-top-access-table th,
.c-top-access-table td {
  font-weight: 500;
  padding-left: 0.5em;
  padding-right: 0.25em;
  border-top: 1px solid var(--color-top-access-table-border);
  border-bottom: 1px solid var(--color-top-access-table-border);
  vertical-align: middle;
}

.c-top-access-table th {
  padding-bottom: 0.25em;
}

/* ---- modifier: bold ---- */
.c-top-access-table .-bold {
  font-weight: 700;
}

/* ---- modifier: background colors ---- */
.c-top-access-table .-bg-light {
  background-color: #f4f0ee;
}

.c-top-access-table .-bg-dark {
  background-color: #d2c8c4;
}

/* ---- border control ---- */
/* Columns 1-3 have no internal vertical borders */
.c-top-access-table .-border-none-right {
  border-right: none;
}

.c-top-access-table .-border-none-left {
  border-left: none;
}

/* Column 4 and 5 have left border */
.c-top-access-table .-border-left {
  border-left: 1px solid var(--color-top-access-table-border);
}

.c-top-access-table .-text-center {
  text-align: center;
}
}

@layer components{

/* ---- c-button-ur ---- */

.c-button-ur {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  background-color: var(--color-primary);
  color: #fff;
  font-size: 1.25rem;
  font-weight: 500;
  line-height: calc(36 / 20);
  border-radius: 999em;
  text-decoration: none;
  padding-top: 2px;
  padding-bottom: 2px;
  padding-left: 1.25rem;
  padding-right: 0.9375rem;
  column-gap: 0.625rem;
  transition: background-color 0.3s;
}

.c-button-ur:hover {
  background-color: var(--color-cta);
}

.c-button-ur__arrow {
  color: white;
}
}

@layer components{
.c-button-map__img {
  width: calc(226 / 16 * 1rem);
}
}

@layer site{

/* ================================================================
 * Side Navigation (PC) — Elevator Menu
 * ================================================================ */

.s-sidenav {
  position: fixed;
  left: 0;
  top: 0;
  width: calc(var(--width-sidenav) * 1px);
  height: 100vh;
  z-index: var(--zIndex-header);
  padding-left: 1.5625rem;
  padding-top: 2.6%;
  padding-bottom: 2%;
}

@media screen and (max-width: 1024px) {
  .s-sidenav {
    display: none;
  }
}

.s-sidenav__inner {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.s-sidenav__logo {
  margin-bottom: 2.5rem;
}

.s-sidenav__logo .-link {
  display: inline-block;
}

.s-sidenav__logo .-img {
  height: auto;
}

.s-sidenav__nav {
  margin-top: auto;
}

.s-sidenav__list {
  display: flex;
  flex-direction: column;
}

.s-sidenav__link {
  position: relative;
  display: block;
  font-size: 0.8125rem;
  line-height: calc(37 / 13);
  color: var(--color-primary);
  font-weight: 700;
  padding-left: 0;
  transition: padding-left 0.15s var(--ease-in-out-quad);
}

.s-sidenav__link::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 0;
  height: 3px;
  background-image: url("data:image/svg+xml,%3csvg%20width='16'%20height='3'%20viewBox='0%200%2016%203'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M15.8514%200.39536C16.0077%200.503957%2016.0468%200.757349%2015.9394%200.926278C15.3825%201.80712%2013.5752%203.99112%2010.0972%202.48283C5.447%200.467758%201.62715%202.28977%200.679514%202.82069C0.542742%202.89309%200.396201%202.82069%200.318045%202.67589L0.0347318%202.01225C-0.0434236%201.84332%200.0151929%201.62612%200.161734%201.54166C1.21683%200.926278%205.33953%20-1.0888%2010.4783%201.14347C13.2235%202.33804%2014.5716%200.769416%2014.982%200.129901C15.0699%20-0.0028284%2015.2262%20-0.0390273%2015.3532%200.0454369L15.8514%200.39536Z'%20fill='%234D8FA8'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-size: 16px 3px;
  transition: width 0.35s var(--ease-in-out-quad);
}

/* Hover */
.s-sidenav__link:hover {
  padding-left: 1.625rem;
}

.s-sidenav__link:hover::before {
  width: 1rem;
}

/* Active (scroll tracking via JS) */
.s-sidenav__link[aria-current="page"] {
  padding-left: 1.625rem;
}

.s-sidenav__link[aria-current="page"]::before {
  width: 1rem;
}
}

@layer site{

/* ================================================================
 * Header (SP)
 * ================================================================ */

.s-header {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  max-width: 37.5rem;
  margin: 0 auto;
  z-index: var(--zIndex-header);
  transition: background-color 0.3s;
}

@media screen and (max-width: 1024px) {
  .s-header {
    display: block;
    padding-top: 1.5625rem;
    padding-bottom: 1.5625rem;
  }
}

.s-header._bg {
  background-color: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(8px);
}

.s-header__inner {
  display: flex;
  justify-content: space-between;
  height: calc(var(--height-header-sp) * 1px);
  padding: 0 1.5625rem;
}

.s-header__logo .-link {
  display: inline-block;
}

.s-header__logo .-img {
  height: auto;
  width: calc(248 / 16 * 1rem);
}

.s-header__toggle {
  display: block;
}

.s-header__toggle-button {
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  z-index: var(--zIndex-toggle);
  position: relative;
}

.s-header__toggle-button .-img {
  width: calc(66 / 16 * 1rem);
}
}

@layer site{

/* ================================================================
 * SP Menu Modal (dialog)
 * ================================================================ */

/* ---- Dialog base ---- */
.s-modal-spmenu {
  position: fixed;
  inset: 0;
  width: 100%;
  max-width: 37.5rem;
  height: 100dvh;
  max-height: 100dvh;
  margin: 0 auto;
  border: none;
  padding: 0;
  background: white url("../images/site/texture_noise.png") repeat;
  overflow-y: auto;

  opacity: 0;
  /* scale: 0.95; */
  transition:
    opacity 0.5s var(--ease-out-cubic),
    scale 0.5s var(--ease-out-cubic);
}

/* Open state */
.s-modal-spmenu[data-active="true"] {
  opacity: 1;
  /* scale: 1; */
}

/* Backdrop — default is transparent (closed state) */
.s-modal-spmenu::backdrop {
  background: transparent;
  backdrop-filter: blur(0);
  -webkit-backdrop-filter: blur(0);
  transition:
    background-color 0.5s,
    backdrop-filter 0.5s;
}

/* Backdrop — visible when active */
.s-modal-spmenu[data-active="true"]::backdrop {
  background: transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

/* Starting style for open animation */
@starting-style {
  .s-modal-spmenu[open] {
    opacity: 0;
    /* scale: 0.95; */
  }
}

/* ---- Inner layout ---- */
.s-modal-spmenu__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-height: 100dvh;
  position: relative;
  padding-top: 11.5dvh;
  padding-left: var(--gutter);
  padding-right: var(--gutter);
  padding-bottom: 11.5dvh;
}

/* ---- Close button ---- */
.s-modal-spmenu__close {
  position: fixed;
  top: 1.5625rem;
  right: max(1.5625rem, calc((100vw - 600px) / 2 + 1.5625rem));
}

.s-modal-spmenu__close-button {
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
}

.s-modal-spmenu__close-button img {
  width: 4.25rem;
  height: auto;
}

/* ---- Navigation ---- */
.s-modal-spmenu__nav {
  width: 100%;
  max-width: 22.5rem;
}

.s-modal-spmenu__list {
  display: flex;
  flex-direction: column;
}

.s-modal-spmenu__item:not(:last-of-type)::after {
  content: "";
  display: block;
  height: 2px;
  background-image: radial-gradient(circle, #c6bcb8 1px, transparent 1px);
  background-size: 12px 2px;
}

.s-modal-spmenu__link {
  font-size: 1.5rem;
  line-height: 1.5;
  padding-top: 0.8em;
  padding-bottom: 0.8em;
  font-weight: 700;
  color: var(--color-primary);
  display: flex;
  justify-content: space-between;
  align-items: center;
  column-gap: 0.625rem;
}

.s-modal-spmenu__link .-arrow {
  transition: translate 0.3s;
}

.s-modal-spmenu__link:hover .-arrow {
  translate: 3px;
}

/* ---- Only show on SP ---- */
@media screen and (min-width: 1024px) {
  .s-modal-spmenu {
    display: none;
  }
}

.s-modal-spmenu__button {
  margin-top: 3dvh;
}
.s-modal-spmenu__button svg {
  color: #5b4c47;
  transition: color 0.3s;
  width: calc(375 / 16 * 1rem);
}

.s-modal-spmenu__button a:hover svg {
  color: var(--color-cta);
}
}

@layer site{

/* ---- Nav Accordion (SP) ---- */

.s-nav-accordion__list {
  display: flex;
  flex-direction: column;
}

.s-nav-accordion__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 0;
  font-size: 1rem;
  font-weight: 700;
  border-bottom: 1px solid #eee;
}

.s-nav-accordion__submenu {
  padding-left: 1rem;
}

.s-nav-accordion__submenu-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.75rem 0;
  font-size: 0.875rem;
  border-bottom: 1px solid #f5f5f5;
}
}

@layer site{

/* ================================================================
 * Footer
 * ================================================================ */

.s-footer {
  background-color: var(--color-primary);
  color: #fff;
  position: relative;
  padding-top: calc(40 / 600 * 100%);
  padding-left: calc(3 * var(--gutter));
  padding-right: calc(3 * var(--gutter));
  padding-bottom: calc(50 / 600 * 100%);
  z-index: 2;
}

@media screen and (max-width: 1024px) {
  .s-footer {
    padding-bottom: calc(120 / 600 * 100%);
  }
}
.s-footer__bg-upper {
  position: absolute;
  left: 0;
  top: 0;
  translate: 0 -90%;
}

.s-footer__logo {
  margin-top: 2.8125rem;
  display: grid;
  place-items: center;
}

.s-footer__info {
  margin-top: 0.625rem;
  text-align: center;
  font-size: 1.125rem;
  font-weight: 500;
  line-height: calc(30 / 18);
}

.s-footer__bottom {
  margin-top: 3.125rem;
  border-top: 2px dashed white;
  padding-top: 1.875rem;
}

.s-footer__link {
  display: flex;
  text-decoration: underline;
  font-size: 1.25rem;
  font-weight: 500;
  line-height: calc(30 / 20);
  align-items: center;
  column-gap: 0.625rem;
  justify-content: center;
  text-underline-offset: 5px;
}

.s-footer__company {
  margin-top: 1.875rem;
  font-size: 1.125rem;
  font-weight: 500;
  line-height: calc(26 / 18);
  color: #c1b5b5;
  text-align: center;
}

.s-footer__copyright {
  margin-top: 0.625rem;
  font-size: 1rem;
  line-height: calc(26 / 16);
  color: #c1b5b5;
  text-align: center;
}
}

@layer site{

/* ================================================================
 * Section: Contact
 * ================================================================ */

.s-section-contact {
  padding: var(--spacing-lg) 0;
  text-align: center;
}

.s-section-contact__heading {
  font-size: 1.9375rem;
  font-weight: 700;
  color: var(--color-primary);
}

@media screen and (max-width: 768px) {
  .s-section-contact__heading {
    font-size: 1.375rem;
  }
}

.s-section-contact__lead {
  margin-top: 1rem;
  font-size: 1rem;
  line-height: 1.75;
}

@media screen and (max-width: 768px) {
  .s-section-contact__lead {
    font-size: 0.875rem;
  }
}

.s-section-contact__button {
  margin-top: 1.875rem;
}
}

@layer site{

/* ================================================================
 * Main Visual (固定背景)
 * ================================================================ */

.s-mainvisual {
  position: fixed;
  top: 0;
  left: calc(var(--width-sidenav) * 1px);
  right: 0;
  height: 100lvh;
  z-index: var(--zIndex-mainvisual);
}

@media screen and (max-width: 1024px) {
  .s-mainvisual {
    left: 0;
  }
}

.s-mainvisual__shape {
  position: fixed;
  top: 50%;
  left: calc((100vw + var(--width-sidenav) * 1px) / 2);
  width: 74.375rem;
  translate: -54.5% -50%;
  overflow: clip;
  z-index: 1;
  pointer-events: none;
  mix-blend-mode: multiply;
}

@media screen and (max-width: 1024px) {
  .s-mainvisual__shape {
    width: 55rem;
  }
}

.s-mainvisual__shape .-img {
  width: 80.125rem;
  margin-left: auto;
  margin-right: auto;
}

@media screen and (max-width: 1024px) {
  .s-mainvisual__shape {
    left: 50%;
  }
}

.s-mainvisual__layout {
  max-width: calc(var(--width-content) * 1px);
  margin-left: auto;
  margin-right: auto;
  display: grid;
  place-items: center;
  height: 100%;
  margin-top: 2.5lvh;
}

@media screen and (max-width: 1024px) {
  .s-mainvisual__layout {
    margin-top: 0;
  }
}

.s-mainvisual__pic {
  height: 100%;
  grid-area: 1/-1;
}
.s-mainvisual__pic .-img {
  object-fit: cover;
  border-radius: 0.625rem;
  height: 100%;
}

@media screen and (max-width: 1024px) {
  .s-mainvisual__pic .-img {
    height: calc(100lvh);
    margin-top: 0;
  }
}
.s-mainvisual__body {
  grid-area: 1/-1;
}
.s-mainvisual__catch {
  font-size: 3rem;
  font-weight: 700;
  color: white;
  line-height: calc(72 / 48);
  letter-spacing: 0.15em;
  text-align: center;
  translate: 0.5em;
}

.s-mainvisual__catch .-yakuhan {
  letter-spacing: -0.4em;
}

.s-mainvisual__info {
  display: grid;
  place-items: center;
  margin-top: 1.25rem;
  margin-left: 1.25rem;
}
}

@layer site{

/* ================================================================
 * Content Body (MVの上をスクロール)
 * ================================================================ */

.s-content-body {
  position: relative;
  z-index: var(--zIndex-content);
  margin-top: 120lvh;
}
}

@layer site{

/* ---- Reserve Button ---- */

.s-reserve {
  position: fixed;
  right: 2.5%;
  bottom: 3%;
  z-index: 3;
}

@media screen and (max-width: 1024px) {
  .s-reserve {
    right: max(2.5%, calc((100vw - 600px) / 2 + 2.5%));
    bottom: 1rem;
  }

  .s-reserve svg {
    width: calc(227 / 16 * 1rem);
  }
}
.s-reserve svg {
  color: #5b4c47;
  transition: color 0.3s;
}

.s-reserve a:hover svg {
  color: var(--color-cta);
}
}

@layer site{

/* ---- Page Header Catch ---- */

.s-pageheader-catch {
  padding: var(--spacing-lg) 0;
}

.s-pageheader-catch._bg-white {
  background-color: #fff;
}

.s-pageheader-catch__inner {
  padding: 0 var(--gutter);
}

.s-pageheader-catch__catch {
  /* h1 level heading */
}

.s-pageheader-catch__subheading {
  margin-top: 1rem;
  font-size: 1rem;
}
}

@layer page{

/* ---- Top Page: News ---- */

.p-top-news {
  background-color: white;
  padding-left: calc(3 * var(--gutter));
  padding-right: calc(3 * var(--gutter));
  margin-top: -2%;
  position: relative;
  padding-bottom: calc(80 / 600 * 100%);
  padding-top: calc(50 / 600 * 100%);
}
.p-top-news__bg-upper {
  position: absolute;
  top: 0;
  translate: 0 -90%;
  left: -1%;
  width: 102%;
}
.p-top-news__heading {
  display: flex;
  justify-content: space-between;
  column-gap: 0.625rem;
}

.p-top-news__heading .-ja {
  font-size: 2.5rem;
  font-weight: 700;
  line-height: calc(60 / 40);
  letter-spacing: 0.03em;
}
.p-top-news__heading .-en {
  font-family: var(--fontFamily-lexend);
  font-size: 1.25rem;
  font-weight: 700;
  line-height: calc(60 / 20);
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.p-top-news__list {
  margin-top: 2.1875rem;
}

.p-top-news__item {
  padding-bottom: 1.5625rem;
  border-bottom: 2px dashed black;
}

.p-top-news__more svg {
  color: #5b4c47;
  transition: color 0.3s;
  width: calc(269 / 16 * 1rem);
}

.p-top-news__more:hover svg {
  color: var(--color-cta);
}

.p-top-news__button {
  display: flex;
  margin-top: 3.125rem;
  justify-content: flex-end;
}
}

@layer page{

/* ---- Top Page: Camp ---- */

.p-top-camp {
  background-color: #f4f0ee;
  padding-left: var(--gutter);
  padding-right: var(--gutter);
  position: relative;
  padding-top: calc(40 / 600 * 100%);
  padding-bottom: calc(180 / 600 * 100%);
}
.p-top-camp__bg-upper {
  position: absolute;
  left: 0;
  top: 0;
  translate: 0 -50%;
}
.p-top-camp__shape-upper {
  position: absolute;
  left: 6%;
  top: 0;
  translate: 0 -100%;
  z-index: 2;
}
.p-top-camp__heading {
  padding-left: calc(var(--gutter) * 2);
  padding-right: calc(var(--gutter) * 2);
  font-size: 2.5rem;
  font-weight: 700;
  line-height: calc(56 / 40);
  color: var(--color-primary);
  position: relative;
  z-index: 2;
}
.p-top-camp__sub {
  padding-left: calc(var(--gutter) * 2);
  padding-right: calc(var(--gutter) * 2);
  margin-top: 5px;
}

.p-top-camp__list {
  display: flex;
  flex-direction: column;
  row-gap: 2.1875rem;
  margin-top: 3.125rem;
}

.p-top-camp-item {
  padding-left: calc(var(--gutter) * 2);
  padding-right: calc(var(--gutter) * 2);
  padding-top: 2.5rem;
  padding-bottom: 2.5rem;
  background: url("../images/site/texture_noise.png") repeat;
  border-radius: 3.125rem;
}

.p-top-camp-item__head {
  position: relative;
  padding-bottom: 1.25rem;
}
.p-top-camp-item__head::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='3'%3E%3Cline x1='1' y1='1.5' x2='1' y2='1.5' stroke='%23DCD1D1' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: repeat-x;
  background-size: 12px 3px;
}
.p-top-camp-item__thumbnail {
  position: relative;
}

.p-top-camp-item__thumbnail .-num {
  position: absolute;
  top: 0;
  left: 0;
  width: 5.8125rem;
  height: 5.8125rem;
  border-radius: 50%;
  border: 3px solid var(--color-primary);
  font-size: 1.375rem;
  font-weight: 700;
  line-height: 1;
  display: grid;
  place-items: center;
  font-family: var(--fontFamily-lexend);
  translate: -22% -22%;
}

@media screen and (max-width: 430px) {
  .p-top-camp-item__thumbnail .-num {
    translate: -30% -30%;
  }
}

.p-top-camp-item__thumbnail .-shape {
  position: absolute;
  bottom: 0;
  right: 0;
  translate: calc(var(--gutter) * 0.5);
}

.p-top-camp-item__thumbnail .-shape {
  width: calc(112 / 16 * 1rem);
}

.p-top-camp-item__heading {
  font-size: 2.375rem;
  font-weight: 700;
  line-height: calc(60 / 38);
  text-align: center;
  color: var(--color-primary);
}

.p-top-camp-item__intro {
  margin-top: 0.9375rem;
}

.p-top-camp-item__price {
  padding-top: 1.5625rem;
  padding-bottom: 1.25rem;
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: 0.625rem;
}

.p-top-camp-item__price > *:nth-child(1) {
  grid-area: 1 / 1 / 3 / 2;
  align-self: flex-start;
}
.p-top-camp-item__price > *:nth-child(2) {
  grid-area: 1 / 2 / 2 / 3;
}
.p-top-camp-item__price > *:nth-child(3) {
  grid-area: 2 / 2 / 3 / 3;
}

.p-top-camp-item__price .-tag {
  color: var(--color-primary);
  background-color: #d2c8c4;
  border-radius: 1.375rem;
  display: inline-block;
  padding-left: 0.7em;
  padding-right: 0.7em;
  font-size: 1.375rem;
  line-height: calc(31 / 22);
  font-weight: 500;
  margin-top: 5px;
}

.p-top-camp-item__price .-note {
  font-size: 1rem;
  line-height: calc(23 / 16);
  margin-top: 0.625rem;
}
}

@layer page{

.p-top-about {
  padding-left: calc(2 * var(--gutter));
  padding-right: calc(2 * var(--gutter));
  background-color: white;
  padding-bottom: calc(150 / 600 * 100%);
}

.p-top-about__upper {
  padding-top: calc(80 / 520 * 100%);
  position: relative;
  padding-bottom: calc(60 / 520 * 100%);
  padding-left: var(--gutter);
  padding-right: var(--gutter);
}

.p-top-about__heading {
  font-size: 2.375rem;
  font-weight: 700;
  line-height: calc(60 / 38);
  letter-spacing: 0.02em;
  position: relative;
  z-index: 2;
}

@media screen and (max-width: 430px) {
  .p-top-about__heading {
    font-size: 2rem;
  }
}

.p-top-about__heading .-parts {
  display: block;
}

.p-top-about__heading .-parts:not(:first-of-type) {
  margin-top: 0.4em;
}
.p-top-about__shape {
  position: absolute;
  right: 0;
  bottom: 0;
}
.p-top-about__lower {
  padding-top: calc(15 / 520 * 100%);
  padding-left: var(--gutter);
  padding-right: var(--gutter);
}
.p-top-about__text {
  font-weight: 500;
  font-size: 1.625rem;
  line-height: calc(54 / 26);
}
}

@layer page{

/* ---- Top Page: Rental ---- */

.p-top-rental {
  background-color: white;
  padding-top: calc(50 / 600 * 100%);
  padding-bottom: calc(50 / 600 * 100%);
  padding-left: calc(2 * var(--gutter));
  padding-right: calc(2 * var(--gutter));
  z-index: 2;
  position: relative;
  margin-top: calc(-60 / 600 * 100%);
}
.p-top-rental__bg-upper {
  position: absolute;
  left: -1%;
  top: 0;
  translate: 0 -50%;
  width: 102%;
}
.p-top-rental__bg-upper .-img,
.p-top-rental__bg-lower .-img {
  width: 100%;
  height: auto;
}
.p-top-rental__bg-lower {
  position: absolute;
  left: -1%;
  bottom: 0;
  translate: 0 50%;
  width: 102%;
}

.p-top-rental__heading {
  font-size: 2.5rem;
  font-weight: 700;
  line-height: calc(56 / 40);
  text-align: center;
  letter-spacing: 0.02em;
  color: var(--color-primary);
}

.p-top-rental__subheading {
  font-size: 1.5rem;
  line-height: calc(37 / 24);
  color: var(--color-primary);
  font-weight: 700;
  padding-left: 2.5rem;
  position: relative;
  margin-top: 3.125rem;
}

.p-top-rental__subheading:not(:first-of-type) {
  margin-top: 1.875rem;
}

.p-top-rental__subheading::before {
  content: "";
  left: 0;
  position: absolute;
  top: 50%;
  translate: 0 -50%;
  height: 3px;
  background-color: currentColor;
  width: 1.5625rem;
  display: block;
}

.p-top-rental__radius {
  margin-top: 1.25rem;
  border-radius: 1.875rem;
  background: url("../images/site/texture_noise.png") repeat;
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
  padding-left: var(--gutter);
  padding-right: var(--gutter);
}

.p-top-rental__title {
  font-size: 1.5rem;
  line-height: calc(37 / 24);
  color: var(--color-primary);
  font-weight: 700;
  padding-left: 1.25rem;
  position: relative;
}
.p-top-rental__title::before {
  content: "";
  left: 0;
  position: absolute;
  top: 50%;
  translate: 0 -50%;
  height: 0.625rem;
  width: 0.625rem;
  background-color: currentColor;
  display: block;
  border-radius: 5px;
}

.p-top-rental__subtitle {
  font-size: 1.125rem;
  font-weight: 700;
  line-height: calc(26 / 18);
}

.p-top-rental__block {
  position: relative;
  padding-top: 1.875rem;
  padding-left: 0.625rem;
  padding-right: 0.625rem;
}

.p-top-rental__block._pt-0 {
  padding-top: unset;
}

.p-top-rental__block:not(:last-of-type) {
  padding-bottom: 1.875rem;
}

.p-top-rental__block:not(:first-of-type)::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='3'%3E%3Cline x1='1' y1='1.5' x2='1' y2='1.5' stroke='%23DCD1D1' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: repeat-x;
  background-size: 12px 3px;
}

.p-top-rental__list {
  margin-top: 0.9375rem;
  padding-left: 0.625rem;
}

.p-top-rental__list._sm .p-top-rental__item {
  margin-top: unset;
}

.p-top-rental__item {
  display: flex;
  flex-wrap: wrap;
  margin-top: 7px;
  column-gap: 0.625rem;
}

.p-top-rental__item .-main {
  font-size: 1.125rem;
  line-height: calc(28 / 18);
  font-weight: 500;
}

.p-top-rental__item .-sub {
  font-size: 1rem;
  line-height: calc(26 / 16);
  color: #666666;
  font-weight: 500;
}

.p-top-rental__list._lower .p-top-rental__item .-sub {
  color: var(--color-text);
}
}

@layer page{
.p-top-attention {
  padding-left: calc(3 * var(--gutter));
  padding-right: calc(3 * var(--gutter));
  padding-top: calc(50 / 600 * 100%);
  padding-bottom: calc(125 / 600 * 100%);
  background-color: white;
  position: relative;
  z-index: 2;
}
.p-top-attention__bg-upper {
  position: absolute;
  left: 0;
  top: 0;
  translate: 0 -50%;
}
.p-top-attention__heading {
  font-size: 2.5rem;
  line-height: calc(56 / 40);
  text-align: center;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--color-primary);
}

.p-top-attention__list {
  margin-top: 3.125rem;
}
.p-top-attention__item {
  position: relative;
  border-bottom: 2px solid #dcd1d1;
}
}

@layer page{

.p-top-feature {
  background-color: white;
  padding-left: calc(3 * var(--gutter));
  padding-right: calc(3 * var(--gutter));
  padding-bottom: calc(180 / 600 * 100%);
}

.p-top-feature__heading {
  font-size: 2rem;
  line-height: calc(56 / 32);
  font-weight: 700;
  letter-spacing: 0.02em;
}

.p-top-feature__list {
}

.p-top-feature__item {
  position: relative;
  padding-top: 2.5rem;
  padding-bottom: 2.5rem;
}

.p-top-feature__item::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='2'%3E%3Cline x1='1' y1='1' x2='1' y2='1' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: repeat-x;
  background-size: 12px 2px;
}

.p-top-feature-item {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto auto;
  row-gap: 1.25rem;
}
.p-top-feature-item > *:nth-child(1) {
  padding-right: 2.375rem;
  grid-area: 1 / 1 / 3 / 2;
}
.p-top-feature-item > *:nth-child(2) {
  grid-area: 1 / 2 / 2 / 3;
  align-self: flex-end;
}
.p-top-feature-item > *:nth-child(3) {
  grid-area: 2 / 2 / 3 / 3;
  align-self: flex-start;
}
.p-top-feature-item__heading {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: calc(34 / 24);
}

.p-top-feature-item__text {
  font-size: 1.375rem;
  font-weight: 500;
  line-height: calc(36 / 22);
}
}

@layer page{
.p-top-facility {
  background-color: white;
  padding-left: calc(2 * var(--gutter));
  padding-right: calc(2 * var(--gutter));
  position: relative;
  padding-bottom: calc(10 / 600 * 100%);
  padding-top: calc(60 / 600 * 100%);
  z-index: 2;
}
.p-top-facility__bg-upper {
  position: absolute;
  left: 0;
  top: 0;
  translate: 0 -50%;
}
.p-top-facility__bg-lower {
  position: absolute;
  left: 0;
  bottom: 0;
  translate: 0 50%;
}

.p-top-facility__inner {
  position: relative;
  margin-top: -18%;
  z-index: 2;
}

.p-top-facility__heading {
  font-size: 2.5rem;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.02em;
  line-height: calc(58 / 40);
}
.p-top-facility__list {
  margin-top: 2.8125rem;
  padding-left: var(--gutter);
  padding-right: var(--gutter);
}

.p-top-facility__item {
  padding-top: 1.875rem;
  padding-bottom: 1.875rem;
  position: relative;
}
.p-top-facility__item::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='3'%3E%3Cline x1='1' y1='1.5' x2='1' y2='1.5' stroke='%23DCD1D1' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: repeat-x;
  background-size: 12px 3px;
}

.p-top-facility__other {
  margin-top: 1.875rem;
  background-color: #f4f0ee;
  border-radius: 1.875rem;
  padding: 1.25rem 1.25rem 1.875rem;
}

.p-top-facility__other .-heading {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: calc(37 / 24);
}

.p-top-facility__other .-list {
  font-size: 1.125rem;
  line-height: calc(26 / 18);
  font-weight: 500;
  margin-top: 0.75rem;
}

.p-top-facility__other .-item {
  padding-left: 1em;
  text-indent: -1em;
}

.p-top-facility-item {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto auto auto;
}
.p-top-facility-item > *:nth-child(1) {
  padding-right: 2.5rem;
  grid-area: 1 / 1 / 4 / 2;
}
.p-top-facility-item > *:nth-child(2) {
  grid-area: 1 / 2 / 2 / 3;
  align-self: flex-end;
}
.p-top-facility-item > *:nth-child(3) {
  grid-area: 2 / 2 / 3 / 3;
  align-self: flex-start;
}
.p-top-facility-item > *:nth-child(4) {
  grid-area: 3 / 2 / 4 / 3;
}

.p-top-facility-item__heading {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: calc(37 / 24);
  margin-top: -0.6em;
}

.p-top-facility-item__heading .-sub {
  font-size: calc(20 / 24 * 100%);
  display: block;
}

.p-top-facility-item__text {
  font-size: 1.125rem;
  font-weight: 500;
  line-height: calc(26 / 18);
  margin-top: 0.9375rem;
}
.p-top-facility-item__note {
  margin-top: 0.9375rem;
  font-size: 1rem;
  font-weight: 500;
  line-height: calc(26 / 16);
  color: #666666;
}
}

@layer page{

.p-top-enjoy {
  background-color: var(--color-cta);
  padding-top: calc(100 / 600 * 100%);
  padding-left: calc(3 * var(--gutter));
  padding-right: calc(3 * var(--gutter));
  overflow-x: clip;
}

.p-top-enjoy__list {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  margin-top: 3.125rem;
  column-gap: 1.125rem;
  row-gap: 1.125rem;
}

.p-top-enjoy__slider {
  margin-top: 3.75rem;
  margin-left: calc(-3 * var(--gutter));
  margin-right: calc(-3 * var(--gutter));
  --swiper-theme-color: var(--color-primary);
  --swiper-navigation-sides-offset: min(
    16%,
    calc((100vw - 21.875rem - 5rem) / 2)
  );
}

.p-top-enjoy__slider .swiper-slide {
  width: 21.875rem;
}

.p-top-enjoy__slider .swiper-slide .c-card-enjoy {
  height: 100%;
}

.p-top-enjoy__slider .swiper-button-prev,
.p-top-enjoy__slider .swiper-button-next {
  width: 2.5rem;
  height: 2.5rem;
  transition: color 0.3s;
}

.p-top-enjoy__slider .swiper-button-prev > .-icon,
.p-top-enjoy__slider .swiper-button-next > .-icon {
  width: 2.5rem;
  height: 2.5rem;
}

.p-top-enjoy__slider .swiper-button-prev:hover,
.p-top-enjoy__slider .swiper-button-next:hover {
  color: var(--color-cta);
}
}

@layer page{

.p-top-sightseeing {
  background-color: var(--color-cta);
  padding-top: calc(50 / 600 * 100%);
  padding-bottom: calc(115 / 600 * 100%);
  padding-left: calc(3 * var(--gutter));
  padding-right: calc(3 * var(--gutter));
  overflow-x: clip;
}

.p-top-sightseeing__slider {
  margin-top: 1.875rem;
  margin-left: calc(-3 * var(--gutter));
  margin-right: calc(-3 * var(--gutter));
  --swiper-theme-color: var(--color-primary);
  --swiper-navigation-sides-offset: min(
    16%,
    calc((100vw - 21.875rem - 5rem) / 2)
  );
}

.p-top-sightseeing__slider .swiper-slide {
  width: 21.875rem;
}

.p-top-sightseeing__slider .swiper-button-prev,
.p-top-sightseeing__slider .swiper-button-next {
  width: 2.5rem;
  height: 2.5rem;
  transition: color 0.3s;
}

.p-top-sightseeing__slider .swiper-button-prev > .-icon,
.p-top-sightseeing__slider .swiper-button-next > .-icon {
  width: 2.5rem;
  height: 2.5rem;
}

.p-top-sightseeing__slider .swiper-button-prev:hover,
.p-top-sightseeing__slider .swiper-button-next:hover {
  color: var(--color-cta);
}
}

@layer page{
.p-top-access {
  background-color: white;
  padding-top: calc(60 / 600 * 100%);
  padding-bottom: calc(55 / 600 * 100%);
  position: relative;
  z-index: 2;
}
.p-top-access__bg-upper {
  position: absolute;
  left: 0;
  top: 0;
  translate: 0 -50%;
}
.p-top-access__bg-lower {
  position: absolute;
  left: 0;
  bottom: 0;
  translate: 0 50%;
}

.p-top-access__upper {
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin-top: 1.5625rem;
  overflow: clip;
}

.p-top-access__left {
  padding-left: calc(3 * var(--gutter));
}

.p-top-access__right {
  margin-right: -0.625rem;
}

.p-top-access__address {
  font-size: 1.375rem;
  line-height: calc(36 / 22);
  font-weight: 500;
  margin-right: -3.125rem;
}

.p-top-access__button {
  margin-top: 1.25rem;
}

.p-top-access__button svg {
  color: #5b4c47;
  transition: color 0.3s;
}

.p-top-access__button a:hover svg {
  color: var(--color-cta);
}

.p-top-access__lower {
  padding-left: calc(2 * var(--gutter));
  padding-right: calc(2 * var(--gutter));
  margin-top: 2.5rem;
  display: flex;
  flex-direction: column;
  row-gap: 1.875rem;
}

.p-top-access-body__heading {
  display: flex;
  align-items: center;
  column-gap: 0.625rem;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: calc(30 / 20);
  color: var(--color-primary);
}

.p-top-access-body__intro {
  font-size: 1.375rem;
  line-height: calc(36 / 22);
  font-weight: 500;
  margin-top: 1.25rem;
}

.p-top-access-body__radius {
  margin-top: 1.25rem;
  padding: 1.25rem;
  background-color: white;
  border-radius: 1.875rem;
}

.p-top-access-body__radius._pb-lg {
  padding-bottom: 1.875rem;
}

.p-top-access-body__radius:has(.p-top-access-body__figure) {
  padding: 0.625rem;
}

.p-top-access-body__buttons {
  display: flex;
  justify-content: center;
  column-gap: 0.625rem;
  margin-top: 1.25rem;
}

.p-top-access-body__table {
  margin-top: 1.25rem;
}
.p-top-access-body__table-caption .-emphasis {
  color: #e60000;
}
.p-top-access-body__note {
  font-size: 1rem;
  line-height: calc(26 / 16);
  font-weight: 500;
  margin-top: 0.625rem;
}

.p-top-access-body__note._mt-lg {
  margin-top: 2.1875rem;
}
.p-top-access-body__note li {
  text-indent: -1em;
  padding-left: 1em;
}

.p-top-access-body__note .-emphasis {
  color: #e60000;
}
.p-top-access-body__subheading {
  background-color: #d2c8c4;
  border-radius: 1.5625rem;
  color: var(--color-primary);
  padding: 5px 1.25rem;
  font-size: 1.375rem;
  line-height: calc(36 / 22);
  font-weight: 700;
  margin-top: 1.875rem;
}

.p-top-access-body__subheading:first-of-type {
  margin-top: 1.25rem;
}

.p-top-access-body__date {
  font-size: 1.25rem;
  line-height: calc(30 / 20);
  font-weight: 500;
}
.p-top-access-body__table-caption {
  font-size: 1rem;
  line-height: calc(26 / 16);
  font-weight: 500;
  margin-top: 5px;
}

.p-top-access-body__table-caption li {
  text-indent: -1em;
  padding-left: 1em;
}

.p-top-access__figure .-img {
  width: calc(319 / 16 * 1rem);
}
}

@layer page{

.p-top-reserve {
  padding-top: calc(90 / 600 * 100%);
  padding-bottom: calc(125 / 600 * 100%);
  background-color: var(--color-primary);
  padding-left: calc(2 * var(--gutter));
  padding-right: calc(2 * var(--gutter));
}

.p-top-reserve__heading {
  text-align: center;
  color: white;
  font-weight: 700;
  font-size: 2.5rem;
  line-height: calc(56 / 40);
  padding-left: var(--gutter);
  padding-right: var(--gutter);
}

.p-top-reserve__intro {
  font-size: 1.375rem;
  line-height: calc(36 / 22);
  margin-top: 0.9375rem;
  font-weight: 500;
  color: white;
  text-align: center;
  padding-left: var(--gutter);
  padding-right: var(--gutter);
}

.p-top-reserve__button {
  margin-top: 2rem;
  padding-left: var(--gutter);
  padding-right: var(--gutter);
}

.p-top-reserve__text {
  font-size: 1.375rem;
  line-height: calc(36 / 22);
  margin-top: 1.875rem;
  font-weight: 500;
  color: white;
  padding-left: var(--gutter);
  padding-right: var(--gutter);
}

.p-top-reserve__text [href] {
  text-decoration: underline;
}

.p-top-reserve__lower {
  margin-top: 2.8125rem;
  display: flex;
  flex-direction: column;
  row-gap: 1.875rem;
}

.p-top-reserve-body {
  font-size: 1rem;
  line-height: calc(26 / 16);
  font-weight: 500;
  padding: 5px 5px 2.1875rem;
}

.p-top-reserve-body li {
  text-indent: -1em;
  padding-left: 1em;
}

.p-top-reserve-body__heading {
  margin-top: 1em;
}
}

@layer page{

.p-top-map {
  position: relative;
  background-color: #5d834a;
  padding-top: calc(40 / 600 * 100%);
}

.p-top-map__heading {
  position: absolute;
  left: 50%;
  top: 12.5%;
  translate: -50% 0;
  font-size: 2.5rem;
  font-weight: 700;
  line-height: calc(56 / 40);
  letter-spacing: 0.02em;
  color: white;
}

.p-top-map__over {
  position: absolute;
  bottom: 12%;
  left: 50%;
  width: 100%;
  translate: -50% 0;
  padding-left: 2.2%;
  padding-right: 1.5%;
}

.p-top-map__over .-img {
  width: 100%;
}
}

@layer page{

.p-page404-body {
  min-height: 70lvh;
  display: grid;
  place-items: center;
  padding-top: calc(120 / 600 * 100%);
  padding-bottom: calc(120 / 600 * 100%);
  padding-left: calc(2 * var(--gutter));
  padding-right: calc(2 * var(--gutter));
  background-color: white;
}

.p-page404-body__inner {
  text-align: center;
}

.p-page404-body__num {
  font-family: var(--fontFamily-lexend), sans-serif;
  font-size: 5rem;
  font-weight: 700;
  line-height: 1;
  color: var(--color-primary);
  letter-spacing: 0.05em;
}

.p-page404-body__heading {
  font-size: 1.625rem;
  font-weight: 700;
  line-height: calc(48 / 26);
  margin-top: 1.25rem;
}

.p-page404-body__heading .-ib {
  display: inline-block;
}

.p-page404-body__text {
  font-size: 1rem;
  line-height: calc(30 / 16);
  font-weight: 500;
  margin-top: 1.5rem;
}
.p-page404-body__text .-ib {
  display: inline-block;
}
.p-page404-body__button {
  margin-top: 2.5rem;
}
}

@layer javascript{

/* ============================================================
 * javascript — JavaScript 連動の状態クラス
 *
 * JS から付与/除去されるクラスのスタイル定義。
 * ============================================================ */

.js-scroll-hidden {
  transition: opacity 0.3s ease-in-out;
}

.js-scroll-hidden._is-hidden {
  opacity: 0;
  pointer-events: none;
}

/* ロゴSVG：非表示パーツが消えたらリンク領域をイラスト幅に縮小 */
.s-header__logo .-link {
  overflow: hidden;
  width: calc(248 / 16 * 1rem);
  transition: width 0s;
}

.s-header__logo .-link:has(.js-scroll-hidden._is-hidden) {
  width: calc(53 / 16 * 1rem);
  transition: width 0.3s ease-in-out 0.3s;
}

/* MV アニメーション初期状態（GSAP autoAlpha 実行前の FOUC 防止） */
.s-mainvisual__body,
.s-mainvisual__shape,
.s-mainvisual__pic,
.s-reserve {
  visibility: hidden;
}
}

@layer utility{

/* ============================================================
 * utility — ユーティリティクラス
 *
 * u- プレフィックスのクラス。
 * 単一目的のヘルパー。!important を使用可。
 * ============================================================ */

.u-visually-hidden {
  border: 0 !important;
  clip: rect(0 0 0 0) !important;
  height: 1px !important;
  margin: -1px !important;
  overflow: hidden !important;
  padding: 0 !important;
  position: absolute !important;
  width: 1px !important;
}

.u-hidden {
  display: none !important;
}

.u-overflow-hidden {
  overflow: hidden;
}

.u-clamp-text {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  line-clamp: var(--line-clamp);
  -webkit-line-clamp: var(--line-clamp);
  overflow: hidden;
  text-overflow: ellipsis;
}

.u-clear-fix::after {
  clear: both;
  content: "";
  display: table;
}

/* ---- Responsive visibility ---- */

@media screen and (max-width: 768px) {
  .u-md-hidden {
    display: none !important;
  }
}

.u-md-visible {
  display: none !important;
}

@media screen and (max-width: 768px) {
  .u-md-visible {
    display: revert !important;
  }
}

@media screen and (max-width: 1024px) {
  .u-lg-hidden {
    display: none;
  }
}

.u-lg-visible {
  display: none;
}

@media screen and (max-width: 1024px) {
  .u-lg-visible {
    display: revert;
  }
}

/* ---- Spacing ---- */

.u-mt-5 {
  margin-top: 5px;
}

.u-mt-10 {
  margin-top: 0.625rem;
}

.u-mb-10 {
  margin-bottom: 0.625rem;
}

/* ---- Display ---- */

.u-ib {
  display: inline-block;
}

.u-block {
  display: block;
}

/* 以下、一時的処理（上書き） */

.c-news-row__link {
  pointer-events: none;
}

.c-news-row__layout {
  grid-template-columns: 1fr;
}

.c-news-row__arrow {
  display: none;
}

.p-top-news__button {
  display: none;
}
}
