/*
 * Giggi Hytten Core frontend components.
 * Warm alpine direction with calm surfaces and restrained dark accents.
 */

.gh-core {
  --gh-core-charcoal: #1f2623;
  --gh-core-deep: #223f35;
  --gh-core-fir: #2f4a3f;
  --gh-core-bg: #f7f3ec;
  --gh-core-surface: #fffaf2;
  --gh-core-accent: #b88a4a;
  --gh-core-light-green: #cfe3d5;
  --gh-core-text: #171717;
  --gh-core-muted: #625d55;
  --gh-core-line: #d8d3c8;
  --gh-core-mist: #e7dfd2;
  --gh-core-radius: 8px;
  --gh-core-shadow: 0 24px 64px rgba(23, 23, 23, 0.14);
  color: var(--gh-core-text);
  background: var(--gh-core-bg);
  line-height: 1.62;
}

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

.gh-core :where(h1, h2, h3, p) {
  margin-top: 0;
}

.gh-core :where(p:last-child) {
  margin-bottom: 0;
}

.gh-core__inner,
.gh-core-hero__inner {
  width: min(90%, 1180px);
  margin-inline: auto;
}

.gh-core-hero {
  display: grid;
  min-height: 700px;
  align-items: end;
  background-image: linear-gradient(90deg, rgba(31, 38, 35, 0.86), rgba(31, 38, 35, 0.48) 52%, rgba(31, 38, 35, 0.14)), var(--gh-core-hero-image);
  background-position: center;
  background-size: cover;
  color: #ffffff;
}

.gh-core-hero--compact {
  min-height: 560px;
}

.gh-core-hero__inner {
  padding: 112px 0 82px;
}

.gh-core__top-section {
  padding-top: 110px;
}

.gh-core h6,
.gh-core__eyebrow,
.gh-core-card__meta {
  margin-bottom: 0.72rem;
  color: var(--gh-core-accent);
  font-size: 0.78rem;
  font-weight: 850;
  letter-spacing: 0;
  line-height: 1.25;
  text-transform: uppercase;
}

.gh-core.gh-divi-booking-section h6,
.gh-core.gh-divi-hero h6,
.gh-core__section--deep .gh-core__eyebrow,
.gh-core__booking .gh-core__eyebrow,
.gh-core-hero .gh-core__eyebrow {
  color: var(--gh-core-light-green);
}

.gh-core h1 {
  max-width: 870px;
  margin-bottom: 1.15rem;
  color: inherit;
  font-size: 4.25rem;
  font-weight: 850;
  letter-spacing: 0;
  line-height: 1;
}

.gh-core h2 {
  max-width: 780px;
  margin-bottom: 1rem;
  color: var(--gh-core-charcoal);
  font-size: 2.55rem;
  font-weight: 820;
  letter-spacing: 0;
  line-height: 1.08;
}

.gh-core h3 {
  margin-bottom: 0.6rem;
  color: var(--gh-core-charcoal);
  font-size: 1.35rem;
  font-weight: 820;
  letter-spacing: 0;
  line-height: 1.18;
}

.gh-core-hero p:not(.gh-core__eyebrow) {
  max-width: 650px;
  margin-bottom: 2rem;
  color: rgba(255, 255, 255, 0.88);
  font-size: 1.2rem;
}

.gh-core__heading {
  max-width: 780px;
  margin-bottom: 2rem;
}

.gh-core__heading > p:not(.gh-core__eyebrow) {
  color: var(--gh-core-muted);
  font-size: 1.05rem;
}

.gh-core-icon {
  display: block;
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
}

.gh-core-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem;
}

.gh-core-button,
.gh-core-button:visited {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  padding: 0.82rem 1.2rem;
  border: 1px solid var(--gh-core-accent);
  border-radius: 999px;
  background: var(--gh-core-accent);
  color: #ffffff;
  font-weight: 850;
  line-height: 1.1;
  text-align: center;
  text-decoration: none;
  transition: transform 160ms ease, background-color 160ms ease, border-color 160ms ease;
}

.gh-core-button:hover,
.gh-core-button:focus-visible {
  border-color: var(--gh-core-charcoal);
  background: var(--gh-core-charcoal);
  color: #ffffff;
  text-decoration: none;
  transform: translateY(-1px);
}

.gh-core-button--ghost,
.gh-core-button--ghost:visited {
  border-color: rgba(255, 255, 255, 0.46);
  background: transparent;
  color: #ffffff;
}

.gh-core-button--ghost:hover,
.gh-core-button--ghost:focus-visible {
  border-color: #ffffff;
  background: rgba(255, 255, 255, 0.12);
}

.gh-core .et_pb_button_module_wrapper:has(> .gh-divi-button) {
  display: inline-block;
  margin: 0 0.75rem 0.75rem 0;
}

body #page-container .gh-core .gh-divi-button .et_pb_button,
body #page-container .gh-core .gh-divi-button .et_pb_button:hover,
body #page-container .gh-core .et_pb_button.gh-divi-button,
body #page-container .gh-core .et_pb_button.gh-divi-button:hover {
  display: inline-flex !important;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  padding: 0.82rem 1.2rem !important;
  border-width: 1px !important;
  border-style: solid !important;
  border-radius: 999px !important;
  font-size: 1rem;
  font-weight: 850;
  line-height: 1.1 !important;
  text-align: center;
}

body #page-container .gh-core .gh-divi-button .et_pb_button::after,
body #page-container .gh-core .et_pb_button.gh-divi-button::after {
  display: none !important;
}

body #page-container .gh-core .gh-divi-button-primary .et_pb_button,
body #page-container .gh-core .et_pb_button.gh-divi-button-primary {
  border-color: var(--gh-core-accent) !important;
  background: var(--gh-core-accent) !important;
  color: #ffffff !important;
}

body #page-container .gh-core .gh-divi-button-primary .et_pb_button:hover,
body #page-container .gh-core .gh-divi-button-primary .et_pb_button:focus-visible,
body #page-container .gh-core .et_pb_button.gh-divi-button-primary:hover,
body #page-container .gh-core .et_pb_button.gh-divi-button-primary:focus-visible {
  border-color: var(--gh-core-charcoal) !important;
  background: var(--gh-core-charcoal) !important;
  color: #ffffff !important;
}

body #page-container .gh-core .gh-divi-button-secondary .et_pb_button,
body #page-container .gh-core .et_pb_button.gh-divi-button-secondary {
  border-color: var(--gh-core-charcoal) !important;
  background: transparent !important;
  color: var(--gh-core-charcoal) !important;
}

body #page-container .gh-core .gh-divi-button-secondary .et_pb_button:hover,
body #page-container .gh-core .gh-divi-button-secondary .et_pb_button:focus-visible,
body #page-container .gh-core .et_pb_button.gh-divi-button-secondary:hover,
body #page-container .gh-core .et_pb_button.gh-divi-button-secondary:focus-visible {
  background: var(--gh-core-charcoal) !important;
  color: #ffffff !important;
}

body #page-container .gh-core.gh-divi-hero .gh-divi-button-ghost .et_pb_button,
body #page-container .gh-core.gh-divi-hero .gh-divi-button-ghost .et_pb_button:hover,
body #page-container .gh-core.gh-divi-hero .et_pb_button.gh-divi-button-ghost,
body #page-container .gh-core.gh-divi-hero .et_pb_button.gh-divi-button-ghost:hover {
  border-color: rgba(255, 255, 255, 0.46) !important;
  background: transparent !important;
  color: #ffffff !important;
}

body #page-container .gh-core.gh-divi-hero .gh-divi-button-ghost .et_pb_button:hover,
body #page-container .gh-core.gh-divi-hero .gh-divi-button-ghost .et_pb_button:focus-visible,
body #page-container .gh-core.gh-divi-hero .et_pb_button.gh-divi-button-ghost:hover,
body #page-container .gh-core.gh-divi-hero .et_pb_button.gh-divi-button-ghost:focus-visible {
  border-color: #ffffff !important;
  background: rgba(255, 255, 255, 0.12) !important;
}

.gh-core.gh-divi-section {
  background: var(--gh-core-bg);
}

.gh-core.gh-divi-hero {
  position: relative;
  display: grid;
  min-height: 680px;
  align-items: end;
  overflow: hidden;
  background-position: center;
  background-size: cover;
  color: #ffffff;
}

.gh-core.gh-divi-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background: linear-gradient(90deg, rgba(31, 38, 35, 0.84), rgba(31, 38, 35, 0.48) 54%, rgba(31, 38, 35, 0.12));
  pointer-events: none;
}

.gh-core.gh-divi-hero > .et_pb_row {
  position: relative;
  z-index: 1;
  width: min(90%, 1180px);
  max-width: none;
  padding: 112px 0 82px !important;
}

.gh-core.gh-divi-hero--compact {
  min-height: 520px;
}

.gh-core.gh-divi-hero--compact > .et_pb_row {
  padding-top: 96px !important;
}

.gh-core .gh-divi-split-copy > .et_pb_text:first-child p,
.gh-core .gh-divi-heading-row .et_pb_text_inner > p,
.gh-core.gh-divi-text-section.gh-core__top-section .et_pb_text_inner > p {
  max-width: 680px;
  color: var(--gh-core-muted);
  font-size: 1.08rem;
}

.gh-core.gh-divi-hero .gh-divi-hero-content > .et_pb_text:first-child p {
  max-width: 680px;
  color: rgba(255, 255, 255, 0.88);
  font-size: 1.08rem;
}

.gh-divi-hero .gh-core-button {
  margin-right: 0.75rem;
  margin-bottom: 0.75rem;
}

.gh-core.gh-divi-text-section {
  padding: 76px 0;
}

.gh-core.gh-divi-text-section > .et_pb_row,
.gh-core.gh-divi-shortcode-section > .et_pb_row {
  width: min(90%, 1180px);
  max-width: none;
  padding: 0 !important;
}

.gh-core.gh-divi-text-section .et_pb_column,
.gh-core.gh-divi-text-section .et_pb_module,
.gh-core.gh-divi-text-section .et_pb_text_inner,
.gh-core.gh-divi-shortcode-section .et_pb_column,
.gh-core.gh-divi-shortcode-section .et_pb_module,
.gh-core.gh-divi-shortcode-section .et_pb_text_inner {
  width: 100%;
  max-width: none;
  min-width: 0;
}

.gh-core.gh-divi-shortcode-section {
  padding: 76px 0;
}

.gh-core.gh-core__section--surface {
  background: var(--gh-core-surface);
}

.gh-core.gh-core__section--tint {
  background: #eee8de;
}

.gh-core.gh-core__section--compact {
  padding-block: 62px;
}

.gh-core.gh-core__section--season-winter {
  background: #eef2f0;
}

.gh-core.gh-core__section--season-summer {
  background: #f2ecdf;
}

.gh-core.gh-core-fact-band-section {
  padding: 0;
}

.gh-core.gh-core-fact-band-section {
  border-top: 1px solid var(--gh-core-line);
  border-bottom: 1px solid var(--gh-core-line);
  background: var(--gh-core-mist);
}

.gh-core.gh-core-fact-band-section .et_pb_module {
  margin-bottom: 0;
}

.gh-core.gh-core-fact-band-section > .et_pb_row {
  width: min(90%, 1180px) !important;
  max-width: 1180px !important;
  padding: 0 !important;
}

.gh-core.gh-core-fact-band-section .et_pb_column,
.gh-core.gh-core-fact-band-section .et_pb_module,
.gh-core.gh-core-fact-band-section .et_pb_text_inner {
  width: 100%;
  max-width: none;
}

.gh-core .gh-divi-heading-row {
  margin-bottom: 2rem;
}

.gh-core .gh-divi-heading-row .et_pb_text_inner,
.gh-core .gh-divi-split-copy > .et_pb_text:first-child .et_pb_text_inner,
.gh-core.gh-divi-text-section.gh-core__top-section .et_pb_text_inner {
  max-width: 780px;
  margin-bottom: 0;
}

.gh-core .gh-divi-shortcode-row .et_pb_module,
.gh-core .gh-divi-shortcode-row .et_pb_text_inner {
  margin-bottom: 0;
}

.gh-core .gh-divi-section-action {
  margin-top: 1.75rem;
}

.gh-core .gh-divi-section-action .et_pb_button_module_wrapper {
  margin-bottom: 0;
}

.gh-core .gh-divi-split-row,
.gh-core .gh-divi-booking-row {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 4.5rem;
  align-items: start;
}

.gh-core .gh-divi-split-row > .et_pb_column,
.gh-core .gh-divi-booking-row > .et_pb_column {
  width: 100% !important;
  margin: 0 !important;
}

.gh-core .gh-divi-fact-modules {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}

.gh-core .gh-divi-copy-modules {
  display: grid;
  gap: 1rem;
}

.gh-core .gh-divi-media-pair > .et_pb_module,
.gh-core .gh-divi-media-pair .et_pb_text_inner {
  margin-bottom: 0 !important;
}

.gh-core .gh-divi-fact-modules > .et_pb_module,
.gh-core .gh-divi-copy-modules > .et_pb_module {
  margin-bottom: 0 !important;
}

.gh-core .gh-divi-fact-modules > .et_pb_text .et_pb_text_inner {
  min-width: 0;
  height: 100%;
  padding: 1rem;
  border: 1px solid var(--gh-core-line);
  border-radius: var(--gh-core-radius);
  background: var(--gh-core-surface);
}

.gh-core .gh-divi-fact-modules > .et_pb_text h3 {
  margin-bottom: 0.2rem;
  font-size: 1rem;
}

.gh-core .gh-divi-fact-modules > .et_pb_text p {
  color: var(--gh-core-muted);
}

.gh-divi-split {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 4.5rem;
  align-items: start;
}

.gh-divi-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.gh-divi-facts li {
  min-width: 0;
  padding: 1rem;
  border: 1px solid var(--gh-core-line);
  border-radius: var(--gh-core-radius);
  background: var(--gh-core-surface);
}

.gh-divi-facts strong {
  display: block;
  margin-bottom: 0.2rem;
  color: var(--gh-core-charcoal);
}

.gh-divi-facts span {
  display: block;
  color: var(--gh-core-muted);
}

.gh-core__section {
  padding: 76px 0;
}

.gh-core__section--warm {
  background: var(--gh-core-bg);
}

.gh-core__benefits,
.gh-core__facilities,
.gh-core__experiences {
  background: var(--gh-core-bg);
}

.gh-core__section--deep,
.gh-core__booking {
  background: var(--gh-core-charcoal);
  color: var(--gh-core-light-green);
}

.gh-core__section--deep h2,
.gh-core__section--deep h3,
.gh-core__booking h2 {
  color: #ffffff;
}

.gh-core__section--deep .gh-core__heading > p:not(.gh-core__eyebrow),
.gh-core__booking p {
  color: var(--gh-core-light-green);
}

.gh-core__split,
.gh-core__booking-inner {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 4.5rem;
  align-items: start;
}

.gh-core-fact-band {
  border-top: 1px solid var(--gh-core-line);
  border-bottom: 1px solid var(--gh-core-line);
  background: var(--gh-core-mist);
}

.gh-core-fact-band__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.gh-core-fact {
  min-width: 0;
  padding: 1.2rem 1rem;
  border-left: 1px solid rgba(31, 38, 35, 0.11);
}

.gh-core-fact:last-child {
  border-right: 1px solid rgba(31, 38, 35, 0.11);
}

.gh-core-fact__icon {
  display: inline-flex;
  margin-bottom: 0.65rem;
  color: var(--gh-core-accent);
}

.gh-core-fact strong {
  display: block;
  margin-bottom: 0.2rem;
  color: var(--gh-core-charcoal);
  font-size: 1.55rem;
  font-weight: 850;
  letter-spacing: 0;
  line-height: 1;
}

.gh-core-fact span:last-child {
  display: block;
  color: var(--gh-core-muted);
  font-size: 0.92rem;
  line-height: 1.35;
}

.gh-core-home-intro__grid {
  display: grid;
  grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
  gap: 4.5rem;
  align-items: center;
}

.gh-core-home-intro p:not(.gh-core__eyebrow) {
  color: var(--gh-core-muted);
  font-size: 1.05rem;
}

.gh-core-image-pair {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  align-items: end;
}

.gh-core-image-pair__image {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 5;
  border-radius: var(--gh-core-radius);
  box-shadow: var(--gh-core-shadow);
  object-fit: cover;
}

.gh-core-image-pair__image:nth-child(2) {
  transform: translateY(38px);
}

.gh-core__card-grid {
  display: grid;
  gap: 1rem;
}

.gh-core__card-grid--three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.gh-core__card-grid--two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.gh-core-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--gh-core-line);
  border-radius: var(--gh-core-radius);
  background: var(--gh-core-surface);
}

.gh-core-card__image {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 11;
  object-fit: cover;
}

.gh-core-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 1.45rem;
}

.gh-core-apartment-card--full {
  border-color: rgba(47, 74, 63, 0.42);
  background: #f2eee4;
  box-shadow: inset 0 4px 0 var(--gh-core-fir);
}

.gh-core-card p,
.gh-core-richtext p {
  color: var(--gh-core-muted);
}

.gh-core-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.7rem;
  margin: 1.1rem 0 0;
}

.gh-core-facts div {
  min-width: 0;
  padding-top: 0.7rem;
  border-top: 1px solid var(--gh-core-line);
}

.gh-core-facts dt {
  color: var(--gh-core-muted);
  font-size: 0.78rem;
  font-weight: 800;
  text-transform: uppercase;
}

.gh-core-facts dd {
  margin: 0.1rem 0 0;
  color: var(--gh-core-charcoal);
  font-weight: 850;
}

#page-container .gh-core .gh-core-chip-list {
  display: flex;
  flex-wrap: wrap;
  grid-template-columns: none;
  gap: 0.45rem;
  margin: 1.2rem 0 0;
  padding: 0;
  list-style: none;
}

#page-container .gh-core .gh-core-chip-list li {
  display: inline-flex;
  width: auto;
  min-width: 0;
  align-items: center;
  gap: 0.35rem;
  padding: 0.38rem 0.62rem;
  border: 0;
  border-radius: 999px;
  background: rgba(47, 74, 63, 0.1);
  color: var(--gh-core-charcoal);
  font-size: 0.84rem;
  font-weight: 750;
}

#page-container .gh-core .gh-core-chip-list li span {
  display: inline-flex;
  color: var(--gh-core-fir);
}

#page-container .gh-core .gh-core-chip-list .gh-core-icon {
  width: 15px;
  height: 15px;
  flex-basis: 15px;
}

.gh-core-card__link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  align-self: flex-start;
  margin-top: auto;
  padding-top: 1.15rem;
  color: var(--gh-core-fir);
  font-weight: 800;
  text-decoration: none;
}

.gh-core-card__link:hover,
.gh-core-card__link:focus-visible {
  color: var(--gh-core-accent);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.gh-core__benefit-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}

.gh-core-benefit {
  min-width: 0;
  padding: 1.35rem;
  border: 1px solid var(--gh-core-line);
  border-radius: var(--gh-core-radius);
  background: var(--gh-core-surface);
}

#page-container .gh-core .gh-core-benefit h3 {
  font-size: 2rem;
}

.gh-core-benefit__icon,
.gh-core-facility-list__icon {
  display: grid;
  width: 42px;
  height: 42px;
  margin-bottom: 1rem;
  place-items: center;
  border-radius: 50%;
  background: rgba(184, 138, 74, 0.14);
  color: var(--gh-core-accent);
}

.gh-core-benefit p:first-child {
  margin-bottom: 0.7rem;
  color: var(--gh-core-accent);
  font-weight: 850;
}

.gh-core-benefit div,
.gh-core-benefit div p {
  color: var(--gh-core-muted);
}

.gh-core-facility-list,
.gh-core-info-list {
  display: grid;
  gap: 0.75rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

#page-container .gh-core .gh-core-facility-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.gh-core-facility-groups {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.gh-core-facility-group {
  min-width: 0;
  padding: 1.25rem;
  border: 1px solid var(--gh-core-line);
  border-radius: var(--gh-core-radius);
  background: var(--gh-core-surface);
}

.gh-core-facility-group > h3 {
  padding-bottom: 0.8rem;
  border-bottom: 1px solid var(--gh-core-line);
}

#page-container .gh-core .gh-core-facility-group .gh-core-facility-list {
  grid-template-columns: 1fr;
}

.gh-core-facility-list li,
.gh-core-info-list div,
.gh-core-contact-box {
  min-width: 0;
  padding: 1rem;
  border: 1px solid var(--gh-core-line);
  border-radius: var(--gh-core-radius);
  background: var(--gh-core-surface);
}

#page-container .gh-core .gh-core-facility-list li {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.85rem;
  align-items: center;
  border: 1px solid var(--gh-core-line);
}

#page-container .gh-core .gh-core-facility-group .gh-core-facility-list li {
  padding: 0.8rem 0;
  border: 0;
  border-bottom: 1px solid var(--gh-core-line);
  border-radius: 0;
  background: transparent;
}

#page-container .gh-core .gh-core-facility-group .gh-core-facility-list li:last-child {
  border-bottom: 0;
}

.gh-core-facility-list__icon {
  margin-bottom: 0;
}

.gh-core-facility-list strong,
.gh-core-info-list strong {
  display: block;
  margin-bottom: 0.22rem;
  color: var(--gh-core-charcoal);
}

.gh-core-facility-list span,
.gh-core-info-list span {
  display: block;
  color: var(--gh-core-muted);
}

/* Keep the SVG centered inside the circular icon wrapper. The general
 * facility-list span rule above is intentionally overridden here. */
#page-container .gh-core .gh-core-facility-list__icon {
  display: flex;
  align-items: center;
  justify-content: center;
}

.gh-core-comparison {
  max-width: 100%;
  overflow-x: auto;
  border: 1px solid var(--gh-core-line);
  border-radius: var(--gh-core-radius);
  background: var(--gh-core-surface);
}

.gh-core-comparison:focus-visible {
  outline: 3px solid var(--gh-core-accent);
  outline-offset: 3px;
}

.gh-core-comparison table {
  width: 100%;
  min-width: 760px;
  border-collapse: collapse;
  line-height: 1.4;
}

.gh-core-comparison :where(th, td) {
  padding: 1rem;
  border-right: 1px solid var(--gh-core-line);
  border-bottom: 1px solid var(--gh-core-line);
  text-align: left;
  vertical-align: top;
}

.gh-core-comparison :where(th, td):last-child {
  border-right: 0;
}

.gh-core-comparison tbody tr:last-child :where(th, td) {
  border-bottom: 0;
}

.gh-core-comparison thead th {
  background: var(--gh-core-charcoal);
  color: #ffffff;
  font-size: 1rem;
}

.gh-core-comparison tbody th {
  width: 16%;
  color: var(--gh-core-charcoal);
  font-size: 0.82rem;
  text-transform: uppercase;
}

.gh-core-comparison td {
  color: var(--gh-core-muted);
}

.gh-core-gallery-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-rows: 220px;
  gap: 1rem;
}

.gh-core-gallery-grid--floorplans {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-auto-rows: minmax(420px, 58vh);
}

.gh-core-gallery-grid--floorplans .gh-core-gallery-item:first-child {
  grid-column: auto;
}

.gh-core-gallery-grid--floorplans .gh-core-gallery-grid__image {
  background: #ffffff;
  object-fit: contain;
}

.gh-core__gallery--compact {
  padding-top: 32px;
}

.gh-core-gallery-item {
  min-width: 0;
  min-height: 0;
  margin: 0;
}

.gh-core-gallery-item__link {
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
  border-radius: var(--gh-core-radius);
  cursor: zoom-in;
}

.gh-core-gallery-item__link:focus-visible {
  outline: 3px solid var(--gh-core-accent);
  outline-offset: 4px;
}

.gh-core-gallery-grid__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 220ms ease;
}

.gh-core-gallery-item__link:hover .gh-core-gallery-grid__image,
.gh-core-gallery-item__link:focus-visible .gh-core-gallery-grid__image {
  transform: scale(1.035);
}

.gh-core-gallery-item:first-child {
  grid-column: span 2;
}

.gh-core-lightbox-open {
  overflow: hidden;
}

.gh-core-lightbox {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: grid;
  grid-template-columns: minmax(48px, 1fr) minmax(0, 1180px) minmax(48px, 1fr);
  align-items: center;
  gap: 1rem;
  padding: clamp(1rem, 2vw, 2rem);
  background: rgba(18, 22, 20, 0.92);
  color: #ffffff;
}

.gh-core-lightbox[hidden] {
  display: none;
}

.gh-core-lightbox__figure {
  display: grid;
  max-height: calc(100vh - 5rem);
  margin: 0;
  justify-items: center;
}

.gh-core-lightbox__image {
  display: block;
  max-width: 100%;
  max-height: calc(100vh - 9.5rem);
  border-radius: var(--gh-core-radius);
  box-shadow: 0 28px 80px rgba(0, 0, 0, 0.44);
  object-fit: contain;
}

.gh-core-lightbox__caption {
  width: min(100%, 980px);
  margin-top: 1rem;
  color: rgba(255, 255, 255, 0.92);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.35;
  text-align: center;
}

.gh-core-lightbox__counter {
  margin: 0.35rem 0 0;
  color: rgba(255, 255, 255, 0.66);
  font-size: 0.88rem;
  font-weight: 800;
}

.gh-core-lightbox__close,
.gh-core-lightbox__nav {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff;
  cursor: pointer;
  font-size: 2rem;
  line-height: 1;
  transition: background-color 160ms ease, transform 160ms ease;
}

.gh-core-lightbox__close {
  position: absolute;
  top: clamp(1rem, 2vw, 1.8rem);
  right: clamp(1rem, 2vw, 1.8rem);
}

.gh-core-lightbox__nav {
  justify-self: center;
}

.gh-core-lightbox__close:hover,
.gh-core-lightbox__close:focus-visible,
.gh-core-lightbox__nav:hover,
.gh-core-lightbox__nav:focus-visible {
  background: rgba(184, 138, 74, 0.92);
  transform: translateY(-1px);
}

.gh-core__booking {
  padding: 72px 0;
}

.gh-core__booking-inner {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
}

.gh-core.gh-divi-booking-section {
  padding: 72px 0;
  background: var(--gh-core-charcoal);
  color: var(--gh-core-light-green);
}

.gh-core.gh-divi-booking-section h2 {
  color: #ffffff;
}

.gh-core.gh-divi-booking-section p:not(.gh-core__eyebrow) {
  color: var(--gh-core-light-green);
}

.gh-core .gh-divi-booking-row {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
}

.gh-core .gh-divi-booking-action {
  display: flex;
  justify-content: flex-end;
}

.gh-core .gh-divi-booking-action .et_pb_button_module_wrapper:has(> .gh-divi-button) {
  margin: 0;
}

.gh-core-contact-box {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(207, 227, 213, 0.22);
  color: var(--gh-core-light-green);
}

.gh-core-contact-box a:not(.gh-core-button) {
  color: #ffffff;
}

@media (max-width: 980px) {
  .gh-core h1 {
    font-size: 3.2rem;
  }

  .gh-core h2 {
    font-size: 2.1rem;
  }

  .gh-core__split,
  .gh-core__booking-inner,
  .gh-core-home-intro__grid,
  .gh-divi-split,
  .gh-core .gh-divi-split-row,
  .gh-core .gh-divi-booking-row {
    grid-template-columns: 1fr;
    gap: 2.2rem;
  }

  .gh-core .gh-divi-booking-action {
    justify-content: flex-start;
  }

  .gh-core-fact-band__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gh-core__card-grid--three,
  .gh-core__benefit-grid,
  .gh-core-gallery-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gh-core__card-grid--three .gh-core-apartment-card--full {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  }

  .gh-core__card-grid--three .gh-core-apartment-card--full .gh-core-card__image {
    height: 100%;
    aspect-ratio: auto;
  }

  .gh-core-gallery-grid--floorplans {
    grid-auto-rows: 360px;
  }
}

@media (max-width: 640px) {
  .gh-core__inner,
  .gh-core-hero__inner {
    width: min(92%, calc(100% - 28px));
  }

  .gh-core-hero,
  .gh-core-hero--compact {
    min-height: 560px;
    background-image: linear-gradient(180deg, rgba(31, 38, 35, 0.34), rgba(31, 38, 35, 0.88)), var(--gh-core-hero-image);
  }

  .gh-core-hero__inner {
    padding: 82px 0 54px;
  }

  .gh-core h1 {
    max-width: 100%;
    overflow-wrap: break-word;
    font-size: 1.92rem;
    line-height: 1.05;
  }

  .gh-core h2 {
    font-size: 1.76rem;
  }

  .gh-core-hero p:not(.gh-core__eyebrow) {
    font-size: 1.05rem;
  }

  .gh-core-actions {
    align-items: stretch;
    max-width: 100%;
  }

  .gh-core-button {
    max-width: 100%;
    width: 100%;
  }

  .gh-core__section {
    padding: 56px 0;
  }

  .gh-core.gh-divi-hero,
  .gh-core.gh-divi-hero--compact {
    min-height: 540px;
  }

  .gh-core.gh-divi-hero::before {
    background: linear-gradient(180deg, rgba(31, 38, 35, 0.34), rgba(31, 38, 35, 0.88));
  }

  .gh-core.gh-divi-hero > .et_pb_row {
    width: calc(100vw - 48px);
    max-width: calc(100vw - 48px);
    padding: 82px 0 54px !important;
  }

  body #page-container #main-content .gh-core.gh-divi-hero.et_pb_section > .et_pb_row {
    width: calc(100vw - 48px) !important;
    max-width: calc(100vw - 48px) !important;
    min-width: 0 !important;
    margin-right: auto !important;
    margin-left: auto !important;
  }

  .gh-core.gh-divi-hero .et_pb_column,
  .gh-core.gh-divi-hero .et_pb_module,
  .gh-core.gh-divi-hero .et_pb_text_inner {
    max-width: 100%;
  }

  body #page-container #main-content .gh-core.gh-divi-hero .et_pb_text_inner > h1,
  body #page-container #main-content .gh-core.gh-divi-hero .et_pb_text_inner > p {
    width: min(100%, 280px) !important;
    max-width: 280px !important;
    min-width: 0 !important;
    overflow-wrap: break-word;
  }

  body #page-container #main-content .gh-core.gh-divi-hero .et_pb_text_inner > h1 {
    font-size: 1.72rem !important;
    line-height: 1.07 !important;
  }

  .gh-core.gh-divi-hero .gh-divi-hero-content > .et_pb_text:first-child p {
    font-size: 0.92rem !important;
    line-height: 1.38 !important;
  }

  body #page-container #main-content .gh-core.gh-divi-hero .gh-core-actions {
    width: min(100%, 280px) !important;
    max-width: 280px !important;
  }

  body #page-container #main-content .gh-core.gh-divi-hero .gh-divi-hero-content > .et_pb_button_module_wrapper {
    display: block;
    width: min(100%, 280px) !important;
    max-width: 280px !important;
    margin-right: 0 !important;
  }

  body #page-container #main-content .gh-core.gh-divi-hero .gh-divi-hero-content > .et_pb_button_module_wrapper .et_pb_button,
  body #page-container #main-content .gh-core.gh-divi-hero .gh-divi-hero-content > .et_pb_button_module_wrapper .gh-divi-button {
    width: 100% !important;
  }

  body #page-container #main-content .gh-core.gh-divi-hero .gh-core-actions .gh-core-button {
    width: 100% !important;
    margin-right: 0 !important;
  }

  .gh-core.gh-divi-hero .gh-core-button {
    margin-right: 0;
  }

  @media (min-width: 430px) {
    body #page-container #main-content .gh-core.gh-divi-hero .et_pb_text_inner > h1,
    body #page-container #main-content .gh-core.gh-divi-hero .et_pb_text_inner > p,
    body #page-container #main-content .gh-core.gh-divi-hero .gh-core-actions {
      width: min(100%, 420px) !important;
      max-width: 420px !important;
    }
  }

  .gh-core.gh-divi-text-section,
  .gh-core.gh-divi-shortcode-section,
  .gh-core.gh-core__section--compact {
    padding: 56px 0;
  }

  body #page-container #main-content .gh-core.gh-divi-text-section > .et_pb_row,
  body #page-container #main-content .gh-core.gh-divi-shortcode-section > .et_pb_row,
  body #page-container #main-content .gh-core.gh-core-fact-band-section > .et_pb_row {
    width: calc(100vw - 48px) !important;
    max-width: calc(100vw - 48px) !important;
    min-width: 0 !important;
    margin-right: auto !important;
    margin-left: auto !important;
  }

  body #page-container #main-content .gh-core.gh-divi-text-section .et_pb_column,
  body #page-container #main-content .gh-core.gh-divi-text-section .et_pb_module,
  body #page-container #main-content .gh-core.gh-divi-text-section .et_pb_text_inner,
  body #page-container #main-content .gh-core.gh-divi-shortcode-section .et_pb_column,
  body #page-container #main-content .gh-core.gh-divi-shortcode-section .et_pb_module,
  body #page-container #main-content .gh-core.gh-divi-shortcode-section .et_pb_text_inner {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .gh-core h2,
  .gh-core h3,
  .gh-core p,
  .gh-core li,
  .gh-core-card,
  .gh-core-contact-box {
    overflow-wrap: anywhere;
  }

  .gh-divi-facts {
    grid-template-columns: 1fr;
  }

  .gh-core .gh-divi-fact-modules {
    grid-template-columns: 1fr;
  }

  .gh-core__top-section {
    padding-top: 78px;
  }

  .gh-core__card-grid--three,
  .gh-core__card-grid--two,
  .gh-core__benefit-grid,
  .gh-core-facility-list,
  .gh-core-gallery-grid,
  .gh-core-image-pair {
    grid-template-columns: 1fr;
  }

  #page-container .gh-core .gh-core-facility-list {
    grid-template-columns: 1fr;
  }

  .gh-core-image-pair {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
  }

  .gh-core__card-grid--three .gh-core-apartment-card--full {
    display: flex;
    grid-column: auto;
  }

  .gh-core__card-grid--three .gh-core-apartment-card--full .gh-core-card__image {
    height: auto;
    aspect-ratio: 16 / 11;
  }

  .gh-core-facility-groups {
    grid-template-columns: 1fr;
  }

  .gh-core-fact-band__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gh-core-fact {
    border-right: 1px solid rgba(31, 38, 35, 0.11);
  }

  .gh-core-image-pair__image:nth-child(2) {
    transform: none;
  }

  .gh-core-gallery-grid {
    grid-auto-rows: 230px;
  }

  .gh-core-gallery-grid--floorplans {
    grid-auto-rows: minmax(340px, 60vh);
  }

  .gh-core-gallery-item:first-child {
    grid-column: auto;
  }

  .gh-core-lightbox {
    grid-template-columns: 1fr;
    gap: 0.75rem;
    padding: 4.5rem 0.85rem 1rem;
  }

  .gh-core-lightbox__figure {
    grid-row: 1;
  }

  .gh-core-lightbox__image {
    max-height: calc(100vh - 12rem);
  }

  .gh-core-lightbox__nav {
    position: fixed;
    top: 50%;
    transform: translateY(-50%);
  }

  .gh-core-lightbox__nav--prev {
    left: 0.75rem;
  }

  .gh-core-lightbox__nav--next {
    right: 0.75rem;
  }
}

@media (max-width: 640px) {
  body #page-container #main-content .et_pb_section.gh-core.gh-divi-hero .gh-divi-hero-content > .et_pb_text:first-child .et_pb_text_inner {
    width: 280px !important;
    max-width: 280px !important;
    min-width: 0 !important;
  }

  body #page-container #main-content .et_pb_section.gh-core.gh-divi-hero .gh-divi-hero-content > .et_pb_text:first-child .et_pb_text_inner > h1,
  body #page-container #main-content .et_pb_section.gh-core.gh-divi-hero .gh-divi-hero-content > .et_pb_text:first-child .et_pb_text_inner > p {
    width: 280px !important;
    max-width: 280px !important;
    min-width: 0 !important;
    white-space: normal !important;
  }

  body #page-container #main-content .et_pb_section.gh-core.gh-divi-hero .gh-divi-hero-content > .et_pb_text:first-child .et_pb_text_inner > h1 {
    font-size: 1.72rem !important;
    line-height: 1.07 !important;
  }
}
