@charset "UTF-8";
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS and IE text size adjust after device orientation change,
 *    without disabling user zoom.
 */
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Jost:ital,wght@0,100..900;1,100..900&display=swap");
html {
  font-family: "Noto Sans JP", "Helvetica Neue", "Helvetica", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif;
  -webkit-font-feature-settings: "palt" 1;
  font-feature-settings: "palt" 1; }

/**
 * Remove default margin.
 */
body {
  margin: 0;
  height: auto; }

/* HTML5 display definitions
   ========================================================================== */
/**
 * Correct `block` display not defined for any HTML5 element in IE 8/9.
 * Correct `block` display not defined for `details` or `summary` in IE 10/11
 * and Firefox.
 * Correct `block` display not defined for `main` in IE 11.
 */
*,
*::before,
*::after {
  -webkit-box-sizing: border-box;
  box-sizing: border-box; }

html {
  -moz-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  -ms-text-size-adjust: none;
  text-size-adjust: none; }

body,
h1,
h2,
h3,
h4,
p,
figure,
blockquote,
dl,
dd {
  margin: 0; }

em {
  font-style: normal; }

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

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
div,
summary {
  display: block;
  -webkit-box-sizing: border-box;
  box-sizing: border-box; }

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

/**
 * 1. Correct `inline-block` display not defined in IE 8/9.
 * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
 */
audio,
canvas,
progress,
video {
  display: inline-block;
  /* 1 */
  vertical-align: baseline;
  /* 2 */ }

/**
 * Prevent modern browsers from displaying `audio` without controls.
 * Remove excess height in iOS 5 devices.
 */
audio:not([controls]) {
  display: none;
  height: 0; }

/**
 * Address `[hidden]` styling not present in IE 8/9/10.
 * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.
 */
[hidden],
template {
  display: none; }

/* Links
   ========================================================================== */
/**
 * Remove the gray background color from active links in IE 10.
 */
a {
  background-color: transparent; }

/**
 * Improve readability of focused elements when they are also in an
 * active/hover state.
 */
a:active,
a:hover {
  outline: 0; }

/* Text-level semantics
   ========================================================================== */
/**
 * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
 */
abbr[title] {
  border-bottom: 1px dotted; }

/**
 * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
 */
b,
strong {
  font-weight: bold; }

/**
 * Address styling not present in Safari and Chrome.
 */
dfn {
  font-style: italic; }

/**
 * Address variable `h1` font-size and margin within `section` and `article`
 * contexts in Firefox 4+, Safari, and Chrome.
 */
/**
 * Address styling not present in IE 8/9.
 */
mark {
  background: #ff0;
  color: #000; }

/**
 * Prevent `sub` and `sup` affecting `line-height` in all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline; }

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

/* Embedded content
   ========================================================================== */
/**
 * Remove border when inside `a` element in IE 8/9/10.
 */
img {
  border: 0; }

/**
 * Correct overflow not hidden in IE 9/10/11.
 */
svg:not(:root) {
  overflow: hidden; }

/* Grouping content
   ========================================================================== */
/**
 * Address margin not present in IE 8/9 and Safari.
 */
figure {
  margin: 1em 40px; }

/**
 * Address differences between Firefox and other browsers.
 */
hr {
  -webkit-box-sizing: content-box;
  box-sizing: content-box;
  height: 0; }

/**
 * Contain overflow in all browsers.
 */
pre {
  overflow: auto; }

/**
 * Address odd `em`-unit font size rendering in all browsers.
 */
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em; }

/* Forms
   ========================================================================== */
/**
 * Known limitation: by default, Chrome and Safari on OS X allow very limited
 * styling of `select`, unless a `border` property is set.
 */
/**
 * 1. Correct color not being inherited.
 *    Known issue: affects color of disabled elements.
 * 2. Correct font properties not being inherited.
 * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
 */
button,
input,
optgroup,
select,
textarea {
  color: inherit;
  /* 1 */
  font: inherit;
  /* 2 */
  margin: 0;
  /* 3 */ }

/**
 * Address `overflow` set to `hidden` in IE 8/9/10/11.
 */
button {
  overflow: visible; }

/**
 * Address inconsistent `text-transform` inheritance for `button` and `select`.
 * All other form control elements do not inherit `text-transform` values.
 * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
 * Correct `select` style inheritance in Firefox.
 */
button,
select {
  text-transform: none; }

/**
 * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
 *    and `video` controls.
 * 2. Correct inability to style clickable `input` types in iOS.
 * 3. Improve usability and consistency of cursor style between image-type
 *    `input` and others.
 */
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  /* 2 */
  cursor: pointer;
  /* 3 */ }

/**
 * Re-set default cursor for disabled elements.
 */
button[disabled],
html input[disabled] {
  cursor: default; }

/**
 * Remove inner padding and border in Firefox 4+.
 */
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0; }

/**
 * Address Firefox 4+ setting `line-height` on `input` using `!important` in
 * the UA stylesheet.
 */
input {
  line-height: normal; }

/**
 * It's recommended that you don't attempt to style these elements.
 * Firefox's implementation doesn't respect box-sizing, padding, or width.
 *
 * 1. Address box sizing set to `content-box` in IE 8/9/10.
 * 2. Remove excess padding in IE 8/9/10.
 */
input[type="checkbox"],
input[type="radio"] {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
 * Fix the cursor style for Chrome's increment/decrement buttons. For certain
 * `font-size` values of the `input`, it causes the cursor style of the
 * decrement button to change from `default` to `text`.
 */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto; }

/**
 * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
 * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.
 */
input[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  -webkit-box-sizing: content-box;
  box-sizing: content-box;
  /* 2 */ }

/**
 * Remove inner padding and search cancel button in Safari and Chrome on OS X.
 * Safari (but not Chrome) clips the cancel button when the search input has
 * padding (and `textfield` appearance).
 */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

/**
 * Define consistent border, margin, and padding.
 */
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em; }

/**
 * 1. Correct `color` not being inherited in IE 8/9/10/11.
 * 2. Remove padding so people aren't caught out if they zero out fieldsets.
 */
legend {
  border: 0;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
 * Remove default vertical scrollbar in IE 8/9/10/11.
 */
textarea {
  overflow: auto; }

/**
 * Don't inherit the `font-weight` (applied by a rule above).
 * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
 */
optgroup {
  font-weight: bold; }

/* Tables
   ========================================================================== */
/**
 * Remove most spacing between table cells.
 */
table {
  border-collapse: collapse;
  border-spacing: 0; }

td,
th {
  padding: 0; }

.u-pc-none {
  display: none; }
  @media (max-width: 768px) {
    .u-pc-none {
      display: block; } }

.u-sp-none {
  display: block; }
  @media (max-width: 768px) {
    .u-sp-none {
      display: none !important; } }

.u-tab-show {
  display: none; }
  @media (max-width: 1081px) and (min-width: 769px) {
    .u-tab-show {
      display: block; } }

.u-tab-none {
  display: none; }
  @media (max-width: 1081px) and (min-width: 769px) {
    .u-tab-none {
      display: none !important; } }

@-webkit-keyframes u-scaleup {
  from {
    -webkit-transform: translate(-50%, -50%) scale(1);
    transform: translate(-50%, -50%) scale(1); }
  to {
    -webkit-transform: translate(-50%, -50%) scale(1.05);
    transform: translate(-50%, -50%) scale(1.05); } }

@keyframes u-scaleup {
  from {
    -webkit-transform: translate(-50%, -50%) scale(1);
    transform: translate(-50%, -50%) scale(1); }
  to {
    -webkit-transform: translate(-50%, -50%) scale(1.05);
    transform: translate(-50%, -50%) scale(1.05); } }

@-webkit-keyframes scroll-bg {
  0% {
    -webkit-transform: translate3d(0, -50%, 0);
    transform: translate3d(0, -50%, 0); }
  100% {
    -webkit-transform: translate3d(-50%, -50%, 0);
    transform: translate3d(-50%, -50%, 0); } }

@keyframes scroll-bg {
  0% {
    -webkit-transform: translate3d(0, -50%, 0);
    transform: translate3d(0, -50%, 0); }
  100% {
    -webkit-transform: translate3d(-50%, -50%, 0);
    transform: translate3d(-50%, -50%, 0); } }

.js-fadein {
  opacity: 0;
  display: block;
  -webkit-transform: translateY(15px);
  -ms-transform: translateY(15px);
  transform: translateY(15px);
  -webkit-transition: opacity 1s cubic-bezier(0.76, 0, 0.24, 1), -webkit-transform 1s cubic-bezier(0.76, 0, 0.24, 1), -webkit-filter 1s cubic-bezier(0.76, 0, 0.24, 1);
  transition: opacity 1s cubic-bezier(0.76, 0, 0.24, 1), -webkit-transform 1s cubic-bezier(0.76, 0, 0.24, 1), -webkit-filter 1s cubic-bezier(0.76, 0, 0.24, 1);
  -o-transition: transform 1s cubic-bezier(0.76, 0, 0.24, 1), opacity 1s cubic-bezier(0.76, 0, 0.24, 1), filter 1s cubic-bezier(0.76, 0, 0.24, 1);
  transition: transform 1s cubic-bezier(0.76, 0, 0.24, 1), opacity 1s cubic-bezier(0.76, 0, 0.24, 1), filter 1s cubic-bezier(0.76, 0, 0.24, 1);
  transition: transform 1s cubic-bezier(0.76, 0, 0.24, 1), opacity 1s cubic-bezier(0.76, 0, 0.24, 1), filter 1s cubic-bezier(0.76, 0, 0.24, 1), -webkit-transform 1s cubic-bezier(0.76, 0, 0.24, 1), -webkit-filter 1s cubic-bezier(0.76, 0, 0.24, 1);
  -webkit-filter: blur(5px);
  filter: blur(5px); }

.js-fadein.fade-side {
  -webkit-transform: translate(-15px, 0);
  -ms-transform: translate(-15px, 0);
  transform: translate(-15px, 0); }
  .js-fadein.fade-side:nth-child(even) {
    -webkit-transform: translate(15px, 0);
    -ms-transform: translate(15px, 0);
    transform: translate(15px, 0); }

.js-fadein.fade-scale {
  -webkit-transform: translate(0) scale(1.05);
  -ms-transform: translate(0) scale(1.05);
  transform: translate(0) scale(1.05); }

.js-fadein.fade-scale.is-show {
  -webkit-transform: scale(1);
  -ms-transform: scale(1);
  transform: scale(1); }

.js-fadein.is-show {
  opacity: 1;
  -webkit-transform: translate(0);
  -ms-transform: translate(0);
  transform: translate(0);
  -webkit-filter: blur(0px);
  filter: blur(0px); }
  .js-fadein.is-show:nth-child(even) {
    -webkit-transform: translate(0);
    -ms-transform: translate(0);
    transform: translate(0); }

.js-delayfadein {
  opacity: 0;
  -webkit-transform: translateY(15px);
  -ms-transform: translateY(15px);
  transform: translateY(15px);
  -webkit-filter: blur(5px);
  filter: blur(5px);
  -webkit-transition: opacity 1s cubic-bezier(0.76, 0, 0.24, 1), -webkit-transform 1s cubic-bezier(0.76, 0, 0.24, 1), -webkit-filter 1s cubic-bezier(0.76, 0, 0.24, 1);
  transition: opacity 1s cubic-bezier(0.76, 0, 0.24, 1), -webkit-transform 1s cubic-bezier(0.76, 0, 0.24, 1), -webkit-filter 1s cubic-bezier(0.76, 0, 0.24, 1);
  -o-transition: transform 1s cubic-bezier(0.76, 0, 0.24, 1), opacity 1s cubic-bezier(0.76, 0, 0.24, 1), filter 1s cubic-bezier(0.76, 0, 0.24, 1);
  transition: transform 1s cubic-bezier(0.76, 0, 0.24, 1), opacity 1s cubic-bezier(0.76, 0, 0.24, 1), filter 1s cubic-bezier(0.76, 0, 0.24, 1);
  transition: transform 1s cubic-bezier(0.76, 0, 0.24, 1), opacity 1s cubic-bezier(0.76, 0, 0.24, 1), filter 1s cubic-bezier(0.76, 0, 0.24, 1), -webkit-transform 1s cubic-bezier(0.76, 0, 0.24, 1), -webkit-filter 1s cubic-bezier(0.76, 0, 0.24, 1); }

.js-delayfadein.is-show {
  opacity: 1;
  -webkit-filter: blur(0px);
  filter: blur(0px);
  -webkit-transform: translateY(0);
  -ms-transform: translateY(0);
  transform: translateY(0); }

a {
  -webkit-transition: opacity 0.3s cubic-bezier(0.76, 0, 0.24, 1);
  -o-transition: opacity 0.3s cubic-bezier(0.76, 0, 0.24, 1);
  transition: opacity 0.3s cubic-bezier(0.76, 0, 0.24, 1); }
  a:hover {
    opacity: .65; }

.sns-link.unlink {
  pointer-events: none;
  cursor: default; }

.sns-link:hover {
  -webkit-transform: translateX(0px) scale(1.1) !important;
  -ms-transform: translateX(0px) scale(1.1) !important;
  transform: translateX(0px) scale(1.1) !important;
  -webkit-transform: translateX(0px) !important;
  -ms-transform: translateX(0px) !important;
  transform: translateX(0px) !important; }

.not-clic-btn {
  pointer-events: none;
  cursor: default;
  color: #424242 !important; }
  .not-clic-btn .common-cta-txt {
    color: #424242 !important; }
  .not-clic-btn img {
    display: none !important; }
  .not-clic-btn:hover {
    -webkit-transform: translateX(0px) !important;
    -ms-transform: translateX(0px) !important;
    transform: translateX(0px) !important; }

.l-header {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  z-index: 1000;
  pointer-events: none; }
  .l-header-logo {
    position: fixed;
    left: 10px;
    z-index: 1002;
    width: 80px;
    pointer-events: auto; }
    @media (min-width: 768px) {
      .l-header-logo {
        left: 40px;
        width: 120px; } }
    .l-header-logo img {
      display: block;
      width: 100%; }
  .l-header-menu {
    position: fixed;
    top: 10px;
    right: 10px;
    z-index: 1002;
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 50%;
    background: #fff;
    cursor: pointer;
    pointer-events: auto;
    -webkit-filter: drop-shadow(0px 0px 8px rgba(0, 0, 0, 0.15));
    filter: drop-shadow(0px 0px 8px rgba(0, 0, 0, 0.15)); }
    @media (min-width: 768px) {
      .l-header-menu {
        right: 20px;
        top: 20px;
        width: 56px;
        height: 56px; } }
    .l-header-menu span {
      position: absolute;
      left: 50%;
      width: 18px;
      height: 3px;
      border-radius: 999px;
      background: #006f8c;
      -webkit-transform: translateX(-50%);
      -ms-transform: translateX(-50%);
      transform: translateX(-50%);
      -webkit-transition: top .3s ease, opacity .3s ease, -webkit-transform .3s ease;
      transition: top .3s ease, opacity .3s ease, -webkit-transform .3s ease;
      -o-transition: transform .3s ease, top .3s ease, opacity .3s ease;
      transition: transform .3s ease, top .3s ease, opacity .3s ease;
      transition: transform .3s ease, top .3s ease, opacity .3s ease, -webkit-transform .3s ease; }
      @media (min-width: 768px) {
        .l-header-menu span {
          height: 4px; } }
    .l-header-menu span:first-child {
      top: 35%; }
      @media (min-width: 768px) {
        .l-header-menu span:first-child {
          top: 37.5%; } }
    .l-header-menu span:last-child {
      bottom: 35%; }
      @media (min-width: 768px) {
        .l-header-menu span:last-child {
          bottom: 37.5%; } }
    .l-header-menu.is-open span:first-child {
      top: 50%;
      -webkit-transform: translate(-50%, -50%) rotate(45deg);
      -ms-transform: translate(-50%, -50%) rotate(45deg);
      transform: translate(-50%, -50%) rotate(45deg); }
    .l-header-menu.is-open span:last-child {
      top: 50%;
      -webkit-transform: translate(-50%, -50%) rotate(-45deg);
      -ms-transform: translate(-50%, -50%) rotate(-45deg);
      transform: translate(-50%, -50%) rotate(-45deg); }
  .l-header-nav {
    position: fixed;
    inset: 0;
    z-index: 1001;
    background: rgba(13, 26, 31, 0.85);
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    -webkit-transition: opacity .35s ease, visibility .35s ease;
    -o-transition: opacity .35s ease, visibility .35s ease;
    transition: opacity .35s ease, visibility .35s ease; }
    .l-header-nav.is-open {
      opacity: 1;
      visibility: visible;
      pointer-events: auto; }
  .l-header-nav-inner {
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, calc(-50% - 80px));
    -ms-transform: translate(-50%, calc(-50% - 80px));
    transform: translate(-50%, calc(-50% - 80px));
    z-index: 1;
    padding: 140px 0;
    width: 65%;
    max-width: 300px; }
  .l-header-nav-list {
    margin: 0;
    padding: 0;
    list-style: none; }
    .l-header-nav-list li + li {
      margin-top: 20px; }
      @media (min-width: 768px) {
        .l-header-nav-list li + li {
          margin-top: 24px; } }
    .l-header-nav-list a {
      position: relative;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
      -ms-flex-align: center;
      align-items: center;
      -webkit-box-pack: justify;
      -ms-flex-pack: justify;
      justify-content: space-between;
      color: #fff;
      font-size: 16px;
      font-weight: 500;
      line-height: 1.4;
      text-decoration: none;
      letter-spacing: .04em; }
      @media (min-width: 768px) {
        .l-header-nav-list a {
          font-size: 18px; } }
      .l-header-nav-list a::after {
        width: 18px;
        height: 18px;
        border-radius: 50%;
        background: #fff;
        content: ""; }
        @media (min-width: 768px) {
          .l-header-nav-list a::after {
            width: 22px;
            height: 22px; } }
      .l-header-nav-list a::before {
        position: absolute;
        top: 50%;
        right: 7px;
        z-index: 1;
        width: 5px;
        height: 5px;
        border-top: 2px solid #006f8c;
        border-right: 2px solid #006f8c;
        -webkit-transform: translateY(-50%) rotate(45deg);
        -ms-transform: translateY(-50%) rotate(45deg);
        transform: translateY(-50%) rotate(45deg);
        content: ""; }
        @media (min-width: 768px) {
          .l-header-nav-list a::before {
            width: 8px;
            height: 8px; } }
  .l-header-nav-banners {
    position: absolute;
    bottom: 0;
    left: 0; }
    @media (min-width: 768px) {
      .l-header-nav-banners {
        display: none; } }

body.is-menu-open {
  overflow: hidden; }

.p-fv {
  position: relative;
  height: 65svh;
  min-height: 560px;
  overflow: hidden; }
  @media (min-width: 768px) {
    .p-fv {
      min-height: 760px; } }
  .p-fv__video {
    position: absolute;
    inset: 0;
    z-index: 0; }
    .p-fv__video::after {
      position: absolute;
      inset: 0;
      background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.08)), color-stop(55%, rgba(0, 0, 0, 0.12)), to(rgba(0, 0, 0, 0.18)));
      background: -webkit-linear-gradient(top, rgba(0, 0, 0, 0.08) 0%, rgba(0, 0, 0, 0.12) 55%, rgba(0, 0, 0, 0.18) 100%);
      background: -o-linear-gradient(top, rgba(0, 0, 0, 0.08) 0%, rgba(0, 0, 0, 0.12) 55%, rgba(0, 0, 0, 0.18) 100%);
      background: linear-gradient(180deg, rgba(0, 0, 0, 0.08) 0%, rgba(0, 0, 0, 0.12) 55%, rgba(0, 0, 0, 0.18) 100%);
      content: ""; }
  .p-fv__video-el {
    display: block;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover; }
  .p-fv__inner {
    position: relative;
    z-index: 2;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-flow: column;
    flex-flow: column;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    height: 100%;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    padding-bottom: 80px; }
  .p-fv__title {
    width: 80%;
    margin: 0; }
    @media (min-width: 768px) {
      .p-fv__title {
        width: 50%;
        max-width: 520px; } }
    .p-fv__title img {
      display: block;
      width: 100%; }
  .p-fv .js-scroll-intro img {
    cursor: pointer; }
    .p-fv .js-scroll-intro img:hover {
      -webkit-animation: introHover .5s ease;
      animation: introHover .5s ease;
      opacity: 1; }

@-webkit-keyframes introHover {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1; }
  50% {
    -webkit-transform: scale(1.105);
    transform: scale(1.105);
    opacity: 1; }
  100% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1; } }

@keyframes introHover {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1; }
  50% {
    -webkit-transform: scale(1.105);
    transform: scale(1.105);
    opacity: 1; }
  100% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1; } }
  .p-fv__lead {
    margin-top: 32px;
    color: #ffffff;
    font-size: 13px;
    font-weight: 500;
    line-height: 2;
    letter-spacing: 0.08em;
    text-align: center;
    text-shadow: 0 1px 6px rgba(0, 0, 0, 0.25); }
  .p-fv__wave {
    position: absolute;
    right: 0;
    bottom: -1px;
    left: 0;
    z-index: 3;
    line-height: 0;
    pointer-events: none; }
  .p-fv__wave-svg {
    display: block;
    width: 100%;
    height: 100%; }
  .p-fv__wave-path {
    -webkit-transform-origin: center bottom;
    -ms-transform-origin: center bottom;
    transform-origin: center bottom; }

@-webkit-keyframes fvWaveFloat {
  0% {
    -webkit-transform: translate3d(0, 0, 0) scaleX(1);
    transform: translate3d(0, 0, 0) scaleX(1); }
  50% {
    -webkit-transform: translate3d(0, 2px, 0) scaleX(1.015);
    transform: translate3d(0, 2px, 0) scaleX(1.015); }
  100% {
    -webkit-transform: translate3d(0, 0, 0) scaleX(1);
    transform: translate3d(0, 0, 0) scaleX(1); } }

@keyframes fvWaveFloat {
  0% {
    -webkit-transform: translate3d(0, 0, 0) scaleX(1);
    transform: translate3d(0, 0, 0) scaleX(1); }
  50% {
    -webkit-transform: translate3d(0, 2px, 0) scaleX(1.015);
    transform: translate3d(0, 2px, 0) scaleX(1.015); }
  100% {
    -webkit-transform: translate3d(0, 0, 0) scaleX(1);
    transform: translate3d(0, 0, 0) scaleX(1); } }

@media screen and (min-width: 768px) {
  .p-fv__inner {
    padding-top: 56px;
    padding-bottom: 150px; }
  .p-fv__lead {
    margin-bottom: 32px;
    font-size: 18px; }
  .p-fv__wave {
    height: 120px; } }

.p-fv {
  position: relative;
  overflow: hidden; }
  .p-fv__video-el {
    opacity: 0;
    -webkit-animation: fvVideoFade 2s ease forwards;
    animation: fvVideoFade 2s ease forwards; }
  .p-fv__title, .p-fv__lead {
    opacity: 0;
    -webkit-transform: scale(0.85);
    -ms-transform: scale(0.85);
    transform: scale(0.85);
    -webkit-transform-origin: center center;
    -ms-transform-origin: center center;
    transform-origin: center center;
    will-change: transform, opacity; }
  .p-fv__title {
    -webkit-animation: fvTextIn 2s cubic-bezier(0.22, 1, 0.36, 1) 0.55s forwards;
    animation: fvTextIn 2s cubic-bezier(0.22, 1, 0.36, 1) 0.55s forwards; }
  .p-fv__lead {
    -webkit-animation: fvTextIn 2s cubic-bezier(0.22, 1, 0.36, 1) 0.9s forwards;
    animation: fvTextIn 2s cubic-bezier(0.22, 1, 0.36, 1) 0.9s forwards; }

@-webkit-keyframes fvVideoFade {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }

@keyframes fvVideoFade {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }

@-webkit-keyframes fvTextIn {
  0% {
    opacity: 0;
    -webkit-transform: scale(0.85);
    transform: scale(0.85); }
  100% {
    opacity: 1;
    -webkit-transform: scale(1);
    transform: scale(1); } }

@keyframes fvTextIn {
  0% {
    opacity: 0;
    -webkit-transform: scale(0.85);
    transform: scale(0.85); }
  100% {
    opacity: 1;
    -webkit-transform: scale(1);
    transform: scale(1); } }

@media (prefers-reduced-motion: reduce) {
  .p-fv__video-el, .p-fv__title, .p-fv__lead {
    -webkit-animation: none;
    animation: none;
    opacity: 1;
    -webkit-transform: none;
    -ms-transform: none;
    transform: none; } }

.intro {
  margin-top: 65px;
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "MS PMincho", serif;
  font-style: normal;
  position: relative;
  overflow: hidden;
  text-align: center; }
  .intro-top {
    padding: 0;
    position: relative; }
  .intro__bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1; }
    .intro__bg img {
      display: block;
      position: absolute; }
    .intro__bg img.is-show {
      -webkit-filter: drop-shadow(0 0 15px rgba(0, 0, 0, 0.1)) !important;
      filter: drop-shadow(0 0 15px rgba(0, 0, 0, 0.1)) !important; }
    .intro__bg img:nth-child(1) {
      width: 151px;
      top: 1%;
      left: -32px; }
      @media (min-width: 768px) {
        .intro__bg img:nth-child(1) {
          width: 221px;
          top: -1%;
          left: 4%; } }
    .intro__bg img:nth-child(2) {
      width: 100px;
      top: 29.5%;
      right: -14px; }
      @media (min-width: 768px) {
        .intro__bg img:nth-child(2) {
          width: 141px;
          top: 15.5%;
          right: 15%; } }
    .intro__bg img:nth-child(3) {
      width: 69px;
      top: 57%;
      left: 17px; }
      @media (min-width: 768px) {
        .intro__bg img:nth-child(3) {
          width: 129px;
          left: 12%;
          top: 67%; } }
    .intro__bg img:nth-child(4) {
      width: 53px;
      bottom: -58px;
      right: 9px; }
      @media (min-width: 768px) {
        .intro__bg img:nth-child(4) {
          width: 198px;
          right: 5%; } }
  .intro__head {
    margin-bottom: 22px;
    position: relative;
    z-index: 2; }
  .intro__title {
    margin: 0 auto;
    color: #096482;
    font-size: 21px;
    font-weight: 600;
    line-height: 2em;
    -webkit-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    text-align: left;
    margin-inline: auto; }
    @media (min-width: 768px) {
      .intro__title {
        font-size: 24px;
        text-align: left;
        line-height: 1.75em;
        margin-top: 32px; } }
  .intro__body {
    padding: 0 24px;
    position: relative;
    z-index: 2; }
  .intro__text {
    margin: 0;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.75em;
    letter-spacing: .1em; }
    @media (min-width: 768px) {
      .intro__text {
        font-size: 16px; } }
    .intro__text + .intro__text {
      margin-top: 22px; }
  .intro__merit {
    display: block;
    width: 100%; }
    @media (min-width: 768px) {
      .intro__merit {
        position: relative;
        overflow: hidden;
        height: 582px; } }
    .intro__merit img {
      width: 100%;
      display: block; }
      @media (min-width: 768px) {
        .intro__merit img {
          position: absolute;
          height: 520px;
          width: auto;
          min-width: 1080px;
          top: 50%;
          left: 50%;
          -webkit-transform: translate(-50%, -50%);
          -ms-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%); } }

.intro-bottom {
  padding: 20px 20px 20px;
  text-align: center; }
  @media (min-width: 768px) {
    .intro-bottom {
      font-size: 30px;
      line-height: 2.5em; } }
  .intro-bottom__head {
    margin-bottom: 16px; }
  .intro-bottom__title {
    margin: 0 auto;
    color: #096482;
    font-size: 21px;
    font-weight: 600;
    line-height: 1.75em;
    margin-inline: auto; }
  .intro-bottom__body {
    max-width: 375px;
    margin: 0 auto; }
    @media (min-width: 768px) {
      .intro-bottom__body {
        max-width: 100%; } }
  .intro-bottom__text {
    margin: 0;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.75em; }
    @media (min-width: 768px) {
      .intro-bottom__text {
        font-size: 18px; } }
    .intro-bottom__text + .intro-bottom__text {
      margin-top: 22px; }
    .intro-bottom__text--last {
      margin-top: 34px; }
  .intro-bottom__icons {
    width: 100%;
    margin: 20px auto 20px; }
    @media (min-width: 768px) {
      .intro-bottom__icons {
        width: 720px; } }
    .intro-bottom__icons img {
      display: block;
      width: 100%;
      height: auto; }

.intro__main {
  position: relative;
  width: 100%;
  display: block; }
  @media (min-width: 768px) {
    .intro__main {
      overflow: hidden;
      height: 814px; } }
  .intro__main-image {
    display: block;
    width: 100%;
    height: 100%; }
    .intro__main-image img {
      display: block;
      width: 100%; }
      @media (min-width: 768px) {
        .intro__main-image img {
          position: absolute;
          height: 814px;
          width: auto;
          min-width: 1080px;
          top: 50%;
          left: 50%;
          -webkit-transform: translate(-50%, -50%);
          -ms-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%); } }
  .intro__main-link {
    position: absolute;
    display: block;
    z-index: 10;
    opacity: 0;
    background-color: #fff;
    border-radius: 12px; }
    .intro__main-link:hover {
      opacity: .5;
      background-color: #fff; }
    .intro__main-link--left {
      left: 50%;
      width: 156px;
      -webkit-transform: translateX(calc(-100% - 90px));
      -ms-transform: translateX(calc(-100% - 90px));
      transform: translateX(calc(-100% - 90px));
      top: 216px;
      height: 37px; }
      @media (max-width: 768px) {
        .intro__main-link--left {
          left: 50%;
          width: 45%;
          -webkit-transform: translateX(calc(-100%));
          -ms-transform: translateX(calc(-100%));
          transform: translateX(calc(-100%));
          top: 16.7%;
          height: 10vw; } }
    .intro__main-link--right {
      right: 50%;
      width: 156px;
      -webkit-transform: translateX(calc(100% - -320px));
      -ms-transform: translateX(calc(100% - -320px));
      transform: translateX(calc(100% - -320px));
      top: 216px;
      height: 37px; }
      @media (max-width: 768px) {
        .intro__main-link--right {
          left: 62%;
          width: 45%;
          -webkit-transform: translateX(calc(-100%));
          -ms-transform: translateX(calc(-100%));
          transform: translateX(calc(-100%));
          top: 32.35%;
          height: 10vw; } }

.hotel {
  position: relative;
  padding: 56px 0 0;
  overflow: hidden; }
  @media (min-width: 768px) {
    .hotel {
      padding: 56px 0 0; } }
  .hotel__bg-item {
    position: absolute;
    border: 6px solid #fff;
    border-radius: 50%;
    overflow: hidden;
    -webkit-box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08); }
    .hotel__bg-item img {
      display: block;
      width: 100%;
      height: 100%;
      -o-object-fit: cover;
      object-fit: cover; }
    .hotel__bg-item--01 {
      top: 58px;
      left: 78px;
      width: 170px;
      height: 170px;
      z-index: 1; }
      @media (min-width: 768px) {
        .hotel__bg-item--01 {
          left: 24%;
          top: 32px; } }
    .hotel__bg-item--02 {
      top: 210px;
      left: 12px;
      width: 100px;
      height: 100px;
      z-index: 1; }
      @media (min-width: 768px) {
        .hotel__bg-item--02 {
          right: 32.5%;
          top: 180px;
          left: auto;
          width: 80px;
          height: 80px;
          z-index: 1; } }
    .hotel__bg-item--03 {
      top: 15%;
      right: 7px;
      width: 82px; }
      @media (min-width: 768px) {
        .hotel__bg-item--03 {
          width: 114px;
          bottom: auto;
          top: 13%;
          right: calc(50% - 310px);
          left: auto; } }
    .hotel__bg-item--04 {
      left: -16px;
      bottom: 8%;
      width: 120px; }
      @media (min-width: 768px) {
        .hotel__bg-item--04 {
          left: calc(50% - 400px);
          width: 220px;
          bottom: auto;
          top: 60%; } }
  .hotel__head {
    position: relative;
    z-index: 2;
    padding-right: 35px; }
    @media (min-width: 768px) {
      .hotel__head {
        padding-right: 0;
        margin: 0 auto; } }
  .hotel__title {
    margin: 0 0 0 auto;
    color: #333;
    font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "MS PMincho", serif;
    font-style: normal;
    font-size: 26px;
    font-weight: 600;
    line-height: 1.75em;
    -webkit-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl; }
    @media (min-width: 768px) {
      .hotel__title {
        font-size: 24px;
        padding-right: 0;
        margin: 0 auto; } }
  .hotel-mov {
    background: url("assets/images/mov-bg-1.png");
    background-repeat: no-repeat;
    background-size: auto 100%;
    background-position: center;
    width: 100%;
    position: relative;
    min-height: 400px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center; }
    @media (min-width: 768px) {
      .hotel-mov {
        background: url("assets/images/mov-bg-1-pc.jpg");
        background-repeat: no-repeat;
        background-size: auto 100%;
        min-height: 560px;
        background-position: center center; } }
  .hotel-mov-inner {
    position: relative;
    width: 70%; }
  .hotel-mov-copy-jp {
    font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "MS PMincho", serif;
    font-style: normal;
    color: #332717;
    font-size: 18px;
    position: absolute;
    font-weight: bold;
    top: 0;
    left: 0;
    -webkit-transform: translate(-31px, -11px) rotate(-14deg);
    -ms-transform: translate(-31px, -11px) rotate(-14deg);
    transform: translate(-31px, -11px) rotate(-14deg); }
    @media (min-width: 768px) {
      .hotel-mov-copy-jp {
        left: 50%;
        -webkit-transform: translate(calc(-50% + -240px), -16px) rotate(-14deg);
        -ms-transform: translate(calc(-50% + -240px), -16px) rotate(-14deg);
        transform: translate(calc(-50% + -240px), -16px) rotate(-14deg);
        font-size: 28px; } }
  .hotel-mov-copy-en {
    font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "MS PMincho", serif;
    font-style: normal;
    font-size: 32px;
    color: #d6a361;
    position: absolute;
    -webkit-transform: translate(20px, 4px) rotate(-14deg);
    -ms-transform: translate(20px, 4px) rotate(-14deg);
    transform: translate(20px, 4px) rotate(-14deg);
    bottom: 0;
    right: 0; }
    @media (min-width: 768px) {
      .hotel-mov-copy-en {
        font-size: 66px;
        -webkit-transform: translate(calc(50% + 220px), 24px) rotate(-14deg);
        -ms-transform: translate(calc(50% + 220px), 24px) rotate(-14deg);
        transform: translate(calc(50% + 220px), 24px) rotate(-14deg);
        bottom: 0;
        right: 50%; } }
  .hotel-mov-video-wrap {
    width: 100%;
    border-radius: 16px;
    border: 6px solid #fff;
    margin: 24px auto;
    overflow: hidden;
    cursor: pointer;
    max-width: 480px; }
    .hotel-mov-video-wrap video {
      display: block;
      width: 100%; }
  .hotel-mov-play {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 80px;
    height: 80px;
    border: 0;
    border-radius: 50%;
    background: #006f8c;
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    cursor: pointer; }
    .hotel-mov-play span {
      position: absolute;
      top: 50%;
      left: 54%;
      -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%);
      width: 0;
      height: 0;
      border-top: 12px solid transparent;
      border-bottom: 12px solid transparent;
      border-left: 18px solid #fff; }
  .hotel__slider-wrap {
    position: relative;
    z-index: 2;
    margin-top: 48px; }
  .hotel__slider {
    position: relative; }
  .hotel .swiper-slide {
    -webkit-transform: scale(0.9);
    -ms-transform: scale(0.9);
    transform: scale(0.9);
    -webkit-transition: opacity .4s ease, -webkit-transform .4s ease;
    transition: opacity .4s ease, -webkit-transform .4s ease;
    -o-transition: transform .4s ease, opacity .4s ease;
    transition: transform .4s ease, opacity .4s ease;
    transition: transform .4s ease, opacity .4s ease, -webkit-transform .4s ease;
    -webkit-transform-origin: center;
    -ms-transform-origin: center;
    transform-origin: center;
    opacity: .3; }
    @media (min-width: 768px) {
      .hotel .swiper-slide {
        -webkit-transform: scale(0.8);
        -ms-transform: scale(0.8);
        transform: scale(0.8); } }
  .hotel .swiper-slide-active {
    -webkit-transform: scale(1);
    -ms-transform: scale(1);
    transform: scale(1);
    opacity: 1; }
  .hotel__nav {
    pointer-events: none; }
  .hotel__arrow {
    position: absolute;
    top: 95px;
    z-index: 5;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    padding: 0;
    border: 2px solid #fff;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.18);
    -webkit-backdrop-filter: blur(2px);
    backdrop-filter: blur(2px);
    cursor: pointer;
    pointer-events: auto;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%); }
    @media (min-width: 768px) {
      .hotel__arrow {
        top: 37.5%; } }
    .hotel__arrow span {
      position: relative;
      display: block;
      width: 10px;
      height: 10px;
      border-top: 2px solid #fff;
      border-right: 2px solid #fff; }
    .hotel__arrow--prev {
      left: 22px; }
      .hotel__arrow--prev span {
        -webkit-transform: rotate(-135deg);
        -ms-transform: rotate(-135deg);
        transform: rotate(-135deg);
        margin-left: 4px; }
    .hotel__arrow--next {
      right: 22px; }
      .hotel__arrow--next span {
        -webkit-transform: rotate(45deg);
        -ms-transform: rotate(45deg);
        transform: rotate(45deg);
        margin-right: 4px; }
  .hotel__pagination {
    position: static;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    gap: 8px;
    margin-top: 24px; }
    .hotel__pagination .swiper-pagination-bullet {
      width: 8px;
      height: 8px;
      margin: 0 !important;
      background: #e1e1e1;
      opacity: 1; }
    .hotel__pagination .swiper-pagination-bullet-active {
      background: #0b7ca0; }

.hotel-card {
  width: 100%;
  max-width: 310px;
  margin: 0 auto; }
  @media (min-width: 768px) {
    .hotel-card {
      max-width: 480px; } }
  .hotel-card__image {
    position: relative;
    overflow: hidden;
    border-radius: 24px;
    background: #ddd; }
    .hotel-card__image img {
      display: block;
      width: 100%;
      height: auto;
      aspect-ratio: 312 / 194;
      -o-object-fit: cover;
      object-fit: cover; }
  .hotel-card__tags {
    position: absolute;
    left: 20px;
    bottom: 20px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    gap: 4px;
    margin: 0;
    padding: 0;
    list-style: none; }
    .hotel-card__tags li {
      padding: 6px 8px 6px;
      background: #c78700;
      color: #fff;
      font-size: 10px;
      font-weight: 600;
      line-height: 1; }
  .hotel-card__body {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    gap: 12px;
    margin-top: 14px; }
  .hotel-card__name {
    margin: 0;
    color: #222;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.4; }
    @media (min-width: 768px) {
      .hotel-card__name {
        font-size: 20px; } }
  .hotel-card__button {
    position: relative;
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    min-width: 102px;
    height: 34px;
    padding: 0 28px 0 18px;
    border-radius: 999px;
    background: #1d1d1d;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap; }
    .hotel-card__button::after {
      position: absolute;
      top: 50%;
      right: 12px;
      width: 7px;
      height: 7px;
      border-top: 2px solid #fff;
      border-right: 2px solid #fff;
      -webkit-transform: translateY(-50%) rotate(45deg);
      -ms-transform: translateY(-50%) rotate(45deg);
      transform: translateY(-50%) rotate(45deg);
      content: ""; }

.vacation {
  padding: 12px 0 24px; }
  @media (min-width: 768px) {
    .vacation {
      max-width: 880px;
      margin: 0 auto; } }
  .vacation__inner {
    padding: 0 20px; }
    @media (min-width: 768px) {
      .vacation__inner {
        display: -ms-grid;
        display: grid;
        -ms-grid-columns: 1fr 40px 48%;
        grid-template-columns: 1fr 48%;
        -ms-grid-rows: auto 0 auto 0 auto 0 auto;
        grid-template-areas: "title image" "tags image" "text image" "cta image";
        gap: 0 40px;
        -webkit-box-align: start;
        -ms-flex-align: start;
        align-items: start; } }
  .vacation__title {
    margin: 10px 0 0;
    font-size: 24px;
    font-weight: 700;
    line-height: 1.5em;
    font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "MS PMincho", serif;
    font-style: normal; }
    @media (min-width: 768px) {
      .vacation__title {
        grid-area: title;
        margin: 0;
        font-size: 28px; } }
  .vacation__tags {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    gap: 6px;
    margin: 14px 0 0;
    padding: 0;
    list-style: none; }
    @media (min-width: 768px) {
      .vacation__tags {
        grid-area: tags;
        margin-top: 18px; } }
    .vacation__tags li {
      padding: 4px 8px 5px;
      background: #c7972b;
      color: #fff;
      font-size: 10px;
      font-weight: 700;
      line-height: 1;
      letter-spacing: 0.04em; }
  .vacation__image {
    margin-top: 14px; }
    @media (min-width: 768px) {
      .vacation__image {
        grid-area: image;
        margin-top: 0; } }
    .vacation__image img {
      display: block;
      width: 100%;
      height: auto;
      border-radius: 20px; }
  .vacation__text {
    margin-top: 18px; }
    @media (min-width: 768px) {
      .vacation__text {
        grid-area: text;
        margin-top: 28px; } }
    .vacation__text p {
      margin: 0;
      font-size: 14px;
      line-height: 1.75em; }
  .vacation__cta {
    margin-top: 16px;
    text-align: center; }
    @media (min-width: 768px) {
      .vacation__cta {
        grid-area: cta;
        margin-top: 28px;
        text-align: left; } }
    @media (min-width: 768px){
      .vacation__title {
    -ms-grid-row: 1;
    -ms-grid-column: 1; }
      .vacation__tags {
    -ms-grid-row: 3;
    -ms-grid-column: 1; }
      .vacation__image {
    -ms-grid-row: 1;
    -ms-grid-row-span: 7;
    -ms-grid-column: 3; }
      .vacation__text {
    -ms-grid-row: 5;
    -ms-grid-column: 1; }
      .vacation__cta {
    -ms-grid-row: 7;
    -ms-grid-column: 1; } }
  .vacation__foot {
    margin-top: 18px; }
    @media (min-width: 768px) {
      .vacation__foot {
        margin: 80px auto 0; } }
    .vacation__foot img {
      display: block;
      width: 80px;
      height: auto; }
      @media (min-width: 768px) {
        .vacation__foot img {
          width: 100px;
          margin-left: 15%; } }

.common-cta {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  min-width: 200px;
  height: 48px;
  padding: 0 24px;
  border-radius: 999px;
  background: #1d1d1d;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  position: relative; }
  .common-cta::before {
    content: "";
    position: absolute;
    display: block;
    top: 50%;
    right: 24px;
    width: 11px;
    height: 11px;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    -webkit-transform: translate(0, -50%) rotate(45deg);
    -ms-transform: translate(0, -50%) rotate(45deg);
    transform: translate(0, -50%) rotate(45deg); }
  .common-cta-blue {
    max-width: 240px;
    height: 60px;
    background-color: #096482;
    border-radius: 30px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    font-size: 16px;
    position: relative;
    margin: 40px auto 0;
    text-decoration: none;
    color: #fff; }
    @media (min-width: 768px) {
      .common-cta-blue {
        margin: 64px auto 0;
        max-width: 380px;
        font-size: 18px;
        font-weight: 600; } }
    .common-cta-blue::before {
      content: "";
      position: absolute;
      display: block;
      top: 50%;
      right: 24px;
      width: 11px;
      height: 11px;
      border-top: 2px solid #fff;
      border-right: 2px solid #fff;
      -webkit-transform: translate(0, -50%) rotate(45deg);
      -ms-transform: translate(0, -50%) rotate(45deg);
      transform: translate(0, -50%) rotate(45deg); }
  .common-cta-bk {
    max-width: 240px;
    height: 60px;
    background-color: #000;
    border-radius: 30px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    font-size: 16px;
    position: relative;
    margin: 40px auto 0;
    text-decoration: none;
    color: #fff; }
    @media (min-width: 768px) {
      .common-cta-bk {
        margin: 64px auto 0;
        max-width: 380px;
        font-size: 18px;
        font-weight: 600; } }
    .common-cta-bk::before {
      content: "";
      position: absolute;
      display: block;
      top: 50%;
      right: 24px;
      width: 11px;
      height: 11px;
      border-top: 2px solid #fff;
      border-right: 2px solid #fff;
      -webkit-transform: translate(0, -50%) rotate(45deg);
      -ms-transform: translate(0, -50%) rotate(45deg);
      transform: translate(0, -50%) rotate(45deg); }

.onsen {
  overflow: hidden;
  position: relative; }
  .onsen-bg {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    height: 100%;
    z-index: 1;
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%); }
    .onsen-bg img {
      display: block;
      width: 100%;
      height: 100%;
      position: absolute;
      top: 50%;
      left: 50%;
      -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%); }
      @media (min-width: 768px) {
        .onsen-bg img {
          width: auto; } }
  .onsen-inner-deco {
    position: absolute;
    z-index: 2;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0; }
    .onsen-inner-deco img {
      display: block; }
    .onsen-inner-deco img:nth-child(1) {
      position: absolute;
      top: 17.5%;
      right: -5px;
      width: 110px; }
      @media (min-width: 768px) {
        .onsen-inner-deco img:nth-child(1) {
          position: absolute;
          top: -0.5%;
          right: -5px;
          width: 135px;
          right: 8%; } }
    .onsen-inner-deco img:nth-child(2) {
      position: absolute;
      top: 45%;
      left: -40px;
      width: 140px; }
      @media (min-width: 768px) {
        .onsen-inner-deco img:nth-child(2) {
          position: absolute;
          top: auto;
          left: auto;
          width: 180px;
          bottom: -1%;
          right: 2px; } }
    .onsen-inner-deco img:nth-child(3) {
      position: absolute;
      bottom: 60px;
      right: -20px;
      width: 190px; }
      @media (min-width: 768px) {
        .onsen-inner-deco img:nth-child(3) {
          position: absolute;
          top: 32%;
          left: -3%;
          right: auto;
          width: 200px; } }
  .onsen-inner {
    position: relative;
    z-index: 3;
    padding: 75px 0; }
    @media (min-width: 768px) {
      .onsen-inner {
        padding: 100px 0; } }
  .onsen-ttl {
    font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "MS PMincho", serif;
    font-style: normal;
    font-size: 24px;
    color: #fff;
    font-weight: 600;
    text-align: center; }
    @media (min-width: 768px) {
      .onsen-ttl {
        font-size: 26px;
        text-align: center; } }
  .onsen-mov {
    width: 100%;
    position: relative;
    padding: 35px 0 20px;
    margin-top: 32px;
    background-color: rgba(0, 0, 0, 0.35);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center; }
    @media (min-width: 768px) {
      .onsen-mov {
        margin-top: 56px;
        background-color: transparent; } }
  .onsen-mov-inner {
    position: relative;
    width: 70%; }
  .onsen-mov-copy-jp {
    font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "MS PMincho", serif;
    font-style: normal;
    color: #fff;
    font-size: 18px;
    position: absolute;
    font-weight: bold;
    top: 0;
    left: 0;
    -webkit-transform: translate(-31px, -11px) rotate(-14deg);
    -ms-transform: translate(-31px, -11px) rotate(-14deg);
    transform: translate(-31px, -11px) rotate(-14deg); }
    @media (min-width: 768px) {
      .onsen-mov-copy-jp {
        left: 50%;
        -webkit-transform: translate(calc(-50% + -240px), -16px) rotate(-14deg);
        -ms-transform: translate(calc(-50% + -240px), -16px) rotate(-14deg);
        transform: translate(calc(-50% + -240px), -16px) rotate(-14deg);
        font-size: 28px; } }
  .onsen-mov-copy-en {
    font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "MS PMincho", serif;
    font-style: normal;
    font-size: 32px;
    color: #c78700;
    position: absolute;
    -webkit-transform: translate(20px, 4px) rotate(-14deg);
    -ms-transform: translate(20px, 4px) rotate(-14deg);
    transform: translate(20px, 4px) rotate(-14deg);
    bottom: 0;
    right: 0; }
    @media (min-width: 768px) {
      .onsen-mov-copy-en {
        font-size: 66px;
        -webkit-transform: translate(calc(50% + 220px), 24px) rotate(-14deg);
        -ms-transform: translate(calc(50% + 220px), 24px) rotate(-14deg);
        transform: translate(calc(50% + 220px), 24px) rotate(-14deg);
        bottom: 0;
        right: 50%; } }
  .onsen-mov-video-wrap {
    width: 100%;
    border-radius: 16px;
    border: 6px solid #fff;
    margin: 24px auto;
    overflow: hidden;
    cursor: pointer;
    max-width: 480px;
    height: 300px;
    background-color: rgba(0, 0, 0, 0.8); }
    .onsen-mov-video-wrap video {
      display: block;
      height: 100%;
      margin: 0 auto; }
  .onsen-mov-play {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 80px;
    height: 80px;
    border: 0;
    border-radius: 50%;
    background: #006f8c;
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    cursor: pointer; }
    .onsen-mov-play span {
      position: absolute;
      top: 50%;
      left: 54%;
      -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%);
      width: 0;
      height: 0;
      border-top: 12px solid transparent;
      border-bottom: 12px solid transparent;
      border-left: 18px solid #fff; }
  .onsen-mov-deco {
    position: absolute;
    display: block;
    width: 60px;
    top: -15px;
    right: -30px; }
    @media (min-width: 768px) {
      .onsen-mov-deco {
        top: -30px;
        width: 96px;
        right: calc(50% - 290px);
        left: auto; } }
  .onsen-card-wrapper {
    padding: 20px;
    margin-top: 24px; }
    @media (min-width: 768px) {
      .onsen-card-wrapper {
        width: calc(100% - 120px);
        max-width: 1080px;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: justify;
        -ms-flex-pack: justify;
        justify-content: space-between;
        -webkit-box-align: stretch;
        -ms-flex-align: stretch;
        align-items: stretch;
        margin: 20px auto 0;
        gap: 40px; } }
  .onsen-card {
    width: 87.5%;
    padding: 20px;
    border-radius: 20px;
    background: #fff;
    position: relative; }
    @media (min-width: 768px) {
      .onsen-card {
        margin-top: 0;
        width: 33.333%; } }
    .onsen-card:nth-child(even) {
      margin-left: auto;
      margin-right: 0; }
      @media (min-width: 768px) {
        .onsen-card:nth-child(even) {
          margin-right: auto; } }
    .onsen-card + .onsen-card {
      margin-top: 32px; }
      @media (min-width: 768px) {
        .onsen-card + .onsen-card {
          margin-top: 0; } }
  .onsen-card-deco {
    position: absolute;
    display: block;
    width: 60px;
    top: -15px;
    right: -15px; }
  .onsen-card-ttl {
    font-size: 20px; }
    .onsen-card-ttl span {
      display: block;
      font-size: 12px; }
  .onsen-card-tag {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
    gap: 4px;
    margin-top: 12px; }
    @media (min-width: 768px) {
      .onsen-card-tag {
        -ms-flex-flow: wrap;
        flex-flow: wrap; } }
    .onsen-card-tag li {
      line-height: 1;
      background-color: #d66161;
      color: #fff;
      padding: 6px;
      font-size: 10px;
      font-weight: 500; }
      @media (min-width: 768px) {
        .onsen-card-tag li {
          font-size: 12px; } }
  .onsen-card-img-wrapper {
    width: 100%;
    padding-top: 50%;
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    margin-top: 16px; }
    .onsen-card-img-wrapper img {
      display: block;
      width: 100%;
      height: 100%;
      -o-object-fit: cover;
      object-fit: cover;
      position: absolute;
      top: 50%;
      left: 50%;
      -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%); }
  .onsen-card-desc {
    font-size: 12px;
    line-height: 1.5em;
    margin-top: 16px; }
    @media (min-width: 768px) {
      .onsen-card-desc {
        font-size: 14px; } }
  .onsen-card-cta-wrapper {
    margin: 16px auto 0;
    text-align: center; }
  .onsen-end {
    text-align: center; }

.spot {
  padding: 34px 0 16px;
  overflow: hidden; }
  .spot-head {
    margin-bottom: 26px;
    text-align: center; }
    @media (min-width: 768px) {
      .spot-head {
        margin-bottom: 12px; } }
  .spot-lead {
    margin: 0;
    color: #333;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.4;
    font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "MS PMincho", serif;
    font-style: normal; }
  .spot-labels {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    gap: 6px;
    margin-top: 18px; }
  .spot-labels {
    display: block;
    width: 80%;
    margin: 12px auto 0;
    max-width: 300px; }
  .spot-title {
    margin: 12px 0 0;
    color: #2f2f2f;
    font-size: 30px;
    font-weight: 700;
    line-height: 1.5;
    font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "MS PMincho", serif;
    font-style: normal; }
  .spot-mov {
    background: url("assets/images/mov-bg-2.png");
    background-repeat: no-repeat;
    background-size: auto 100%;
    background-position: center;
    width: 100%;
    position: relative;
    min-height: 400px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center; }
    @media (min-width: 768px) {
      .spot-mov {
        background: url("assets/images/mov-bg-2-pc.jpg");
        background-repeat: no-repeat;
        background-size: auto 100%;
        min-height: 560px;
        background-position: center center; } }
  .spot-mov-inner {
    position: relative;
    width: 70%; }
  .spot-mov-copy-jp {
    font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "MS PMincho", serif;
    font-style: normal;
    color: #332717;
    font-size: 18px;
    position: absolute;
    font-weight: bold;
    top: 0;
    left: 0;
    -webkit-transform: translate(-31px, -11px) rotate(-14deg);
    -ms-transform: translate(-31px, -11px) rotate(-14deg);
    transform: translate(-31px, -11px) rotate(-14deg); }
    @media (min-width: 768px) {
      .spot-mov-copy-jp {
        left: 50%;
        -webkit-transform: translate(calc(-50% + -240px), -16px) rotate(-14deg);
        -ms-transform: translate(calc(-50% + -240px), -16px) rotate(-14deg);
        transform: translate(calc(-50% + -240px), -16px) rotate(-14deg);
        font-size: 28px; } }
  .spot-mov-copy-en {
    font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "MS PMincho", serif;
    font-style: normal;
    font-size: 32px;
    color: #c78700;
    position: absolute;
    -webkit-transform: translate(20px, 4px) rotate(-14deg);
    -ms-transform: translate(20px, 4px) rotate(-14deg);
    transform: translate(20px, 4px) rotate(-14deg);
    bottom: 0;
    right: 0; }
    @media (min-width: 768px) {
      .spot-mov-copy-en {
        font-size: 66px;
        -webkit-transform: translate(calc(50% + 220px), 24px) rotate(-14deg);
        -ms-transform: translate(calc(50% + 220px), 24px) rotate(-14deg);
        transform: translate(calc(50% + 220px), 24px) rotate(-14deg);
        bottom: 0;
        right: 50%; } }
  .spot-mov-video-wrap {
    width: 100%;
    border-radius: 16px;
    border: 6px solid #fff;
    margin: 24px auto;
    overflow: hidden;
    cursor: pointer;
    max-width: 480px;
    height: 300px;
    background-color: rgba(0, 0, 0, 0.8); }
    .spot-mov-video-wrap video {
      display: block;
      height: 100%;
      margin: 0 auto; }
    .spot-mov-video-wrap:-webkit-full-screen, .spot-mov-video-wrap:-webkit-full-screen {
      display: -webkit-box;
      display: flex;
      -webkit-box-align: center;
      align-items: center;
      -webkit-box-pack: center;
      justify-content: center;
      background: #000;
      width: 100vw;
      height: 100vh;
      max-width: 100%;
      border-radius: 0;
      border: none; }
    .spot-mov-video-wrap:fullscreen, .spot-mov-video-wrap:-webkit-full-screen {
      display: -webkit-box;
      display: flex;
      -webkit-box-align: center;
      align-items: center;
      -webkit-box-pack: center;
      justify-content: center;
      background: #000;
      width: 100vw;
      height: 100vh;
      max-width: 100%;
      border-radius: 0;
      border: none; }
      .spot-mov-video-wrap:-webkit-full-screen video, .spot-mov-video-wrap:-webkit-full-screen video {
        width: auto;
        height: 100%;
        object-fit: contain; }
      .spot-mov-video-wrap:fullscreen video, .spot-mov-video-wrap:-webkit-full-screen video {
        width: auto;
        height: 100%;
        object-fit: contain; }
  .spot-mov-play {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 80px;
    height: 80px;
    border: 0;
    border-radius: 50%;
    background: #006f8c;
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    cursor: pointer; }
    .spot-mov-play span {
      position: absolute;
      top: 50%;
      left: 54%;
      -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%);
      width: 0;
      height: 0;
      border-top: 12px solid transparent;
      border-bottom: 12px solid transparent;
      border-left: 18px solid #fff; }
  .spot__bg-item {
    position: absolute;
    border: 6px solid #fff;
    border-radius: 50%;
    overflow: hidden;
    -webkit-box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08); }
    .spot__bg-item img {
      display: block;
      width: 100%;
      height: 100%;
      -o-object-fit: cover;
      object-fit: cover; }
    .spot__bg-item--01 {
      top: 15%;
      right: 7px;
      width: 82px; }
      @media (min-width: 768px) {
        .spot__bg-item--01 {
          width: 114px;
          bottom: auto;
          top: 13%;
          right: calc(50% - 310px);
          left: auto; } }
    .spot__bg-item--02 {
      left: -16px;
      bottom: 8%;
      width: 120px; }
      @media (min-width: 768px) {
        .spot__bg-item--02 {
          left: calc(50% - 400px);
          width: 220px;
          bottom: auto;
          top: 60%; } }
  .spot-list {
    display: -ms-grid;
    display: grid;
    gap: 40px;
    margin-top: 32px;
    padding: 0 20px; }
    @media (min-width: 768px) {
      .spot-list {
        margin: 80px auto 0;
        gap: 80px;
        padding: 0;
        width: calc(100% - 120px);
        max-width: 1080px;
        -ms-grid-columns: (1fr)[2];
        grid-template-columns: repeat(2, 1fr); } }
  .spot-card {
    position: relative; }
  .spot-card-title {
    margin: 0;
    color: #222;
    background-color: #f2f2f2;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.35;
    padding: 4px 8px; }
    @media (min-width: 768px) {
      .spot-card-title {
        padding: 6px 10px; } }
  .spot-tag-list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    gap: 4px;
    margin: 10px 0 0;
    padding: 0;
    list-style: none; }
    .spot-tag-list li {
      padding: 4px 7px 5px;
      background: #0a7897;
      color: #fff;
      font-size: 10px;
      font-weight: 700;
      line-height: 1; }
  .spot-card-content {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 16px;
    margin-top: 12px; }
    @media (min-width: 768px) {
      .spot-card-content {
        gap: 24px; } }
  .spot-card-body {
    -webkit-box-flex: 1;
    -ms-flex: 1 1 auto;
    flex: 1 1 auto;
    min-width: 0; }
  .spot-card-text {
    margin: 0;
    color: #222;
    font-size: 11px;
    font-weight: 500;
    line-height: 1.5em; }
    @media (min-width: 768px) {
      .spot-card-text {
        font-size: 13px; } }
  .spot-card-image {
    position: relative;
    -webkit-box-flex: 0;
    -ms-flex: 0 0 126px;
    flex: 0 0 126px;
    -ms-flex-item-align: end;
    align-self: flex-end; }
    @media (min-width: 768px) {
      .spot-card-image {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 180px;
        flex: 0 0 180px; } }
    .spot-card-image img {
      display: block;
      width: 100%;
      height: auto;
      border-radius: 6px;
      aspect-ratio: 1 / 1;
      -o-object-fit: cover;
      object-fit: cover; }
  .spot-card-badge {
    position: absolute;
    top: 8px;
    right: 10px;
    width: 60px;
    -webkit-transform: rotate(10deg);
    -ms-transform: rotate(10deg);
    transform: rotate(10deg);
    -webkit-transform-origin: center;
    -ms-transform-origin: center;
    transform-origin: center; }
  .spot-cta-wrapper {
    margin-top: 18px; }
    .spot-cta-wrapper .common-cta {
      width: 100%;
      height: 38px;
      padding: 0 22px;
      font-size: 14px; }

.schedule {
  width: 100%;
  margin-top: 64px; }
  @media (min-width: 768px) {
    .schedule {
      max-width: 1080px;
      margin: 96px auto 120px; } }
  .schedule-ttl {
    width: 100%;
    display: block; }
    @media (min-width: 768px) {
      .schedule-ttl {
        max-width: 860px;
        margin: 0 auto; } }
    .schedule-ttl img {
      width: 100%;
      display: block; }
      @media (min-width: 768px) {
        .schedule-ttl img {
          max-width: 860px;
          margin: 0 auto; } }
  .schedule-sub-copy {
    font-size: 16px;
    font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "MS PMincho", serif;
    font-style: normal;
    color: #c78700;
    text-align: center;
    margin: 12px auto 0; }

.schedule-inner {
  margin-top: 32px; }
  @media (min-width: 768px) {
    .schedule-inner {
      width: 880px;
      margin: 40px auto 0;
      position: relative; } }
  @media (min-width: 768px) {
    .schedule-inner::after {
      content: "← スクロールできます →";
      position: absolute;
      top: 48px;
      -webkit-transform: translateX(100%) rotate(90deg);
      -ms-transform: translateX(100%) rotate(90deg);
      transform: translateX(100%) rotate(90deg);
      -webkit-transform-origin: left top;
      -ms-transform-origin: left top;
      transform-origin: left top;
      right: -30px;
      font-size: 12px;
      font-weight: 700;
      line-height: 1;
      color: rgba(0, 0, 0, 0.45);
      white-space: nowrap;
      pointer-events: none; } }

.schedule-tab {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: end;
  -ms-flex-align: end;
  align-items: flex-end;
  gap: 8px;
  margin-bottom: -1px; }

.schedule-tab-button {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  gap: 12px;
  min-width: calc(50% - 16px);
  height: 48px;
  padding: 0 20px;
  border: 0;
  border-radius: 8px 8px 0 0;
  background: #d3d3d3;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  line-height: 1;
  cursor: pointer; }
  @media (min-width: 768px) {
    .schedule-tab-button {
      height: 80px;
      font-size: 20px;
      min-width: calc(50% - 40px); } }
  .schedule-tab-button img {
    display: block;
    width: 22px; }
  .schedule-tab-button.is-active {
    background: #c78700; }

.schedule-panel-wrap {
  position: relative; }
  @media (min-width: 768px) {
    .schedule-panel-wrap {
      height: 80vh;
      overflow-y: scroll;
      border-radius: 12px; } }

.schedule-train, .schedule-car {
  display: none; }
  .schedule-train.is-active, .schedule-car.is-active {
    display: block; }

.schedule-day {
  padding: 40px 20px 40px;
  border-radius: 8px 8px 0 0; }
  @media (min-width: 768px) {
    .schedule-day {
      padding: 60px; } }
  .schedule-day + .schedule-day {
    -webkit-transform: translateY(-8px);
    -ms-transform: translateY(-8px);
    transform: translateY(-8px); }
    @media (min-width: 768px) {
      .schedule-day + .schedule-day {
        -webkit-transform: translateY(0);
        -ms-transform: translateY(0);
        transform: translateY(0); } }
  .schedule-day--day1 {
    background: #c78700;
    color: #fff; }
  .schedule-day--day2 {
    background: #006f8c;
    color: #fff; }

.schedule-day-head {
  margin-bottom: 18px; }

.schedule-day-title {
  margin: 0;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.2;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 12px;
  -webkit-box-pack: start;
  -ms-flex-pack: start;
  justify-content: flex-start; }
  .schedule-day-title img {
    display: block;
    width: 22px; }

.schedule-list {
  display: -ms-grid;
  display: grid; }

.schedule-item {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 68px 1fr;
  grid-template-columns: 68px 1fr;
  gap: 20px;
  padding: 14px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.28); }
  @media (min-width: 768px) {
    .schedule-item {
      -ms-grid-columns: 140px 1fr;
      grid-template-columns: 140px 1fr; } }
  .schedule-item:first-child {
    padding-top: 0;
    border-top: 0; }

.schedule-time {
  font-size: 15px;
  font-weight: 500;
  line-height: 1.5; }
  @media (min-width: 768px) {
    .schedule-time {
      font-size: 18px; } }

.schedule-content-grid {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 1fr;
  grid-template-columns: 1fr;
  gap: 10px; }
  .schedule-content-grid.mt24 {
    margin-top: 12px; }
  .schedule-content-grid--has-image {
    -ms-grid-columns: 1fr 92px;
    grid-template-columns: 1fr 92px;
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: start; }
    @media (min-width: 768px) {
      .schedule-content-grid--has-image {
        -ms-grid-columns: 1fr 160px;
        grid-template-columns: 1fr 160px; } }

.schedule-content-image img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 4px; }

.schedule-item-title {
  margin: 0;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.5em; }
  @media (min-width: 768px) {
    .schedule-item-title {
      font-size: 18px; } }

.schedule-item-title-has-img {
  display: -ms-grid;
  display: grid;
  gap: 10px;
  -webkit-box-align: start;
  -ms-flex-align: start;
  align-items: start;
  -ms-grid-columns: 1fr 92px;
  grid-template-columns: 1fr 92px; }
  .schedule-item-title-has-img img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 4px; }

.schedule-item-sub {
  margin: 6px 0 0;
  font-size: 12px;
  line-height: 1.5em;
  color: rgba(255, 255, 255, 0.8); }
  @media (min-width: 768px) {
    .schedule-item-sub {
      font-size: 14px; } }

.schedule-item-text {
  margin-top: 12px; }
  .schedule-item-text p,
  .schedule-item-text ul {
    margin: 0;
    font-size: 12px;
    line-height: 1.35em;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-flow: column;
    flex-flow: column;
    gap: 6px; }
    @media (min-width: 768px) {
      .schedule-item-text p,
      .schedule-item-text ul {
        font-size: 14px; } }
    .schedule-item-text p span,
    .schedule-item-text ul span {
      font-size: 10px;
      font-weight: 300;
      display: inline-block; }
      @media (min-width: 768px) {
        .schedule-item-text p span,
        .schedule-item-text ul span {
          font-size: 12px; } }
    .schedule-item-text p li,
    .schedule-item-text ul li {
      font-weight: 500; }

.schedule-info {
  margin-top: 14px;
  background: rgba(0, 0, 0, 0.16); }

.schedule-info-head {
  padding: 4px 12px;
  background: rgba(0, 0, 0, 0.22);
  font-size: 12px;
  font-weight: 700;
  text-align: center;
  color: rgba(255, 255, 255, 0.75); }
  @media (min-width: 768px) {
    .schedule-info-head {
      font-size: 14px;
      padding: 8px; } }

.schedule-info-summary {
  padding: 12px 12px 2px; }
  @media (min-width: 768px) {
    .schedule-info-summary {
      padding: 20px 16px 0px; } }
  .schedule-info-summary em {
    font-weight: 700;
    font-size: 14px; }
  .schedule-info-summary p {
    margin: 0;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.5em;
    color: rgba(255, 255, 255, 0.75); }
    @media (min-width: 768px) {
      .schedule-info-summary p {
        font-size: 14px; } }

.schedule-accordion {
  padding: 10px 8px 8px; }
  @media (min-width: 768px) {
    .schedule-accordion {
      padding: 20px 16px 16px; } }

.schedule-accordion-item {
  background: #f4f4f4;
  border-radius: 8px;
  overflow: hidden; }
  .schedule-accordion-item + .schedule-accordion-item {
    margin-top: 8px; }

.schedule-accordion-button {
  position: relative;
  display: block;
  width: 100%;
  padding: 10px 44px 10px 10px;
  border: 0;
  background: #fff;
  color: #111;
  font-size: 14px;
  font-weight: 700;
  text-align: left;
  cursor: pointer; }
  @media (min-width: 768px) {
    .schedule-accordion-button {
      font-size: 16px; } }
  .schedule-accordion-button::before, .schedule-accordion-button::after {
    position: absolute;
    top: 50%;
    right: 14px;
    width: 16px;
    height: 2px;
    background: #111;
    content: "";
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%); }
  .schedule-accordion-button::after {
    -webkit-transform: translateY(-50%) rotate(90deg);
    -ms-transform: translateY(-50%) rotate(90deg);
    transform: translateY(-50%) rotate(90deg);
    -webkit-transition: -webkit-transform .2s ease;
    transition: -webkit-transform .2s ease;
    -o-transition: transform .2s ease;
    transition: transform .2s ease;
    transition: transform .2s ease, -webkit-transform .2s ease; }

.schedule-accordion-item.is-open .schedule-accordion-button::after {
  -webkit-transform: translateY(-50%) rotate(0);
  -ms-transform: translateY(-50%) rotate(0);
  transform: translateY(-50%) rotate(0); }

.schedule-accordion-body {
  display: none;
  padding: 10px;
  background: #f4f4f4;
  color: #111; }

.schedule-accordion-item.is-open .schedule-accordion-body {
  display: block; }

.schedule-accordion-content {
  display: block; }

.schedule-accordion-main {
  display: -ms-grid;
  display: grid;
  gap: 8px; }

.schedule-accordion-list {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 1fr;
  grid-template-columns: 1fr;
  gap: 10px;
  -webkit-box-align: start;
  -ms-flex-align: start;
  align-items: flex-start;
  padding: 0; }
  .schedule-accordion-list.list-hasimage {
    -ms-grid-columns: 1fr 84px;
    grid-template-columns: 1fr 84px; }
  .schedule-accordion-list p {
    margin: 0;
    font-size: 12px;
    line-height: 1.35em;
    font-weight: 700; }
    @media (min-width: 768px) {
      .schedule-accordion-list p {
        font-size: 14px; } }
    .schedule-accordion-list p span {
      display: inline-block;
      font-size: 10px;
      font-weight: 500;
      line-height: 1.35em; }
      @media (min-width: 768px) {
        .schedule-accordion-list p span {
          font-size: 12px; } }

.schedule-accordion-image img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 4px; }

.schedule-check-list {
  margin-top: 16px; }

.schedule-check-box {
  background: #fff;
  border-radius: 8px;
  overflow: hidden;
  color: #111; }
  .schedule-check-box + .schedule-check-box {
    margin-top: 16px; }

.schedule-check-head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  background-color: #053b4d;
  gap: 10px;
  padding: 4px 8px; }
  .schedule-check-head img {
    display: block;
    width: 34px;
    height: auto;
    -webkit-box-flex: 0;
    -ms-flex: 0 0 auto;
    flex: 0 0 auto; }
  .schedule-check-head h3 {
    margin: 0;
    color: #fff;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.35em; }
    @media (min-width: 768px) {
      .schedule-check-head h3 {
        font-size: 18px; } }

.schedule-check-body {
  padding: 12px; }
  .schedule-check-body ul {
    margin: 0; }
  .schedule-check-body li {
    font-size: 12px;
    line-height: 1.5em; }
    @media (min-width: 768px) {
      .schedule-check-body li {
        font-size: 15px; } }
    .schedule-check-body li em {
      font-weight: 700; }

.schedule-line {
  margin: 8px 0 8px;
  opacity: .25; }

.fixed-cta {
  position: -webkit-sticky;
  position: sticky;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1005;
  padding-top: 28px;
  pointer-events: none;
  opacity: 0;
  -webkit-transform: translateY(24px);
  -ms-transform: translateY(24px);
  transform: translateY(24px);
  -webkit-animation: fixedCtaIn 0.8s cubic-bezier(0.22, 1, 0.36, 1) 0.4s forwards;
  animation: fixedCtaIn 0.8s cubic-bezier(0.22, 1, 0.36, 1) 0.4s forwards; }
  @media (min-width: 768px) {
    .fixed-cta {
      margin-top: 40px; } }
  .fixed-cta::before {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 32px;
    background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0)), color-stop(65%, rgba(0, 0, 0, 0.05)), to(rgba(0, 0, 0, 0.15)));
    background: -webkit-linear-gradient(top, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.05) 65%, rgba(0, 0, 0, 0.15) 100%);
    background: -o-linear-gradient(top, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.05) 65%, rgba(0, 0, 0, 0.15) 100%);
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.05) 65%, rgba(0, 0, 0, 0.15) 100%);
    content: "";
    pointer-events: none; }
  .fixed-cta-inner {
    position: relative;
    pointer-events: auto; }
  .fixed-cta-list {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: (1fr)[2];
    grid-template-columns: repeat(2, 1fr);
    border-top: 1px solid #d8d8d8;
    background: #fff; }
  .fixed-cta-button {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    min-height: 78px;
    text-decoration: none; }
    @media (min-width: 768px) {
      .fixed-cta-button {
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
        -ms-flex-direction: row;
        flex-direction: row;
        height: 80px; } }
    .fixed-cta-button + .fixed-cta-button {
      border-left: 1px solid #d8d8d8; }
    .fixed-cta-button img,
    .fixed-cta-button picture {
      display: block;
      width: 100%; }
      @media (min-width: 768px) {
        .fixed-cta-button img,
        .fixed-cta-button picture {
          width: auto;
          height: 100%; } }
  .fixed-cta-button-logo {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    height: 34px; }
    .fixed-cta-button-logo img {
      display: block;
      max-width: 100%;
      max-height: 34px;
      width: auto;
      height: auto; }
  .fixed-cta-button-text {
    position: relative;
    margin: 8px 0 0;
    padding-right: 28px;
    color: #111;
    font-size: 12px;
    font-weight: 700;
    line-height: 1; }
    @media (min-width: 768px) {
      .fixed-cta-button-text {
        margin: 0;
        padding-right: 20px;
        font-size: 15px; } }
  .fixed-cta-button-text::after {
    position: absolute;
    top: 50%;
    right: 0;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: #111;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
    content: ""; }
  .fixed-cta-button-text::before {
    position: absolute;
    top: 50%;
    right: 6px;
    z-index: 1;
    width: 6px;
    height: 6px;
    display: block;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    -webkit-transform: translateY(-50%) rotate(45deg);
    -ms-transform: translateY(-50%) rotate(45deg);
    transform: translateY(-50%) rotate(45deg);
    content: ""; }

@-webkit-keyframes fixedCtaIn {
  0% {
    opacity: 0;
    -webkit-transform: translateY(24px);
    transform: translateY(24px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0); } }

@keyframes fixedCtaIn {
  0% {
    opacity: 0;
    -webkit-transform: translateY(24px);
    transform: translateY(24px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0); } }

@media (prefers-reduced-motion: reduce) {
  .fixed-cta {
    opacity: 1;
    -webkit-transform: none;
    -ms-transform: none;
    transform: none;
    -webkit-animation: none;
    animation: none; } }

.intro-cta {
  text-align: center; }
  .intro-cta-copy {
    position: relative;
    display: inline-block;
    margin-bottom: 8px;
    color: #006f8c;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.5; }
    @media (min-width: 768px) {
      .intro-cta-copy {
        font-size: 15px; } }
  .intro-cta-button {
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    width: calc(100% - 80px);
    max-width: 480px;
    height: 56px;
    margin: 0 auto;
    padding: 0 16px;
    border-radius: 14px;
    background: #006f8c;
    color: #fff;
    font-size: 18px;
    font-weight: 700;
    text-decoration: none;
    -webkit-box-shadow: 0 6px 0 #004f63;
    box-shadow: 0 6px 0 #004f63;
    -webkit-transition: -webkit-transform .3s ease;
    transition: -webkit-transform .3s ease;
    -o-transition: transform .3s ease;
    transition: transform .3s ease;
    transition: transform .3s ease, -webkit-transform .3s ease; }
    @media (min-width: 768px) {
      .intro-cta-button {
        height: 60px;
        font-size: 22px; } }
    .intro-cta-button:hover {
      -webkit-transform: translateY(-3px);
      -ms-transform: translateY(-3px);
      transform: translateY(-3px); }
  .intro-cta-arrow {
    position: absolute;
    left: 50%;
    bottom: 0;
    -webkit-transform: translate(-50%, calc(50% + 3px));
    -ms-transform: translate(-50%, calc(50% + 3px));
    transform: translate(-50%, calc(50% + 3px));
    width: 25px;
    height: 25px;
    border-radius: 50%;
    background: #000; }
    .intro-cta-arrow::before {
      position: absolute;
      top: 50%;
      left: 50%;
      width: 40%;
      height: 40%;
      border-right: 1px solid #fff;
      border-bottom: 1px solid #fff;
      -webkit-transform: translate(-50%, -60%) rotate(45deg);
      -ms-transform: translate(-50%, -60%) rotate(45deg);
      transform: translate(-50%, -60%) rotate(45deg);
      content: ""; }

.bnr-area {
  width: 100%;
  margin: 40px auto; }
  @media (min-width: 768px) {
    .bnr-area {
      margin: 80px auto;
      height: 220px;
      overflow: hidden;
      position: relative; } }
  .bnr-area.mt-0 {
    margin: 0; }
  .bnr-area a {
    display: block; }
    @media (min-width: 768px) {
      .bnr-area a {
        height: 100%;
        margin: 0 auto;
        position: absolute;
        top: 0;
        left: 50%;
        -webkit-transform: translateX(-50%);
        -ms-transform: translateX(-50%);
        transform: translateX(-50%); } }
  .bnr-area img {
    display: block;
    width: 100%; }
    @media (min-width: 768px) {
      .bnr-area img {
        height: 100%;
        margin: 0 auto;
        width: auto; } }

.map {
  position: relative;
  overflow: hidden;
  margin-top: 40px; }
  @media (min-width: 768px) {
    .map {
      margin-top: 96px; } }
  .map-inner {
    position: relative;
    margin: 0 auto; }
    @media (min-width: 768px) {
      .map-inner {
        display: -ms-grid;
        display: grid;
        max-width: 1080px;
        -ms-grid-columns: 400px 1fr;
        grid-template-columns: 400px 1fr;
        gap: 24px; } }
  .map-head {
    position: relative;
    padding: 80px 0 56px; }
    @media (min-width: 768px) {
      .map-head {
        padding: 120px 0 96px;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center; } }
  .map-ttl-wrapper {
    position: relative; }
  .map-copy {
    font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "MS PMincho", serif;
    font-style: normal;
    position: absolute;
    font-size: 18px;
    top: 0;
    left: 50%;
    -webkit-transform: translate(calc(-50% - 5em), -100%) rotate(-7deg);
    -ms-transform: translate(calc(-50% - 5em), -100%) rotate(-7deg);
    transform: translate(calc(-50% - 5em), -100%) rotate(-7deg); }
    @media (min-width: 768px) {
      .map-copy {
        white-space: nowrap;
        font-size: 20px;
        -webkit-transform: translate(calc(-50% - 8em), -124%) rotate(-7deg);
        -ms-transform: translate(calc(-50% - 8em), -124%) rotate(-7deg);
        transform: translate(calc(-50% - 8em), -124%) rotate(-7deg); } }
  .map-title {
    position: relative;
    z-index: 2;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-flow: column;
    flex-flow: column;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    gap: 12px;
    font-size: 32px; }
    @media (min-width: 768px) {
      .map-title {
        -webkit-box-pack: start;
        -ms-flex-pack: start;
        justify-content: flex-start;
        -webkit-box-align: start;
        -ms-flex-align: start;
        align-items: flex-start;
        font-size: 38px; } }
    .map-title span {
      background: #c8dc53;
      color: #fff;
      display: inline-block;
      font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "MS PMincho", serif;
      font-style: normal;
      line-height: 1;
      position: relative;
      padding: 8px;
      position: relative; }
    .map-title img {
      display: block;
      width: 35px;
      position: absolute;
      right: -25px;
      bottom: 2em; }
      @media (min-width: 768px) {
        .map-title img {
          display: block;
          width: 45px;
          position: absolute;
          right: -33px;
          bottom: 1.75em; } }
  .map-bg {
    position: absolute;
    top: 50%;
    left: 50%;
    height: 100%;
    max-width: 200px;
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%); }
    @media (min-width: 768px) {
      .map-bg {
        top: 50%;
        left: 50%;
        max-width: 320px;
        height: auto;
        -webkit-transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%);
        transform: translate(-50%, -50%); } }
  .map-category {
    position: relative;
    z-index: 4;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    gap: 15px;
    width: 87.5%;
    max-width: 480px;
    height: 40px;
    border: 1px solid #ccc;
    border-radius: 999px;
    background: #fff;
    margin: 0 auto; }
    @media (min-width: 768px) {
      .map-category {
        max-width: 580px;
        height: 60px;
        gap: 24px; } }
  .map-category-item {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    gap: 2px;
    background: none;
    border: 0;
    padding: 0;
    font-size: 12px;
    font-weight: 700; }
    @media (min-width: 768px) {
      .map-category-item {
        font-size: 20px; } }
    .map-category-item img {
      width: 15px; }
      @media (min-width: 768px) {
        .map-category-item img {
          width: 24px; } }
  .map-wrapper {
    position: relative; }
    @media (min-width: 768px) {
      .map-wrapper {
        width: 100%;
        overflow: hidden;
        margin: 0 auto;
        border-radius: 12px; } }
    .map-wrapper::before {
      display: block;
      content: "";
      width: 100%;
      height: calc(100% - 20px);
      background-color: #2e312f;
      position: absolute;
      bottom: 0;
      left: 0; }
      @media (min-width: 768px) {
        .map-wrapper::before {
          height: calc(100% - 30px);
          border-radius: 12px; } }
    .map-wrapper iframe {
      display: block;
      width: 100%;
      border: none;
      position: relative;
      height: 65svh !important; }
      @media (min-width: 768px) {
        .map-wrapper iframe {
          height: 400px !important; } }

.blog {
  position: relative;
  padding: 80px 20px 0;
  overflow: hidden; }
  @media (min-width: 768px) {
    .blog {
      padding: 120px 0;
      margin-top: 80px; } }
  .blog-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    overflow: hidden;
    background: url("assets/images/blog-bg.jpg");
    background-repeat: no-repeat;
    background-size: auto 100%;
    background-position: center; }
    @media (min-width: 768px) {
      .blog-bg {
        background: url("assets/images/blog-bg-pc.jpg");
        background-repeat: no-repeat;
        background-size: auto 100%;
        background-position: center; } }
  .blog-inner {
    position: relative;
    z-index: 1;
    margin: 0 auto;
    max-width: 1080px; }
    @media (min-width: 768px) {
      .blog-inner {
        width: calc(100% - 120px);
        max-width: 1080px; } }
  .blog-copy {
    margin: 0;
    text-align: center;
    font-size: 18px;
    font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "MS PMincho", serif;
    font-style: normal; }
    @media (min-width: 768px) {
      .blog-copy {
        font-size: 20px; } }
  .blog-title {
    text-align: center;
    margin-top: 16px; }
    .blog-title span {
      font-size: 30px;
      background: #c78700;
      color: #fff;
      display: inline-block;
      font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "MS PMincho", serif;
      font-style: normal;
      line-height: 1;
      position: relative;
      padding: 8px;
      position: relative; }
      @media (min-width: 768px) {
        .blog-title span {
          font-size: 42px; } }
  .blog-list {
    margin-top: 48px; }
    @media (min-width: 768px) {
      .blog-list {
        display: -ms-grid;
        display: grid;
        -ms-grid-columns: (1fr)[3];
        grid-template-columns: repeat(3, 1fr);
        gap: 40px; } }
  .blog-card {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: 1fr 110px;
    grid-template-columns: 1fr 110px;
    gap: 16px;
    padding: 16px;
    border-radius: 20px;
    background: #fff;
    -webkit-box-shadow: 0 8px 20px rgba(0, 0, 0, 0.06);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.06);
    text-decoration: none;
    color: inherit; }
    .blog-card + .blog-card {
      margin-top: 16px; }
      @media (min-width: 768px) {
        .blog-card + .blog-card {
          margin-top: 0; } }
    @media (min-width: 768px) {
      .blog-card {
        -ms-grid-columns: 1fr;
        grid-template-columns: 1fr;
        padding: 20px; } }
  .blog-card-meta {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
    gap: 6px;
    font-size: 12px;
    font-weight: 700; }
    .blog-card-meta time {
      color: #555; }
  .blog-card-category {
    padding: 3px;
    background: #d78900;
    color: #fff;
    font-size: 10px;
    line-height: 1; }
  .blog-card-title {
    margin-top: 10px;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden; }
  .blog-card-text {
    margin-top: 6px;
    font-size: 10px;
    line-height: 1.5em;
    color: #666;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden; }
  .blog-card-thumb {
    width: 100%;
    height: 90px;
    background: #e8e8e8;
    border-radius: 12px;
    overflow: hidden; }
    @media (min-width: 768px) {
      .blog-card-thumb {
        -webkit-box-ordinal-group: 0;
        -ms-flex-order: -1;
        order: -1;
        height: 160px; } }
    .blog-card-thumb img {
      display: block;
      width: 100%;
      height: 100%;
      -o-object-fit: cover;
      object-fit: cover; }
  .blog-cta {
    margin-top: 40px;
    text-align: center; }
    @media (min-width: 768px) {
      .blog-cta {
        margin-top: 60px; } }

.insta {
  position: relative;
  padding: 56px 0 64px;
  overflow: hidden;
  border-radius: 64px 64px 0 0;
  margin-top: 64px; }
  @media (min-width: 768px) {
    .insta {
      padding: 60px 30px;
      max-width: 880px;
      margin: 80px auto;
      border-radius: 64px; } }
  .insta-bg {
    position: absolute;
    inset: 0;
    z-index: 0; }
    .insta-bg img {
      display: block;
      width: 100%;
      height: 100%;
      -o-object-fit: cover;
      object-fit: cover; }
  .insta-inner {
    position: relative;
    z-index: 1;
    width: 90%;
    margin: 0 auto; }
    @media (min-width: 768px) {
      .insta-inner {
        max-width: 760px; } }
  .insta-copy {
    margin: 0;
    text-align: center;
    font-size: 18px;
    font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "MS PMincho", serif;
    font-style: normal;
    line-height: 1; }
    @media (min-width: 768px) {
      .insta-copy {
        font-size: 20px; } }
    .insta-copy img {
      width: 18px;
      display: inline-block;
      margin: 0 4px; }
  .insta-title {
    margin: 16px 0 0;
    text-align: center;
    font-size: 28px;
    font-weight: 700;
    line-height: 1;
    font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "MS PMincho", serif;
    font-style: normal;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    gap: 4px; }
    @media (min-width: 768px) {
      .insta-title {
        font-size: 32px; } }
    .insta-title span {
      display: inline-block;
      padding: 6px 8px;
      background: #c78700;
      color: #fff;
      font-size: 20px;
      line-height: 1; }
      @media (min-width: 768px) {
        .insta-title span {
          font-size: 28px; } }
  .insta-list {
    margin-top: 24px; }
    @media (min-width: 768px) {
      .insta-list {
        margin-top: 36px; } }
  .insta #sb_instagram {
    background-color: transparent !important; }
  .insta-item {
    display: block;
    aspect-ratio: 1 / 1;
    border-radius: 4px;
    background: #ddd;
    overflow: hidden; }
    .insta-item img {
      display: block;
      width: 100%;
      height: 100%;
      -o-object-fit: cover;
      object-fit: cover; }
  .insta-banner {
    margin-top: 28px;
    border-radius: 8px;
    overflow: hidden; }
    @media (min-width: 768px) {
      .insta-banner {
        max-width: 480px;
        margin: 40px auto 0; } }
    .insta-banner img {
      display: block;
      width: 100%; }
  .insta-text {
    margin: 20px 0 0;
    text-align: center;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.7; }
    @media (min-width: 768px) {
      .insta-text {
        font-size: 15px; } }
  .insta-cta-wrapper {
    margin-top: 18px;
    text-align: center; }

.archive {
  margin-top: 48px;
  margin-bottom: 40px; }
  @media (min-width: 768px) {
    .archive {
      margin-top: 80px;
      margin-bottom: 80px; } }
  .archive-inner {
    margin: 0 auto; }
  .archive-list {
    display: -ms-grid;
    display: grid;
    gap: 32px;
    width: 80%;
    margin: 0 auto; }
    @media (min-width: 768px) {
      .archive-list {
        max-width: 1080px;
        -ms-grid-columns: (1fr)[2];
        grid-template-columns: repeat(2, 1fr);
        gap: 96px 56px; } }
  .archive-card + .archive-card {
    padding-top: 32px;
    border-top: 1px solid #e5e5e5; }
    @media (min-width: 768px) {
      .archive-card + .archive-card {
        padding-top: 0;
        border-top: 0; } }
  .archive-card-image {
    position: relative;
    overflow: hidden;
    border-radius: 24px;
    background: #ddd; }
    .archive-card-image img {
      display: block;
      width: 100%;
      height: auto;
      aspect-ratio: 3 / 1.75;
      -o-object-fit: cover;
      object-fit: cover; }
  .archive-card-rain {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 2;
    width: 56px !important;
    height: auto !important;
    aspect-ratio: auto !important;
    -o-object-fit: contain !important;
    object-fit: contain !important; }
    @media (min-width: 768px) {
      .archive-card-rain {
        top: 16px;
        right: 16px;
        width: 80px !important; } }
  .archive-card-tags {
    position: absolute;
    left: 14px;
    bottom: 14px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    gap: 4px;
    margin: 0;
    padding: 0;
    list-style: none; }
    @media (min-width: 768px) {
      .archive-card-tags {
        left: 20px;
        bottom: 20px;
        gap: 6px; } }
    .archive-card-tags li {
      padding: 6px;
      background: #c78700;
      color: #fff;
      font-size: 10px;
      font-weight: 700;
      line-height: 1; }
      @media (min-width: 768px) {
        .archive-card-tags li {
          font-size: 12px;
          padding: 4px 6px; } }
  .archive-card-body {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    gap: 16px;
    margin-top: 16px; }
  .archive-card-name {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.4; }
    @media (min-width: 768px) {
      .archive-card-name {
        font-size: 20px; } }
  .archive-card-button {
    position: relative;
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    min-width: 120px;
    height: 28px;
    padding: 0 34px 0 20px;
    border-radius: 999px;
    background: #1d1d1d;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap; }
    .archive-card-button::after {
      position: absolute;
      top: 50%;
      right: 14px;
      width: 7px;
      height: 7px;
      border-top: 2px solid #fff;
      border-right: 2px solid #fff;
      -webkit-transform: translateY(-50%) rotate(45deg);
      -ms-transform: translateY(-50%) rotate(45deg);
      transform: translateY(-50%) rotate(45deg);
      content: ""; }
  .archive-card-note {
    margin-top: 16px;
    padding: 8px 12px;
    background: #f5f5f5;
    font-size: 11px;
    line-height: 1.35em; }
  .archive-pagination {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    gap: 12px;
    margin-top: 48px;
    padding: 24px 20px;
    background: #f7f7f7; }
    @media (min-width: 768px) {
      .archive-pagination {
        margin-top: 80px; } }
    .archive-pagination .prev,
    .archive-pagination .next {
      background-color: transparent;
      position: relative;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-pack: center;
      -ms-flex-pack: center;
      justify-content: center;
      -webkit-box-align: center;
      -ms-flex-align: center;
      align-items: center;
      width: auto;
      gap: 4px; }
    .archive-pagination .prev::before {
      content: "";
      display: block;
      width: 0.65em;
      height: 0.65em;
      border-top: 2px solid #000;
      border-left: 2px solid #000;
      -webkit-transform: translateY(0.1em) rotate(-45deg);
      -ms-transform: translateY(0.1em) rotate(-45deg);
      transform: translateY(0.1em) rotate(-45deg); }
    .archive-pagination .next::after {
      content: "";
      display: block;
      width: 0.65em;
      height: 0.65em;
      border-top: 2px solid #000;
      border-left: 2px solid #000;
      -webkit-transform: translateY(0.1em) rotate(-225deg);
      -ms-transform: translateY(0.1em) rotate(-225deg);
      transform: translateY(0.1em) rotate(-225deg); }
    .archive-pagination a,
    .archive-pagination span {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
      -ms-flex-align: center;
      align-items: center;
      -webkit-box-pack: center;
      -ms-flex-pack: center;
      justify-content: center;
      width: 38px;
      height: 38px;
      border-radius: 50%;
      background: #fff;
      color: #222;
      font-size: 16px;
      font-weight: 700;
      text-decoration: none; }
  .archive-pagination-current {
    background: #006f8c !important;
    color: #fff !important; }
  .archive-pagination-next {
    width: auto !important;
    padding: 0 10px;
    border-radius: 0 !important;
    background: transparent !important; }
  .archive-back {
    margin-top: 40px;
    text-align: center; }
  .archive-back-button {
    position: relative;
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    width: 280px;
    height: 58px;
    border-radius: 999px;
    background: #000;
    color: #fff;
    font-size: 18px;
    font-weight: 700;
    text-decoration: none; }
    .archive-back-button::after {
      position: absolute;
      top: 50%;
      right: 26px;
      width: 10px;
      height: 10px;
      border-top: 2px solid #fff;
      border-right: 2px solid #fff;
      -webkit-transform: translateY(-50%) rotate(45deg);
      -ms-transform: translateY(-50%) rotate(45deg);
      transform: translateY(-50%) rotate(45deg);
      content: ""; }

/* カテゴリ別タグ色変更 */
.archive-hotel .archive-card-tags li {
  background: #ce870d; }

.archive-onsen .archive-card-tags li {
  background: #d66161; }

.archive-spot .archive-card-tags li {
  background: #096482; }

.archive-gourmet .archive-card-tags li {
  background: #43a047; }

.heroheader {
  position: relative;
  height: 180px;
  overflow: hidden; }
  @media (min-width: 768px) {
    .heroheader {
      height: 240px; } }
  .heroheader-bg {
    position: absolute;
    bottom: 0;
    left: 50%;
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    transform: translateX(-50%);
    overflow: hidden;
    height: 100%;
    width: 150%;
    border-radius: 0 0 50% 50%; }
    .heroheader-bg img {
      display: block;
      width: 100%;
      height: 100%;
      -o-object-fit: cover;
      object-fit: cover; }
  .heroheader-title {
    position: absolute;
    top: 65%;
    left: 50%;
    z-index: 2;
    width: 100%;
    color: #fff;
    font-size: 26px;
    font-weight: 600;
    line-height: 1.4;
    text-align: center;
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "MS PMincho", serif;
    font-style: normal; }
    @media (min-width: 768px) {
      .heroheader-title {
        font-size: 40px; } }
  .heroheader-title-single {
    position: absolute;
    top: 65%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    z-index: 2;
    width: 90%;
    margin: 0 auto;
    font-size: 20px;
    text-align: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-flow: column;
    flex-flow: column;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    gap: 4px; }
    @media (min-width: 768px) {
      .heroheader-title-single {
        gap: 12px; } }
    .heroheader-title-single h1 {
      font-size: 20px;
      font-weight: 600;
      line-height: 1.25em;
      text-align: center;
      font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "MS PMincho", serif;
      font-style: normal;
      color: #fff; }
      @media (min-width: 768px) {
        .heroheader-title-single h1 {
          font-size: 32px; } }
  .heroheader-date {
    font-size: 12px;
    color: #fff; }
    @media (min-width: 768px) {
      .heroheader-date {
        font-size: 16px; } }
  .heroheader-single-category {
    display: block;
    padding: 3px 5px;
    background: #f39800;
    color: #fff;
    font-size: 9px;
    font-weight: 700;
    line-height: 1; }
    @media (min-width: 768px) {
      .heroheader-single-category {
        font-size: 16px; } }

.blog-archive {
  margin-top: 32px;
  padding-bottom: 40px; }
  @media (min-width: 768px) {
    .blog-archive {
      padding: 0 0 80px; } }
  .blog-archive-inner {
    margin: 0 auto; }
  .blog-archive-lead {
    text-align: center; }
    .blog-archive-lead p {
      margin: 0;
      font-size: 13px;
      font-weight: 600;
      line-height: 1.8; }
      @media (min-width: 768px) {
        .blog-archive-lead p {
          font-size: 16px; } }
  .blog-archive-category {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 8px;
    width: 87.5%;
    margin: 28px auto 0; }
    @media (min-width: 768px) {
      .blog-archive-category {
        max-width: 680px;
        gap: 16px; } }
  .blog-archive-category-item {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-flex: 1;
    -ms-flex: 1;
    flex: 1;
    height: 28px;
    border: 1px solid #d8d8d8;
    border-radius: 999px;
    background: #f5f5f5;
    color: #b7b7b7;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    text-decoration: none; }
    @media (min-width: 768px) {
      .blog-archive-category-item {
        height: 40px;
        font-size: 15px; } }
    .blog-archive-category-item.is-active {
      border-color: #f39800;
      background: #f39800;
      color: #fff; }
  .blog-archive-list {
    display: -ms-grid;
    display: grid;
    gap: 20px;
    width: 87.5%;
    margin: 32px auto 0; }
    @media (min-width: 768px) {
      .blog-archive-list {
        -ms-grid-columns: (1fr)[2];
        grid-template-columns: repeat(2, 1fr);
        gap: 64px 64px;
        max-width: 1080px;
        margin: 64px auto 0; } }
  .blog-archive-card {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: 1fr 92px;
    grid-template-columns: 1fr 92px;
    gap: 16px;
    color: inherit;
    text-decoration: none; }
    @media (min-width: 768px) {
      .blog-archive-card {
        -ms-grid-columns: 1fr 140px;
        grid-template-columns: 1fr 140px; } }
    .blog-archive-card + .blog-archive-card {
      padding-top: 20px;
      border-top: 1px solid #e5e5e5; }
      @media (min-width: 768px) {
        .blog-archive-card + .blog-archive-card {
          padding-top: 0;
          border-top: 0; } }
  .blog-archive-card-content {
    min-width: 0; }
  .blog-archive-card-meta {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    gap: 6px;
    font-size: 10px;
    font-weight: 700;
    line-height: 1; }
    .blog-archive-card-meta time {
      color: #222; }
  .blog-archive-card-category {
    display: inline-block;
    padding: 3px 5px;
    background: #f39800;
    color: #fff;
    font-size: 9px;
    font-weight: 700;
    line-height: 1; }
  .blog-archive-card-title {
    margin: 8px 0 0;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden; }
    @media (min-width: 768px) {
      .blog-archive-card-title {
        font-size: 18px; } }
  .blog-archive-card-text {
    margin: 6px 0 0;
    color: #555;
    font-size: 9px;
    font-weight: 500;
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden; }
    @media (min-width: 768px) {
      .blog-archive-card-text {
        font-size: 12px; } }
  .blog-archive-card-thumb {
    width: 92px;
    height: 76px;
    border-radius: 8px;
    background: #e5e5e5;
    overflow: hidden; }
    @media (min-width: 768px) {
      .blog-archive-card-thumb {
        width: 140px;
        height: 100px; } }
    .blog-archive-card-thumb img {
      display: block;
      width: 100%;
      height: 100%;
      -o-object-fit: cover;
      object-fit: cover; }
  .blog-archive-pagination {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    gap: 12px;
    margin-top: 40px;
    padding: 24px 20px;
    background: #f7f7f7; }
    @media (min-width: 768px) {
      .blog-archive-pagination {
        margin-top: 80px; } }
    .blog-archive-pagination a,
    .blog-archive-pagination span {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
      -ms-flex-align: center;
      align-items: center;
      -webkit-box-pack: center;
      -ms-flex-pack: center;
      justify-content: center;
      width: 28px;
      height: 28px;
      border-radius: 50%;
      background: #fff;
      color: #222;
      font-size: 12px;
      font-weight: 700;
      text-decoration: none; }
  .blog-archive-pagination-current {
    background: #006f8c !important;
    color: #fff !important; }
  .blog-archive-pagination-next {
    width: auto !important;
    padding: 0 6px;
    border-radius: 0 !important;
    background: transparent !important; }
    .blog-archive-pagination-next::after {
      display: inline-block;
      width: 7px;
      height: 7px;
      margin-left: 8px;
      border-top: 2px solid #111;
      border-right: 2px solid #111;
      -webkit-transform: rotate(45deg);
      -ms-transform: rotate(45deg);
      transform: rotate(45deg);
      content: ""; }

.single {
  margin-top: 40px;
  padding: 0 0 80px; }
  @media (min-width: 768px) {
    .single {
      padding: 0 30px 120px; } }
  .single-inner {
    width: 87.5%;
    margin: 0 auto; }
    @media (min-width: 768px) {
      .single-inner {
        max-width: 780px; } }
  .single-title {
    margin: 0;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.5; }
    @media (min-width: 768px) {
      .single-title {
        font-size: 34px; } }
  .single-thumb {
    margin-top: 24px;
    border-radius: 12px;
    overflow: hidden;
    background: #e5e5e5; }
    .single-thumb img {
      display: block;
      width: 100%;
      height: auto;
      -o-object-fit: cover;
      object-fit: cover; }
  .single-content {
    margin-top: 32px; }
    .single-content h2 {
      position: relative;
      margin: 40px 0 20px;
      color: #006f8c;
      font-size: 19px;
      font-weight: 700;
      line-height: 1.5;
      border-bottom: 2px solid #096482; }
      @media (min-width: 768px) {
        .single-content h2 {
          font-size: 28px; } }
    .single-content h3 {
      position: relative;
      margin: 32px 0 16px;
      padding-left: 12px;
      color: #222;
      font-size: 17px;
      font-weight: 700;
      line-height: 1.5; }
      @media (min-width: 768px) {
        .single-content h3 {
          font-size: 22px; } }
      .single-content h3::before {
        position: absolute;
        top: .35em;
        left: 0;
        width: 4px;
        height: 1em;
        background: #006f8c;
        content: ""; }
    .single-content h4 {
      position: relative;
      margin: 32px 0 16px;
      color: #006f8c;
      font-size: 15px;
      font-weight: 700;
      line-height: 1.5; }
      @media (min-width: 768px) {
        .single-content h4 {
          font-size: 22px; } }
    .single-content p {
      margin: 0;
      font-size: 13px;
      font-weight: 500;
      line-height: 1.75em; }
      @media (min-width: 768px) {
        .single-content p {
          font-size: 15px; } }
      .single-content p + p {
        margin-top: 12px; }
    .single-content figure {
      margin: 24px 0;
      border-radius: 12px;
      overflow: hidden;
      background: #e5e5e5; }
      .single-content figure img {
        display: block;
        width: 100%;
        height: auto;
        -o-object-fit: cover;
        object-fit: cover; }
    .single-content ul {
      margin: 24px 0 0;
      padding: 0;
      list-style: none; }
      .single-content ul li {
        position: relative;
        padding-left: 14px;
        font-size: 13px;
        font-weight: 500;
        line-height: 1.8; }
        @media (min-width: 768px) {
          .single-content ul li {
            font-size: 15px; } }
        .single-content ul li::before {
          position: absolute;
          top: .7em;
          left: 0;
          width: 5px;
          height: 5px;
          border-radius: 50%;
          background: #006f8c;
          content: ""; }
  .single-share {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    gap: 16px;
    margin: 40px calc(50% - 50vw) 0;
    padding: 14px 24px;
    background: #f5f5f5; }
    @media (min-width: 768px) {
      .single-share {
        margin-left: 0;
        margin-right: 0;
        border-radius: 12px; } }
  .single-share-sns {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    gap: 8px; }
  .single-share-button {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    color: #fff;
    font-size: 8px;
    font-weight: 700;
    text-decoration: none; }
    .single-share-button--x {
      background: #000; }
    .single-share-button--line {
      background: #00b900; }
    .single-share-button--meta {
      background: #1877f2; }
  .single-copy-button {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    min-width: 132px;
    height: 28px;
    padding: 0 18px;
    border: 1px solid #d5d5d5;
    border-radius: 999px;
    background: #fff;
    color: #222;
    font-size: 10px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer; }
  .single-button-list {
    display: -ms-grid;
    display: grid;
    gap: 14px;
    width: 220px;
    margin: 36px auto 0; }
  .single-button {
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    height: 54px;
    border-radius: 999px;
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    text-decoration: none; }
    .single-button::after {
      position: absolute;
      top: 50%;
      right: 22px;
      width: 8px;
      height: 8px;
      border-top: 2px solid #fff;
      border-right: 2px solid #fff;
      -webkit-transform: translateY(-50%) rotate(45deg);
      -ms-transform: translateY(-50%) rotate(45deg);
      transform: translateY(-50%) rotate(45deg);
      content: ""; }
    .single-button--blog {
      background: #006f8c; }
    .single-button--top {
      background: #000; }

/*# sourceMappingURL=style.css.map */