/* Design-system tokens and sitewide component rules. /all-listings/ is the
   visual reference; resorts.css, homepage.css and single-resort.css use these
   tokens directly. Loaded on every front-end request after the plugin CSS. */
:root {
  --fstr-forest-900: #103f3c;
  --fstr-forest-hover: #245650; /* hover fill used by the /all-listings/ primary CTA */
  --fstr-gold-500: #c7a45c;
  --fstr-gold-300: #d7bc7d;
  --fstr-gold-200: #ead7a4;
  --fstr-cream-100: #fff9e9;
  --fstr-cream-200: #f4e5bc;
  --fstr-hero-white: #fffef7;
  --fstr-sand-100: #f7f6f1;
  --fstr-ivory-50: #fffefa;
  --fstr-line-200: #e9e7df;
  --fstr-line-300: #e4e3dc;
  --fstr-ink-900: #1a1b29;
  --fstr-slate-700: #51526e;
  --fstr-gray-600: #667078;
  --fstr-neutral-700: #404040;
  --fstr-font-display: Georgia, "Times New Roman", serif;
  --fstr-font-ui: "Inter", Arial, sans-serif;
  --fstr-font-body: "Lexend", Arial, sans-serif;
  --fstr-radius-cta: 5px;
  --fstr-radius-media: 6px;
  --fstr-radius-card: 7px;
  --fstr-radius-chip: 999px;
  --fstr-shadow-card: 0 4px 15px 0 rgba(75, 62, 35, .06);
  --fstr-shadow-raised: 0 8px 22px rgba(75, 62, 35, .17);
}

/* Directorist reads these on every component. Set on body so they win over
   the plugin's inline :root block. */
body {
  --directorist-color-primary: var(--fstr-forest-900);
  --directorist-color-primary-rgb: 16, 63, 60;
  --directorist-color-secondary: var(--fstr-sand-100);
  --directorist-color-secondary-rgb: 247, 246, 241;
  --directorist-color-dark: var(--fstr-ink-900);
  --directorist-color-dark-rgb: 26, 27, 41;
  --directorist-color-info: var(--fstr-forest-900);
  --directorist-color-info-rgb: 16, 63, 60;
  --directorist-color-danger: var(--fstr-gray-600);
  --directorist-color-white: var(--fstr-ivory-50);
  --directorist-color-body: var(--fstr-slate-700);
  --directorist-color-gray: var(--fstr-gray-600);
  --directorist-color-light: var(--fstr-line-200);
  --directorist-color-light-hover: var(--fstr-ivory-50);
  --directorist-color-light-gray: var(--fstr-gray-600);
  --directorist-color-deep-gray: var(--fstr-gray-600);
  --directorist-color-bg-gray: var(--fstr-line-200);
  --directorist-color-bg-light-gray: var(--fstr-sand-100);
  --directorist-color-bg-light: var(--fstr-line-200);
  --directorist-color-placeholder: var(--fstr-gray-600);
  --directorist-color-border: var(--fstr-line-200);
  --directorist-color-border-light: var(--fstr-line-200);
  --directorist-color-border-gray: var(--fstr-line-200);
  --directorist-box-shadow: var(--fstr-shadow-card);
  --directorist-box-shadow-sm: var(--fstr-shadow-card);
  --directorist-color-new-badge: var(--fstr-forest-900);
  --directorist-color-marker-shape: var(--fstr-forest-900);
  --directorist-color-marker-shape-rgb: 16, 63, 60;
  --directorist-border-radius-xs: var(--fstr-radius-cta);
  --directorist-border-radius-sm: var(--fstr-radius-card);
  --directorist-border-radius-md: var(--fstr-radius-card);
  --directorist-border-radius-lg: var(--fstr-radius-card);
  --directorist-color-btn: var(--fstr-forest-900);
  --directorist-color-btn-hover: var(--fstr-forest-hover);
  --directorist-color-btn-border: var(--fstr-gold-500);
  --directorist-color-btn-primary: var(--fstr-cream-100);
  --directorist-color-btn-primary-rgb: 16, 63, 60;
  --directorist-color-btn-primary-bg: var(--fstr-forest-900);
  --directorist-color-btn-primary-border: var(--fstr-gold-500);
  --directorist-color-btn-secondary: var(--fstr-ink-900);
  --directorist-color-btn-secondary-rgb: 26, 27, 41;
  --directorist-color-btn-secondary-bg: var(--fstr-ivory-50);
  --directorist-color-btn-secondary-border: var(--fstr-line-300);
  /* dHotels parent theme palette. */
  --color-primary: var(--fstr-forest-900);
  --color-primary-rgb: 16, 63, 60;
  --color-menu: var(--fstr-slate-700);
  --color-menu-hover: var(--fstr-forest-900);
  --color-menu-active: var(--fstr-forest-900);
  --color-submenu: var(--fstr-slate-700);
  --color-submenu-hover: var(--fstr-forest-900);
  --bgcolor-submenu-hover: var(--fstr-sand-100);
  --color-secondary: var(--fstr-sand-100);
  --color-info: var(--fstr-forest-900);
  --color-danger: var(--fstr-gray-600);
  --color-danger-rgb: 102, 112, 120;
  --color-dark: var(--fstr-ink-900);
  --color-gray: var(--fstr-slate-700);
  --color-light-gray: var(--fstr-slate-700);
  --color-light: var(--fstr-gray-600);
  --color-light-rgb: 102, 112, 120;
  --color-lighter: var(--fstr-slate-700);
  --color-white: var(--fstr-ivory-50);
  --color-body: var(--fstr-slate-700);
  --color-border: var(--fstr-line-200);
  --color-border-light: var(--fstr-line-300);
  --color-border-gray: var(--fstr-line-300);
  --color-bg-normal: var(--fstr-sand-100);
  --color-bg-light: var(--fstr-sand-100);
  --color-bg-lighter: var(--fstr-ivory-50);
  --color-bg-section: var(--fstr-sand-100);
  --color-bg-section2: var(--fstr-sand-100);
  --color-bg-select2: var(--fstr-ink-900);
  --color-shadow-rgb: 75, 62, 35;
}

/* Canonical CTAs. */
.fstr-cta,
.directorist-btn.directorist-btn-primary,
.directorist-btn.directorist-btn-submit,
.directorist-btn.directorist-btn-search,
.directorist-authentication .directorist-btn,
.directorist-login-wrapper .directorist-btn,
.directorist-signin-modal .directorist-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 15px;
  background: var(--fstr-forest-900);
  border: 1px solid var(--fstr-gold-500);
  border-radius: var(--fstr-radius-cta);
  color: var(--fstr-cream-100);
  font: 500 14px/1.4 var(--fstr-font-display);
  letter-spacing: 0;
  text-transform: capitalize;
  box-shadow: none;
}
.fstr-cta:hover, .fstr-cta:focus-visible,
.directorist-btn.directorist-btn-primary:hover,
.directorist-btn.directorist-btn-submit:hover,
.directorist-btn.directorist-btn-search:hover {
  background: var(--fstr-forest-hover);
  border-color: var(--fstr-gold-500);
  color: var(--fstr-cream-100);
}
.fstr-cta-outline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 7px 12px;
  background: transparent;
  border: 1px solid var(--fstr-gold-500);
  border-radius: var(--fstr-radius-cta);
  color: var(--fstr-neutral-700);
  font: 500 14px/1.4 var(--fstr-font-display);
  letter-spacing: 0;
  text-transform: none;
  text-decoration: none;
  box-shadow: none;
}
.fstr-cta-outline:hover, .fstr-cta-outline:focus-visible { background: var(--fstr-forest-900); color: var(--fstr-cream-100); }
:is(.fstr-cta, .fstr-cta-outline, .directorist-btn):focus-visible { outline: 2px solid var(--fstr-forest-900); outline-offset: 3px; }

/* Shared hero, header and footer. */
.fstr-plan-button .elementor-button { box-shadow: none; }
.fstr-plan-button .elementor-button:hover { background: var(--fstr-forest-hover); }
body .fstr-menu .elementor-nav-menu--main .elementor-item,
body .fstr-menu .elementor-nav-menu--main .elementor-item.elementor-item-active { color: var(--fstr-cream-100); }
body .fstr-menu .elementor-nav-menu--main .elementor-item:hover,
body .fstr-menu .elementor-nav-menu--main .elementor-item:focus-visible { color: var(--fstr-gold-200) !important; background: rgba(255, 249, 233, .1); border-radius: var(--fstr-radius-cta); }
body .fstr-menu .elementor-nav-menu--dropdown { background: var(--fstr-ivory-50); }
body .fstr-menu .elementor-nav-menu--dropdown .elementor-item { color: var(--fstr-ink-900); }
body .fstr-menu .elementor-nav-menu--dropdown .elementor-item:hover,
body .fstr-menu .elementor-nav-menu--dropdown .elementor-item:focus-visible { color: var(--fstr-forest-900) !important; background: var(--fstr-sand-100) !important; }
body .fstr-menu .elementor-menu-toggle { color: var(--fstr-cream-100); background: transparent; }
body .fstr-menu .elementor-menu-toggle svg { fill: var(--fstr-cream-100); }
body .fstr-header .fstr-header-actions .elementor-icon,
body .fstr-header .fstr-header-actions .elementor-icon i { color: var(--fstr-cream-200); }
body .fstr-header .fstr-header-actions .elementor-icon svg { fill: var(--fstr-cream-200); }
body .fstr-hero .fstr-hero-location .elementor-heading-title { color: var(--fstr-hero-white) !important; }
body.page-id-8 .fstr-hero .fstr-hero-tagline .elementor-heading-title { color: var(--fstr-hero-white); }
body.page-id-8 .fstr-hero .fstr-hero-caption .elementor-heading-title { color: var(--fstr-gold-200); }
body .fstr-footer, body .fstr-footer .fstr-footer-tagline .elementor-heading-title,
body .fstr-footer .fstr-footer-note .elementor-heading-title,
.fstr-footer-tagline, .fstr-footer-tagline p, .fstr-footer-note, .fstr-footer-note p { color: var(--fstr-cream-200); }

/* Theme leftovers that show on every page. */
.skip-link.screen-reader-text { color: var(--fstr-forest-900); }
.scroll-top .scroll-top-wrap { border-radius: 50%; box-shadow: inset 0 0 0 2px rgba(75, 62, 35, .2); background: var(--fstr-ivory-50); }
.scroll-top .scroll-top-wrap svg path { stroke: var(--fstr-forest-900); }
.scroll-top .scroll-top-wrap::after { color: var(--fstr-forest-900); }

/* "No reviews yet" never inherits Directorist's danger red. */
.fstr-no-reviews { color: var(--fstr-gray-600); font: 400 11px/1.4 var(--fstr-font-ui); }

/* Category, location and tag archives (body.fstr-cards). The card itself is
   shared with /all-listings/ through the :is(.fstr-listings, .fstr-cards)
   selectors in resorts.css. */
body.fstr-cards:not(.fstr-resort-single) { background: var(--fstr-sand-100); }
body.fstr-cards .directorist-archive-grid-view .directorist-row { row-gap: 24px; }
body.fstr-cards .theme-archive-header, body.fstr-cards .directorist-archive-contents { background: transparent; }
body.fstr-cards .directorist-archive-title {
  color: var(--fstr-ink-900);
  font: 400 clamp(25px, 2.7vw, 36px)/1.2 var(--fstr-font-display);
  letter-spacing: 0;
}
body.fstr-cards .directorist-search-form__box,
body.fstr-cards .directorist-search-form__wrap {
  background: var(--fstr-ivory-50);
  border: 1px solid var(--fstr-line-200);
  border-radius: var(--fstr-radius-card);
  box-shadow: var(--fstr-shadow-raised);
}
body.fstr-cards .directorist-search-form__box .directorist-search-field {
  border-color: var(--fstr-line-200);
  border-radius: var(--fstr-radius-cta);
  background: var(--fstr-ivory-50);
}
body.fstr-cards .directorist-search-form__box .directorist-search-form__wrap { border: 0; box-shadow: none; }
body.fstr-cards .directorist-search-field input.directorist-form-element { font: 400 13px/1.4 var(--fstr-font-ui); color: var(--fstr-ink-900); }
body.fstr-cards .directorist-header-bar,
body.fstr-cards .directorist-listings-header { font-family: var(--fstr-font-ui); color: var(--fstr-slate-700); }
body.fstr-cards .directorist-header-found-title { color: var(--fstr-ink-900); font-family: var(--fstr-font-ui); }
body.fstr-cards .directorist-listings-header__right .theme-btn-show-map .btn-show-map {
  background: var(--fstr-ivory-50);
  border: 1px solid var(--fstr-line-300);
  border-radius: var(--fstr-radius-cta);
  color: var(--fstr-ink-900);
  font: 500 12px/1.4 var(--fstr-font-ui);
  box-shadow: none;
}
body.fstr-cards .directorist-listings-header__right .theme-btn-show-map .btn-show-map:hover,
body.fstr-cards .directorist-listings-header__right .theme-btn-show-map .btn-show-map.active { border-color: var(--fstr-gold-500); color: var(--fstr-forest-900); background: var(--fstr-ivory-50); }
body.fstr-cards .directorist-sortby-dropdown .directorist-dropdown__toggle,
body.fstr-cards .directorist-listings-header__actions .directorist-sortby-dropdown .directorist-dropdown__toggle .theme-sortby-text {
  color: var(--fstr-slate-700);
  font: 500 12px/1.4 var(--fstr-font-ui);
  border-color: var(--fstr-line-300);
  border-radius: var(--fstr-radius-cta);
}
body.fstr-cards .directorist-sortby-dropdown .directorist-dropdown__toggle .theme-sortby-text + *,
body.fstr-cards .directorist-sortby-dropdown .directorist-dropdown__toggle strong { color: var(--fstr-ink-900); }
body.fstr-cards .directorist-dropdown__links { border: 1px solid var(--fstr-line-300); border-radius: var(--fstr-radius-card); box-shadow: var(--fstr-shadow-raised); background: var(--fstr-ivory-50); }
body.fstr-cards .directorist-dropdown__links__single { color: var(--fstr-slate-700); font: 400 13px/1.4 var(--fstr-font-ui); }
body.fstr-cards .directorist-dropdown__links__single.active,
body.fstr-cards .directorist-dropdown__links__single:hover { color: var(--fstr-forest-900); background: var(--fstr-sand-100); }
body.fstr-cards .directorist-viewas .directorist-viewas__item,
body.fstr-cards .directorist-viewas-dropdown a { color: var(--fstr-slate-700); }
body.fstr-cards .directorist-viewas .directorist-viewas__item.active,
body.fstr-cards .directorist-viewas .directorist-viewas__item:hover { color: var(--fstr-forest-900); }
body.fstr-cards .directorist-viewas .directorist-viewas__item .directorist-icon-mask::after { background-color: currentColor; }
body.fstr-cards .directorist-viewas .directorist-viewas__item.active .directorist-icon-mask::after { background-color: var(--fstr-forest-900); }

/* Select2 and form fields wherever Directorist renders them. */
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple { border-color: var(--fstr-line-200); background: var(--fstr-ivory-50); border-radius: var(--fstr-radius-cta); }
.select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--fstr-ink-900); font-family: var(--fstr-font-ui); }
body .select2.select2-container .select2-selection--single .select2-selection__rendered .select2-selection__placeholder,
.select2-container--default .select2-selection__placeholder { color: var(--fstr-gray-600); }
/* Plugin rule sets this border with !important; keep its width, swap the colour. */
body .directorist-select .select2-container.select2-container--default .select2-selection--single { border-color: var(--fstr-line-200) !important; }
select.select2-hidden-accessible { background: var(--fstr-ivory-50); border-radius: var(--fstr-radius-cta); }
body .directorist-btn-ml, body .directorist-advanced-filter .directorist-btn-ml { color: var(--fstr-forest-900); }
.select2-dropdown { border-color: var(--fstr-line-200); background: var(--fstr-ivory-50); border-radius: var(--fstr-radius-cta); }
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable { background: var(--fstr-forest-900); color: var(--fstr-cream-100); }
.directorist-search-field input.directorist-form-element::placeholder,
.directorist-form-element::placeholder { color: var(--fstr-gray-600); opacity: 1; }
body .directorist-price-ranges__item { border-color: var(--fstr-line-200); }

/* More Filters modal and Directorist sign-in / registration. */
.directorist-search-modal__contents { background: var(--fstr-ivory-50); border-radius: var(--fstr-radius-card) var(--fstr-radius-card) 0 0; }
.directorist-search-modal__contents__title { color: var(--fstr-ink-900); font: 500 20px/1.3 var(--fstr-font-display); }
.directorist-search-modal__contents__btn--close,
.directorist-search-modal__contents__btn.directorist-advanced-filter__close { background: var(--fstr-sand-100); color: var(--fstr-ink-900); }
.directorist-btn-reset-js { color: var(--fstr-forest-900); font-family: var(--fstr-font-ui); }
.directorist-authentication__form,
.directorist-login-wrapper,
.directorist-registration-wrapper { font-family: var(--fstr-font-ui); color: var(--fstr-slate-700); }
.directorist-authentication__form a,
.directorist-login-wrapper a,
.directorist-registration-wrapper a,
body .directorist-authentication__form .directorist-checkbox__label a { color: var(--fstr-forest-900); }
body .directorist-authentication__form,
body.theme-dir-registration .directory_register_form_wrap {
  background: var(--fstr-ivory-50);
  border: 1px solid var(--fstr-line-200);
  border-radius: var(--fstr-radius-card);
  box-shadow: var(--fstr-shadow-card);
}
body .directorist-authentication__form .directorist-form-element { border-color: var(--fstr-line-200); color: var(--fstr-ink-900); }
body .directorist-authentication__form .atbdp_recovery_pass { border-color: var(--fstr-gray-600); }
body .directorist-authentication__btn { color: var(--fstr-forest-900); font-family: var(--fstr-font-ui); }
body .directorist-search-field .directorist-price-ranges__item.directorist-form-group { border-radius: var(--fstr-radius-cta); }
/* Directorist prints the terms/privacy links with an inline red colour. */
body .directory_regi_btn .directorist-checkbox__label a { color: var(--fstr-forest-900) !important; }
.directorist-search-modal__contents__btn.directorist-advanced-filter__close { border-radius: 50%; }

:is(.fstr-listings, .fstr-cards) .directorist-listing-single__content { background: transparent; }

/* Pagination, shared by /all-listings/ and the archives. */
:is(.fstr-listings, .fstr-cards) .directorist-pagination .page-numbers {
  color: var(--fstr-slate-700);
  background: var(--fstr-ivory-50);
  border: 1px solid var(--fstr-line-300);
  font: 500 12px/1 var(--fstr-font-ui);
  box-shadow: none;
}
:is(.fstr-listings, .fstr-cards) .directorist-pagination .page-numbers.current,
:is(.fstr-listings, .fstr-cards) .directorist-pagination .page-numbers:hover {
  background: var(--fstr-forest-900);
  border-color: var(--fstr-forest-900);
  color: var(--fstr-cream-100);
  box-shadow: none;
}
/* The parent theme forces a white current page with #directorist ... !important,
   which hid the number; the :is() carries an ID so this override outranks it. */
:is(#directorist, .fstr-listings, .fstr-cards) .directorist-pagination .page-numbers { width: 30px; min-width: 30px; height: 30px; padding: 0; }
:is(#directorist, .fstr-listings, .fstr-cards) .directorist-pagination .page-numbers.current {
  background-color: var(--fstr-forest-900) !important;
  border-color: var(--fstr-forest-900);
  color: var(--fstr-cream-100);
}
:is(.fstr-listings, .fstr-cards) .directorist-pagination .page-numbers:focus { box-shadow: none; outline: 0; }
:is(.fstr-listings, .fstr-cards) .directorist-pagination .page-numbers:focus-visible { outline: 2px solid var(--fstr-forest-900); outline-offset: 2px; }
