@charset 'UTF-8';
/* ========================================================================
/*
/* Foundation
/*
========================================================================= */
/* 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;
  min-width: 0;
  border-width: 0;
  border-style: solid;
}

/* Document */
/* ============================================ */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 * 3. Remove gray overlay on links for iOS.
 */
html {
  line-height: 1.15; /* 1 */

  -webkit-text-size-adjust: 100%; /* 2 */
  -webkit-tap-highlight-color: transparent; /* 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 {
  margin: 0;
  font-weight: inherit;
  font-size: inherit;
}

/* 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 {
  clear: both;
  overflow: visible; /* 2 */
  box-sizing: content-box; /* 1 */
  height: 0; /* 1 */
  margin: 0;
  border-top-width: 1px;
  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-size: inherit; /* 2 */
  font-family: monospace, monospace; /* 1 */
}

address {
  font-style: inherit;
}

/* Text-level semantics */
/* ============================================ */
/**
 * Remove the gray background on active links in IE 10.
 */
a {
  background-color: transparent;
  color: inherit;
  text-decoration: none;
}

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

  -webkit-text-decoration: underline dotted;
}

/**
 * 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-size: inherit; /* 2 */
  font-family: monospace, monospace; /* 1 */
}

/**
 * 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 {
  position: relative;
  vertical-align: baseline;
  font-size: 75%;
  line-height: 0;
}

sub {
  bottom: -.25em;
}

sup {
  top: -.5em;
}

/* Replaced content */
/* ============================================ */
/**
 * Prevent vertical alignment issues.
 */
svg,
img,
embed,
object,
iframe {
  vertical-align: bottom;
}

/* Forms */
/* ============================================ */
/**
 * Reset form fields to make them styleable.
 * 1. Make form elements stylable across systems iOS especially.
 * 2. Inherit text-transform from parent.
 */
button,
input,
optgroup,
select,
textarea {
  margin: 0;
  padding: 0;
  border-radius: 0;
  background: transparent;
  color: inherit;
  vertical-align: middle;
  text-align: inherit;
  text-transform: inherit; /* 2 */
  font: inherit;

  -webkit-appearance: none; /* 1 */
          appearance: none;
}

/**
 * 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 {
  min-width: 0;
  margin: 0;
  padding: 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; /* 1 */
}

/**
 * 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 {
  font: inherit; /* 2 */

  -webkit-appearance: button; /* 1 */
}

/**
 * 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-collapse: collapse;
  border-color: inherit; /* 1 */
}

caption {
  text-align: left;
}

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

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

/* Base
--------------------------------------------------------- */
:root {
  --color-main: #5e398b;
  --color-main-hover: #8656c7;
  --color-sub: #af538f;
  --color-sub-hover: #7c3861;
  --color-txt: #1a1a1a;
  --color-txt2: #686872;
  --color-txt3: #311608;
  --color-accent: #a1974b;
  --color-accent-hover: #bdb04c;
  --color-base: #f5ebe6;
  --color-base2: #efdcd2;
  --color-base3: #fcfaf7;
  --color-important: #c63d77;
  --font-family-primary: 'Noto Sans JP', sans-serif;
  --font-family-secondary: 'Shippori Mincho', serif;
  --font-family-tertiary: 'EB Garamond', serif;
  --header-height-mobile: clamp(45px, 7.8vw, 60px);
  --header-height-desktop: clamp(80px, 6.2vw, 100px);
  --gradient-primary: linear-gradient(to right, var(--color-main), var(--color-sub));
  --mask-circle: url('data:image/svg+xml;utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><circle cx="50" cy="50" r="50"/></svg>');
  --arrow1: url('data:image/svg+xml;utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 82"><path d="M2.5,5.12l35.78,35.88L2.5,76.88l4.61,4.62,40.39-40.5L7.11.5,2.5,5.12Z"/></svg>');
  --icon-map: url('data:image/svg+xml;utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 32"><path d="M23.52,10.64C22.95,4.87,18.03.25,11.99.25,5.6.25.41,5.45.41,11.84c0,2.53.79,4.91,2.3,6.92l8.44,12.53c.19.28.51.46.85.46s.65-.17.85-.46l8.44-12.52c1.73-2.32,2.54-5.21,2.24-8.13h0ZM19.63,17.57s-.02.03-.03.04l-7.61,11.28-7.61-11.29s-.02-.03-.03-.04c-1.25-1.65-1.9-3.63-1.9-5.72C2.45,6.58,6.73,2.3,11.99,2.3c4.84,0,9.01,3.75,9.49,8.55.24,2.42-.42,4.8-1.85,6.72h0Z"/><path d="M12,6.87c-2.74,0-4.97,2.23-4.97,4.97s2.23,4.97,4.97,4.97,4.97-2.23,4.97-4.97-2.23-4.97-4.97-4.97h0ZM12,14.83c-1.64,0-2.98-1.34-2.98-2.98s1.34-2.98,2.98-2.98,2.98,1.34,2.98,2.98-1.34,2.98-2.98,2.98Z"/></svg>');
  --icon-mail: url('data:image/svg+xml;utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 23"><path d="M15.96,22.67c-4.02,0-8.05,0-12.07,0-2.66,0-3.62-.95-3.62-3.57,0-5.11-.01-10.23,0-15.34,0-2.38.99-3.41,3.35-3.42,8.24-.02,16.48-.02,24.72,0,2.44,0,3.41,1.02,3.42,3.49.01,5.07.01,10.13,0,15.2,0,2.71-.95,3.64-3.71,3.64-4.02.01-8.05,0-12.07,0ZM4.33,20.31c.23.03.47.09.7.09,6.14-.01,12.27-.02,18.41-.06,1.41,0,2.82.29,4.23-.03h-.01c-2.2-2.5-4.64-4.75-7.1-7.21-1.37,1.49-2.71,2.54-4.63,2.54-1.93,0-3.17-1.25-4.57-2.49-2.41,2.47-4.87,4.66-7.02,7.17h-.01ZM4.33,2.69h.01c3.24,3.56,6.7,6.93,10.22,10.21,1.01.94,2.24.7,3.43-.44,1.81-1.74,3.59-3.51,5.33-5.31,1.44-1.49,3.08-2.8,4.33-4.48h.01c-7.78.01-15.56.01-23.34.01ZM29.47,18.53V4.81c-2.27,2.22-4.61,4.52-6.91,6.78,2.24,2.25,4.53,4.55,6.91,6.94ZM2.5,18.43c2.36-2.35,4.68-4.66,6.92-6.88-2.27-2.28-4.58-4.6-6.92-6.95v13.82Z"/></svg>');
  --icon-phone: url('data:image/svg+xml;utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M30.27,22.88l-4.05-2.18c-.99-.54-1.75-.14-2.6,1.02-1.86,2.56-2.77,3.07-5.05,1.79-2.13-1.19-3.66-2.6-5.58-4.52s-3.34-3.44-4.52-5.58c-1.28-2.28-.77-3.19,1.79-5.05,1.16-.84,1.55-1.62,1.02-2.6l-2.18-4.04C8.21.01,6.95-.18,5.08.45,2.5,1.32,0,5.05.12,6.8c.37,5.16,2.95,11.36,8.34,16.74,5.38,5.38,11.58,7.96,16.75,8.33,1.77.12,5.47-2.39,6.34-4.97.63-1.87.43-3.13-1.29-4.02Z"/></svg>');
  --icon-insta: url('data:image/svg+xml;utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M9.48.36c-1.68.08-2.82.35-3.82.74-1.04.4-1.91.95-2.79,1.82-.87.88-1.41,1.75-1.81,2.79-.39,1-.65,2.15-.72,3.82-.07,1.68-.09,2.22-.08,6.49s.03,4.81.11,6.49c.08,1.68.35,2.82.74,3.82.4,1.04.95,1.91,1.82,2.79.88.87,1.75,1.41,2.79,1.81,1,.39,2.15.65,3.82.72,1.68.07,2.22.09,6.49.08,4.28,0,4.81-.03,6.49-.11s2.82-.35,3.82-.74c1.04-.41,1.91-.95,2.79-1.82s1.41-1.76,1.81-2.79c.39-1,.65-2.15.72-3.82.07-1.68.09-2.22.08-6.49,0-4.28-.03-4.81-.11-6.49s-.35-2.82-.74-3.82c-.4-1.04-.95-1.91-1.82-2.79s-1.76-1.41-2.79-1.81c-1-.39-2.15-.65-3.82-.72s-2.22-.09-6.49-.08-4.81.03-6.49.11M9.66,28.83c-1.54-.07-2.37-.32-2.93-.54-.74-.28-1.26-.63-1.81-1.17s-.89-1.07-1.18-1.81c-.22-.56-.48-1.39-.55-2.92-.08-1.66-.09-2.16-.1-6.36s0-4.7.08-6.36c.07-1.53.32-2.37.54-2.92.28-.74.62-1.26,1.17-1.81s1.07-.89,1.81-1.18c.56-.22,1.39-.47,2.92-.55,1.66-.08,2.16-.09,6.36-.1,4.2,0,4.7,0,6.36.08,1.53.07,2.37.32,2.92.54.74.28,1.26.62,1.81,1.17s.89,1.07,1.18,1.81c.22.55.47,1.39.55,2.92.08,1.66.1,2.16.1,6.36,0,4.2,0,4.7-.08,6.36-.07,1.54-.32,2.37-.54,2.93-.28.74-.63,1.26-1.18,1.81s-1.07.89-1.81,1.18c-.55.22-1.39.47-2.92.55-1.66.08-2.16.09-6.36.1-4.21,0-4.7,0-6.36-.08M22.5,7.58c0,1.04.85,1.89,1.89,1.89s1.89-.85,1.89-1.89c0-1.04-.85-1.89-1.89-1.89,0,0,0,0,0,0-1.04,0-1.89.85-1.89,1.89M7.91,16.02c0,4.47,3.64,8.08,8.1,8.07,4.47,0,8.08-3.64,8.07-8.1s-3.64-8.08-8.1-8.07-8.08,3.64-8.07,8.1M10.75,16.01c0-2.9,2.34-5.25,5.24-5.26,2.9,0,5.25,2.34,5.26,5.24,0,2.9-2.34,5.25-5.24,5.26-2.9,0-5.25-2.34-5.26-5.24h0"/></svg>');
  --icon-external: url('data:image/svg+xml;utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M28.34,26.13c0,1.22-.99,2.21-2.21,2.21H5.87c-1.22,0-2.21-.99-2.21-2.21V5.87c0-1.22.99-2.21,2.21-2.21h9.32V0H5.87C2.64,0,0,2.64,0,5.87v20.25c0,3.24,2.64,5.87,5.87,5.87h20.25c3.24,0,5.87-2.64,5.87-5.87v-10.45h-3.66v10.45Z"/><polygon points="18.97 0 18.97 3.66 25.75 3.66 14.7 14.7 17.3 17.3 28.34 6.25 28.34 12.19 32 12.19 32 0 18.97 0"/></svg>');
  --icon-food: url('data:image/svg+xml;utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 29 44"><path d="M24.96,36.06c.12-1.26.22-2.51.3-3.77l.23-3.78c.08-1.26.17-2.52.29-3.78.09-.97.15-1.95.27-2.92.3-2.57,1.23-9.33,1.48-11.08.3-2.09,1.27-9.43,1.33-9.98s-.69-.6-.9-.49c-5.05,2.47-6.11,6.01-6.48,9.1s.92,7.33,1.27,8.7c.63,2.44.63,3.31.52,4.41-.05.49-.19,1.29-.28,1.93-.18,1.25-.38,2.5-.6,3.74l-.66,3.73c-.22,1.24-.41,2.49-.59,3.74-.09.62-.17,1.25-.24,1.88-.08.63-.13,1.26-.14,1.89,0,.32,0,.63,0,.95,0,.16.01.32.02.48,0,.16.02.32.03.48.03.32.09.65.18.97.04.16.1.33.16.5.06.17.14.33.24.5.05.08.1.15.17.22.39.37,1.01.36,1.38-.03.14-.14.25-.29.35-.43.1-.15.19-.3.27-.44.16-.3.29-.6.4-.91.05-.15.1-.31.14-.46.05-.15.09-.31.13-.46.08-.31.16-.62.23-.93.14-.62.23-1.24.3-1.87.08-.63.14-1.25.2-1.88Z"/><path d="M8.12,19.65c-.03-.49,0-1.58,0-1.64.07-.93.27-2.91.71-4.2.58-1.73,1.89-5.01,1.56-8.02-.19-1.74-1.08-3.41-2.37-4.46-.22-.18-.39-.08-.36.21l.65,5.92c.06.53-.33,1.01-.86,1.07s-1.01-.33-1.07-.86l-.75-6.88c-.03-.29-.27-.54-.53-.54-.15,0-.31,0-.47.03s-.31.04-.47.08c-.25.06-.43.36-.4.64l.75,6.88c.06.53-.33,1.01-.86,1.07s-1.01-.33-1.07-.86l-.65-5.92c-.03-.29-.22-.35-.4-.13C.49,3.33-.01,5.16.18,6.9c.33,3.02,2.32,5.93,3.26,7.5.7,1.16,1.33,3.05,1.6,3.95.02.06.27,1.12.35,1.6.08.52.17,1.04.24,1.56.14,1.04.26,2.09.36,3.14l.04.39.03.39c.02.26.05.52.07.79l.06.79c.02.26.03.53.05.79.05,1.05.04,2.11,0,3.18-.01.53-.03,1.06-.04,1.59,0,.27,0,.53,0,.79,0,.27,0,.53.01.79.02.53.05,1.05.09,1.58.04.52.1,1.05.19,1.57.09.52.21,1.04.36,1.55.15.51.31,1.03.47,1.54.31,1.03.63,2.05,1.29,3.04.09.14.22.24.38.31.42.16.9-.04,1.06-.47.43-1.11.52-2.18.61-3.24.05-.53.09-1.07.13-1.6.03-.53.04-1.06.01-1.59-.02-.53-.08-1.05-.15-1.57-.07-.52-.15-1.04-.25-1.56-.05-.26-.1-.52-.16-.78-.05-.26-.12-.52-.18-.77-.12-.52-.26-1.03-.38-1.55-.26-1.03-.51-2.06-.68-3.1-.05-.26-.09-.52-.13-.78l-.11-.78c-.04-.26-.07-.52-.11-.78l-.05-.39-.05-.39c-.13-1.04-.24-2.09-.32-3.14-.04-.52-.08-1.05-.11-1.58Z"/></svg>');
  --icon-drink: url('data:image/svg+xml;utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 28"><path d="M.22.2s.17-.05.17-.05h19.22s.13,0,.17.05c.06.07.06.15.06.25-.12,4.78-3.24,8.31-7.05,10.09-.38.18-1.12.71-1.38.94-.82.77-.84,1.74-.84,1.74v9.38c0,1.25.29,1.79.67,2.46.37.66,1.33,1.27,2.1,1.47.7.19,1.32.38,1.85.48.21.04.41.18.41.49s-.16.24-.37.29c-.21.05-5.23.07-5.24.07,0,0-5.02-.02-5.24-.07-.21-.05-.37.01-.37-.29s.2-.45.41-.49c.53-.1,1.15-.29,1.85-.48.77-.2,1.73-.81,2.1-1.47.38-.67.67-1.21.67-2.46v-9.38s-.02-.97-.84-1.74c-.25-.23-1-.76-1.37-.94C3.4,8.76.28,5.23.16.45c0-.1,0-.18.06-.25Z"/></svg>');
  --icon-plus: url('data:image/svg+xml;utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M15.17,23.59v-15.19c0-.46.37-.83.83-.83s.83.37.83.83v15.19c0,.46-.37.83-.83.83s-.83-.37-.83-.83Z"/><path d="M23.59,15.17h.04c.44.02.79.39.79.83s-.35.8-.79.83h-.04s-15.19,0-15.19,0c-.46,0-.83-.37-.83-.83s.37-.83.83-.83h15.19Z"/><path d="M16,1.88c7.78,0,14.12,6.33,14.12,14.12s-6.33,14.12-14.12,14.12S1.88,23.78,1.88,16,8.22,1.88,16,1.88M16,.18C7.26.18.18,7.26.18,16s7.08,15.82,15.82,15.82,15.82-7.08,15.82-15.82S24.74.18,16,.18h0Z"/></svg>');
  --icon-minus: url('data:image/svg+xml;utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M23.59,15.17h.04c.44.02.79.39.79.83s-.35.8-.79.83h-.04s-15.19,0-15.19,0c-.46,0-.83-.37-.83-.83s.37-.83.83-.83h15.19Z"/><path d="M16,1.88c7.78,0,14.12,6.33,14.12,14.12s-6.33,14.12-14.12,14.12S1.88,23.78,1.88,16,8.22,1.88,16,1.88M16,.18C7.26.18.18,7.26.18,16s7.08,15.82,15.82,15.82,15.82-7.08,15.82-15.82S24.74.18,16,.18h0Z"/></svg>');
}

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

html {
  scrollbar-gutter: stable;
}

body {
  background-color: var(--color-base);
  color: var(--color-txt);
  letter-spacing: .07em;
  font-weight: 400;
  font-family: var(--font-family-primary);
  line-height: 2.2;

  font-optical-sizing: auto;
}

:focus-visible {
  outline-offset: 3px;
}

:where(img, svg, video, iframe, audio) {
  max-inline-size: 100%;
  max-block-size: 100%;
}

:where(fieldset) {
  min-inline-size: 0;
}

[hidden]:not([hidden=until-found]) {
  display: none !important;
}

:lang(en) {
  font-family: var(--font-family-secondary);
}

a {
  color: #7f50be;
  text-decoration: none;
  transition: color .3s;

  text-underline-offset: 4px;
}
a:is(:hover, :active, :focus) {
  color: #995dec;
  text-decoration: none;
}
a.tel-link {
  color: inherit;
}
@media print, screen and (min-width: 768px) {
  a.tel-link {
    pointer-events: none;
  }
}

em,
strong {
  font-weight: bold;
  font-style: normal;
}

button,
input[type=submit],
input[type=button] {
  padding: 0;
  border: 0;
}

img {
  -webkit-backface-visibility: hidden;
}

.splash {
  position: fixed;
  z-index: 99999;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
.repeat-access .splash {
  display: none;
}
.splash__logo {
  position: absolute;
  top: 50%;
  left: 47%;
  z-index: 2;
  opacity: 1;
  transition: opacity .8s, visibility .8s;
  transform: translate(-50%, -50%);
}
.splash__logo.is-hidden {
  visibility: hidden;
  opacity: 0;
}
.splash__logo img {
  width: clamp(160px, 17.1vw, 230px);
  height: auto;
  opacity: 0;
  animation-name: fadeIn;
  animation-duration: 1.4s;

  animation-fill-mode: forwards;
}
@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.splash__mask {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  animation-timing-function: cubic-bezier(.25, 1, .5, 1);

  -webkit-mask-image: linear-gradient(#000, #000), var(--mask-circle);
          mask-image: linear-gradient(#000, #000), var(--mask-circle);
  -webkit-mask-position: 0 0, center center;
          mask-position: 0 0, center center;
  -webkit-mask-size: 100% 100%, 0 0;
          mask-size: 100% 100%, 0 0;
  -webkit-mask-composite: xor;
          mask-composite: exclude;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  animation-fill-mode: forwards;
}
.splash__mask.--mask1 {
  background-color: var(--color-main);
  animation-duration: 1s;
  animation-delay: .2s;
}
.splash__mask.--mask1.is-active {
  animation-name: expandHole;
}
.splash__mask.--mask2 {
  background-color: var(--color-base);
  animation-duration: 1.1s;
}
.splash__mask.--mask2.is-active {
  animation-name: expandHole;
}
@keyframes expandHole {
  0% {
    opacity: 1;

    -webkit-mask-size: 100% 100%, 0 0;
            mask-size: 100% 100%, 0 0;
  }
  99% {
    opacity: 1;
  }
  100% {
    opacity: 0;

    -webkit-mask-size: 100% 100%, hypot(100vw, 100vh) hypot(100vw, 100vh);
            mask-size: 100% 100%, hypot(100vw, 100vh) hypot(100vw, 100vh);
  }
}

/* ========================================================================
/*
/* Layout
/*
========================================================================= */
/* 全体
--------------------------------------------------------- */
.page-wrapper {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

/* ヘッダー
--------------------------------------------------------- */
.header {
  position: fixed;
  top: 0;
  z-index: 100;
  width: 100%;
  background-color: transparent;
  opacity: 0;
  transition: transform .5s, opacity .5s, background-color .5s, -webkit-backdrop-filter .5s;
  transition: transform .5s, opacity .5s, background-color .5s, backdrop-filter .5s;
  transition: transform .5s, opacity .5s, background-color .5s, backdrop-filter .5s, -webkit-backdrop-filter .5s;
  transform: translateY(-100%);
}
@media screen and (max-width: 991.98px) {
  .header {
    display: flex;
    height: var(--header-height-mobile);
    padding-left: 1.5vw;

    align-items: center;
  }
}
@media print, screen and (min-width: 992px) {
  .header {
    display: grid;
    height: var(--header-height-desktop);
    padding-right: clamp(15px, 1.9vw, 40px);
    padding-left: clamp(10px, 1.4vw, 30px);
    column-gap: 2%;

    grid-template: 'logo util'/auto auto;
    align-items: center;
  }
}
@media print {
  .header {
    position: static;
  }
}
.header.is-show {
  opacity: 1;
  transform: translateY(0);
}
.header.is-below {
  background-color: rgba(255, 255, 255, .7);

  -webkit-backdrop-filter: blur(7px);
          backdrop-filter: blur(7px);
}
.is-dark .header.is-below {
  background-color: rgba(66, 65, 78, .7);
}
.header.is-below .header__logo-txt {
  color: var(--color-txt);
}
.is-dark .header.is-below .header__logo-txt {
  color: #fafafa;
}
.header.is-below .drawer__btn-line {
  background-color: var(--color-txt);
}
.is-dark .header.is-below .drawer__btn-line {
  background-color: #fafafa;
}
@media print, screen and (min-width: 992px) {
  .header.is-below .global-nav__item > a {
    color: var(--color-txt);
  }
  .is-dark .header.is-below .global-nav__item > a {
    color: #fafafa;
  }
}
@media print, screen and (min-width: 992px) {
  .header.is-below .global-nav__item > a::after {
    background-color: var(--color-txt);
  }
}
@media print, screen and (min-width: 992px) {
  .header.is-below .header__btn-icon .st0 {
    fill: var(--color-txt);
  }
  .is-dark .header.is-below .header__btn-icon .st0 {
    fill: #fafafa;
  }
}
.header__logo {
  line-height: 1;

  grid-area: logo;
}
.header__logo a {
  display: inline-block;
  text-decoration: none;
}
.header__logo a:hover img,
.header__logo a:active img,
.header__logo a:focus img {
  opacity: 1;
}
.header__logo-mark {
  display: inline-block;
  vertical-align: middle;
  font-size: 0;
}
.header__logo-mark img {
  height: auto;
}
@media screen and (max-width: 991.98px) {
  .header__logo-mark img {
    width: clamp(35px, 5.9vw, 45px);
  }
}
@media print, screen and (min-width: 992px) {
  .header__logo-mark img {
    width: clamp(45px, 3.8vw, 65px);
  }
}
.header__logo-txt {
  display: inline-block;
  margin-left: .2em;
  color: #fff;
  vertical-align: middle;
  white-space: nowrap;
  letter-spacing: .02em;
  font-weight: 600;
  font-family: var(--font-family-secondary);
  line-height: 1.5;

  font-feature-settings: 'palt';
}
@media screen and (max-width: 991.98px) {
  .header__logo-txt {
    font-size: clamp(1.188rem, .791vw + 1.009rem, 1.5rem);
  }
}
@media print, screen and (min-width: 992px) {
  .header__logo-txt {
    font-size: clamp(1.313rem, 1.185vw + .578rem, 2rem);
  }
}
.header__util {
  grid-area: util;
}
@media print, screen and (min-width: 992px) {
  .header__block {
    display: grid;
    column-gap: clamp(20px, 2.1vw, 40px);

    grid-template: 'nav btns'/1fr auto;
    align-items: center;
    justify-content: flex-end;
  }
}
.header__nav {
  grid-area: nav;
}
.header__btns {
  grid-area: btns;
}
@media screen and (max-width: 991.98px) {
  .header__btns {
    margin-top: 50px;
  }
}
@media print, screen and (min-width: 992px) {
  .header__btns {
    display: flex;

    align-items: center;
    gap: clamp(15px, 1.2vw, 20px);
  }
}
.header__btn {
  grid-area: btn;
}
@media screen and (max-width: 991.98px) {
  .header__btn + .header__btn {
    margin-top: 20px;
  }
}
.header__btn a {
  text-decoration: none;
}
@media screen and (max-width: 991.98px) {
  .header__btn a {
    display: flex;
    padding: .6em .2em;
    background-color: var(--color-main);
    color: #fff;

    align-items: center;
    justify-content: center;
    gap: 8px;
  }
}
@media print, screen and (min-width: 992px) {
  .header__btn a {
    display: block;
  }
}
.header__btn-icon {
  display: block;
  width: auto;
  transition: opacity .3s;
}
@media screen and (max-width: 991.98px) {
  .header__btn-icon.--mail {
    height: clamp(13px, .9vw, 14px);
  }
}
@media print, screen and (min-width: 992px) {
  .header__btn-icon.--mail {
    height: clamp(15px, 1.1vw, 18px);
  }
}
@media screen and (max-width: 991.98px) {
  .header__btn-icon.--insta {
    height: clamp(16px, 1.1vw, 17px);
  }
}
@media print, screen and (min-width: 992px) {
  .header__btn-icon.--insta {
    height: clamp(20px, 1.5vw, 23px);
  }
}
.header__btn-icon .st0 {
  transition: fill .3s;

  fill: #fff;
}
@media print, screen and (min-width: 992px) {
  .header__btn-icon:hover {
    opacity: .7;
  }
}
.header__btn-txt {
  letter-spacing: .14em;
  font-size: clamp(1.063rem, .158vw + 1.027rem, 1.125rem);
  font-family: var(--font-family-secondary);
  line-height: 1.5;
}
@media print, screen and (min-width: 992px) {
  .header__btn-txt {
    display: none;
  }
}

/* コンテンツ
--------------------------------------------------------- */
.contents {
  flex: 1 0 auto;
  overflow: hidden;
  padding-bottom: clamp(80px, 12.3vw, 200px);
}
.contents.--no-space-bottom {
  padding-bottom: 0;
}

/* フッター
--------------------------------------------------------- */
.footer {
  background-color: var(--color-base3);
}
@media print {
  .footer {
    page-break-inside: avoid;
  }
}
.footer__inner {
  max-width: min(92vw, 1280px);
  margin-right: auto;
  margin-left: auto;
  padding-top: clamp(50px, 5.3vw, 70px);
  padding-bottom: clamp(50px, 5.3vw, 70px);
}
@media print, screen and (min-width: 992px) {
  .footer__inner {
    display: grid;
    column-gap: 3%;

    grid-template-columns: auto auto;
    grid-template-areas: 'info actions';
  }
}
.footer__info {
  grid-area: info;
}
@media screen and (max-width: 991.98px) {
  .footer__info {
    font-size: .9375rem;
    line-height: 2;
  }
}
@media screen and (min-width: 768px) and (max-width: 991.98px) {
  .footer__info {
    text-align: center;
  }
}
@media print, screen and (min-width: 992px) {
  .footer__info {
    font-size: clamp(.875rem, .108vw + .808rem, .938rem);
    line-height: 2.2;
  }
}
.footer__logo {
  margin-bottom: 25px;
  line-height: 1;

  grid-area: logo;
}
.footer__logo a {
  display: inline-block;
  text-decoration: none;
}
.footer__logo a:hover img,
.footer__logo a:active img,
.footer__logo a:focus img {
  opacity: 1;
}
.footer__logo-mark {
  display: inline-block;
  vertical-align: middle;
  font-size: 0;
}
.footer__logo-mark img {
  height: auto;
}
@media screen and (max-width: 991.98px) {
  .footer__logo-mark img {
    width: clamp(45px, 7.4vw, 55px);
  }
}
@media print, screen and (min-width: 992px) {
  .footer__logo-mark img {
    width: clamp(45px, 3.6vw, 60px);
  }
}
.footer__logo-txt {
  display: inline-block;
  margin-left: .3em;
  vertical-align: middle;
  white-space: nowrap;
  letter-spacing: .02em;
  font-weight: 600;
  font-family: var(--font-family-secondary);
  line-height: 1.5;

  font-feature-settings: 'palt';
}
@media screen and (max-width: 991.98px) {
  .footer__logo-txt {
    font-size: clamp(1.375rem, .475vw + 1.268rem, 1.563rem);
  }
}
@media print, screen and (min-width: 992px) {
  .footer__logo-txt {
    font-size: clamp(1.25rem, .862vw + .716rem, 1.75rem);
  }
}
.footer__address .map-icon {
  position: relative;
  top: -.1em;
  display: inline-block;
  margin-left: .2em;
  vertical-align: middle;
  line-height: 1;
}
.footer__address .map-icon svg {
  width: auto;
  height: 1em;
}
.footer__address .map-icon svg .st0 {
  transition: fill .3s;

  fill: var(--color-main);
}
.footer__address .map-icon:hover svg .st0 {
  fill: var(--color-sub);
}
.footer__time {
  margin-top: 25px;
}
.footer__time-title {
  font-weight: 500;
  font-size: 1rem;
}
@media only screen and (max-width: 767.98px) {
  .footer__time-title {
    margin-bottom: .5em;
  }
}
@media print, screen and (min-width: 768px) {
  .footer__time-title {
    margin-bottom: .2em;
  }
}
@media only screen and (max-width: 767.98px) {
  .footer__time-list li {
    line-height: 1.8;
  }
}
@media only screen and (max-width: 767.98px) {
  .footer__time-list li + li {
    margin-top: .3em;
  }
}
@media only screen and (max-width: 767.98px) {
  .footer__time-list span {
    font-weight: 500;
  }
}
.footer__time-note {
  margin-top: .5em;
}
.footer__actions {
  grid-area: actions;
}
@media print, screen and (min-width: 992px) {
  .footer__actions {
    padding-top: clamp(10px, .9vw, 15px);
  }
}
@media screen and (max-width: 991.98px) {
  .footer__list {
    margin-top: clamp(40px, 6.7vw, 50px);
  }
}
@media print, screen and (min-width: 992px) {
  .footer__block {
    width: clamp(400px, 30.9vw, 500px);
    margin-left: auto;
  }
}
.footer__btns {
  display: grid;
  margin-top: clamp(50px, 4.8vw, 60px);
  font-size: 0;

  grid-template-columns: repeat(2, 1fr);
}
@media screen and (max-width: 991.98px) {
  .footer__btns {
    column-gap: 3%;
  }
}
@media print, screen and (min-width: 992px) {
  .footer__btns {
    column-gap: 4%;
  }
}
.footer__btn .btn {
  display: block;
}
.footer__btn .btn.--secondary {
  padding-right: .2em;
  padding-left: .2em;
}
@media screen and (max-width: 991.98px) {
  .footer__bnr {
    margin-top: clamp(40px, 6.7vw, 50px);
  }
}
@media print, screen and (min-width: 992px) {
  .footer__bnr {
    margin-top: clamp(30px, 2.4vw, 40px);
    text-align: right;
  }
}
.footer__bnr a {
  position: relative;
  z-index: 1;
  display: flex;
  background: url('../images/common/bnr-company.jpg') center bottom/cover no-repeat;
  color: #fff;
  font-weight: 600;
  font-size: clamp(1.25rem, .321vw + 1.178rem, 1.563rem);
  font-family: var(--font-family-secondary);

  align-items: center;
  justify-content: center;
}
@media screen and (max-width: 991.98px) {
  .footer__bnr a {
    height: 140px;
  }
}
@media print, screen and (min-width: 992px) {
  .footer__bnr a {
    height: clamp(140px, 10.3vw, 160px);
  }
}
.footer__bnr a::before {
  position: absolute;
  z-index: -1;
  background-color: rgba(82, 86, 107, .26);
  content: '';
  transition: background-color .5s;

  inset: 0;
}
.footer__bnr a:is(:hover, :active, :focus)::before {
  background-color: rgba(36, 38, 46, .4);
}
.footer__copyright {
  width: min(92%, 1280px);
  margin-right: auto;
  margin-left: auto;
  padding-top: 1.5em;
  padding-bottom: 1.5em;
  border-top: 1px dotted #e3ded9;
  color: #bcb7b4;
  text-align: center;
  letter-spacing: .1em;
  font-size: .75rem;
}

/* ========================================================================
/*
/* Component
/*
========================================================================= */
/* ドロワー
--------------------------------------------------------- */
.drawer__btn {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 1000;
  width: clamp(45px, 7.8vw, 60px);
  height: clamp(45px, 7.8vw, 60px);
  outline: none !important;
  background: transparent;
  transition: background-color .5s;

  -webkit-user-select: none;
          user-select: none;
}
@media print, screen and (min-width: 992px) {
  .drawer__btn {
    display: none;
  }
}
.drawer__btn-line {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 10;
  display: block;
  width: clamp(24px, 4vw, 30px);
  height: 1px;
  margin: auto;
  background: #fff;
  transition: .5s cubic-bezier(.645, .045, .355, 1);
  pointer-events: none;
}
.is-drawer-open .drawer__btn-line {
  background-color: rgba(255, 255, 255, .5) !important;
}
.drawer__btn-line:nth-child(1) {
  transform: translateY(-6px);
}
.is-drawer-open .drawer__btn-line:nth-child(1) {
  transform: rotate(45deg);
}
.is-drawer-open .drawer__btn-line:nth-child(2) {
  opacity: 0;
}
.drawer__btn-line:nth-child(3) {
  transform: translateY(6px);
}
.is-drawer-open .drawer__btn-line:nth-child(3) {
  transform: rotate(-45deg);
}
@media screen and (max-width: 991.98px) {
  .drawer__bg {
    position: fixed;
    top: 0;
    left: 100%;
    z-index: 500;
    overflow-x: hidden;
    width: min(80vw, 450px);
    height: 100vh;
    background-color: #262626;
    transition: transform .5s cubic-bezier(.645, .045, .355, 1);
    pointer-events: none;
  }
}
@media print, screen and (min-width: 992px) {
  .drawer__bg {
    height: 100%;
  }
}
@media screen and (max-width: 991.98px) {
  .drawer__bg::-webkit-scrollbar {
    display: none;
  }
}
@media screen and (max-width: 991.98px) {
  .is-drawer-open .drawer__bg {
    overflow-y: auto;
    transform: translateX(-100%);
    pointer-events: auto;

    -ms-overflow-style: none;
    scrollbar-width: none;
  }
}
@media screen and (max-width: 991.98px) {
  .drawer__inner {
    visibility: hidden;
    padding: 90px 6vw 140px;
    opacity: 0;
    transition: opacity .5s cubic-bezier(.645, .045, .355, 1) .25s, visibility .5s cubic-bezier(.645, .045, .355, 1) .25s, transform .5s cubic-bezier(.645, .045, .355, 1) .25s;
    transform: translateX(30px);
  }
}
@media print, screen and (min-width: 992px) {
  .drawer__inner {
    height: 100%;
  }
}
@media screen and (max-width: 991.98px) {
  .is-drawer-open .drawer__inner {
    visibility: visible;
    opacity: 1;
    transform: none;
  }
}
@media screen and (max-width: 991.98px) {
  .drawer__overlay {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 400;
    visibility: hidden;
    width: 100%;
    height: 100vh;
    opacity: 0;
    transition: .5s cubic-bezier(.645, .045, .355, 1);
    pointer-events: none;

    -webkit-backdrop-filter: blur(1px);
            backdrop-filter: blur(1px);
  }
}
@media screen and (max-width: 991.98px) {
  .is-drawer-open .drawer__overlay {
    visibility: visible;
    background: rgba(0, 0, 0, .3);
    opacity: 1;
    pointer-events: auto;
  }
}

/* グローバルナビ
--------------------------------------------------------- */
@media print, screen and (min-width: 992px) {
  .global-nav__items {
    display: flex;

    justify-content: flex-end;
    gap: clamp(16px, 1.5vw, 27px);
  }
}
@media screen and (max-width: 991.98px) {
  .global-nav__item + .global-nav__item {
    margin-top: 10px;
  }
}
@media print, screen and (min-width: 992px) {
  .global-nav__item.--only-sp {
    display: none;
  }
}
.global-nav__item > a {
  position: relative;
  display: block;
  color: #fff;
  text-decoration: none;
  transition: color .3s;
}
@media screen and (max-width: 991.98px) {
  .global-nav__item > a {
    padding: .9em .5em;
    text-align: left;
  }
}
@media print, screen and (min-width: 992px) {
  .global-nav__item > a {
    padding: .8em .2em;
  }
}
@media print, screen and (min-width: 992px) {
  .global-nav__item > a:hover .global-nav__txt.--front,
  .global-nav__item > a:focus .global-nav__txt.--front {
    visibility: hidden;
    opacity: 0;
    transform: translateY(-100%);
  }
}
@media print, screen and (min-width: 992px) {
  .global-nav__item > a:hover .global-nav__txt.--back,
  .global-nav__item > a:focus .global-nav__txt.--back {
    visibility: visible;
    opacity: 1;
    transform: translateY(0);
  }
}
.global-nav__txt-wrap {
  position: relative;
  display: block;
  overflow: hidden;
  line-height: 1.1;
}
@media screen and (max-width: 991.98px) {
  .global-nav__txt {
    letter-spacing: .13em;
    font-size: 1.125rem;
    font-family: var(--font-family-secondary);
  }
}
@media print, screen and (min-width: 992px) {
  .global-nav__txt {
    position: relative;
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    letter-spacing: .1306666667em;
    font-size: clamp(14px, 1vw, 15px);
    transition-duration: .3s;
    transition-property: opacity, visibility, transform;
  }
}
@media screen and (max-width: 991.98px) {
  .global-nav__txt.--back {
    display: none;
  }
}
@media print, screen and (min-width: 992px) {
  .global-nav__txt.--back {
    position: absolute;
    visibility: hidden;
    opacity: 0;
    transform: translateY(100%);
  }
}

/* フッターナビ
--------------------------------------------------------- */
@media screen and (max-width: 991.98px) {
  .footer-nav__items {
    gap: 1.4em;
  }
}
@media print, screen and (min-width: 768px) {
  .footer-nav__items {
    display: flex;

    flex-wrap: wrap;
    justify-content: center;
    gap: .8em 1.4em;
  }
}
@media screen and (min-width: 992px) and (max-width: 1199.98px) {
  .footer-nav__items {
    display: grid;

    grid-template-columns: repeat(4, auto);
  }
}
@media print, screen and (min-width: 992px) {
  .footer-nav__items {
    column-gap: clamp(15px, 1.2vw, 20px);

    justify-content: flex-end;
  }
}
.footer-nav__item {
  position: relative;
  line-height: 1.6;
}
@media screen and (max-width: 991.98px) {
  .footer-nav__item {
    font-size: .9375rem;
  }
}
@media print, screen and (min-width: 992px) {
  .footer-nav__item {
    font-size: clamp(.875rem, .108vw + .808rem, .938rem);
  }
}
@media only screen and (max-width: 767.98px) {
  .footer-nav__item + .footer-nav__item {
    margin-top: .8em;
  }
}
.footer-nav__item a {
  color: var(--color-txt);
  transition: color .3s;
}
.footer-nav__item a:is(:hover, :active, :focus) {
  color: var(--color-main);
}

/* コンテナ
--------------------------------------------------------- */
.container {
  width: min(92%, 1280px);
  margin-right: auto;
  margin-left: auto;
}

/* ページタイトル
--------------------------------------------------------- */
.page-header {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  margin-bottom: clamp(60px, 8.8vw, 140px);
  text-align: center;

  align-items: center;
  justify-content: center;
}
@media screen and (max-width: 991.98px) {
  .page-header {
    height: clamp(210px, 34.8vw, 260px);
  }
}
@media print, screen and (min-width: 992px) {
  .page-header {
    height: clamp(450px, 34.3vw, 550px);
  }
}
.page-header.--about {
  margin-bottom: 0;
}
.page-header.--menu {
  margin-bottom: 0;
}
.page-header__img {
  position: absolute;
  z-index: -1;

  inset: 0;
}
.page-header__img::before {
  position: absolute;
  z-index: 1;
  background-color: rgba(0, 0, 0, .3);
  content: '';
  opacity: 0;
  transition: opacity .5s;

  inset: 0;
}
.page-header.is-loaded .page-header__img::before {
  opacity: 1;
}
.page-header__img img {
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity .5s;

  object-fit: cover;
}
.page-header.is-loaded .page-header__img img {
  opacity: 1;
}
.page-header.--about .page-header__img img {
  object-position: center 80%;
}
.page-header.--menu .page-header__img img {
  object-position: center 80%;
}
.page-header.--company .page-header__img img {
  object-position: center bottom;
}
.page-header.--notfound .page-header__img img {
  object-position: left bottom;
}
@media screen and (max-width: 991.98px) {
  .page-header__inner {
    padding-top: 6%;
  }
}
@media print, screen and (min-width: 992px) {
  .page-header__inner {
    padding-top: 3%;
  }
}
.page-header__en,
.page-header__title {
  color: #fff;
  opacity: 0;
  filter: blur(10px);
  transition: filter 2s, opacity 1s;
}
.page-header.is-loaded .page-header__en,
.page-header.is-loaded .page-header__title {
  opacity: 1;
  filter: blur(0);
}
.page-header__en span,
.page-header__title span {
  transition: -webkit-mask-position 4s;
  transition:         mask-position 4s;
  transition:         mask-position 4s, -webkit-mask-position 4s;

  -webkit-mask-image: linear-gradient(270deg, hsla(0, 0%, 100%, 0) 0%, hsla(0, 0%, 100%, 0) 30%, hsla(0, 0%, 100%, .02) 35%, hsla(0, 0%, 100%, .09) 40%, hsla(0, 0%, 100%, .21) 45%, hsla(0, 0%, 100%, .38) 50%, hsla(0, 0%, 100%, .62) 55%, hsla(0, 0%, 100%, .79) 60%, hsla(0, 0%, 100%, .91) 65%, hsla(0, 0%, 100%, .98) 70%, hsl(0, 0%, 100%) 75%, hsl(0, 0%, 100%) 100%);
          mask-image: linear-gradient(270deg, hsla(0, 0%, 100%, 0) 0%, hsla(0, 0%, 100%, 0) 30%, hsla(0, 0%, 100%, .02) 35%, hsla(0, 0%, 100%, .09) 40%, hsla(0, 0%, 100%, .21) 45%, hsla(0, 0%, 100%, .38) 50%, hsla(0, 0%, 100%, .62) 55%, hsla(0, 0%, 100%, .79) 60%, hsla(0, 0%, 100%, .91) 65%, hsla(0, 0%, 100%, .98) 70%, hsl(0, 0%, 100%) 75%, hsl(0, 0%, 100%) 100%);
  -webkit-mask-position: right center;
          mask-position: right center;
  -webkit-mask-size: 300% 100%;
          mask-size: 300% 100%;
}
.page-header.is-loaded .page-header__en span,
.page-header.is-loaded .page-header__title span {
  -webkit-mask-position: left center;
          mask-position: left center;
}
.page-header__en {
  letter-spacing: .09em;
  font-weight: 400;
  font-size: clamp(1.688rem, .705vw + 1.529rem, 2.375rem);
  font-family: var(--font-family-tertiary);
  line-height: 1.5;
}
@media screen and (max-width: 991.98px) {
  .page-header__en {
    font-size: clamp(1.875rem, 1.266vw + 1.59rem, 2.375rem);
  }
}
@media print, screen and (min-width: 992px) {
  .page-header__en {
    font-size: clamp(3.75rem, 2.155vw + 2.414rem, 5rem);
  }
}
.page-header__title {
  letter-spacing: .1em;
  font-weight: 500;
  font-family: var(--font-family-secondary);
  line-height: 1.5;
}
@media screen and (max-width: 991.98px) {
  .page-header__title {
    font-size: clamp(1.125rem, .316vw + 1.054rem, 1.25rem);
  }
}
@media print, screen and (min-width: 992px) {
  .page-header__title {
    font-size: clamp(1.313rem, .323vw + 1.112rem, 1.5rem);
  }
}
.page-header__title span {
  transition-delay: 1.5s;
}

/* キャッチコピー
--------------------------------------------------------- */
.copy {
  display: inline-block;
  margin-bottom: clamp(20px, 3.1vw, 50px);
  background-image: linear-gradient(to right, #b33a88, #522889);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
  letter-spacing: .1em;
  font-weight: 500;
  font-family: var(--font-family-secondary);
  line-height: 1.8;
}
@media screen and (max-width: 991.98px) {
  .copy {
    font-size: clamp(1.25rem, .791vw + 1.072rem, 1.563rem);
  }
}
@media print, screen and (min-width: 992px) {
  .copy {
    font-size: clamp(1.875rem, 1.509vw + .94rem, 2.75rem);
  }
}

/* リスト
--------------------------------------------------------- */
.list > li {
  position: relative;
}
.list > li::before {
  position: absolute;
  left: 0;
}
.list.--num > li {
  margin-left: 1.3em;
  list-style-type: decimal;
}
.list.--num > li + li {
  margin-top: .4em;
}
.list.--kansuji > li {
  margin-left: 2.2em;
  list-style-type: cjk-ideographic;
}
.list.--kansuji > li + li {
  margin-top: .4em;
}

/* テーブル
--------------------------------------------------------- */
.table {
  width: 100%;
}
@media print {
  .table {
    page-break-inside: avoid;
  }
}
.table th,
.table td {
  word-break: break-all;
}
@media only screen and (max-width: 767.98px) {
  .table th,
  .table td {
    display: block;
    width: 100%;
  }
}
@media print, screen and (min-width: 768px) {
  .table.--style-a tr {
    border-bottom: 1px solid #e9d9d0;
  }
}
@media print, screen and (min-width: 768px) {
  .table.--style-a th,
  .table.--style-a td {
    padding: 1.7em .4em;
  }
}
.table.--style-a th {
  font-weight: normal;
  font-weight: 500;
}
@media only screen and (max-width: 767.98px) {
  .table.--style-a th {
    padding: .3em 1.4em;
    background-color: var(--color-base2);
    text-align: center;
  }
}
@media print, screen and (min-width: 768px) {
  .table.--style-a th {
    width: 25%;
  }
}
@media only screen and (max-width: 767.98px) {
  .table.--style-a td {
    padding: 1.4em 1.4em 1.6em;
    background-color: var(--color-base3);
  }
}
@media print, screen and (min-width: 768px) {
  .table.--style-a td {
    padding-left: 2em;
  }
}

/* バッジ
--------------------------------------------------------- */
.req-icon {
  display: inline-block;
  padding: .3em .7em;
  background-color: var(--color-important);
  color: #fff;
  font-weight: normal;
  font-size: .625rem;
  line-height: 1.4;
}

/* 記事出力エリア
--------------------------------------------------------- */
.entry-content > * + * {
  margin-top: clamp(40px, 4.8vw, 70px);
}
.entry-content h3,
.entry-content h4,
.entry-content h5,
.entry-content h6 {
  margin-bottom: 0;
  font-weight: 600;
  font-family: var(--font-family-secondary);
  line-height: 1.6;
}
.entry-content :is(h3, h4, h5, h6) + * {
  margin-top: 1.4em;
}
.entry-content h3 {
  font-size: clamp(20px, 1.9vw, 24px);
}
.entry-content h4 {
  font-size: clamp(19px, 1.8vw, 23px);
}
.entry-content h5 {
  font-size: clamp(18px, 1.7vw, 20px);
}
.entry-content h6 {
  font-size: clamp(17px, 1.5vw, 18px);
}
.entry-content p + p {
  margin-top: 2em;
}
.entry-content ul,
.entry-content ol {
  padding-left: 1.4em;
}
.entry-content ul {
  list-style: disc;
}
.entry-content ol {
  list-style: decimal;
}
.entry-content ul > li,
.entry-content ol > li {
  display: list-item;
  list-style: inherit;
}
.entry-content li + li {
  margin-top: .4em;
}
.entry-content a {
  color: inherit;
  text-decoration: underline;

  text-underline-offset: .15em;
}
.entry-content a:hover {
  text-decoration: none;
}
.entry-content img,
.entry-content iframe {
  height: auto;
  max-width: 100%;
}

.heading {
  margin-bottom: clamp(35px, 4.2vw, 60px);
  letter-spacing: .1em;
  font-weight: 500;
  font-size: clamp(1.5rem, 1.026vw + 1.269rem, 2.5rem);
  font-family: var(--font-family-secondary);
  line-height: 1.5;
}
.heading + * {
  margin-top: 0 !important;
}
.heading.--center {
  text-align: center;
}
.heading.--size-m {
  margin-bottom: clamp(30px, 3.9vw, 60px);
  font-size: clamp(1.313rem, .833vw + 1.125rem, 2.125rem);
}
.heading.--food::before,
.heading.--drink::before {
  position: relative;
  display: inline-block;
  background-color: var(--color-main);
  content: '';
  transition: background-color .5s;

  -webkit-mask-size: 100% 100%;
          mask-size: 100% 100%;
}
@media print {
  .heading.--food::before,
  .heading.--drink::before {
    -webkit-print-color-adjust: exact;
  }
}
.heading.--food::before {
  top: .2em;
  height: 1.5em;
  margin-right: .5em;

  -webkit-mask-image: var(--icon-food);
          mask-image: var(--icon-food);
  aspect-ratio: 29/44;
}
.heading.--drink::before {
  top: .1em;
  height: 1.2em;
  margin-right: .4em;

  -webkit-mask-image: var(--icon-drink);
          mask-image: var(--icon-drink);
  aspect-ratio: 20/28;
}
.is-dark .heading.--drink::before {
  background-color: #972f6e;
}

/* キービジュアル
--------------------------------------------------------- */
.hero {
  position: relative;
  z-index: 1;
  overflow: hidden;
  margin-bottom: clamp(70px, 9.2vw, 140px);
}
.hero::before {
  position: absolute;
  z-index: 2;
  background-color: rgba(28, 28, 28, .3);
  content: '';

  inset: 0;
}
.hero__content {
  position: absolute;
  z-index: 3;

  inset: 0;
}
@media screen and (max-width: 991.98px) {
  .hero__content {
    padding-top: var(--header-height-mobile);
    padding-bottom: 160px;
  }
}
@media print, screen and (min-width: 992px) {
  .hero__content {
    padding-top: var(--header-height-desktop);
    padding-bottom: clamp(60px, 5.5vw, 100px);
  }
}
.hero__copy {
  display: flex;
  flex-direction: column;
  height: 100%;
  font-weight: 500;
  font-family: var(--font-family-secondary);

  justify-content: center;
}
@media screen and (max-width: 991.98px) {
  .hero__copy {
    margin-right: 4vw;
    margin-left: 4vw;
  }
}
@media print, screen and (min-width: 992px) {
  .hero__copy {
    margin-right: clamp(50px, 5.5vw, 110px);
    margin-left: clamp(80px, 7.9vw, 150px);
  }
}
.hero__eyebrow,
.hero__headline {
  color: #fff;
  letter-spacing: .14em;
  line-height: 1.5;
  opacity: 0;
  filter: blur(10px);
  transition: filter 2s, opacity 1s;
}
.is-hero-swiper-ready .hero__eyebrow,
.is-hero-swiper-ready .hero__headline {
  opacity: 1;
  filter: blur(0);
}
.is-hero-swiper-ready .hero__eyebrow span,
.is-hero-swiper-ready .hero__headline span {
  -webkit-mask-position: left center;
          mask-position: left center;
}
.hero__eyebrow span,
.hero__headline span {
  transition: -webkit-mask-position 5s;
  transition:         mask-position 5s;
  transition:         mask-position 5s, -webkit-mask-position 5s;

  -webkit-mask-image: linear-gradient(270deg, hsla(0, 0%, 100%, 0) 0%, hsla(0, 0%, 100%, 0) 30%, hsla(0, 0%, 100%, .02) 35%, hsla(0, 0%, 100%, .09) 40%, hsla(0, 0%, 100%, .21) 45%, hsla(0, 0%, 100%, .38) 50%, hsla(0, 0%, 100%, .62) 55%, hsla(0, 0%, 100%, .79) 60%, hsla(0, 0%, 100%, .91) 65%, hsla(0, 0%, 100%, .98) 70%, hsl(0, 0%, 100%) 75%, hsl(0, 0%, 100%) 100%);
          mask-image: linear-gradient(270deg, hsla(0, 0%, 100%, 0) 0%, hsla(0, 0%, 100%, 0) 30%, hsla(0, 0%, 100%, .02) 35%, hsla(0, 0%, 100%, .09) 40%, hsla(0, 0%, 100%, .21) 45%, hsla(0, 0%, 100%, .38) 50%, hsla(0, 0%, 100%, .62) 55%, hsla(0, 0%, 100%, .79) 60%, hsla(0, 0%, 100%, .91) 65%, hsla(0, 0%, 100%, .98) 70%, hsl(0, 0%, 100%) 75%, hsl(0, 0%, 100%) 100%);
  -webkit-mask-position: right center;
          mask-position: right center;
  -webkit-mask-size: 300% 100%;
          mask-size: 300% 100%;
}
.hero__eyebrow {
  margin-bottom: 1em;
}
@media screen and (max-width: 991.98px) {
  .hero__eyebrow {
    font-size: clamp(1.063rem, .475vw + .956rem, 1.25rem);
  }
}
@media print, screen and (min-width: 992px) {
  .hero__eyebrow {
    font-size: clamp(1.438rem, 1.185vw + .703rem, 2.125rem);
  }
}
.hero__headline {
  transition-delay: 1.8s;
}
@media screen and (max-width: 991.98px) {
  .hero__headline {
    font-size: clamp(1.563rem, .475vw + 1.456rem, 1.75rem);
  }
}
@media print, screen and (min-width: 992px) {
  .hero__headline {
    font-size: clamp(2.063rem, 2.909vw + .259rem, 3.75rem);
  }
}
.hero__headline span {
  transition-delay: 1.8s;
}
.hero__news {
  position: absolute;
  right: 0;
  bottom: 0;
  background-color: rgba(0, 0, 0, .37);
  color: #fff;
}
@media screen and (max-width: 991.98px) {
  .hero__news {
    padding: .8em 1.2em 1.2em;
  }
}
@media print, screen and (min-width: 992px) {
  .hero__news {
    display: grid;
    max-width: clamp(700px, 51.5vw, 800px);
    padding: 1.1em 2.4em 1.2em 2.4em;
    column-gap: 30px;

    grid-template: 'header body'/auto 1fr;
    align-items: center;
  }
}
.hero__news-header {
  grid-area: header;
}
.hero__news-title {
  letter-spacing: .16em;
  font-weight: 500;
  font-size: clamp(1.125rem, .064vw + 1.111rem, 1.188rem);
  font-family: var(--font-family-tertiary);
}
.hero__news-body {
  grid-area: body;
}
.hero__news-item {
  display: grid;
  font-size: .75rem;
  line-height: 2.8;
  column-gap: 10px;

  grid-template: 'date txt'/auto 1fr;
}
.hero__news-date {
  grid-area: date;
}
.hero__news-txt {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  letter-spacing: .09em;

  grid-area: txt;
}
.hero__news-txt a {
  color: #fff;
  transition: opacity .3s;

  -webkit-text-decoration-line: underline;
          text-decoration-line: underline;
  -webkit-text-decoration-style: dotted;
          text-decoration-style: dotted;
  -webkit-text-decoration-color: rgba(255, 255, 255, .6);
          text-decoration-color: rgba(255, 255, 255, .6);
}
.hero__news-txt a:is(:hover, :active, :focus) {
  opacity: .7;
}
.is-splash-finished .hero .swiper .swiper-slide-active .slide-img,
.is-splash-finished .hero .swiper .swiper-slide-duplicate-active .slide-img,
.is-splash-finished .hero .swiper .swiper-slide-prev .slide-img {
  animation: zoomUp 10s ease-out 0s normal both;
}
@keyframes zoomUp {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(1.15);
  }
}
.hero .swiper-slide img {
  width: 100%;
  height: auto;
  font-size: 0;

  object-fit: cover;
}
@media screen and (max-width: 991.98px) {
  .hero .swiper-slide img {
    min-height: 70vh;
  }
}
@media print, screen and (min-width: 992px) {
  .hero .swiper-slide img {
    height: 100vh;
  }
}
.hero .swiper-fade .swiper-slide {
  transition-property: opacity, transform !important;
  pointer-events: none;
}
.hero .swiper-fade .swiper-slide-active {
  pointer-events: auto;
}

/* ボタン
--------------------------------------------------------- */
.btn {
  position: relative;
  z-index: 1;
  display: inline-block;
  overflow: hidden;
  color: inherit;
  text-align: center;
  text-decoration: none;
  font-size: inherit;
  line-height: 1.5;
  cursor: pointer;
  transition: background-color .3s, color .3s;

  -webkit-appearance: none;
          appearance: none;
}
.btn.--primary {
  background-image: linear-gradient(90deg, #6a39a6, #9a3672);
  color: #fff;
  letter-spacing: .1em;
  font-weight: 600;
  font-family: var(--font-family-secondary);
}
@media only screen and (max-width: 767.98px) {
  .btn.--primary {
    padding: 1.1em 1.7em;
    font-size: 1rem;
  }
}
@media print, screen and (min-width: 768px) {
  .btn.--primary {
    padding: 1.3em 3.5em;
    font-size: clamp(1rem, .174vw + .917rem, 1.125rem);
  }
}
.btn.--primary::after {
  position: absolute;
  z-index: -1;
  background: url('../images/common/noise.jpg') center/100% 100% no-repeat;
  content: '';
  opacity: .2;

  inset: 0;
  mix-blend-mode: multiply;
}
.btn.--primary::before {
  position: absolute;
  z-index: -1;
  background-image: linear-gradient(90deg, #552d86, #7d2c5d);
  content: '';
  transition: opacity .3s;

  inset: 0;
}
.btn.--primary:is(:hover, :active, :focus)::before {
  opacity: 0;
}
@media print, screen and (min-width: 992px) {
  .btn.--primary.--size-m {
    padding: 1em 3em;
    font-size: clamp(.938rem, .108vw + .871rem, 1rem);
  }
}
.btn.--map .btn__inner::before,
.btn.--external .btn__inner::before {
  position: relative;
  display: inline-block;
  background-color: #fff;
  content: '';
  transition: background-color .3s;

  -webkit-mask-size: 100% 100%;
          mask-size: 100% 100%;
}
@media print {
  .btn.--map .btn__inner::before,
  .btn.--external .btn__inner::before {
    -webkit-print-color-adjust: exact;
  }
}
.btn.--map .btn__inner::before {
  top: .2em;
  height: 1.2em;
  margin-right: .5em;

  aspect-ratio: 25/34;
  -webkit-mask-image: var(--icon-map);
          mask-image: var(--icon-map);
}
.btn.--external .btn__inner::before {
  top: .1em;
  height: .9em;
  margin-right: .6em;

  aspect-ratio: 1;
  -webkit-mask-image: var(--icon-external);
          mask-image: var(--icon-external);
}
.btn.--pdf .btn__inner::before {
  margin-right: .5em;
  color: inherit;
  content: '\f1c1';
  font-weight: 400;
  font-size: inherit;
  font-family: 'Font Awesome 6 Free';
  line-height: 1;
}
.btn.--secondary {
  background-color: var(--color-main);
  color: #fff;
  letter-spacing: .1em;
  font-weight: 400;
}
@media only screen and (max-width: 767.98px) {
  .btn.--secondary {
    padding: 1.1em 1.5em;
    font-size: .9375rem;
  }
}
@media print, screen and (min-width: 768px) {
  .btn.--secondary {
    padding: 1.1em 2.5em;
    font-size: clamp(.875rem, .087vw + .833rem, .938rem);
  }
}
.btn.--secondary:is(:hover, :active, :focus) {
  background-color: var(--color-sub-hover);
}
.btn.--secondary.--mail::before,
.btn.--secondary.--insta::before,
.btn.--secondary.--external::before {
  position: relative;
  display: inline-block;
  background-color: #fff;
  content: '';
  transition: background-color .3s;

  -webkit-mask-size: 100% 100%;
          mask-size: 100% 100%;
}
@media print {
  .btn.--secondary.--mail::before,
  .btn.--secondary.--insta::before,
  .btn.--secondary.--external::before {
    -webkit-print-color-adjust: exact;
  }
}
.btn.--secondary.--mail::before {
  top: .05em;
  height: .8em;
  margin-right: .5em;

  aspect-ratio: 32/23;
  -webkit-mask-image: var(--icon-mail);
          mask-image: var(--icon-mail);
}
.btn.--secondary.--insta::before {
  top: .15em;
  height: 1em;
  margin-right: .5em;

  aspect-ratio: 1;
  -webkit-mask-image: var(--icon-insta);
          mask-image: var(--icon-insta);
}
.btn.--secondary.--external::before {
  top: .1em;
  height: .9em;
  margin-right: .5em;

  aspect-ratio: 1;
  -webkit-mask-image: var(--icon-external);
          mask-image: var(--icon-external);
}

/* スクロールアニメーション
--------------------------------------------------------- */
.slide-in {
  opacity: 0;
  transition: opacity .9s, transform .9s;
  transform: translateY(clamp(40px, 4.4vw, 60px));
}
@media print {
  .slide-in {
    opacity: 1;
    transform: none;
  }
}
.slide-in.is-appear {
  opacity: 1;
  transform: none;
}

/* 黒塗りをかぶせた後表示
--------------------------------------------------------- */
.cover-rect {
  position: relative;
  z-index: 1;
  overflow: hidden;
  opacity: 0;
}
.cover-rect__overlay {
  position: absolute;
  z-index: 2;
  background-color: #000;
  opacity: 0;
  transform: translateX(0);
  pointer-events: none;

  inset: 0;
}

/* フォーム
--------------------------------------------------------- */
.form__item + .form__item {
  margin-top: clamp(50px, 4.8vw, 60px);
}
.form__title {
  display: block;
  margin-bottom: clamp(10px, 1.1vw, 15px);
  letter-spacing: .07em;
  font-weight: 600;
  line-height: 1.8;
}
@media only screen and (max-width: 767.98px) {
  .form__title {
    font-size: 1.125rem;
  }
}
@media print, screen and (min-width: 768px) {
  .form__title {
    font-size: clamp(1.063rem, .064vw + 1.048rem, 1.125rem);
  }
}
.form__title[for] {
  cursor: text;
}
.form__title .req-icon {
  position: relative;
  top: -.3em;
  margin-left: .7em;
}
.form__radio {
  margin-top: clamp(10px, 1.1vw, 15px);
}
.form input[type=radio] {
  position: relative;
  display: inline-block;
  width: clamp(20px, 1.9vw, 24px);
  height: clamp(20px, 1.9vw, 24px);
  border: 2px solid #3b3b3f;
  border-radius: 50%;
  cursor: pointer;
}
.form input[type=radio]:checked::before {
  position: absolute;
  width: clamp(10px, 1vw, 12px);
  height: clamp(10px, 1vw, 12px);
  margin: auto;
  border-radius: 50%;
  background-color: #3b3b3f;
  content: '';

  inset: 0;
}
.form input[type=text],
.form input[type=email],
.form input[type=tel],
.form textarea {
  width: 100%;
  padding: 1.2em 1em;
  background-color: var(--color-base3);
  font-size: 1rem;
  line-height: 1.8;
  transition: box-shadow .3s;
}
@media only screen and (max-width: 767.98px) {
  .form input[type=text],
  .form input[type=email],
  .form input[type=tel],
  .form textarea {
    font-size: 1rem;
  }
}
@media print, screen and (min-width: 768px) {
  .form input[type=text],
  .form input[type=email],
  .form input[type=tel],
  .form textarea {
    font-size: clamp(.938rem, .087vw + .896rem, 1rem);
  }
}
.form input[type=text]:focus,
.form input[type=email]:focus,
.form input[type=tel]:focus,
.form textarea:focus {
  outline: none;
  box-shadow: 0 0 0 1px #8656c7 inset, 0 0 0 3px rgba(94, 57, 139, .2);
}
.form input[type=text]::placeholder,
.form input[type=email]::placeholder,
.form input[type=tel]::placeholder,
.form textarea::placeholder {
  color: #babbbf;
  font-weight: 400;
}
.form textarea {
  min-height: clamp(300px, 30.7vw, 400px);
  resize: vertical;
}
@media only screen and (max-width: 767.98px) {
  .form select,
  .form input[type=file] {
    width: 100%;
  }
}
.form__captcha {
  margin-top: clamp(50px, 6.8vw, 70px);
  text-align: center;
}
.form__btn {
  display: flex;
  margin-top: clamp(40px, 4.4vw, 60px);

  justify-content: center;
  gap: clamp(15px, 2.3vw, 25px);
}
.form .wpcf7-radio {
  display: flex;
  column-gap: clamp(20px, 2.2vw, 30px);

  flex-wrap: wrap;
  row-gap: 5px;
}
.form .wpcf7-list-item {
  margin: 0;
}
.form .wpcf7-list-item label {
  display: flex;

  align-items: center;
  gap: .5em;
}
.form .wpcf7-not-valid-tip {
  margin-top: .4em;
  color: var(--color-important);
  font-size: clamp(.875rem, .064vw + .861rem, .938rem);
}
.form .wpcf7-response-output {
  margin: clamp(30px, 3.1vw, 40px) 0 0 0 !important;
  padding: .8em 1em !important;
  border: clamp(3px, .3vw, 4px) solid #f3cad9 !important;
  background-color: #fce7ef !important;
  font-size: clamp(.938rem, .064vw + .923rem, 1rem) !important;
  line-height: 1.6 !important;
}
@media print, screen and (min-width: 768px) {
  .form .wpcf7-response-output {
    text-align: center !important;
  }
}
.form .wpcf7-form[data-status=sent] .wpcf7-response-output {
  border-color: #ccdcb9 !important;
  background-color: #dee9d0 !important;
}

/* ローディング
--------------------------------------------------------- */
.loading {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 9999;
  margin: auto;
  background-color: var(--color-base);
}
.first-access .loading {
  display: none;
}
.is-hero-swiper-ready .loading {
  animation: fadeOut .8s linear forwards;
}
@keyframes fadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    pointer-events: none;
  }
}
.loading__in {
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  width: 30px;
  height: 30px;
  transform: translate(-50%, -50%);
}
.loading__in::after,
.loading__in::before {
  position: absolute;
  top: 40%;
  left: 50%;
  display: block;
  width: 100%;
  height: 100%;
  margin-left: -50%;
  border-radius: 110%;
  content: '';
}
.loading__in::after {
  border: 1px solid transparent;
  border-top-color: var(--color-sub);
  animation: loading .75s linear infinite;
}
.loading__in::before {
  border: 1px solid #ddd6c7;
}
@keyframes loading {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

/* GSAP
--------------------------------------------------------- */
.js-scroll-show {
  opacity: 0;
}

.js-display-from-left > * {
  visibility: hidden;
  opacity: 0;
  transform: translateY(60px);
}

/* ページング
--------------------------------------------------------- */
.paging {
  margin-top: clamp(80px, 10.5vw, 160px);
}
@media only screen and (max-width: 767.98px) {
  .paging.--pc {
    display: none;
  }
}
@media print, screen and (min-width: 768px) {
  .paging.--sp {
    display: none;
  }
}
.paging__list {
  display: flex;

  flex-wrap: wrap;
  justify-content: center;
  gap: clamp(6px, .7vw, 10px);
}
.paging__item .page-numbers {
  display: block;
  padding: .4em .8em;
  background-color: var(--color-base3);
  color: var(--color-txt);
  text-decoration: none;
  letter-spacing: 0;
  line-height: 1.4;
  transition: background-color .3s, color .3s;
}
@media only screen and (max-width: 767.98px) {
  .paging__item .page-numbers {
    font-size: clamp(.75rem, .49vw + .64rem, .875rem);
  }
}
@media print, screen and (min-width: 768px) {
  .paging__item .page-numbers {
    font-size: clamp(1rem, .174vw + .917rem, 1.125rem);
  }
}
.paging__item .page-numbers.current {
  background-color: var(--color-sub);
  color: #fff;
}
.paging__item .page-numbers.dots {
  background-color: transparent;

  padding-inline: 0;
}
.paging__item a:is(:hover, :active, :focus) {
  background-color: #fff;
}

/* ========================================================================
/*
/* Project
/*
========================================================================= */
/* TOP 営業時間
--------------------------------------------------------- */
.guide {
  position: relative;
  z-index: 2;
  width: min(92%, 1280px);
  margin-right: auto;
  margin-left: auto;
  background-color: var(--color-base3);
}
@media only screen and (max-width: 767.98px) {
  .guide {
    padding-top: clamp(45px, 8.9vw, 55px);
    padding-right: 4vw;
    padding-bottom: clamp(40px, 8vw, 50px);
    padding-left: 4vw;
  }
}
@media print, screen and (min-width: 768px) {
  .guide {
    padding: clamp(50px, 4.8vw, 80px) clamp(50px, 5vw, 85px);
  }
}
.guide::before {
  position: absolute;
  top: 0;
  right: -.07em;
  color: var(--color-base);
  content: 'Hours & Access';
  letter-spacing: 0;
  font-family: var(--font-family-secondary);
  line-height: .6;
}
@media screen and (max-width: 1199.98px) {
  .guide::before {
    font-size: clamp(2.5rem, 3.571vw + 1.696rem, 4.375rem);
  }
}
@media screen and (min-width: 1200px) {
  .guide::before {
    font-size: clamp(4.375rem, 4.167vw + 1.25rem, 6.25rem);
  }
}
.guide__title {
  display: flex;
  margin-bottom: .5em;
  font-weight: 500;
  font-size: clamp(1.313rem, .962vw + 1.096rem, 2.25rem);
  font-family: var(--font-family-secondary);

  align-items: center;
}
.guide__title::after {
  height: 1px;
  margin-left: clamp(10px, 1.8vw, 30px);
  background-color: #ede5da;
  content: '';

  flex-grow: 1;
}
@media screen and (min-width: 1200px) {
  .guide__items {
    display: grid;
    column-gap: 4%;

    grid-template: 'hours access'/52% 1fr;
  }
}
.guide__item.--hours {
  grid-area: hours;
}
@media screen and (min-width: 1200px) {
  .guide__item.--hours {
    padding-top: 8px;
  }
}
.guide__item.--access {
  grid-area: access;
}
@media screen and (max-width: 1199.98px) {
  .guide__item.--access {
    margin-top: clamp(40px, 5.8vw, 50px);
  }
}
@media print, screen and (min-width: 768px) {
  .guide__list-item {
    display: flex;

    align-items: center;
    gap: 1em;
  }
}
.guide__list-item + .guide__list-item {
  margin-top: 12px;
}
.guide__list dt {
  display: inline-block;
  background-color: var(--color-accent);
  color: #fff;
  text-align: center;
  letter-spacing: .06em;
  font-weight: 400;
  line-height: 1.3;
}
@media screen and (max-width: 1199.98px) {
  .guide__list dt {
    min-width: 140px;
    padding: .2em .5em;
    font-size: clamp(.938rem, .238vw + .884rem, 1.063rem);
  }
}
@media screen and (min-width: 1200px) {
  .guide__list dt {
    min-width: clamp(120px, 8.3vw, 140px);
    padding: .3em .5em;
    font-size: clamp(1rem, .139vw + .896rem, 1.063rem);
  }
}
.guide__list dd {
  font-weight: 500;
}
@media screen and (max-width: 1199.98px) {
  .guide__list dd {
    letter-spacing: .05em;
    font-size: clamp(.938rem, .119vw + .911rem, 1rem);
    line-height: 2.2;
  }
}
@media screen and (min-width: 1200px) {
  .guide__list dd {
    letter-spacing: .1em;
    font-size: clamp(1rem, .278vw + .792rem, 1.125rem);
  }
}
.guide__note {
  margin-top: 1.5em;
  color: var(--color-txt2);
  font-size: clamp(.813rem, .192vw + .769rem, 1rem);
  line-height: 2;
}
.guide__address,
.guide__tel {
  font-weight: 500;
}
@media screen and (max-width: 1199.98px) {
  .guide__address,
  .guide__tel {
    font-size: clamp(1rem, .119vw + .973rem, 1.063rem);
  }
}
@media screen and (min-width: 1200px) {
  .guide__address,
  .guide__tel {
    letter-spacing: .13em;
    font-size: clamp(1rem, .278vw + .792rem, 1.125rem);
    line-height: 2.5;
  }
}
.guide__btn {
  margin-top: 35px;
}

/* TOP 四季を感じる空間
--------------------------------------------------------- */
.intro {
  position: relative;
  z-index: 1;
  margin-top: clamp(80px, 11vw, 170px);
}
.intro::before {
  position: absolute;
  top: -100px;
  right: 0;
  z-index: -1;
  height: auto;
  background: url('../images/common/deco-ryusuimon.svg') left top/100% 100% no-repeat;
  content: '';

  aspect-ratio: 500/230;
}
@media screen and (max-width: 991.98px) {
  .intro::before {
    width: clamp(200px, 37vw, 300px);
  }
}
@media print, screen and (min-width: 992px) {
  .intro::before {
    width: clamp(350px, 29.2vw, 500px);
  }
}
@media screen and (max-width: 991.98px) {
  .intro__inner {
    padding-right: 4vw;
    padding-left: 4vw;
  }
}
@media print, screen and (min-width: 992px) {
  .intro__inner {
    display: grid;
    padding-right: calc((100% - min(92%, 1280px)) / 2);
    column-gap: clamp(60px, 5.5vw, 100px);

    grid-template: 'video content'/calc(min(92%, 1280px) * .51 + (100% - min(92%, 1280px)) / 2) 1fr;
    align-items: flex-start;
  }
}
.intro__video {
  grid-area: video;
}
.intro__video video {
  display: block;
  width: 100%;
  height: 100%;

  aspect-ratio: 16/9;
}
.intro__content {
  grid-area: content;
}
@media screen and (max-width: 991.98px) {
  .intro__content {
    margin-top: clamp(40px, 6.7vw, 50px);
  }
}
@media print, screen and (min-width: 992px) {
  .intro__content {
    margin-top: auto;
    margin-bottom: auto;
  }
}
@media screen and (max-width: 991.98px) {
  .intro__heading {
    text-align: center;
  }
}
@media print, screen and (min-width: 768px) {
  .intro__txt {
    line-height: 2.6;
  }
}

/* TOP お知らせ
--------------------------------------------------------- */
.info {
  width: min(92%, 1920px);
  margin-top: clamp(80px, 12.3vw, 200px);
  margin-right: auto;
  margin-left: auto;
}
@media screen and (max-width: 991.98px) {
  .info {
    max-width: 700px;
  }
}
@media screen and (min-width: 1200px) {
  .info__inner {
    display: grid;
    column-gap: clamp(30px, 3.2vw, 70px);

    grid-template: 'heading items'/auto 1fr;
  }
}
.info__heading {
  grid-area: heading;
}
@media screen and (max-width: 1199.98px) {
  .info__heading {
    margin-bottom: 1.5em;
    text-align: center;
  }
}
@media screen and (min-width: 1200px) {
  .info__heading {
    display: flex;

    gap: 1em;
  }
}
.info__heading-title {
  font-weight: 600;
  font-family: var(--font-family-secondary);
}
@media screen and (max-width: 1199.98px) {
  .info__heading-title {
    font-size: clamp(1.5rem, .952vw + 1.286rem, 2rem);
    line-height: 1.7;
  }
}
@media screen and (min-width: 1200px) {
  .info__heading-title {
    position: relative;
    top: -.1em;
    letter-spacing: .25em;
    font-size: clamp(2rem, 2.222vw + .333rem, 3rem);
    line-height: 1;

    writing-mode: vertical-lr;
  }
}
.info__heading-en {
  letter-spacing: .1em;
  font-weight: 500;
  font-family: var(--font-family-tertiary);
}
@media screen and (max-width: 1199.98px) {
  .info__heading-en {
    font-size: clamp(.75rem, .238vw + .696rem, .875rem);
    line-height: 1.7;
  }
}
@media screen and (min-width: 1200px) {
  .info__heading-en {
    padding-top: .3em;
    letter-spacing: .1em;
    font-size: clamp(.813rem, .139vw + .708rem, .875rem);
    line-height: 1.5;

    writing-mode: vertical-lr;
  }
}
.info__items {
  grid-area: items;
}
@media print, screen and (min-width: 992px) {
  .info__items {
    display: grid;
    column-gap: clamp(30px, 2.4vw, 40px);

    grid-template-columns: repeat(3, 1fr);
  }
}
@media screen and (max-width: 991.98px) {
  .info__item + .info__item {
    margin-top: clamp(60px, 10.4vw, 80px);
  }
}
.info__item a {
  display: block;
  color: var(--color-txt);
}
@media print, screen and (min-width: 992px) {
  .info__item a:is(:hover, :active, :focus) .info__img img {
    transform: scale(1.07);
  }
}
@media print, screen and (min-width: 992px) {
  .info__item a:is(:hover, :active, :focus) .info__title {
    color: var(--color-main);
  }
}
.info__img {
  overflow: hidden;
  background-color: var(--color-base3);
}
.info__img img {
  width: 100%;
  transition: transform .5s;
  transform: scale(1);

  object-fit: cover;
}
@media screen and (max-width: 991.98px) {
  .info__img img {
    aspect-ratio: 16/9;
  }
}
@media print, screen and (min-width: 992px) {
  .info__img img {
    aspect-ratio: 3/2;
  }
}
.info__img img.noimage {
  object-fit: scale-down;
}
@media screen and (max-width: 991.98px) {
  .info__img img.noimage {
    padding-top: 12%;
    padding-right: 7%;
    padding-bottom: 12%;
  }
}
@media print, screen and (min-width: 992px) {
  .info__img img.noimage {
    padding-top: 16%;
    padding-right: 7%;
    padding-bottom: 16%;
  }
}
.info__content {
  margin-top: 20px;
}
.info__date-wrap {
  display: flex;
  margin-bottom: .5em;
  font-size: .8125rem;

  align-items: center;
  gap: 1em;
}
.info__date {
  display: inline-block;
}
.info__icon-new {
  display: inline-block;
  color: var(--color-important);
  letter-spacing: 0;
  font-weight: 400;
  font-family: var(--font-family-tertiary);
}
.info__title {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin-bottom: .7em;
  font-weight: 700;
  font-family: var(--font-family-secondary);
  line-height: 1.8;
  transition: color .3s;

  -webkit-line-clamp: 2;
}
@media screen and (max-width: 991.98px) {
  .info__title {
    font-size: clamp(1.188rem, .158vw + 1.152rem, 1.25rem);
  }
}
@media print, screen and (min-width: 992px) {
  .info__title {
    font-size: clamp(1rem, .216vw + .866rem, 1.125rem);
  }
}
.info__txt {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-size: .8125rem;
  line-height: 2.5;

  -webkit-line-clamp: 2;
}
.info__btn {
  margin-top: clamp(50px, 6.6vw, 100px);
  text-align: center;
}

/* TOP 店舗案内・お料理・ドリンク
--------------------------------------------------------- */
.bnr-links {
  width: min(92%, 1920px);
  margin-top: clamp(80px, 12.3vw, 200px);
  margin-right: auto;
  margin-left: auto;
}
@media screen and (max-width: 991.98px) {
  .bnr-links {
    max-width: 700px;
  }
}
@media print, screen and (min-width: 992px) {
  .bnr-links__items {
    display: grid;
    column-gap: clamp(30px, 3.4vw, 70px);

    grid-template-columns: repeat(2, 1fr);
  }
}
@media print, screen and (min-width: 992px) {
  .bnr-links__item {
    transition: box-shadow .5s;
  }
}
@media print, screen and (min-width: 992px) {
  .bnr-links__item:is(:hover, :active, :focus-within) {
    box-shadow: 0 0 20px 4px rgba(72, 57, 50, .06);
  }
}
@media screen and (max-width: 991.98px) {
  .bnr-links__item + .bnr-links__item {
    margin-top: 30px;
  }
}
.bnr-links__item a {
  display: grid;
  background-color: var(--color-base3);
  column-gap: 10px;

  align-items: center;
}
@media screen and (max-width: 991.98px) {
  .bnr-links__item a {
    grid-template: 'img title'/35% 1fr;
  }
}
@media print, screen and (min-width: 992px) {
  .bnr-links__item a {
    padding: 10px;

    grid-template: 'img title'/clamp(160px, 19.2vw, 400px) 1fr;
  }
}
.bnr-links__img {
  grid-area: img;
}
.bnr-links__img img {
  width: 100%;
  height: auto;
}
.bnr-links__title {
  color: var(--color-txt);
  text-align: center;
  font-weight: 500;
  font-family: var(--font-family-secondary);

  grid-area: title;
}
@media screen and (max-width: 991.98px) {
  .bnr-links__title {
    padding: 15px;
    font-size: clamp(1.188rem, .633vw + 1.045rem, 1.438rem);
  }
}
@media print, screen and (min-width: 992px) {
  .bnr-links__title {
    font-size: clamp(1.313rem, .754vw + .845rem, 1.75rem);
  }
}
.bnr-links__btn {
  margin-top: clamp(60px, 7.9vw, 120px);
  text-align: center;
}

/* TOP 和洋礼賛
--------------------------------------------------------- */
.promo {
  position: relative;
  z-index: 1;
  margin-top: clamp(80px, 11.4vw, 180px);
  background-color: #503073;
  color: #fff;
}
@media only screen and (max-width: 767.98px) {
  .promo {
    padding-bottom: clamp(40px, 8.9vw, 60px);
  }
}
@media print, screen and (min-width: 768px) {
  .promo {
    padding-top: clamp(20px, 3.7vw, 80px);
    padding-right: clamp(20px, 3.7vw, 80px);
    padding-bottom: clamp(20px, 3.7vw, 80px);
    padding-left: clamp(20px, 3.7vw, 80px);
  }
}
.promo::before {
  position: absolute;
  z-index: -1;
  background: url('../images/common/deco-wayou.png') left top/100% 100% no-repeat;
  content: '';
  opacity: .4;

  aspect-ratio: 600/606;
  mix-blend-mode: soft-light;
}
@media only screen and (max-width: 767.98px) {
  .promo::before {
    top: 1vw;
    right: 1vw;
    width: clamp(120px, 26.6vw, 180px);
  }
}
@media print, screen and (min-width: 768px) {
  .promo::before {
    bottom: clamp(10px, 1.1vw, 20px);
    left: clamp(10px, 1.1vw, 20px);
    width: clamp(150px, 18.2vw, 340px);
  }
}
.promo__inner {
  max-width: 1920px;
  margin-right: auto;
  margin-left: auto;
}
@media only screen and (max-width: 767.98px) {
  .promo__inner {
    padding-top: clamp(50px, 9.8vw, 60px);
  }
}
@media print, screen and (min-width: 768px) {
  .promo__inner {
    display: grid;
    background-color: rgba(0, 0, 0, .2);

    grid-template: 'content gallery'/1fr auto;
    align-items: center;
  }
}
.promo__content {
  grid-area: content;
}
@media only screen and (max-width: 767.98px) {
  .promo__content {
    margin-right: 3vw;
    margin-left: 3vw;
    padding-top: clamp(25px, 5.3vw, 35px);
    padding-right: 4vw;
    padding-bottom: clamp(45px, 8.4vw, 50px);
    padding-left: 4vw;
    background-color: rgba(0, 0, 0, .2);
  }
}
@media print, screen and (min-width: 768px) {
  .promo__content {
    display: flex;
    padding-top: clamp(40px, 4.1vw, 70px);
    padding-right: clamp(40px, 4.8vw, 90px);
    padding-bottom: clamp(40px, 4.1vw, 70px);
    padding-left: clamp(40px, 4.8vw, 90px);

    align-items: center;
    justify-content: center;
  }
}
.promo__title {
  margin-bottom: clamp(15px, 2.4vw, 40px);
  letter-spacing: .2em;
  font-weight: 400;
  font-size: clamp(1.375rem, 1.41vw + 1.058rem, 2.75rem);
  font-family: var(--font-family-secondary);
}
@media only screen and (max-width: 767.98px) {
  .promo__title {
    text-align: center;
  }
}
@media print, screen and (min-width: 768px) {
  .promo__txt {
    letter-spacing: .12em;
    line-height: 2.6;
  }
}
.promo__gallery {
  grid-area: gallery;
}
@media only screen and (max-width: 767.98px) {
  .promo__gallery {
    margin-top: clamp(40px, 8.9vw, 60px);
  }
}
@media print, screen and (min-width: 768px) {
  .promo__gallery {
    display: flex;
    margin-right: 10px;
    column-gap: 10px;

    justify-content: space-between;
  }
}
@media print, screen and (min-width: 992px) {
  .promo__gallery {
    margin-right: 15px;
    column-gap: 15px;
  }
}
@media screen and (min-width: 1200px) {
  .promo__gallery {
    margin-right: 20px;
    column-gap: 20px;
  }
}
.promo__gallery-container {
  overflow: hidden;
}
@media only screen and (max-width: 767.98px) {
  .promo__gallery-container {
    height: clamp(200px, 40.8vw, 260px);
  }
}
@media print, screen and (min-width: 768px) {
  .promo__gallery-container {
    width: clamp(120px, 15.6vw, 300px);
    height: clamp(400px, 44.6vw, 800px);
  }
}
@media only screen and (max-width: 767.98px) {
  .promo__gallery-container.--secondary {
    margin-top: 12px;
  }
}
.promo__gallery .swiper {
  height: 100%;
}
.promo__gallery .swiper-wrapper {
  transition-timing-function: linear;
}
.promo__gallery .swiper-slide {
  aspect-ratio: 3/4;
}
@media only screen and (max-width: 767.98px) {
  .promo__gallery .swiper-slide {
    width: auto;
    height: 100%;
  }
}
@media print, screen and (min-width: 768px) {
  .promo__gallery .swiper-slide {
    width: 100%;
    height: auto;
  }
}
.promo__gallery .swiper-slide img {
  width: 100%;
  height: 100%;
  border-radius: clamp(6px, .7vw, 10px);

  object-fit: cover;
}

/* TOP Instagram
--------------------------------------------------------- */
.insta-area {
  margin-top: clamp(80px, 11.4vw, 180px);
  margin-right: auto;
  margin-left: auto;
}
.insta-area__inner {
  width: min(92%, 1280px);
  margin-right: auto;
  margin-left: auto;
}
/* 店舗案内
--------------------------------------------------------- */
.about__item {
  position: relative;
  z-index: 1;
  padding-top: clamp(80px, 11vw, 170px);
  padding-bottom: clamp(50px, 8.3vw, 140px);
}
@media print, screen and (min-width: 992px) {
  .about__item.--primary .about__inner {
    padding-left: calc((100% - min(92%, 1280px)) / 2);

    grid-template: 'content img'/1fr calc(min(92%, 1280px) * .3 + 100% - min(92%, 1280px));
  }
}
.about__item.--secondary {
  background-color: var(--color-base3);
}
@media print, screen and (min-width: 992px) {
  .about__item.--secondary .about__inner {
    padding-right: calc((100% - min(92%, 1280px)) / 2);

    grid-template: 'img content'/calc(min(92%, 1280px) * .28 + 100% - min(92%, 1280px)) 1fr;
  }
}
@media screen and (max-width: 991.98px) {
  .about__inner {
    padding-right: 4vw;
    padding-left: 4vw;
  }
}
@media print, screen and (min-width: 992px) {
  .about__inner {
    display: grid;
    column-gap: clamp(40px, 6.2vw, 140px);

    align-items: flex-start;
  }
}
.about__img {
  grid-area: img;
}
.about__img img {
  width: 100%;
}
@media screen and (max-width: 991.98px) {
  .about__img img {
    object-fit: cover;
    aspect-ratio: 4/3;
  }
}
@media print, screen and (min-width: 992px) {
  .about__img img {
    height: auto;
  }
}
.about__content {
  grid-area: content;
}
@media screen and (max-width: 991.98px) {
  .about__content {
    margin-top: clamp(40px, 6.7vw, 50px);
  }
}
@media print, screen and (min-width: 992px) {
  .about__content {
    padding-top: clamp(10px, 1.4vw, 30px);
  }
}
@media print, screen and (min-width: 992px) {
  .about__txt {
    font-size: clamp(.938rem, .108vw + .871rem, 1rem);
    line-height: 2.6;
  }
}
.about__pics {
  position: relative;
}
@media screen and (max-width: 991.98px) {
  .about__pics {
    width: min(100%, 600px);
    height: 75vw;
    margin-top: clamp(80px, 14.8vw, 120px);
    margin-right: auto;
    margin-left: auto;
  }
}
@media print, screen and (min-width: 992px) {
  .about__pics {
    width: clamp(450px, 38.1vw, 660px);
    height: clamp(350px, 31.9vw, 580px);
    margin-top: clamp(120px, 9.3vw, 150px);
  }
}
@media print, screen and (min-width: 992px) {
  .about__pics.--secondary {
    margin-left: auto;
  }
}
.about__pic {
  position: absolute;
}
.about__pic img {
  width: 100%;
  height: 100%;

  object-fit: cover;
}
.about__pic.--primary1,
.about__pic.--secondary1 {
  aspect-ratio: 4/3;
}
@media screen and (max-width: 991.98px) {
  .about__pic.--primary1,
  .about__pic.--secondary1 {
    width: min(54vw, 340px);
  }
}
@media print, screen and (min-width: 992px) {
  .about__pic.--primary1,
  .about__pic.--secondary1 {
    height: clamp(200px, 17.2vw, 300px);
  }
}
.about__pic.--primary2,
.about__pic.--secondary2 {
  aspect-ratio: 3/4;
}
@media screen and (max-width: 991.98px) {
  .about__pic.--primary2,
  .about__pic.--secondary2 {
    width: min(45vw, 280px);
  }
}
@media print, screen and (min-width: 992px) {
  .about__pic.--primary2,
  .about__pic.--secondary2 {
    width: clamp(200px, 17.2vw, 300px);
  }
}
.about__pic.--primary1 {
  right: 0;
}
@media screen and (max-width: 991.98px) {
  .about__pic.--primary1 {
    top: 40vw;
  }
}
@media print, screen and (min-width: 992px) {
  .about__pic.--primary1 {
    bottom: 0;
  }
}
.about__pic.--primary2 {
  top: 0;
  left: 0;
}
.about__pic.--secondary1 {
  left: 0;
}
@media screen and (max-width: 991.98px) {
  .about__pic.--secondary1 {
    top: 40vw;
  }
}
@media print, screen and (min-width: 992px) {
  .about__pic.--secondary1 {
    bottom: 0;
  }
}
.about__pic.--secondary2 {
  top: 0;
  right: 0;
}
.about__gallery .swiper-wrapper {
  transition-timing-function: linear;
}
.about__gallery .swiper-slide {
  width: auto;
  height: clamp(160px, 18.4vw, 300px);

  aspect-ratio: 4/3;
}
.about__gallery .swiper-slide img {
  width: 100%;
  height: auto;
}

/* アクセス
--------------------------------------------------------- */
.access {
  margin-top: clamp(80px, 11vw, 170px);
}
.access__inner {
  width: min(92%, 1280px);
  margin-right: auto;
  margin-left: auto;
}
.access__map iframe {
  width: 100% !important;
  height: 100% !important;
}
@media only screen and (max-width: 767.98px) {
  .access__map iframe {
    aspect-ratio: 1;
  }
}
@media print, screen and (min-width: 768px) {
  .access__map iframe {
    aspect-ratio: 16/9;
  }
}
.access__info {
  margin-top: clamp(40px, 3.9vw, 50px);
}
.access__station {
  margin-top: clamp(30px, 3.1vw, 40px);
}
.access__station-title {
  margin-bottom: .5em;
  font-weight: 500;
  font-size: clamp(1.125rem, .128vw + 1.096rem, 1.25rem);
  line-height: 1.6;
}
/* 料理スライドショー
--------------------------------------------------------- */
.showcase {
  padding-top: clamp(60px, 7.9vw, 120px);
  padding-bottom: clamp(50px, 8.3vw, 140px);
  background-color: #503073;
  color: #fff;
}
.showcase__inner {
  width: min(92%, 1000px);
  margin-right: auto;
  margin-left: auto;
}
.showcase__copy {
  margin-bottom: clamp(25px, 3.3vw, 50px);
  letter-spacing: .1em;
  font-weight: 500;
  font-size: clamp(1.063rem, 1.09vw + .817rem, 2.125rem);
  font-family: var(--font-family-secondary);
  line-height: 1.8;
}
@media print, screen and (min-width: 768px) {
  .showcase__copy {
    text-align: center;
  }
}
.showcase__copy strong {
  font-weight: 500;
  font-size: clamp(1.25rem, 1.282vw + .962rem, 2.5rem);
}
.showcase__gallery [class*=swiper]:focus {
  outline: none;
}
.showcase__gallery .swiper-large {
  overflow: visible;
}
.showcase__gallery .swiper-large .swiper-wrapper {
  background-color: #000;
}
.showcase__gallery .swiper-thumb {
  margin-top: 10px;
}
.showcase__gallery .swiper-fade .swiper-slide {
  transition-property: opacity, transform !important;
  pointer-events: none;
}
.showcase__gallery .swiper-fade .swiper-slide-active {
  pointer-events: auto;
}
.showcase__gallery .swiper-controller {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;

  aspect-ratio: 3/2;
}
.showcase__gallery .swiper-button-prev,
.showcase__gallery .swiper-button-next {
  position: absolute;
  top: 0;
  bottom: 0;
  z-index: 10;
  display: flex;
  width: clamp(22px, 3.2vw, 50px);
  height: clamp(22px, 3.2vw, 50px);
  margin: auto;
  background-color: var(--color-accent);
  cursor: pointer;
  transition: .7s cubic-bezier(.2, 1, .2, 1);

  align-items: center;
  justify-content: center;
}
.showcase__gallery .swiper-button-prev:hover,
.showcase__gallery .swiper-button-next:hover {
  background-color: var(--color-accent-hover);
}
.showcase__gallery .swiper-button-prev::after,
.showcase__gallery .swiper-button-next::after {
  width: clamp(6px, .7vw, 10px);
  background-color: #fff;
  content: '';

  -webkit-mask-image: var(--arrow1);
          mask-image: var(--arrow1);
  -webkit-mask-size: 100% 100%;
          mask-size: 100% 100%;
  aspect-ratio: 48/82;
}
@media print {
  .showcase__gallery .swiper-button-prev::after,
  .showcase__gallery .swiper-button-next::after {
    -webkit-print-color-adjust: exact;
  }
}
.showcase__gallery .swiper-button-prev {
  left: auto;
}
@media screen and (max-width: 1199.98px) {
  .showcase__gallery .swiper-button-prev {
    right: calc(100% - clamp(22px, 3.2vw, 50px) / 2);
  }
}
@media screen and (min-width: 1200px) {
  .showcase__gallery .swiper-button-prev {
    right: calc(100% + clamp(15px, 1.1vw, 20px));
  }
}
.showcase__gallery .swiper-button-prev::after {
  transform: scale(-1, 1);
}
.showcase__gallery .swiper-button-next {
  right: auto;
}
@media screen and (max-width: 1199.98px) {
  .showcase__gallery .swiper-button-next {
    left: calc(100% - clamp(22px, 3.2vw, 50px) / 2);
  }
}
@media screen and (min-width: 1200px) {
  .showcase__gallery .swiper-button-next {
    left: calc(100% + clamp(15px, 1.1vw, 20px));
  }
}
.showcase__gallery .swiper-button-disabled {
  opacity: 0;
  pointer-events: none;
}
.showcase__gallery .slide {
  display: block;
  overflow: hidden;
  margin-bottom: 0;
}
.showcase__gallery .slide-img,
.showcase__gallery .thumb-img {
  position: relative;
  overflow: hidden;
}
.showcase__gallery .slide-img img,
.showcase__gallery .thumb-img img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.showcase__gallery .slide-img {
  display: block;

  aspect-ratio: 3/2;
}
.showcase__gallery .slide-img img {
  object-fit: scale-down;
}
.showcase__gallery .slide-title {
  position: absolute;
  bottom: 0;
  left: 0;
  display: flex;
  width: 100%;
  margin-top: 1.5em;
  background-color: rgba(0, 0, 0, .5);
  letter-spacing: .1em;
  font-weight: 400;
  line-height: 1.6;

  justify-content: center;
}
@media only screen and (max-width: 767.98px) {
  .showcase__gallery .slide-title {
    padding: .3em 1.2em;
    font-size: clamp(.688rem, .49vw + .577rem, .813rem);
  }
}
@media print, screen and (min-width: 768px) {
  .showcase__gallery .slide-title {
    padding: .5em 1.5em;
    font-size: clamp(.875rem, .087vw + .833rem, .938rem);
  }
}
.showcase__gallery .thumb-img {
  position: relative;
  z-index: 1;
  cursor: pointer;

  aspect-ratio: 3/2;
}
.showcase__gallery .thumb-img::before {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 2;
  margin: auto;
  background-color: #000;
  content: '';
  opacity: .5;
  transition: .7s cubic-bezier(.2, 1, .2, 1);
}
@media print, screen and (min-width: 768px) {
  .showcase__gallery .thumb-img:hover::before {
    opacity: 0;
  }
}
.showcase__gallery .thumb-img img {
  transition: .7s cubic-bezier(.2, 1, .2, 1);

  object-fit: cover;
}
.showcase__gallery .swiper-slide-thumb-active .thumb-img::before {
  opacity: 0;
}
.showcase__gallery .swiper-scrollbar {
  position: relative;
  bottom: auto;
  left: auto;
  width: 100%;
  height: 6px;
  margin-top: clamp(10px, 1.1vw, 15px);
  border-radius: 0;
  background-color: #7c6694;
}
.showcase__gallery .swiper-scrollbar-drag {
  border-radius: 0;
  background-color: var(--color-accent);
  cursor: pointer;
  transition: background-color .2s !important;
}
@media print, screen and (min-width: 768px) {
  .showcase__gallery .swiper-scrollbar-drag:hover,
  .showcase__gallery .swiper-scrollbar-drag:active {
    background-color: var(--color-accent-hover);
  }
}
.showcase__gallery .swiper-lazy-preloader {
  border-color: var(--color-sub);
  border-top-color: transparent;
}

/* お料理・ドリンク
--------------------------------------------------------- */
.menu {
  padding-top: clamp(80px, 11vw, 170px);
  background-color: var(--color-base3);
}
.menu__nav {
  display: grid;
  width: min(92%, 1280px);
  margin-right: auto;
  margin-left: auto;
}
@media screen and (max-width: 991.98px) {
  .menu__nav {
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(12px, 1.9vw, 14px);
  }
}
@media only screen and (max-width: 575.98px) {
  .menu__nav {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media print, screen and (min-width: 992px) {
  .menu__nav {
    grid-template-columns: repeat(5, 1fr);
    gap: clamp(12px, .9vw, 14px);
  }
}
.menu__nav-item a {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;

  justify-content: center;
  aspect-ratio: 49/34;
}
@media screen and (max-width: 991.98px) {
  .menu__nav-item a {
    padding-right: clamp(15px, 2.6vw, 20px);
    padding-left: clamp(15px, 2.6vw, 20px);
  }
}
@media print, screen and (min-width: 992px) {
  .menu__nav-item a {
    padding-right: clamp(20px, 1.7vw, 30px);
    padding-left: clamp(20px, 1.7vw, 30px);
  }
}
.menu__nav-item a::before {
  position: absolute;
  z-index: 1;
  background-color: transparent;
  content: '';
  transition: background-color .5s;

  inset: 0;
}
.menu__nav-item a:hover::before {
  background-color: rgba(134, 86, 199, .5);
}
.menu__nav-item a:hover .menu__nav-img img {
  transform: scale(1.15);
}
.menu__nav-txt {
  position: relative;
  z-index: 2;
  color: #fff;
  letter-spacing: .045em;
  font-weight: 700;
  font-family: var(--font-family-secondary);
  line-height: 1.5;
}
@media screen and (max-width: 991.98px) {
  .menu__nav-txt {
    font-size: clamp(1.313rem, .316vw + 1.241rem, 1.438rem);
  }
}
@media print, screen and (min-width: 992px) {
  .menu__nav-txt {
    font-size: clamp(1.25rem, .754vw + .782rem, 1.688rem);
  }
}
.menu__nav-img {
  position: absolute;
  z-index: -1;
  overflow: hidden;

  inset: 0;
}
.menu__nav-img::before,
.menu__nav-img::after {
  position: absolute;
  z-index: 1;
  content: '';

  inset: 0;
}
.menu__nav-img::before {
  background-image: linear-gradient(to right, #da828e, rgba(218, 130, 142, .8) 40%, transparent 90%);
}
.menu__nav-img::after {
  background: url('../images/menu/bg-pattern.png') left top/cover no-repeat;
  background-color: transparent;

  mix-blend-mode: color-burn;
}
.menu__nav-img img {
  width: 100%;
  height: auto;
  transition: all .5s ease-in-out;
  transform: scale(1);
}
.menu__nav-img.--secondary::before {
  background-image: linear-gradient(to right, #62a8a0, rgba(98, 168, 160, .8) 40%, transparent 90%);
}
.menu__sec.--food {
  margin-top: clamp(70px, 9.2vw, 140px);
}
.menu__sec.--drink {
  margin-top: clamp(80px, 12.3vw, 200px);
  padding-top: clamp(70px, 9.2vw, 140px);
  padding-bottom: clamp(80px, 12.3vw, 200px);
  background-color: var(--color-base);
  transition: .5s;
}
.is-dark .menu__sec.--drink {
  background-color: #16151c;
  color: #fafafa;
}
.menu__inner {
  width: min(92%, 1280px);
  margin-right: auto;
  margin-left: auto;
}
.menu__lead {
  margin-bottom: clamp(60px, 7vw, 100px);
}
.menu__item + .menu__item {
  margin-top: clamp(70px, 8.8vw, 130px);
}
@media print, screen and (min-width: 768px) {
  .menu__outline-item {
    display: flex;

    align-items: flex-start;
    gap: 1em;
  }
}
@media only screen and (max-width: 767.98px) {
  .menu__outline-item + .menu__outline-item {
    margin-top: 20px;
  }
}
@media print, screen and (min-width: 768px) {
  .menu__outline-item + .menu__outline-item {
    margin-top: 12px;
  }
}
.menu__outline dt {
  display: inline-block;
  background-color: var(--color-accent);
  color: #fff;
  text-align: center;
  letter-spacing: .06em;
  font-weight: 400;
  line-height: 1.3;
}
@media only screen and (max-width: 767.98px) {
  .menu__outline dt {
    min-width: 140px;
    margin-bottom: .8em;
    padding: .3em .5em;
    font-size: clamp(.938rem, .49vw + .827rem, 1.063rem);
  }
}
@media print, screen and (min-width: 768px) {
  .menu__outline dt {
    min-width: clamp(120px, 10vw, 150px);
    padding: .5em .5em;
    font-size: clamp(1rem, .174vw + .917rem, 1.125rem);
  }
}
.menu__outline dd {
  font-weight: 500;
}
@media only screen and (max-width: 767.98px) {
  .menu__outline dd {
    letter-spacing: .05em;
    font-size: clamp(.938rem, .119vw + .911rem, 1rem);
    line-height: 1.8;
  }
}
@media print, screen and (min-width: 768px) {
  .menu__outline dd {
    padding-top: .2em;
    letter-spacing: .1em;
    font-size: clamp(1rem, .174vw + .917rem, 1.125rem);
    line-height: 1.9;
  }
}
.menu__outline-note {
  display: block;
  margin-top: .4em;
  letter-spacing: .07em;
  font-weight: 400;
  font-size: clamp(.813rem, .128vw + .784rem, .938rem);
  line-height: 1.8;
}
.menu__img {
  display: inline-block;
  margin-top: clamp(50px, 5.3vw, 70px);
}
.menu__img-pic.--col2 {
  display: grid;
  column-gap: clamp(5px, .7vw, 10px);

  grid-template-columns: repeat(2, 1fr);
}
.menu__img-pic img {
  height: auto;
  max-width: 100%;
}
.menu__img-cap {
  margin-top: .4em;
  color: var(--color-txt2);
  text-align: right;
  font-size: .75rem;
}
.menu__btns {
  display: flex;
  margin-top: clamp(50px, 5.3vw, 70px);

  flex-wrap: wrap;
  gap: clamp(10px, 1.3vw, 20px);
}
.menu__btn {
  margin-top: clamp(60px, 6.6vw, 90px);
  text-align: center;
}
.menu__list-wrap {
  margin-top: clamp(50px, 5.7vw, 80px);
}
.menu__list + .menu__list {
  margin-top: clamp(20px, 3.1vw, 50px);
}
.menu__list-head {
  position: relative;
  padding-top: .9em;
  padding-right: clamp(40px, 4.4vw, 60px);
  padding-bottom: .9em;
  padding-left: clamp(15px, 1.5vw, 20px);
  background-color: var(--color-base2);
  color: var(--color-txt3);
  line-height: 1.6;
  cursor: pointer;
  transition: background-color .5s, color .5s;

  -webkit-user-select: none;
          user-select: none;
}
.menu__list-head::after {
  position: absolute;
  top: 0;
  right: clamp(10px, 1.5vw, 24px);
  bottom: 0;
  height: clamp(20px, 2.2vw, 30px);
  margin: auto;
  background-color: #d4b4a4;
  content: '';
  transition: background-color .5s;

  -webkit-mask-image: var(--icon-plus);
          mask-image: var(--icon-plus);
  -webkit-mask-size: 100% 100%;
          mask-size: 100% 100%;
  aspect-ratio: 1;
}
@media print {
  .menu__list-head::after {
    -webkit-print-color-adjust: exact;
  }
}
.is-dark .menu__list-head::after {
  background-color: #755b99;
}
.menu__list-head.is-open {
  background-color: #e6cec2;
}
.is-dark .menu__list-head.is-open {
  background-color: #503e79;
}
.menu__list-head.is-open::after {
  background-color: #bc9682;

  -webkit-mask-image: var(--icon-minus);
          mask-image: var(--icon-minus);
}
.is-dark .menu__list-head.is-open::after {
  background-color: #9068c8;

  -webkit-mask-image: var(--icon-minus);
          mask-image: var(--icon-minus);
}
.menu__list-head:is(:hover, :active, :focus) {
  background-color: #e6cec2;
}
.is-dark .menu__list-head:is(:hover, :active, :focus) {
  background-color: #503e79;
}
.menu__list-head:is(:hover, :active, :focus)::after {
  background-color: #bc9682;
}
.is-dark .menu__list-head:is(:hover, :active, :focus)::after {
  background-color: #9068c8;
}
.is-dark .menu__list-head {
  background-color: #392d54;
  color: #fafafa;
}
.menu__list-head-title {
  font-weight: 600;
  font-size: clamp(1.25rem, .128vw + 1.221rem, 1.375rem);
  font-family: var(--font-family-secondary);
}
@media print, screen and (min-width: 768px) {
  .menu__list-head-title {
    letter-spacing: .17em;
  }
}
.menu__list-head-title small {
  display: inline-block;
  letter-spacing: .1em;
  font-size: clamp(1rem, .128vw + .971rem, 1.125rem);
}
@media only screen and (max-width: 767.98px) {
  .menu__list-head-title small {
    display: block;
  }
}
.menu__list-head-cap {
  margin-left: .1em;
  color: #89756d;
  font-size: .75rem;
}
.is-dark .menu__list-head-cap {
  color: #a19ab3;
}
.menu__list-body {
  display: none;
  padding-top: clamp(15px, 1.5vw, 20px);
  padding-right: clamp(15px, 2vw, 30px);
  padding-bottom: clamp(20px, 2vw, 25px);
  padding-left: clamp(15px, 2vw, 30px);
  background-color: #fff;
}
.menu__list-body.--no-accordion {
  display: block;
  padding-top: 10px;
  padding-bottom: 10px;
}
.is-dark .menu__list-body {
  background-color: #23222c;
}
.menu__list-category:first-child {
  padding-top: clamp(20px, 2vw, 25px);
}
.menu__list-category:last-child {
  padding-bottom: clamp(20px, 2vw, 25px);
}
.is-dark .menu__list-category {
  background-color: #23222c;
}
.menu__list-category + .menu__list-category {
  margin-top: clamp(30px, 2.9vw, 35px);
}
.menu__list-category-title {
  display: inline-block;
  margin-bottom: 1.2em;
  padding: .3em 1.3em;
  border-radius: 9999px;
  background-color: var(--color-accent);
  color: #fff;
  letter-spacing: .07em;
  font-weight: 500;
  font-size: clamp(.875rem, .064vw + .861rem, .938rem);
  line-height: 1.4;
}
.menu__list-item {
  padding-top: 1em;
  padding-bottom: 1em;
  transition: background-color .3s;
}
@media print, screen and (min-width: 768px) {
  .menu__list-item {
    padding-right: clamp(10px, .9vw, 15px);
    padding-left: clamp(10px, .9vw, 15px);
  }
}
@media print, screen and (min-width: 992px) {
  .menu__list-item:hover {
    background-color: #fffdf2;
  }
  .is-dark .menu__list-item:hover {
    background-color: #292833;
  }
}
.menu__list-item + .menu__list-item {
  border-top: 1px solid #f0f0f0;
}
.is-dark .menu__list-item {
  border-color: #302f3b;
}
.menu__list-content {
  display: grid;
  column-gap: clamp(15px, 2vw, 30px);

  grid-template: 'name price'/1fr auto;
}
.menu__list-name,
.menu__list-price {
  font-weight: 500;
  line-height: 1.7;
}
@media screen and (max-width: 991.98px) {
  .menu__list-name,
  .menu__list-price {
    font-size: clamp(.875rem, .158vw + .839rem, .938rem);
  }
}
@media print, screen and (min-width: 992px) {
  .menu__list-name,
  .menu__list-price {
    font-size: clamp(.938rem, .108vw + .871rem, 1rem);
  }
}
.menu__list-name {
  grid-area: name;
}
.menu__list-price {
  max-width: 7em;
  text-align: right;
  word-break: break-all;

  grid-area: price;
}
.menu__list-note {
  margin-top: .4em;
  color: var(--color-txt2);
  font-weight: 400;
  font-size: clamp(.75rem, .064vw + .736rem, .813rem);
  line-height: 1.8;
}
.is-dark .menu__list-note {
  color: #a8a8ad;
}
.menu__tax-txt {
  margin-top: 1em;
  color: var(--color-txt2);
  text-align: right;
  font-size: clamp(12px, 1.1vw, 14px);
}
.is-dark .menu__tax-txt {
  color: #a8a8ad;
}

/* 経営理念
--------------------------------------------------------- */
.philosophy__inner {
  width: min(92%, 1280px);
  margin-right: auto;
  margin-left: auto;
}
.philosophy__txt {
  font-size: clamp(1rem, .064vw + .986rem, 1.063rem);
}

/* 会社概要
--------------------------------------------------------- */
.overview {
  margin-top: clamp(80px, 11vw, 170px);
}
.overview__inner {
  width: min(92%, 1280px);
  margin-right: auto;
  margin-left: auto;
}
.overview__btn {
  margin-top: clamp(60px, 6.6vw, 90px);
  text-align: center;
}

/* 採用情報
--------------------------------------------------------- */
.recruit {
  margin-top: clamp(80px, 11vw, 170px);
}
.recruit__inner {
  width: min(92%, 1280px);
  margin-right: auto;
  margin-left: auto;
}
.recruit__signature {
  margin-top: 2em;
}
.recruit__hiring {
  margin-top: clamp(60px, 6.6vw, 90px);
  background-color: var(--color-base2);
}
@media only screen and (max-width: 767.98px) {
  .recruit__hiring {
    padding: 6vw 4vw 8vw;
  }
}
@media print, screen and (min-width: 768px) {
  .recruit__hiring {
    padding: clamp(30px, 2.6vw, 40px) clamp(40px, 4.8vw, 90px);
  }
}
@media print, screen and (min-width: 768px) {
  .recruit__hiring.--closed {
    text-align: center;
  }
}
.recruit__hiring + .recruit__hiring {
  margin-top: 40px;
}
@media print, screen and (min-width: 768px) {
  .recruit__hiring-in {
    display: grid;
    column-gap: 6%;

    grid-template: 'txt btn'/auto auto;
    align-items: center;
    justify-content: center;
  }
}
.recruit__hiring-txt {
  font-weight: 500;
  font-size: clamp(1rem, .064vw + .986rem, 1.063rem);

  grid-area: txt;
}
.recruit__hiring-btn {
  font-size: 0;

  grid-area: btn;
}
@media only screen and (max-width: 767.98px) {
  .recruit__hiring-btn {
    margin-top: clamp(35px, 7.1vw, 45px);
    text-align: center;
  }
}
@media only screen and (max-width: 767.98px) {
  .recruit__hiring-btn .btn {
    min-width: 250px;
  }
}
@media print, screen and (min-width: 768px) {
  .recruit__hiring-btn .btn {
    display: block;
    min-width: clamp(210px, 18.2vw, 280px);
  }
}

/* お知らせ
--------------------------------------------------------- */
.news__inner {
  width: min(92%, 1280px);
  margin-right: auto;
  margin-left: auto;
}
@media screen and (max-width: 991.98px) {
  .news__inner {
    max-width: 700px;
  }
}
@media print, screen and (min-width: 992px) {
  .news__item {
    display: grid;
    column-gap: 4%;

    grid-template: 'img content'/32% 1fr;
    align-items: flex-start;
  }
}
.news__item + .news__item {
  margin-top: clamp(60px, 8.3vw, 130px);
}
.news__img {
  overflow: hidden;
  background-color: var(--color-base3);

  grid-area: img;
}
@media screen and (max-width: 991.98px) {
  .news__img {
    margin-bottom: clamp(25px, 4.4vw, 35px);
  }
}
@media print, screen and (min-width: 992px) {
  .news__img a:is(:hover, :active, :focus) img {
    transform: scale(1.07);
  }
}
.news__img img {
  width: 100%;
  transition: transform .5s;
  transform: scale(1);

  object-fit: cover;
  aspect-ratio: 16/9;
}
@media print, screen and (min-width: 992px) {
  .news__img img {
    aspect-ratio: 8/7;
  }
}
.news__img img.noimage {
  object-fit: scale-down;
}
@media screen and (max-width: 991.98px) {
  .news__img img.noimage {
    padding-top: 12%;
    padding-right: 7%;
    padding-bottom: 12%;
  }
}
@media print, screen and (min-width: 992px) {
  .news__img img.noimage {
    padding-top: 22%;
    padding-right: 7%;
    padding-bottom: 22%;
  }
}
.news__content {
  grid-area: content;
}
.news__date-wrap {
  display: flex;
  margin-bottom: .4em;
  font-size: clamp(.813rem, .128vw + .784rem, .938rem);

  align-items: center;
  gap: 1em;
}
.news__date {
  display: inline-block;
}
.news__icon-new {
  display: inline-block;
  color: var(--color-important);
  letter-spacing: 0;
  font-weight: 400;
  font-family: var(--font-family-tertiary);
}
.news__title {
  font-weight: 600;
  font-family: var(--font-family-secondary);
  line-height: 1.8;
}
@media screen and (max-width: 991.98px) {
  .news__title {
    margin-bottom: .8em;
    font-size: clamp(1.188rem, .316vw + 1.116rem, 1.313rem);
  }
}
@media print, screen and (min-width: 992px) {
  .news__title {
    margin-bottom: 1em;
    letter-spacing: .14em;
    font-size: clamp(1.5rem, .431vw + 1.233rem, 1.75rem);
  }
}
.news__btn {
  margin-top: clamp(40px, 4.4vw, 60px);
}
@media screen and (max-width: 991.98px) {
  .news__btn {
    text-align: center;
  }
}
@media print, screen and (min-width: 992px) {
  .news__btn {
    text-align: right;
  }
}

/* お知らせ 詳細
--------------------------------------------------------- */
.news-detail {
  width: min(92%, 900px);
  margin-right: auto;
  margin-left: auto;
}
.news-detail__date-wrap {
  display: flex;
  margin-bottom: .5em;
  font-size: clamp(.813rem, .128vw + .784rem, .938rem);

  align-items: center;
  gap: 1em;
}
.news-detail__date {
  display: inline-block;
}
.news-detail__icon-new {
  display: inline-block;
  color: var(--color-important);
  letter-spacing: 0;
  font-weight: 400;
  font-family: var(--font-family-tertiary);
}
.news-detail__title {
  font-weight: 600;
  font-family: var(--font-family-secondary);
  line-height: 1.8;
}
@media screen and (max-width: 991.98px) {
  .news-detail__title {
    margin-bottom: 1.8em;
    font-size: clamp(1.313rem, .475vw + 1.206rem, 1.5rem);
  }
}
@media print, screen and (min-width: 992px) {
  .news-detail__title {
    margin-bottom: 2.3em;
    letter-spacing: .14em;
    font-size: clamp(1.625rem, .431vw + 1.358rem, 1.875rem);
  }
}
.news-detail__img {
  margin-bottom: clamp(40px, 4.8vw, 70px);
}
.news-detail__img img {
  width: 100%;
  height: auto;

  object-fit: contain;
  aspect-ratio: 16/9;
}
.news-detail__btn {
  margin-top: clamp(70px, 7.5vw, 100px);
  text-align: center;
}

/* 利用規約
--------------------------------------------------------- */
.terms__inner {
  width: min(92%, 1280px);
  margin-right: auto;
  margin-left: auto;
}
.terms__lead {
  margin-bottom: clamp(50px, 6.6vw, 100px);
}
.terms__items {
  counter-reset: my-counter;
}
.terms__item + .terms__item {
  margin-top: clamp(50px, 6.6vw, 100px);
}
.terms__item-title {
  position: relative;
  margin-bottom: clamp(30px, 3.5vw, 50px);
  padding-left: 1.2em;
  font-weight: 500;
  font-size: clamp(1.125rem, .256vw + 1.067rem, 1.375rem);
  font-family: var(--font-family-secondary);
  line-height: 1.8;
}
@media print, screen and (min-width: 768px) {
  .terms__item-title {
    letter-spacing: .17em;
  }
}
.terms__item-title::before {
  position: absolute;
  top: 0;
  left: 0;
  content: counter(my-counter) '.';
  counter-increment: my-counter;
  font-size: inherit;
}
.terms__tbl {
  width: 100%;
  border: 1px solid #d7ccc6;
}
.terms__tbl th,
.terms__tbl td {
  border: 1px solid #d7ccc6;
  vertical-align: middle;
  text-align: center;
  letter-spacing: .05em;
  font-weight: 400;
  line-height: 1.6;
}
@media only screen and (max-width: 767.98px) {
  .terms__tbl th,
  .terms__tbl td {
    padding: .9em 1em;
    font-size: clamp(.875rem, .245vw + .82rem, .938rem);
  }
}
@media print, screen and (min-width: 768px) {
  .terms__tbl th,
  .terms__tbl td {
    padding: .9em .4em;
    font-size: clamp(.813rem, .26vw + .688rem, 1rem);
  }
}
.terms__tbl th {
  width: 23%;
}
.terms__tbl td.d1 {
  width: 15.5%;
}
.terms__tbl td.d2 {
  width: 15.5%;
}
.terms__tbl td.d3 {
  width: 15.5%;
}
.terms__tbl td.d4 {
  width: 15.5%;
}
.terms__tbl td.d5 {
  width: 15%;
}
.terms__note {
  margin-top: 1.5em;
  color: var(--color-txt2);
  font-size: clamp(.813rem, .064vw + .798rem, .875rem);
}
.terms__sign {
  margin-top: clamp(50px, 6.6vw, 100px);
  text-align: right;
  font-size: clamp(1.063rem, .064vw + 1.048rem, 1.125rem);
}

/* お問い合わせ
--------------------------------------------------------- */
.contact__inner {
  width: min(92%, 1280px);
  margin-right: auto;
  margin-left: auto;
}
.contact__item + .contact__item {
  margin-top: clamp(70px, 9.2vw, 140px);
}
.contact__tel {
  padding: clamp(20px, 2vw, 25px) 1em clamp(25px, 2.6vw, 35px);
  background-color: var(--color-base2);
  text-align: center;
}
.contact__tel-num {
  color: var(--color-txt);
  letter-spacing: .12em;
  font-weight: 400;
  font-size: clamp(2rem, 1.41vw + 1.683rem, 3.375rem);
  font-family: var(--font-family-tertiary);
  line-height: 1.5;
}
.contact__tel-num::before {
  position: relative;
  top: .04em;
  display: inline-block;
  height: .7em;
  margin: auto;
  margin-right: .25em;
  background-color: currentColor;
  content: '';

  -webkit-mask-image: var(--icon-phone);
          mask-image: var(--icon-phone);
  -webkit-mask-size: 100% 100%;
          mask-size: 100% 100%;
  aspect-ratio: 1;
}
@media print {
  .contact__tel-num::before {
    -webkit-print-color-adjust: exact;
  }
}
.contact__tel-time {
  display: block;
  letter-spacing: .05em;
  font-size: clamp(.75rem, .192vw + .707rem, .938rem);
  line-height: 1.7;
}
.contact__txt {
  margin-bottom: clamp(60px, 6.1vw, 80px);
}
.contact__txt .req-icon {
  position: relative;
  top: -.3em;
  margin-right: .7em;
}

/* ========================================================================
/*
/* Utility
/*
========================================================================= */
/* display
--------------------------------------------------------- */
.d-none {
  display: none;
}

.d-inline {
  display: inline;
}

.d-inline-block {
  display: inline-block;
}

.d-block {
  display: block;
}

@media print, screen and (min-width: 576px) {
  .d-sm-none {
    display: none;
  }
  .d-sm-inline {
    display: inline;
  }
  .d-sm-inline-block {
    display: inline-block;
  }
  .d-sm-block {
    display: block;
  }
}
@media print, screen and (min-width: 768px) {
  .d-md-none {
    display: none;
  }
  .d-md-inline {
    display: inline;
  }
  .d-md-inline-block {
    display: inline-block;
  }
  .d-md-block {
    display: block;
  }
}
@media print, screen and (min-width: 992px) {
  .d-lg-none {
    display: none;
  }
  .d-lg-inline {
    display: inline;
  }
  .d-lg-inline-block {
    display: inline-block;
  }
  .d-lg-block {
    display: block;
  }
}
@media screen and (min-width: 1200px) {
  .d-xl-none {
    display: none;
  }
  .d-xl-inline {
    display: inline;
  }
  .d-xl-inline-block {
    display: inline-block;
  }
  .d-xl-block {
    display: block;
  }
}
@media screen and (min-width: 1400px) {
  .d-xxl-none {
    display: none;
  }
  .d-xxl-inline {
    display: inline;
  }
  .d-xxl-inline-block {
    display: inline-block;
  }
  .d-xxl-block {
    display: block;
  }
}
/* typography
--------------------------------------------------------- */
.kome {
  position: relative;
  padding-left: 1.2em;
}
.kome.--inline {
  display: inline-block;
}
.kome.--important::before {
  color: var(--color-important);
}
.kome::before {
  position: absolute;
  left: 0;
  content: '※';
}

/* ------------------------------------------------------------------------
/* 印刷用
------------------------------------------------------------------------- */
@media print {
  html {
    font-size: 10px !important;
  }
}
@page {
  margin: 8mm;

  size: A4 portrait;
}
