:root {
  --hfg-green: #1b3a2d;
  --hfg-teal: #0b8388;
  --hfg-gold: #b8975c;
  --hfg-rose: #8b2f3a;
  --hfg-ivory: #fbf7ef;
  --hfg-ink: #24342c;
}

/* HFG menu category states */
#header .nav-tab__btn[data-cate="plan"] {
  --tabCate: #0b8388;
}

#header .nav-tab__btn[data-cate="eat"] {
  --tabCate: #b58a3d;
}

#header .nav-tab__btn[data-cate="report"] {
  --tabCate: #a94f68;
}

#header .nav-list__link[data-cate*="plan"] {
  --navCate: #0b8388;
}

#header .nav-list__link[data-cate*="eat"] {
  --navCate: #b58a3d;
}

#header .nav-list__link[data-cate*="report"] {
  --navCate: #a94f68;
}

#header .nav-list__link[data-cate*="eat"].nav-list__link--plan,
#header .nav-list__link[data-cate*="report"].nav-list__link--plan {
  --navCate: #0b8388;
}

#header .nav-list__link[data-cate*="report"].nav-list__link--eat {
  --navCate: #b58a3d;
}

#header .nav-list__link.nav-list__link--plan,
#header .nav-list__link.nav-list__link--eat,
#header .nav-list__link.nav-list__link--report {
  color: #fff;
}

#header .nav-list__link.nav-list__link--plan::before,
#header .nav-list__link.nav-list__link--eat::before,
#header .nav-list__link.nav-list__link--report::before {
  border-radius: 0.3rem;
  background-color: #fff;
}

#header .nav-list__link.nav-list__link--plan::after,
#header .nav-list__link.nav-list__link--eat::after,
#header .nav-list__link.nav-list__link--report::after {
  opacity: 1;
  scale: 1;
}

#header .nav-list__link.nav-list__link--plan.nav-list__link--eat::after {
  background-image: linear-gradient(144deg, #0b8388 50%, #b58a3d 50%);
}

#header .nav-list__link.nav-list__link--plan.nav-list__link--report::after {
  background-image: linear-gradient(144deg, #0b8388 50%, #a94f68 50%);
}

#header .nav-list__link.nav-list__link--eat.nav-list__link--report::after {
  background-image: linear-gradient(144deg, #b58a3d 50%, #a94f68 50%);
}

@media (any-hover: hover) {
  #header .nav-list__link.nav-list__link--plan:hover,
  #header .nav-list__link.nav-list__link--eat:hover,
  #header .nav-list__link.nav-list__link--report:hover {
    color: #000;
  }

  #header .nav-list__link.nav-list__link--plan:hover::before,
  #header .nav-list__link.nav-list__link--eat:hover::before,
  #header .nav-list__link.nav-list__link--report:hover::before {
    scale: 0.95 0.94;
  }
}

@media screen and (max-width: 767px) {
  #header .nav-list__link.nav-list__link--plan,
  #header .nav-list__link.nav-list__link--eat,
  #header .nav-list__link.nav-list__link--report {
    padding: 0.5rem 0.2rem;
    border-radius: 0.5rem;
    background-color: var(--navCate);
  }
}

body {
  color: var(--hfg-ink);
}

.header-logo .header-logo__in {
  display: flex !important;
  align-items: center;
  width: auto;
  height: auto;
  overflow: visible;
}

.header-logo .header-logo__in img {
  display: block;
  width: auto;
  max-width: 12rem;
  max-height: 6.8rem;
  height: auto;
  object-fit: contain;
}

@media screen and (max-width: 767px) {
  .header-logo .header-logo__in img {
    max-width: 10.6rem;
    max-height: 5.8rem;
  }
}

.ico_svg.hfg_word_logo,
.ico_svg.hfg_mark_logo,
.hfg-mark-logo {
  display: inline-block;
  width: 9rem;
  max-width: 100%;
  height: auto;
  object-fit: contain;
}

.footer-sbs__logo img {
  width: min(28rem, 100%);
  height: auto;
  object-fit: contain;
}

.footer__copy {
  color: var(--hfg-green);
  letter-spacing: 0.08em;
}

.header-linkarea-list__img,
.nav-list__img,
.lcl-nav__img,
.linkarea__img {
  background: var(--hfg-ivory);
  border: 2px solid rgba(184, 151, 92, 0.45);
  border-radius: 50%;
  overflow: hidden;
}

.header-linkarea-list__txt,
.nav-list__txt,
.lcl-nav__txt,
.txt-basic--bold {
  color: var(--hfg-green);
}

.nav-tab__btn.is-active,
.btn01,
.btn02--bold,
.btn-reserve {
  background-color: var(--hfg-green);
  border-color: var(--hfg-green);
}

.btn02,
.btn02--border,
.state-link {
  border-color: var(--hfg-gold);
  color: var(--hfg-green);
}

.hero01-box__txt {
  color: var(--hfg-green);
  letter-spacing: 0.16em;
}

.lcl-hero .hfg-hero-word {
  z-index: 4;
  overflow: visible;
  pointer-events: none;
}

.lcl-hero .hfg-hero-word > img {
  opacity: 0;
}

.lcl-hero .hfg-hero-word__text {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  width: max-content;
  font-family: "Jost", sans-serif;
  font-size: 8.6rem;
  font-weight: 700;
  line-height: 0.86;
  letter-spacing: 0;
  color: rgba(255, 250, 239, 0.92);
  -webkit-text-stroke: 0.18rem rgba(27, 58, 45, 0.78);
  text-shadow:
    0.35rem 0.35rem 0 rgba(184, 151, 92, 0.7),
    0 1.2rem 3rem rgba(27, 58, 45, 0.16);
  transform: rotate(-2deg);
  transform-origin: center;
  white-space: nowrap;
}

.lcl-hero .hfg-hero-word--healing .hfg-hero-word__text {
  color: rgba(27, 58, 45, 0.9);
  -webkit-text-stroke-color: rgba(255, 250, 239, 0.95);
  text-shadow:
    0.35rem 0.35rem 0 rgba(184, 151, 92, 0.72),
    0 1.2rem 3rem rgba(27, 58, 45, 0.2);
}

.lcl-hero .hfg-hero-word--forest .hfg-hero-word__text {
  font-size: 9.2rem;
  color: rgba(27, 58, 45, 0.88);
  -webkit-text-stroke-color: rgba(255, 250, 239, 0.95);
  text-shadow:
    0.35rem 0.35rem 0 rgba(184, 151, 92, 0.72),
    0 1.1rem 2.8rem rgba(255, 250, 239, 0.2);
  transform: rotate(2deg);
}

.lcl-hero .hfg-hero-word--garden .hfg-hero-word__text {
  font-size: 9.8rem;
  color: rgba(255, 250, 239, 0.94);
  -webkit-text-stroke-color: rgba(11, 131, 136, 0.74);
  text-shadow:
    0.38rem 0.38rem 0 rgba(139, 47, 58, 0.64),
    0 1.4rem 3.2rem rgba(27, 58, 45, 0.18);
  transform: rotate(-1deg);
}

.lcl-cnt-ttlarea__ttl,
.hero01-ttlarea__ttl,
.ttl-03,
.ttl-04 {
  color: var(--hfg-green);
}

.lcl-cnt__item.lcl-cnt__item--plan {
  --themeColor: #0b8388 !important;
}

.lcl-cnt__item--plan .lcl-cnt__bg img {
  filter: blur(14px) brightness(0.64) saturate(0.9);
  transform: scale(1.06);
}

.lcl-cnt__item.lcl-cnt__item--facility {
  --themeColor: #8b2f3a !important;
}

.lcl-cnt-linkarea__link,
.lcl-linkarea-slider__link,
.lcl-gallery-slider__in {
  box-shadow: 0 18px 38px rgba(27, 58, 45, 0.12);
}

.lcl-gallery-slider__in::before {
  background-image: url("../../img/gallery/en.png?v=20260711-quality5") !important;
  background-size: contain !important;
  background-repeat: no-repeat !important;
}

.lcl-cnt-linkarea__txt {
  background: rgba(251, 247, 239, 0.95);
  color: var(--hfg-green);
}

.lcl-cnt-linkarea__small {
  color: var(--hfg-rose);
}

.lcl-about .lcl-about__en::after {
  content: none !important;
}

.sec01-ttlarea__en,
.title02__en,
.bnr__en,
.lcl-nav__en,
.lcl-box__en,
.lcl-guest-room-ttl__en,
.lcl-about-floor-sbs__en,
.lcl-sec__en,
.footer__en,
.footer__brandword {
  display: none !important;
}

.lcl-news-list__item:nth-child(n+2),
.lcl-main-list__item:nth-child(n+2) {
  display: none !important;
}

.state .state-box__txt .ff-jost {
  font-size: 3rem;
  letter-spacing: 0.08em;
}

.lcl-wrap__in > .state .state-box__ttl {
  color: #fff !important;
}

.state .state-link > .ico_svg,
.side .side__link > .ico_svg {
  display: none !important;
}

.side {
  translate: 0 !important;
}

.side .side__link {
  translate: 0 !important;
}

.state .state-link > p,
.side .side__txt {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
}

.state .state-link > p::before,
.side .side__txt::before {
  content: "";
  display: block;
  width: 5.8rem;
  aspect-ratio: 1;
  margin: 0 auto 1.2rem;
  background: url("../img/ico/ico_reserve.png") center / contain no-repeat;
}

.state .state-link--access > p::before,
.side .side__link--access .side__txt::before {
  background-image: url("../img/ico/ico_pin_white.png");
}

.side .side__txt::before {
  width: 4.2rem;
  margin-bottom: 0.6rem;
}

.side .side__link--reserve .side__txt {
  white-space: nowrap;
  letter-spacing: 0.04em;
}

.side .side__link--access .side__txt {
  letter-spacing: 0.08em;
}

.side .side__link--access .side__txt::before {
  margin-bottom: 1rem;
}

.pagetop a::after {
  content: none !important;
  display: none !important;
  background-image: none !important;
}

.mountain img {
  object-fit: cover;
}

img[src*="/theme/generated/"],
img[data-src*="/theme/generated/"],
img[data-splide-lazy*="/theme/generated/"] {
  object-fit: cover;
}

.loading__img img,
.lcl-area-main__ttl img,
.lcl-area-main__txt img,
.lcl-area-main__people img,
.lcl-area-main__arrow img,
.lcl-cnt-ttlarea__en img,
.sec01-ttlarea__en img,
.title02__en img {
  object-fit: contain;
}

.lcl-area-main__ttl img,
.lcl-area-main__txt img,
.lcl-area-main__people img,
.lcl-area-main__arrow img {
  border-radius: 1.2rem;
}

.lcl-area-card__img img,
.lcl-news-list__img img,
.lcl-main-list__img img,
.splide__slide img[src*="/theme/generated/"] {
  width: 100%;
  height: 100%;
}

.footer-linkarea .btn02[href="/theme/access/"],
.footer-linkarea .btn02[href="/theme/contact/"] {
  border-color: var(--hfg-gold);
}

#footer .footer-sbs-linkarea .btn02,
#footer .footer-btn .btn02,
#footer .btn02.c-gray {
  color: #f8f3e9 !important;
  border-color: rgba(248, 243, 233, 0.58) !important;
}

#footer .footer-sbs__logo img {
  filter: grayscale(1) brightness(0) invert(1);
  opacity: 0.92;
}

#footer .state-box,
#footer .state-box a,
#footer .state-box p,
#footer .state-box .state-box__txt,
#footer .state-box .state-box__txt .ff-jost,
#footer .state__btn .btn02 {
  color: #17352b !important;
  opacity: 1 !important;
}

#footer .state-box .svg-path,
#footer .state__btn .svg-path {
  fill: #17352b !important;
}

#footer,
#footer a,
#footer p,
#footer address {
  color: #f8f3e9;
}

#footer .footer-sbs-linkarea .btn02 .svg-path,
#footer .footer-btn .btn02 .svg-path,
#footer .btn02.c-gray .svg-path {
  fill: #f8f3e9 !important;
}

#footer .footer-sbs-linkarea .btn02:hover,
#footer .footer-btn .btn02:hover,
#footer .btn02.c-gray:hover {
  color: #ffffff !important;
  border-color: var(--hfg-gold) !important;
}

.hfg-footer-map {
  display: grid;
  place-items: center;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  padding: 0;
  border-radius: 0.6rem;
  background: #edf4ef;
}

.hfg-footer-map img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.hfg-footer-map iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

#footer .state-box .state-box__ttl {
  color: #fff !important;
}

/*
 * Japanese line rhythm
 * Keep short punctuation fragments such as 「る。」「ます。」 from being
 * stranded on a line while preserving each page's existing hierarchy.
 */
#main :where(h1, h2, h3, h4) {
  overflow-wrap: normal;
  text-wrap: balance;
  word-break: normal;
}

#main :where(p, li, dt, dd, figcaption) {
  overflow-wrap: normal;
  text-wrap: pretty;
  word-break: normal;
}

#main .hfg-no-orphan {
  display: inline !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: none !important;
  color: inherit !important;
  font: inherit !important;
  letter-spacing: inherit !important;
  line-height: inherit !important;
  text-transform: inherit !important;
  white-space: nowrap;
}

#main .hfg-no-orphan::before,
#main .hfg-no-orphan::after {
  display: none !important;
  content: none !important;
}

@media screen and (max-width: 767px) {
  #footer .footer-sbs__box > p {
    width: 100%;
    max-width: 100%;
    overflow-wrap: anywhere;
    text-align: center;
  }

  #footer .footer-sbs-linkarea {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1rem;
    width: min(28rem, 100%);
    margin-inline: auto;
  }

  #footer .footer-sbs-linkarea .btn02 {
    width: 100%;
    margin: 0;
    white-space: normal;
    text-align: center;
  }

  .header-logo .header-logo__in {
    width: 13.6rem;
  }

  .lcl-hero .hfg-hero-word__text {
    font-size: 4.4rem;
    -webkit-text-stroke-width: 0.1rem;
    text-shadow:
      0.2rem 0.2rem 0 rgba(184, 151, 92, 0.72),
      0 0.8rem 2rem rgba(27, 58, 45, 0.16);
    transform: rotate(-2deg) translateX(1rem);
  }

  .lcl-hero .hfg-hero-word--forest .hfg-hero-word__text {
    font-size: 4.8rem;
    transform: rotate(2deg) translateX(1rem);
  }

  .lcl-hero .hfg-hero-word--garden .hfg-hero-word__text {
    font-size: 5rem;
  }

  .lcl-cnt__item--plan .lcl-cnt-ttlarea__en::before,
  .lcl-cnt__item--facility .lcl-cnt-ttlarea__en::before {
    font-size: 5.6rem;
  }

  .lcl-cnt__item--plan .lcl-cnt__subin::before,
  .lcl-cnt__item--facility .lcl-cnt__subin::before {
    font-size: 2.4rem;
  }

  .state .state-box__txt .ff-jost {
    font-size: 2.4rem;
  }

  .state .state-link > p {
    flex-direction: row;
  }

  .state .state-link > p::before {
    width: 3.2rem;
    margin: 0 0.8rem 0 0;
  }
}
