/* Gerlach text typography. Keep the source icon font declarations intact.
   Explicit role weights override the original component declarations. */
:root,
.editor-styles-wrapper {
  --body-font-family: 'Figtree', sans-serif;
  --heading-font-family: 'Figtree', sans-serif;
  --text-font: 'Figtree', sans-serif;
  --bs-font-sans-serif: 'Figtree', sans-serif;
  --bs-body-font-family: 'Figtree', sans-serif;
  --body-font-weight: 300;
  --body-font-weight-bold: 500;
  --bs-body-font-weight: 300;
  --wt-fw-regular: 300;
  --h1-font-weight: 800;
  --h2-font-weight: 800;
  --h3-font-weight: 800;
  --h4-font-weight: 800;
  --h5-font-weight: 800;
  --h6-font-weight: 800;
  --sec-title-font-family: 'Figtree', sans-serif;
  --sec-title-subtitle-font-family: 'Figtree', sans-serif;
  --sec-title-font-weight: 800;
  --sec-title-subtitle-font-weight: 500;
}

body,
.editor-styles-wrapper,
input,
select,
textarea,
button,
.flatpickr-calendar,
.fancybox-container {
  font-family: var(--body-font-family);
  font-weight: 300;
}

/* Section labels above headings share the site's accent color. */
.sec-title .sub-title {
  display: block;
  margin-bottom: 16px;
  color: var(--apge-accent, var(--theme-color1));
  font-family: var(--body-font-family);
  font-size: clamp(18px, 1.3vw, 22px);
  font-weight: 500;
  line-height: 1.4;
}

/* Light: prose, form values and secondary navigation. */
p,
.text,
.banner-paragraph,
.suite-wrap .text2,
.user-links li,
.list-style-one li,
.page-breadcrumb li,
.mobile-menu .navigation li > a,
.main-menu .navigation li ul li > a,
.nice-select,
.nice-select .option,
.acrdn-list,
.form-control,
.form-select,
.checkout-field input,
input::placeholder,
textarea::placeholder {
  font-weight: 300 !important;
}

/* ExtraBold: headings, including titles rendered as component classes. */
:is(h1, h2, h3, h4, h5, h6),
.title,
.banner-title,
.common-heading,
.section-breakfast-title,
.accordion-box .acc-btn {
  font-weight: 800 !important;
}
:is(h1, h2, h3, h4, h5, h6, .title) :where(a, span, small) {
  font-weight: inherit !important;
}

/* Medium: emphasis and calls to action, including their nested text. */
b,
strong,
.fw-bold,
.fw-bolder,
.fw-semibold,
.btn-link,
.main-menu .megamenu .menu-title,
.nice-select .option.selected,
.main-header .header-btn,
.reservation-form .total-base-price .total,
.page-wrapper :is(button, input[type='submit'], input[type='button'], .button,
  .theme-btn, .theme-btn-main, .theme-btn-five, .theme-btn-nine, .btn-style,
  .btn-style-four, .btn-title),
.cookie-panel :is(button, .button),
.mobile-booking,
.editor-styles-wrapper :is(button, .button, .theme-btn, .theme-btn-main,
  .theme-btn-five, .theme-btn-nine, .btn-style, .btn-style-four, .btn-title) {
  font-weight: 500 !important;
}
:is(b, strong, .theme-btn, .theme-btn-main, .theme-btn-five, .theme-btn-nine,
  .btn-style, .btn-style-four, .button) :where(span:not([class*='fa-'])) {
  font-weight: inherit !important;
}
.page-wrapper .accordion-box button.acc-btn,
.editor-styles-wrapper .accordion-box button.acc-btn {
  font-weight: 800 !important;
}

/* Third-party form/gallery widgets use the same text family and weight roles. */
.fancybox-caption,
.fancybox-error,
.fancybox-close-small,
.fancybox-close-small::after,
.fancybox-slide--iframe .fancybox-close-small {
  font-family: var(--body-font-family);
}
.flatpickr-calendar :is(.flatpickr-current-month, .numInput, .flatpickr-am-pm),
.flatpickr-calendar .flatpickr-weekday {
  font-weight: 500;
}
.flatpickr-current-month span.cur-month,
.flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-time :is(input.flatpickr-hour, .flatpickr-time-separator, .flatpickr-am-pm),
.fancybox-share__button,
.fancybox-slide--iframe .fancybox-close-small {
  font-weight: 500;
}
.flatpickr-day,
.flatpickr-time :is(input.flatpickr-minute, input.flatpickr-second) {
  font-weight: 300;
}

/* Keep the wider ExtraBold background lettering on the source's single line. */
.common-heading {
  font-size: clamp(80px, 8vw, 180px);
  white-space: nowrap;
}

/* Amenity names are labels, not section headings. */
.room-facility-list .list-one .title {
  color: #000;
  font-weight: 500 !important;
}

/* Semantic heading levels are independent of the original visual sizes. */
.apge-heading-h3 { font-size: var(--h3-font-size); line-height: var(--line-height-heading); }
.apge-heading-h4 { font-size: var(--h4-font-size); line-height: var(--line-height-heading-small); letter-spacing: .15px; }
.apge-heading-h5 { font-size: var(--h5-font-size); line-height: var(--line-height-heading-small); }
.apge-heading-h6 { font-size: var(--h6-font-size); line-height: var(--line-height-heading-small); }
:is(.apge-heading-h3,.apge-heading-h4,.apge-heading-h5,.apge-heading-h6) {
  font-family: var(--heading-font-family);
  font-weight: 800;
}
.checkout-right .checkout-label { font-family: var(--body-font-family); font-size: 15px; font-weight: 500; color: #fff; line-height: var(--line-height-heading-small); margin-bottom: -2px; }
.checkout-right .checkout-label span { color: rgba(var(--theme-color-white-rgb),.6); }
.checkout-right .checkout-label .month { color: inherit; }
.suite-price .subtitle { color: var(--headings-color); line-height: var(--line-height-heading-small); }
