@charset "UTF-8";

/* Site-wide variables, typography, containers and utilities. Mobile-first; use min-width for wider layouts. */

@font-face {
  font-family: "Agenda";
  src: url("../fonts/agenda/Agenda-Light.otf") format("opentype");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Agenda";
  src: url("../fonts/agenda/Agenda-Regular.otf") format("opentype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Agenda";
  src: url("../fonts/agenda/Agenda-Medium.otf") format("opentype");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Source Serif 4";
  src: url("../fonts/source-serif-4/SourceSerif4-Light.ttf") format("truetype");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Source Serif 4";
  src: url("../fonts/source-serif-4/SourceSerif4-LightItalic.ttf") format("truetype");
  font-weight: 300;
  font-style: italic;
  font-display: swap;
}

:root {
  --color-white: #FFFFFF;
  --color-light-gray: #e0e0e0;
  --color-midnight: #1D2534;
  --color-black: #161615;
  --color-dark-harbor: #70868C;
  --color-sea-salt: #BFCAD066;
  --color-aubergine: #60004E;
  --color-white-rgb: 255, 255, 255;
  --color-midnight-rgb: 29, 37, 52;
  --color-black-rgb: 22, 22, 21;
  --color-sea-salt-rgb: 191, 202, 208;
  --color-aubergine-rgb: 96, 0, 78;
  --color-block-light: var(--color-sea-salt);
  --color-block-dark: var(--color-midnight);
  --color-accent: var(--color-midnight);
  --color-reservation: var(--color-aubergine);
  --font-agenda-light: "Agenda", "Helvetica Neue", Arial, sans-serif;
  --font-agenda-medium: "Agenda", "Helvetica Neue", Arial, sans-serif;
  --font-source-serif-light: "Source Serif 4", Georgia, "Times New Roman", serif;
  --font-source-serif-light-italic: "Source Serif 4", Georgia, "Times New Roman", serif;
  --font-ja-sans: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'ヒラギノ角ゴ ProN W3', 'Hiragino Sans W3', 'Yu Gothic', 'YuGothic', sans-serif;
  --font-ja-sans-medium: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'ヒラギノ角ゴ ProN W6', 'Hiragino Sans W5', 'Yu Gothic', 'YuGothic', sans-serif;
  --font-ja-serif: 'Hiragino Mincho ProN', 'Hiragino Mincho Pro', 'ヒラギノ明朝 ProN W3', 'Yu Mincho', 'YuMincho', serif;
  --font-size-xs: 14px;
  --font-size-sm: 15px;
  --font-size-md: 17px;
  --font-size-lg: 18px;
  --font-size-xl: 20px;
  --font-size-2xl: 21px;
  --font-size-3xl: 22px;
  --font-size-4xl: 24px;
  --font-size-5xl: 26px;
  --font-size-6xl: 28px;
  --font-size-7xl: 32px;
  --font-size-8xl: 36px;
  --font-size-9xl: 42px;
}

* {
  box-sizing: border-box;
}

html, body {
  width: 100%;
  margin: 0;
  padding: 0;
  font-family: var(--font-agenda-light), var(--font-ja-sans);
  font-size: var(--font-size-md);
  font-weight: 300;
  font-feature-settings: "palt";
  letter-spacing: 0.05em;
  color: var(--color-black);
}

.lang-ja {
  font-family: var(--font-agenda-light), var(--font-ja-sans);
}

h2, h3, strong, b, h2.lang-ja, h2 span.lang-ja {
  font-family: var(--font-agenda-medium), var(--font-ja-sans-medium);
  font-weight: 500;
}

.font-medium {
  font-family: var(--font-agenda-medium), var(--font-ja-sans-medium);
  font-weight: 500;
}

.lang-en {
  font-family: var(--font-agenda-light);
}

h2.lang-en, h2 span.lang-en {
  font-family: var(--font-agenda-medium), var(--font-ja-sans-medium);
  font-weight: 500;
}

.font-agenda-light, .location-tag {
  font-family: var(--font-agenda-light);
  font-weight: 300;
  text-transform: capitalize;
}

.font-source-serif, .source-serif {
  font-family: var(--font-source-serif-light);
  font-weight: 300;
}

.font-source-serif-italic, .source-serif-italic {
  font-family: var(--font-source-serif-light-italic);
  font-style: italic;
  font-weight: 300;
}

.font-ja-serif {
  font-family: var(--font-ja-serif);
  font-weight: 300;
}

p {
  line-height: 1.6;
}

a {
  color: inherit;
  text-decoration: none;
  transition: .35s;
}

a:hover {
  opacity: .75;
}

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

img {
  max-width: 100%;
  vertical-align: bottom;
}

button, input, select {
  font-family: inherit;
}

.container {
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
  padding-left: 20px;
  padding-right: 20px;
}

.offer-section .container {
  position: relative;
  max-width: 1400px;
  padding-left: 10px;
  padding-right: 10px;
}

.btn {
  display: inline-block;
  margin: 30px 0 0;
  line-height: 1.5;
  text-align: center;
}

.btn-center {
  display: flex;
  justify-content: center;
}

.btn_bg_gr-wh, .btn_bg_gr-tp {
  border: 1px solid var(--color-midnight);
}

.btn_bg_gr-wh:hover {
  background-color: var(--color-white);
  color: var(--color-black);
}

.btn_bg_gr-tp:hover {
  background-color: transparent;
  color: var(--color-black);
}

.btn_bg_tp-gr {
  border: 1px solid var(--color-midnight);
  background-color: transparent;
  color: var(--color-black);
}

.btn_bg_tp-gr:hover {
  background-color: var(--color-midnight);
  color: var(--color-white);
  opacity: 1;
}

.btn_bw_tp-wh {
  border: 1px solid var(--color-white);
  background-color: transparent;
  color: var(--color-white);
}

.btn_bw_tp-wh:hover {
  background-color: var(--color-white);
  color: var(--color-black);
  opacity: 1;
}

h2 {
  margin: 0 0 35px;
  font-size: var(--font-size-8xl);
  line-height: 1.35;
  text-align: center;
  font-weight: 500;
}

h2 span {
  display: block;
  margin: 10px 0 0;
  font-size: var(--font-size-md);
  font-weight: 500;
}

@media screen and (min-width: 769px) {
  .container {
    max-width: 768px;
  }
}

@media screen and (min-width: 1025px) {
  .container {
    max-width: 1280px;
  }

  section .container {
    padding-top: 70px;
    padding-bottom: 70px;
  }
}

@media screen and (min-width: 1441px) {
  .container {
    max-width: 1440px;
  }
}

.center {
  text-align: center;
}

.stay-section .container, .dining-section .container, .wedding-section .container, .banquet-section .container, .facilities-section .container {
  padding-top: 70px;
  padding-bottom: 70px;
}

.stay-section .center p, .dining-section .center p, .wedding-section .center p, .banquet-section .center p, .facilities-section .center p {
  max-width: 860px;
  margin: 0 auto;
}

h2.center .lang-en, h2 .lang-en {
  display: block;
  margin: 10px 0 0;
  font-size: var(--font-size-md);
  line-height: 1.4;
}

.is-footer-hidden {
  display: none;
}

/* Shared scroll reveal The class is added by common.js, so content remains visible without JS. */

.js-scroll-reveal {
  opacity: 0;
  translate: 0 24px;
  transition: opacity .8s ease,
    translate .8s cubic-bezier(.22, 1, .36, 1);
  will-change: opacity, translate;
}

.js-scroll-reveal.is-revealed {
  opacity: 1;
  translate: 0 0;
}

@media screen and (min-width: 769px) {
  .js-scroll-reveal {
    translate: 0 28px;
  }

  .js-scroll-reveal.is-revealed {
    translate: 0 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .js-scroll-reveal {
    opacity: 1;
    translate: none;
    transition: none;
  }
}

@media print {
  .js-scroll-reveal {
    opacity: 1;
    translate: none;
    transition: none;
  }
}

.btn_bg_gr-wh, .btn_bg_gr-tp, .btn_bg_tp-gr:hover, .btn_bg_wh-gr:hover {
  border-color: var(--color-midnight);
  background-color: var(--color-midnight);
  color: var(--color-white);
}

.btn_bg_tp-gr, .btn_bg_wh-gr {
  border-color: var(--color-accent);
  color: var(--color-accent);
}

.bgc_dg {
  background-color: var(--color-block-dark);
}

.bgc_lg {
  background-color: var(--color-block-light);
}

body {
  background: var(--color-white);
  letter-spacing: .04em;
}

section .container {
  padding-top: 48px;
  padding-bottom: 48px;
}

h2, .section-text h2, .offer-card-section h2 {
  letter-spacing: .06em;
}

h2 .lang-en, h2 span.lang-en, .offer-card-section h2 .lang-en {
  margin-top: 7px;
  color: var(--color-dark-harbor);
  font-family: var(--font-agenda-light);
  font-size: var(--font-size-xs);
  font-weight: 300;
  letter-spacing: .14em;
}

.btn {
  position: relative;
  min-width: 164px;
  padding: .78rem 1.35rem;
  border-radius: 0;
  font-size: var(--font-size-xs);
  letter-spacing: .08em;
}

.btn_bg_gr-wh, .btn_bg_gr-tp {
  border-color: var(--color-midnight);
  background-color: var(--color-midnight);
  color: var(--color-white);
}

.btn_bg_gr-wh:hover, .btn_bg_gr-tp:hover {
  background-color: var(--color-white);
  color: var(--color-black);
}

@media screen and (min-width: 1024px) {
  section .container {
    padding-top: 86px;
    padding-bottom: 86px;
  }
}

/* Three-hotel shared typography and responsive utilities */
.section-heading-sub {
  display: block;
  margin-top: 6px;
  color: var(--color-dark-harbor);
  font-size: var(--font-size-sm);
  line-height: 1.25;
  letter-spacing: .08em;
}

.br-pc { display: none; }
.br-sp { display: initial; }

@media screen and (min-width: 769px) {
  .br-pc { display: initial; }
  .br-sp { display: none; }
}
