/* ==========================================================================
   FDL Theme — record pages and listings (Phase 4)
   Package, portfolio and rental pages; rental estimate; specs; comparison;
   listings and filters; photo viewer. Every rule follows a preset setting
   (section modifier classes chosen by the preset) or a design token.
   ========================================================================== */

/* Script-controlled parts stay hidden when the script hides them (buttons set display). */
.fdl-estimate [hidden], .fdl-filters [hidden], .fdl-product [hidden] { display: none !important; }

/* ---------- Breadcrumbs ---------- */
.fdl-breadcrumbs ol { list-style: none; margin: 0 0 1.2em; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 0; font-size: .8125rem; color: var(--fdl-color-muted); }
.fdl-breadcrumbs li + li::before { content: "/"; margin: 0 .55em; opacity: .6; }
.fdl-breadcrumbs a { color: inherit; text-decoration: underline; text-decoration-color: transparent; }
.fdl-breadcrumbs a:hover, .fdl-breadcrumbs a:focus-visible { color: var(--fdl-color-accent); text-decoration-color: currentColor; }
.fdl-hero.is-dark .fdl-breadcrumbs ol { color: rgba(255, 255, 255, .78); }

/* ---------- Record hero extras ---------- */
.fdl-hero__facts { display: flex; flex-wrap: wrap; gap: 10px 28px; margin: 1.2em 0 0; }
.fdl-hero__facts dt { font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--fdl-color-muted); }
.fdl-hero__facts dd { margin: 2px 0 0; font-family: var(--fdl-font-heading); color: var(--fdl-color-heading); }
.fdl-hero.is-dark .fdl-hero__facts dt { color: rgba(255, 255, 255, .72); }
.fdl-hero.is-dark .fdl-hero__facts dd { color: #FFFFFF; }
.fdl-hero--overlay .fdl-hero__facts { justify-content: center; }
.fdl-hero--compact { padding-block: calc(var(--fdl-section-spacing) * .5); }
.fdl-hero--compact .fdl-hero__inner { grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); }
.fdl-hero--compact .fdl-hero__title { font-size: calc(var(--fdl-size-h1) * .85); }
.fdl-hero--compact .fdl-hero__media img { aspect-ratio: 1 / 1; }

/* ---------- Key facts row ---------- */
.fdl-facts { padding-block: calc(var(--fdl-section-spacing) * .45); border-bottom: 1px solid var(--fdl-color-border); }
.fdl-facts__list { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); margin: 0; }
.fdl-facts__item { padding: 4px 24px; border-left: 1px solid var(--fdl-color-border); }
.fdl-facts__item:first-child { border-left: 0; padding-left: 0; }
.fdl-facts__item dt { font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--fdl-color-muted); }
.fdl-facts__item dd { margin: 4px 0 0; font-family: var(--fdl-font-heading); font-size: 1.125rem; font-weight: 600; color: var(--fdl-color-heading); }

/* ---------- Description with an "At a glance" panel ---------- */
.fdl-intro__columns { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: calc(56px * var(--fdl-space)); align-items: start; }
.fdl-intro--aside .fdl-intro__content { text-align: left; }
.fdl-glance { position: sticky; top: calc(var(--fdl-header-height, 88px) + 16px); padding: 24px; background: var(--fdl-color-surface); border: 1px solid var(--fdl-color-border); border-top: 3px solid var(--fdl-color-accent); border-radius: var(--fdl-radius); }
.fdl-glance__title { font-size: 1.0625rem; margin: 0 0 .9em; }
.fdl-glance__facts { margin: 0 0 1.2em; display: grid; gap: 12px; }
.fdl-glance__facts dt { font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--fdl-color-muted); }
.fdl-glance__facts dd { margin: 2px 0 0; color: var(--fdl-color-heading); }
.fdl-glance .fdl-btn { width: 100%; }
.fdl-glance__list { list-style: none; margin: 0 0 1.2em; padding: 0; display: grid; gap: 10px; }
.fdl-glance__list li { display: flex; gap: 10px; align-items: flex-start; }
.fdl-glance__list .fdl-icon { flex: none; width: 18px; height: 18px; margin-top: 3px; color: var(--fdl-color-accent); }

/* ---------- Rental product ---------- */
.fdl-product { padding-block: calc(var(--fdl-section-spacing) * .55) calc(var(--fdl-section-spacing) * .75); }
.fdl-product__grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: calc(56px * var(--fdl-space)); align-items: start; }
.fdl-product__main { margin: 0; }
.fdl-product__main a { display: block; overflow: hidden; border-radius: var(--fdl-radius); }
.fdl-product__main img { display: block; width: 100%; aspect-ratio: var(--fdl-image-ratio, 4 / 3); object-fit: cover; }
.fdl-product__main--empty { display: grid; place-items: center; aspect-ratio: 4 / 3; background: var(--fdl-color-alt-bg); color: var(--fdl-color-muted); border-radius: var(--fdl-radius); }
.fdl-product__main--empty .fdl-icon { width: 64px; height: 64px; }
.fdl-product__thumbs { list-style: none; margin: 12px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.fdl-product__thumbs a { display: block; width: 76px; border: 2px solid transparent; border-radius: calc(var(--fdl-radius) * .6); overflow: hidden; }
.fdl-product__thumbs a[aria-current] { border-color: var(--fdl-color-accent); }
.fdl-product__thumbs img { display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; }
.fdl-product__eyebrow { margin: 0 0 .5em; font-family: var(--fdl-font-nav); font-size: .8125rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--fdl-color-accent); }
.fdl-product__title { font-size: calc(var(--fdl-size-h1) * .8); margin: 0 0 .35em; }
.fdl-product__lead { font-size: 1.0625rem; color: var(--fdl-color-text); }
.fdl-product__price { font-family: var(--fdl-font-heading); font-size: 1.5rem; color: var(--fdl-color-heading); margin: .2em 0 .5em; }
.fdl-product__price .fdl-price__note { font-family: var(--fdl-font-body); font-size: .9375rem; color: var(--fdl-color-muted); }
.fdl-product__note { color: var(--fdl-color-muted); }

/* Availability */
.fdl-availability { display: flex; align-items: center; gap: 8px; margin: 0 0 1.4em; font-size: .9375rem; font-weight: 700; color: var(--fdl-color-heading); }
.fdl-availability__dot { width: 10px; height: 10px; border-radius: 50%; background: #2F7A2F; }
.fdl-availability--limited .fdl-availability__dot { background: #B7791F; }
.fdl-availability--on_request .fdl-availability__dot { background: transparent; border: 2px solid currentColor; }
.fdl-availability--unavailable .fdl-availability__dot { background: #A33A3A; }
.fdl-availability__count { font-weight: 400; color: var(--fdl-color-muted); }

/* Estimate */
.fdl-estimate { padding: 20px; background: var(--fdl-color-alt-bg); border-radius: var(--fdl-radius); }
.fdl-estimate__row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; }
.fdl-estimate__label { font-weight: 700; color: var(--fdl-color-heading); }
.fdl-qty { display: inline-flex; align-items: stretch; border: 1px solid var(--fdl-color-border); border-radius: var(--fdl-button-radius); background: var(--fdl-color-surface); overflow: hidden; }
.fdl-qty .fdl-qty__input { flex: none; width: 5.5em; min-width: 0; min-height: 44px; margin: 0; border: 0; border-radius: 0; box-shadow: none; padding: 0 8px; text-align: center; font: inherit; font-weight: 700; color: var(--fdl-color-heading); background: transparent; -moz-appearance: textfield; }
.fdl-qty .fdl-qty__input:focus-visible { outline: 2px solid var(--fdl-color-accent); outline-offset: -2px; }
.fdl-qty__input::-webkit-outer-spin-button, .fdl-qty__input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.fdl-qty__step { min-width: 44px; border: 0; background: transparent; font-size: 1.25rem; line-height: 1; color: var(--fdl-color-heading); cursor: pointer; }
.fdl-qty__step:hover { background: var(--fdl-color-alt-bg); }
.fdl-estimate__limit { margin: 8px 0 0; font-size: .8125rem; color: var(--fdl-color-muted); }
.fdl-estimate__limit:empty { display: none; }
.fdl-estimate__result { margin-top: 14px; }
.fdl-estimate__total { margin: 0; font-family: var(--fdl-font-heading); font-size: 1.375rem; color: var(--fdl-color-heading); }
.fdl-estimate__unit { margin: 2px 0 0; font-size: .9375rem; color: var(--fdl-color-muted); }
.fdl-estimate__note { margin: 10px 0 0; font-size: .8125rem; color: var(--fdl-color-muted); }
.fdl-estimate__quote { margin: 0; color: var(--fdl-color-heading); }
.fdl-estimate__actions { margin: 16px 0 0; }
.fdl-estimate__add { width: 100%; }
.fdl-estimate__hint { margin: 8px 0 0; font-size: .8125rem; color: var(--fdl-color-muted); }

/* Layout: stacked (Wedding) — large centred photo, panel below. */
.fdl-product--stacked .fdl-product__grid { grid-template-columns: minmax(0, 1fr); max-width: 900px; margin-inline: auto; text-align: center; }
.fdl-product--stacked .fdl-product__main img { aspect-ratio: 3 / 2; }
.fdl-product--stacked .fdl-product__thumbs, .fdl-product--stacked .fdl-availability, .fdl-product--stacked .fdl-estimate__row { justify-content: center; }
.fdl-product--stacked .fdl-estimate { max-width: 560px; margin-inline: auto; background: transparent; border-top: 1px solid var(--fdl-color-border); border-bottom: 1px solid var(--fdl-color-border); border-radius: 0; }
.fdl-product--stacked .fdl-breadcrumbs ol { justify-content: center; }

/* Layout: compact (Corporate) — smaller photo, bordered panel. */
.fdl-product--compact .fdl-product__grid { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); }
.fdl-product--compact .fdl-product__panel { padding: 28px; border: 1px solid var(--fdl-color-border); border-radius: var(--fdl-radius); background: var(--fdl-color-surface); }
.fdl-product--compact .fdl-product__title { font-size: calc(var(--fdl-size-h1) * .7); }
.fdl-product--compact .fdl-estimate { background: transparent; padding: 16px 0 0; border-top: 1px solid var(--fdl-color-border); border-radius: 0; }

/* Layout: catalog (Decoration & Rentals) — thumbnail strip, panel stays in view. */
.fdl-product--catalog .fdl-product__media { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 12px; align-items: start; }
.fdl-product--catalog .fdl-product__main { grid-column: 2; grid-row: 1; }
.fdl-product--catalog .fdl-product__main img { aspect-ratio: 1 / 1; }
.fdl-product--catalog .fdl-product__thumbs { grid-column: 1; grid-row: 1; flex-direction: column; margin: 0; }
.fdl-product--catalog .fdl-product__panel { position: sticky; top: calc(var(--fdl-header-height, 88px) + 16px); padding: 24px; border: 1px solid var(--fdl-color-border); border-radius: var(--fdl-radius); background: var(--fdl-color-surface); }
.fdl-product--catalog .fdl-product__price { color: var(--fdl-color-accent); font-family: var(--fdl-font-body); font-weight: 700; }

/* ---------- Rental details ---------- */
.fdl-specs { margin: 0 auto; max-width: 760px; }
.fdl-specs__row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--fdl-color-border); }
.fdl-specs dt { font-weight: 700; color: var(--fdl-color-heading); }
.fdl-specs dd { margin: 0; }
.fdl-titles-left .fdl-specs { margin-left: 0; }
.fdl-specs--elegant .fdl-specs__row { grid-template-columns: minmax(0, 1fr); gap: 2px; text-align: center; border-bottom: 0; padding: 14px 0; }
.fdl-specs--elegant .fdl-specs__row + .fdl-specs__row { border-top: 1px solid var(--fdl-color-border); }
.fdl-specs--elegant dt { font-family: var(--fdl-font-nav); font-size: .75rem; letter-spacing: .16em; text-transform: uppercase; color: var(--fdl-color-muted); }
.fdl-specs--elegant dd { font-family: var(--fdl-font-heading); font-size: 1.25rem; color: var(--fdl-color-heading); }
.fdl-specs-table { width: 100%; max-width: 900px; border-collapse: collapse; border: 1px solid var(--fdl-color-border); background: var(--fdl-color-surface); }
.fdl-specs-table th, .fdl-specs-table td { padding: 12px 16px; text-align: left; border-bottom: 1px solid var(--fdl-color-border); vertical-align: top; }
.fdl-specs-table th { width: 36%; background: var(--fdl-color-alt-bg); color: var(--fdl-color-heading); font-weight: 700; }

/* ---------- Terms, conditions, FAQ (accordion) ---------- */
.fdl-terms__travel, .fdl-conditions__travel { color: var(--fdl-color-muted); font-size: .9375rem; }
.fdl-accordion { border: 1px solid var(--fdl-color-border); border-radius: var(--fdl-radius); background: var(--fdl-color-surface); }
.fdl-accordion + .fdl-accordion { margin-top: 10px; }
.fdl-accordion > summary { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 52px; padding: 12px 20px; cursor: pointer; list-style: none; font-family: var(--fdl-font-heading); font-weight: 700; color: var(--fdl-color-heading); }
.fdl-accordion > summary::-webkit-details-marker { display: none; }
.fdl-accordion > summary::after { content: "+"; flex: none; font-size: 1.5rem; line-height: 1; color: var(--fdl-color-accent); }
.fdl-accordion[open] > summary::after { content: "−"; }
.fdl-accordion > summary:focus-visible { outline: 2px solid var(--fdl-color-accent); outline-offset: 2px; }
.fdl-accordion__body { padding: 0 20px 16px; }
.fdl-accordion__body > :last-child { margin-bottom: 0; }

/* ---------- Event types (chips) ---------- */
.fdl-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.fdl-titles-center .fdl-chips { justify-content: center; }
.fdl-chip { display: inline-flex; align-items: center; min-height: 40px; padding: 6px 18px; border: 1px solid var(--fdl-color-border); border-radius: 999px; background: var(--fdl-color-surface); color: var(--fdl-color-heading); font-weight: 600; text-decoration: none; }
a.fdl-chip:hover, a.fdl-chip:focus-visible { border-color: var(--fdl-color-accent); color: var(--fdl-color-accent); }

/* ---------- Package comparison ---------- */
.fdl-compare-table { position: relative; overflow-x: auto; border: 1px solid var(--fdl-color-border); border-radius: var(--fdl-radius); background: var(--fdl-color-surface); }
.fdl-compare-table:focus-visible { outline: 2px solid var(--fdl-color-accent); outline-offset: 2px; }
.fdl-compare-table table { width: 100%; min-width: 640px; border-collapse: collapse; }
.fdl-compare-table th, .fdl-compare-table td { padding: 14px 16px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--fdl-color-border); }
.fdl-compare-table thead th { font-family: var(--fdl-font-heading); font-size: 1.0625rem; background: var(--fdl-color-alt-bg); }
.fdl-compare-table thead th a { color: var(--fdl-color-heading); text-decoration: none; }
.fdl-compare-table tbody th { width: 18%; color: var(--fdl-color-muted); font-size: .875rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.fdl-compare-table ul { margin: 0; padding-left: 1.1em; }
.fdl-compare-table li { margin: 0 0 4px; font-size: .9375rem; }
.fdl-compare-table .is-current { background: color-mix(in srgb, var(--fdl-color-accent) 7%, transparent); }
.fdl-compare-table thead .is-current { box-shadow: inset 0 3px 0 var(--fdl-color-accent); }
.fdl-compare-table__here { display: block; font-family: var(--fdl-font-body); font-size: .75rem; font-weight: 400; color: var(--fdl-color-muted); }

/* ---------- Listings ---------- */
.fdl-listing-page__wrap { padding-block: calc(var(--fdl-section-spacing) * .6) var(--fdl-section-spacing); }
.fdl-listing__header { max-width: 820px; margin: 0 0 calc(32px * var(--fdl-space) + 8px); }
.fdl-titles-center .fdl-listing__header { margin-inline: auto; text-align: center; }
.fdl-titles-center .fdl-listing__header .fdl-section__divider { margin-inline: auto; }
.fdl-listing__eyebrow { margin: 0 0 .6em; font-family: var(--fdl-font-nav); font-size: .8125rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--fdl-color-accent); }
.fdl-eyebrow-script .fdl-listing__eyebrow { font-family: var(--fdl-font-accent); font-size: 1.9rem; font-weight: 400; letter-spacing: 0; text-transform: none; }
.fdl-listing__title { font-size: var(--fdl-size-h1); margin-bottom: .3em; }
.fdl-listing__intro { font-size: 1.0625rem; }
.fdl-listing__body { display: grid; gap: calc(28px * var(--fdl-space) + 8px); }
.fdl-listing--filters-sidebar .fdl-listing__body { grid-template-columns: 260px minmax(0, 1fr); align-items: start; }
.fdl-listing__body > * { min-width: 0; }
.fdl-listing__results:focus { outline: none; }
.fdl-listing__count { margin: 0 0 18px; color: var(--fdl-color-muted); font-size: .9375rem; }
.fdl-listing__clear { font-weight: 700; }
.fdl-listing__subtitle { margin: calc(48px * var(--fdl-space)) 0 18px; font-size: var(--fdl-size-h3); }
.fdl-listing.is-loading .fdl-listing__results { opacity: .5; transition: opacity .15s ease; }

/* Filters: bar */
.fdl-filters--bar { padding: 16px 20px; background: var(--fdl-color-alt-bg); border-radius: var(--fdl-radius); }
.fdl-filters__form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px 20px; }
.fdl-filters__field { display: grid; gap: 4px; min-width: 180px; flex: 1 1 180px; }
.fdl-filters__field label, .fdl-filters__search label { font-size: .8125rem; font-weight: 700; color: var(--fdl-color-heading); }
.fdl-filters select, .fdl-filters input[type="search"] { min-height: 44px; width: 100%; padding: 0 12px; border: 1px solid var(--fdl-color-border); border-radius: calc(var(--fdl-radius) * .6); background: var(--fdl-color-surface); font: inherit; color: var(--fdl-color-text); }
.fdl-filters__actions { flex: none; }

/* Filters: pills */
.fdl-filters--pills { display: grid; gap: 14px; }
.fdl-filters--pills .fdl-filters__group { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; }
.fdl-titles-center .fdl-filters--pills .fdl-filters__group { justify-content: center; }
.fdl-filters__label { margin: 0; font-size: .8125rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--fdl-color-muted); }
.fdl-filters__group ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.fdl-filters--pills .fdl-filters__group a { display: inline-flex; align-items: center; min-height: 40px; padding: 6px 18px; border: 1px solid var(--fdl-color-border); border-radius: 999px; color: var(--fdl-color-heading); text-decoration: none; background: var(--fdl-color-surface); }
.fdl-filters--pills .fdl-filters__group a:hover { border-color: var(--fdl-color-accent); }
.fdl-filters--pills .fdl-filters__group a[aria-current] { background: var(--fdl-color-heading); border-color: var(--fdl-color-heading); color: var(--fdl-color-surface); }
.fdl-filters--pills .fdl-filters__search { justify-self: center; }

/* Filters: sidebar */
.fdl-filters--sidebar { position: sticky; top: calc(var(--fdl-header-height, 88px) + 16px); display: grid; gap: 22px; padding: 22px; border: 1px solid var(--fdl-color-border); border-radius: var(--fdl-radius); background: var(--fdl-color-surface); }
.fdl-filters__title { font-size: 1.0625rem; margin: 0; }
.fdl-filters--sidebar .fdl-filters__label { display: block; margin-bottom: 6px; }
.fdl-filters--sidebar .fdl-filters__group ul { display: grid; gap: 2px; }
.fdl-filters--sidebar .fdl-filters__group a { display: block; padding: 6px 0; color: var(--fdl-color-text); text-decoration: none; }
.fdl-filters--sidebar .fdl-filters__group a:hover { color: var(--fdl-color-accent); }
.fdl-filters--sidebar .fdl-filters__group a[aria-current] { color: var(--fdl-color-accent); font-weight: 700; }
.fdl-filters--sidebar .fdl-filters__group a[aria-current]::before { content: "› "; }
.fdl-filters__search { display: grid; gap: 4px; }
.fdl-filters__search-row { display: flex; gap: 8px; }
.fdl-filters__search-row input { flex: 1; min-width: 0; }

/* Page links */
.fdl-pagination ul { list-style: none; margin: calc(40px * var(--fdl-space)) 0 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.fdl-pagination a, .fdl-pagination span { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 14px; border: 1px solid var(--fdl-color-border); border-radius: var(--fdl-button-radius); color: var(--fdl-color-heading); text-decoration: none; }
.fdl-pagination span[aria-current] { background: var(--fdl-color-heading); border-color: var(--fdl-color-heading); color: var(--fdl-color-surface); }

/* ---------- Elementor Loop Items (FDL Loop Item templates) ----------
   Built from Elementor's own widgets; the preset's card style restyles them. */
.fdl-loop-card { height: 100%; background: var(--fdl-color-surface); overflow: hidden; }
.fdl-loop-card .fdl-loop-card__media img { display: block; width: 100%; aspect-ratio: var(--fdl-image-ratio, 4 / 3); object-fit: cover; }
.fdl-loop-card .fdl-loop-card__title .elementor-heading-title { font-size: var(--fdl-size-h4); }
.fdl-loop-card .fdl-loop-card__title a { color: var(--fdl-color-heading); text-decoration: none; }
.fdl-loop-card .fdl-loop-card__excerpt { color: var(--fdl-color-muted); font-size: .9375rem; }
.fdl-loop-card .fdl-loop-card__excerpt p { margin: 0; }
.fdl-loop-card .fdl-loop-card__price .elementor-heading-title { font-family: var(--fdl-font-heading); font-size: 1.0625rem; color: var(--fdl-color-heading); }
.fdl-loop-card .fdl-loop-card__button .elementor-button { background: var(--fdl-color-button-bg); color: var(--fdl-color-button-text); border-radius: var(--fdl-button-radius); text-transform: var(--fdl-button-transform, uppercase); letter-spacing: var(--fdl-button-letter-spacing, .1em); font-size: .75rem; font-weight: 700; }
.fdl-buttons-outline .fdl-loop-card .fdl-loop-card__button .elementor-button { background: transparent; color: var(--fdl-color-heading); border: 1.5px solid var(--fdl-color-button-bg); }
.fdl-cards-classic .fdl-loop-card .fdl-loop-card__button { display: none; }
.fdl-cards-portrait .fdl-loop-card { background: transparent; text-align: center; }
.fdl-cards-portrait .fdl-loop-card .fdl-loop-card__media { overflow: hidden; border-radius: 999px 999px 0 0 / 220px 220px 0 0; }
.fdl-cards-portrait .fdl-loop-card .fdl-loop-card__media img { aspect-ratio: 3 / 4; }
.fdl-cards-portrait .fdl-loop-card .fdl-loop-card__price .elementor-heading-title { font-style: italic; }
.fdl-cards-portrait .fdl-loop-card .fdl-loop-card__button { display: none; }
.fdl-cards-bordered .fdl-loop-card { border: 1px solid var(--fdl-color-border); border-radius: var(--fdl-radius); }
.fdl-cards-bordered .fdl-loop-card .fdl-loop-card__media img { aspect-ratio: 16 / 9; }
.fdl-cards-bordered .fdl-loop-card .fdl-loop-card__price .elementor-heading-title { font-family: var(--fdl-font-body); font-weight: 700; font-size: .9375rem; color: var(--fdl-color-accent); }
.fdl-cards-bordered .fdl-loop-card .fdl-loop-card__button .elementor-button { background: transparent; color: var(--fdl-color-accent); border: 0; padding: 0; }
.fdl-cards-product .fdl-loop-card { border: 1px solid var(--fdl-color-border); border-radius: var(--fdl-radius); }
.fdl-cards-product .fdl-loop-card .fdl-loop-card__media img { aspect-ratio: 1 / 1; }
.fdl-cards-product .fdl-loop-card .fdl-loop-card__price .elementor-heading-title { font-family: var(--fdl-font-body); font-weight: 700; color: var(--fdl-color-accent); }
.fdl-cards-product .fdl-loop-card .fdl-loop-card__button .elementor-button { width: 100%; justify-content: center; }
.fdl-loop-card--testimonial { border: 1px solid var(--fdl-color-border); border-radius: var(--fdl-radius); }
.fdl-loop-card--testimonial .fdl-loop-card__quote { font-family: var(--fdl-font-heading); font-size: 1.125rem; color: var(--fdl-color-heading); }
.fdl-loop-card--testimonial .fdl-loop-card__name .elementor-heading-title { font-weight: 700; font-size: .9375rem; color: var(--fdl-color-muted); }

/* ---------- Photo viewer ---------- */
.fdl-viewer { width: min(1100px, 96vw); max-width: none; max-height: 94vh; padding: 0; border: 0; background: transparent; overflow: visible; }
.fdl-viewer::backdrop { background: rgba(10, 10, 10, .88); }
.fdl-viewer__figure { margin: 0; text-align: center; }
.fdl-viewer__img { display: block; max-width: 100%; max-height: 84vh; margin: 0 auto; object-fit: contain; border-radius: 4px; }
.fdl-viewer__count { margin-top: 10px; color: #FFFFFF; font-size: .9375rem; }
.fdl-viewer__btn { position: absolute; display: grid; place-items: center; width: 48px; height: 48px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .92); color: #111111; font-size: 1.75rem; line-height: 1; cursor: pointer; }
.fdl-viewer__btn:focus-visible { outline: 3px solid #FFFFFF; outline-offset: 2px; }
.fdl-viewer__prev { left: -8px; top: 42%; }
.fdl-viewer__next { right: -8px; top: 42%; }
.fdl-viewer__close { right: -8px; top: -56px; }
html.fdl-viewer-open { overflow: hidden; }

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
	.fdl-intro__columns { grid-template-columns: minmax(0, 1fr); }
	.fdl-glance { position: static; }
	.fdl-listing--filters-sidebar .fdl-listing__body { grid-template-columns: minmax(0, 1fr); }
	.fdl-filters--sidebar { position: static; }
}
@media (max-width: 900px) {
	.fdl-product__grid, .fdl-product--compact .fdl-product__grid { grid-template-columns: minmax(0, 1fr); }
	.fdl-product--catalog .fdl-product__panel { position: static; }
	.fdl-product--catalog .fdl-product__media { grid-template-columns: minmax(0, 1fr); }
	.fdl-product--catalog .fdl-product__main, .fdl-product--catalog .fdl-product__thumbs { grid-column: 1; }
	.fdl-product--catalog .fdl-product__thumbs { grid-row: 2; flex-direction: row; }
	.fdl-hero--compact .fdl-hero__inner { grid-template-columns: minmax(0, 1fr); }
	.fdl-facts__list { grid-auto-flow: row; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 0; }
	.fdl-facts__item:nth-child(odd) { border-left: 0; padding-left: 0; }
	.fdl-viewer__prev { left: 4px; }
	.fdl-viewer__next { right: 4px; }
	.fdl-viewer__close { right: 4px; top: -56px; }
}
@media (max-width: 600px) {
	.fdl-specs__row { grid-template-columns: minmax(0, 1fr); gap: 2px; }
	.fdl-estimate__row .fdl-btn { flex: 1 1 100%; }
	.fdl-filters__field { flex-basis: 100%; }
	.fdl-filters__actions, .fdl-filters__actions .fdl-btn { width: 100%; }
	.fdl-facts__list { grid-template-columns: minmax(0, 1fr); }
	.fdl-facts__item { border-left: 0; padding-left: 0; }
}
@media (prefers-reduced-motion: reduce) {
	.fdl-listing.is-loading .fdl-listing__results { transition: none; }
}

/* Rental cards: visible but unavailable (P4-10 as modified). */
.fdl-card__status { margin: 0 0 .5em; font-size: .8125rem; }
.fdl-card.is-unavailable .fdl-card__media img { filter: grayscale(.7); opacity: .85; }
