/* pm-redesign-assets · theme: avada-redesign · built 2026-09-01T13:20:12.784Z */

/* ==========================================================================
   >>> core/utilities.css
   ========================================================================== */

/* ============================================================================
   PM-SHARED-STYLES · UTILITIES (core layer 1)
   ============================================================================
   Small, static utility classes that resolve from the theme's tokens at
   runtime — write markup with these classes and it is automatically correct
   for every theme. No build-time generation, no responsive variants
   (breakpoint-specific styling belongs in component CSS with media queries).

   Naming: pm-<property>-<token>. All declarations use !important so a utility
   applied in markup always wins over component CSS.
   ============================================================================ */

/* ── Background color ─────────────────────────────────────────────────────── */
.pm-bg-brand {
  background-color: var(--pm-brand) !important;
}

.pm-bg-brand-tint {
  background-color: var(--pm-brand-tint) !important;
}

.pm-bg-accent {
  background-color: var(--pm-accent) !important;
}

.pm-bg-surface {
  background-color: var(--pm-surface) !important;
}

.pm-bg-surface-alt {
  background-color: var(--pm-surface-alt) !important;
}

.pm-bg-surface-dark {
  background-color: var(--pm-surface-dark) !important;
}

.pm-bg-ink {
  background-color: var(--pm-brand-ink) !important;
}

/* ── Text color ────────────────────────────────────────────────────────────── */
.pm-text-brand {
  color: var(--pm-brand) !important;
}

.pm-text-accent {
  color: var(--pm-accent) !important;
}

.pm-text-heading {
  color: var(--pm-heading) !important;
}

.pm-text-body {
  color: var(--pm-text) !important;
}

.pm-text-muted {
  color: var(--pm-text-muted) !important;
}

.pm-text-subtle {
  color: var(--pm-text-subtle) !important;
}

.pm-text-on-brand {
  color: var(--pm-text-on-brand) !important;
}

.pm-text-white {
  color: #fff !important;
}

/* ── Border ────────────────────────────────────────────────────────────────── */
.pm-border {
  border: 1px solid var(--pm-border) !important;
}

.pm-border-strong {
  border: 1px solid var(--pm-border-strong) !important;
}

.pm-border-brand {
  border: 1.5px solid var(--pm-brand) !important;
}

.pm-border-0 {
  border: 0 !important;
}

/* ── Radius ────────────────────────────────────────────────────────────────── */
.pm-radius-sm {
  border-radius: var(--pm-radius-sm) !important;
}

.pm-radius-md {
  border-radius: var(--pm-radius-md) !important;
}

.pm-radius-lg {
  border-radius: var(--pm-radius-lg) !important;
}

.pm-radius-xl {
  border-radius: var(--pm-radius-xl) !important;
}

.pm-radius-pill {
  border-radius: var(--pm-radius-pill) !important;
}

/* ── Shadow ────────────────────────────────────────────────────────────────── */
.pm-shadow-sm {
  box-shadow: var(--pm-shadow-sm) !important;
}

.pm-shadow-md {
  box-shadow: var(--pm-shadow-md) !important;
}

.pm-shadow-lg {
  box-shadow: var(--pm-shadow-lg) !important;
}

.pm-shadow-card {
  box-shadow: var(--pm-shadow-card) !important;
}

.pm-shadow-0 {
  box-shadow: none !important;
}

/* ── Typography ────────────────────────────────────────────────────────────── */
.pm-font-heading {
  font-family: var(--pm-font-heading) !important;
}

.pm-font-body {
  font-family: var(--pm-font-body) !important;
}

.pm-text-xs {
  font-size: var(--pm-font-size-xs) !important;
}

.pm-text-sm {
  font-size: var(--pm-font-size-sm) !important;
}

.pm-text-base {
  font-size: var(--pm-font-size-base) !important;
}

.pm-text-lg {
  font-size: var(--pm-font-size-lg) !important;
}

.pm-text-xl {
  font-size: var(--pm-font-size-xl) !important;
}

.pm-text-xxl {
  font-size: var(--pm-font-size-xxl) !important;
}

.pm-text-xxxl {
  font-size: var(--pm-font-size-xxxl) !important;
}

.pm-weight-400 {
  font-weight: 400 !important;
}

.pm-weight-500 {
  font-weight: 500 !important;
}

.pm-weight-600 {
  font-weight: 600 !important;
}

.pm-weight-700 {
  font-weight: 700 !important;
}

.pm-weight-800 {
  font-weight: 800 !important;
}

.pm-weight-900 {
  font-weight: 900 !important;
}

.pm-upper {
  text-transform: uppercase !important;
  letter-spacing: var(--pm-tracking-wide) !important;
}

/* ── Spacing (token scale: xs 4 / sm 8 / base 16 / lg 24 / xl 32 / 2xl 48) ── */
.pm-m-0 {
  margin: 0 !important;
}

.pm-m-xs {
  margin: var(--pm-space-xs) !important;
}

.pm-m-sm {
  margin: var(--pm-space-sm) !important;
}

.pm-m {
  margin: var(--pm-space) !important;
}

.pm-m-lg {
  margin: var(--pm-space-lg) !important;
}

.pm-m-xl {
  margin: var(--pm-space-xl) !important;
}

.pm-m-2xl {
  margin: var(--pm-space-2xl) !important;
}

.pm-mt-0 {
  margin-top: 0 !important;
}

.pm-mt-xs {
  margin-top: var(--pm-space-xs) !important;
}

.pm-mt-sm {
  margin-top: var(--pm-space-sm) !important;
}

.pm-mt {
  margin-top: var(--pm-space) !important;
}

.pm-mt-lg {
  margin-top: var(--pm-space-lg) !important;
}

.pm-mt-xl {
  margin-top: var(--pm-space-xl) !important;
}

.pm-mt-2xl {
  margin-top: var(--pm-space-2xl) !important;
}

.pm-mb-0 {
  margin-bottom: 0 !important;
}

.pm-mb-xs {
  margin-bottom: var(--pm-space-xs) !important;
}

.pm-mb-sm {
  margin-bottom: var(--pm-space-sm) !important;
}

.pm-mb {
  margin-bottom: var(--pm-space) !important;
}

.pm-mb-lg {
  margin-bottom: var(--pm-space-lg) !important;
}

.pm-mb-xl {
  margin-bottom: var(--pm-space-xl) !important;
}

.pm-mb-2xl {
  margin-bottom: var(--pm-space-2xl) !important;
}

.pm-p-0 {
  padding: 0 !important;
}

.pm-p-xs {
  padding: var(--pm-space-xs) !important;
}

.pm-p-sm {
  padding: var(--pm-space-sm) !important;
}

.pm-p {
  padding: var(--pm-space) !important;
}

.pm-p-lg {
  padding: var(--pm-space-lg) !important;
}

.pm-p-xl {
  padding: var(--pm-space-xl) !important;
}

.pm-p-2xl {
  padding: var(--pm-space-2xl) !important;
}

.pm-py-0 {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.pm-py-sm {
  padding-top: var(--pm-space-sm) !important;
  padding-bottom: var(--pm-space-sm) !important;
}

.pm-py {
  padding-top: var(--pm-space) !important;
  padding-bottom: var(--pm-space) !important;
}

.pm-py-lg {
  padding-top: var(--pm-space-lg) !important;
  padding-bottom: var(--pm-space-lg) !important;
}

.pm-py-xl {
  padding-top: var(--pm-space-xl) !important;
  padding-bottom: var(--pm-space-xl) !important;
}

.pm-py-2xl {
  padding-top: var(--pm-space-2xl) !important;
  padding-bottom: var(--pm-space-2xl) !important;
}

.pm-px-0 {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.pm-px-sm {
  padding-left: var(--pm-space-sm) !important;
  padding-right: var(--pm-space-sm) !important;
}

.pm-px {
  padding-left: var(--pm-space) !important;
  padding-right: var(--pm-space) !important;
}

.pm-px-lg {
  padding-left: var(--pm-space-lg) !important;
  padding-right: var(--pm-space-lg) !important;
}

.pm-px-xl {
  padding-left: var(--pm-space-xl) !important;
  padding-right: var(--pm-space-xl) !important;
}

/* ── Compound patterns (the pieces rebuilt constantly) ────────────────────── */

/* Uppercase brand label that sits above section headings. */
.pm-section-eyebrow {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.5rem !important;
  font-size: var(--pm-font-size-xs) !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em !important;
  color: var(--pm-brand) !important;
}

.pm-section-eyebrow-accent {
  color: var(--pm-accent) !important;
}

/* Standard content card. */
.pm-card {
  background: var(--pm-surface) !important;
  border: 1.5px solid var(--pm-border) !important;
  border-radius: var(--pm-radius-xl) !important;
  box-shadow: var(--pm-shadow-sm) !important;
  transition:
    transform var(--pm-duration) var(--pm-ease),
    box-shadow var(--pm-duration) var(--pm-ease) !important;
}

.pm-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--pm-shadow-md) !important;
}

/* Buttons. */
.pm-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.5rem !important;
  background: var(--pm-brand) !important;
  color: var(--pm-text-on-brand) !important;
  border: none !important;
  border-radius: var(--pm-radius-md) !important;
  padding: 0.65rem 1.35rem !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  cursor: pointer;
  transition: background var(--pm-duration) var(--pm-ease) !important;
}

.pm-button:hover {
  background: var(--pm-brand-hover) !important;
  color: var(--pm-text-on-brand) !important;
}

.pm-button-outline {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.5rem !important;
  background: transparent !important;
  color: var(--pm-brand) !important;
  border: 1.5px solid var(--pm-brand) !important;
  border-radius: var(--pm-radius-md) !important;
  padding: 0.65rem 1.35rem !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  cursor: pointer;
  transition:
    background var(--pm-duration) var(--pm-ease),
    color var(--pm-duration) var(--pm-ease) !important;
}

.pm-button-outline:hover {
  background: var(--pm-brand) !important;
  color: var(--pm-text-on-brand) !important;
}

/* ==========================================================================
   >>> core/base.css
   ========================================================================== */

/* ============================================================================
   PM-SHARED-STYLES · BASE (core layer 2)
   ============================================================================
   Shared component overrides for the property_management plugin + Elementor
   markup, written against --pm-* tokens only. Applies to EVERY theme.

   Hygiene rules (enforced by `npm run lint`):
     - no  body.page-id-*  selectors            (site-specific -> theme site.css)
     - no  .elementor-<id>  element selectors    (site-specific -> theme site.css)
     - no  absolute url(...) assets              (site-specific -> theme site.css)
     - never DEFINE --pm-* variables here        (tokens live in theme-tokens.css)
   ============================================================================ */

/* Search results pagination (property-filters/styles.css hardcodes navy
   #0c3357 text and #d7e2ea borders on the page pills). */
.available_units_pagination .paginationjs-pages li > a {
  color: var(--pm-heading);
  border-color: var(--pm-border-strong);
}

.available_units_pagination .paginationjs-pages li.active > a,
.available_units_pagination .paginationjs-pages li:hover > a {
  background: var(--pm-brand);
  border-color: var(--pm-brand);
  color: var(--pm-text-on-brand);
}

/* Blog list pagination (Elementor Posts widget nav) — mirrors the search
   results pagination pill style above for consistency across the site. */
nav.elementor-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin-top: 1.5rem;
}

nav.elementor-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 0 11px;
  border-radius: 10px;
  border: 1px solid var(--pm-border-strong);
  background: var(--pm-surface);
  color: var(--pm-heading);
  font-size: 1rem;
  font-weight: 700;
  text-decoration: none !important;
  transition:
    background var(--pm-duration) var(--pm-ease),
    border-color var(--pm-duration) var(--pm-ease),
    color var(--pm-duration) var(--pm-ease);
}

nav.elementor-pagination .page-numbers:hover {
  border-color: var(--pm-brand);
  color: var(--pm-brand);
}

nav.elementor-pagination .page-numbers.current {
  background: var(--pm-brand);
  border-color: var(--pm-brand);
  color: var(--pm-text-on-brand);
}

nav.elementor-pagination .page-numbers.dots {
  border: none;
  background: transparent;
}

/* "No results" box (no-results.mustache inlines a navy #0c3357 border). */
.no-results {
  border-color: var(--pm-border-strong);
}

/* ==========================================================================
   DRAINED FROM themes/avada-redesign/_legacy.css on 2026-07-13 (generic units)
   ========================================================================== */

/* ============================================================================
   LEGACY OVERRIDES (drain-only) — imported from awayday_avada_styles
   src/styling-overrides.css on 2026-07-13, with --awd-* renamed --pm-*.
   RULES: no new code goes here. Sections move OUT over time:
     generic component/page CSS -> core/base.css (cleaned: no page-ids,
     no elementor element-ids, no absolute urls)   |   avada-only -> site.css
   Delete this file from the build when empty.
   ============================================================================ */

/* ============================================================
   AWAYDAY / AVADA STYLING OVERRIDES
   Organized by component/page. Generated reorg pass.
   ============================================================ */

/* ---------------------------------------------------------
   00 · BASE / RESET
--------------------------------------------------------- */
body {
  background-color: var(--pm-surface-alt);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

a {
  color: var(--pm-brand);
  text-decoration: none;
  transition: color 0.15s;
}

a:focus,
a:hover {
  color: var(--pm-brand-hover);
  text-decoration: underline;
}

img {
  max-width: 100%;
}

/* Redesign root: the mockups are authored at a 15px root; adopt site-wide so
   every rem-based size matches the redesign's proportions (was browser 16px). */
html {
  font-size: 15px;
}

/* ---------------------------------------------------------
   01 · TYPOGRAPHY
--------------------------------------------------------- */
h1,
h2,
h3,
h4,
h5,
h6 {
  line-height: 1.2;
}

/* ---------------------------------------------------------
   01b · GLOBAL ELEMENTOR WIDGET BASE (redesign, site-wide)
   Scoped to page content ([data-elementor-type="wp-page"]) so the header and
   footer templates are never touched. Fills the redesign defaults on generic
   Elementor widgets so pages without a dedicated scope still match. Colours use
   NO !important + moderate specificity on purpose: they set a redesign default
   but yield to any explicit per-widget/page colour (e.g. white hero headings,
   dark-section text) — this avoids dark-on-dark regressions.
--------------------------------------------------------- */

/* H1 colour: the Kit leaves H1 literal grey #333 (H2–H6 map to the dark token).
   Give H1 the dark heading token as a default; explicit colours still win. */
[data-elementor-type='wp-page'] .elementor-widget-heading h1.elementor-heading-title {
  color: var(--pm-heading);
}

/* Body copy: the Kit maps text colour to the primary (teal) token, which tints
   paragraphs. Restore the neutral text token as the default for content. */
[data-elementor-type='wp-page'] .elementor-widget-text-editor {
  color: var(--pm-text);
  line-height: 1.7;
}

/* Default icon accents pick up the brand so un-scoped pages stay on-palette. */
[data-elementor-type='wp-page'] .elementor-widget-icon .elementor-icon,
[data-elementor-type='wp-page'] .elementor-widget-icon-box .elementor-icon {
  color: var(--pm-brand);
}

/* ---------------------------------------------------------
   02 · SHARED UI UTILITIES (eyebrow, section titles, generic cards, tooltips)
--------------------------------------------------------- */
.container {
  max-width: 1320px !important;
  width: 100%;
  margin-inline: auto;
  padding-inline: 15px;
}

.container > .e-con-inner {
  max-width: 100%;
}

.navbar-nav a {
  font-size: var(--pm-font-size-sm) !important;
}

.av-about .local-cue-pill .ico,
.pm-about .local-cue-pill .ico,
.av-accessibility .legal-link-card:hover .legal-card-arrow,
.pm-accessibility .legal-link-card:hover .legal-card-arrow,
.av-accessibility .policy-meta-item .ico,
.pm-accessibility .policy-meta-item .ico,
.av-accessibility .policy-nav a:hover,
.pm-accessibility .policy-nav a:hover,
.av404 .pop-link .ico,
.breadcrumbs a:hover,
.cat-card:hover .cat-arrow,
.elementor-accordion-title.elementor-active,
.elementor-icon-list-item a:hover .elementor-icon-list-text,
.elementor-tab-title.elementor-active,
.exp-icon,
.fa-bath,
.fa-bed,
.fa-chair,
.fa-map-marker,
.footer-brand-name span,
.footer-links a:hover,
.hs-input:focus,
.legal-link-card:hover .legal-card-arrow,
.policy-meta-item .ico,
.prop-detail-nav-content:hover,
.sleep-card .ico-wrap .fa,
.top-section svg.icon,
.why-ico,
body .elementor a:hover {
  color: var(--pm-brand);
}

.elementor-button,
.elementor-button:visited,
.section-title.section-title-white {
  color: var(--pm-neutral-0) !important;
}

.avada-card {
  background-color: var(--pm-surface);
  border: 1px solid var(--pm-border);
  border-radius: var(--pm-radius-lg);
  box-shadow: var(--pm-shadow-sm);
}

.eyebrow {
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--pm-brand);
  margin-bottom: 0.5rem;
}

.section-title {
  font-size: clamp(1.5rem, 2.8vw, 2.1rem);
  font-weight: 800;
  color: var(--pm-brand-ink) !important;
  margin-bottom: 0.75rem;
}

.section-sub {
  font-size: 0.93rem;
  color: var(--pm-text-muted);
  line-height: 1.75;
  max-width: 560px;
}

#bottom-cta .container,
#final-cta .container,
#owner-cta .container,
#pdp-bottom-cta .container,
.av-about #trust-values .container,
.pm-about #trust-values .container,
.av-about .about-hero-inner,
.pm-about .about-hero-inner,
.av-accessibility #bottom-cta .container,
.pm-accessibility #bottom-cta .container,
.faq-hero-inner,
.hero-inner {
  position: relative;
  z-index: 1;
}

.av404 .search-card h3,
.cat-card h4,
.exp-text strong,
.faq-q-text,
.prop-name,
.prop-price-val,
.quick-card-q,
.step-card h4,
.why-card h4 {
  letter-spacing: -0.01em;
}

.cat-card,
.cat-ico,
.prop-local-cue,
.step-num {
  display: flex;
  align-items: center;
}

.cat-ico {
  width: 42px;
  height: 42px;
  min-width: 42px;
  background: var(--pm-brand-tint);
  border-radius: 10px;
  justify-content: center;
  color: var(--pm-brand);
  flex-shrink: 0;
  transition: background 0.15s;
}

.faq-q-badge,
.quick-q-ico {
  display: flex;
  align-items: center;
  margin-top: 1px;
}

.cat-card:hover .cat-ico {
  background: var(--pm-brand-glow);
}

.quick-card {
  background: var(--pm-surface);
  border-radius: var(--pm-radius-xl);
  border: 1px solid var(--pm-border);
  padding: 1.4rem 1.5rem;
  height: 100%;
  box-shadow: var(--pm-shadow-sm);
  position: relative;
  overflow: hidden;
}

.quick-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--pm-brand);
}

.quick-card-q {
  font-size: 0.86rem;
  font-weight: 800;
  color: var(--pm-brand-ink);
  margin-bottom: 0.55rem;
  display: flex;
  gap: 0.5rem;
}

.quick-q-ico {
  width: 20px;
  height: 20px;
  min-width: 20px;
  background: var(--pm-brand-tint);
  border-radius: 50%;
  justify-content: center;
  color: var(--pm-brand);
  flex-shrink: 0;
}

.quick-card-a {
  font-size: 0.8rem;
  color: var(--pm-text-muted);
  line-height: 1.7;
  padding-left: 1.7rem;
}

.fill-primary,
.stroke-primary,
svg.icon {
  fill: var(--pm-brand);
  color: var(--pm-brand);
}

.my-tooltip-window,
.tooltip.custom-tooltip {
  border-radius: var(--pm-radius-md);
  font-family: var(--pm-font-body);
}

#final-cta,
#unit-images,
.eyebrow,
.gallery-wrap,
.navbar-nav .nav-link.active,
.prop-img,
.prop-photo-placeholder,
.why-card {
  position: relative;
}

.bsi,
.eyebrow {
  display: inline-block;
}

.section-hdr-center .section-sub {
  margin: 0 auto;
}

.section-header,
.section-title-pdp {
  font-size: 1.05rem !important;
  font-weight: 800 !important;
  color: var(--pm-brand-ink);
  margin-top: 0 !important;
  margin-bottom: 1.1rem !important;
  letter-spacing: -0.01em;
  padding-bottom: 0.6rem;
  display: block;
}

.room-arrangement-card svg.icon {
  color: var(--pm-brand);
  width: 28px;
  height: 28px;
  margin: 0 auto 0.5rem;
}

.sleep-card .ico-wrap svg.icon {
  width: 24px;
  height: 24px;
  color: var(--pm-brand);
}

.basic-info svg.icon {
  width: 16px;
  height: 16px;
  color: var(--pm-brand);
}

/* Un-crop the PDP sprite icons the two rules above shrink.

   The plugin's PDP sprite (templates/property-detail-view-v2.php) defines each
   glyph as <symbol width="…" height="…" viewBox="…">, and the markup that
   references it — <svg class="icon"><use xlink:href="#sleeps"></use></svg> —
   carries NO viewBox of its own. With no viewBox on the referencing <svg>, the
   symbol's width/height attributes set the <use> viewport in raw px, so the
   glyph draws at its intrinsic size (21–26px) instead of scaling to the box.
   The plugin's own `svg.icon { width: 24px; max-height: 24px }` is big enough
   to hide that; the 16x16 and 24x24 boxes above are not, so the glyph overflows
   and `overflow: hidden` crops it — the icons render as partial shapes.
   Measured on dev: #sleeps draws 20.5x23.8 in a 16x16 box, #beds 24.6x22.4,
   #baths 24.6x25.2. Confirmed on both stay-lbj and avada-redesign; neither
   theme resizes these boxes, so the crop is identical on both.

   Two fixes were ruled out before this one:
     - adding a viewBox to the referencing <svg> — that is plugin markup, and
       property_management is shared by every other client site;
     - `symbol { width: 100%; height: 100% }` — geometry properties do apply to
       <symbol> per SVG2, but Chrome computes the value and ignores it for the
       <use> viewport (verified on dev: computed width 100%, drawn size
       unchanged). CSS cannot add a viewBox either.

   So scale the <use> down instead. Factor = box ÷ the symbol's LARGER side, so
   the glyph fits on both axes; the translate re-centres it on the slack axis.
   SVG transform-origin is the view-box origin (0 0), hence top-left anchoring.
   `[*|href]` matches the attribute in any namespace — the markup writes
   `xlink:href`, which a plain [href] selector would not match, and @namespace
   is unusable here because these files are concatenated into one bundle.

   These factors are tied to the symbol dimensions listed above, and to the box
   sizes in the two rules above — change either and they need recomputing. If
   the plugin ever gives the referencing <svg> a viewBox, delete this block. */
.basic-info svg.icon > use[*|href='#sleeps'] {
  /* 21x24 -> 16 */
  transform: scale(0.667);
}

.basic-info svg.icon > use[*|href='#beds'] {
  /* 25x23 -> 16 */
  transform: translateY(0.65px) scale(0.64);
}

.basic-info svg.icon > use[*|href='#baths'] {
  /* 25x26 -> 16 */
  transform: translateX(0.3px) scale(0.615);
}

.sleep-card .ico-wrap svg.icon > use[*|href='#beds'] {
  /* 25x23 -> 24 */
  transform: translateY(0.98px) scale(0.96);
}

.sleep-card .ico-wrap svg.icon > use[*|href='#baths'] {
  /* 25x26 -> 24 */
  transform: translateX(0.46px) scale(0.923);
}

@media (max-width: 575px) {
  .section-title {
    font-size: 1.45rem;
  }

  #mainNav .container {
    min-height: var(--pm-header-offset);
    padding-left: 20px;
    padding-right: 20px;
  }

  #final-cta,
  #footer,
  #hero .container,
  #how-it-works,
  #local-exp,
  #owner-cta,
  #testimonials,
  #why-avada,
  #why-us {
    padding-left: 14px;
    padding-right: 14px;
  }

  #hero .container {
    padding-bottom: 0 !important;
  }

  #featured .container {
    padding-left: 0;
    padding-right: 0;
  }

  .section-title-pdp {
    font-size: 0.98rem;
  }
}

.owner-label,
.eyebrow-dark {
  color: var(--pm-accent);
}

/* ---------------------------------------------------------
   03 · BUTTONS
--------------------------------------------------------- */
.av404 .pop-link,
.btn-inq,
.btn-view {
  white-space: nowrap;
}

.elementor-button,
.elementor-heading-title,
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--pm-font-body) !important;
}

.btn-dark,
.btn-dark:hover,
.btn-or-outline,
.btn-or-outline:hover,
.cat-card,
.reviewbtn,
.similar-property-card {
  text-decoration: none;
}

.elementor-button {
  background-color: var(--pm-action) !important;
  border: 2px solid var(--pm-action) !important;
  border-radius: var(--pm-radius-md) !important;
  font-weight: 700 !important;
  text-transform: none !important;
  letter-spacing: 0.01em;
  padding: 0.72rem 1.5rem !important;
  transition:
    background-color 0.18s,
    border-color 0.18s,
    color 0.18s,
    box-shadow 0.18s,
    transform 0.15s;
}

.elementor-button:focus,
.elementor-button:hover {
  background-color: var(--pm-action-hover) !important;
  border-color: var(--pm-action-hover) !important;
  color: var(--pm-neutral-0) !important;
  box-shadow: 0 6px 20px var(--pm-action-glow);
  transform: translateY(-1px);
}

.elementor-button.elementor-button-link {
  background-color: transparent !important;
  border-color: transparent !important;
  color: var(--pm-text) !important;
}

.elementor-button.elementor-button-link:focus,
.elementor-button.elementor-button-link:hover {
  background-color: transparent !important;
  border-color: transparent !important;
  color: var(--pm-action) !important;
  box-shadow: none;
  transform: none;
}

.elementor-button.elementor-size-lg,
.elementor-button.elementor-size-md,
.elementor-button.elementor-size-sm,
.elementor-button.elementor-size-xl,
.elementor-button.elementor-size-xs {
  border-radius: var(--pm-radius-md) !important;
}

#book-now:hover,
#final-cta .btn-outline-white:hover,
#final-cta .btn-white:hover,
.btn-dark:hover,
.btn-ghost-white:hover,
.btn-or-outline:hover,
.btn-or:hover,
.btn-search:hover,
.btn-view:hover {
  transform: translateY(-1px);
}

.btn-or-outline:hover,
.btn-or:hover {
  border-color: var(--pm-action-hover);
}

.btn-or,
.btn-or-outline {
  font-weight: 700;
  padding: 0.72rem 1.5rem;
  letter-spacing: 0.01em;
}

.btn-dark,
.btn-ghost-white,
.btn-or,
.btn-or-outline {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.84rem;
  cursor: pointer;
  font-family: var(--pm-font-body);
}

.btn-or {
  background: var(--pm-action);
  color: var(--pm-neutral-0) !important;
  border-radius: var(--pm-radius-md);
  border: 2px solid var(--pm-action);
  transition:
    background 0.18s,
    transform 0.15s,
    box-shadow 0.18s;
}

.btn-ghost-white,
.btn-or-outline {
  background: 0 0;
  border-radius: var(--pm-radius-md);
}

.btn-or:hover {
  background: var(--pm-action-hover);
  color: var(--pm-neutral-0) !important;
  box-shadow: 0 6px 20px var(--pm-action-glow);
}

.btn-or-outline {
  color: var(--pm-action) !important;
  border: 2px solid var(--pm-action);
  transition:
    background 0.18s,
    transform 0.15s,
    border-color 0.18s,
    color 0.18s;
}

.btn-or-outline:hover {
  background: var(--pm-action-tint);
  color: var(--pm-action-hover) !important;
}

.pm-btn-brand {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-weight: 700;
  font-size: 0.84rem;
  padding: 0.72rem 1.5rem;
  border-radius: var(--pm-radius-md);
  cursor: pointer;
  font-family: var(--pm-font-body);
  letter-spacing: 0.01em;
}

.pm-btn-brand {
  background: var(--pm-action);
  color: var(--pm-neutral-0) !important;
  border: 2px solid var(--pm-action);
  transition:
    background 0.18s,
    box-shadow 0.18s;
}

.pm-btn-brand:hover {
  background: var(--pm-action-hover);
  color: var(--pm-neutral-0) !important;
  box-shadow: 0 6px 20px var(--pm-action-glow);
}

/* .btn-bl-outline moved to themes/stay-lbj-theme/site.css on 2026-08-07 — it
   depends on --pm-secondary-blue, which only stay-lbj-theme defines, so in core
   it resolved to nothing on every other theme. */

.btn-ghost-white {
  color: var(--pm-neutral-0) !important;
  font-weight: 600;
  padding: 0.7rem 1.45rem;
  border: 1.5px solid rgb(255, 255, 255, 0.45);
  transition:
    border-color 0.18s,
    background 0.18s,
    transform 0.15s;
}

.btn-ghost-white:hover {
  border-color: rgb(255, 255, 255, 0.85);
  background: rgb(255, 255, 255, 0.09);
  color: var(--pm-neutral-0) !important;
}

.btn-dark {
  background: var(--pm-brand-ink);
  color: var(--pm-neutral-0) !important;
  font-weight: 700;
  padding: 0.72rem 1.5rem;
  border-radius: var(--pm-radius-md);
  border: 2px solid var(--pm-brand-ink);
  transition:
    background 0.18s,
    transform 0.15s,
    box-shadow 0.18s,
    border-color 0.18s;
  letter-spacing: 0.01em;
}

.btn-dark:hover {
  background: var(--pm-ink-soft);
  border-color: var(--pm-ink-soft);
  color: var(--pm-neutral-0) !important;
  box-shadow: 0 6px 20px rgb(0, 0, 0, 0.15);
}

.btn-sidebar {
  width: 100%;
  background: var(--pm-action);
  color: var(--pm-neutral-0) !important;
  font-family: var(--pm-font-body);
  font-weight: 700;
  font-size: 0.78rem;
  padding: 0.6rem 1rem;
  border-radius: var(--pm-radius-md);
  border: 2px solid var(--pm-action);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.38rem;
}

/* Dark (ink) variant of .btn-sidebar — used in the sidebar Owner card. */
.btn-sidebar-dark {
  width: 100%;
  background: var(--pm-brand-ink);
  color: var(--pm-neutral-0) !important;
  font-family: var(--pm-font-body);
  font-weight: 700;
  font-size: 0.78rem;
  padding: 0.6rem 1rem;
  border-radius: var(--pm-radius-md);
  border: 2px solid var(--pm-brand-ink);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.38rem;
  transition:
    background 0.18s,
    border-color 0.18s,
    box-shadow 0.18s;
}

.btn-sidebar-dark:hover {
  background: var(--pm-ink-soft);
  border-color: var(--pm-ink-soft);
  color: var(--pm-neutral-0) !important;
  box-shadow: 0 6px 20px rgb(0, 0, 0, 0.15);
}

.btn-cta-ghost,
.btn-cta-primary {
  color: var(--pm-neutral-0) !important;
  font-family: var(--pm-font-body);
  font-size: 0.86rem;
  display: inline-flex;
  gap: 0.45rem;
  cursor: pointer;
}

.btn-cta-primary {
  background: var(--pm-action);
  border: 2px solid var(--pm-action);
  font-weight: 800;
  padding: 0.78rem 1.6rem;
  border-radius: var(--pm-radius-md);
  align-items: center;
}

.btn-cta-ghost {
  background: 0 0;
  border: 2px solid rgb(255, 255, 255, 0.5);
  font-weight: 700;
  padding: 0.76rem 1.55rem;
  border-radius: var(--pm-radius-md);
  align-items: center;
}

.av404 .btn-dark,
.av404 .btn-or-outline {
  align-items: center;
  gap: 0.45rem;
  font-size: 0.84rem;
  font-weight: 700;
  font-family: var(--pm-font-body);
  display: inline-flex;
  cursor: pointer;
}

.av404 .recovery-card .btn-dark,
.av404 .recovery-card .btn-or,
.av404 .recovery-card .btn-or-outline {
  font-size: 0.78rem;
  padding: 0.52rem 1.05rem;
  align-self: flex-start;
}

.av404 .btn-or-outline {
  background: 0 0;
  color: var(--pm-action);
  padding: 0.7rem 1.45rem;
  border-radius: var(--pm-radius-md);
  border: 2px solid var(--pm-action);
}

.av404 .btn-or-outline:hover {
  background: var(--pm-action-tint);
  color: var(--pm-action-hover);
}

.av404 .btn-dark {
  background: var(--pm-brand-ink);
  color: var(--pm-neutral-0);
  padding: 0.72rem 1.5rem;
  border-radius: var(--pm-radius-md);
  border: 2px solid var(--pm-brand-ink);
}

.btn-stepper,
.search-filter-button.amenity_btn_filter.active,
.search-filter-button.amenity_btn_filter.selected {
  background-color: var(--pm-action) !important;
  border-color: var(--pm-action) !important;
  color: var(--pm-neutral-0) !important;
}

.btn-primary,
.btn.btn-primary {
  background-color: var(--pm-action) !important;
  border-color: var(--pm-action) !important;
  border-radius: var(--pm-radius-md) !important;
  font-family: var(--pm-font-body);
  font-weight: 700;
  color: var(--pm-neutral-0) !important;
  transition:
    background-color 0.18s,
    box-shadow 0.18s;
}

.btn-primary:hover,
.btn.btn-primary:hover {
  background-color: var(--pm-action-hover) !important;
  border-color: var(--pm-action-hover) !important;
  box-shadow: 0 6px 20px var(--pm-action-glow);
}

/* Override rounded-pill on primary buttons to maintain consistent border-radius */
.btn.btn-primary.rounded-pill {
  border-radius: var(--pm-radius-md) !important;
}

.btn-outline-primary,
.btn.btn-outline-primary {
  background-color: transparent !important;
  border-color: var(--pm-action) !important;
  color: var(--pm-action) !important;
  border-radius: var(--pm-radius-md) !important;
  font-family: var(--pm-font-body);
  font-weight: 700;
  transition: background-color 0.18s;
}

.btn-outline-primary:hover,
.btn.btn-outline-primary:hover {
  background-color: var(--pm-action-tint) !important;
}

.btn-search:hover,
.btn-view:hover,
.similar-property-card:hover .similar-property-cta {
  background: var(--pm-action-hover);
}

.btn-search,
.hs-label {
  align-items: center;
  white-space: nowrap;
}

.btn-search,
.hs-input {
  border: none;
  font-size: 0.88rem;
  font-family: var(--pm-font-body);
  cursor: pointer;
}

.btn-search {
  background: var(--pm-action);
  color: var(--pm-neutral-0);
  border-radius: var(--pm-radius-md) !important;
  font-weight: 800;
  padding: 0 24px;
  min-height: 54px;
  display: flex;
  gap: 0.45rem;
  transition:
    background 0.18s,
    transform 0.15s,
    box-shadow 0.18s;
}

.btn-search:hover {
  box-shadow: 0 6px 20px var(--pm-action-glow);
}

.btn-view {
  background: var(--pm-action);
  border: 2px solid var(--pm-action);
  border-radius: var(--pm-radius-md);
  font-family: var(--pm-font-body);
  cursor: pointer;
  transition:
    background 0.15s,
    border-color 0.15s,
    transform 0.15s;
  letter-spacing: 0.01em;
}

.btn-view:hover {
  border-color: var(--pm-action-hover);
  color: var(--pm-neutral-0);
}

.btn-inq {
  color: var(--pm-text-muted);
  border: 1.5px solid var(--pm-border-strong);
  border-radius: var(--pm-radius-md);
  font-family: var(--pm-font-body);
  cursor: pointer;
  transition:
    border-color 0.15s,
    color 0.15s;
}

/* .av-about .local-cue-pill:hover,
.pm-about .local-cue-pill:hover,
.btn-inq:hover {
  border-color: var(--pm-brand);
  color: var(--pm-brand);
} */

#final-cta .btn-outline-white,
#final-cta .btn-white {
  display: inline-flex;
  align-items: center;
  color: var(--pm-neutral-0);
  gap: 0.45rem;
  font-family: var(--pm-font-body);
  cursor: pointer;
  font-size: 0.86rem;
}

#final-cta .btn-white {
  background: var(--pm-action);
  font-weight: 800;
  padding: 0.78rem 1.6rem;
  border-radius: var(--pm-radius-md);
  border: 2px solid var(--pm-action);
  transition:
    background 0.18s,
    border-color 0.18s,
    transform 0.15s,
    box-shadow 0.18s;
  letter-spacing: 0.01em;
}

#final-cta .btn-white:hover {
  background: var(--pm-action-hover);
  box-shadow: 0 6px 20px var(--pm-action-glow);
  color: var(--pm-neutral-0);
}

#final-cta .btn-outline-white {
  background: 0 0;
  font-weight: 700;
  padding: 0.76rem 1.55rem;
  border-radius: var(--pm-radius-md);
  border: 2px solid rgb(255, 255, 255, 0.55);
  transition:
    border-color 0.18s,
    background 0.18s,
    transform 0.15s;
}

#final-cta .btn-outline-white:hover {
  border-color: var(--pm-neutral-0);
  background: rgb(255, 255, 255, 0.1);
  color: var(--pm-neutral-0);
}

.btn-inq,
.btn-view {
  border-radius: var(--pm-radius-md);
  font-size: 0.73rem;
  font-weight: 800;
  padding: 0.58rem 0.9rem;
  min-height: 36px;
}

.btn-view {
  background: var(--pm-action);
  border-color: var(--pm-action);
  color: var(--pm-neutral-0);
}

.btn-inq {
  background: var(--pm-neutral-0);
  border: 1.5px solid rgb(var(--pm-brand-rgb), 0.55);
  color: #4b5563;
}

#amenities .btn-primary[data-bs-target='#amenities-modal'] {
  background: 0 0 !important;
  border: 1.5px solid var(--pm-action) !important;
  color: var(--pm-action) !important;
}

#amenities .btn-primary[data-bs-target='#amenities-modal']:hover,
.toggle-reviews:hover {
  background: var(--pm-action-tint) !important;
}

.btn-large {
  margin: auto;
  width: 100%;
}

.pm-property-top-info .btn-primary,
.property-type-label {
  background: var(--pm-brand) !important;
  color: var(--pm-neutral-0) !important;
  font-weight: 700;
  font-size: 0.84rem;
  padding: 0.5rem 1.2rem !important;
  border-radius: var(--pm-radius-md) !important;
  border: none !important;
}

#pdp-bottom-cta .btn-outline-primary {
  background: var(--pm-action) !important;
  color: var(--pm-neutral-0) !important;
  border: 2px solid var(--pm-action) !important;
  font-family: var(--pm-font-body);
  font-weight: 800;
  font-size: 0.86rem;
  padding: 0.78rem 1.6rem;
  border-radius: var(--pm-radius-md) !important;
  transition:
    background 0.18s,
    transform 0.15s,
    box-shadow 0.18s;
  letter-spacing: 0.01em;
}

#pdp-bottom-cta .btn-outline-primary:hover {
  background: var(--pm-action-hover) !important;
  border-color: var(--pm-action-hover) !important;
  transform: translateY(-1px);
  box-shadow: 0 6px 20px var(--pm-action-glow);
}

@media (max-width: 991px) {
  .btn-search {
    width: 100%;
    justify-content: center;
    min-height: 48px;
    border-radius: var(--pm-radius-md) !important;
  }
}

@media (max-width: 767px) {
  .av404 .search-card .btn-or-outline {
    width: 100%;
    justify-content: center;
  }
}

@media (max-width: 575px) {
  #featured .section-hdr,
  #featured .text-center.mt-5,
  .btn-inq,
  .btn-search .bsi,
  .faq-trust-hint,
  .hero-eyebrow,
  .hero-sub,
  .hero-trust-bar,
  .nav-brand-name span,
  .nav-brand-tag,
  .navbar-nav .nav-link.active::after,
  .prop-amens,
  .prop-facts,
  .prop-local-cue,
  .prop-photo-placeholder::after,
  .prop-price-from {
    display: none;
  }

  .btn-inq,
  .btn-view {
    flex: 1;
    justify-content: center;
    text-align: center;
    display: flex;
    align-items: center;
  }

  #mainNav .btn-or {
    width: 100%;
    justify-content: center;
    margin-top: 0.5rem;
  }

  .btn-search {
    width: 100%;
    min-height: 48px;
    border-radius: var(--pm-radius-md) !important;
    justify-content: center;
    font-size: 0.96rem;
    font-weight: 800;
    padding: 0 14px;
  }

  .btn-view {
    min-width: 76px;
    min-height: 36px;
    padding: 0.5rem 0.75rem;
    border-radius: var(--pm-radius-md);
    font-size: 0;
  }

  .btn-view::after {
    content: ' →';
  }

  .btn-view::before {
    content: 'View';
    font-size: 0.84rem;
  }
}

/* Custom search form, filter, and mobile action buttons */
.mfi-btn,
.single-version-form button.svf__btn,
.pf__btn-search,
.pf__mobile-steps .apply-filter-btn,
.mobile-search-btn,
.marker-btn.cluster,
.marker-btn.active,
.pf__btn-filter.active {
  background-color: var(--pm-brand) !important;
  color: var(--pm-text-on-brand) !important;
  border-radius: var(--pm-radius-md) !important;
  transition:
    background-color var(--pm-duration) var(--pm-ease),
    box-shadow var(--pm-duration) var(--pm-ease),
    transform var(--pm-duration) var(--pm-ease),
    border-color var(--pm-duration) var(--pm-ease) !important;
}

.mfi-btn,
.single-version-form button.svf__btn,
.pf__btn-search,
.pf__mobile-steps .apply-filter-btn,
.mobile-search-btn,
.marker-btn.cluster,
.marker-btn.active {
  border: none !important;
}

.pf__btn-filter.active {
  border-color: var(--pm-brand) !important;
}

.mfi-btn:hover,
.mfi-btn:focus,
.single-version-form button.svf__btn:hover,
.single-version-form button.svf__btn:focus,
.pf__btn-search:hover,
.pf__btn-search:focus,
.pf__mobile-steps .apply-filter-btn:hover,
.pf__mobile-steps .apply-filter-btn:focus,
.mobile-search-btn:hover,
.mobile-search-btn:focus,
.marker-btn.cluster:hover,
.marker-btn.cluster:focus,
.marker-btn.active:hover,
.marker-btn.active:focus,
.pf__btn-filter.active:hover,
.pf__btn-filter.active:focus {
  background-color: var(--pm-brand-hover) !important;
  color: var(--pm-text-on-brand) !important;
  box-shadow: 0 6px 20px var(--pm-brand-glow) !important;
  transform: translateY(-1px);
}

/* ---------------------------------------------------------
   04 · FORMS, SEARCH & FILTER WIDGETS
--------------------------------------------------------- */
.elementor-field-textual {
  background-color: var(--pm-surface);
  border: 1.5px solid var(--pm-border-strong);
  border-radius: var(--pm-radius-md);
  color: var(--pm-brand-ink);
  font-family: var(--pm-font-body);
}

.elementor-field-textual:focus {
  border-color: var(--pm-brand);
  box-shadow: 0 0 0 3px var(--pm-brand-glow);
  outline: 0;
}

.elementor-field-group label {
  color: var(--pm-text);
  font-family: var(--pm-font-body);
  font-weight: 600;
}

.amlabel,
.elementor-accordion-content,
.elementor-tab-content,
.side-avail-checker .row.due-today .col {
  color: var(--pm-text);
}

.elementor-post__title a:hover,
.policy-nav a:hover,
.share-btn:hover,
.side-avail-checker #avail-promo-section .svg-color,
.side-avail-checker #avail-promo-section i,
.uc_review .fa-star,
[data-elementor-type='footer'] .footer-brand-name span,
[data-elementor-type='footer'] .footer-contact-row a:hover,
[data-elementor-type='footer'] .footer-links a:hover {
  color: var(--pm-brand) !important;
}

.search-form-widget-main {
  margin-left: 0 !important;
  border-radius: var(--pm-radius-md) !important;
}

#hero::before,
.figma-img-placeholder,
.footer-brand-tag,
.footer-col-label,
.hs-label,
.owner-label,
.prop-loc,
.prop-photo-placeholder,
.similar-loc {
  text-transform: uppercase;
}

.search-filter-button.amenity_btn_filter {
  border-color: var(--pm-border-strong) !important;
  color: var(--pm-text) !important;
  border-radius: 999px !important;
  font-family: var(--pm-font-body);
  font-weight: 600;
  transition:
    background-color 0.18s,
    color 0.18s,
    border-color 0.18s;
}

.search-filter-button.amenity_btn_filter:hover {
  border-color: var(--pm-action) !important;
  color: var(--pm-action) !important;
}

#sort-wrappers select,
.sort-select,
input.form-control,
select.form-control,
textarea.form-control {
  border-radius: var(--pm-radius-md) !important;
  border-color: var(--pm-border-strong) !important;
  font-family: var(--pm-font-body);
  color: var(--pm-text);
}

input.form-control:focus,
textarea.form-control:focus {
  border-color: var(--pm-brand) !important;
  box-shadow: 0 0 0 3px var(--pm-brand-glow) !important;
  outline: 0;
}
.select2-container--default .select2-dropdown {
  background-color: var(--pm-surface);
  border: 1px solid var(--pm-border-strong);
  border-radius: var(--pm-radius-md);
  box-shadow: var(--pm-shadow-md);
  font-family: var(--pm-font-body);
  overflow: hidden;
  z-index: var(--pm-z-dropdown);
}

.select2-search--dropdown {
  background-color: var(--pm-surface-alt);
  border-bottom: 1px solid var(--pm-border);
  padding: 8px 10px;
}

.select2-search--dropdown .select2-search__field,
.select2-container--default .select2-search--dropdown .select2-search__field {
  background-color: var(--pm-surface);
  border: 1.5px solid var(--pm-border-strong);
  border-radius: var(--pm-radius-sm);
  box-shadow: none;
  box-sizing: border-box;
  color: var(--pm-text);
  font-family: var(--pm-font-body);
  font-size: 0.88rem;
  outline: none;
  padding: 6px 12px;
  transition:
    border-color 0.15s ease,
    box-shadow 0.15s ease;
  width: 100%;
}

.select2-search--dropdown .select2-search__field:focus,
.select2-container--default .select2-search--dropdown .select2-search__field:focus {
  border-color: var(--pm-brand) !important;
  box-shadow: 0 0 0 3px var(--pm-brand-glow) !important;
  outline: none !important;
}

.select2-container--default .select2-results__option {
  color: var(--pm-text);
  font-family: var(--pm-font-body);
  font-size: 0.88rem;
  padding: 8px 12px;
}

.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted {
  background-color: var(--pm-brand) !important;
  color: var(--pm-text-on-brand) !important;
}

.select2-container--default .select2-results__option[aria-selected='true'] {
  background-color: var(--pm-surface-alt);
  color: var(--pm-brand);
  font-weight: 600;
}

.select2-container--default .select2-selection--single {
  background-color: var(--pm-surface);
  border: 1.5px solid var(--pm-border-strong);
  border-radius: var(--pm-radius-md);
  height: 42px;
  line-height: 40px;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
  color: var(--pm-text);
  font-family: var(--pm-font-body);
  font-size: 0.88rem;
  line-height: 40px;
  padding-left: 14px;
  padding-right: 32px;
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 40px;
  right: 10px;
  width: 20px;
}

.select2-container--default.select2-container--open .select2-selection--single {
  border-color: var(--pm-brand);
  box-shadow: 0 0 0 3px var(--pm-brand-glow);
}

.figma-img-placeholder,
.hs-label {
  letter-spacing: 0.12em;
}

.hs-field {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0;
  flex: 1;
  min-width: 0;
  background: 0 0;
  border: none;
  border-radius: 0;
  padding: 10px 18px;
  cursor: pointer;
}

.hs-label {
  font-size: 0.62rem;
  font-weight: 700;
  color: var(--pm-text-subtle);
  display: flex;
  gap: 0.25rem;
  margin-bottom: 3px;
  line-height: 1;
}

.hs-input {
  font-weight: 700;
  color: var(--pm-brand-ink);
  background: 0 0;
  outline: 0;
  padding: 0;
  width: 100%;
  line-height: 1.3;
  -webkit-appearance: none;
  appearance: none;
}

.hs-input option {
  font-weight: 500;
}

.hs-divider {
  display: block;
  width: 1px;
  background: var(--pm-neutral-100);
  margin: 10px 0;
  flex-shrink: 0;
}

.hs-search-wrap {
  display: flex;
  align-items: stretch;
  flex-shrink: 0;
  padding-left: 4px;
}

#omnisend-embedded-v2-663d3930a7b506d4e2d68a4c,
#pdp-bottom-cta,
#pdp-bottom-cta h2,
.amenities span,
.toggle-reviews,
.top5-amenities span {
  font-family: var(--pm-font-body);
}

#book-now,
.reviewbtn a:active,
.reviewbtn a:hover,
.reviewbtn a:visited,
.side-avail-checker #avail-promo-section button {
  background-color: var(--pm-action) !important;
  color: var(--pm-neutral-0) !important;
}

.ui-datepicker-next span,
.ui-datepicker-prev span {
  background-image: none !important;
}

.ui-datepicker-next::before,
.ui-datepicker-prev::before {
  font-family: FontAwesome;
  position: absolute;
  inset: 0;
  display: flex;
  font-weight: 400;
  align-items: center;
  justify-content: center;
}

.ui-datepicker-prev::before {
  content: '\f053';
}

.ui-datepicker-next::before {
  content: '\f054';
}

.ui-datepicker {
  border: 0;
  width: auto !important;
}

table.ui-datepicker-calendar thead:first-child tr:first-child th {
  width: 14%;
}

.ui-datepicker-unselectable {
  background: var(--pm-neutral-0);
}

.ui-datepicker-calendar {
  font-size: 1em;
}

#book-now,
.bed-type,
.side-avail-checker .row.total {
  font-size: 1rem;
}

.ui-datepicker-calendar td > span {
  padding: 10px;
  border: 2px;
  border-radius: var(--pm-radius-md);
}

.side-avail-checker {
  box-sizing: border-box !important;
  padding: 24px 24px 12px !important;
  width: 100% !important;
  max-width: 100% !important;
}

.side-avail-checker .nigthly-rate-label {
  margin: -24px -24px 20px !important;
  padding: 1.1rem 1.4rem;
  background: var(--pm-brand-ink);
  font-size: 0.8rem;
  color: rgb(255, 255, 255, 0.55);
  font-weight: 500;
  display: flex;
  align-items: baseline;
  gap: 6px;
}

.side-avail-checker .side-section-header {
  font-size: 1.6rem;
  font-weight: 900;
  color: var(--pm-neutral-0);
  letter-spacing: -0.03em;
}

.side-avail-checker #form-wrapper {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  margin-bottom: 16px;
}

.side-avail-checker .input-section {
  background-color: var(--pm-surface) !important;
  border: 1.5px solid var(--pm-border-strong) !important;
  padding: 10px 14px !important;
  margin-bottom: 0 !important;
  transition:
    border-color 0.2s,
    box-shadow 0.2s,
    background-color 0.2s;
  position: relative;
  cursor: pointer;
  box-sizing: border-box;
}

.side-avail-checker #pm-div-date-arrive,
.side-avail-checker #pm-div-date-depart {
  border-bottom-right-radius: 0 !important;
  border-bottom-left-radius: 0 !important;
  display: block !important;
}

.side-avail-checker #pm-div-date-arrive {
  border-top-left-radius: var(--pm-radius-md) !important;
  border-top-right-radius: 0 !important;
  border-right-width: 0 !important;
}

.side-avail-checker #pm-div-date-depart {
  visibility: visible !important;
  opacity: 1 !important;
  border-top-right-radius: var(--pm-radius-md) !important;
  border-top-left-radius: 0 !important;
}

.side-avail-checker #pm-div-guests {
  border-radius: 0 0 var(--pm-radius-md) var(--pm-radius-md) !important;
  border-top-width: 0 !important;
  grid-column: 1 / span 2 !important;
  position: relative;
}

.side-avail-checker .input-section:hover {
  border-color: var(--pm-brand) !important;
  background-color: rgb(var(--pm-brand-rgb), 0.01) !important;
  z-index: 2;
}

.side-avail-checker .input-section label {
  display: block !important;
  font-size: 0.65rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--pm-brand-ink);
  margin-bottom: 2px;
  padding-left: 0 !important;
  margin-top: 0 !important;
}

.side-avail-checker .input-section input {
  border: none !important;
  background: 0 0 !important;
  padding: 0 !important;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--pm-text);
  width: 100%;
  height: auto;
  cursor: pointer;
  margin: 0 !important;
}

.side-avail-checker .input-section input[type='text'] {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

.side-avail-checker .input-section input::placeholder {
  color: var(--pm-text-subtle) !important;
}

.side-avail-checker #pm-div-guests i.fresh-icon.chevron-down {
  position: absolute;
  right: 16px;
  top: 52%;
  transform: translateY(-50%);
  color: var(--pm-text-muted);
  pointer-events: none;
  font-size: 0.85rem;
  margin: 0 !important;
}

.side-avail-checker #avail-promo-section {
  grid-column: 1 / span 2 !important;
  background-color: var(--pm-brand-tint) !important;
  border: 1px solid rgb(var(--pm-brand-rgb), 0.25) !important;
  border-radius: var(--pm-radius-lg) !important;
  padding: 12px 16px !important;
  margin-top: 16px !important;
  margin-bottom: 0 !important;
}

.side-avail-checker #avail-promo-section span {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--pm-brand-ink);
}

.side-avail-checker #avail-promo-section button {
  border-color: var(--pm-action) !important;
  font-size: 0.72rem;
  padding: 6px 16px !important;
  font-weight: 700;
  border-radius: 999px !important;
  transition:
    background-color 0.2s,
    box-shadow 0.2s;
  box-shadow: none !important;
}

.side-avail-checker #avail-promo-section button:hover {
  background-color: var(--pm-action-hover) !important;
  border-color: var(--pm-action-hover) !important;
}

.side-avail-checker #pm-button-book-now .border-top {
  border-top: 1px solid var(--pm-border) !important;
  margin-top: 16px !important;
  padding-top: 12px !important;
}

.side-avail-checker #pm-button-book-now {
  grid-column: 1 / span 2 !important;
  margin-top: 10px !important;
}

.side-avail-checker #pm-button-book-now .row {
  padding-bottom: 6px !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  align-items: center;
}

.side-avail-checker #pm-button-book-now .col {
  padding-left: 0 !important;
  padding-right: 0 !important;
  font-size: 0.88rem;
  color: var(--pm-text);
  font-weight: 500;
}

.side-avail-checker #pm-button-book-now .col.text-end,
.side-avail-checker #pm-button-book-now .col.value {
  color: var(--pm-brand-ink);
  font-weight: 600;
}

.side-avail-checker .toggle-fees {
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-color: var(--pm-border-strong);
  transition:
    color 0.18s,
    text-decoration-color 0.18s;
  user-select: none;
}

.side-avail-checker .toggle-fees:hover {
  color: var(--pm-brand);
  text-decoration-color: var(--pm-brand);
}

.side-avail-checker .toggle-fees i {
  font-size: 0.72rem;
  margin-left: 4px;
  vertical-align: middle;
}

.side-avail-checker .fee-details {
  background-color: var(--pm-surface-alt);
  border-radius: var(--pm-radius-md);
  padding: 8px 14px !important;
  margin: 8px 0 !important;
  border: 1px solid var(--pm-border);
}

.side-avail-checker .fee-details .row .col {
  color: var(--pm-text-muted);
  font-size: 0.8rem;
}

.side-avail-checker .fee-details .row .text-end {
  color: var(--pm-text);
  font-weight: 600;
}

.side-avail-checker .row.total .col.bold,
.side-avail-checker .row.total .value.bold {
  font-weight: 800 !important;
  color: var(--pm-brand-ink) !important;
}

.side-avail-checker .row.due-today {
  font-size: 0.95rem;
}

.pm-property-top-info ul li span,
.side-avail-checker .row.due-today .text-end {
  font-weight: 700;
  color: var(--pm-brand-ink);
}

.side-avail-checker .text-center {
  font-size: 0.78rem;
  color: var(--pm-text-muted);
  margin-top: 10px;
}

#calendar-popup .pm_selected_checkin_day a,
#calendar-popup .pm_selected_checkout_day a,
#calendar-popup td.pm_selected_checkin_day a,
#calendar-popup td.pm_selected_checkout_day a,
#calendar-popup td.pm_selected_day a,
#calendar-popup td.pm_selected_day span,
#ui-datepicker-div td.pm_selected_checkin_day a,
#ui-datepicker-div td.pm_selected_checkout_day a {
  background: var(--pm-brand) !important;
  color: var(--pm-neutral-0) !important;
  font-weight: 700 !important;
}

#calendar-popup .pm_selected_day,
.fresh-calendar .pm_selected_day {
  background: rgb(var(--pm-brand-rgb), 0.18) !important;
}

#calendar-popup .pm_selected_checkout_day,
.fresh-calendar .pm_selected_checkout_day {
  background: linear-gradient(
    90deg,
    rgb(var(--pm-brand-rgb), 0.18) 50%,
    var(--pm-neutral-0) 50%
  ) !important;
}

#calendar-popup .pm_selected_checkin_day,
.fresh-calendar .pm_selected_checkin_day {
  background: linear-gradient(
    90deg,
    var(--pm-neutral-0) 50%,
    rgb(var(--pm-brand-rgb), 0.18) 50%
  ) !important;
}

#amenities.border-top,
#availability.border-top,
#map-section.border-top,
.description-section.border-top,
.similar-properties-section.border-top,
.sleeping-arrangements-section.border-top {
  border-top: none;
}

.side-avail-checker .custom-scrollbar {
  overflow-y: hidden;
}

#availability,
#similar-properties {
  margin-top: 0;
  padding-top: 1.5rem;
}

.side-avail-checker {
  overflow-y: hidden !important;
}

.side-avail-checker .bw-trust {
  margin: 0 -24px -20px !important;
  padding: 1.1rem 1.4rem;
}

@media (max-width: 991px) {
  .hs-field {
    flex: unset;
    padding: 10px 14px;
    border-bottom: 1px solid var(--pm-neutral-100);
    border-radius: 0;
  }

  .hs-field:last-of-type {
    border-bottom: none;
  }

  .hs-divider {
    display: none;
  }

  .hs-search-wrap {
    padding-left: 0;
    padding-top: 8px;
    align-self: stretch;
  }
}

@media (max-width: 575px) {
  .hs-divider {
    display: none !important;
  }

  .hs-field {
    min-height: 48px;
    padding: 0 12px;
    justify-content: center;
    border: 1px solid #e2e6e6 !important;
    border-radius: 8px !important;
    background: #f8fafa;
  }

  .hs-dest-field {
    grid-column: 1/-1;
  }

  .hs-guests-field {
    grid-column: 1/2;
  }

  .hs-search-wrap {
    grid-column: 2/3;
    padding: 0;
    align-self: stretch;
  }

  .hs-label {
    font-size: 0;
    margin: 0;
    letter-spacing: 0;
    color: #667085;
  }

  .hs-label .bsi,
  .hs-label .prop-emoji-icon {
    font-size: 1rem;
    width: 1rem;
    height: 1rem;
    margin-right: 0.35rem !important;
    color: #ef4f2b;
  }

  .hs-input {
    font-size: 0.96rem;
    font-weight: 500;
    color: #667085;
    line-height: 1.2;
  }

  .hs-input::placeholder {
    color: #667085;
    opacity: 1;
  }
}

@media screen and (max-width: 1078px) {
  .ui-datepicker-group {
    width: 100% !important;
  }
}

@media screen and (max-width: 1152px) {
  .ui-datepicker-multi-2 .ui-datepicker-group {
    width: 100%;
  }
}

/* ---------------------------------------------------------
   05 · PROPERTY / LISTING CARDS
--------------------------------------------------------- */
.elementor-accordion-title,
.elementor-icon-box-title,
.elementor-tab-title,
.fresh-cards .property_card_title {
  color: var(--pm-brand-ink);
  font-family: var(--pm-font-body);
  font-weight: 700;
}

.elementor-icon-box-description,
.elementor-post__excerpt,
.elementor-post__excerpt p,
.elementor-widget-awayday-header-nav-widget .navbar-nav .nav-link,
.property_card .night-label,
.sleep-card p {
  color: var(--pm-text-muted);
}

/* Specificity-matched against the plugin's own
   .fresh-cards .property_card.property-card-v2 (0,3,0) rule instead of
   !important, so ours still wins purely on the cascade. */
.fresh-cards .property_card.property-card-v2,
.fresh-cards .property_card {
  border-radius: var(--pm-radius-lg);
  box-shadow: var(--pm-shadow-sm);
}

.property_card .price.value {
  color: var(--pm-brand-ink);
  font-weight: 900;
}

.property_card .regular {
  color: var(--pm-text-subtle);
}

.fresh-cards {
  --promo-tag-bg: var(--pm-brand);
  --promo-tag-color: var(--pm-neutral-0);
}

.fresh-cards .property_card.featured-card {
  box-shadow:
    0 2px 16px rgb(var(--pm-brand-rgb), 0.1),
    0 1px 4px rgb(0, 0, 0, 0.05);
}

.fresh-cards .badge-available,
.fresh-cards .p-badge-avail {
  background-color: var(--pm-success-tint) !important;
  color: var(--pm-success) !important;
  border-radius: 999px;
  font-weight: 700;
}

.fresh-cards .featured_text,
.fresh-cards .p-badge-feat {
  background-color: var(--pm-brand) !important;
  border-radius: 999px !important;
  color: var(--pm-neutral-0) !important;
}

.elementor-widget-awayday-header-nav-widget .navbar-nav .nav-link.active,
.elementor-widget-awayday-header-nav-widget .navbar-nav .nav-link:hover,
.navbar-nav .nav-link.active,
.prop-name,
.sleep-card h5 {
  color: var(--pm-brand-ink);
}

#process-faq,
#stay-faq,
.basic-info > div,
.cat-card,
.promo-slider .card,
.sleep-card {
  background: var(--pm-surface-alt);
}

.results-map-wrapper {
  border-radius: var(--pm-radius-lg) 0 0 var(--pm-radius-lg);
  overflow: hidden;
}

#featured,
#local-exp,
.prop-card,
.step-card {
  background: var(--pm-surface);
}

#featured,
.prop-footer {
  border-top: 1px solid var(--pm-border);
}

.prop-card {
  border-radius: var(--pm-radius-xl);
  box-shadow:
    0 2px 16px rgb(0, 0, 0, 0.08),
    0 1px 4px rgb(0, 0, 0, 0.04);
  height: 100%;
  display: flex;
  flex-direction: column;
}

.prop-card:hover {
  box-shadow:
    0 16px 52px rgb(0, 0, 0, 0.13),
    0 4px 16px rgb(0, 0, 0, 0.06);
}

.prop-card.featured-card {
  border-top: 3px solid var(--pm-brand);
  box-shadow:
    0 2px 16px rgb(var(--pm-brand-rgb), 0.1),
    0 1px 4px rgb(0, 0, 0, 0.05);
}

.prop-img {
  flex-shrink: 0;
}

.prop-img img,
.similar-property-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s;
}

.footer-legal a,
.footer-links a,
.prop-save {
  transition: color 0.15s;
}

.prop-card:hover .prop-img img,
.similar-card:hover .similar-img img,
.similar-property-card:hover .similar-property-image img {
  transform: scale(1.04);
}

.prop-badges {
  position: absolute;
  display: flex;
  gap: 5px;
}

.prop-save {
  position: absolute;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--pm-text-muted);
  cursor: pointer;
  backdrop-filter: blur(4px);
}

.prop-save.saved,
.prop-save:hover {
  color: #c0392b;
}

.prop-body {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.prop-loc {
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--pm-text-subtle);
  display: flex;
  align-items: center;
}

.prop-amens,
.prop-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
}

.prop-local-cue {
  color: var(--pm-brand);
  gap: 0.3rem;
  margin-bottom: 0;
}

.prop-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: var(--pm-surface-alt);
  flex-shrink: 0;
  gap: 0.5rem;
}

.prop-price-from {
  color: var(--pm-text-subtle);
  font-weight: 500;
  display: block;
  line-height: 1.2;
}

.prop-price-val {
  color: var(--pm-brand-ink);
  line-height: 1;
}

.prop-price-unit {
  color: var(--pm-text-muted);
  font-weight: 500;
}

.footer-links li,
.sleep-card .ico-wrap {
  margin-bottom: 0.5rem;
}

.p-badge,
.prop-photo-placeholder {
  font-size: 0.62rem;
  font-weight: 800;
}

.prop-card.featured-card .prop-img,
.prop-img {
  height: 170px;
}

.prop-card {
  border-radius: 14px;
  overflow: hidden;
  background: var(--pm-neutral-0);
  border: 1px solid rgb(17, 24, 39, 0.08);
  box-shadow: 0 8px 24px rgb(0, 0, 0, 0.1);
  transition:
    transform 0.2s,
    box-shadow 0.2s,
    border-color 0.2s;
}

.prop-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 44px rgb(0, 0, 0, 0.14);
}

.prop-card.featured-card {
  border: 2px solid var(--pm-brand);
  box-shadow:
    0 10px 28px rgb(var(--pm-brand-rgb), 0.14),
    0 2px 10px rgb(0, 0, 0, 0.06);
}

.prop-img {
  overflow: hidden;
  background: var(--pm-neutral-100);
}

.prop-photo-placeholder {
  width: 100%;
  height: 100%;
  overflow: hidden;
  display: block;
  color: rgb(255, 255, 255, 0.75);
  letter-spacing: 0.12em;
}

.prop-photo-placeholder::after {
  content: 'Replace with property photo in Figma';
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0.28;
  text-align: center;
  padding: 1rem;
}

.prop-photo-placeholder.photo-1 {
  background:
    linear-gradient(to bottom, rgb(15, 15, 15, 0.08), rgb(15, 15, 15, 0.35)),
    radial-gradient(circle at 70% 20%, rgb(247, 181, 131, 0.42), transparent 28%),
    linear-gradient(155deg, #d8c7aa 0, #a3ad9e 36%, #45624f 64%, #25362f 100%);
}

.prop-photo-placeholder.photo-2 {
  background:
    linear-gradient(to bottom, rgb(15, 15, 15, 0.08), rgb(15, 15, 15, 0.32)),
    radial-gradient(circle at 75% 20%, rgb(255, 255, 255, 0.25), transparent 24%),
    linear-gradient(145deg, #9ea7a3 0, #7a5d4b 30%, #d8d2c6 58%, #4f3a2d 100%);
}

.prop-photo-placeholder.photo-3 {
  background:
    linear-gradient(to bottom, rgb(15, 15, 15, 0.12), rgb(15, 15, 15, 0.44)),
    radial-gradient(circle at 35% 22%, rgb(247, 181, 131, 0.38), transparent 24%),
    linear-gradient(160deg, #ede2cf 0, #b49c7d 30%, #635f51 56%, #202b25 100%);
}

.prop-badges {
  top: 10px;
  left: 10px;
  gap: 6px;
}

.prop-save {
  top: 10px;
  right: 10px;
  width: 28px;
  height: 28px;
  font-size: 0.9rem;
  color: #98a1a7;
  background: rgb(255, 255, 255, 0.94);
  border: 1px solid rgb(255, 255, 255, 0.55);
}

.prop-body {
  padding: 1.15rem 1.15rem 0.85rem;
  flex: 1;
}

.prop-loc {
  font-size: 0.66rem;
  letter-spacing: 0.14em;
  color: #7b8389;
  margin-bottom: 0.35rem;
  gap: 0.25rem;
}

.prop-emoji-icon {
  font-size: 0.68rem;
  color: var(--pm-brand);
  display: inline-block;
  line-height: 1;
}

.prop-name {
  font-size: 1.05rem;
  line-height: 1.2;
  margin-bottom: 0.45rem;
  font-weight: 800;
}

.prop-rating {
  font-size: 0.73rem;
  color: var(--pm-neutral-500);
  margin-bottom: 0.65rem;
  display: flex;
  align-items: center;
  gap: 0.25rem;
}

.prop-stars {
  color: var(--pm-brand);
  letter-spacing: 0.06em;
  font-weight: 800;
}

.prop-amens,
.prop-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-bottom: 0.55rem;
}

.prop-local-cue {
  color: var(--pm-brand);
  font-size: 0.72rem;
  font-weight: 700;
  margin-top: 0.35rem;
  padding-top: 0.2rem;
  gap: 0.25rem;
}

.prop-footer {
  background: #f8fafa;
  padding: 0.85rem 1.15rem;
  border-top: 1px solid #eef0f0;
  margin-top: 0;
  gap: 0.75rem;
}

.prop-price-from {
  font-size: 0.64rem;
  color: #8a9298;
  margin-bottom: 0.12rem;
}

.prop-price-val {
  font-size: 1.28rem;
  font-weight: 900;
  letter-spacing: -0.03em;
}

.prop-price-unit {
  font-size: 0.68rem;
  color: var(--pm-neutral-500);
}

.similar-property-card {
  display: flex;
  flex-direction: column;
  background: var(--pm-surface);
  border: 1px solid rgb(17, 24, 39, 0.07);
  border-radius: var(--pm-radius-xl);
  overflow: hidden;
  box-shadow: 0 6px 20px rgb(17, 24, 39, 0.14);
  color: inherit;
  transition:
    transform 0.2s,
    box-shadow 0.2s;
}

.similar-property-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 32px rgb(17, 24, 39, 0.18);
  color: inherit;
}

.sleep-card .ico-wrap {
  font-size: 1.5rem;
  color: var(--pm-brand);
}

.room-arrangement-card,
.sleep-card {
  padding: 1rem 1.1rem;
  text-align: center;
}

.room-arrangement-card .description,
.sleep-card p {
  font-family: var(--pm-font-body);
  font-size: 0.72rem;
  color: var(--pm-text-muted);
  margin: 0;
}

.bathroom-name,
.otherroom-name,
.promo-slider .card .title,
.room-name,
.sleep-card h5 {
  font-weight: 800;
  color: var(--pm-brand-ink);
  font-family: var(--pm-font-body);
}

.sleep-card {
  border: 1px solid var(--pm-border);
  border-radius: var(--pm-radius-lg);
  height: 100%;
}

.sleep-card h5 {
  font-size: 0.8rem;
  margin-bottom: 0.25rem;
}

.prop-detail-all-images {
  display: none;
  position: fixed;
  z-index: 10000;
  padding-top: 100px;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
  background-color: rgb(0, 0, 0, 0.4);
}

.prop-title-header {
  font-family: var(--pm-font-body);
  font-size: clamp(1.5rem, 2.6vw, 2.1rem);
  font-weight: 800;
  color: var(--pm-brand-ink);
  letter-spacing: -0.02em;
  margin-bottom: 0.4rem;
}

.prop-detail-nav-content {
  float: left;
  display: block;
  font-family: var(--pm-font-body) !important;
  color: var(--pm-text-muted) !important;
  text-align: center;
  padding: 14px 18px;
  text-decoration: none !important;
  font-size: 0.85rem !important;
  font-weight: 600 !important;
  border-bottom: 2px solid transparent;
  transition:
    color 0.15s,
    border-color 0.15s;
}

.prop-detail-nav-content.nav-active {
  color: var(--pm-brand);
  font-weight: 700;
  border-bottom-color: var(--pm-brand);
}

@media (max-width: 575px) {
  .prop-footer {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.65rem;
  }

  .prop-card,
  .prop-card.featured-card {
    border: 0;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 18px rgb(17, 24, 39, 0.1);
    background: var(--pm-neutral-0);
  }

  .prop-card.featured-card .prop-img,
  .prop-img {
    height: 104px;
  }

  .prop-photo-placeholder.photo-1 {
    background:
      linear-gradient(to bottom, rgb(0, 0, 0, 0.05), rgb(0, 0, 0, 0.25)),
      radial-gradient(circle at 20% 20%, rgb(247, 181, 131, 0.45), transparent 22%),
      linear-gradient(135deg, #dd9d4b 0, #8a9a67 35%, #41553f 60%, #3a2a1d 100%);
  }

  .prop-photo-placeholder.photo-2 {
    background:
      linear-gradient(to bottom, rgb(0, 0, 0, 0.05), rgb(0, 0, 0, 0.25)),
      radial-gradient(circle at 35% 30%, rgb(247, 181, 131, 0.4), transparent 22%),
      linear-gradient(145deg, #547449 0, #8b6d3f 34%, #4b3829 62%, #1e2a22 100%);
  }

  .prop-photo-placeholder.photo-3 {
    background:
      linear-gradient(to bottom, rgb(0, 0, 0, 0.05), rgb(0, 0, 0, 0.27)),
      linear-gradient(150deg, #9b6f45 0, #445f45 42%, #293c2f 100%);
  }

  .prop-badges {
    top: 8px;
    left: 10px;
  }

  .prop-save {
    width: 26px;
    height: 26px;
    top: 8px;
    right: 8px;
    font-size: 0.85rem;
  }

  .prop-body {
    padding: 0.95rem 0.9rem 0.55rem;
  }

  .prop-loc {
    font-size: 0.84rem;
    letter-spacing: 0;
    text-transform: none;
    color: #7b8389;
    margin-bottom: 0.18rem;
  }

  .prop-name {
    font-size: 1.16rem;
    margin-bottom: 0.34rem;
    color: #101010;
  }

  .prop-rating {
    font-size: 0.82rem;
    gap: 0.18rem;
    margin-bottom: 0.42rem;
  }

  .prop-stars {
    letter-spacing: 0.01em;
    color: #f5b52e;
  }

  .prop-footer {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    background: var(--pm-neutral-0);
    border-top: 0;
    padding: 0 0.9rem 0.95rem;
  }

  .prop-price-val {
    font-size: 1.24rem;
  }

  .prop-price-unit {
    font-size: 0.82rem;
  }

  .prop-footer .d-flex {
    width: auto !important;
    gap: 0 !important;
  }
}

/* ---------------------------------------------------------
   06 · CONTENT CARDS (posts, categories)
--------------------------------------------------------- */
.elementor-post {
  background-color: var(--pm-surface);
  border-radius: var(--pm-radius-lg);
  box-shadow: var(--pm-shadow-sm);
  overflow: hidden;
  transition:
    box-shadow 0.2s,
    transform 0.2s;
}

.elementor-post:hover {
  box-shadow: var(--pm-shadow-card);
  transform: translateY(-2px);
}

.elementor-post__title,
.elementor-post__title a {
  color: var(--pm-brand-ink) !important;
  font-family: var(--pm-font-body);
  font-weight: 700;
}

.elementor-post__read-more {
  color: var(--pm-brand);
  font-weight: 700;
}

.av-accessibility .legal-link-card:hover,
.pm-accessibility .legal-link-card:hover,
.cat-card:hover,
.legal-link-card:hover {
  border-color: var(--pm-brand);
  background: var(--pm-brand-tint);
  box-shadow: var(--pm-shadow-sm);
}

.av-accessibility .legal-card-sub,
.pm-accessibility .legal-card-sub,
.cat-card span,
.legal-card-sub {
  font-size: 0.7rem;
  color: var(--pm-text-subtle);
}

.cat-card {
  gap: 0.85rem;
  border: 1.5px solid var(--pm-border);
  border-radius: var(--pm-radius-xl);
  padding: 1.1rem 1.2rem;
  cursor: pointer;
  transition:
    border-color 0.15s,
    background 0.15s,
    box-shadow 0.15s;
  height: 100%;
}

.cat-card h4 {
  font-size: 0.85rem;
  font-weight: 800;
  color: var(--pm-brand-ink) !important;
  margin-bottom: 0.1rem;
}

/* ---------------------------------------------------------
   07 · HEADER / NAV
--------------------------------------------------------- */
[data-elementor-type='header'] {
  background-color: var(--pm-surface);
  border-bottom: 1px solid var(--pm-border);
}

.uc-mega_menu_title,
.uc-mega_menu_title a {
  color: var(--pm-text-muted) !important;
  font-family: var(--pm-font-body);
  font-weight: 600;
  transition: color 0.15s;
}

.uc-mega_menu_title a:hover,
.uc-mega_menu_title:hover {
  color: var(--pm-brand-ink) !important;
}

.sticky-filters {
  background-color: var(--pm-surface) !important;
  border-bottom: 1px solid var(--pm-border) !important;
}

.navbar-nav .nav-link.active::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0.85rem;
  right: 0.85rem;
  height: 2px;
  background: var(--pm-brand);
  border-radius: 2px;
}

.breadcrumbs,
.prop_det_featured_text {
  font-family: var(--pm-font-body);
  margin-bottom: 1rem;
}

.breadcrumbs {
  font-size: 0.78rem;
  color: var(--pm-text-subtle);
}

.breadcrumbs a {
  color: var(--pm-text-subtle);
  text-decoration: none;
}

#content-navbar {
  background-color: var(--pm-surface) !important;
  border-bottom: 1px solid var(--pm-border);
  margin-top: 0;
  margin-bottom: 30px;
  z-index: 1;
  min-height: 50px;
}

#content-navbar a {
  text-decoration: none;
  font-weight: 400;
  font-size: 1rem;
  line-height: 1em;
}

@media (max-width: 575px) {
  #mainNav {
    border-bottom: 0;
    position: sticky;
    top: 0;
  }

  .navbar-toggler {
    border: 0;
    padding: 0;
  }

  .navbar-toggler .bsi {
    width: 24px;
    height: 24px;
  }

  .navbar-collapse {
    padding: 0.85rem 0 1rem;
  }

  .navbar-nav .nav-link {
    padding: 0.7rem 0;
  }
}

/* ---------------------------------------------------------
   08 · FOOTER
--------------------------------------------------------- */
.elementor-icon-box-title a,
[data-elementor-type='footer'] .elementor-heading-title,
[data-elementor-type='footer'] h1,
[data-elementor-type='footer'] h2,
[data-elementor-type='footer'] h3,
[data-elementor-type='footer'] h4,
[data-elementor-type='footer'] h5,
[data-elementor-type='footer'] h6,
[data-elementor-type='footer'] p,
[data-elementor-type='footer'] span {
  color: inherit !important;
}

[data-elementor-type='footer'] {
  background-color: var(--pm-surface-darker);
  color: var(--text-on-dark-subtle);
  font-family: var(--pm-font-body);
  padding: var(--section-padding-y) var(--section-padding-x) !important;
}

[data-elementor-type='footer'] .e-con {
  padding: 0 !important;
}

[data-elementor-type='footer'] .footer-brand-name {
  color: var(--pm-neutral-0) !important;
  font-weight: 900;
  font-size: 1.15rem;
  letter-spacing: -0.01em;
  margin: 0;
}

[data-elementor-type='footer'] .footer-brand-tag {
  font-size: 0.58rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-on-dark-muted) !important;
  margin-bottom: 0.85rem;
  display: block;
}

[data-elementor-type='footer'] .footer-brand-desc {
  color: var(--text-on-dark-muted) !important;
}

[data-elementor-type='footer'] .footer-contact-row {
  color: var(--text-on-dark-muted) !important;
}

[data-elementor-type='footer'] .footer-contact-row a {
  color: var(--text-on-dark-muted) !important;
  text-decoration: none !important;
}

.pm-property-basic-info .lh-1 i,
.pm-property-basic-info .lh-1 svg,
[data-elementor-type='footer'] .footer-contact-row i,
[data-elementor-type='footer'] .footer-contact-row svg,
[data-elementor-type='footer'] .footer-contact-row svg path {
  color: var(--pm-brand) !important;
  fill: currentColor !important;
}

[data-elementor-type='footer'] .footer-col-label {
  color: var(--text-on-dark-muted) !important;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

[data-elementor-type='footer'] .footer-links a {
  color: var(--text-on-dark-muted) !important;
  transition: color 0.15s;
}

[data-elementor-type='footer'] .footer-hr {
  border-color: rgb(255, 255, 255, 0.08) !important;
}

[data-elementor-type='footer'] .footer-copy {
  color: var(--text-on-dark-muted) !important;
}

.footer-legal .elementor-icon-list-items {
  display: flex !important;
  flex-flow: row wrap !important;
  gap: 1.5rem !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.footer-legal .elementor-icon-list-item {
  margin: 0 !important;
  padding: 0 !important;
}

.footer-legal a {
  color: var(--text-on-dark-muted) !important;
}

.footer-legal a:hover {
  color: var(--text-on-dark-subtle) !important;
}

.e-con:has(> .e-con-inner > .footer-copy):has(> .e-con-inner > .footer-legal) > .e-con-inner,
.e-con:has(> .footer-copy):has(> .footer-legal) {
  display: flex !important;
  flex-flow: row wrap !important;
  justify-content: space-between !important;
  align-items: center !important;
  gap: 1rem !important;
  width: 100% !important;
}

.av-accessibility .policy-nav,
.pm-accessibility .policy-nav,
.footer-links,
.policy-nav {
  list-style: none;
  padding: 0;
  margin: 0;
}

#footer {
  background: #0f110f;
  padding: 64px 0 32px;
  color: rgb(255, 255, 255, 0.55);
}

.footer-brand {
  margin-bottom: 0.3rem;
}

.footer-brand-name {
  font-size: 1rem;
  font-weight: 900;
  color: var(--pm-neutral-0);
  letter-spacing: -0.01em;
}

.footer-brand-tag {
  font-size: 0.58rem;
  letter-spacing: 0.14em;
  color: rgb(255, 255, 255, 0.25);
  margin-bottom: 0.85rem;
  display: block;
}

.footer-brand-desc {
  font-size: 0.78rem;
  line-height: 1.7;
  color: rgb(255, 255, 255, 0.4);
  max-width: 230px;
  margin-bottom: 1rem;
}

.footer-contact-row {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.75rem;
  color: rgb(255, 255, 255, 0.35);
  margin-bottom: 0.4rem;
}

.footer-contact-row i,
.qf-pill .fa,
.qf-pill .ico {
  color: var(--pm-brand);
  font-size: 0.78rem;
}

.footer-col-label {
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  color: rgb(255, 255, 255, 0.22);
  margin-bottom: 0.9rem;
  display: block;
}

.footer-links a {
  font-size: 0.78rem;
  color: rgb(255, 255, 255, 0.45);
}

.footer-copy,
.footer-legal a {
  font-size: 0.7rem;
}

.footer-hr {
  border-color: rgb(255, 255, 255, 0.07);
  margin: 2.2rem 0 1.4rem;
}

.footer-copy {
  color: rgb(255, 255, 255, 0.2);
}

@media (max-width: 767px) {
  .e-con:has(> .e-con-inner > .footer-copy):has(> .e-con-inner > .footer-legal) > .e-con-inner,
  .e-con:has(> .footer-copy):has(> .footer-legal) {
    flex-direction: column !important;
    justify-content: center !important;
    text-align: center !important;
    gap: 0.75rem !important;
  }
}

/* ---------------------------------------------------------
   09 · HERO / CTA BANDS (shared across pages)
--------------------------------------------------------- */
#bottom-cta::before,
#pdp-bottom-cta::before {
  transform: translate(-50%, -50%);
  pointer-events: none;
}

.elementor-cta {
  border-radius: var(--pm-radius-xl);
}

.elementor-cta__title {
  color: var(--pm-neutral-0);
  font-family: var(--pm-font-body);
  font-weight: 800;
}

#promo-section .section-header,
.av-about .audience-bullets li:last-child,
.pm-about .audience-bullets li:last-child,
.av-accessibility .policy-nav li:last-child,
.pm-accessibility .policy-nav li:last-child,
.av-accessibility .policy-ul li:last-child,
.pm-accessibility .policy-ul li:last-child,
.exp-bullet:last-child,
.policy-nav li:last-child,
.policy-ul li:last-child {
  border-bottom: none;
}

#hero::before {
  letter-spacing: 0.16em;
  z-index: 0;
  inset: 0;
  pointer-events: none;
}

#bottom-cta,
.av-accessibility #bottom-cta,
.pm-accessibility #bottom-cta {
  background: var(--pm-brand-ink);
  padding: 68px 0;
  text-align: center;
  position: relative;
  overflow: hidden;
}

#bottom-cta::before {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  width: 600px;
  height: 600px;
  background: radial-gradient(circle, var(--pm-brand-glow) 0, transparent 65%);
}

#bottom-cta::after,
#pdp-bottom-cta::after,
.av-about #bottom-cta::after,
.pm-about #bottom-cta::after,
.av-accessibility #bottom-cta::after,
.pm-accessibility #bottom-cta::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--pm-brand), var(--pm-accent), transparent);
}

#bottom-cta h2,
.av-accessibility #bottom-cta h2,
.pm-accessibility #bottom-cta h2 {
  font-size: clamp(1.3rem, 2.5vw, 1.9rem);
  font-weight: 900;
  color: var(--pm-neutral-0);
  margin-bottom: 0.55rem;
  letter-spacing: -0.02em;
}

#bottom-cta p {
  font-size: 0.88rem;
  color: rgb(255, 255, 255, 0.58);
  max-width: 420px;
  margin: 0 auto 1.6rem;
  line-height: 1.8;
}

#final-cta h2,
.av404 .err-h1,
.hero-h1 {
  letter-spacing: -0.025em;
}

#final-cta,
.figma-img-placeholder,
.img-captions,
.reviewbtn,
.section-hdr-center,
.step-card {
  text-align: center;
}

#hero {
  background: linear-gradient(
    135deg,
    rgb(25, 49, 44, 0.96) 0,
    rgb(58, 83, 69, 0.92) 42%,
    rgb(15, 15, 15, 0.92) 100%
  );
  min-height: 580px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: var(--hero-padding-y) 0 0;
  position: relative;
}

#hero::before {
  content: 'HERO IMAGE PLACEHOLDER — Replace with cabin / Smoky Mountain hero photo in Figma';
  position: absolute;
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
  padding: 7rem 3rem 0 0;
  color: rgb(255, 255, 255, 0.24);
  font-size: 0.72rem;
  font-weight: 800;
}

#final-cta::before,
#owner-cta::after,
#owner-cta::before {
  content: '';
  position: absolute;
}

#owner-cta,
.av-about #trust-values,
.pm-about #trust-values {
  background: var(--pm-brand-ink);
  padding: var(--section-padding-y) 0;
  position: relative;
  overflow: hidden;
}

#owner-cta::before {
  top: -200px;
  right: -100px;
  width: 600px;
  height: 600px;
  background: radial-gradient(circle, rgb(var(--pm-brand-rgb), 0.18) 0, transparent 60%);
  pointer-events: none;
}

#owner-cta::after {
  bottom: -100px;
  left: -100px;
  width: 400px;
  height: 400px;
  background: radial-gradient(circle, rgb(247, 181, 131, 0.07) 0, transparent 65%);
  pointer-events: none;
}

#final-cta::before,
.similar-img::before {
  top: 0;
  left: 0;
  right: 0;
  pointer-events: none;
}

#owner-cta h2 {
  color: var(--pm-neutral-0);
  font-size: clamp(1.55rem, 2.8vw, 2.15rem);
  font-weight: 900;
  margin-bottom: 0.85rem;
  letter-spacing: -0.02em;
}

#owner-cta p {
  color: var(--pm-neutral-50);
  font-size: 14.5px;
  max-width: 500px;
  line-height: 1.85;
  margin-bottom: 0;
}

#final-cta {
  background: linear-gradient(
    135deg,
    rgb(22, 35, 31, 0.96) 0,
    rgb(45, 45, 45, 0.92) 48%,
    rgb(13, 10, 8, 0.96) 100%
  );
  padding: 80px 0;
  overflow: hidden;
}

#final-cta::before {
  height: 3px;
  background: linear-gradient(90deg, var(--pm-brand), var(--pm-accent), transparent);
}

#final-cta h2 {
  font-size: clamp(1.7rem, 3vw, 2.5rem);
  font-weight: 900;
  color: var(--pm-neutral-0);
  margin-bottom: 0.65rem;
}

#final-cta p {
  font-size: 0.93rem;
  color: rgb(255, 255, 255, 0.72);
  max-width: 420px;
  margin: 0 auto 2rem;
  line-height: 1.8;
}

#pdp-bottom-cta {
  background: var(--pm-brand-ink);
}

#pdp-bottom-cta h2 span {
  color: var(--pm-brand);
  display: block;
  font-size: clamp(1.5rem, 3vw, 2.2rem);
}

#pdp-bottom-cta p {
  font-size: 0.9rem;
  color: rgb(255, 255, 255, 0.58);
  max-width: 420px;
  margin: 0 auto 1.8rem;
  line-height: 1.8;
}

#book-now {
  margin: auto;
  width: 100%;
  border-color: var(--pm-brand) !important;
  font-weight: 800;
  border: none;
  cursor: pointer;
  transition:
    background-color 0.2s,
    box-shadow 0.2s,
    transform 0.1s;
  box-shadow: 0 4px 14px var(--pm-brand-glow) !important;
}

#book-now:hover {
  background-color: var(--pm-brand-hover) !important;
  border-color: var(--pm-brand-hover) !important;
  box-shadow: 0 6px 20px var(--pm-brand-glow) !important;
}

#book-now:active {
  transform: translateY(1px);
}

#promo-section {
  margin-top: 0;
  padding-top: 1.5rem;
  margin-bottom: 0;
}

#pdp-bottom-cta {
  background: var(--pm-brand-ink);
  padding: var(--section-padding-y) 0;
  text-align: center;
  position: relative;
  overflow: hidden;
  font-size: 0.9rem;
  color: rgb(255, 255, 255, 0.58);
  line-height: 1.8;
  margin-top: 3rem;
}

#pdp-bottom-cta::before {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  width: 500px;
  height: 500px;
  background: radial-gradient(circle, rgb(var(--pm-brand-rgb), 0.18) 0, transparent 65%);
}

#pdp-bottom-cta h2 {
  font-size: clamp(1.4rem, 2.6vw, 2rem) !important;
  font-weight: 900 !important;
  color: var(--pm-neutral-0) !important;
  margin-top: 0 !important;
  margin-bottom: 0.55rem !important;
  letter-spacing: -0.02em !important;
  border-bottom: none !important;
}

#pdp-bottom-cta .d-flex {
  margin-top: 1.8rem;
}

.av-about #bottom-cta::before,
.pm-about #bottom-cta::before,
.av-accessibility #bottom-cta::before,
.pm-accessibility #bottom-cta::before {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 600px;
  height: 600px;
  pointer-events: none;
}

.av-about #bottom-cta,
.pm-about #bottom-cta {
  background: var(--pm-brand-ink);
  padding: var(--section-padding-y) 0;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.av-about #bottom-cta::before,
.pm-about #bottom-cta::before {
  background: radial-gradient(circle, rgb(var(--pm-brand-rgb), 0.18) 0, transparent 65%);
}

.av-about #bottom-cta h2,
.pm-about #bottom-cta h2 {
  font-size: clamp(1.4rem, 2.8vw, 2rem);
  font-weight: 900;
  color: var(--pm-neutral-0);
  margin-bottom: 0.6rem;
  letter-spacing: -0.025em;
}

.av-about #bottom-cta p,
.pm-about #bottom-cta p,
.av-accessibility #bottom-cta p,
.pm-accessibility #bottom-cta p {
  color: rgb(255, 255, 255, 0.58);
  max-width: 440px;
  line-height: 1.8;
}

.av-about #bottom-cta p,
.pm-about #bottom-cta p {
  font-size: 0.9rem;
  margin: 0 auto 1.8rem;
}

.av-accessibility #bottom-cta::before,
.pm-accessibility #bottom-cta::before {
  background: radial-gradient(circle, rgb(var(--pm-brand-rgb), 0.17) 0, transparent 65%);
}

.av-accessibility #bottom-cta p,
.pm-accessibility #bottom-cta p {
  font-size: 0.88rem;
  margin: 0 auto 1.6rem;
}

@media (max-width: 991px) {
  #hero {
    min-height: 520px;
    padding-top: var(--hero-padding-y);
  }
}

@media (max-width: 767px) {
  #bottom-cta {
    padding: var(--section-padding-y) 0;
  }

  #hero {
    min-height: 0;
    padding-top: var(--hero-padding-y);
  }

  #local-exp,
  #owner-cta {
    padding: 64px 0;
  }

  #final-cta {
    padding: var(--section-padding-y) 0;
  }

  .av-about #beliefs,
  .av-about #brand-story,
  .av-about #for-both,
  .av-about #how-avada,
  .av-about #how-we-help,
  .av-about #local-identity,
  .av-about #team-placeholder,
  .av-about #trust-values,
  .av-about .section-pad,
  .av-accessibility #bottom-cta {
    padding: var(--section-padding-y) 0;
  }
}

@media (max-width: 575px) {
  #hero {
    min-height: 282px;
    padding-top: 0;
    justify-content: flex-start;
    background:
      linear-gradient(
        to bottom,
        rgb(0, 0, 0, 0.08) 0,
        rgb(0, 0, 0, 0.15) 35%,
        rgb(0, 0, 0, 0.55) 100%
      ),
      linear-gradient(145deg, #f0b84f 0, #405946 42%, #17241f 100%);
    border-radius: 0;
    overflow: visible;
  }

  #hero .hero-inner {
    width: 100%;
  }

  .av-about #bottom-cta {
    padding: var(--section-padding-y) 0;
  }
}

/* ---------------------------------------------------------
   10 · PAGE: HOME
--------------------------------------------------------- */
.av-about .belief-card p,
.pm-about .belief-card p,
.av-about .step-card-a p,
.pm-about .step-card-a p,
.av-accessibility .notice-card p,
.pm-accessibility .notice-card p,
.notice-card p,
.step-card p {
  font-size: 0.8rem;
  color: var(--pm-text-muted);
  margin: 0;
  line-height: 1.65;
}

.av-about .about-trust-pill:last-child,
.pm-about .about-trust-pill:last-child,
.faq-trust-pill:last-child,
.trust-pill:last-child {
  border-right: none;
}

.av404 .err-eyebrow,
.hero-eyebrow {
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.av-about .belief-card:hover::before,
.pm-about .belief-card:hover::before,
.av404 .recovery-card:hover::before,
.why-card:hover::after {
  background: var(--pm-brand);
}

.av404 #popular-links {
  background: var(--pm-surface);
  padding: 2.4rem 0;
  border-top: 1px solid var(--pm-border);
}

.hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.6rem;
  font-weight: 700;
  color: var(--pm-accent);
  margin-bottom: 1.1rem;
}

.hero-eyebrow::before {
  content: '';
  width: 20px;
  height: 1.5px;
  background: var(--pm-accent);
  display: block;
  flex-shrink: 0;
}

.hero-h1 {
  font-size: clamp(1.85rem, 4.2vw, 2.9rem);
  font-weight: 900;
  color: var(--pm-neutral-0);
  line-height: 1.06;
  max-width: 680px;
  margin-bottom: 1rem;
}

.av-about .about-hero-h1 em,
.pm-about .about-hero-h1 em,
.hero-h1 em {
  font-style: italic;
  color: var(--pm-accent);
  font-weight: 700;
}

.hero-sub {
  font-size: 0.95rem;
  color: rgb(255, 255, 255, 0.62);
  max-width: 500px;
  line-height: 1.8;
  margin-bottom: 1.1rem;
  font-weight: 400;
}

.hero-search {
  display: flex;
  align-items: stretch;
  gap: 0;
  background: rgb(255, 255, 255, 0.98);
  border: 1px solid rgb(231, 234, 234, 0.95);
  border-radius: 16px;
  padding: 8px;
  box-shadow: 0 16px 42px rgb(0, 0, 0, 0.22);
  max-width: 900px;
}

.hero-trust-bar {
  background: var(--pm-brand-ink);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-top: 1px solid rgb(255, 255, 255, 0.08);
}

.trust-pill {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.8rem 0;
  border-right: 1px solid rgb(255, 255, 255, 0.07);
}

.trust-ico {
  font-size: 1.1rem;
  color: var(--pm-accent);
  flex-shrink: 0;
  opacity: 0.9;
}

.trust-texts {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.trust-main {
  font-size: 0.75rem;
  font-weight: 700;
  color: rgb(255, 255, 255, 0.9);
  line-height: 1.2;
}

.trust-hint {
  font-size: var(--pm-font-size-sm);
  color: #f4f6f6;
  line-height: 1.3;
}

#featured {
  padding-top: 4rem;
}

.nav-logo-placeholder {
  width: 42px;
  height: 42px;
  border-radius: 9px;
  background: linear-gradient(135deg, #082b2e 0, var(--pm-brand) 100%);
  color: var(--pm-neutral-0);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.55rem;
  font-weight: 900;
  letter-spacing: 0.06em;
  flex-shrink: 0;
}

#how-it-works,
#testimonials,
#why-avada,
#why-us {
  background: var(--pm-surface-alt);
  padding: 64px 0;
}

.step-num {
  width: 56px;
  height: 56px;
  background: var(--pm-brand-ink);
  border-radius: 50%;
  justify-content: center;
  font-size: 1.15rem;
  color: var(--pm-neutral-0);
  margin: 0 auto 1.1rem;
  flex-shrink: 0;
  position: relative;
  z-index: 1;
  box-shadow: 0 4px 14px rgb(0, 0, 0, 0.18);
}

.exp-icon,
.step-arrow {
  align-items: center;
  display: flex;
}

.step-arrow {
  font-size: 1.2rem;
  color: var(--pm-border-strong);
  justify-content: center;
  margin-top: -1.2rem;
  padding-bottom: 1.2rem;
}

.step-card {
  border-radius: var(--pm-radius-lg);
  padding: 1.8rem 1.4rem 1.6rem;
  box-shadow: 0 1px 6px rgb(0, 0, 0, 0.06);
  height: 100%;
  position: relative;
  border: 1px solid var(--pm-border);
}

.step-card h4 {
  font-size: 0.92rem;
  font-weight: 800;
  margin-bottom: 0.45rem;
}

#local-exp {
  padding: var(--section-padding-y) 0;
  overflow: hidden;
}

.local-img-wrap {
  border-radius: var(--pm-radius-xl);
  overflow: hidden;
  height: 480px;
  box-shadow:
    0 20px 60px rgb(0, 0, 0, 0.14),
    0 4px 16px rgb(0, 0, 0, 0.07);
  position: relative;
}

.local-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
}

.local-img-chip {
  position: absolute;
  bottom: 18px;
  left: 18px;
  background: rgb(13, 13, 13, 0.82);
  border-radius: var(--pm-radius-lg);
  padding: 0.85rem 1.1rem;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  backdrop-filter: blur(10px);
  border: 1px solid rgb(255, 255, 255, 0.08);
}

.local-img-chip strong {
  font-size: 0.8rem;
  font-weight: 800;
  color: var(--pm-neutral-0);
  letter-spacing: -0.01em;
}

.local-img-chip span {
  font-size: 0.63rem;
  color: rgb(255, 255, 255, 0.45);
}

.exp-bullet {
  display: flex;
  align-items: flex-start;
  gap: 0.9rem;
  padding: 0.9rem 0;
  border-bottom: 1px solid var(--pm-border);
}

.exp-text strong {
  display: block;
  font-size: 0.86rem;
  font-weight: 700;
  color: var(--pm-brand-ink);
  margin-bottom: 0.15rem;
}

.exp-text span {
  font-size: 0.79rem;
  color: var(--pm-text-muted);
  line-height: 1.6;
}

.why-card {
  background: var(--pm-surface);
  border-radius: var(--pm-radius-lg);
  padding: 1.7rem 1.5rem;
  box-shadow: 0 1px 6px rgb(0, 0, 0, 0.06);
  border: 1px solid var(--pm-border);
  height: 100%;
  transition:
    border-color 0.2s,
    transform 0.2s,
    box-shadow 0.2s;
  overflow: hidden;
}

.why-card::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--pm-border-strong);
  transition: background 0.2s;
}

.why-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--pm-shadow-card);
}

.why-card h4 {
  font-size: 0.9rem;
  font-weight: 800;
  margin-bottom: 0.45rem;
}

.why-card p {
  font-size: 0.79rem;
  color: var(--pm-text-muted);
  margin: 0;
  line-height: 1.7;
}

.owner-stat {
  background: rgb(255, 255, 255, 0.04);
  border: 1px solid rgb(255, 255, 255, 0.09);
  border-left: 3px solid rgb(var(--pm-brand-rgb), 0.7);
  border-radius: var(--pm-radius-lg);
  padding: 1rem 1.2rem;
  transition:
    border-left-color 0.2s,
    background 0.2s;
}

.owner-stat:hover {
  background: rgb(255, 255, 255, 0.07);
  border-left-color: var(--pm-brand);
}

.owner-stat-val {
  font-size: 1rem;
  font-weight: 800;
  color: rgb(255, 255, 255, 0.88);
  line-height: 1.3;
  margin-bottom: 0.18rem;
  letter-spacing: -0.01em;
}

.owner-stat-lbl {
  font-size: 0.66rem;
  font-weight: 400;
  color: rgb(255, 255, 255, 0.68);
  line-height: 1.5;
}

.review-card {
  background: var(--pm-surface);
  border: 1px solid var(--pm-border);
  border-radius: var(--pm-radius-xl);
  padding: 1.6rem;
  height: 100%;
  display: flex;
  flex-direction: column;
  box-shadow: 0 1px 6px rgb(0, 0, 0, 0.05);
}

.review-stars {
  color: var(--pm-brand);
  font-size: 0.78rem;
  letter-spacing: 0.1em;
  margin-bottom: 0.85rem;
  display: flex;
  gap: 0.1rem;
}

.review-text {
  font-size: 0.82rem;
  color: var(--pm-text);
  line-height: 1.78;
  font-style: italic;
  margin-bottom: 1.1rem;
  padding-left: 0.85rem;
  border-left: 2px solid var(--pm-border-strong);
}

.review-author {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  margin-top: auto;
  padding-top: 0.75rem;
}

.fresh-reviews .item .guest,
.review-author strong {
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--pm-brand-ink);
}

.review-author span {
  font-size: 0.68rem;
  color: var(--pm-text-subtle);
}

.review-placeholder-note {
  font-size: 0.7rem;
  color: var(--pm-text-subtle);
  font-style: italic;
  padding: 0.5rem 0.9rem;
  background: var(--pm-border);
  border-radius: var(--pm-radius-md);
  display: inline-block;
}

#testimonials .text-center {
  display: flex;
  justify-content: center;
  margin-top: 2rem;
}

#reasons_to_book {
  margin-top: 20px;
}

.fresh-reviews .item {
  background: var(--pm-surface);
  border: 1px solid var(--pm-border);
  border-radius: var(--pm-radius-xl);
  padding: 1.4rem;
  box-shadow: 0 1px 6px rgb(0, 0, 0, 0.05);
  margin-bottom: 1rem;
}

.fresh-reviews .item h3 {
  font-size: 1rem;
  font-weight: 800;
  color: var(--pm-brand-ink);
}

.fresh-reviews .item .header {
  color: var(--pm-brand);
  font-size: 0.8rem;
  letter-spacing: 0.08em;
  margin-bottom: 0.7rem;
  display: flex;
  align-items: center;
  gap: 0.1rem;
}

.fresh-reviews .item .header span {
  color: var(--pm-text-subtle);
  letter-spacing: 0;
}

.fresh-reviews .item .content {
  font-size: 0.95rem;
  color: var(--pm-text);
  font-style: italic;
  line-height: 1.75;
  margin-bottom: 0.9rem;
  padding-left: 0.8rem;
  border-left: 2px solid var(--pm-border-strong);
}

/* Manager reply is secondary to the guest review; keep it below .content size,
   and rein in Bootstrap's .fs-5 (1.25rem !important) on the author name. */
.fresh-reviews .item .response {
  font-size: 0.85rem;
}

.fresh-reviews .item .response .author .fs-5 {
  font-size: 0.95rem !important;
}

.fresh-reviews .item .guest::after {
  content: 'Guest';
  display: block;
  font-size: 0.68rem;
  color: var(--pm-text-subtle);
  font-weight: 400;
}

.av-about #beliefs,
.pm-about #beliefs,
.av-about #local-identity,
.pm-about #local-identity,
.av-about #team-placeholder,
.pm-about #team-placeholder {
  background: var(--pm-surface-alt);
  padding: var(--section-padding-y) 0;
}

.av-about #for-both,
.pm-about #for-both,
.av-about #how-avada,
.pm-about #how-avada,
.av-about #how-we-help,
.pm-about #how-we-help {
  background: var(--pm-surface);
  padding: var(--section-padding-y) 0;
  border-top: 1px solid var(--pm-border);
}

.av-about .step-num-a,
.pm-about .step-num-a {
  width: 52px;
  height: 52px;
  background: var(--pm-brand-ink);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--pm-neutral-0);
  font-size: 1.05rem;
  margin: 0 auto 1rem;
  box-shadow: 0 4px 14px rgb(0, 0, 0, 0.18);
}

.av-about .step-card-a,
.pm-about .step-card-a {
  background: var(--pm-surface-alt);
  border: 1px solid var(--pm-border);
  border-radius: var(--pm-radius-lg);
  padding: 1.6rem 1.3rem 1.4rem;
  text-align: center;
  height: 100%;
}

.av-about .step-eyebrow-a,
.pm-about .step-eyebrow-a {
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--pm-brand);
  display: block;
  margin-bottom: 0.4rem;
}

.av-about .step-card-a h4,
.pm-about .step-card-a h4 {
  font-size: 0.9rem;
  font-weight: 800;
  margin-bottom: 0.4rem;
  letter-spacing: -0.01em;
}

.av-about .step-arrow-a,
.pm-about .step-arrow-a {
  color: var(--pm-border-strong);
  display: flex;
  align-items: center;
  justify-content: center;
  padding-top: 0.5rem;
}

@media (max-width: 991px) {
  .local-img-wrap {
    height: 320px;
    margin-bottom: 2.8rem;
  }

  .hero-search {
    flex-direction: column;
    align-items: stretch;
    padding: 8px;
    gap: 0;
  }
}

@media (max-width: 767px) {
  .av404 .fake-search-box,
  .hero-sub {
    max-width: 100%;
  }

  .hero-h1 {
    font-size: 1.75rem;
  }

  .hero-sub {
    font-size: 0.88rem;
  }

  .trust-pill {
    padding: 0.85rem 0;
  }

  .step-arrow,
  .trust-hint {
    display: none;
  }

  .av-about .about-trust-hint,
  .av-about .step-arrow-a {
    display: none;
  }
}

@media (max-width: 575px) {
  #featured,
  body {
    background: var(--pm-neutral-50);
  }

  .hero-h1 {
    max-width: 245px;
    font-size: 1.6rem;
    line-height: 1.03;
    letter-spacing: -0.03em;
    margin: 86px 0 0;
    color: var(--pm-neutral-0);
    text-shadow: 0 2px 14px rgb(0, 0, 0, 0.35);
  }

  .hero-h1 em {
    color: var(--pm-neutral-0);
    font-style: normal;
    font-weight: 900;
  }

  .hero-search {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    max-width: none;
    width: calc(100% - 24px);
    margin: 8px auto 0;
    padding: 12px;
    border-radius: 12px;
    background: var(--pm-neutral-0);
    border: 0;
    box-shadow: 0 14px 34px rgb(0, 0, 0, 0.18);
    transform: translateY(36px);
    position: relative;
    z-index: 3;
  }

  #featured {
    padding: 58px 14px 34px;
    border-top: 0;
  }

  #featured .row.g-4 {
    --bs-gutter-y: 0.8rem;
  }
}

/* ---------------------------------------------------------
   11 · PAGE: ABOUT
--------------------------------------------------------- */
.av-about .audience-bullets .ico,
.pm-about .audience-bullets .ico,
.av-accessibility .policy-contact-row .ico,
.pm-accessibility .policy-contact-row .ico,
.policy-contact-row .ico {
  color: var(--pm-brand);
  flex-shrink: 0;
}

.av-about .about-hero-eyebrow::before,
.pm-about .about-hero-eyebrow::before,
.faq-hero-eyebrow::before {
  content: '';
  width: 20px;
  height: 1.5px;
  background: var(--pm-accent);
  display: block;
}

.av-about .about-trust-bar,
.pm-about .about-trust-bar,
.faq-trust-bar {
  background: rgb(10, 10, 10, 0.78);
  backdrop-filter: blur(10px);
  border-top: 1px solid rgb(255, 255, 255, 0.08);
  margin-top: 2rem;
}

.av-about .about-trust-ico,
.pm-about .about-trust-ico,
.faq-trust-ico {
  color: var(--pm-accent);
  flex-shrink: 0;
}

.av-about .about-trust-main,
.pm-about .about-trust-main,
.faq-trust-main {
  font-size: 0.73rem;
  font-weight: 700;
  color: rgb(255, 255, 255, 0.9);
}

.av-about .about-trust-hint,
.pm-about .about-trust-hint,
.faq-trust-hint {
  font-size: var(--pm-font-size-sm);
  color: #f4f6f6;
}

.av-about .story-img-wrap,
.pm-about .story-img-wrap,
.av404 .err-img-wrap {
  border-radius: var(--pm-radius-xl);
  overflow: hidden;
  height: 380px;
  box-shadow: var(--pm-shadow-lg);
  position: relative;
}

.av-about .belief-card::before,
.pm-about .belief-card::before,
.av404 .recovery-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--pm-border-strong);
  transition: background 0.2s;
}

.av-about .about-hero-eyebrow,
.pm-about .about-hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--pm-accent);
  margin-bottom: 1rem;
}

.av-about .about-hero-h1,
.pm-about .about-hero-h1 {
  font-size: clamp(1.7rem, 3.8vw, 2.8rem);
  font-weight: 900;
  color: var(--pm-neutral-0);
  line-height: 1.08;
  max-width: 680px;
  margin-bottom: 0.9rem;
  letter-spacing: -0.025em;
}

.av-about .about-hero-sub,
.pm-about .about-hero-sub {
  font-size: 0.92rem;
  color: rgb(255, 255, 255, 0.62);
  max-width: 500px;
  line-height: 1.8;
  margin-bottom: 1.8rem;
}

.av-about .about-trust-pill,
.pm-about .about-trust-pill {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.82rem 0;
  border-right: 1px solid rgb(255, 255, 255, 0.07);
}

.av-about #brand-story,
.pm-about #brand-story {
  background: var(--pm-surface);
  padding: 76px 0;
}

.av-about .story-img-wrap img,
.pm-about .story-img-wrap img,
.av-about .team-avatar img,
.pm-about .team-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.av-about .story-img-chip,
.pm-about .story-img-chip {
  position: absolute;
  bottom: 16px;
  left: 16px;
  background: rgb(13, 13, 13, 0.82);
  border-radius: var(--pm-radius-lg);
  padding: 0.75rem 1rem;
  backdrop-filter: blur(8px);
  border: 1px solid rgb(255, 255, 255, 0.08);
}

.av-about .story-img-chip strong,
.pm-about .story-img-chip strong {
  font-size: 0.76rem;
  font-weight: 800;
  color: var(--pm-neutral-0);
  display: block;
  margin-bottom: 2px;
}

.av-about .story-img-chip span,
.pm-about .story-img-chip span {
  font-size: 0.62rem;
  color: rgb(255, 255, 255, 0.45);
}

.av-about .story-copy p,
.pm-about .story-copy p {
  font-size: 0.9rem;
  color: var(--pm-text);
  line-height: 1.82;
  margin-bottom: 1.1rem;
}

.av-about .belief-card,
.pm-about .belief-card {
  background: var(--pm-surface);
  border: 1px solid var(--pm-border);
  border-radius: var(--pm-radius-xl);
  padding: 1.6rem 1.4rem;
  height: 100%;
  position: relative;
  overflow: hidden;
  transition:
    transform 0.2s,
    box-shadow 0.2s;
}

.av-about .belief-card:hover,
.pm-about .belief-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--pm-shadow-card);
}

.av-about .belief-ico,
.pm-about .belief-ico {
  width: 44px;
  height: 44px;
  background: var(--pm-brand-tint);
  border-radius: 11px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--pm-brand);
  margin-bottom: 0.9rem;
}

.av-about .belief-card h4,
.pm-about .belief-card h4 {
  font-size: 0.9rem;
  font-weight: 800;
  color: var(--pm-brand-ink);
  margin-bottom: 0.38rem;
  letter-spacing: -0.01em;
}

.av-about .audience-card,
.pm-about .audience-card {
  border-radius: var(--pm-radius-xl);
  padding: 2rem 1.8rem;
  height: 100%;
  display: flex;
  flex-direction: column;
}

.av-about .audience-card-guest,
.pm-about .audience-card-guest {
  background: linear-gradient(135deg, rgb(var(--pm-brand-rgb), 0.06) 0, var(--pm-surface) 70%);
  border: 1.5px solid rgb(var(--pm-brand-rgb), 0.2);
}

.av-about .audience-card-owner,
.pm-about .audience-card-owner {
  background: linear-gradient(135deg, rgb(10, 10, 10, 0.04) 0, var(--pm-surface) 70%);
  border: 1.5px solid var(--pm-border);
}

.av-about .audience-tag,
.pm-about .audience-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  border-radius: 999px;
  padding: 0.3rem 0.75rem;
  margin-bottom: 0.85rem;
}

.av-about .audience-tag-guest,
.pm-about .audience-tag-guest {
  background: var(--pm-brand-tint);
  color: var(--pm-brand);
  border: 1px solid rgb(var(--pm-brand-rgb), 0.25);
}

.av-about .audience-tag-owner,
.pm-about .audience-tag-owner {
  background: var(--pm-surface-alt);
  color: var(--pm-text);
  border: 1px solid var(--pm-border-strong);
}

.av-about .audience-card h3,
.pm-about .audience-card h3 {
  font-size: 1.1rem;
  font-weight: 900;
  color: var(--pm-brand-ink);
  margin-bottom: 0.6rem;
  letter-spacing: -0.02em;
}

.av-about .audience-card > p,
.pm-about .audience-card > p {
  font-size: 0.85rem;
  color: var(--pm-text-muted);
  line-height: 1.72;
  margin-bottom: 1.1rem;
}

.av-about .audience-bullets,
.pm-about .audience-bullets {
  list-style: none;
  padding: 0;
  margin: 0 0 1.5rem;
  flex: 1;
}

.av-about .audience-bullets li,
.pm-about .audience-bullets li {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--pm-text);
  padding: 0.42rem 0;
  border-bottom: 1px solid var(--pm-border);
}

.av-about .local-cue-pill,
.pm-about .local-cue-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--pm-brand-ink);
  background: var(--pm-surface);
  border: 1.5px solid var(--pm-border);
  border-radius: 999px;
  padding: 0.45rem 1rem;
  box-shadow: var(--pm-shadow-sm);
  transition:
    border-color 0.15s,
    color 0.15s;
}

.av-about #trust-values::before,
.pm-about #trust-values::before {
  content: '';
  position: absolute;
  top: -160px;
  right: -100px;
  width: 560px;
  height: 560px;
  background: radial-gradient(circle, rgb(var(--pm-brand-rgb), 0.18) 0, transparent 62%);
  pointer-events: none;
}

.av-about #trust-values::after,
.pm-about #trust-values::after {
  content: '';
  position: absolute;
  bottom: -80px;
  left: -80px;
  width: 400px;
  height: 400px;
  background: radial-gradient(circle, rgb(247, 181, 131, 0.06) 0, transparent 65%);
  pointer-events: none;
}

.av-about .trust-card,
.pm-about .trust-card {
  background: rgb(255, 255, 255, 0.05);
  border: 1px solid rgb(255, 255, 255, 0.09);
  border-left: 3px solid rgb(var(--pm-brand-rgb), 0.65);
  border-radius: var(--pm-radius-lg);
  padding: 1.3rem 1.4rem;
  height: 100%;
  transition:
    background 0.2s,
    border-left-color 0.2s;
}

.av-about .trust-card:hover,
.pm-about .trust-card:hover {
  background: rgb(255, 255, 255, 0.08);
  border-left-color: var(--pm-brand);
}

.av-about .trust-card-ico,
.pm-about .trust-card-ico {
  margin-bottom: 0.65rem;
}

.av-about .trust-card h4,
.pm-about .trust-card h4 {
  font-size: 0.92rem;
  font-weight: 800;
  color: var(--pm-neutral-0);
  margin-bottom: 0.38rem;
  letter-spacing: -0.01em;
}

.av-about .trust-card p,
.pm-about .trust-card p {
  font-size: 0.8rem;
  color: rgb(255, 255, 255, 0.5);
  margin: 0;
  line-height: 1.65;
}

.av-about .placeholder-banner,
.pm-about .placeholder-banner {
  background: linear-gradient(
    135deg,
    rgb(var(--pm-brand-rgb), 0.06),
    rgb(var(--pm-brand-rgb), 0.02)
  );
  border: 1.5px dashed var(--pm-border-strong);
  border-radius: var(--pm-radius-lg);
  padding: 0.75rem 1rem;
  font-size: 0.72rem;
  color: var(--pm-text-subtle);
  font-style: italic;
  text-align: center;
  margin-bottom: 2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
}

.av-about .team-card,
.pm-about .team-card {
  background: var(--pm-surface);
  border: 1px solid var(--pm-border);
  border-radius: var(--pm-radius-xl);
  padding: 1.6rem 1.4rem;
  height: 100%;
  text-align: center;
  box-shadow: var(--pm-shadow-sm);
}

.av-about .team-avatar,
.pm-about .team-avatar {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: var(--pm-border);
  border: 3px solid var(--pm-border-strong);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 1rem;
  color: var(--pm-text-subtle);
  overflow: hidden;
}

.av-about .team-card h4,
.pm-about .team-card h4 {
  font-size: 0.9rem;
  font-weight: 800;
  color: var(--pm-brand-ink);
  margin-bottom: 0.25rem;
}

.av-about .team-card .team-role,
.pm-about .team-card .team-role {
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--pm-brand);
  margin-bottom: 0.55rem;
  display: block;
}

.av-about .team-card p,
.pm-about .team-card p {
  font-size: 0.78rem;
  color: var(--pm-text-muted);
  line-height: 1.65;
  margin: 0;
}

.av-about .team-placeholder-note,
.pm-about .team-placeholder-note {
  font-size: 0.68rem;
  color: var(--pm-border-strong);
  font-style: italic;
  margin-top: 0.5rem;
  display: block;
}

@media (max-width: 991px) {
  .av-about .story-img-wrap {
    height: 300px;
    margin-bottom: 2.4rem;
  }

  .av-about .audience-card {
    padding: 1.5rem 1.3rem;
  }
}

@media (max-width: 767px) {
  .av-about .about-hero-h1 {
    font-size: 1.7rem;
  }
}

@media (max-width: 575px) {
  .av-about #about-hero {
    min-height: 420px;
    padding-top: 70px;
  }

  .av-about .about-hero-h1 {
    font-size: 1.5rem;
  }

  .av-about .story-img-wrap {
    height: 220px;
  }
}

/* ---------------------------------------------------------
   12 · PAGE: ACCESSIBILITY / LEGAL
--------------------------------------------------------- */
#policy-hero,
.av-accessibility #policy-hero,
.pm-accessibility #policy-hero {
  background: var(--pm-surface);
  border-bottom: 1px solid var(--pm-border);
  padding: 2.4rem 0 1.8rem;
  position: relative;
}

#policy-hero::before,
.av-accessibility #policy-hero::before,
.pm-accessibility #policy-hero::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--pm-brand), var(--pm-accent), transparent 65%);
}

.av-accessibility .policy-eyebrow,
.pm-accessibility .policy-eyebrow,
.policy-eyebrow {
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--pm-brand);
  display: flex;
  align-items: center;
  gap: 0.4rem;
  margin-bottom: 0.6rem;
}

.policy-h1 {
  font-size: clamp(1.5rem, 2.8vw, 2.2rem);
  font-weight: 900 !important;
  color: var(--pm-brand-ink) !important;
  text-transform: none !important;
  margin-bottom: 0.55rem;
  letter-spacing: -0.02em;
}

.av-accessibility .policy-sub,
.pm-accessibility .policy-sub,
.policy-sub {
  font-size: 0.88rem;
  color: var(--pm-text-muted);
  max-width: 520px;
  line-height: 1.75;
  margin-bottom: 1rem;
}

.av-accessibility .policy-meta,
.pm-accessibility .policy-meta,
.policy-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
}

.av-accessibility .policy-meta-item,
.pm-accessibility .policy-meta-item,
.policy-meta-item {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.7rem;
  font-weight: 600;
  color: var(--pm-text-subtle);
  background: var(--pm-surface-alt);
  border: 1px solid var(--pm-border);
  border-radius: 999px;
  padding: 0.25rem 0.75rem;
}

#notice-section,
.av-accessibility #notice-section,
.pm-accessibility #notice-section {
  background: var(--pm-surface-alt);
  padding: 1.2rem 0;
}

.av-accessibility .notice-card,
.pm-accessibility .notice-card,
.notice-card {
  background: linear-gradient(135deg, var(--pm-brand-tint) 0, var(--pm-neutral-0) 70%);
  border: 1.5px solid rgb(var(--pm-brand-rgb), 0.28);
  border-left: 4px solid var(--pm-brand);
  border-radius: var(--pm-radius-xl);
  padding: 1.3rem 1.5rem;
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
}

.av-accessibility .notice-ico,
.pm-accessibility .notice-ico,
.notice-ico {
  width: 36px;
  height: 36px;
  min-width: 36px;
  background: var(--pm-brand);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--pm-neutral-0);
  flex-shrink: 0;
  margin-top: 1px;
}

.av-accessibility .notice-card h4,
.pm-accessibility .notice-card h4,
.notice-card h4 {
  font-size: 0.9rem;
  font-weight: 800;
  color: var(--pm-brand-ink);
  margin-bottom: 0.3rem;
  letter-spacing: -0.01em;
}

#policy-body,
.av-accessibility #policy-body,
.pm-accessibility #policy-body {
  padding: 1.6rem 0 3rem;
  background: var(--pm-surface-alt);
}

.av-accessibility .policy-panel,
.pm-accessibility .policy-panel,
.policy-panel {
  background: var(--pm-surface);
  border-radius: var(--pm-radius-xl);
  box-shadow: var(--pm-shadow-sm);
  padding: 2.2rem 2rem;
}

.av-accessibility .policy-section,
.pm-accessibility .policy-section,
.policy-section {
  margin-bottom: 2rem;
  padding-bottom: 1.8rem;
  border-bottom: 1px solid var(--pm-border);
}

.av-accessibility .policy-section:last-child,
.pm-accessibility .policy-section:last-child,
.pdp-section:last-child,
.policy-section:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
}

.policy-h2 {
  font-size: 0.96rem;
  font-weight: 900;
  color: var(--pm-brand-ink) !important;
  letter-spacing: -0.01em;
  margin-bottom: 0.65rem;
  display: flex;
  align-items: center;
  gap: 0.55rem;
}

.av-accessibility .policy-h2::before,
.pm-accessibility .policy-h2::before,
.policy-h2::before {
  content: '';
  width: 4px;
  height: 0.96rem;
  background: var(--pm-brand);
  border-radius: 2px;
  display: block;
  flex-shrink: 0;
}

.av-accessibility .policy-h2-num,
.pm-accessibility .policy-h2-num,
.policy-h2-num {
  font-size: 0.62rem;
  font-weight: 800;
  color: var(--pm-brand);
  background: var(--pm-brand-tint);
  border-radius: 999px;
  padding: 0.18rem 0.55rem;
  flex-shrink: 0;
}

.av-accessibility .policy-p,
.pm-accessibility .policy-p,
.policy-p {
  font-size: 0.86rem;
  color: var(--pm-text);
  line-height: 1.82;
  margin-bottom: 0.85rem;
}

.av-accessibility .policy-p:last-child,
.pm-accessibility .policy-p:last-child,
.bw-trust-item:last-child,
.faq-card:last-child,
.policy-p:last-child {
  margin-bottom: 0;
}

.av-accessibility .policy-ul,
.pm-accessibility .policy-ul,
.policy-ul {
  list-style: none;
  padding: 0;
  margin: 0.6rem 0 0.85rem;
}

.av-accessibility .policy-ul li,
.pm-accessibility .policy-ul li,
.policy-ul li {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  font-size: 0.84rem;
  color: var(--pm-text);
  padding: 0.3rem 0;
  border-bottom: 1px solid var(--pm-border);
  line-height: 1.55;
}

.av-accessibility .policy-ul li::before,
.pm-accessibility .policy-ul li::before,
.policy-ul li::before {
  content: '';
  width: 6px;
  height: 6px;
  min-width: 6px;
  background: var(--pm-brand);
  border-radius: 50%;
  margin-top: 0.42rem;
  flex-shrink: 0;
}

.av-accessibility .policy-placeholder-note,
.pm-accessibility .policy-placeholder-note,
.policy-placeholder-note {
  font-size: 0.72rem;
  color: var(--pm-text-subtle);
  font-style: italic;
  background: var(--pm-border);
  border-radius: var(--pm-radius-md);
  padding: 0.5rem 0.85rem;
  display: flex;
  align-items: center;
  gap: 0.35rem;
  margin-top: 0.5rem;
}

.av-accessibility .policy-contact-row,
.pm-accessibility .policy-contact-row,
.policy-contact-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.82rem;
  color: var(--pm-text);
  font-weight: 600;
  margin-bottom: 0.35rem;
}

.av-accessibility .policy-contact-row span.placeholder,
.pm-accessibility .policy-contact-row span.placeholder,
.policy-contact-row span.placeholder {
  color: var(--pm-text-subtle);
  font-weight: 400;
  font-style: italic;
  font-size: 0.72rem;
}

.av-accessibility .sidebar-sticky,
.pm-accessibility .sidebar-sticky,
.sidebar-sticky {
  position: sticky;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.av-accessibility .sidebar-card,
.pm-accessibility .sidebar-card,
.sidebar-card {
  background: var(--pm-surface);
  border-radius: var(--pm-radius-xl);
  border: 1px solid var(--pm-border);
  box-shadow: var(--pm-shadow-sm);
  overflow: hidden;
}

.av-accessibility .sidebar-card-head,
.pm-accessibility .sidebar-card-head,
.sidebar-card-head {
  background: var(--pm-brand-ink);
  padding: 0.85rem 1.1rem;
}

.av-accessibility .sidebar-head-label,
.pm-accessibility .sidebar-head-label,
.sidebar-head-label {
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgb(255, 255, 255, 0.38);
  margin-bottom: 0.18rem;
}

.av-accessibility .sidebar-head-title,
.pm-accessibility .sidebar-head-title,
.sidebar-head-title {
  font-size: 0.82rem;
  font-weight: 900;
  color: var(--pm-neutral-0);
  letter-spacing: -0.01em;
}

.av-accessibility .sidebar-card-body,
.pm-accessibility .sidebar-card-body,
.sidebar-card-body {
  padding: 0.95rem 1.1rem;
}

.av-accessibility .sidebar-copy,
.pm-accessibility .sidebar-copy,
.sidebar-copy {
  font-size: 0.78rem;
  color: var(--pm-text-muted);
  line-height: 1.65;
  margin-bottom: 0.9rem;
}

.av-accessibility .policy-nav li,
.pm-accessibility .policy-nav li,
.policy-nav li {
  border-bottom: 1px solid var(--pm-border);
}

.policy-nav a {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.34rem 0;
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--pm-text-muted) !important;
  transition: color 0.15s;
}

.av-accessibility .policy-nav-num,
.pm-accessibility .policy-nav-num,
.policy-nav-num {
  font-size: 0.6rem;
  font-weight: 800;
  color: var(--pm-brand);
  min-width: 18px;
}

#related-legal,
.av-accessibility #related-legal,
.pm-accessibility #related-legal {
  background: var(--pm-surface);
  padding: 2rem 0;
  border-top: 1px solid var(--pm-border);
}

.av-accessibility .legal-link-card,
.pm-accessibility .legal-link-card,
.legal-link-card {
  background: var(--pm-surface-alt);
  border: 1px solid var(--pm-border);
  border-radius: var(--pm-radius-xl);
  padding: 1.2rem 1.3rem;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  height: 100%;
  transition:
    border-color 0.15s,
    box-shadow 0.15s,
    background 0.15s;
}

.av-accessibility .legal-ico,
.pm-accessibility .legal-ico,
.legal-ico {
  width: 40px;
  height: 40px;
  min-width: 40px;
  background: var(--pm-surface);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--pm-brand);
  flex-shrink: 0;
  border: 1px solid var(--pm-border);
  transition: background 0.15s;
}

.av-accessibility .legal-link-card:hover .legal-ico,
.pm-accessibility .legal-link-card:hover .legal-ico,
.legal-link-card:hover .legal-ico {
  background: rgb(var(--pm-brand-rgb), 0.12);
}

.av-accessibility .legal-card-title,
.pm-accessibility .legal-card-title,
.legal-card-title {
  font-size: 0.84rem;
  font-weight: 800;
  color: var(--pm-brand-ink);
  margin-bottom: 0.08rem;
}

.av-accessibility .legal-card-arrow,
.pm-accessibility .legal-card-arrow,
.cat-arrow,
.legal-card-arrow {
  margin-left: auto;
  color: var(--pm-border-strong);
  flex-shrink: 0;
  transition: color 0.15s;
}

.av-accessibility .policy-h1,
.pm-accessibility .policy-h1 {
  font-size: clamp(1.5rem, 2.8vw, 2.2rem);
  font-weight: 900;
  color: var(--pm-brand-ink);
  margin-bottom: 0.55rem;
  letter-spacing: -0.02em;
}

.av-accessibility .policy-h2,
.pm-accessibility .policy-h2 {
  font-size: 0.96rem;
  font-weight: 900;
  color: var(--pm-brand-ink);
  letter-spacing: -0.01em;
  margin-bottom: 0.65rem;
  display: flex;
  align-items: center;
  gap: 0.55rem;
}

.av-accessibility .policy-nav a,
.pm-accessibility .policy-nav a {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.34rem 0;
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--pm-text-muted);
  transition: color 0.15s;
}

@media (max-width: 991px) {
  .policy-panel {
    padding: 1.6rem 1.4rem;
  }

  .av-accessibility .sidebar-sticky {
    position: static;
    margin-top: 1.4rem;
  }

  .av-accessibility .policy-panel {
    padding: 1.6rem 1.4rem;
  }
}

@media (max-width: 767px) {
  .policy-panel {
    padding: 1.2rem 1rem;
  }

  .av-accessibility .policy-panel {
    padding: 1.2rem 1rem;
  }
}

/* ---------------------------------------------------------
   13 · PAGE: 404
--------------------------------------------------------- */
#quick-answers,
.av404 #recovery-cards {
  background: var(--pm-surface-alt);
  padding: 56px 0;
}

.av404 #err-hero {
  background: var(--pm-surface);
  padding: 3.5rem 0 2.8rem;
  border-bottom: 1px solid var(--pm-border);
}

.av404 .err-num {
  font-size: clamp(6rem, 14vw, 10rem);
  font-weight: 900;
  color: var(--pm-brand);
  letter-spacing: -0.05em;
  line-height: 1;
  margin-bottom: 0.5rem;
  display: block;
}

.av404 .err-eyebrow {
  font-size: 0.62rem;
  font-weight: 800;
  color: var(--pm-brand);
  display: flex;
  align-items: center;
  gap: 0.4rem;
  margin-bottom: 0.8rem;
}

.av404 .err-h1,
.pdp-bottom-cta button {
  text-transform: none;
}

.av404 .err-h1 {
  font-size: clamp(1.5rem, 3vw, 2.2rem);
  font-weight: 900;
  color: var(--pm-brand-ink);
  margin-bottom: 0.75rem;
  line-height: 1.15;
  max-width: 520px;
}

.av404 .err-sub {
  font-size: 0.9rem;
  color: var(--pm-text-muted);
  max-width: 460px;
  line-height: 1.78;
  margin-bottom: 1.6rem;
}

.av404 .err-helper {
  font-size: 0.72rem;
  color: var(--pm-text-subtle);
  font-style: italic;
  display: flex;
  align-items: center;
  gap: 0.35rem;
  margin-top: 0.8rem;
}

.av404 .err-img-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgb(0, 0, 0, 0.06), rgb(0, 0, 0, 0.28));
}

.av404 .err-img-badge {
  position: absolute;
  bottom: 18px;
  left: 18px;
  background: rgb(13, 13, 13, 0.82);
  border-radius: var(--pm-radius-lg);
  padding: 0.75rem 1rem;
  backdrop-filter: blur(8px);
  border: 1px solid rgb(255, 255, 255, 0.08);
}

.av404 .err-img-badge strong {
  font-size: 0.78rem;
  font-weight: 800;
  color: var(--pm-neutral-0);
  display: block;
  margin-bottom: 2px;
}

.av404 .err-img-badge span {
  font-size: 0.62rem;
  color: rgb(255, 255, 255, 0.5);
}

.av404 .recovery-card {
  background: var(--pm-surface);
  border: 1.5px solid var(--pm-border);
  border-radius: var(--pm-radius-xl);
  padding: 1.6rem 1.4rem;
  height: 100%;
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: hidden;
  transition:
    transform 0.2s,
    box-shadow 0.2s,
    border-color 0.2s;
}

.av404 .recovery-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--pm-shadow-card);
  border-color: var(--pm-brand);
}

.av404 .rc-ico {
  width: 46px;
  height: 46px;
  background: var(--pm-brand-tint);
  border-radius: 11px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--pm-brand);
  margin-bottom: 0.9rem;
  flex-shrink: 0;
}

.av404 .recovery-card h4 {
  font-size: 0.92rem;
  font-weight: 800;
  color: var(--pm-brand-ink);
  margin-bottom: 0.38rem;
  letter-spacing: -0.01em;
}

.av404 .recovery-card p {
  font-size: 0.8rem;
  color: var(--pm-text-muted);
  line-height: 1.65;
  margin-bottom: 1.1rem;
  flex: 1;
}

.av404 .pop-link {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  background: var(--pm-surface-alt);
  border: 1.5px solid var(--pm-border);
  border-radius: 999px;
  padding: 0.5rem 1.1rem;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--pm-text);
  cursor: pointer;
  transition:
    border-color 0.15s,
    color 0.15s,
    background 0.15s;
}

.av404 .pop-link:hover {
  border-color: var(--pm-brand);
  color: var(--pm-brand);
  background: var(--pm-brand-tint);
}

.av404 #search-placeholder {
  background: var(--pm-surface-alt);
  padding: 1.6rem 0;
  border-top: 1px solid var(--pm-border);
}

.av404 .search-card {
  background: linear-gradient(135deg, var(--pm-brand-tint) 0, var(--pm-neutral-0) 70%);
  border: 1.5px solid rgb(var(--pm-brand-rgb), 0.2);
  border-radius: var(--pm-radius-xl);
  padding: 1.6rem 2rem;
  display: flex;
  align-items: center;
  gap: 2rem;
  flex-wrap: wrap;
  justify-content: space-between;
}

.av404 .search-card h3 {
  font-size: 0.98rem;
  font-weight: 800;
  color: var(--pm-brand-ink);
  margin-bottom: 0.3rem;
}

.av404 .search-card p {
  font-size: 0.82rem;
  color: var(--pm-text-muted);
  max-width: 480px;
  line-height: 1.65;
  margin-bottom: 0.9rem;
}

.av404 .search-placeholder-note {
  font-size: 0.65rem;
  color: var(--pm-text-subtle);
  font-style: italic;
  margin-top: 0.4rem;
  display: block;
}

.av404 .fake-search-box {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  background: var(--pm-surface);
  border: 1.5px solid var(--pm-border-strong);
  border-radius: 999px;
  padding: 0.55rem 1.2rem;
  cursor: default;
  max-width: 340px;
}

.av404 .fake-search-text {
  font-size: 0.82rem;
  color: var(--pm-text-subtle);
  font-weight: 500;
  flex: 1;
}

.av404 .fake-search-box .ico {
  color: var(--pm-text-subtle);
}

@media (max-width: 991px) {
  .av404 .err-img-wrap {
    height: 280px;
    margin-top: 2rem;
  }

  .av404 .err-num {
    font-size: 8rem;
  }
}

@media (max-width: 767px) {
  .av404 #err-hero {
    padding: 2.4rem 0 2rem;
  }

  .av404 .err-num {
    font-size: 6rem;
  }

  .av404 .err-h1 {
    font-size: 1.55rem;
  }

  .av404 .err-img-wrap {
    height: 220px;
  }

  .av404 .search-card {
    flex-direction: column;
    gap: 1rem;
    padding: 1.3rem 1.2rem;
  }
}

@media (max-width: 575px) {
  .av404 .err-num {
    font-size: 5rem;
  }
}

.faq-hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--pm-accent);
  margin-bottom: 0.9rem;
}

.faq-hero-h1 {
  font-size: clamp(1.6rem, 3.5vw, 2.5rem);
  font-weight: 900 !important;
  color: var(--pm-neutral-0) !important;
  text-transform: none !important;
  line-height: 1.1;
  max-width: 620px;
  margin-bottom: 0.85rem;
  letter-spacing: -0.025em;
}

.faq-hero-sub {
  font-size: 0.9rem;
  color: rgb(255, 255, 255, 0.62);
  max-width: 500px;
  line-height: 1.78;
  margin-bottom: 1.6rem;
}

.faq-trust-pill {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.78rem 0;
  border-right: 1px solid rgb(255, 255, 255, 0.07);
}

#faq-categories {
  background: var(--pm-surface);
  padding: 2rem 0;
  border-bottom: 1px solid var(--pm-border);
}

.faq-section {
  padding: 60px 0;
}

#guest-faq,
#owner-faq {
  background: var(--pm-surface);
  border-top: 1px solid var(--pm-border);
}

.faq-card {
  background: var(--pm-surface);
  border: 1px solid var(--pm-border);
  border-radius: var(--pm-radius-lg);
  margin-bottom: 0.65rem;
  transition:
    border-color 0.15s,
    box-shadow 0.15s;
}

.faq-card:hover {
  border-color: var(--pm-brand);
  box-shadow: var(--pm-shadow-sm);
}

.faq-q-row {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 1rem 1.2rem 0.7rem;
}

.faq-q-badge {
  width: 22px;
  height: 22px;
  min-width: 22px;
  background: var(--pm-brand-tint);
  border-radius: 50%;
  justify-content: center;
  color: var(--pm-brand);
  flex-shrink: 0;
}

.faq-q-text {
  font-size: 0.88rem;
  font-weight: 800;
  color: var(--pm-brand-ink);
  line-height: 1.3;
}

.faq-a-row {
  padding: 0 1.2rem 1rem 3rem;
}

.faq-a-text {
  font-size: 0.8rem;
  color: var(--pm-text-muted);
  line-height: 1.72;
}

.faq-placeholder {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.68rem;
  color: var(--pm-text-subtle);
  font-style: italic;
  margin-top: 0.35rem;
}

@media (max-width: 575px) {
  .faq-hero-h1 {
    font-size: 1.6rem;
  }

  #faq-hero {
    min-height: 360px;
    padding-top: 70px;
  }

  .faq-section {
    padding: 44px 0;
  }
}

/* ---------------------------------------------------------
   15 · PAGE: PROPERTY DETAIL
--------------------------------------------------------- */
.p-badge {
  backdrop-filter: blur(8px);
}

.p-badge-pop {
  color: var(--pm-accent);
}

.p-fact {
  color: var(--pm-text);
  background: var(--pm-surface-alt);
  border: 1px solid var(--pm-border);
}

.p-amen {
  color: var(--pm-text-muted);
  background: var(--pm-border);
}

.p-badge {
  line-height: 1;
  padding: 0.38rem 0.65rem;
  border-radius: 999px;
  letter-spacing: 0.01em;
  box-shadow: 0 4px 12px rgb(0, 0, 0, 0.18);
}

.p-badge-feat {
  background: var(--pm-brand);
  color: var(--pm-neutral-0);
}

.p-badge-avail {
  background: var(--pm-success);
  color: var(--pm-neutral-0);
}

.p-badge-near,
.p-badge-pop,
.p-badge-verified {
  background: rgb(14, 14, 14, 0.78);
  color: var(--pm-neutral-0);
}

.p-amen,
.p-fact {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.66rem;
  font-weight: 700;
  line-height: 1;
  color: #4b5563;
  background: #eef1f1;
  border: 0;
  border-radius: 999px;
  padding: 0.34rem 0.6rem;
}

.p-amen {
  font-weight: 600;
  color: var(--pm-neutral-500);
  background: #f2f4f4;
}

.mobile-results-count,
.no-reviews-label,
.pdp-section:empty {
  display: none;
}

.uc_review {
  background-color: var(--pm-surface);
  border-radius: var(--pm-radius-xl);
  padding: 1.5rem;
  box-shadow: var(--pm-shadow-sm);
  border: 1px solid var(--pm-border);
}

.uc_review .uc_author {
  font-family: var(--pm-font-body);
  font-weight: 800;
  color: var(--pm-brand-ink);
  font-size: 1.05rem;
  display: block;
  margin-bottom: 0.25rem;
}

.uc_review .uc_content {
  font-family: var(--pm-font-body);
  color: var(--pm-text-muted);
  font-size: 0.93rem;
  line-height: 1.65;
}

.similar-properties-section.border-top {
  border-top: 1px solid var(--pm-border);
  margin-top: 2rem;
  padding-top: 2rem;
}

/* Similar Rentals now renders as an Owl Carousel (see similar-properties.mustache)
   instead of a horizontal-overflow flex row, so the scrollbar is gone. The
   plugin ships owl.carousel.css + properties-carousel.css, but plugin CSS is
   deferred/stripped by Autoptimize on property-detail (see notes above), so the
   critical Owl base rules + arrow skin are ported here scoped to the section. */
#similar-properties .owl-carousel {
  display: block;
  width: 100%;
  position: relative;
  z-index: 1;
  -webkit-tap-highlight-color: transparent;
}

#similar-properties .owl-carousel .owl-stage-outer {
  position: relative;
  overflow: hidden;
  -webkit-transform: translate3d(0, 0, 0);
}

#similar-properties .owl-carousel .owl-stage {
  position: relative;
  touch-action: manipulation;
  -moz-backface-visibility: hidden;
}

#similar-properties .owl-carousel .owl-stage::after {
  content: '.';
  display: block;
  clear: both;
  visibility: hidden;
  line-height: 0;
  height: 0;
}

#similar-properties .owl-carousel .owl-item {
  position: relative;
  min-height: 1px;
  float: left;
  -webkit-backface-visibility: hidden;
  -webkit-tap-highlight-color: transparent;
}

#similar-properties .owl-carousel.owl-drag .owl-item {
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}

#similar-properties .owl-carousel .owl-nav.disabled,
#similar-properties .owl-carousel .owl-dots.disabled {
  display: none;
}

/* Prev/next arrow buttons (mirrors properties-carousel.css). */
#similar-properties .owl-carousel .owl-nav button.owl-prev,
#similar-properties .owl-carousel .owl-nav button.owl-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 45px;
  height: 45px;
  line-height: 45px;
  font-size: 18px;
  border-radius: 100px;
  border: 2px solid #02010124;
  background-color: var(--pm-neutral-0);
  color: var(--pm-text);
  cursor: pointer;
}

#similar-properties .owl-carousel .owl-nav button.owl-prev {
  left: -12px;
}

#similar-properties .owl-carousel .owl-nav button.owl-next {
  right: -12px;
}

@media (max-width: 768px) {
  #similar-properties .owl-carousel .owl-nav button.owl-prev,
  #similar-properties .owl-carousel .owl-nav button.owl-next {
    display: none;
  }
}

/* Similar Rentals renders Property Card v2 server-side (already loaded),
   so neutralize Bootstrap's .placeholder shimmer that the grid's reveal JS
   would normally strip. */
#similar-properties .placeholder {
  background-color: transparent !important;
  opacity: 1 !important;
  cursor: inherit !important;
  min-height: 0 !important;
  animation: none !important;
}

/* Property Card v2 facts as pill chips. Ported from the plugin's
   property-card-v2.css because that file doesn't reliably apply on
   property-detail (Autoptimize), where Similar Rentals renders. */
#similar-properties .pcv2-facts {
  display: flex !important;
  flex-wrap: wrap;
  gap: 0.45rem;
  padding: 0 15px;
}

#similar-properties .pcv2-facts .col-auto {
  display: inline-flex !important;
  align-items: center;
  gap: 0.28rem;
  flex: 0 0 auto !important;
  margin: 0 !important;
  max-width: none;
  padding: 0.28rem 0.58rem !important;
  border-radius: 999px !important;
  border: 1px solid var(--pm-border) !important;
  background: var(--pm-surface-alt) !important;
}

#similar-properties .pcv2-facts .icon {
  width: 16px;
  height: 16px;
  max-width: 16px;
}

#similar-properties .pcv2-facts span {
  max-width: none !important;
  white-space: nowrap;
  line-height: 1.2;
  font-size: 0.72rem;
  color: var(--pm-text);
}

/* Carousel arrows hidden until card hover (matches the property grid v2 card).
   Ported from property-card.css, which doesn't apply here (Autoptimize). */
#similar-properties .carousel-control-next,
#similar-properties .carousel-control-prev {
  background-color: transparent !important;
  border: none !important;
  opacity: 0;
  transition: opacity 0.2s;
}

#similar-properties .property_card:hover .carousel-control-next,
#similar-properties .property_card:hover .carousel-control-prev {
  opacity: 1;
}

/* v2 card typography (property-card-v2.css doesn't apply on property-detail). */
#similar-properties .pcv2-location,
#similar-properties .pcv2-location .pcv2-location-text {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
}

#similar-properties .prop-name {
  font-size: 1.02rem;
  letter-spacing: normal;
  color: var(--pm-heading);
}

#similar-properties .p-amen {
  font-size: 0.68rem;
  font-weight: 600;
}

.gallery-view-all,
.similar-property-cta {
  transition: background 0.15s;
  font-family: var(--pm-font-body);
}

.similar-property-image {
  height: 140px;
  flex-shrink: 0;
  overflow: hidden;
  position: relative;
  background: var(--pm-border);
}

.similar-property-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 0.9rem 1rem;
}

.similar-property-name {
  font-size: 0.9rem;
  font-weight: 800;
  color: var(--pm-brand-ink);
  letter-spacing: -0.01em;
  margin-bottom: 0.35rem;
}

.similar-property-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.74rem;
  font-weight: 600;
  color: var(--pm-text-muted);
  margin-bottom: 0.5rem;
}

.similar-property-price {
  font-size: 0.78rem;
  color: var(--pm-text-muted);
  margin-bottom: 0.65rem;
}

.similar-price strong,
.similar-property-price-amount {
  font-size: 0.96rem;
  font-weight: 900;
  color: var(--pm-brand-ink);
}

.similar-property-price-unit {
  margin-left: 0.2rem;
}

.similar-property-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.3rem;
  margin-top: auto;
  background: var(--pm-brand);
  color: var(--pm-neutral-0);
  font-weight: 700;
  font-size: 0.72rem;
  padding: 0.45rem 0.9rem;
  border-radius: var(--pm-radius-md);
}

.gallery-grid-img,
.gallery-main-img {
  display: block;
  width: 100%;
  object-fit: cover;
}

#pdp-gallery {
  background: var(--pm-surface);
  padding: 1.2rem 0 0;
}

.gallery-main-img {
  height: 420px;
  border-radius: var(--pm-radius-xl);
}

.gallery-grid-img {
  height: 203px;
  border-radius: var(--pm-radius-lg);
}

.gallery-col-right {
  display: flex;
  flex-direction: column;
  gap: 8px;
  height: 100%;
}

.gallery-view-all,
.qf-pill {
  align-items: center;
  color: var(--pm-brand-ink);
}

.gallery-row-pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.gallery-view-all {
  position: absolute;
  bottom: 16px;
  right: 16px;
  background: rgb(255, 255, 255, 0.94);
  backdrop-filter: blur(8px);
  border: none;
  border-radius: var(--pm-radius-md);
  font-size: 0.75rem;
  font-weight: 800;
  padding: 0.5rem 1rem;
  cursor: pointer;
  display: flex;
  gap: 0.35rem;
  box-shadow: var(--pm-shadow-sm);
}

#map,
.similar-img,
.video-container {
  position: relative;
  overflow: hidden;
}

.gallery-view-all:hover {
  background: var(--pm-neutral-0);
  color: var(--pm-brand);
}

#pdp-main,
.pdp-main {
  padding: 2rem 0 3rem;
  background: var(--pm-surface-alt);
}

.pdp-content-col {
  background: var(--pm-surface);
  border-radius: var(--pm-radius-xl);
  padding: 2rem;
  box-shadow: var(--pm-shadow-sm);
  font-family: var(--pm-font-body);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.7rem;
  min-width: 0;
}

.pdp-section {
  margin-bottom: 1.5rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--pm-border);
}

.quick-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
}

.qf-pill {
  display: inline-flex;
  gap: 0.38rem;
  font-size: 0.75rem;
  font-weight: 700;
  background: var(--pm-surface-alt);
  border: 1.5px solid var(--pm-border);
  border-radius: 999px;
  padding: 0.42rem 0.9rem;
  line-height: 1.4;
}

.amenity-item {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--pm-text);
  padding: 0.45rem 0;
}

.amenity-item .amico,
.amenity-item .fa,
.amenity-item .ico {
  color: var(--pm-brand);
  flex-shrink: 0;
  font-size: 0.85rem;
}

.similar-card,
a.similar-card {
  background: var(--pm-surface);
  border-radius: var(--pm-radius-xl);
  overflow: hidden;
  box-shadow: 0 4px 16px rgb(0, 0, 0, 0.08);
  border: 1px solid rgb(17, 24, 39, 0.07);
  height: 100%;
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
  transition:
    transform 0.2s,
    box-shadow 0.2s;
}

.similar-card:hover,
a.similar-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 28px rgb(0, 0, 0, 0.12);
  color: inherit;
}

.similar-img {
  height: 140px;
  flex-shrink: 0;
}

.similar-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s;
  display: block;
}

.similar-img::before {
  content: '';
  position: absolute;
  height: 50px;
  background: linear-gradient(to bottom, rgb(0, 0, 0, 0.32), transparent);
  z-index: 1;
}

.similar-body {
  padding: 0.9rem 1rem;
  flex: 1;
}

.similar-loc {
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--pm-text-subtle);
  margin-bottom: 0.25rem;
  display: flex;
  align-items: center;
  gap: 0.25rem;
}

.similar-name {
  font-size: 0.9rem;
  font-weight: 800;
  color: var(--pm-brand-ink);
  margin-bottom: 0.28rem;
}

.similar-price {
  font-size: 0.78rem;
  color: var(--pm-text-muted);
  margin-top: 0.25rem;
}

.video-container {
  width: 100%;
  padding-top: 56.25%;
}

.responsive-iframe {
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.7rem;
  color: var(--default-text-color);
  box-sizing: border-box;
  width: 100% !important;
  min-height: 380px !important;
  background-color: var(--pm-text-subtle);
  display: flex;
  justify-content: center;
  align-items: center;
}

.leave-review {
  width: 100%;
  margin: auto;
}

.leave-review a {
  display: initial;
}

.side-sticky {
  max-width: 400px;
  margin-top: 80px;
  position: fixed;
  top: 0;
}

.floorplan-image {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
}

.empty-reviews {
  display: table;
  font-size: 1.6rem;
  vertical-align: baseline;
  padding-left: 50px;
  margin-top: 16px;
  margin-bottom: 16px;
  width: 100%;
  height: 150px;
  color: var(--pm-brand);
}

.reviews_wrapper {
  display: grid;
  grid-template-columns: repeat(1, 50% 50%);
  gap: 3em;
}

#map {
  height: 650px;
}

.review_card {
  display: grid;
}

.review_card_row {
  display: grid;
  grid-template-columns: repeat(1, 40% 60%);
  font-size: 1.1rem;
}

#form-wrapper,
.amenities,
.top-reasons-to-book ol {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}

.review_card_body {
  font-size: 0.87rem;
}

.reviews_star_rating {
  text-align: right;
}

.top-reasons-to-book ol {
  gap: 20px;
  height: fit-content;
  list-style: none;
  counter-reset: reasons_counter;
  padding-inline-start: 0;
}

.top-reasons-to-book ol li::before {
  counter-increment: reasons_counter;
  content: counter(reasons_counter) '\A';
  white-space: pre;
  color: var(--pm-surface);
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 3rem;
  background: var(--pm-brand);
  border-radius: var(--pm-radius-md);
  text-align: center;
  box-shadow: 1px 1px 0 var(--pm-text-subtle);
  padding: 10px;
}

.img-gal-open:hover,
td.pm_selected_day a,
td.pm_selected_day span {
  background: var(--pm-brand) !important;
  color: var(--pm-neutral-0) !important;
}

.right-arrow::before {
  font-family: FontAwesome;
  font-weight: 400;
  content: '\f061';
}

.pdp-row {
  display: grid !important;
  grid-template-columns: 2fr 1fr;
  align-items: start;
  gap: 2rem;
}

.arrangements,
.arrangements .slick-list,
.promo-slider,
.promo-slider .slick-list {
  max-width: 100%;
  overflow: hidden;
}

.content-column-right {
  width: 100% !important;
  box-sizing: border-box;
  position: sticky;
  top: 90px !important;
  overflow: auto;
  max-height: 100vh;
  padding-bottom: 80px !important;
  padding-top: 0 !important;
}

.image-grid {
  box-sizing: border-box;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-auto-rows: 300px;
  gap: 16px;
}

.image-grid > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: var(--pm-radius-lg);
}

.image-grid-col-2 {
  grid-column: span 2;
}

.image-grid-row-2 {
  grid-row: span 2;
}

.room-arrangement-card {
  min-height: 200px;
  background: var(--pm-surface-alt) !important;
  border: 1px solid var(--pm-border) !important;
  border-radius: var(--pm-radius-lg);
  margin-top: 10px;
}

.bathroom-name,
.otherroom-name,
.room-name {
  font-size: 0.8rem;
  margin: 0 0 0.25rem;
}

.sleeping-arrangements-section.border-top {
  border-top: 1px solid var(--pm-border);
  margin-top: 1.5rem;
  padding-top: 1.5rem;
}

.sleeping-arrangements-section .section-header {
  display: block;
}

.promo-slider .card {
  border: 1px solid var(--pm-border) !important;
  border-radius: var(--pm-radius-xl) !important;
  display: flex !important;
  flex-direction: column;
}

.promo-slider .card .title {
  font-size: 0.95rem;
  margin-bottom: 0.4rem;
}

.promo-slider .card p {
  font-family: var(--pm-font-body);
  font-size: 0.8rem;
  color: var(--pm-text-muted);
  line-height: 1.55;
  margin-bottom: 1rem;
}

.promo-slider .card .btn {
  font-size: 0.8rem;
  padding: 0.55rem 1.3rem;
  margin-top: auto;
  align-self: flex-start;
}

.img-gal-open {
  display: flex !important;
  align-items: center !important;
  position: absolute !important;
  bottom: 16px;
  right: 16px;
  text-align: center !important;
  text-decoration: none !important;
  width: auto !important;
  font-family: var(--pm-font-body);
  font-size: 0.75rem !important;
  line-height: 1 !important;
  font-weight: 800 !important;
  border-radius: var(--pm-radius-md) !important;
  border: none !important;
  outline: 0 !important;
  padding: 0.55rem 1rem !important;
  background: var(--pm-neutral-0) !important;
  color: var(--pm-brand) !important;
  box-shadow: var(--pm-shadow-sm);
  transition:
    background 0.15s,
    color 0.15s;
}

.img-gal-open svg {
  stroke: currentColor !important;
  color: inherit !important;
}

.all-images {
  background-color: #fefefe;
  margin: auto;
  padding: 20px;
  border: 1px solid var(--pm-text-muted);
  width: 80%;
}

.all-images img {
  width: 100%;
  height: 100%;
  margin-top: 16px;
  margin-bottom: 16px;
}

.close {
  color: var(--pm-brand-ink);
  float: right;
  font-size: 212px;
  font-weight: 700;
}

.close:focus,
.close:hover {
  color: var(--pm-brand-ink);
  text-decoration: none;
  cursor: pointer;
}

.property-location,
.top-section ul li span {
  font-size: 0.95rem;
  color: var(--pm-text-muted);
  font-family: var(--pm-font-body);
  font-weight: 600;
}

.property-location::before {
  font-family: 'Font Awesome 6 Free';
  font-weight: 900;
  content: '\f3c5   ';
  color: var(--pm-brand);
}

.property-location {
  margin-bottom: 1.2rem;
}

.top-section {
  margin-bottom: 1rem;
}

.top-section ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.top-section ul li span {
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

.property-type-label {
  font-family: var(--pm-font-body);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--pm-brand) !important;
  border-color: var(--pm-brand) !important;
  background-color: transparent !important;
}

.basic-unit-info {
  font-size: 1.2rem;
  margin-top: 10px;
  margin-bottom: 20px;
}

.basic-info {
  gap: 0.6rem;
}

.basic-info > div {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  border: 1px solid var(--pm-border);
  border-radius: 999px;
  padding: 0.45rem 0.9rem;
  font-family: var(--pm-font-body);
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--pm-brand-ink);
}

.featured_property_type,
.featured_text_header {
  min-width: 150px;
  border-radius: var(--pm-radius-md);
  max-width: fit-content;
  padding: var(--pm-radius-md) var(--pm-radius-lg) 3px;
  margin-bottom: 20px;
  font-size: 1rem;
  text-transform: uppercase;
  text-align: center;
}

.featured_text_header {
  background-color: var(--pm-brand);
  color: var(--pm-surface);
}

.featured_property_type {
  color: var(--pm-brand);
  border-color: var(--pm-brand);
  box-sizing: content-box;
  border-style: solid;
}

.featured_property_type::before {
  clear: both;
  content: '  ';
}

.prop_det_featured_text {
  color: var(--pm-text);
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.5;
  margin-top: 0.4rem;
}

.amenities span,
.top5-amenities span {
  font-size: 0.85rem;
  color: var(--pm-text);
}

.unit-descr-section {
  margin-bottom: 28px;
}

.arrangements {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  height: auto;
}

.amenities span {
  font-weight: 500;
  line-height: 2rem;
}

.amenities span::after {
  content: '\A';
  white-space: pre;
}

.top5-amenities i.fa {
  color: var(--pm-brand);
  width: 1.1em;
  text-align: center;
}

.top5-amenities.pb-3 {
  padding-bottom: 0;
}

.pdp-main section::before {
  border-top: 2px solid;
  border-color: var(--pm-border);
}

.top-reasons-to-book ol li {
  font-size: 1.2rem;
  height: 128px;
  border-top: 2px solid;
  border-color: var(--pm-border);
  line-height: 1.2rem;
}

.sticky {
  position: fixed;
  top: 0;
  width: 100%;
}

.property-widget-filters {
  top: var(--pm-header-h, 48px) !important;
  background: var(--pm-neutral-0);
}

/* Aire entre los botones y el header, sin franja transparente:
   el padding va en la fila con fondo blanco, no en el wrapper sticky. */
.property-widget-filters .pf__row.row-filters {
  padding-top: 0.6rem;
}

.pm-property-basic-info {
  display: flex !important;
  flex-wrap: wrap;
  gap: 0.6rem !important;
}

.pm-property-basic-info .col-check-out-day,
.pm-property-basic-info .lh-1 {
  display: inline-flex !important;
  align-items: center;
  gap: 0.38rem;
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--pm-brand-ink) !important;
  background: var(--pm-surface-alt);
  border: 1.5px solid var(--pm-border);
  border-radius: 999px;
  padding: 0.42rem 0.9rem !important;
  margin: 0 !important;
}

.pm-property-basic-info .lh-1 img {
  filter: sepia(1) hue-rotate(330deg) saturate(3) brightness(0.9);
}

.toggle-reviews {
  background: 0 0 !important;
  color: var(--pm-brand) !important;
  font-weight: 700;
  font-size: 0.84rem;
  border: 1.5px solid var(--pm-brand) !important;
  border-radius: var(--pm-radius-md) !important;
  padding: 0.7rem 1.45rem !important;
  cursor: pointer;
}

.pm-property-top-info ul {
  display: flex !important;
  align-items: center;
  flex-wrap: wrap;
  gap: 1rem;
  font-size: 0.8rem;
  color: var(--pm-text-muted);
  list-style: none;
  padding: 0;
  margin-bottom: 0.5rem;
}

.pm-property-top-info ul li i.fa-star {
  color: var(--pm-brand) !important;
  font-size: 0.82rem;
}

#map-section {
  margin-top: 1.5rem;
  border-top: 1px solid var(--pm-border-strong);
  padding-top: 1.5rem;
}

.map-container {
  margin-bottom: 1.5rem;
}

.map #map,
.map-interactive-container {
  max-height: 350px !important;
}

.sleeping-arrangements-section {
  padding-bottom: 1.5rem;
}

@media (max-width: 991px) {
  .sidebar-sticky {
    position: static;
    margin-top: 1.4rem;
  }

  .pdp-content-col {
    padding: 1.4rem;
  }
}

@media (max-width: 767px) {
  .gallery-main-img {
    height: 280px;
    border-radius: var(--pm-radius-lg);
  }

  .gallery-grid-img {
    height: 130px;
  }
}

@media (max-width: 575px) {
  .nav-brand {
    padding: 0;
  }

  .nav-brand-name {
    color: var(--pm-neutral-0);
    font-size: 1.05rem;
    letter-spacing: 0.01em;
  }

  .mobile-results-count {
    display: block;
    color: #9aa0a6;
    font-size: 0.88rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    margin: 0 0 12px;
  }

  .p-badge {
    font-size: 0.72rem;
    padding: 0.42rem 0.75rem;
  }

  .pdp-content-col {
    padding: 1rem;
    border-radius: var(--pm-radius-lg);
  }

  .gallery-main-img {
    height: 220px;
    border-radius: var(--pm-radius-lg);
  }

  .gallery-grid-img {
    height: 100px;
  }

  .similar-img {
    height: 120px;
  }
}

@media (min-width: 768px) {
  .top5-amenities.row .col-md-6 {
    width: 33.333%;
  }
}

@media screen and (max-width: 1078px) {
  .image-grid {
    box-sizing: border-box;
    padding: 16px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: 200px;
    gap: 16px;
  }

  .amenities,
  .arrangements,
  .top-reasons-to-book ol {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
  }

  .amenities,
  .arrangements {
    height: auto;
  }

  .top-reasons-to-book ol {
    height: fit-content;
    list-style: none;
    counter-reset: reasons_counter;
  }

  .hr-line,
  hr.section_hr {
    display: inline-block !important;
    margin-bottom: 20px;
  }

  .top-reasons-to-book ol li::before {
    counter-increment: reasons_counter;
    content: counter(reasons_counter) '\A';
    white-space: pre;
    color: var(--pm-surface);
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 3rem;
    background: var(--pm-brand);
    border-radius: var(--pm-radius-md);
    text-align: center;
    box-shadow: 1px 1px 0 var(--pm-text-subtle);
    padding: 10px;
  }

  .room-arrangement-card {
    height: fit-content;
    width: 100%;
    background: var(--pm-surface-alt) !important;
    border: 1px solid var(--pm-border) !important;
    border-radius: var(--pm-radius-lg);
    margin-top: 10px;
    padding: 1rem 1.1rem;
    text-align: center;
  }

  .top-reasons-to-book ol li {
    font-size: 1.2rem;
    height: fit-content;
    border-top: 2px solid;
    border-color: var(--pm-border);
    line-height: 1.2rem;
  }

  .pdp-content-col {
    width: 100% !important;
    padding: 1.2rem !important;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.7rem;
  }

  .content-column-right {
    margin-top: 20px;
    width: 100%;
  }

  .hr-line {
    border-top: 2px solid var(--pm-border-strong);
    margin-top: 20px;
  }

  hr.section_hr {
    border: 1px solid var(--pm-border-strong);
    margin-top: 20px;
  }
}

@media screen and (max-width: 1152px) {
  .pdp-row {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .content-column-right {
    margin-top: 20px;
    width: 100%;
    overflow: visible;
    max-height: none;
  }

  .side-sticky {
    position: inherit;
  }

  .top-reasons-to-book ol {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    height: fit-content;
    list-style: none;
    counter-reset: reasons_counter;
  }

  .top-reasons-to-book ol li::before {
    counter-increment: reasons_counter;
    content: counter(reasons_counter) '\A';
    white-space: pre;
    color: var(--pm-surface);
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 3rem;
    background: var(--pm-brand);
    border-radius: var(--pm-radius-md);
    text-align: center;
    box-shadow: 1px 1px 0 var(--pm-text-subtle);
    padding: 10px;
  }

  .top-reasons-to-book ol li {
    font-size: 1.2rem;
    height: fit-content;
    border-top: 2px solid;
    border-color: var(--pm-border);
    line-height: 1.2rem;
  }
}

/* Map placeholder is a square driven by .map-image-container:after
   { padding-bottom: 100% } in the property_management plugin's
   custom.css (~779px measured). Halved on every property page. */
.map-image-container {
  height: 390px !important;
  overflow: hidden;
}

.map-image-container::after {
  display: none !important;
}

/* ---------------------------------------------------------
   16 · PAGE: PROPERTY MANAGEMENT / BOOKING WIDGET
--------------------------------------------------------- */
.pm_available_day {
  pointer-events: initial !important;
}

.pm_unavailable_day,
td.pm_unavailable_day span {
  background: #a9a9a9 !important;
  pointer-events: initial !important;
}

.pm_available_range_start_day,
td.pm_available_range_start_day span {
  background: linear-gradient(135deg, #a9a9a9 45%, var(--pm-neutral-0) 45%) !important;
}

.pm_available_range_end_day,
td.pm_available_range_end_day span {
  background: linear-gradient(225deg, #a9a9a9 45%, var(--pm-neutral-0) 45%) !important;
}

.pm_checkin_day a,
.pm_checkout_day a {
  color: var(--pm-brand) !important;
  font-weight: 700 !important;
}

.pm_available_day,
.pm_unavailable_day {
  opacity: 100% !important;
}

input#pm-input-date-arrival,
input#pm-input-date-depart {
  padding: 0 0 0 18px;
}

.ui-widget-header {
  background: 0 0;
  border: none;
}

.ui-state-default,
.ui-widget-content .ui-state-default {
  padding: var(--pm-radius-md);
  margin: 2px;
  border-radius: var(--pm-radius-md);
}

.ui-widget.ui-widget-content {
  border-style: none;
  margin-bottom: 20px;
}

.ui-state-default,
.ui-widget-content .ui-state-default {
  background: 0 0;
}

/* PDP availability calendar (#pdp-availability): the plugin's base-calendar.css
   paints the selected day #007fff and the check-in/out days #197dc7, both with
   !important. Re-point them to the brand colour — the #id out-specifies the
   plugin's selectors so we win the !important tie. */
#pdp-availability td.pm_selected_day span,
#pdp-availability td.pm_selected_day a {
  background: var(--pm-brand) !important;
  color: var(--pm-neutral-0) !important;
}

#pdp-availability .pm_checkin_day a,
#pdp-availability .pm_checkout_day a {
  color: var(--pm-brand) !important;
}

/* …except when that same day is the SELECTED/today one. jQuery UI adds
   .ui-state-active to it, and `.ui-state-default.ui-state-active` (further down
   this file) fills it with a solid var(--pm-brand) circle. The check-in rule
   above out-specifies that rule's colour — (1,1,1) vs (0,2,0), both !important —
   so the digit stays brand red on a brand red fill: contrast 1.0, the number is
   simply not there. Measured on the LBJ PDP for today's cell, which carries
   .pm_checkin_day and .ui-datepicker-today at once.

   (1,2,1) so it wins on specificity rather than on source order — this file is
   bundled ahead of the plugin's own calendar CSS, so order is not ours to rely
   on. Scoped to .ui-state-active, which is exactly the state that gets the
   filled background; unselected check-in days keep their red-on-white styling.
   White (not a token) to match .pm_selected_day above, which is the same
   filled-circle treatment. */
#pdp-availability .pm_checkin_day a.ui-state-active,
#pdp-availability .pm_checkout_day a.ui-state-active {
  color: var(--pm-neutral-0) !important;
}

.pm-inline-loading-day,
.pm-inline-loading-day span {
  background: var(--pm-text-subtle) !important;
}

.pm-inline-available-checkout-day span,
.pm-inline-unavailable-day span {
  background: var(--pm-border-strong) !important;
}

.pm-inline-available-checkin-checkout-day span,
.pm-inline-available-checkin-day span {
  background: var(--pm-surface) !important;
  color: var(--pm-brand-ink) !important;
}

.pm-inline-selected-day a,
.pm-inline-selected-day span,
.pm-popup-selected-day a,
.pm-popup-selected-day span {
  border: 1px solid var(--pm-brand-hover) !important;
  background: var(--pm-brand) !important;
  font-weight: 400 !important;
  color: var(--pm-surface) !important;
}

#pm-button-book-now,
#pm-div-guests-select {
  grid-column: 1/3;
}

#form-wrapper input {
  border: transparent;
}

#form-wrapper select {
  border: transparent;
  background: 0 0;
}

#side-avail-check,
.booking-widget,
.fake-booking-widget {
  border-radius: var(--pm-radius-xl) !important;
  box-shadow: var(--pm-shadow-sm) !important;
  border: 1px solid var(--pm-border) !important;
  overflow: hidden;
  background-color: var(--pm-surface) !important;
  font-family: var(--pm-font-body);
  transition: box-shadow 0.3s;
}

#side-avail-check:hover {
  box-shadow: var(--pm-shadow-lg) !important;
}

.bw-trust {
  border-top: 1px solid var(--pm-border);
  padding: 0.9rem 1.4rem;
  background: var(--pm-surface-alt);
  font-family: var(--pm-font-body);
}

.bw-trust-item {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.7rem;
  color: var(--pm-text-muted);
  margin-bottom: 0.35rem;
}

.bw-trust-item .ico {
  color: var(--pm-success);
  flex-shrink: 0;
}

div#pm-div-date-arrive label,
div#pm-div-date-depart label {
  padding-left: 18px;
  font-size: 0.8rem;
  font-weight: 500;
}

.booking-widget-sticky {
  position: sticky;
  top: var(--pm-header-h, 48px);
  height: max-content;
  z-index: 10;
}

.ui-state-default.ui-state-active {
  background: var(--pm-brand) !important;
  color: var(--pm-neutral-0) !important;
  border-color: var(--pm-brand) !important;
}

@media screen and (max-width: 1078px) {
  div#pm-div-date-arrive label,
  div#pm-div-date-depart label {
    padding-left: 18px;
    font-size: 0.8rem;
    font-weight: 500;
  }
}

.elementor-post-navigation__arrow-wrapper:hover {
  color: var(--pm-brand);
}

.elementor-post-navigation__separator-wrapper {
  display: none;
}

/* ---------------------------------------------------------
   17 · PAGE: SINGLE BLOG
--------------------------------------------------------- */
.elementor-widget-ucaddon_post_carousel .uc_carousel_item {
  background: var(--pm-surface) !important;
  border-radius: var(--pm-radius-xl) !important;
  border: 1px solid var(--pm-border) !important;
  box-shadow: var(--pm-shadow-sm) !important;
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
  transition:
    transform 0.2s,
    box-shadow 0.2s !important;
  height: 100% !important;
}

.elementor-widget-ucaddon_post_carousel .uc_carousel_item:hover {
  transform: translateY(-3px) !important;
  box-shadow: var(--pm-shadow-card) !important;
}

.elementor-widget-ucaddon_post_carousel .uc_image_carousel_placeholder {
  height: 180px !important;
  overflow: hidden !important;
  flex-shrink: 0 !important;
  width: 100% !important;
}

.elementor-widget-ucaddon_post_carousel .uc_image_carousel_placeholder img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  transition: transform 0.4s !important;
}

.elementor-widget-ucaddon_post_carousel .uc_carousel_item:hover .uc_image_carousel_placeholder img {
  transform: scale(1.04) !important;
}

.elementor-widget-ucaddon_post_carousel .ue_pos_carousel_image_overlay {
  display: none !important;
}

.elementor-widget-ucaddon_post_carousel .uc_image_carousel_content {
  padding: 1.1rem 1.2rem 1rem !important;
  flex: 1 !important;
  display: flex !important;
  flex-direction: column !important;
  background: var(--pm-surface) !important;
}

.elementor-widget-ucaddon_post_carousel .uc_post_title {
  font-size: 0.92rem !important;
  font-weight: 800 !important;
  color: var(--pm-brand-ink) !important;
  letter-spacing: -0.01em !important;
  margin-bottom: 0.4rem !important;
  line-height: 1.25 !important;
}

.elementor-widget-ucaddon_post_carousel .uc_post_title a {
  color: var(--pm-brand-ink) !important;
  font-weight: 800 !important;
  text-decoration: none !important;
}

.elementor-widget-ucaddon_post_carousel .uc_post_title a:hover {
  color: var(--pm-brand) !important;
  text-decoration: none !important;
}

.elementor-widget-ucaddon_post_carousel .uc_paragraph {
  font-size: 0.78rem !important;
  color: var(--pm-text-muted) !important;
  line-height: 1.65 !important;
  margin-bottom: 0.75rem !important;
  flex: 1 !important;
}

.elementor-widget-ucaddon_post_carousel .ue-meta-data {
  font-size: 0.66rem !important;
  color: var(--pm-text-subtle) !important;
  font-weight: 600 !important;
  margin-bottom: 0.6rem !important;
  display: flex !important;
  align-items: center !important;
  gap: 0.35rem !important;
}

.elementor-widget-ucaddon_post_carousel .ue-item-btn-holder {
  margin-top: auto !important;
  padding: 0 !important;
}

.elementor-widget-ucaddon_post_carousel .uc_more_btn {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.32rem !important;
  font-size: 0.76rem !important;
  font-weight: 700 !important;
  color: var(--pm-brand) !important;
  background: 0 0 !important;
  border: none !important;
  padding: 0 !important;
  text-transform: none !important;
  margin: 0 !important;
  transition: gap 0.15s !important;
}

.elementor-widget-ucaddon_post_carousel .uc_more_btn:hover {
  gap: 0.5rem !important;
  color: var(--pm-brand-hover) !important;
  text-decoration: none !important;
}

.single-post h2:not(#final-cta *),
.single-post .entry-content h2:not(#final-cta *) {
  font-size: 1.12rem !important;
  font-weight: 900 !important;
  color: var(--pm-brand-ink) !important;
  letter-spacing: -0.02em !important;
  margin-bottom: 0.65rem !important;
  margin-top: 2rem !important;
  display: flex !important;
  align-items: center !important;
  gap: 0.55rem !important;
}

.single-post [data-id='c63eb1f'] h2::before,
.single-post .entry-content h2::before {
  content: '' !important;
  width: 4px !important;
  height: 1.12rem !important;
  background: var(--pm-brand) !important;
  border-radius: 2px !important;
  display: block !important;
  flex-shrink: 0 !important;
}

.single-post [data-id='c63eb1f'] p,
.single-post .entry-content p {
  font-size: 0.88rem !important;
  color: var(--pm-text) !important;
  line-height: 1.85 !important;
  margin-bottom: 1rem !important;
}

.single-post [data-id='c63eb1f'] ul,
.single-post .entry-content ul {
  list-style: none !important;
  padding: 0 !important;
  margin: 0.75rem 0 1rem !important;
}

.single-post [data-id='c63eb1f'] ul li,
.single-post .entry-content ul li {
  display: flex !important;
  align-items: flex-start !important;
  gap: 0.55rem !important;
  font-size: 0.86rem !important;
  color: var(--pm-text) !important;
  padding: 0.35rem 0 !important;
  border-bottom: 1px solid var(--pm-border) !important;
}

.single-post [data-id='c63eb1f'] ul li:last-child,
.single-post .entry-content ul li:last-child {
  border-bottom: none !important;
}

.single-post [data-id='c63eb1f'] ul li::before,
.single-post .entry-content ul li::before {
  content: '' !important;
  width: 6px !important;
  height: 6px !important;
  min-width: 6px !important;
  background: var(--pm-brand) !important;
  border-radius: 50% !important;
  margin-top: 0.4rem !important;
  flex-shrink: 0 !important;
}

.single-post .elementor-widget-theme-post-content > .elementor-widget-container,
.awd2-post-content.elementor-widget-text-editor > .elementor-widget-container {
  background: var(--pm-surface) !important;
  border-radius: var(--pm-radius-xl) !important;
  box-shadow: var(--pm-shadow-sm) !important;
  padding: 2.2rem 2rem !important;
  margin-bottom: 2rem !important;
}

/* Post body repeats its own title as an H1 right under the hero — drop it. */
.single-post .elementor-widget-theme-post-content h1 {
  display: none !important;
}

.single-post .elementor-widget-theme-post-content h2 {
  font-size: 1.12rem !important;
  font-weight: 900 !important;
  color: var(--pm-brand-ink) !important;
  letter-spacing: -0.02em !important;
  margin-bottom: 0.65rem !important;
  margin-top: 2rem !important;
  display: flex !important;
  align-items: center !important;
  gap: 0.55rem !important;
}

.single-post .elementor-widget-theme-post-content h2::before {
  content: '' !important;
  width: 4px !important;
  height: 1.12rem !important;
  background: var(--pm-brand) !important;
  border-radius: 2px !important;
  display: block !important;
  flex-shrink: 0 !important;
}

.single-post .elementor-widget-theme-post-content h3 {
  font-size: 1rem !important;
  font-weight: 800 !important;
  color: var(--pm-heading) !important;
  letter-spacing: -0.01em !important;
  margin: 1.5rem 0 0.5rem !important;
}

.single-post .elementor-widget-theme-post-content p {
  font-size: 0.88rem !important;
  color: var(--pm-text) !important;
  line-height: 1.85 !important;
  margin-bottom: 1rem !important;
}

/* Internal links were rendering at body colour (#333) — surface them. */
.single-post .elementor-widget-theme-post-content p a,
.single-post .elementor-widget-theme-post-content li a {
  color: var(--pm-brand) !important;
  font-weight: 600 !important;
  text-decoration: underline !important;
  text-underline-offset: 2px !important;
}

.single-post .elementor-widget-theme-post-content p a:hover,
.single-post .elementor-widget-theme-post-content li a:hover {
  color: var(--pm-brand-hover) !important;
}

.single-post .elementor-widget-theme-post-content ul:not(.elementor-icon-list-items) {
  list-style: none !important;
  padding: 0 !important;
  margin: 0.75rem 0 1rem !important;
}

.single-post .elementor-widget-theme-post-content ul:not(.elementor-icon-list-items) > li {
  display: flex !important;
  align-items: flex-start !important;
  gap: 0.55rem !important;
  font-size: 0.86rem !important;
  color: var(--pm-text) !important;
  padding: 0.35rem 0 !important;
  border-bottom: 1px solid var(--pm-border) !important;
}

.single-post
  .elementor-widget-theme-post-content
  ul:not(.elementor-icon-list-items)
  > li:last-child {
  border-bottom: none !important;
}

.single-post .elementor-widget-theme-post-content ul:not(.elementor-icon-list-items) > li::before {
  content: '' !important;
  width: 6px !important;
  height: 6px !important;
  min-width: 6px !important;
  background: var(--pm-brand) !important;
  border-radius: 50% !important;
  margin-top: 0.55rem !important;
  flex-shrink: 0 !important;
}

/* -- Redesign additions below: scoped under .single-post so these
      generic-sounding names never leak onto other templates -- */
.single-post #article-breadcrumb {
  background: var(--pm-surface);
  border-bottom: 1px solid var(--pm-border);
  padding: 0.6rem 0;
}

.single-post .breadcrumb-trail {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  flex-wrap: wrap;
}

.single-post .breadcrumb-link {
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--pm-text-subtle);
  transition: color 0.15s;
}

.single-post .breadcrumb-link:hover {
  color: var(--pm-brand);
}

.single-post .breadcrumb-sep {
  font-size: 0.68rem;
  color: var(--pm-border-strong);
}

.single-post .breadcrumb-current {
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--pm-brand-ink);
}

.single-post .breadcrumb-back {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--pm-brand);
  cursor: pointer;
  margin-right: 0.8rem;
}

.single-post .breadcrumb-back:hover {
  text-decoration: underline;
}

.single-post #article-hero {
  min-height: 460px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 80px 0 0;
  position: relative;

  /* CSS-only backdrop until per-post featured images land: dark brand base +
     a soft orange glow top-right so the void reads as intentional. */
  background-color: var(--pm-heading);
  background-image:
    radial-gradient(
      115% 78% at 88% 12%,
      color-mix(in srgb, var(--pm-brand) 22%, transparent) 0%,
      transparent 55%
    ),
    linear-gradient(
      165deg,
      color-mix(in srgb, var(--pm-heading) 94%, #000) 0%,
      color-mix(in srgb, var(--pm-heading) 68%, #000) 100%
    );
  background-position: center 45%;
  background-size: cover;
  background-repeat: no-repeat;
}

/* CTAs live inside a Text Editor widget, so `.elementor-widget-text-editor a`
   (0,2,1) out-specifies the bare global `.btn-*` rules. Re-assert under the
   hero ID so the buttons keep their fill/outline. */
.single-post #article-hero .btn-or,
.single-post #article-hero .btn-ghost-white {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.84rem;
  padding: 0.72rem 1.5rem;
  border-radius: var(--pm-radius-md);
  cursor: pointer;
  text-decoration: none;
}

.single-post #article-hero .btn-or {
  background: var(--pm-action);
  color: var(--pm-neutral-0);
  font-weight: 700;
  border: 2px solid var(--pm-action);
  transition:
    background 0.18s,
    transform 0.15s,
    box-shadow 0.18s;
}

.single-post #article-hero .btn-or:hover {
  background: var(--pm-action-hover);
  color: var(--pm-neutral-0);
  transform: translateY(-1px);
  box-shadow: 0 6px 20px var(--pm-action-glow);
}

.single-post #article-hero .btn-ghost-white {
  background: transparent;
  color: var(--pm-neutral-0);
  font-weight: 600;
  border: 1.5px solid rgb(255, 255, 255, 0.45);
  transition:
    border-color 0.18s,
    background 0.18s,
    transform 0.15s;
}

.single-post #article-hero .btn-ghost-white:hover {
  border-color: rgb(255, 255, 255, 0.85);
  background: rgb(255, 255, 255, 0.08);
  transform: translateY(-1px);
}

.single-post .article-hero-inner {
  position: relative;
  z-index: 1;
}

.single-post .art-category-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.6rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  background: var(--pm-brand);
  color: var(--pm-neutral-0);
  border-radius: 999px;
  padding: 0.32rem 0.8rem;
  margin-bottom: 0.85rem;
}

.single-post .article-hero-h1 {
  font-size: clamp(1.6rem, 3.8vw, 2.8rem);
  font-weight: 900;
  color: var(--pm-neutral-0);
  line-height: 1.1;
  max-width: 720px;
  margin-bottom: 0.85rem;
  letter-spacing: -0.025em;
}

.single-post .article-hero-sub {
  font-size: 0.9rem;
  color: rgb(255, 255, 255, 0.62);
  max-width: 560px;
  line-height: 1.75;
  margin-bottom: 1.2rem;

  /* Auto-generated excerpts can sprawl — cap to 3 lines so the hero stays tidy
     even when a post has no manual excerpt set. */
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.single-post .article-meta-row {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  flex-wrap: wrap;
  margin-bottom: 1.5rem;
}

.single-post .article-meta-item {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.7rem;
  font-weight: 600;
  color: rgb(255, 255, 255, 0.55);
}

.single-post .article-meta-item .ico {
  color: rgb(255, 255, 255, 0.45);
}

.single-post .article-meta-sep {
  width: 3px;
  height: 3px;
  background: rgb(255, 255, 255, 0.3);
  border-radius: 50%;
}

.single-post .article-placeholder-note {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.64rem;
  color: var(--pm-accent);
  font-style: italic;
  background: rgb(247, 181, 131, 0.12);
  border-radius: 999px;
  padding: 0.2rem 0.65rem;
  border: 1px solid rgb(247, 181, 131, 0.2);
}

.single-post #article-body {
  padding: 2rem 0 3rem;
  background: var(--pm-surface-alt);
}

.single-post .article-panel {
  background: var(--pm-surface);
  border-radius: var(--pm-radius-xl);
  box-shadow: var(--pm-shadow-sm);
  padding: 2.2rem 2rem;
}

.single-post .article-intro {
  font-size: 0.95rem;
  color: var(--pm-text);
  line-height: 1.85;
  margin-bottom: 1.8rem;
  font-weight: 500;
  padding-bottom: 1.4rem;
  border-bottom: 2px solid var(--pm-border);
}

.single-post .article-h2 {
  font-size: 1.12rem;
  font-weight: 900;
  color: var(--pm-brand-ink);
  letter-spacing: -0.02em;
  margin-bottom: 0.65rem;
  margin-top: 2rem;
  display: flex;
  align-items: center;
  gap: 0.55rem;
}

.single-post .article-h2::before {
  content: '';
  width: 4px;
  height: 1.12rem;
  background: var(--pm-brand);
  border-radius: 2px;
  display: block;
  flex-shrink: 0;
}

.single-post .article-h2:first-of-type {
  margin-top: 0;
}

.single-post .article-p {
  font-size: 0.88rem;
  color: var(--pm-text);
  line-height: 1.85;
  margin-bottom: 1rem;
}

.single-post .article-p:last-child {
  margin-bottom: 0;
}

.single-post .article-ul {
  list-style: none;
  padding: 0;
  margin: 0.75rem 0 1rem;
}

.single-post .article-ul li {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  font-size: 0.86rem;
  color: var(--pm-text);
  padding: 0.35rem 0;
  border-bottom: 1px solid var(--pm-border);
}

.single-post .article-ul li:last-child {
  border-bottom: none;
}

.single-post .article-ul li::before {
  content: '';
  width: 6px;
  height: 6px;
  min-width: 6px;
  background: var(--pm-brand);
  border-radius: 50%;
  margin-top: 0.4rem;
  flex-shrink: 0;
}

.single-post .key-takeaways {
  background: var(--pm-success-tint, #e4f5ee);
  border: 1px solid rgb(26, 107, 71, 0.2);
  border-left: 4px solid var(--pm-success, #1a6b47);
  border-radius: var(--pm-radius-lg);
  padding: 1.2rem 1.3rem;
  margin: 1.5rem 0;
}

.single-post .kt-title {
  font-size: 0.78rem;
  font-weight: 800;
  color: var(--pm-success, #1a6b47);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 0.75rem;
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

.single-post .kt-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.single-post .kt-list li {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  font-size: 0.82rem;
  color: var(--pm-text);
  font-weight: 500;
  padding: 0.3rem 0;
}

.single-post .kt-check {
  width: 16px;
  height: 16px;
  min-width: 16px;
  background: var(--pm-success, #1a6b47);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: 1px;
}

.single-post .kt-check::after {
  content: '\2713';
  color: var(--pm-neutral-0);
  font-size: 9px;
  font-weight: 800;
}

.single-post .article-tip {
  background: var(--pm-brand-tint);
  border-left: 4px solid var(--pm-brand);
  border-radius: var(--pm-radius-lg);
  padding: 0.9rem 1.1rem;
  margin: 1rem 0;
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
}

.single-post .tip-ico {
  width: 20px;
  height: 20px;
  min-width: 20px;
  background: var(--pm-brand);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: 1px;
}

.single-post .tip-ico::after {
  content: '!';
  color: var(--pm-neutral-0);
  font-size: 11px;
  font-weight: 900;
  font-family: var(--pm-font-body);
}

.single-post .article-tip p {
  font-size: 0.82rem;
  color: var(--pm-brand-hover);
  font-weight: 700;
  margin: 0;
  line-height: 1.5;
}

.single-post .area-mini-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.6rem;
  margin: 1.2rem 0;
}

.single-post .area-mini-card {
  background: var(--pm-surface-alt);
  border: 1px solid var(--pm-border);
  border-radius: var(--pm-radius-lg);
  padding: 0.85rem 0.9rem;
}

.single-post .area-mini-name {
  font-size: 0.82rem;
  font-weight: 800;
  color: var(--pm-brand-ink);
  margin-bottom: 0.28rem;
  display: flex;
  align-items: center;
  gap: 0.3rem;
  letter-spacing: -0.01em;
}

.single-post .area-mini-name .ico {
  color: var(--pm-brand);
}

.single-post .area-mini-desc {
  font-size: 0.72rem;
  color: var(--pm-text-muted);
  line-height: 1.55;
  margin: 0;
}

.single-post .article-cta-callout {
  background: linear-gradient(135deg, var(--pm-brand-tint) 0%, var(--pm-neutral-0) 70%);
  border: 1.5px solid rgb(var(--pm-brand-rgb), 0.25);
  border-radius: var(--pm-radius-xl);
  padding: 1.3rem 1.4rem;
  margin: 1.5rem 0;
  display: flex;
  align-items: center;
  gap: 1.2rem;
  flex-wrap: wrap;
}

.single-post .acc-text h5 {
  font-size: 0.9rem;
  font-weight: 800;
  color: var(--pm-brand-ink);
  margin-bottom: 0.28rem;
  letter-spacing: -0.01em;
}

.single-post .acc-text p {
  font-size: 0.78rem;
  color: var(--pm-text-muted);
  margin: 0;
  line-height: 1.6;
}

.single-post .article-divider {
  border: none;
  border-top: 1px solid var(--pm-border);
  margin: 1.6rem 0;
}

.single-post .article-final-cta {
  background: var(--pm-surface-alt);
  border-radius: var(--pm-radius-lg);
  padding: 1.4rem 1.3rem;
  margin-top: 1.8rem;
  border: 1px solid var(--pm-border);
}

.single-post .article-final-cta h4 {
  font-size: 0.95rem;
  font-weight: 800;
  color: var(--pm-brand-ink);
  margin-bottom: 0.4rem;
  letter-spacing: -0.01em;
}

.single-post .article-final-cta p {
  font-size: 0.82rem;
  color: var(--pm-text-muted);
  margin-bottom: 0.9rem;
  line-height: 1.65;
}

.single-post .article-note {
  font-size: 0.68rem;
  color: var(--pm-text-subtle);
  font-style: italic;
  padding: 0.5rem 0.75rem;
  background: var(--pm-border);
  border-radius: var(--pm-radius-md);
  display: block;
  margin: 0.6rem 0;
}

.single-post .toc-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.single-post .toc-list li {
  padding: 0.32rem 0;
  border-bottom: 1px solid var(--pm-border);
}

.single-post .toc-list li:last-child {
  border-bottom: none;
}

.single-post .toc-link {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--pm-text-muted);
  cursor: pointer;
  transition: color 0.15s;
}

.single-post .toc-link:hover {
  color: var(--pm-brand);
}

.single-post .toc-num {
  font-size: 0.62rem;
  font-weight: 800;
  color: var(--pm-brand);
  min-width: 16px;
}

.single-post #owner-bridge {
  background: var(--pm-ink-soft);
  padding: 56px 0;
  position: relative;
  overflow: hidden;
}

.single-post #owner-bridge::before {
  content: '';
  position: absolute;
  top: -140px;
  right: -100px;
  width: 500px;
  height: 500px;
  background: radial-gradient(circle, rgb(var(--pm-brand-rgb), 0.18) 0%, transparent 62%);
  pointer-events: none;
}

.single-post #owner-bridge .container {
  position: relative;
  z-index: 1;
}

@media (max-width: 991px) {
  .single-post .article-panel {
    padding: 1.6rem 1.4rem;
  }
}

@media (max-width: 767px) {
  .single-post .article-hero-h1 {
    font-size: 1.6rem;
  }

  .single-post #article-hero {
    min-height: 380px;
    padding-top: 70px;
  }

  .single-post .article-panel {
    padding: 1.2rem 1rem;
  }

  .single-post .area-mini-grid {
    grid-template-columns: 1fr 1fr;
  }

  .single-post .article-cta-callout {
    flex-direction: column;
    gap: 0.8rem;
  }

  .single-post .article-cta-callout .btn-or {
    width: 100%;
    justify-content: center;
  }
}

@media (max-width: 575px) {
  .single-post .article-hero-h1 {
    font-size: 1.4rem;
  }

  .single-post .area-mini-grid {
    grid-template-columns: 1fr;
  }
}

/* Native Elementor Table of Contents widget, reskinned to match the
   redesign's sidebar-card look (dark head, white body, bordered list).
   Unscoped (not .single-post-gated): this is the same reusable sidebar-card
   component styled a few hundred lines up, used on any template — blog
   single, article-style pages, etc. — that pairs a .sidebar-sticky column
   with an Elementor Table of Contents widget. */

/* The sidebar wrappers carry .sidebar-sticky (redesign class) and are already
   position:sticky, but their `top` is auto AND the grid stretches the column to
   full row height — so it never travels. Give it a real offset and stop it
   stretching (align-self) so it pins under the header. Desktop only; on mobile
   the column stacks below the article. */
@media (min-width: 992px) {
  .sidebar-sticky {
    position: sticky !important;
    top: calc(var(--pm-header-h, 88px) + 1rem) !important;
    align-self: flex-start !important;
  }

  /* Only the sidebar COLUMN wrapper should stick. The TOC card inside also
     carries .sidebar-sticky, so without this it becomes a second, nested
     sticky context that detaches and slides over the cards below it (Owner
     Note, etc.) as you scroll. Pin the column, keep the card in normal flow. */
  .sidebar-card.sidebar-sticky {
    position: static !important;
    top: auto !important;
  }
}

.elementor-widget-table-of-contents .elementor-widget-container {
  background: var(--pm-surface);
  border-radius: var(--pm-radius-xl);
  border: 1px solid var(--pm-border);
  box-shadow: var(--pm-shadow-sm);
  overflow: hidden;
}

.elementor-toc__header {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.elementor-toc__header-title {
  font-size: 0.82rem !important;
  font-weight: 900 !important;
  color: var(--pm-neutral-0) !important;
  letter-spacing: -0.01em !important;
  text-transform: none !important;
}

.elementor-toc__toggle-button svg {
  fill: var(--pm-neutral-0) !important;
}

.elementor-toc__list-wrapper {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.elementor-toc__list-wrapper .elementor-toc__list-wrapper {
  padding-left: 0.9rem !important;
}

.elementor-toc__list-item {
  padding: 0.32rem 0 !important;
  border-bottom: 1px solid var(--pm-border);
}

.elementor-toc__list-item:last-child {
  border-bottom: none;
}

.elementor-toc__list-item-text {
  font-size: 0.75rem !important;
  font-weight: 600 !important;
  color: var(--pm-text-muted) !important;
  transition: color 0.15s;
}

.elementor-toc__list-item-text:hover {
  color: var(--pm-brand) !important;
}

.elementor-toc__list-item-text.elementor-item-active {
  color: var(--pm-brand) !important;
  font-weight: 700 !important;
}

.elementor-toc__list-item-text.elementor-toc__top-level {
  font-weight: 700 !important;
  color: var(--pm-brand-ink) !important;
}

/* ---------------------------------------------------------
   18 · ARTICLE CARDS & NEWSLETTER (shared: blog list + single blog)
--------------------------------------------------------- */
.article-card {
  background: var(--pm-surface);
  border-radius: var(--pm-radius-xl);
  border: 1px solid var(--pm-border);
  box-shadow: var(--pm-shadow-sm);
  overflow: hidden;
  height: 100%;
  display: flex;
  flex-direction: column;
  transition:
    transform 0.2s,
    box-shadow 0.2s;
}

.article-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--pm-shadow-card);
}

.article-img-wrap {
  height: 180px;
  overflow: hidden;
  flex-shrink: 0;
}

.article-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.article-card:hover .article-img-wrap img {
  transform: scale(1.04);
}

.article-body {
  padding: 1.1rem 1.2rem 1rem;
  flex: 1;
  display: flex;
  flex-direction: column;
}

.article-cat {
  display: inline-flex;
  align-items: center;
  font-size: 0.58rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  border-radius: 999px;
  padding: 0.22rem 0.65rem;
  margin-bottom: 0.55rem;
}

.article-cat-guest {
  background: var(--pm-brand-tint);
  color: var(--pm-brand);
}

.article-cat-area {
  background: #eef6ff;
  color: #2563eb;
}

.article-cat-cabin {
  background: #fef9ee;
  color: #b45309;
}

.article-cat-booking {
  background: var(--pm-border);
  color: var(--pm-text);
}

.article-cat-owner {
  background: rgb(14, 14, 14, 0.08);
  color: var(--pm-brand-ink);
}

.article-cat-proj {
  background: #e4f5ee;
  color: var(--pm-success);
}

.article-title {
  font-size: 0.92rem;
  font-weight: 800;
  color: var(--pm-brand-ink);
  letter-spacing: -0.01em;
  margin-bottom: 0.4rem;
  line-height: 1.25;
}

.article-excerpt {
  font-size: 0.78rem;
  color: var(--pm-text-muted);
  line-height: 1.65;
  margin-bottom: 0.75rem;
  flex: 1;
}

.article-meta {
  font-size: 0.66rem;
  color: var(--pm-text-subtle);
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 0.35rem;
  margin-bottom: 0.6rem;
}

.article-footer {
  padding: 0.7rem 1.2rem;
  border-top: 1px solid var(--pm-border);
  background: var(--pm-surface-alt);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.btn-read-more {
  display: inline-flex;
  align-items: center;
  gap: 0.32rem;
  font-size: 0.76rem;
  font-weight: 700;
  color: var(--pm-action);
  cursor: pointer;
  transition: gap 0.15s;
  padding: 0;
  background: none;
  border: none;
  font-family: var(--pm-font-body);
}

.btn-read-more:hover {
  gap: 0.5rem;
  color: var(--pm-action-hover);
}

#newsletter {
  background: var(--pm-surface-alt);
  padding: 1.8rem 0;
  border-top: 1px solid var(--pm-border);
}

.nl-card {
  background: linear-gradient(135deg, var(--pm-brand-tint) 0%, var(--pm-neutral-0) 65%);
  border: 1.5px solid rgb(var(--pm-brand-rgb), 0.22);
  border-radius: var(--pm-radius-xl);
  padding: 2rem 2.2rem;
  position: relative;
  overflow: hidden;
}

.nl-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--pm-brand), var(--pm-accent), transparent 65%);
}

.nl-eyebrow {
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--pm-brand);
  display: block;
  margin-bottom: 0.5rem;
}

.nl-title {
  font-size: 1.1rem;
  font-weight: 900;
  color: var(--pm-brand-ink);
  margin-bottom: 0.45rem;
  letter-spacing: -0.02em;
}

.nl-copy {
  font-size: 0.82rem;
  color: var(--pm-text-muted);
  max-width: 480px;
  line-height: 1.65;
  margin-bottom: 1.1rem;
}

.nl-placeholder-note {
  font-size: 0.65rem;
  color: var(--pm-text-subtle);
  font-style: italic;
  margin-top: 0.5rem;
  display: block;
}

.nl-fake-field {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  background: var(--pm-surface);
  border: 1.5px solid var(--pm-border-strong);
  border-radius: var(--pm-radius-md);
  padding: 0.6rem 1rem;
  cursor: default;
  max-width: 340px;
}

.nl-fake-text {
  font-size: 0.84rem;
  color: var(--pm-text-subtle);
  font-weight: 500;
  flex: 1;
}

.nl-fake-field .ico {
  color: var(--pm-text-subtle);
  flex-shrink: 0;
}

#mobile-bar {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background: var(--pm-surface);
  border-top: 1px solid var(--pm-border);
  padding: 0.7rem 1rem;
  z-index: 999;
  align-items: center;
  justify-content: space-between;
  box-shadow: 0 -4px 20px rgb(0, 0, 0, 0.1);
  gap: 0.75rem;
}

.mbar-label {
  font-size: 0.78rem;
  font-weight: 800;
  color: var(--pm-brand-ink);
  line-height: 1.2;
}

.mbar-label span {
  display: block;
  font-size: 0.64rem;
  font-weight: 400;
  color: var(--pm-text-subtle);
}

.btn-mbar {
  background: var(--pm-action);
  color: var(--pm-neutral-0);
  border: none;
  border-radius: var(--pm-radius-md);
  font-family: var(--pm-font-body);
  font-weight: 800;
  font-size: 0.82rem;
  padding: 0.65rem 1.2rem;
  display: flex;
  align-items: center;
  gap: 0.38rem;
  cursor: pointer;
  white-space: nowrap;
}

@media (max-width: 767px) {
  #mobile-bar {
    display: flex;
  }

  .nl-card {
    padding: 1.4rem 1.2rem;
  }

  .nl-fake-field {
    max-width: 100%;
  }
}

/* ---------------------------------------------------------
   19 · PAGE: BLOG LIST
--------------------------------------------------------- */

/* -- Real markup currently on /blog/ (Elementor Posts widget +
      plain heading section) reskinned toward the redesign look.
      The classes below this block (#blog-hero, .featured-card,
      .cat-pill, .area-card, #owner-resources...) are ready for when
      those sections get built in Elementor; none of that markup
      exists on the page yet, so it has no effect until then. -- */
.elementor-element-60d8cde {
  padding: 0;
}

#blog-posts {
  min-height: 320px;
  padding: 70px 0 50px;
  position: relative;
  display: flex;
  align-items: flex-end;
}

#blog-posts::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    rgb(10, 10, 8, 0.22) 0%,
    rgb(10, 10, 8, 0.5) 55%,
    rgb(10, 10, 8, 0.88) 100%
  );
}

#blog-posts .elementor-container {
  position: relative;
  z-index: 1;
}

#blog-page-heading .elementor-heading-title {
  font-size: clamp(1.5rem, 3.5vw, 2.5rem);
  font-weight: 900;
  color: var(--pm-neutral-0);
  letter-spacing: -0.025em;
  line-height: 1.1;
}

.elementor-widget-posts .elementor-post {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.elementor-widget-posts .elementor-post__thumbnail__link {
  display: block;
  height: 190px;
  overflow: hidden;
  flex-shrink: 0;
}

.elementor-widget-posts .elementor-post__thumbnail__link img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.elementor-widget-posts .elementor-post:not(:has(.elementor-post__thumbnail__link))::before {
  content: '';
  display: block;
  height: 190px;
  flex-shrink: 0;
  background: linear-gradient(135deg, var(--pm-brand-tint), var(--pm-border));
}

.elementor-widget-posts .elementor-post__text {
  padding: 1.1rem 1.2rem 1rem;
  flex: 1;
  display: flex;
  flex-direction: column;
}

.elementor-widget-posts .elementor-post__title {
  font-size: 0.92rem;
  letter-spacing: -0.01em;
  margin-bottom: 0.4rem;
  line-height: 1.25;
}

.elementor-widget-posts .elementor-post__excerpt,
.elementor-widget-posts .elementor-post__excerpt p {
  font-size: 0.78rem;
  line-height: 1.65;
  margin-bottom: 0;
  flex: 1;
}

.elementor-widget-posts .elementor-post__read-more {
  display: inline-flex;
  align-items: center;
  gap: 0.32rem;
  font-size: 0.76rem;
  margin-top: 0.7rem;
  transition: gap 0.15s;
}

.elementor-widget-posts .elementor-post__read-more:hover {
  gap: 0.5rem;
  color: var(--pm-brand-hover);
}

/* ─── BLOG POST CARDS · v2 (opt-in) ──────────────────────────────
   Add the CSS class `awd-cards-v2` to the Elementor Posts widget
   (Advanced → CSS Classes). Everything is scoped to
   .elementor-widget-posts.awd-cards-v2, so it out-specifies the v1
   rules above ONLY for the opted-in widget — every other Posts widget
   keeps the existing look untouched. */
.elementor-widget-posts.awd-cards-v2 .elementor-post,
.elementor-widget-posts.pm-cards-v2 .elementor-post {
  background: var(--pm-surface);
  border: 1px solid var(--pm-border);
  border-radius: var(--pm-radius-xl);
  box-shadow: var(--pm-shadow-sm);
  overflow: hidden;
  height: 100%;
  display: flex;
  flex-direction: column;
  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease;
}

.elementor-widget-posts.awd-cards-v2 .elementor-post:hover,
.elementor-widget-posts.pm-cards-v2 .elementor-post:hover {
  transform: translateY(-3px);
  box-shadow: var(--pm-shadow-card);
}

.elementor-widget-posts.awd-cards-v2 .elementor-post__thumbnail__link,
.elementor-widget-posts.pm-cards-v2 .elementor-post__thumbnail__link {
  display: block;
  height: 200px;
  overflow: hidden;
  flex-shrink: 0;
  margin: 0;
  transition: transform 0.4s ease;
}

.elementor-widget-posts.awd-cards-v2 .elementor-post__thumbnail__link img,
.elementor-widget-posts.pm-cards-v2 .elementor-post__thumbnail__link img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Zoom the thumbnail frame itself on hover, not the <img>: Elementor's
   own item-ratio CSS already drives the img's transform (scale+translate
   to center-crop it), so animating transform on the img directly stomps
   that centering and makes the image jump. Scaling the link wrapper
   gets the same visual zoom without touching the img's transform. */
.elementor-widget-posts.awd-cards-v2 .elementor-post:hover .elementor-post__thumbnail__link,
.elementor-widget-posts.pm-cards-v2 .elementor-post:hover .elementor-post__thumbnail__link {
  transform: scale(1.04);
}

/* Fallback banner for posts with no featured image. The old two-stop
   tint→border gradient read as a broken/empty box on a white page;
   this reads as an intentional branded placeholder instead. */
.elementor-widget-posts.awd-cards-v2
  .elementor-post:not(:has(.elementor-post__thumbnail__link))::before,
.elementor-widget-posts.pm-cards-v2
  .elementor-post:not(:has(.elementor-post__thumbnail__link))::before {
  content: 'AVADA PROPERTIES';
  display: flex;
  align-items: center;
  justify-content: center;
  height: 200px;
  flex-shrink: 0;
  background: linear-gradient(135deg, var(--pm-brand-tint) 0%, var(--pm-brand) 145%);
  color: rgb(255, 255, 255, 0.68);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.elementor-widget-posts.awd-cards-v2 .elementor-post__text,
.elementor-widget-posts.pm-cards-v2 .elementor-post__text {
  padding: 1.15rem 1.25rem 0;
  flex: 1;
  display: flex;
  flex-direction: column;
}

/* Category / date meta, styled if the widget is set to output it. */
.elementor-widget-posts.awd-cards-v2 .elementor-post__meta-data,
.elementor-widget-posts.pm-cards-v2 .elementor-post__meta-data {
  font-size: 0.64rem;
  font-weight: 700;
  color: var(--pm-text-subtle);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 0.5rem;
}

.elementor-widget-posts.awd-cards-v2 .elementor-post__title,
.elementor-widget-posts.pm-cards-v2 .elementor-post__title {
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: -0.01em;
  line-height: 1.28;
  margin: 0 0 0.45rem;
}

.elementor-widget-posts.awd-cards-v2 .elementor-post__title a,
.elementor-widget-posts.pm-cards-v2 .elementor-post__title a {
  color: var(--pm-heading);
}

.elementor-widget-posts.awd-cards-v2 .elementor-post__title a:hover,
.elementor-widget-posts.pm-cards-v2 .elementor-post__title a:hover {
  color: var(--pm-brand);
}

.elementor-widget-posts.awd-cards-v2 .elementor-post__excerpt,
.elementor-widget-posts.pm-cards-v2 .elementor-post__excerpt,
.elementor-widget-posts.awd-cards-v2 .elementor-post__excerpt p,
.elementor-widget-posts.pm-cards-v2 .elementor-post__excerpt p {
  font-size: 0.8rem;
  line-height: 1.7;
  color: var(--pm-text-subtle);
  margin: 0;
}

/* Cap the excerpt to 3 lines so auto-excerpts (which repeat the title)
   never sprawl and every card stays the same height. */
.elementor-widget-posts.awd-cards-v2 .elementor-post__excerpt,
.elementor-widget-posts.pm-cards-v2 .elementor-post__excerpt {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.elementor-widget-posts.awd-cards-v2 .elementor-post__read-more,
.elementor-widget-posts.pm-cards-v2 .elementor-post__read-more {
  display: flex;
  align-items: center;
  gap: 0.32rem;
  margin: 1rem 1.25rem;
  padding-top: 0.8rem;
  border-top: 1px solid var(--pm-border);
  font-size: 0.74rem;
  font-weight: 700;
  color: var(--pm-brand);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  transition:
    gap 0.15s,
    color 0.15s;
}

.elementor-widget-posts.awd-cards-v2 .elementor-post__read-more::after,
.elementor-widget-posts.pm-cards-v2 .elementor-post__read-more::after {
  content: '→';
  font-size: 0.9rem;
  line-height: 1;
}

.elementor-widget-posts.awd-cards-v2 .elementor-post__read-more:hover,
.elementor-widget-posts.pm-cards-v2 .elementor-post__read-more:hover {
  gap: 0.55rem;
  color: var(--pm-brand-hover);
}

@media (max-width: 767px) {
  #blog-page-heading .elementor-heading-title {
    font-size: 1.6rem;
  }

  #blog-posts {
    min-height: 260px;
    padding: 60px 0 40px;
  }
}

/* No background image was ever supplied for this hero, so it was
   rendering as dead blank space (transparent bg) with white/ghost
   text and an invisible ghost-white button on top of the page's
   light background. Give it a solid dark panel instead of relying
   on an image that doesn't exist. */
#blog-hero {
  background: linear-gradient(135deg, var(--pm-ink-soft) 0%, #0a2027 100%);
  background-position: center 40%;
  background-size: cover;
  background-repeat: no-repeat;
  min-height: 300px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 90px 0 0;
  position: relative;
  overflow: hidden;
}

#blog-hero::before {
  content: '';
  position: absolute;
  top: -160px;
  right: -100px;
  width: 480px;
  height: 480px;
  background: radial-gradient(circle, rgb(var(--pm-brand-rgb), 0.18) 0%, transparent 62%);
  pointer-events: none;
}

.blog-hero-inner {
  position: relative;
  z-index: 1;
}

.blog-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--pm-accent);
  margin-bottom: 0.9rem;
}

.blog-eyebrow::before {
  content: '';
  width: 20px;
  height: 1.5px;
  background: var(--pm-accent);
  display: block;
}

.blog-h1 {
  font-size: clamp(1.5rem, 3.5vw, 2.5rem);
  font-weight: 900;

  /* !important: Elementor's global kit ships `.elementor-kit-8 h1 { color:#333 }`,
     which out-specifies a single class selector and was rendering this
     white heading nearly invisible on the dark hero. */
  color: var(--pm-neutral-0) !important;
  line-height: 1.1;
  max-width: 700px;
  margin-bottom: 0.85rem;
  letter-spacing: -0.025em;
}

.blog-sub {
  font-size: 0.9rem;
  color: rgb(255, 255, 255, 0.62);
  max-width: 520px;
  line-height: 1.78;
  margin-bottom: 1.6rem;
}

.blog-trust-bar {
  background: rgb(10, 10, 10, 0.78);
  backdrop-filter: blur(10px);
  border-top: 1px solid rgb(255, 255, 255, 0.08);
  margin-top: 2rem;
}

.blog-trust-pill {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.78rem 0;
  border-right: 1px solid rgb(255, 255, 255, 0.07);
}

.blog-trust-pill:last-child {
  border-right: none;
}

.blog-trust-ico {
  color: var(--pm-accent);
  flex-shrink: 0;
}

.blog-trust-main {
  font-size: 0.73rem;
  font-weight: 700;
  color: rgb(255, 255, 255, 0.9);
}

.blog-trust-hint {
  font-size: var(--pm-font-size-sm);
  color: #f4f6f6;
}

#featured-article {
  background: var(--pm-surface);
  padding: 2.4rem 0;
  border-bottom: 1px solid var(--pm-border);
}

.featured-card {
  background: var(--pm-surface);
  border-radius: var(--pm-radius-xl);
  border: 1px solid var(--pm-border);
  box-shadow: var(--pm-shadow-card);
  overflow: hidden;
}

.featured-img-wrap {
  height: 100%;
  min-height: 280px;
  overflow: hidden;
}

.featured-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.featured-body {
  padding: 2rem 1.8rem 1.8rem;
  display: flex;
  flex-direction: column;
  height: 100%;
}

.feat-category-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.6rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  background: var(--pm-brand-tint);
  color: var(--pm-brand);
  border-radius: 999px;
  padding: 0.28rem 0.75rem;
  margin-bottom: 0.85rem;
}

.featured-title {
  font-size: clamp(1.15rem, 2.2vw, 1.55rem);
  font-weight: 900;
  color: var(--pm-brand-ink);
  letter-spacing: -0.02em;
  margin-bottom: 0.7rem;
  line-height: 1.2;
}

.featured-excerpt {
  font-size: 0.88rem;
  color: var(--pm-text-muted);
  line-height: 1.75;
  margin-bottom: 1.2rem;
  flex: 1;
}

.feat-meta {
  font-size: 0.7rem;
  color: var(--pm-text-subtle);
  font-weight: 600;
  margin-bottom: 1rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.feat-meta-dot {
  width: 3px;
  height: 3px;
  background: var(--pm-border-strong);
  border-radius: 50%;
}

#category-bar {
  background: var(--pm-surface);
  padding: 1.4rem 0;
  border-bottom: 1px solid var(--pm-border);
  position: sticky;
  top: 64px;
  z-index: 100;
}

#category-bar .cat-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.74rem;
  font-weight: 700;
  color: var(--pm-text-muted);
  background: var(--pm-surface-alt);
  border: 1.5px solid var(--pm-border-strong);
  border-radius: var(--pm-radius-pill);
  padding: 0.38rem 0.9rem;
  cursor: default;
  transition: all 0.15s;
  white-space: nowrap;
}

#category-bar .cat-pill:hover {
  border-color: var(--pm-brand);
  color: var(--pm-brand);
  background: var(--pm-brand-tint);
}

#category-bar .cat-pill.active {
  background: var(--pm-brand);
  border-color: var(--pm-brand);
  color: var(--pm-neutral-0);
  font-weight: 800;
}

.fake-search {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: var(--pm-surface-alt);
  border: 1.5px solid var(--pm-border-strong);
  border-radius: 999px;
  padding: 0.38rem 1rem 0.38rem 0.75rem;
  cursor: default;
  white-space: nowrap;
}

.fake-search-text {
  font-size: 0.74rem;
  font-weight: 500;
  color: var(--pm-text-subtle);
}

.fake-search .ico {
  color: var(--pm-text-subtle);
}

#latest-articles {
  background: var(--pm-surface-alt);
  padding: 60px 0;
}

#area-guides {
  background: var(--pm-surface);
  padding: 60px 0;
  border-top: 1px solid var(--pm-border);
}

.area-card {
  background: var(--pm-surface);
  border-radius: var(--pm-radius-xl);
  border: 1px solid var(--pm-border);
  overflow: hidden;
  height: 100%;
  box-shadow: var(--pm-shadow-sm);
  display: flex;
  flex-direction: column;
  transition:
    transform 0.2s,
    box-shadow 0.2s;
}

.area-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--pm-shadow-card);
}

.area-img-wrap {
  height: 160px;
  overflow: hidden;
  position: relative;
  flex-shrink: 0;
}

.area-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.area-img-wrap::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 50px;
  background: linear-gradient(to bottom, rgb(0, 0, 0, 0.3), transparent);
  z-index: 1;
}

.area-body {
  padding: 1.1rem 1.2rem;
  flex: 1;
  display: flex;
  flex-direction: column;
}

.area-name {
  font-size: 0.95rem;
  font-weight: 800;
  color: var(--pm-brand-ink);
  margin-bottom: 0.3rem;
  letter-spacing: -0.01em;
}

.area-desc {
  font-size: 0.78rem;
  color: var(--pm-text-muted);
  line-height: 1.6;
  margin-bottom: 0.7rem;
  flex: 1;
}

.area-cues {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  margin-bottom: 0.8rem;
}

.area-cue {
  font-size: 0.62rem;
  font-weight: 700;
  color: var(--pm-brand);
  background: var(--pm-brand-tint);
  border-radius: 999px;
  padding: 0.2rem 0.55rem;
}

#owner-resources {
  background: var(--pm-ink-soft);
  padding: 60px 0;
  position: relative;
  overflow: hidden;
}

#owner-resources::before {
  content: '';
  position: absolute;
  top: -150px;
  right: -100px;
  width: 520px;
  height: 520px;
  background: radial-gradient(circle, rgb(var(--pm-brand-rgb), 0.18) 0%, transparent 62%);
  pointer-events: none;
}

#owner-resources .container {
  position: relative;
  z-index: 1;
}

.owner-res-card {
  background: rgb(255, 255, 255, 0.05);
  border: 1px solid rgb(255, 255, 255, 0.1);
  border-left: 3px solid rgb(var(--pm-brand-rgb), 0.65);
  border-radius: var(--pm-radius-lg);
  padding: 1.3rem 1.4rem;
  height: 100%;
  transition:
    background 0.2s,
    border-left-color 0.2s;
}

.owner-res-card:hover {
  background: rgb(255, 255, 255, 0.09);
  border-left-color: var(--pm-brand);
}

.owner-res-ico {
  margin-bottom: 0.65rem;
}

.owner-res-card h4 {
  font-size: 0.9rem;
  font-weight: 800;
  color: var(--pm-neutral-0);
  margin-bottom: 0.35rem;
  letter-spacing: -0.01em;
}

.owner-res-card p {
  font-size: 0.78rem;
  color: rgb(255, 255, 255, 0.5);
  margin-bottom: 0.8rem;
  line-height: 1.65;
}

@media (max-width: 991px) {
  .featured-img-wrap {
    height: 280px;
  }

  #category-bar {
    top: 0;
    position: static;
  }
}

@media (max-width: 767px) {
  .blog-h1 {
    font-size: 1.6rem;
  }

  .blog-trust-hint {
    display: none;
  }

  #blog-hero {
    min-height: 260px;
    padding-top: 70px;
  }

  .featured-img-wrap {
    height: 220px;
  }

  .article-img-wrap {
    height: 160px;
  }

  .area-img-wrap {
    height: 140px;
  }
}

/* ---------------------------------------------------------
   20 · ICONS & MISC
--------------------------------------------------------- */
.bsi,
.ico {
  vertical-align: -0.125em;
}

.ico {
  display: inline-block;
  flex-shrink: 0;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.ico-xs {
  width: 12px;
  height: 12px;
}

.ico-sm {
  width: 14px;
  height: 14px;
}

.ico-md {
  width: 16px;
  height: 16px;
}

.ico-lg {
  width: 20px;
  height: 20px;
}

.ico-xl {
  width: 24px;
  height: 24px;
}

.ico-fill {
  fill: currentColor;
  stroke: none;
}

.exp-icon {
  width: 40px;
  height: 40px;
  min-width: 40px;
  background: var(--pm-brand-tint);
  border-radius: 10px;
  justify-content: center;
  font-size: 1rem;
  flex-shrink: 0;
}

.why-ico {
  width: 46px;
  height: 46px;
  background: var(--pm-brand-tint);
  border-radius: 11px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  margin-bottom: 1.1rem;
}

.owner-label {
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  display: block;
  margin-bottom: 0.65rem;
}

.bsi {
  width: 1em;
  height: 1em;
  flex-shrink: 0;
}

.reviewbtn {
  background-color: var(--pm-brand);
  border: none;
  color: var(--pm-neutral-0);
  display: flex;
  font-size: 18px;
  cursor: pointer;
  margin: auto;
}

.share-btn {
  font-family: var(--pm-font-body);
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--pm-text-muted) !important;
}

/* ---------------------------------------------------------
   21 · GLOBAL / UNGROUPED (small leftover, review if needed)
--------------------------------------------------------- */
.elementor-icon-list-text,
body,
body .elementor a {
  color: var(--pm-text);
  font-family: var(--pm-font-body);
}

.elementor-accordion-item {
  border-color: var(--pm-border);
}

.figma-img-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background:
    linear-gradient(135deg, rgb(var(--pm-brand-rgb), 0.16), rgb(26, 107, 71, 0.18)),
    repeating-linear-gradient(45deg, #eef1f1 0 12px, #e3e8e8 12px 24px);
  color: rgb(19, 19, 19, 0.55);
  font-size: 0.68rem;
  font-weight: 800;
  padding: 1rem;
}

.section-hdr {
  margin-bottom: 3rem;
}

.elementor-widget-text-editor {
  color: var(--pm-text);
  font-family: var(--pm-font-body);
  line-height: 1.65;
}

.section-header.pb-3 {
  padding-bottom: 0.6rem !important;
}

.bg-ch {
  background-color: var(--pm-brand-ink);
}

.bg-ch2 {
  background-color: var(--pm-ink-soft);
}

.bg-light {
  background-color: var(--pm-surface-alt);
}

.bg-white {
  background-color: var(--pm-surface);
}

.elementor-element
  .elementor-element-620489c
  .e-con-full
  .sidebar-card
  .sidebar-sticky
  .e-flex
  .e-con
  .e-child {
  gap: 0 !important;
}

.btn-sidebar-outline {
  width: 100%;
  background: transparent;
  color: var(--pm-action);
  font-family: var(--pm-font-body);
  font-weight: 700;
  font-size: 0.78rem;
  padding: 0.58rem 1rem;
  border-radius: var(--pm-radius-md);
  border: 1.5px solid var(--pm-action);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.38rem;
}

/* ---------------------------------------------------------
   23 · PROPERTY-MANAGEMENT / OWNER-LANDING BLOCKS (reusable components)
   NOT page-scoped. The unique .pm-* classes are global reusable components;
   generic descendants (.pain-card, .faq-card, .local-cue-pill, .ico,
   .row/.col-*, .why-*, .proc-*) are scoped to the component root .pm-sec so
   shared class names don't leak to other pages. Drop these blocks on any page
   (a stack of .pm-sec sections) and they style. Tokens only; native
   heading/button text lives in .elementor-heading-title / .elementor-button.
--------------------------------------------------------- */

/* ── Section blocks: full-bleed background + vertical rhythm ── */
.pm-sec {
  padding: 32px 0;
}

.pm-pain,
.pm-services,
.pm-process,
.pm-faq {
  background: var(--pm-surface);
}

.pm-why,
.pm-local {
  background: var(--pm-surface-alt);
}

.pm-process,
.pm-faq {
  border-top: 1px solid var(--pm-border);
}

.pm-projection {
  background: var(--pm-surface-alt);
  padding: 2rem 0;
}

/* Boxed inner wrapper */
.pm-inner > .e-con-inner,
.pm-inner {
  max-width: 1140px;
  margin-inline: auto;
  padding-inline: 15px;
  width: 100%;
}

/* ── Eyebrow (native heading, div) ── */
.pm-eyebrow .elementor-heading-title {
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--pm-accent);
  margin-bottom: 0.5rem;
}

.pm-eyebrow-dark .elementor-heading-title {
  color: var(--pm-accent);
}

/* ── Section titles / subs (native heading + text) ── */
.pm-title .elementor-heading-title {
  font-size: clamp(1.4rem, 2.8vw, 2.1rem);
  font-weight: 900;
  color: var(--pm-heading);
  letter-spacing: -0.02em;
  line-height: 1.15;
  margin-bottom: 0.75rem;
}

.pm-title-sm .elementor-heading-title {
  font-size: clamp(1.3rem, 2.5vw, 1.85rem);
}

.pm-title-white .elementor-heading-title {
  color: var(--pm-neutral-0);
}

.pm-sub .elementor-widget-container,
.pm-sub p {
  font-size: 0.93rem;
  color: var(--pm-text-muted);
  line-height: 1.78;
  max-width: 560px;
  margin-bottom: 0;
}

.pm-sub-white .elementor-widget-container,
.pm-sub-white p {
  color: rgb(255, 255, 255, 0.55);
}

.pm-center-text .elementor-widget-container,
.pm-center-text p {
  margin-inline: auto;
  text-align: center;
}

/* Centre-aligned section headers (full container = flex parent itself) */
.pm-head-center {
  align-items: center;
  text-align: center;
}

.pm-head-center .pm-sub .elementor-widget-container {
  margin-inline: auto;
}

/* ── Buttons (native button widget). The Elementor Kit sets button
   background/text/border-colour with equal specificity, so colour-bearing
   declarations need !important (layout props win on their own). ── */
.pm-btn .elementor-button {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-family: var(--pm-font-body);
  font-weight: 700;
  font-size: 0.84rem;
  padding: 0.72rem 1.5rem;
  border-radius: var(--pm-radius-md) !important;
  border: 2px solid var(--pm-action) !important;
  letter-spacing: 0.01em;
  line-height: 1.2;
  transition:
    background var(--pm-duration),
    color var(--pm-duration);
}

.pm-btn-solid .elementor-button {
  background: var(--pm-action) !important;
  color: var(--pm-neutral-0) !important;
}

.pm-btn-solid .elementor-button:hover {
  background: var(--pm-action-hover) !important;
  border-color: var(--pm-action-hover) !important;
  color: var(--pm-neutral-0) !important;
}

.pm-btn-outline .elementor-button {
  background: transparent !important;
  color: var(--pm-action) !important;
}

.pm-btn-outline .elementor-button:hover {
  background: var(--pm-action-tint) !important;
  color: var(--pm-action-hover) !important;
}

.pm-btn-ghost .elementor-button,
.pm-btn-dark-ghost .elementor-button {
  background: transparent !important;
  color: var(--pm-neutral-0) !important;
  font-weight: 600;
  border: 1.5px solid rgb(255, 255, 255, 0.45) !important;
}

.pm-btn-ghost .elementor-button:hover,
.pm-btn-dark-ghost .elementor-button:hover {
  background: rgb(255, 255, 255, 0.09) !important;
  border-color: rgb(255, 255, 255, 0.7) !important;
  color: var(--pm-neutral-0) !important;
}

/* Button rows / centred action groups (Elementor containers default to column) */
.pm-actions,
.pm-actions > .e-con-inner {
  flex-flow: row wrap;
  gap: 1rem;
  align-items: center;
}

.pm-center,
.pm-center > .e-con-inner {
  justify-content: center;
  text-align: center;
}

/* ── Two-column rows ── */
.pm-2col,
.pm-2col > .e-con-inner {
  flex-flow: row wrap;
  gap: 2.5rem;
  align-items: center;
}

.pm-col {
  flex: 1 1 300px;
}

/* ── Inline SVG icon base (used in the HTML sub-blocks) ── */
.pm-sec .ico {
  display: inline-block;
  vertical-align: -0.125em;
  flex-shrink: 0;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.pm-sec .ico-xs {
  width: 12px;
  height: 12px;
}

.pm-sec .ico-sm {
  width: 14px;
  height: 14px;
}

.pm-sec .ico-md {
  width: 16px;
  height: 16px;
}

.pm-sec .ico-xl {
  width: 24px;
  height: 24px;
}

/* ── Page-scoped Bootstrap grid (only for the HTML card sub-blocks) ── */
.pm-card-grid,
.pm-benefit-grid,
.pm-proc-grid,
.pm-trust-bar .row {
  display: flex;
  flex-wrap: wrap;
}

.pm-sec .row.g-4 {
  row-gap: 1.5rem;
}

.pm-sec .row > [class*='col-'] {
  padding-inline: 12px;
  box-sizing: border-box;
}

.pm-sec .col-12 {
  flex: 0 0 100%;
  max-width: 100%;
}

.pm-sec .col-6 {
  flex: 0 0 50%;
  max-width: 50%;
}

.pm-sec .col-auto {
  flex: 0 0 auto;
  width: auto;
}

@media (min-width: 576px) {
  .pm-sec .col-sm-6 {
    flex: 0 0 50%;
    max-width: 50%;
  }

  .pm-sec .col-sm-10 {
    flex: 0 0 83.333%;
    max-width: 83.333%;
  }
}

@media (min-width: 768px) {
  .pm-sec .col-md-3 {
    flex: 0 0 25%;
    max-width: 25%;
  }

  .pm-sec .col-md-4 {
    flex: 0 0 33.333%;
    max-width: 33.333%;
  }
}

@media (min-width: 992px) {
  .pm-sec .col-lg-3 {
    flex: 0 0 25%;
    max-width: 25%;
  }

  .pm-sec .col-lg-4 {
    flex: 0 0 33.333%;
    max-width: 33.333%;
  }
}

.pm-hero {
  min-height: 560px;
  justify-content: flex-end;
  padding-top: 90px;
}

.pm-hero-eyebrow .elementor-heading-title {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--pm-accent);
}

.pm-hero-eyebrow .elementor-heading-title::before {
  content: '';
  width: 20px;
  height: 1.5px;
  background: var(--pm-accent);
  display: block;
}

.pm-hero-h1 .elementor-heading-title {
  font-size: clamp(1.8rem, 4vw, 2.9rem);
  font-weight: 900;
  color: var(--pm-neutral-0) !important;
  line-height: 1.08;
  max-width: 620px;
  margin-bottom: 0.9rem;
  letter-spacing: -0.025em;
}

.pm-hero-h1 em {
  font-style: italic;
  color: var(--pm-accent);
  font-weight: 700;
}

.pm-hero-sub .elementor-widget-container,
.pm-hero-sub p {
  color: rgb(255, 255, 255, 0.62);
  max-width: 500px;
  margin-bottom: 1.6rem;
}

/* Hero trust bar (full-width dark strip) */
.pm-trust .elementor-widget-container {
  padding: 0;
}

.pm-trust-bar {
  background: rgb(10, 10, 10, 0.78);
  backdrop-filter: blur(10px);
  border-top: 1px solid rgb(255, 255, 255, 0.08);
  margin-top: 2.2rem;
}

.pm-trust-inner {
  max-width: 1140px;
  margin-inline: auto;
  padding-inline: 15px;
}

.pm-trust-pill {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  padding: 0.85rem 0;
}

.pm-trust-ico,
.pm-trust-pill .ico {
  color: var(--pm-accent);
}

.pm-trust-texts {
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.pm-trust-main {
  font-size: 0.74rem;
  font-weight: 700;
  color: rgb(255, 255, 255, 0.9);
}

.pm-trust-hint {
  font-size: var(--pm-font-size-xs);
  color: #f4f6f6;
}

/* ── Generic card grids (pain / service) ── */
.pm-sec .pain-card,
.pm-sec .service-card {
  background: var(--pm-surface);
  border: 1px solid var(--pm-border);
  border-radius: var(--pm-radius-lg);
  padding: 1.5rem 1.3rem;
  height: 100%;
  box-shadow: var(--pm-shadow-sm);
  transition:
    transform 0.2s,
    box-shadow 0.2s;
}

.pm-sec .pain-card {
  background: var(--pm-surface-alt);
  border-radius: var(--pm-radius-xl);
  position: relative;
  overflow: hidden;
}

.pm-sec .pain-card:hover,
.pm-sec .service-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--pm-shadow-card);
}

.pm-sec .pain-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--pm-border-strong);
  transition: background 0.2s;
}

.pm-sec .pain-card:hover::before {
  background: var(--pm-brand);
}

.pm-sec .pain-card-ico,
.pm-sec .service-card-ico {
  width: 46px;
  height: 46px;
  background: var(--pm-brand-tint);
  border-radius: 11px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--pm-brand);
  margin-bottom: 0.9rem;
}

.pm-sec .pain-card h4,
.pm-sec .service-card h4 {
  font-size: 0.9rem;
  font-weight: 800;
  color: var(--pm-heading);
  margin-bottom: 0.4rem;
  letter-spacing: -0.01em;
}

.pm-sec .pain-card p,
.pm-sec .service-card p {
  font-size: 0.8rem;
  color: var(--pm-text-muted);
  margin: 0;
  line-height: 1.65;
}

/* ── WHY AVADA ── */
.pm-sec .why-img-wrap {
  border-radius: var(--pm-radius-xl);
  overflow: hidden;
  height: 420px;
  box-shadow: var(--pm-shadow-lg);
  position: relative;
}

.pm-sec .why-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.pm-sec .why-img-chip {
  position: absolute;
  bottom: 16px;
  left: 16px;
  background: rgb(13, 13, 13, 0.84);
  border-radius: var(--pm-radius-lg);
  padding: 0.8rem 1rem;
  backdrop-filter: blur(8px);
  border: 1px solid rgb(255, 255, 255, 0.08);
}

.pm-sec .why-img-chip strong {
  font-size: 0.78rem;
  font-weight: 800;
  color: var(--pm-neutral-0);
  display: block;
  margin-bottom: 2px;
}

.pm-sec .why-img-chip span {
  font-size: 0.63rem;
  color: rgb(255, 255, 255, 0.45);
}

.pm-sec .why-checklist {
  list-style: none;
  padding: 0;
  margin: 1.4rem 0 1.8rem;
}

.pm-sec .why-checklist li {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  font-size: 0.84rem;
  font-weight: 600;
  color: var(--pm-text);
  padding: 0.55rem 0;
  border-bottom: 1px solid var(--pm-border);
}

.pm-sec .why-checklist li:last-child {
  border-bottom: none;
}

.pm-sec .why-check {
  width: 20px;
  height: 20px;
  background: var(--pm-success-tint);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.pm-check-ico {
  color: var(--pm-success);
  stroke-width: 2.5;
}

/* ── OWNER BENEFITS (dark) ── */
.pm-benefits {
  background: var(--pm-surface-dark);
  position: relative;
  overflow: hidden;
}

.pm-benefits::before {
  content: '';
  position: absolute;
  top: -160px;
  right: -100px;
  width: 560px;
  height: 560px;
  background: radial-gradient(
    circle,
    color-mix(in srgb, var(--pm-brand) 20%, transparent) 0%,
    transparent 62%
  );
  pointer-events: none;
}

.pm-benefits > .pm-inner {
  position: relative;
  z-index: 1;
}

.pm-sec .benefit-card {
  background: rgb(255, 255, 255, 0.05);
  border: 1px solid rgb(255, 255, 255, 0.09);
  border-left: 3px solid color-mix(in srgb, var(--pm-brand) 65%, transparent);
  border-radius: var(--pm-radius-lg);
  padding: 1.2rem 1.3rem;
  height: 100%;
  transition:
    background 0.2s,
    border-left-color 0.2s;
}

.pm-sec .benefit-card:hover {
  background: rgb(255, 255, 255, 0.08);
  border-left-color: var(--pm-brand);
}

.pm-sec .benefit-ico {
  color: var(--pm-accent);
  margin-bottom: 0.65rem;
}

.pm-sec .benefit-ico .ico {
  stroke: var(--pm-accent);
}

.pm-sec .benefit-card h4 {
  font-size: 0.92rem;
  font-weight: 800;
  color: var(--pm-neutral-0);
  margin-bottom: 0.38rem;
  letter-spacing: -0.01em;
}

.pm-sec .benefit-card p {
  font-size: 0.8rem;
  color: rgb(255, 255, 255, 0.5);
  margin: 0;
  line-height: 1.65;
}

/* ── PROJECTION CTA card ── */
.pm-proj-card > .e-con-inner,
.pm-proj-card {
  background: linear-gradient(135deg, var(--pm-brand-tint) 0%, var(--pm-neutral-0) 70%);
  border: 1.5px solid color-mix(in srgb, var(--pm-brand) 22%, transparent);
  border-radius: var(--pm-radius-xl);
  padding: 2.2rem;
  box-shadow: var(--pm-shadow-card);
  position: relative;
  overflow: hidden;
}

.pm-proj-note .elementor-widget-container,
.pm-proj-note p {
  font-size: 0.72rem;
  color: var(--pm-text-subtle);
  font-style: italic;
  margin-top: 0.8rem;
  display: flex;
  align-items: center;
  gap: 0.35rem;
}

.pm-proj-note .pm-note-ico {
  display: inline-flex;
}

.pm-review-box {
  background: var(--pm-surface);
  border: 1px solid var(--pm-border);
  border-radius: var(--pm-radius-lg);
  padding: 1.4rem;
}

.pm-review-label {
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--pm-text-subtle);
  margin-bottom: 0.8rem;
}

.pm-review-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

.pm-review-list li {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--pm-text);
}

.pm-review-list .ico {
  color: var(--pm-success);
}

/* ── PROCESS ── */
.pm-proc-grid {
  align-items: center;
  justify-content: center;
}

.pm-sec .proc-card {
  background: var(--pm-surface-alt);
  border: 1px solid var(--pm-border);
  border-radius: var(--pm-radius-lg);
  padding: 1.6rem 1.3rem 1.4rem;
  text-align: center;
  height: 100%;
}

.pm-sec .proc-num {
  width: 52px;
  height: 52px;
  background: var(--pm-heading);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--pm-neutral-0);
  margin: 0 auto 1rem;
  box-shadow: var(--pm-shadow-md);
}

.pm-sec .proc-eyebrow {
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--pm-brand);
  display: block;
  margin-bottom: 0.4rem;
}

.pm-sec .proc-card h4 {
  font-size: 0.9rem;
  font-weight: 800;
  margin-bottom: 0.4rem;
  letter-spacing: -0.01em;
  color: var(--pm-heading);
}

.pm-sec .proc-card p {
  font-size: 0.8rem;
  color: var(--pm-text-muted);
  margin: 0;
  line-height: 1.65;
}

.pm-proc-arrow {
  color: var(--pm-border-strong);
  display: flex;
  align-items: center;
  justify-content: center;
}

@media (max-width: 767px) {
  .pm-proc-arrow {
    display: none;
  }
}

/* ── LOCAL IDENTITY ── */
.pm-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.pm-sec .local-cue-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--pm-heading);
  background: var(--pm-surface);
  border: 1.5px solid var(--pm-border);
  border-radius: var(--pm-radius-pill);
  padding: 0.45rem 1rem;
  box-shadow: var(--pm-shadow-sm);
  transition:
    border-color 0.15s,
    color 0.15s;
}

/* .pm-sec .local-cue-pill:hover {
  border-color: var(--pm-brand);
  color: var(--pm-brand);
} */

.pm-sec .local-cue-pill .ico {
  color: var(--pm-brand);
}

/* ── FAQ ── */
.pm-faq-list {
  max-width: 820px;
  margin-inline: auto;
}

.pm-sec .faq-card {
  background: var(--pm-surface-alt);
  border: 1px solid var(--pm-border);
  border-radius: var(--pm-radius-lg);
  padding: 1.2rem 1.3rem;
  margin-bottom: 0.6rem;
  transition:
    border-color 0.15s,
    box-shadow 0.15s;
}

.pm-sec .faq-card:hover {
  border-color: var(--pm-brand);
  box-shadow: var(--pm-shadow-sm);
}

.pm-sec .faq-q {
  font-size: 0.88rem;
  font-weight: 800;
  color: var(--pm-heading);
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  margin-bottom: 0.45rem;
  letter-spacing: -0.01em;
}

.pm-sec .faq-q-ico {
  width: 22px;
  height: 22px;
  min-width: 22px;
  background: var(--pm-brand-tint);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--pm-brand);
  flex-shrink: 0;
  margin-top: 1px;
}

.pm-q-ico {
  stroke: var(--pm-brand);
  stroke-width: 2.5;
}

.pm-sec .faq-a {
  font-size: 0.8rem;
  color: var(--pm-text-muted);
  line-height: 1.7;
  padding-left: 2.1rem;
}

/* ── BOTTOM CTA (dark) ── */
.pm-bottom {
  background: var(--pm-surface-dark);
  text-align: center;
  position: relative;
  overflow: hidden;
}

.pm-bottom::before {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 600px;
  height: 600px;
  background: radial-gradient(
    circle,
    color-mix(in srgb, var(--pm-brand) 18%, transparent) 0%,
    transparent 65%
  );
  pointer-events: none;
}

.pm-bottom > .pm-inner {
  position: relative;
  z-index: 1;
}

/* ── Responsive ── */
@media (max-width: 991px) {
  .pm-sec .why-img-wrap {
    height: 320px;
  }

  .pm-hero {
    min-height: 460px;
  }
}

@media (max-width: 767px) {
  .pm-sec {
    padding: 52px 0;
  }

  .pm-trust-hint {
    display: none;
  }
}

/* ---------------------------------------------------------
   24 · GENERATED: VACATION SPECIALS (compiled from avada-works/specials.html)
   Emitted by awayday_redesign_tools `compile`. pg-* base is reusable; the
   .pg-sec-scoped rules apply only where compiled pg-sec sections exist.
   Colours tokenized: navy->--pm-navy, danger->--pm-danger, star->--pm-star.
--------------------------------------------------------- */

/* GENERATED by awayday compile — https://avada-works.vercel.app/specials.html
   Token-only overrides for "vacation-specials" on site "dev-avada".
   Swap the site's theme-tokens.css to re-skin. Review non-token values in report.md. */

/* pg-* native-widget base (convention, tokens only) */
.pg-sec,
.pm-sec {
  padding: var(--section-padding-y) 0;
}

.pg-inner,
.pm-inner,
.pg-inner > .e-con-inner,
.pm-inner > .e-con-inner {
  max-width: 1140px;
  margin-inline: auto;
  padding-inline: 15px;
  width: 100%;
}

.pg-eyebrow .elementor-heading-title,
.pm-eyebrow .elementor-heading-title {
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--pm-accent);
  margin-bottom: 0.5rem;
}

.pg-eyebrow-dark .elementor-heading-title,
.pm-eyebrow-dark .elementor-heading-title {
  color: var(--pm-accent);
}

.pg-title .elementor-heading-title,
.pm-title .elementor-heading-title {
  font-size: clamp(1.4rem, 2.8vw, 2.1rem);
  font-weight: 900;
  color: var(--pm-heading);
  letter-spacing: -0.02em;
  line-height: 1.15;
  margin-bottom: 0.75rem;
}

.pg-title-white .elementor-heading-title,
.pm-title-white .elementor-heading-title {
  color: var(--pm-neutral-0);
}

.pg-hero-title .elementor-heading-title,
.pm-hero-title .elementor-heading-title {
  font-size: clamp(1.8rem, 4vw, 2.9rem);
  font-weight: 900;
  color: var(--pm-neutral-0) !important;
  line-height: 1.08;
  letter-spacing: -0.025em;
  max-width: 620px;
  margin-bottom: 0.9rem;
}

.pg-hero-title em,
.pm-hero-title em {
  color: var(--pm-accent);
  font-style: italic;
}

.pg-sub .elementor-widget-container,
.pm-sub .elementor-widget-container,
.pg-sub p,
.pm-sub p {
  font-size: 0.93rem;
  color: var(--pm-text-muted);
  line-height: 1.78;
  max-width: 560px;
  margin-bottom: 0;
}

.pg-sub-white .elementor-widget-container,
.pm-sub-white .elementor-widget-container,
.pg-sub-white p,
.pm-sub-white p {
  color: rgb(255, 255, 255, 0.6);
}

.pg-actions,
.pm-actions,
.pg-actions > .e-con-inner,
.pm-actions > .e-con-inner {
  display: flex;
  flex-flow: row wrap;
  gap: 1rem;
  align-items: center;
  margin-top: 1rem;
}

.pg-btn .elementor-button,
.pm-btn .elementor-button {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-weight: 700;
  font-size: 0.84rem;
  padding: 0.72rem 1.5rem;
  border-radius: var(--pm-radius-md) !important;
  border: 2px solid var(--pm-action) !important;
  line-height: 1.2;
}

.pg-btn-solid .elementor-button,
.pm-btn-solid .elementor-button {
  background: var(--pm-action) !important;
  color: var(--pm-neutral-0) !important;
}

.pg-btn-solid .elementor-button:hover,
.pm-btn-solid .elementor-button:hover {
  background: var(--pm-action-hover) !important;
  border-color: var(--pm-action-hover) !important;
  color: var(--pm-neutral-0) !important;
}

.pg-btn-outline .elementor-button,
.pm-btn-outline .elementor-button {
  background: transparent !important;
  color: var(--pm-action) !important;
}

.pg-btn-outline .elementor-button:hover,
.pm-btn-outline .elementor-button:hover {
  background: var(--pm-action-tint) !important;
}

.pg-btn-ghost .elementor-button,
.pm-btn-ghost .elementor-button {
  background: transparent !important;
  color: var(--pm-neutral-0) !important;
  border-color: rgb(255, 255, 255, 0.45) !important;
}

.pg-btn-ghost .elementor-button:hover,
.pm-btn-ghost .elementor-button:hover {
  background: rgb(255, 255, 255, 0.12) !important;
  border-color: rgb(255, 255, 255, 0.7) !important;
  color: var(--pm-neutral-0) !important;
}

.pg-btn-dark .elementor-button,
.pm-btn-dark .elementor-button {
  background: var(--pm-heading) !important;
  color: var(--pm-neutral-0) !important;
  border-color: var(--pm-heading) !important;
}

.pg-btn-dark .elementor-button:hover,
.pm-btn-dark .elementor-button:hover {
  background: var(--pm-ink-soft, var(--pm-heading)) !important;
  border-color: var(--pm-ink-soft, var(--pm-heading)) !important;
  color: var(--pm-neutral-0) !important;
}

.pg-2col,
.pm-2col,
.pg-2col > .e-con-inner,
.pm-2col > .e-con-inner {
  display: flex;
  flex-flow: row wrap;
  gap: 2.5rem;
  align-items: center;
}

.pg-col,
.pm-col {
  flex: 1 1 300px;
}

/* --- ported mockup styles (scoped + tokenized) --- */
.pg-sec img,
.pm-sec img {
  max-width: 100%;
}

.pg-sec a,
.pm-sec a {
  text-decoration: none;
  color: inherit;
}

.pg-sec .section-hdr,
.pm-sec .section-hdr {
  margin-bottom: 2.4rem;
}

.pg-sec .section-hdr-center,
.pm-sec .section-hdr-center {
  text-align: center;
}

.pg-sec .section-hdr-center .section-sub,
.pm-sec .section-hdr-center .section-sub {
  margin: 0 auto;
}

.pg-sec section,
.pm-sec section {
  padding: 64px 0;
}

.pg-sec .btn-ghost-or,
.pm-sec .btn-ghost-or {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  background: transparent;
  color: var(--pm-action);
  border: 2px solid var(--pm-action);
  border-radius: 10px;
  font-family: var(--pm-font-heading);
  font-weight: 800;
  font-size: 0.82rem;
  padding: 0.65rem 1.35rem;
  cursor: pointer;
  transition:
    background 0.18s,
    color 0.18s;
}

.pg-sec .btn-ghost-or:hover,
.pm-sec .btn-ghost-or:hover {
  background: var(--pm-action);
  color: var(--pm-neutral-0);
}

.pg-sec .btn-white,
.pm-sec .btn-white {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  background: var(--pm-neutral-0);
  color: var(--pm-action);
  border: 2px solid var(--pm-neutral-0);
  border-radius: 10px;
  font-family: var(--pm-font-heading);
  font-weight: 800;
  font-size: 0.88rem;
  padding: 0.75rem 1.6rem;
  cursor: pointer;
  transition:
    background 0.18s,
    transform 0.15s;
}

.pg-sec .btn-white:hover,
.pm-sec .btn-white:hover {
  background: var(--pm-action-tint);
  transform: translateY(-1px);
  color: var(--pm-action);
}

.pg-sec .btn-outline-white,
.pm-sec .btn-outline-white {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  background: transparent;
  color: var(--pm-neutral-0);
  border: 2px solid rgb(255, 255, 255, 0.6);
  border-radius: 10px;
  font-family: var(--pm-font-heading);
  font-weight: 700;
  font-size: 0.88rem;
  padding: 0.75rem 1.6rem;
  cursor: pointer;
  transition:
    border-color 0.18s,
    background 0.18s;
}

.pg-sec .btn-outline-white:hover,
.pm-sec .btn-outline-white:hover {
  border-color: var(--pm-neutral-0);
  background: rgb(255, 255, 255, 0.08);
}

/* Hero dark-overlay utility — opt-in, add to any hero section that has a
   background-image and needs more text contrast. The hero itself needs
   position:relative (this class provides it) and its text/content wrapper
   needs position:relative too (any z-index, even auto) so it paints above
   the overlay — .hero-inner already does this for the .pg-hero kit.
   Add .pg-hero-overlay--off alongside it on a specific instance to disable. */
.pg-hero-overlay,
.pm-hero-overlay {
  position: relative;
}

.pg-hero-overlay::before,
.pm-hero-overlay::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgb(8, 10, 8, 0.15) 0%, rgb(8, 10, 8, 0.5) 100%);
  pointer-events: none;
  z-index: 0;
}

.pg-hero-overlay--off::before,
.pm-hero-overlay--off::before {
  content: none;
}

.pg-sec .hero-inner,
.pm-sec .hero-inner {
  position: relative;
  z-index: 1;
}

.pg-sec .hero-eyebrow,
.pm-sec .hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--pm-accent);
  margin-bottom: 1.1rem;
}

.pg-sec .hero-eyebrow::before,
.pm-sec .hero-eyebrow::before {
  content: '';
  width: 20px;
  height: 1.5px;
  background: var(--pm-accent);
  display: block;
  flex-shrink: 0;
}

.pg-sec .hero-h1,
.pm-sec .hero-h1 {
  font-size: clamp(1.85rem, 4.2vw, 2.8rem);
  font-weight: 900;
  color: var(--pm-neutral-0);
  line-height: 1.06;
  max-width: 680px;
  margin-bottom: 1rem;
  letter-spacing: -0.025em;
}

.pg-sec .hero-h1 em,
.pm-sec .hero-h1 em {
  font-style: italic;
  color: var(--pm-accent);
  font-weight: 700;
}

.pg-sec .hero-sub,
.pm-sec .hero-sub {
  font-size: 0.95rem;
  color: rgb(255, 255, 255, 0.68);
  max-width: 520px;
  line-height: 1.8;
  margin-bottom: 1.6rem;
  font-weight: 400;
}

.pg-sec .hero-btns,
.pm-sec .hero-btns {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-bottom: 2.5rem;
}

.pg-sec .hero-trust-bar,
.pm-sec .hero-trust-bar {
  background: rgb(10, 10, 10, 0.72);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-top: 1px solid rgb(255, 255, 255, 0.08);
  margin-top: 1.4rem;
}

.pg-sec .trust-pill,
.pm-sec .trust-pill {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.9rem 0.5rem;
}

.pg-sec .trust-ico,
.pm-sec .trust-ico {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: rgb(var(--pm-brand-rgb), 0.18);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--pm-accent);
}

.pg-sec .trust-ico svg,
.pm-sec .trust-ico svg {
  width: 15px;
  height: 15px;
}

.pg-sec .trust-main,
.pm-sec .trust-main {
  display: block;
  font-size: 0.72rem;
  font-weight: 800;
  color: var(--pm-neutral-0);
  line-height: 1.2;
}

.pg-sec .trust-hint,
.pm-sec .trust-hint {
  display: block;
  font-size: var(--pm-font-size-xs);
  color: #f4f6f6;
}

.pg-promo-overview,
.pm-promo-overview {
  background: var(--pm-surface);
}

.pg-sec .promo-card,
.pm-sec .promo-card {
  background: var(--pm-surface);
  border: 1.5px solid var(--pm-border);
  border-radius: 16px;
  padding: 1.8rem 1.6rem;
  box-shadow: var(--pm-shadow-sm);
  height: 100%;
  display: flex;
  flex-direction: column;
  transition:
    box-shadow 0.2s,
    transform 0.2s;
  position: relative;
  overflow: hidden;
}

.pg-sec .promo-card:hover,
.pm-sec .promo-card:hover {
  box-shadow: var(--sh-md);
  transform: translateY(-2px);
}

.pg-sec .promo-card-accent,
.pm-sec .promo-card-accent {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--pm-brand), var(--pm-accent));
}

.pg-sec .promo-badge,
.pm-sec .promo-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  background: var(--pm-brand-tint);
  color: var(--pm-brand);
  border: 1px solid rgb(var(--pm-brand-rgb), 0.2);
  border-radius: 20px;
  font-size: 0.6rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.3rem 0.75rem;
  margin-bottom: 1rem;
  width: fit-content;
}

.pg-sec .promo-card-ico,
.pm-sec .promo-card-ico {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: var(--pm-brand-tint);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--pm-brand);
  margin-bottom: 1rem;
}

.pg-sec .promo-card-ico svg,
.pm-sec .promo-card-ico svg {
  width: 22px;
  height: 22px;
}

.pg-sec .promo-card-title,
.pm-sec .promo-card-title {
  font-size: 1.05rem;
  font-weight: 900;
  color: var(--pm-brand-ink);
  margin-bottom: 0.25rem;
  letter-spacing: -0.015em;
}

.pg-sec .promo-card-sub,
.pm-sec .promo-card-sub {
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--pm-brand);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 0.75rem;
}

.pg-sec .promo-card-copy,
.pm-sec .promo-card-copy {
  font-size: 0.82rem;
  color: var(--pm-text-muted);
  line-height: 1.7;
  flex: 1;
  margin-bottom: 1.25rem;
}

.pg-featured-offer,
.pm-featured-offer {
  background: var(--pm-surface-alt);
}

.pg-sec .featured-offer-card,
.pm-sec .featured-offer-card {
  background: var(--pm-surface);
  border-radius: 20px;
  box-shadow: var(--pm-shadow-lg);
  overflow: hidden;
}

.pg-sec .foc-img-wrap,
.pm-sec .foc-img-wrap {
  position: relative;
  height: 100%;
  min-height: 320px;
}

.pg-sec .foc-img-wrap img,
.pm-sec .foc-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.pg-sec .foc-img-badge,
.pm-sec .foc-img-badge {
  position: absolute;
  top: 18px;
  left: 18px;
  background: var(--pm-brand);
  color: var(--pm-neutral-0);
  border-radius: 20px;
  padding: 0.35rem 0.9rem;
  font-size: 0.6rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.pg-sec .foc-body,
.pm-sec .foc-body {
  padding: 2.5rem 2rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.pg-sec .foc-rule-list,
.pm-sec .foc-rule-list {
  list-style: none;
  margin: 1.25rem 0;
  padding: 0;
}

.pg-sec .foc-rule-list li,
.pm-sec .foc-rule-list li {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  font-size: 0.82rem;
  color: var(--pm-text);
  padding: 0.55rem 0;
  border-bottom: 1px solid var(--pm-border);
}

.pg-sec .foc-rule-list li:last-child,
.pm-sec .foc-rule-list li:last-child {
  border-bottom: none;
}

.pg-sec .foc-rule-icon,
.pm-sec .foc-rule-icon {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--pm-brand-tint);
  color: var(--pm-brand);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: 1px;
}

.pg-sec .foc-rule-icon svg,
.pm-sec .foc-rule-icon svg {
  width: 9px;
  height: 9px;
}

.pg-sec .foc-rule-label,
.pm-sec .foc-rule-label {
  font-weight: 700;
  color: var(--pm-brand-ink);
  display: block;
  font-size: 0.72rem;
}

.pg-sec .foc-rule-val,
.pm-sec .foc-rule-val {
  font-weight: 500;
  color: var(--pm-text-muted);
  display: block;
  font-size: 0.78rem;
}

.pg-sec .offer-section,
.pm-sec .offer-section {
  background: var(--pm-surface);
}

.pg-sec .offer-section:nth-of-type(even),
.pm-sec .offer-section:nth-of-type(even) {
  background: var(--pm-surface-alt);
}

.pg-sec .offer-section-hdr,
.pm-sec .offer-section-hdr {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 2rem;
}

.pg-sec .offer-section-hdr-left,
.pm-sec .offer-section-hdr-left {
  flex: 1;
  min-width: 0;
}

.pg-sec .offer-section-title,
.pm-sec .offer-section-title {
  font-size: 1.35rem;
  font-weight: 900;
  color: var(--pm-brand-ink);
  letter-spacing: -0.02em;
  margin-bottom: 0.35rem;
}

.pg-sec .offer-section-sub,
.pm-sec .offer-section-sub {
  font-size: 0.82rem;
  color: var(--pm-text-muted);
  line-height: 1.7;
  max-width: 560px;
}

.pg-sec .pp-card,
.pm-sec .pp-card {
  background: var(--pm-surface);
  border: 1.5px solid var(--pm-border);
  border-radius: 14px;
  overflow: hidden;
  box-shadow: var(--pm-shadow-sm);
  height: 100%;
  display: flex;
  flex-direction: column;
  transition:
    box-shadow 0.2s,
    transform 0.2s;
}

.pg-sec .pp-card:hover,
.pm-sec .pp-card:hover {
  box-shadow: var(--sh-md);
  transform: translateY(-3px);
}

.pg-sec .pp-img,
.pm-sec .pp-img {
  position: relative;
  height: 200px;
  overflow: hidden;
}

.pg-sec .pp-img img,
.pm-sec .pp-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}

.pg-sec .pp-card:hover .pp-img img,
.pm-sec .pp-card:hover .pp-img img {
  transform: scale(1.04);
}

.pg-sec .pp-promo-badge,
.pm-sec .pp-promo-badge {
  position: absolute;
  top: 12px;
  left: 12px;
  background: var(--pm-brand);
  color: var(--pm-neutral-0);
  border-radius: 6px;
  padding: 0.28rem 0.75rem;
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.pg-sec .pp-promo-badge.badge-green,
.pm-sec .pp-promo-badge.badge-green {
  background: var(--pm-success);
}

.pg-sec .pp-promo-badge.badge-navy,
.pm-sec .pp-promo-badge.badge-navy {
  background: var(--pm-navy);
}

.pg-sec .pp-save,
.pm-sec .pp-save {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgb(255, 255, 255, 0.88);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  color: var(--pm-text-muted);
  cursor: pointer;
  transition: background 0.15s;
}

.pg-sec .pp-save:hover,
.pm-sec .pp-save:hover {
  background: var(--pm-neutral-0);
}

.pg-sec .pp-save.saved,
.pm-sec .pp-save.saved {
  color: var(--pm-danger);
}

.pg-sec .pp-body,
.pm-sec .pp-body {
  padding: 1rem 1.1rem;
  flex: 1;
  display: flex;
  flex-direction: column;
}

.pg-sec .pp-location,
.pm-sec .pp-location {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.6rem;
  font-weight: 700;
  color: var(--pm-text-subtle);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 0.35rem;
}

.pg-sec .pp-location svg,
.pm-sec .pp-location svg {
  width: 10px;
  height: 10px;
  flex-shrink: 0;
}

.pg-sec .pp-name,
.pm-sec .pp-name {
  font-size: 0.92rem;
  font-weight: 900;
  color: var(--pm-brand-ink);
  letter-spacing: -0.015em;
  margin-bottom: 0.5rem;
  line-height: 1.2;
}

.pg-sec .pp-rating,
.pm-sec .pp-rating {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.68rem;
  font-weight: 700;
  color: var(--pm-brand-ink);
  margin-bottom: 0.65rem;
}

.pg-sec .pp-stars,
.pm-sec .pp-stars {
  color: var(--pm-star);
  font-size: 0.72rem;
  letter-spacing: -0.02em;
}

.pg-sec .pp-reviews,
.pm-sec .pp-reviews {
  color: var(--pm-text-subtle);
  font-weight: 500;
}

.pg-sec .pp-chips,
.pm-sec .pp-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  margin-bottom: 0.6rem;
}

.pg-sec .pp-chip,
.pm-sec .pp-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  background: var(--pm-surface-alt);
  border: 1px solid var(--pm-border);
  border-radius: 20px;
  padding: 0.22rem 0.62rem;
  font-size: 0.6rem;
  font-weight: 700;
  color: var(--pm-text-muted);
}

.pg-sec .pp-chip svg,
.pm-sec .pp-chip svg {
  width: 9px;
  height: 9px;
  flex-shrink: 0;
}

.pg-sec .pp-chip.chip-amenity,
.pm-sec .pp-chip.chip-amenity {
  background: var(--pm-brand-tint);
  border-color: rgb(var(--pm-brand-rgb), 0.18);
  color: var(--pm-brand);
}

.pg-sec .pp-price-row,
.pm-sec .pp-price-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: auto;
  padding-top: 0.8rem;
  border-top: 1px solid var(--pm-border);
}

.pg-sec .pp-price,
.pm-sec .pp-price {
  font-size: 1.05rem;
  font-weight: 900;
  color: var(--pm-brand-ink);
}

.pg-sec .pp-price-unit,
.pm-sec .pp-price-unit {
  font-size: 0.72rem;
  font-weight: 500;
  color: var(--pm-text-subtle);
}

.pg-sec .pp-footer,
.pm-sec .pp-footer {
  padding: 0.75rem 1.1rem;
  border-top: 1px solid var(--pm-border);
  display: flex;
  gap: 0.5rem;
}

.pg-sec .pp-btn-view,
.pm-sec .pp-btn-view {
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  background: var(--pm-action);
  color: var(--pm-neutral-0);
  border: none;
  border-radius: 8px;
  font-family: var(--pm-font-heading);
  font-size: 0.72rem;
  font-weight: 800;
  padding: 0.55rem 0.85rem;
  cursor: pointer;
  transition: background 0.15s;
  text-align: center;
}

.pg-sec .pp-btn-view:hover,
.pm-sec .pp-btn-view:hover {
  background: var(--pm-action-hover);
  color: var(--pm-neutral-0);
}

.pg-sec .pp-btn-view svg,
.pm-sec .pp-btn-view svg {
  width: 11px;
  height: 11px;
}

.pg-sec .pp-btn-ghost,
.pm-sec .pp-btn-ghost {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  background: transparent;
  color: var(--pm-action);
  border: 1.5px solid var(--pm-action);
  border-radius: 8px;
  font-family: var(--pm-font-heading);
  font-size: 0.72rem;
  font-weight: 800;
  padding: 0.55rem 0.85rem;
  cursor: pointer;
  transition:
    background 0.15s,
    color 0.15s;
}

.pg-sec .pp-btn-ghost:hover,
.pm-sec .pp-btn-ghost:hover {
  background: var(--pm-action-tint);
}

.pg-specials-faq,
.pm-specials-faq {
  background: var(--pm-surface-alt);
}

.pg-sec .faq-card,
.pm-sec .faq-card {
  background: var(--pm-surface);
  border: 1.5px solid var(--pm-border);
  border-radius: 12px;
  padding: 1.25rem 1.4rem;
  box-shadow: var(--pm-shadow-sm);
}

.pg-sec .faq-q,
.pm-sec .faq-q {
  font-size: 0.88rem;
  font-weight: 800;
  color: var(--pm-brand-ink);
  margin-bottom: 0.55rem;
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
}

.pg-sec .faq-q-ico,
.pm-sec .faq-q-ico {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--pm-brand-tint);
  color: var(--pm-brand);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.78rem;
  font-weight: 900;
  /* Montserrat digits are ascent-heavy (ink rides ~1.3px high in the circle):
     pad the top to optically center; border-box keeps the badge 22px. */
  line-height: 1;
  letter-spacing: 0;
  padding-top: 2.5px;
  flex-shrink: 0;
  margin-top: 1px;
}

.pg-sec .faq-a,
.pm-sec .faq-a {
  font-size: 0.82rem;
  color: var(--pm-text-muted);
  line-height: 1.75;
  padding-left: 2rem;
}

.pg-help-cta,
.pm-help-cta {
  background: var(--pm-surface);
}

.pg-sec .help-cta-card,
.pm-sec .help-cta-card {
  background: linear-gradient(135deg, var(--pm-brand-tint) 0%, rgb(247, 181, 131, 0.12) 100%);
  border: 1.5px solid rgb(var(--pm-brand-rgb), 0.14);
  border-radius: 20px;
  padding: 2.8rem 2.4rem;
  text-align: center;
}

.pg-sec .help-cta-ico,
.pm-sec .help-cta-ico {
  width: 56px;
  height: 56px;
  border-radius: 14px;
  background: var(--pm-brand);
  color: var(--pm-neutral-0);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 1.1rem;
}

.pg-sec .help-cta-ico svg,
.pm-sec .help-cta-ico svg {
  width: 26px;
  height: 26px;
}

.pg-sec .help-cta-title,
.pm-sec .help-cta-title {
  font-size: 1.35rem;
  font-weight: 900;
  color: var(--pm-brand-ink);
  margin-bottom: 0.6rem;
  letter-spacing: -0.02em;
}

.pg-sec .help-cta-sub,
.pm-sec .help-cta-sub {
  font-size: 0.88rem;
  color: var(--pm-text-muted);
  max-width: 480px;
  margin: 0 auto 1.8rem;
  line-height: 1.75;
}

.pg-bottom-cta::before,
.pm-bottom-cta::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--pm-brand), var(--pm-accent), transparent);
}

.pg-sec .bcta-eyebrow,
.pm-sec .bcta-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--pm-accent);
  margin-bottom: 1rem;
}

.pg-sec .bcta-eyebrow::before,
.pm-sec .bcta-eyebrow::before {
  content: '';
  width: 18px;
  height: 1.5px;
  background: var(--pm-accent);
  display: block;
}

.pg-bottom-cta h2,
.pm-bottom-cta h2 {
  font-size: clamp(1.5rem, 3.5vw, 2.3rem);
  font-weight: 900;
  color: var(--pm-neutral-0);
  letter-spacing: -0.025em;
  line-height: 1.1;
  margin-bottom: 0.9rem;
}

.pg-bottom-cta p,
.pm-bottom-cta p {
  font-size: 0.95rem;
  color: rgb(255, 255, 255, 0.7);
  max-width: 520px;
  margin: 0 auto 2.2rem;
  line-height: 1.8;
}

.pg-mobile-specials-bar,
.pm-mobile-specials-bar {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background: var(--pm-neutral-0);
  border-top: 1px solid var(--pm-border);
  padding: 0.75rem 1rem;
  box-shadow: 0 -4px 20px rgb(0, 0, 0, 0.12);
  z-index: 500;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.pg-sec .msb-label,
.pm-sec .msb-label {
  font-size: 0.68rem;
  font-weight: 700;
  color: var(--pm-text-subtle);
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

.pg-sec .msb-title,
.pm-sec .msb-title {
  font-size: 0.88rem;
  font-weight: 900;
  color: var(--pm-brand-ink);
  line-height: 1.1;
}

@media (max-width: 767px) {
  .pg-hero {
    min-height: 420px;
    padding-top: 48px;
  }

  .pg-sec .hero-h1 {
    font-size: 1.65rem;
  }

  .pg-sec .hero-sub {
    font-size: 0.84rem;
  }

  .pg-sec .hero-btns {
    gap: 0.55rem;
  }

  .pg-sec .btn-ghost-or {
    font-size: 0.78rem;
    padding: 0.6rem 1.1rem;
  }

  .pg-sec .trust-pill {
    padding: 0.65rem 0.3rem;
  }

  .pg-sec .trust-main {
    font-size: 0.66rem;
  }

  .pg-sec .trust-hint {
    font-size: 0.56rem;
  }

  .pg-sec section {
    padding: 44px 0;
  }

  .pg-sec .promo-card {
    padding: 1.4rem 1.2rem;
  }

  .pg-sec .foc-img-wrap {
    min-height: 220px;
  }

  .pg-sec .foc-body {
    padding: 1.6rem 1.4rem;
  }

  .pg-sec .offer-section-hdr {
    flex-direction: column;
    align-items: flex-start;
  }

  .pg-sec .pp-img {
    height: 180px;
  }

  .pg-sec .pp-body {
    padding: 0.85rem 1rem;
  }

  .pg-sec .help-cta-card {
    padding: 2rem 1.4rem;
  }

  .pg-bottom-cta {
    padding: 56px 0;
  }

  .pg-mobile-specials-bar {
    display: flex;
  }
}

@media (max-width: 575px) {
  .pg-sec .pp-chips {
    gap: 0.22rem;
  }

  .pg-sec .pp-chip {
    font-size: 0.58rem;
    padding: 0.2rem 0.5rem;
  }
}

/* ---------------------------------------------------------
   25 · GENERATED: CONTACT (compiled from avada-works/contact.html)
   pg-* base already present (section 24); .pg-sec-scoped rules apply
   where compiled pg-sec sections exist. 1 inline colour (#1a6b47=success).
--------------------------------------------------------- */

/* GENERATED by awayday compile — https://avada-works.vercel.app/contact.html
   Token-only overrides for "contact" on site "dev-avada".
   Swap the site's theme-tokens.css to re-skin. Review non-token values in report.md. */

/* pg-* native-widget base (convention, tokens only) */
.pg-sec,
.pm-sec {
  padding: var(--section-padding-y) 0;
}

.pg-inner,
.pm-inner,
.pg-inner > .e-con-inner,
.pm-inner > .e-con-inner {
  max-width: 1140px;
  margin-inline: auto;
  padding-inline: 15px;
  width: 100%;
}

.pg-eyebrow .elementor-heading-title,
.pm-eyebrow .elementor-heading-title {
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--pm-accent);
  margin-bottom: 0.5rem;
}

.pg-eyebrow-dark .elementor-heading-title,
.pm-eyebrow-dark .elementor-heading-title {
  color: var(--pm-accent);
}

.pg-title .elementor-heading-title,
.pm-title .elementor-heading-title {
  font-size: clamp(1.4rem, 2.8vw, 2.1rem);
  font-weight: 900;
  color: var(--pm-heading);
  letter-spacing: -0.02em;
  line-height: 1.15;
  margin-bottom: 0.75rem;
}

.pg-title-white .elementor-heading-title,
.pm-title-white .elementor-heading-title {
  color: var(--pm-neutral-0);
}

.pg-hero-title .elementor-heading-title,
.pm-hero-title .elementor-heading-title {
  font-size: clamp(1.8rem, 4vw, 2.9rem);
  font-weight: 900;
  color: var(--pm-neutral-0) !important;
  line-height: 1.08;
  letter-spacing: -0.025em;
  max-width: 620px;
  margin-bottom: 0.9rem;
}

.pg-hero-title em,
.pm-hero-title em {
  color: var(--pm-accent);
  font-style: italic;
}

.pg-sub .elementor-widget-container,
.pm-sub .elementor-widget-container,
.pg-sub p,
.pm-sub p {
  font-size: 0.93rem;
  color: var(--pm-text-muted);
  line-height: 1.78;
  max-width: 560px;
  margin-bottom: 0;
}

.pg-sub-white .elementor-widget-container,
.pm-sub-white .elementor-widget-container,
.pg-sub-white p,
.pm-sub-white p {
  color: rgb(255, 255, 255, 0.6);
}

.pg-actions,
.pm-actions,
.pg-actions > .e-con-inner,
.pm-actions > .e-con-inner {
  display: flex;
  flex-flow: row wrap;
  gap: 1rem;
  align-items: center;
  margin-top: 1rem;
}

.pg-btn .elementor-button,
.pm-btn .elementor-button {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-weight: 700;
  font-size: 0.84rem;
  padding: 0.72rem 1.5rem;
  border-radius: var(--pm-radius-md) !important;
  border: 2px solid var(--pm-action) !important;
  line-height: 1.2;
}

.pg-btn-solid .elementor-button,
.pm-btn-solid .elementor-button {
  background: var(--pm-action) !important;
  color: var(--pm-neutral-0) !important;
}

.pg-btn-solid .elementor-button:hover,
.pm-btn-solid .elementor-button:hover {
  background: var(--pm-action-hover) !important;
  border-color: var(--pm-action-hover) !important;
  color: var(--pm-neutral-0) !important;
}

.pg-btn-outline .elementor-button,
.pm-btn-outline .elementor-button {
  background: transparent !important;
  color: var(--pm-action) !important;
}

.pg-btn-outline .elementor-button:hover,
.pm-btn-outline .elementor-button:hover {
  background: var(--pm-action-tint) !important;
}

.pg-btn-ghost .elementor-button,
.pm-btn-ghost .elementor-button {
  background: transparent !important;
  color: var(--pm-neutral-0) !important;
  border-color: rgb(255, 255, 255, 0.45) !important;
}

.pg-btn-ghost .elementor-button:hover,
.pm-btn-ghost .elementor-button:hover {
  background: rgb(255, 255, 255, 0.12) !important;
  border-color: rgb(255, 255, 255, 0.7) !important;
  color: var(--pm-neutral-0) !important;
}

.pg-btn-dark .elementor-button,
.pm-btn-dark .elementor-button {
  background: var(--pm-heading) !important;
  color: var(--pm-neutral-0) !important;
  border-color: var(--pm-heading) !important;
}

.pg-btn-dark .elementor-button:hover,
.pm-btn-dark .elementor-button:hover {
  background: var(--pm-ink-soft, var(--pm-heading)) !important;
  border-color: var(--pm-ink-soft, var(--pm-heading)) !important;
  color: var(--pm-neutral-0) !important;
}

.pg-2col,
.pm-2col,
.pg-2col > .e-con-inner,
.pm-2col > .e-con-inner {
  display: flex;
  flex-flow: row wrap;
  gap: 2.5rem;
  align-items: center;
}

.pg-col,
.pm-col {
  flex: 1 1 300px;
}

/* --- ported mockup styles (scoped + tokenized) --- */
.pg-sec h1,
.pm-sec h1,
.pg-sec h2,
.pm-sec h2,
.pg-sec h3,
.pm-sec h3,
.pg-sec h4,
.pm-sec h4,
.pg-sec h5,
.pm-sec h5 {
  font-family: var(--pm-font-heading);
  color: var(--pm-brand-ink);
  line-height: 1.15;
}

.pg-sec a,
.pm-sec a {
  text-decoration: none;
  color: inherit;
}

.pg-sec img,
.pm-sec img {
  display: block;
  max-width: 100%;
}

.pg-sec .ico,
.pm-sec .ico {
  display: inline-block;
  vertical-align: -0.125em;
  flex-shrink: 0;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.pg-sec .ico-xs,
.pm-sec .ico-xs {
  width: 12px;
  height: 12px;
}

.pg-sec .ico-sm,
.pm-sec .ico-sm {
  width: 14px;
  height: 14px;
}

.pg-sec .ico-md,
.pm-sec .ico-md {
  width: 16px;
  height: 16px;
}

.pg-sec .ico-lg,
.pm-sec .ico-lg {
  width: 20px;
  height: 20px;
}

.pg-sec .ico-xl,
.pm-sec .ico-xl {
  width: 24px;
  height: 24px;
}

.pg-sec .ico-fill,
.pm-sec .ico-fill {
  fill: currentColor;
  stroke: none;
}

.pg-sec .contact-hero-inner,
.pm-sec .contact-hero-inner {
  position: relative;
  z-index: 1;
}

.pg-sec .contact-eyebrow,
.pm-sec .contact-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--pm-accent);
  margin-bottom: 0.9rem;
}

.pg-sec .contact-eyebrow::before,
.pm-sec .contact-eyebrow::before {
  content: '';
  width: 20px;
  height: 1.5px;
  background: var(--pm-accent);
  display: block;
}

.pg-sec .contact-h1,
.pm-sec .contact-h1 {
  font-size: clamp(1.6rem, 3.5vw, 2.5rem);
  font-weight: 900;
  color: var(--pm-neutral-0);
  line-height: 1.1;
  max-width: 640px;
  margin-bottom: 0.85rem;
  letter-spacing: -0.025em;
}

.pg-sec .contact-h1 em,
.pm-sec .contact-h1 em {
  font-style: italic;
  color: var(--pm-accent);
  font-weight: 700;
}

.pg-sec .contact-sub,
.pm-sec .contact-sub {
  font-size: 0.9rem;
  color: rgb(255, 255, 255, 0.62);
  max-width: 500px;
  line-height: 1.78;
  margin-bottom: 1.6rem;
}

.pg-sec .contact-trust-bar,
.pm-sec .contact-trust-bar {
  background: var(--pm-brand-ink);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-top: 1px solid rgb(255, 255, 255, 0.08);
  margin-top: 2rem;
}

.pg-sec .contact-trust-pill,
.pm-sec .contact-trust-pill {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.78rem 0;
  border-right: 1px solid rgb(255, 255, 255, 0.07);
}

.pg-sec .contact-trust-pill:last-child,
.pm-sec .contact-trust-pill:last-child {
  border-right: none;
}

.pg-sec .contact-trust-ico,
.pm-sec .contact-trust-ico {
  color: var(--pm-accent);
  flex-shrink: 0;
}

.pg-sec .contact-trust-main,
.pm-sec .contact-trust-main {
  font-size: 0.73rem;
  font-weight: 700;
  color: rgb(255, 255, 255, 0.9);
}

.pg-sec .contact-trust-hint,
.pm-sec .contact-trust-hint {
  font-size: 0.62rem;
  color: rgb(255, 255, 255, 0.38);
}

.pg-contact-paths,
.pm-contact-paths {
  background: var(--pm-surface);
  padding: 2.4rem 0;
  border-bottom: 1px solid var(--pm-border);
}

.pg-sec .path-card,
.pm-sec .path-card {
  background: var(--pm-surface-alt);
  border: 1.5px solid var(--pm-border);
  border-radius: var(--pm-radius-xl);
  padding: 1.6rem 1.5rem;
  height: 100%;
  display: flex;
  flex-direction: column;
  gap: 0;
  position: relative;
  overflow: hidden;
  transition:
    transform 0.2s,
    box-shadow 0.2s,
    border-color 0.2s;
}

.pg-sec .path-card:hover,
.pm-sec .path-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--pm-shadow-card);
  border-color: var(--pm-brand);
}

.pg-sec .path-card::before,
.pm-sec .path-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--pm-border-strong);
  transition: background 0.2s;
}

.pg-sec .path-card:hover::before,
.pm-sec .path-card:hover::before {
  background: var(--pm-brand);
}

.pg-sec .path-ico,
.pm-sec .path-ico {
  width: 46px;
  height: 46px;
  background: var(--pm-brand-tint);
  border-radius: 11px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--pm-brand);
  margin-bottom: 0.9rem;
}

.pg-sec .path-card h4,
.pm-sec .path-card h4 {
  font-size: 0.95rem;
  font-weight: 800;
  color: var(--pm-brand-ink);
  margin-bottom: 0.4rem;
  letter-spacing: -0.01em;
}

.pg-sec .path-card p,
.pm-sec .path-card p {
  font-size: 0.8rem;
  color: var(--pm-text-muted);
  line-height: 1.65;
  margin-bottom: 1.1rem;
  flex: 1;
}

.pg-contact-main,
.pm-contact-main {
  padding: 2rem 0 3rem;
  background: var(--pm-surface-alt);
}

.pg-sec .form-card,
.pm-sec .form-card {
  background: var(--pm-surface);
  border-radius: var(--pm-radius-xl);
  box-shadow: var(--pm-shadow-sm);
  overflow: hidden;
}

.pg-sec .form-section,
.pm-sec .form-section {
  padding: 1.5rem 1.6rem;
  border-bottom: 1px solid var(--pm-border);
}

.pg-sec .form-section:last-child,
.pm-sec .form-section:last-child {
  border-bottom: none;
}

.pg-sec .form-section-label,
.pm-sec .form-section-label {
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--pm-brand);
  display: flex;
  align-items: center;
  gap: 0.4rem;
  margin-bottom: 0.6rem;
}

.pg-sec .form-intro,
.pm-sec .form-intro {
  font-size: 0.82rem;
  color: var(--pm-text-subtle);
  margin-bottom: 1rem;
  line-height: 1.6;
}

.pg-sec .fake-field,
.pm-sec .fake-field {
  border: 1.5px solid var(--pm-border-strong);
  border-radius: var(--pm-radius-md);
  padding: 0.72rem 0.95rem;
  background: var(--pm-surface-alt);
  cursor: default;
  transition: border-color 0.15s;
}

.pg-sec .fake-field:hover,
.pm-sec .fake-field:hover {
  border-color: var(--pm-brand);
}

.pg-sec .fake-field-label,
.pm-sec .fake-field-label {
  display: block;
  font-size: 0.6rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--pm-text-subtle);
  margin-bottom: 0.28rem;
  line-height: 1;
}

.pg-sec .fake-field-value,
.pm-sec .fake-field-value {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--pm-text-subtle);
  line-height: 1.3;
}

.pg-sec .fake-field-value.has-value,
.pm-sec .fake-field-value.has-value {
  color: var(--pm-brand-ink);
}

.pg-sec .fake-field-lg,
.pm-sec .fake-field-lg {
  border: 1.5px solid var(--pm-border-strong);
  border-radius: var(--pm-radius-md);
  padding: 0.8rem 1rem;
  background: var(--pm-surface);
  cursor: default;
  transition: border-color 0.15s;
  display: flex;
  flex-direction: column;
  gap: 0.22rem;
}

.pg-sec .fake-field-lg:hover,
.pm-sec .fake-field-lg:hover {
  border-color: var(--pm-brand);
}

.pg-sec .fake-field-lg .fake-field-label,
.pm-sec .fake-field-lg .fake-field-label {
  margin-bottom: 0;
}

.pg-sec .fake-field-lg .fake-field-value,
.pm-sec .fake-field-lg .fake-field-value {
  font-size: 0.92rem;
}

.pg-sec .fake-textarea,
.pm-sec .fake-textarea {
  border: 1.5px solid var(--pm-border-strong);
  border-radius: var(--pm-radius-lg);
  padding: 0.9rem 1rem;
  background: var(--pm-surface-alt);
  min-height: 110px;
  cursor: default;
}

.pg-sec .fake-textarea-placeholder,
.pm-sec .fake-textarea-placeholder {
  font-size: 0.84rem;
  color: var(--pm-text-subtle);
  line-height: 1.65;
  font-style: italic;
}

.pg-sec .fake-check-row,
.pm-sec .fake-check-row {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  padding: 0.5rem 0;
}

.pg-sec .fake-check,
.pm-sec .fake-check {
  width: 18px;
  height: 18px;
  border: 1.5px solid var(--pm-border-strong);
  border-radius: 5px;
  background: var(--pm-surface);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.pg-sec .fake-check.checked,
.pm-sec .fake-check.checked {
  background: var(--pm-brand);
  border-color: var(--pm-brand);
}

.pg-sec .fake-check.checked::after,
.pm-sec .fake-check.checked::after {
  content: '✓';
  color: var(--pm-neutral-0);
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
}

.pg-sec .fake-check-label,
.pm-sec .fake-check-label {
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--pm-text);
}

.pg-sec .fake-pill-option,
.pm-sec .fake-pill-option {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--pm-text-muted);
  background: var(--pm-surface-alt);
  border: 1.5px solid var(--pm-border-strong);
  border-radius: 999px;
  padding: 0.38rem 0.9rem;
  cursor: default;
}

.pg-sec .fake-pill-option.active,
.pm-sec .fake-pill-option.active {
  background: var(--pm-brand-tint);
  border-color: var(--pm-brand);
  color: var(--pm-brand);
  font-weight: 800;
}

.pg-sec .btn-submit-contact,
.pm-sec .btn-submit-contact {
  width: 100%;
  background: var(--pm-action);
  color: var(--pm-neutral-0);
  font-family: var(--pm-font-heading);
  font-weight: 800;
  font-size: 0.96rem;
  border: none;
  border-radius: var(--pm-radius-md);
  padding: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  cursor: pointer;
}

.pg-sec .submit-helper,
.pm-sec .submit-helper {
  font-size: 0.8rem;
  color: var(--pm-text-muted);
  text-align: center;
  margin-top: 0.65rem;
  line-height: 1.6;
}

.pg-sec .contact-info-sticky,
.pm-sec .contact-info-sticky {
  position: sticky;
  top: 90px;
}

.pg-sec .contact-info-card,
.pm-sec .contact-info-card {
  background: var(--pm-surface);
  border-radius: var(--pm-radius-xl);
  border: 1px solid var(--pm-border);
  box-shadow: var(--pm-shadow-lg);
  overflow: hidden;
}

.pg-sec .ci-head,
.pm-sec .ci-head {
  background: var(--pm-brand-ink);
  padding: 1.1rem 1.3rem;
}

.pg-sec .ci-head-label,
.pm-sec .ci-head-label {
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgb(255, 255, 255, 0.38);
  margin-bottom: 0.3rem;
}

.pg-sec .ci-head-title,
.pm-sec .ci-head-title {
  font-size: 0.9rem;
  font-weight: 900;
  color: var(--pm-neutral-0);
  letter-spacing: -0.01em;
}

.pg-sec .ci-body,
.pm-sec .ci-body {
  padding: 1.1rem 1.3rem;
}

.pg-sec .ci-row,
.pm-sec .ci-row {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  padding: 0.65rem 0;
  border-bottom: 1px solid var(--pm-border);
}

.pg-sec .ci-row:last-of-type,
.pm-sec .ci-row:last-of-type {
  border-bottom: none;
}

.pg-sec .ci-ico,
.pm-sec .ci-ico {
  width: 28px;
  height: 28px;
  min-width: 28px;
  background: var(--pm-brand-tint);
  border-radius: 7px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--pm-brand);
  flex-shrink: 0;
}

.pg-sec .ci-text strong,
.pm-sec .ci-text strong {
  display: block;
  font-size: 0.76rem;
  font-weight: 700;
  color: var(--pm-brand-ink);
  margin-bottom: 0.05rem;
}

.pg-sec .ci-text span,
.pm-sec .ci-text span {
  font-size: 0.68rem;
  color: var(--pm-text-muted);
  line-height: 1.4;
}

.pg-sec .ci-placeholder,
.pm-sec .ci-placeholder {
  font-size: 0.65rem;
  color: var(--pm-border-strong);
  font-style: italic;
  display: block;
  margin-top: 0.15rem;
}

.pg-sec .ci-trust,
.pm-sec .ci-trust {
  border-top: 1px solid var(--pm-border);
  padding: 0.8rem 1.3rem;
  background: var(--pm-surface-alt);
}

.pg-sec .ci-trust-item,
.pm-sec .ci-trust-item {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.68rem;
  color: var(--pm-text-muted);
  margin-bottom: 0.3rem;
}

.pg-sec .ci-trust-item:last-child,
.pm-sec .ci-trust-item:last-child {
  margin-bottom: 0;
}

.pg-sec .ci-trust-item .ico,
.pm-sec .ci-trust-item .ico {
  color: var(--pm-success);
}

.pg-sec .mobile-contact-note,
.pm-sec .mobile-contact-note {
  background: var(--pm-surface);
  border: 1px solid var(--pm-border);
  border-radius: var(--pm-radius-lg);
  padding: 0.85rem 1rem;
  margin-bottom: 1rem;
  box-shadow: var(--pm-shadow-sm);
}

.pg-sec .mcn-title,
.pm-sec .mcn-title {
  font-size: 0.82rem;
  font-weight: 800;
  color: var(--pm-brand-ink);
}

.pg-sec .mcn-sub,
.pm-sec .mcn-sub {
  font-size: 0.7rem;
  color: var(--pm-text-subtle);
  margin-top: 2px;
}

.pg-shortcuts,
.pm-shortcuts {
  background: var(--pm-surface);
  padding: 2.2rem 0;
  border-top: 1px solid var(--pm-border);
}

.pg-sec .shortcut-card,
.pm-sec .shortcut-card {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  background: var(--pm-surface-alt);
  border: 1.5px solid var(--pm-border);
  border-radius: var(--pm-radius-xl);
  padding: 1rem 1.2rem;
  text-decoration: none;
  height: 100%;
  transition:
    border-color 0.15s,
    background 0.15s,
    box-shadow 0.15s;
}

.pg-sec .shortcut-card:hover,
.pm-sec .shortcut-card:hover {
  border-color: var(--pm-brand);
  background: var(--pm-brand-tint);
  box-shadow: var(--pm-shadow-sm);
}

.pg-sec .shortcut-ico,
.pm-sec .shortcut-ico {
  width: 40px;
  height: 40px;
  min-width: 40px;
  background: var(--pm-brand-tint);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--pm-brand);
  flex-shrink: 0;
  transition: background 0.15s;
}

.pg-sec .shortcut-card:hover .shortcut-ico,
.pm-sec .shortcut-card:hover .shortcut-ico {
  background: rgb(var(--pm-brand-rgb), 0.15);
}

.pg-sec .shortcut-card h5,
.pm-sec .shortcut-card h5 {
  font-size: 0.82rem;
  font-weight: 800;
  color: var(--pm-brand-ink);
  margin-bottom: 0.08rem;
  letter-spacing: -0.01em;
}

.pg-sec .shortcut-card span,
.pm-sec .shortcut-card span {
  font-size: 0.68rem;
  color: var(--pm-text-subtle);
  line-height: 1.3;
}

.pg-sec .shortcut-arrow,
.pm-sec .shortcut-arrow {
  margin-left: auto;
  color: var(--pm-border-strong);
  flex-shrink: 0;
  transition: color 0.15s;
}

.pg-sec .shortcut-card:hover .shortcut-arrow,
.pm-sec .shortcut-card:hover .shortcut-arrow {
  color: var(--pm-brand);
}

.pg-local-support,
.pm-local-support {
  background: var(--pm-surface-alt);
  padding: 60px 0;
}

.pg-sec .local-cue-pill,
.pm-sec .local-cue-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--pm-brand-ink);
  background: var(--pm-surface);
  border: 1.5px solid var(--pm-border);
  border-radius: 999px;
  padding: 0.45rem 1rem;
  box-shadow: var(--pm-shadow-sm);
  transition:
    border-color 0.15s,
    color 0.15s;
}

/* .pg-sec .local-cue-pill:hover,
.pm-sec .local-cue-pill:hover {
  border-color: var(--pm-brand);
  color: var(--pm-brand);
} */

.pg-sec .local-cue-pill .ico,
.pm-sec .local-cue-pill .ico {
  color: var(--pm-brand);
}

.pg-map-section,
.pm-map-section {
  background: var(--pm-surface);
  padding: 2rem 0;
  border-top: 1px solid var(--pm-border);
}

.pg-sec .map-placeholder,
.pm-sec .map-placeholder {
  background: var(--pm-surface-alt);
  border: 2px dashed var(--pm-border-strong);
  border-radius: var(--pm-radius-xl);
  height: 220px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 0.6rem;
  color: var(--pm-text-subtle);
  text-align: center;
  padding: 1.5rem;
}

.pg-sec .map-placeholder p,
.pm-sec .map-placeholder p {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--pm-text-subtle);
  margin: 0;
}

.pg-sec .map-placeholder span,
.pm-sec .map-placeholder span {
  font-size: 0.68rem;
  color: var(--pm-border-strong);
}

.pg-not-sure,
.pm-not-sure {
  background: var(--pm-surface-alt);
  padding: 1.4rem 0;
}

.pg-sec .not-sure-card,
.pm-sec .not-sure-card {
  background: linear-gradient(135deg, var(--pm-brand-tint) 0%, var(--pm-neutral-0) 70%);
  border: 1.5px solid rgb(var(--pm-brand-rgb), 0.22);
  border-radius: var(--pm-radius-xl);
  padding: 1.6rem 2rem;
  display: flex;
  align-items: center;
  gap: 2rem;
  flex-wrap: wrap;
  justify-content: space-between;
}

.pg-sec .not-sure-card h3,
.pm-sec .not-sure-card h3 {
  font-size: 1rem;
  font-weight: 800;
  color: var(--pm-brand-ink);
  margin-bottom: 0.3rem;
  letter-spacing: -0.01em;
}

.pg-sec .not-sure-card p,
.pm-sec .not-sure-card p {
  font-size: 0.82rem;
  color: var(--pm-text-muted);
  max-width: 480px;
  line-height: 1.65;
  margin: 0;
}

.pg-bottom-cta,
.pm-bottom-cta {
  background: var(--pm-surface-dark);
  padding: 68px 0;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.pg-bottom-cta::before,
.pm-bottom-cta::before {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 600px;
  height: 600px;
  background: radial-gradient(circle, rgb(var(--pm-brand-rgb), 0.17) 0%, transparent 65%);
  pointer-events: none;
}

.pg-bottom-cta::after,
.pm-bottom-cta::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--pm-brand), var(--pm-accent), transparent);
}

.pg-bottom-cta .container,
.pm-bottom-cta .container {
  position: relative;
  z-index: 1;
}

.pg-bottom-cta h2,
.pm-bottom-cta h2 {
  font-size: clamp(1.3rem, 2.5vw, 1.9rem);
  font-weight: 900;
  color: var(--pm-neutral-0);
  margin-bottom: 0.55rem;
  letter-spacing: -0.02em;
}

.pg-bottom-cta p,
.pm-bottom-cta p {
  font-size: 0.88rem;
  color: rgb(255, 255, 255, 0.58);
  max-width: 440px;
  margin: 0 auto 1.6rem;
  line-height: 1.8;
}

.pg-sec .btn-mbar,
.pm-sec .btn-mbar {
  background: var(--pm-action);
  color: var(--pm-neutral-0);
  border: none;
  border-radius: var(--pm-radius-md);
  font-family: var(--pm-font-heading);
  font-weight: 800;
  font-size: 0.82rem;
  padding: 0.65rem 1.2rem;
  display: flex;
  align-items: center;
  gap: 0.38rem;
  cursor: pointer;
  white-space: nowrap;
}

@media (max-width: 991px) {
  .pg-sec .contact-info-sticky {
    position: static;
    margin-top: 1.4rem;
  }

  .pg-sec .form-section {
    padding: 1.2rem;
  }
}

@media (max-width: 767px) {
  .pg-sec .contact-h1 {
    font-size: 1.6rem;
  }

  .pg-sec .contact-trust-hint {
    display: none;
  }

  .pg-contact-hero {
    min-height: 360px;
    padding-top: 70px;
  }

  .pg-sec .not-sure-card {
    flex-direction: column;
    gap: 1rem;
    padding: 1.3rem 1.2rem;
  }

  .pg-sec .not-sure-card .btn-or {
    width: 100%;
    justify-content: center;
  }
}

@media (max-width: 575px) {
  .pg-sec .contact-h1 {
    font-size: 1.4rem;
  }

  .pg-sec .form-section {
    padding: 1.1rem;
  }

  .pg-bottom-cta {
    padding: var(--section-padding-y) 0;
  }
}

/* ---------------------------------------------------------
   26 · CONTACT fake-form → functional (bridge to hidden Elementor form)
   Fake fields are now real inputs styled as the field boxes; a JS bridge in
   the form html copies name/email + composed message into the real
   .elementor-form and submits it. Hide the real form off-screen (keep in DOM).
--------------------------------------------------------- */
.form-card input.fake-field-value,
.form-card textarea.fake-field-value {
  width: 100%;
  box-sizing: border-box;
  font-family: inherit;
  font-size: 0.9rem;
  color: var(--pm-text);
  background: var(--pm-surface);
  border: 1px solid var(--pm-border);
  border-radius: var(--pm-radius-md);
  padding: 0.6rem 0.8rem;
  outline: 0;
}

.form-card input.fake-field-value:focus,
.form-card textarea.fake-field-value:focus {
  border-color: var(--pm-brand);
}

.form-card input.fake-field-value::placeholder,
.form-card textarea.fake-field-value::placeholder {
  color: var(--pm-text-subtle);
}

.form-card .fake-pill-option {
  cursor: pointer;
  transition:
    background 0.15s,
    color 0.15s,
    border-color 0.15s;
}

.form-card label.fake-check-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
}

.form-card input.fake-check {
  appearance: none;
  -webkit-appearance: none;
  width: 18px;
  height: 18px;
  margin: 0;
  border: 2px solid var(--pm-border-strong);
  border-radius: 5px;
  cursor: pointer;
  position: relative;
  flex-shrink: 0;
}

.form-card input.fake-check:checked {
  background: var(--pm-brand);
  border-color: var(--pm-brand);
}

.form-card input.fake-check:checked::after {
  content: '';
  position: absolute;
  left: 4px;
  top: 1px;
  width: 4px;
  height: 8px;
  border: solid var(--pm-neutral-0);
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

/* ---------------------------------------------------------
   27 · COOKIE CONSENT (#cookieConsent, footer template)
   Our own sticky (Elementor sticky removed in data) so "accept" can un-stick it.
   Accept = click the check icon → persists (localStorage) + adds
   .awd-cookie-accepted → position:static + icon hidden.
--------------------------------------------------------- */
#cookieConsent {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: var(--pm-z-overlay, 1200);
  display: flex;
  flex-flow: row nowrap !important;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  background: var(--pm-surface-darker);
  border-top: 1px solid rgb(255, 255, 255, 0.08);
  box-shadow: 0 -4px 24px rgb(0, 0, 0, 0.3);
  padding: 0.85rem clamp(1rem, 4vw, 2.5rem) !important;
}

#cookieConsent .elementor-widget-text-editor,
#cookieConsent .elementor-widget-text-editor span {
  background: transparent !important;
  color: var(--text-on-dark-subtle) !important;
  font-family: var(--pm-font-body) !important;
  font-size: 0.82rem !important;
  line-height: 1.5 !important;
}

#cookieConsent a {
  color: var(--pm-brand) !important;
  font-weight: 700;
  text-decoration: none;
  margin-left: 0.35rem;
}

#cookieConsent a:hover {
  text-decoration: underline;
}

/* Accept = the check icon styled as a brand button */
#cookieConsent .elementor-widget-icon .elementor-icon {
  background: var(--pm-brand);
  color: var(--pm-neutral-0) !important;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  cursor: pointer;
  transition: background var(--pm-duration);
}

#cookieConsent .elementor-widget-icon .elementor-icon:hover {
  background: var(--pm-brand-hover);
}

#cookieConsent .elementor-widget-icon svg {
  fill: var(--pm-neutral-0);
  width: 15px;
  height: 15px;
}

/* Accepted: hide the entire banner completely */
#cookieConsent.awd-cookie-accepted,
#cookieConsent.pm-cookie-accepted {
  display: none !important;
}

@media (max-width: 767px) {
  #cookieConsent {
    justify-content: center;
    text-align: center;
    gap: 0.6rem;
  }
}

#cookieConsent > .elementor-element:has(.elementor-widget-html) {
  display: none;
}

/* script holder */
#cookieConsent > .elementor-element:has(.elementor-widget-text-editor) {
  flex: 1 1 auto;
  min-width: 0;
}

#cookieConsent > .elementor-element:has(.elementor-widget-icon) {
  flex: 0 0 auto;
}

@media (max-width: 767px) {
  #cookieConsent {
    flex-wrap: wrap !important;
  }

  #cookieConsent > .elementor-element:has(.elementor-widget-text-editor) {
    flex-basis: 100%;
  }
}

/* 26b · inputs inside fake-field boxes (name/email/phone/related): the wrapper
   IS the box, so the input must be transparent/borderless (no box-in-a-box).
   The standalone message <textarea> keeps its own box from sec 26. */
.form-card .fake-field-lg input.fake-field-value,
.form-card .fake-field input.fake-field-value {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
}

.form-card .fake-pill-option:hover {
  border-color: var(--pm-brand);
  color: var(--pm-brand);
}

.form-card .fake-pill-option.active,
.form-card .fake-pill-option.active:hover {
  background: var(--pm-brand) !important;
  border-color: var(--pm-brand) !important;
  color: var(--pm-neutral-0) !important;
}

.form-card .fake-pill-option.active svg {
  stroke: var(--pm-neutral-0) !important;
  color: var(--pm-neutral-0) !important;
}

/* 26d · pills = native radios (no JS toggle). Selection is native; :has(:checked)
   drives the active fill. Works in editor + frontend, survives re-saves. */
.form-card .pill-radio {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  margin: 0;
  pointer-events: none;
}

.form-card label.fake-pill-option {
  cursor: pointer;
}

.form-card .fake-pill-option:has(.pill-radio:checked),
.form-card .fake-pill-option:has(.pill-radio:checked):hover {
  background: var(--pm-brand) !important;
  border-color: var(--pm-brand) !important;
  color: var(--pm-neutral-0) !important;
}

.form-card .fake-pill-option:has(.pill-radio:checked) svg {
  stroke: var(--pm-neutral-0) !important;
  color: var(--pm-neutral-0) !important;
}

/* 25e · Header must sit ABOVE page content. The sticky header was only z:99 and
   positioned page content (e.g. the contact sidebar) rendered over it. Raise it
   to the header z token so it always wins. */
[data-elementor-type='header'],
.elementor-location-header,
[class*='header_wrapper'] {
  z-index: var(--pm-z-header, 1000) !important;
}

/* 26e · off-screen utility: hide the real Elementor form but KEEP it in the DOM
   (the fake-form bridge submits it). Add class "awd-offscreen" to the Form widget.
   NOT display:none — a hidden required-field form fails validation. */
.awd-offscreen,
.pm-offscreen {
  position: absolute !important;
  left: -9999px !important;
  top: auto !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  pointer-events: none;
}

/* ============================================================================
   28 · THINGS TO DO — directory (index → city hub → category leaf)
   Reuses the .pg-hero kit for the hero; adds a per-page hero image, the
   city/category tab bars, and the attraction-card grid. Tokens only.
   Component wrappers (.ttd-nav-list, .ttd-grid) are single HTML widgets
   emitted by the compiler; everything below styles their inner markup.
   ============================================================================ */

/* 28a-lead · index intro paragraph under the hero */
.ttd-lead {
  max-width: 760px;
  margin: 0 0 2rem;
  font-size: 0.95rem;
  line-height: 1.75;
  color: var(--pm-text-muted);
}

/* 28b · directory band */
.pg-directory,
.pm-directory {
  background: var(--pm-surface);
  padding: 2.5rem 0 3.5rem !important;
}

/* 28c · breadcrumb */
.ttd-crumb-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--pm-text-muted);
  margin-bottom: 1.25rem;
}

.ttd-crumb-list a {
  color: var(--pm-text-muted);
  text-decoration: none;
}

.ttd-crumb-list a:hover {
  color: var(--pm-brand);
}

.ttd-crumb-list [aria-current='page'] {
  color: var(--pm-heading);
  font-weight: 700;
}

.ttd-crumb-sep {
  color: var(--pm-border-strong);
}

/* 28d · city switcher pills */
.city-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1rem;
}

.city-pill {
  display: inline-flex;
  align-items: center;
  padding: 0.5rem 1.1rem;
  border-radius: var(--pm-radius-pill);
  border: 1.5px solid var(--pm-border-strong);
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--pm-heading);
  text-decoration: none;
  background: var(--pm-surface);
  transition:
    color var(--pm-duration) var(--pm-ease),
    border-color var(--pm-duration) var(--pm-ease),
    background var(--pm-duration) var(--pm-ease);
}

.city-pill:hover {
  border-color: var(--pm-brand);
  color: var(--pm-brand);
}

.city-pill.is-active {
  background: var(--pm-brand);
  border-color: var(--pm-brand);
  color: var(--pm-text-on-brand);
}

/* 28e · category tab bar */
.cat-pill-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  padding-bottom: 1.5rem;
  margin-bottom: 2rem;
  border-bottom: 1px solid var(--pm-border);
}

.cat-pill-bar .cat-pill {
  display: inline-flex;
  align-items: center;
  padding: 0.45rem 0.95rem;
  border-radius: var(--pm-radius-pill);
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--pm-text);
  text-decoration: none;
  background: var(--pm-surface-alt);
  transition:
    color var(--pm-duration) var(--pm-ease),
    background var(--pm-duration) var(--pm-ease);
}

.cat-pill-bar .cat-pill:hover {
  background: var(--pm-brand-tint);
  color: var(--pm-brand);
}

.cat-pill-bar .cat-pill.is-active {
  background: var(--pm-brand-tint);
  color: var(--pm-brand);
  box-shadow: inset 0 0 0 1.5px var(--pm-brand);
}

.cat-pill-all {
  color: var(--pm-text-muted);
  background: transparent;
}

.cat-pill-all:hover {
  background: var(--pm-surface-alt);
  color: var(--pm-heading);
}

/* 28f · attraction card grid */
.ttd-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1.5rem;
}

.ttd-card {
  display: flex;
  flex-direction: column;
  background: var(--pm-surface);
  border: 1.5px solid var(--pm-border);
  border-radius: var(--pm-radius-xl);
  overflow: hidden;
  box-shadow: var(--pm-shadow-sm);
  transition:
    transform var(--pm-duration) var(--pm-ease),
    box-shadow var(--pm-duration) var(--pm-ease);
}

.ttd-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--pm-shadow-md);
}

.ttd-card-media {
  display: block;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  background: var(--pm-surface-alt);
}

.ttd-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform var(--pm-duration-slow) var(--pm-ease);
}

.ttd-card:hover .ttd-card-media img {
  transform: scale(1.05);
}

.ttd-card-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 1.25rem 1.25rem 1.4rem;
}

.ttd-card-title {
  font-family: var(--pm-font-heading);
  font-size: 1.05rem;
  font-weight: 800;
  line-height: 1.25;
  color: var(--pm-heading);
  letter-spacing: -0.01em;
  margin: 0 0 0.5rem;
}

.ttd-card-desc {
  font-size: 0.85rem;
  line-height: 1.6;
  color: var(--pm-text-muted);
  margin: 0 0 1.1rem;
  flex: 1;
}

/* higher specificity + !important so the theme's global `a` colour (#333) can't win */
.ttd-card .ttd-more,
.ttd-card .ttd-more:link,
.ttd-card .ttd-more:visited {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-top: auto;
  align-self: flex-start;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--pm-brand) !important;
  text-decoration: none;
}

.ttd-card .ttd-more svg {
  width: 15px;
  height: 15px;
  transition: transform var(--pm-duration) var(--pm-ease);
}

.ttd-card .ttd-more:hover {
  color: var(--pm-brand-hover) !important;
}

.ttd-card .ttd-more:hover svg {
  transform: translateX(3px);
}

/* 28g · responsive */
@media (max-width: 767px) {
  .ttd-grid {
    grid-template-columns: 1fr;
    gap: 1.1rem;
  }

  .pg-directory {
    padding: 1.75rem 0 2.5rem !important;
  }
}

/* ============================================================================
   29 · BATCH UI FIXES (site-wide) — request items #1-3, 5, 7-13.
   Additive overrides placed last so they win. Grouped by item.
   (Item 4 padding = done by user; item 6 Step-3 copy = user doing manually.)
   ============================================================================ */

/* fix stale token on the redesign pp-card hover (var(--sh-md) never existed) */
.pg-sec .pp-card:hover,
.pm-sec .pp-card:hover {
  box-shadow: var(--pm-shadow-md);
}

/* 29.1b + 29.10a · Logo text uppercase */
.nav-brand-name,
.nav-brand-name span {
  text-transform: uppercase;
}

/* 29.10b · Top nav links → 14px */
.elementor-widget-awayday-header-nav-widget .navbar-nav .nav-link {
  font-size: 14px;
}

/* 29.2 · Homepage hero legibility — larger heading/subtext + text-shadow.
   #fff !important also beats Elementor kit-8 `h1{color:#333}`. */
.hero-h1 {
  font-size: clamp(2.1rem, 4.8vw, 3.35rem) !important;
  color: var(--pm-neutral-0) !important;
  text-shadow:
    0 2px 14px rgb(0, 0, 0, 0.55),
    0 1px 3px rgb(0, 0, 0, 0.4);
  text-transform: uppercase !important;
}

.hero-sub {
  font-size: 1.05rem !important;
  color: rgb(255, 255, 255, 0.82) !important;
  text-shadow: 0 1px 8px rgb(0, 0, 0, 0.5);
}

/* 29.2b + 29.3 · Trust bar — consistent everywhere; descriptor normalized
   smaller + recolored (also fixes the invalid `var(---pm-font-size-sm)`). */
.trust-main,
.blog-trust-main,
.faq-trust-main {
  font-size: 13px;
  font-weight: 700;
  color: rgb(255, 255, 255, 0.92);
}

.trust-hint,
.blog-trust-hint,
.faq-trust-hint {
  font-size: 12px !important;
  color: #f3f6f6 !important;
}

/* 29.5 · Orange eyebrow labels — >=12px + uppercase, every variant/page */
.hero-eyebrow,
.blog-eyebrow,
.pg-eyebrow,
.pm-eyebrow,
.owner-label,
.faq-eyebrow,
.eyebrow,
.section-eyebrow {
  font-size: 12px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em;
}

/* 29.9b · Search map fills the viewport height and stays in view while scrolling
   (wrapper is already position:sticky; top:94px). */
.results-map-wrapper.split .map-wrapper.fresh-map-wrapper {
  align-self: start;
}

.map-wrapper.fresh-map-wrapper,
.map-container.map-wrapper,
#map-div,
#map {
  height: calc(100vh - 94px) !important;
}

/* 29.11 · Modals — remove the orange-circle close button; plain neutral X. */
#amenities-modal .btn.btn-clear.float-end,
#share-modal .btn.btn-clear.float-end,
.modal .btn.btn-clear.float-end {
  border: none !important;
  border-radius: 0 !important;
  width: auto !important;
  height: auto !important;
  padding: 4px 8px !important;
  background: transparent !important;
}

.modal .btn.btn-clear .close-cross {
  color: var(--pm-text) !important;
}

/* 29.12 · PDP "Show all photos" overlay — solid, readable button (the theme's
   .btn-outline-primary was rendering it as bare orange text over the photo). */
a.img-gal-open,
.img-gal-open.btn {
  background: var(--pm-action) !important;
  color: var(--pm-neutral-0) !important;
  border: none !important;
  border-radius: var(--pm-radius-pill) !important;
  box-shadow: var(--pm-shadow-md) !important;
  padding: 0.6rem 1.15rem !important;
  font-size: 13px !important;
}

a.img-gal-open:hover {
  background: var(--pm-brand-hover) !important;
  color: var(--pm-neutral-0) !important;
}

/* 29.13 · All-images modal close (X) — sane size (was font-size:212px). */
.close {
  font-size: 30px !important;
  width: auto !important;
  height: auto !important;
  line-height: 1 !important;
}

/* ============================================================================
   30 · HERO CONSISTENCY (site-wide) — normalize all navbar-page heroes to the
   homepage reference. Six independent families existed (hero, pg + pg-sec,
   pm-hero, about, faq, blog). This grafts one set of values onto every family.
   Two heading patterns: home/about/faq/blog style the class directly; pg and pm
   style the inner .elementor-heading-title.
   Supersedes the partial §29.2/29.3/29.5 hero rules (later-in-file wins).
   ============================================================================ */

/* 30.1 · Eyebrow — 12px peach uppercase with a leading dash. */
.hero-eyebrow,
.blog-eyebrow,
.av-about .about-hero-eyebrow,
.pm-about .about-hero-eyebrow,
.faq-hero-eyebrow,
.pg-sec .hero-eyebrow,
.pm-sec .hero-eyebrow,
.pg-eyebrow .elementor-heading-title,
.pm-eyebrow .elementor-heading-title,
.pm-hero-eyebrow .elementor-heading-title {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.5rem !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em !important;
  color: var(--pm-accent) !important;
  margin-bottom: 1rem !important;
}

/* dash for families whose eyebrow lacks a ::before (pg/pm inner-heading) */
.pg-eyebrow .elementor-heading-title::before,
.pm-eyebrow .elementor-heading-title::before,
.pm-hero-eyebrow .elementor-heading-title::before {
  content: '' !important;
  width: 20px;
  height: 1.5px;
  background: var(--pm-accent) !important;
  display: block;
  flex-shrink: 0;
}

/* 30.2 · H1 — big, all-caps, white, with a peach italic accent phrase. */
.hero-h1,
.blog-h1,
.av-about .about-hero-h1,
.pm-about .about-hero-h1,
.faq-hero-h1,
.pg-sec .hero-h1,
.pm-sec .hero-h1,
.pg-hero-title .elementor-heading-title,
.pm-hero-title .elementor-heading-title,
.pm-hero-h1 .elementor-heading-title {
  font-size: clamp(2.1rem, 4.8vw, 3.35rem) !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  color: var(--pm-neutral-0) !important;
  letter-spacing: -0.02em !important;
  line-height: 1.06 !important;
  text-shadow: 0 2px 14px rgb(0, 0, 0, 0.5);
}

.hero-h1 em,
.blog-h1 em,
.av-about .about-hero-h1 em,
.pm-about .about-hero-h1 em,
.faq-hero-h1 em,
.pg-sec .hero-h1 em,
.pm-sec .hero-h1 em,
.pg-hero-title em,
.pm-hero-title em,
.pg-hero-title .elementor-heading-title em,
.pm-hero-title .elementor-heading-title em,
.pm-hero-h1 em,
.pm-hero-h1 .elementor-heading-title em {
  font-style: italic !important;
  font-weight: 700 !important;
  color: var(--pm-accent) !important;
  text-transform: uppercase !important;
}

/* 30.3 · Sub — readable white with a soft shadow. */
.hero-sub,
.blog-sub,
.av-about .about-hero-sub,
.pm-about .about-hero-sub,
.faq-hero-sub,
.pg-sec .hero-sub,
.pm-sec .hero-sub,
.pm-hero-sub p,
.pm-hero-sub .elementor-widget-container {
  font-size: 1.05rem !important;
  color: rgb(255, 255, 255, 0.82) !important;
  line-height: 1.8 !important;
  max-width: 520px;
  text-shadow: 0 1px 8px rgb(0, 0, 0, 0.5);
}

/* Things-To-Do: its hero sub uses the dark `.pg-sub` on a dark hero — lighten it
   only inside a hero (leave `.pg-sub` alone in light content sections). */
.pg-hero .pg-sub,
.pm-hero .pm-sub,
.pg-hero .pg-sub p,
.pm-hero .pm-sub p,
.pg-hero .pg-sub .elementor-widget-container,
.pm-hero .pm-sub .elementor-widget-container {
  color: rgb(255, 255, 255, 0.82) !important;
  text-shadow: 0 1px 8px rgb(0, 0, 0, 0.5);
}

/* 30.4 · Trust bar — one dark background across all families. */
.hero-trust-bar,
.pg-sec .hero-trust-bar,
.pm-sec .hero-trust-bar,
.blog-trust-bar,
.av-about .about-trust-bar,
.pm-about .about-trust-bar,
.faq-trust-bar,
.pm-trust-bar {
  background: var(--pm-brand-ink) !important;
  border-top: 1px solid rgb(255, 255, 255, 0.08);
}

/* trust title */
.trust-main,
.blog-trust-main,
.av-about .about-trust-main,
.pm-about .about-trust-main,
.faq-trust-main,
.pm-trust-main,
.pg-sec .trust-main,
.pm-sec .trust-main {
  font-size: 13px !important;
  font-weight: 700 !important;
  color: rgb(255, 255, 255, 0.92) !important;
}

/* trust descriptor (also fixes the invalid var(---pm-font-size-*) bug) */
.trust-hint,
.blog-trust-hint,
.av-about .about-trust-hint,
.pm-about .about-trust-hint,
.faq-trust-hint,
.pm-trust-hint,
.pg-sec .trust-hint,
.pm-sec .trust-hint {
  font-size: 12px !important;
  color: #f3f6f6 !important;
}

/* flat icons everywhere — strip the boxed tile on pg/pm variants */
.pg-sec .trust-ico,
.pm-sec .trust-ico,
.pm-trust-ico,
.pm-trust-pill .ico {
  background: none !important;
  width: auto !important;
  height: auto !important;
  min-width: 0 !important;
  min-height: 0 !important;
  border-radius: 0 !important;
  color: var(--pm-accent) !important;
  padding: 0 !important;
}

.hero-trust-bar .trust-ico svg,
.pg-sec .trust-ico svg,
.pm-sec .trust-ico svg,
.pm-trust-ico svg,
.blog-trust-ico svg,
.av-about .about-trust-ico svg,
.pm-about .about-trust-ico svg,
.faq-trust-ico svg {
  width: 18px !important;
  height: 18px !important;
}

/* 30.5 · Hero section — consistent height + top padding (keep each page's bg). */
#hero,
.pg-hero,
.pm-hero,
#about-hero,
#faq-hero,
.blog-hero {
  min-height: 520px !important;
  padding-top: var(--hero-padding-y) !important;
}

/* 30.6 · Beat the global "Force Montserrat on every heading" rule (line ~58):
   `body .elementor .elementor-widget-heading .elementor-heading-title
   { text-transform:none !important }` is specificity (0,3,1) and was cancelling
   the uppercase on the Elementor-heading hero families (pg / pm). Match its
   specificity so later source order wins → uppercase sticks. Custom-HTML families
   (about/faq/blog) already win via §30.1/30.2. */
body .elementor .pg-eyebrow .elementor-heading-title,
body .elementor .pm-eyebrow .elementor-heading-title,
body .elementor .pm-hero-eyebrow .elementor-heading-title,
body .elementor .pg-hero-title .elementor-heading-title,
body .elementor .pm-hero-title .elementor-heading-title,
body .elementor .pm-hero-h1 .elementor-heading-title {
  text-transform: uppercase !important;
}

/* 30.7 · pg-kit hero subtext size — the base `.pg-sub … p` (.93rem) out-specifies
   §30.3, so lift it inside a hero to the reference 1.05rem. */
.pg-hero .pg-sub .elementor-widget-container p,
.pm-hero .pm-sub .elementor-widget-container p,
.pg-hero .pg-sub p,
.pm-hero .pm-sub p {
  font-size: 1.05rem !important;
}

.pm-sec .ico-lg {
  width: 20px !important;
  height: 20px !important;
}

/* Search split view: the plugin sets overflow:hidden on the results+map grid,
   which makes it the clipping context and BREAKS the map's position:sticky.
   overflow-x:clip keeps horizontal containment without creating a scroll
   container, so the sticky map works. */
.results-map-wrapper.split {
  overflow: clip visible !important;
}

/* Stretched Container Utility (replicating results-map-wrapper padding/margin layout) */
.stretched-container,
.pm-stretched-container {
  width: 100% !important;
  max-width: 100% !important;
  margin-inline: auto !important;
  padding-left: 15px !important;
  padding-right: 15px !important;
}

@media (min-width: 768px) {
  .stretched-container,
  .pm-stretched-container {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
}

@media (min-width: 1440px) {
  .stretched-container,
  .pm-stretched-container {
    padding-left: 45px !important;
    padding-right: 45px !important;
  }
}

@media (min-width: 1920px) {
  .stretched-container,
  .pm-stretched-container {
    padding-left: calc(45px + (100vw - 1920px) / 2) !important;
    padding-right: calc(45px + (100vw - 1920px) / 2) !important;
  }
}

.paginationjs.paginationjs-big .paginationjs-pages li:hover > a {
  height: 36px;
  line-height: 36px;
}

.available_units_pagination .paginationjs-pages li:hover > a {
  background: var(--primary-bg);
  border-color: var(--primary-bg);
  color: #fff;
}

#bottom-pagination-wrapper {
  margin-bottom: 2rem;
}

.fresh-booking {
  background-color: transparent !important;
}

/* ==========================================================================
   >>> themes/avada-redesign/site.css
   ========================================================================== */

/* ============================================================================
   SITE OVERRIDES — theme: avada-redesign
   ============================================================================
   Avada-ONLY styling: page-id scoping, Elementor element ids, hero background
   images, compiled/one-off pages. Anything generic belongs in core/base.css.
   Receives sections drained from _legacy.css (Phase C). Loads LAST in the
   bundle, so rules here always win.
   ============================================================================ */

/* Contact page (page-id-568): the form widget's own Elementor Style settings
   force an underline look (bottom-border only, radius 0) that out-specifies the
   boxed global field style above. Re-assert boxed + focus ring, scoped to this
   page so every other form on the site is left alone. */
.page-id-568 .elementor-field-textual {
  border: 1.5px solid var(--pm-border-strong) !important;
  border-radius: var(--pm-radius-md) !important;
  background-color: var(--pm-surface) !important;
  padding: 0.7rem 1rem !important;
  font-size: 0.9rem !important;
  line-height: 1.5 !important;
}

.page-id-568 .elementor-field-textual:focus {
  border-color: var(--pm-brand) !important;
  box-shadow: 0 0 0 3px var(--pm-brand-glow) !important;
  outline: 0 !important;
}

.ui-datepicker-prev span {
  background-image: url('https://raw.githubusercontent.com/google/material-design-icons/master/png/navigation/arrow_forward_ios/materialiconsoutlined/18dp/1x/outline_arrow_forward_ios_black_18dp.png') !important;
}

/* Hero image comes from the wrapping Elementor container's Background control;
   this gradient stays for text contrast over the transparent inner section. */
.av-about #about-hero,
.pm-about #about-hero {
  background: linear-gradient(
    to bottom,
    rgb(10, 10, 8, 0.2) 0,
    rgb(10, 10, 8, 0.44) 50%,
    rgb(10, 10, 8, 0.86) 100%
  );
  min-height: 520px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 80px 0 0;
  position: relative;
}

/* ---------------------------------------------------------
   14 · PAGE: FAQ
--------------------------------------------------------- */
/* Hero image comes from the wrapping Elementor container's Background control;
   this gradient stays for text contrast over the transparent inner section. */
#faq-hero {
  background: linear-gradient(
    to bottom,
    rgb(10, 10, 8, 0.22) 0,
    rgb(10, 10, 8, 0.46) 50%,
    rgb(10, 10, 8, 0.86) 100%
  );
  min-height: 420px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 80px 0 0;
  position: relative;
}

#map-section .map-image-container {
  background-image: url('https://dev-avada-properties.pantheonsite.io/wp-content/uploads/2024/09/SeviervilleMap.png') !important;
}

/* ─── PAGE HEADER · text-only (opt-in, real Elementor widgets) ───
   The #blog-hero / #blog-page-heading rules above assume markup
   that isn't on the page. Build this instead: a Section above the
   Posts widget, CSS class `blog-header-section` on the Section,
   containing:
     1. Heading widget (H2) — CSS class `blog-header-title`
     2. Text Editor widget, one line — CSS class `blog-header-sub`
   No background image needed. */
.page-id-17379 .blog-header-section {
  padding: 2.75rem 0 0.5rem;
}

.page-id-17379 .blog-header-title .elementor-heading-title {
  position: relative;
  font-size: clamp(1.8rem, 4vw, 2.75rem);
  font-weight: 900;
  letter-spacing: -0.025em;
  line-height: 1.1;
  color: var(--pm-heading);
  margin-bottom: 0.6rem;
  padding-bottom: 1rem;
}

.page-id-17379 .blog-header-title .elementor-heading-title::before {
  content: 'AVADA PROPERTIES BLOG';
  display: block;
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 0.18em;
  color: var(--pm-accent);
  margin-bottom: 0.6rem;
}

.page-id-17379 .blog-header-title .elementor-heading-title::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 60px;
  height: 3px;
  background: var(--pm-brand);
  border-radius: 2px;
}

.page-id-17379 .blog-header-sub p {
  font-size: 1rem;
  line-height: 1.7;
  color: var(--pm-text-muted);
  max-width: 620px;
  margin-top: 0.5rem;
}

@media (max-width: 767px) {
  .page-id-17379 .blog-header-title .elementor-heading-title {
    font-size: 1.6rem;
  }
}

/* ─── NEWSLETTER SIGNUP · opt-in, real Elementor widgets ─────────
   New Section below the posts grid (or before the footer), CSS
   class `awd-newsletter` on the Section. Inside:
     1. Heading widget — CSS class `nl-heading`
     2. Text Editor widget, one line — CSS class `nl-copy`
     3. Form / Button widget — CSS class `nl-btn` (styles both a
        plain Button and an Elementor Pro Form's submit button) */
.page-id-17379 .awd-newsletter,
.page-id-17379 .pm-newsletter {
  background: linear-gradient(135deg, var(--pm-brand-tint) 0%, var(--pm-surface) 65%);
  border: 1.5px solid rgb(var(--pm-brand-rgb), 0.22);
  border-radius: var(--pm-radius-xl);
  padding: 2rem 2.2rem;
  position: relative;
  overflow: hidden;
  margin: 2.5rem 0;
}

.page-id-17379 .awd-newsletter::before,
.page-id-17379 .pm-newsletter::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--pm-brand), var(--pm-accent), transparent 65%);
}

.page-id-17379 .awd-newsletter .nl-heading .elementor-heading-title,
.page-id-17379 .pm-newsletter .nl-heading .elementor-heading-title {
  font-size: 1.15rem;
  font-weight: 900;
  color: var(--pm-brand-ink);
  margin-bottom: 0.45rem;
  letter-spacing: -0.02em;
}

.page-id-17379 .awd-newsletter .nl-copy p,
.page-id-17379 .pm-newsletter .nl-copy p {
  font-size: 0.85rem;
  color: var(--pm-text-muted);
  max-width: 480px;
  line-height: 1.65;
  margin-bottom: 0;
}

.page-id-17379 .awd-newsletter .nl-btn .elementor-button,
.page-id-17379 .pm-newsletter .nl-btn .elementor-button,
.page-id-17379 .awd-newsletter .nl-btn .elementor-field-type-submit button,
.page-id-17379 .pm-newsletter .nl-btn .elementor-field-type-submit button {
  background: var(--pm-brand);
  border-radius: var(--pm-radius-md);
  font-weight: 800;
  margin-top: 1.1rem;
}

.page-id-17379 .awd-newsletter .nl-btn .elementor-button:hover,
.page-id-17379 .pm-newsletter .nl-btn .elementor-button:hover,
.page-id-17379 .awd-newsletter .nl-btn .elementor-field-type-submit button:hover,
.page-id-17379 .pm-newsletter .nl-btn .elementor-field-type-submit button:hover {
  background: var(--pm-brand-hover);
}

.page-id-17379 .awd-newsletter .nl-btn .elementor-field-group input,
.page-id-17379 .pm-newsletter .nl-btn .elementor-field-group input {
  border-radius: var(--pm-radius-md);
  border: 1.5px solid var(--pm-border-strong);
  padding: 0.6rem 1rem;
}

@media (max-width: 767px) {
  .page-id-17379 .awd-newsletter {
    padding: 1.4rem 1.2rem;
  }
}

/* ─── FINAL CTA · opt-in ──────────────────────────────────────────
   Add Elementor's native "Call to Action" widget at the bottom of
   the page. It already inherits the global .elementor-cta styling
   (see section 09); this just adds page spacing so it doesn't sit
   flush against the footer. CSS class `awd-blog-cta` on the widget. */
.page-id-17379 .awd-blog-cta,
.page-id-17379 .pm-blog-cta {
  margin: 2.5rem 0;
}

/* ── HERO ── */
/* Backgrounds (image + overlay) are set per page via Elementor's Container
   Background / Background Overlay controls; CSS keeps layout only. */
.pm-hero {
  padding: 0;
}

.pg-hero,
.pm-hero {
  min-height: 520px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 72px 0 0 !important;
  position: relative;
}

.pg-bottom-cta,
.pm-bottom-cta {
  background: linear-gradient(135deg, rgb(8, 17, 14, 0.84) 0%, rgb(20, 35, 28, 0.78) 100%);
  padding: 80px 0;
  text-align: center;
  position: relative;
}

.pg-contact-hero,
.pm-contact-hero {
  /* image + overlay via Elementor Background controls */
  min-height: 420px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 80px 0 0;
  position: relative;
}

/* Contact sidebar: keep it under the header; on desktop it sticks just BELOW the
   header (compact-header offset) instead of scrolling up behind it. */
.page-id-568 .pg-contact-main .contact-info-card,
.page-id-568 .pm-contact-main .contact-info-card {
  position: relative;
  z-index: 1;
}

@media (min-width: 992px) {
  .page-id-568 .pg-contact-main .pg-2col {
    align-items: stretch;
  }

  .page-id-568 .pg-contact-main .contact-info-card {
    position: sticky;
    top: calc(var(--pm-header-offset, 48px) + 24px);
  }
}

/* ============================================================================
   28 · THINGS TO DO — directory (index → city hub → category leaf)
   Reuses the .pg-hero kit for the hero; adds a per-page hero image, the
   city/category tab bars, and the attraction-card grid. Tokens only.
   Component wrappers (.ttd-nav-list, .ttd-grid) are single HTML widgets
   emitted by the compiler; everything below styles their inner markup.
   ============================================================================ */

/* 28a · Things-To-Do hero images now come from each page's Elementor Container
   Background control (previously a grouped page-id CSS override). */

/* ============================================================================
   29 · BATCH UI FIXES (site-wide) — request items #1-3, 5, 7-13.
   Additive overrides placed last so they win. Grouped by item.
   (Item 4 padding = done by user; item 6 Step-3 copy = user doing manually.)
   ============================================================================ */

/* 29.8 · Footer (Elementor 105) — grey text -> #f4f6f6; orange links untouched. */
.elementor-105 .elementor-heading-title,
.elementor-105 .elementor-icon-list-text,
.elementor-105 .elementor-widget-text-editor,
.elementor-105 .elementor-widget-text-editor p,
.elementor-105 .footer-brand-tag,
.elementor-105 .footer-brand-desc,
.elementor-105 .footer-copy,
.elementor-105 .elementor-icon-list-item a {
  color: var(--pm-neutral-50) !important;
}

/* ============================================================================
   22R · PAGE: CURRENT WEATHER (page-id-17862) — rebuilt
   Native pg-hero + three compiler HTML leaves: .wx-map-pills (CSS-only radio
   tabs holding the 3 Windy iframes), .wx-season-grid (4 season cards carrying
   the mandated seasonal text verbatim), .wx-cta-grid (former sidebar CTAs as
   a card row). Tokens only.
   ============================================================================ */

/* hero background: set via the page's Elementor Container Background control */

/* section bands */
.pg-wx-maps,
.pm-wx-maps {
  background: var(--pm-surface);
  padding: 2.5rem 0 3rem !important;
}

.pg-wx-seasons,
.pm-wx-seasons {
  background: var(--pm-surface-alt);
  padding: 2.5rem 0 3rem !important;
}

.pg-wx-plan,
.pm-wx-plan {
  background: var(--pm-surface);
  padding: 2.5rem 0 3.5rem !important;
}

/* ── city tabs (radio hack: input:checked drives pill + panel state) ──────── */
.wx-map-pills .wx-radio,
.pm-wx-map-pills .pm-wx-radio {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.wx-pill-row,
.pm-wx-pill-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 1.25rem 0 1rem;
}

.wx-pill,
.pm-wx-pill {
  display: inline-flex;
  align-items: center;
  padding: 0.5rem 1.1rem;
  border-radius: var(--pm-radius-pill);
  border: 1.5px solid var(--pm-border-strong);
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--pm-heading);
  background: var(--pm-surface);
  cursor: pointer;
  transition:
    color var(--pm-duration) var(--pm-ease),
    border-color var(--pm-duration) var(--pm-ease),
    background var(--pm-duration) var(--pm-ease);
}

.wx-pill:hover,
.pm-wx-pill:hover {
  border-color: var(--pm-brand);
  color: var(--pm-brand);
}

#wx-gat:checked ~ .wx-pill-row .wx-pill[for='wx-gat'],
#wx-gat:checked ~ .pm-wx-pill-row .pm-wx-pill[for='wx-gat'],
#wx-pf:checked ~ .wx-pill-row .wx-pill[for='wx-pf'],
#wx-pf:checked ~ .pm-wx-pill-row .pm-wx-pill[for='wx-pf'],
#wx-sev:checked ~ .wx-pill-row .wx-pill[for='wx-sev'],
#wx-sev:checked ~ .pm-wx-pill-row .pm-wx-pill[for='wx-sev'] {
  background: var(--pm-brand);
  border-color: var(--pm-brand);
  color: var(--pm-text-on-brand);
}

#wx-gat:checked ~ .wx-panel-gat,
#wx-gat:checked ~ .pm-wx-panel-gat,
#wx-pf:checked ~ .wx-panel-pf,
#wx-pf:checked ~ .pm-wx-panel-pf,
#wx-sev:checked ~ .wx-panel-sev,
#wx-sev:checked ~ .pm-wx-panel-sev {
  display: block;
}

/* map card: responsive iframe, clip the windy footer strip */
.wx-panel,
.pm-wx-panel {
  display: none;
  border: 1.5px solid var(--pm-border);
  border-radius: var(--pm-radius-xl);
  overflow: hidden;
  box-shadow: var(--pm-shadow-sm);
  background: var(--pm-surface-alt);
  height: 520px;
}

.wx-panel iframe,
.pm-wx-panel iframe {
  width: 100%;
  height: 570px;

  /* taller than the card: hides windy's bottom strip */
  border: 0;
  display: block;
}

/* ── season cards ─────────────────────────────────────────────────────────── */
.wx-season-grid,
.pm-wx-season-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 1.25rem;
  margin-top: 1.5rem;
}

.wx-season-card,
.pm-wx-season-card {
  background: var(--pm-surface);
  border: 1.5px solid var(--pm-border);
  border-top: 3px solid var(--pm-border-strong);
  border-radius: var(--pm-radius-lg);
  box-shadow: var(--pm-shadow-sm);
  padding: 1.4rem 1.3rem;
}

/* seasonal accents */
.wx-season-card.wx-spring,
.pm-wx-season-card.pm-wx-spring {
  border-top-color: var(--pm-success-strong, #22a370);
}

.wx-season-card.wx-summer,
.pm-wx-season-card.pm-wx-summer {
  border-top-color: var(--pm-star);
}

.wx-season-card.wx-fall,
.pm-wx-season-card.pm-wx-fall {
  border-top-color: var(--pm-brand);
}

.wx-season-card.wx-winter,
.pm-wx-season-card.pm-wx-winter {
  border-top-color: var(--pm-info);
}

.wx-season-head,
.pm-wx-season-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.6rem;
}

.wx-season-name,
.pm-wx-season-name {
  font-size: 1.02rem;
  font-weight: 900;
  color: var(--pm-heading);
  letter-spacing: -0.01em;
  margin: 0;
}

.wx-temp-chip,
.pm-wx-temp-chip {
  background: var(--pm-brand-tint);
  color: var(--pm-brand);
  border-radius: var(--pm-radius-pill);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  padding: 0.25rem 0.65rem;
  white-space: nowrap;
}

.wx-season-copy,
.pm-wx-season-copy {
  font-size: 0.85rem;
  line-height: 1.7;
  color: var(--pm-text-muted);
  margin: 0;
}

.wx-season-note,
.pm-wx-season-note {
  grid-column: 1 / -1;
  font-size: 0.9rem;
  line-height: 1.7;
  color: var(--pm-text);
  background: var(--pm-brand-tint);
  border-left: 3px solid var(--pm-brand);
  border-radius: var(--pm-radius-md);
  padding: 0.9rem 1.1rem;
  margin: 0.25rem 0 0;
}

/* ── plan-your-stay CTA cards (former sidebar) ────────────────────────────── */
.wx-cta-grid,
.pm-wx-cta-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1.25rem;
  margin-top: 1.5rem;
}

.wx-cta-card,
.pm-wx-cta-card {
  display: flex;
  flex-direction: column;
  background: var(--pm-surface);
  border: 1.5px solid var(--pm-border);
  border-radius: var(--pm-radius-xl);
  overflow: hidden;
  box-shadow: var(--pm-shadow-sm);
  text-decoration: none !important;
  transition:
    transform var(--pm-duration) var(--pm-ease),
    box-shadow var(--pm-duration) var(--pm-ease);
}

.wx-cta-card:hover,
.pm-wx-cta-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--pm-shadow-md);
}

.wx-cta-media,
.pm-wx-cta-media {
  display: block;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--pm-surface-alt);
}

.wx-cta-media img,
.pm-wx-cta-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform var(--pm-duration-slow) var(--pm-ease);
}

.wx-cta-card:hover .wx-cta-media img,
.pm-wx-cta-card:hover .pm-wx-cta-media img {
  transform: scale(1.05);
}

.wx-cta-body,
.pm-wx-cta-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 1.1rem 1.15rem 1.25rem;
}

.wx-cta-title,
.pm-wx-cta-title {
  font-size: 1rem;
  font-weight: 900;
  color: var(--pm-heading);
  letter-spacing: -0.01em;
}

.wx-cta-desc,
.pm-wx-cta-desc {
  font-size: 0.8rem;
  color: var(--pm-text-muted);
  margin: 0.3rem 0 0.9rem;
}

.wx-cta-btn,
.pm-wx-cta-btn {
  margin-top: auto;
  align-self: flex-start;
  background: var(--pm-brand);
  color: var(--pm-text-on-brand);
  border-radius: var(--pm-radius-md);
  font-size: 0.78rem;
  font-weight: 800;
  padding: 0.5rem 1rem;
  transition: background var(--pm-duration) var(--pm-ease);
}

.wx-cta-card:hover .wx-cta-btn,
.pm-wx-cta-card:hover .pm-wx-cta-btn {
  background: var(--pm-brand-hover);
}

/* ── responsive ───────────────────────────────────────────────────────────── */
@media (max-width: 767px) {
  .wx-panel {
    height: 400px;
  }

  .wx-panel iframe {
    height: 450px;
  }

  .pg-wx-maps,
  .pg-wx-seasons,
  .pg-wx-plan {
    padding: 1.75rem 0 2.25rem !important;
  }
}

/* ── /vacation-specials/ (page-id-1158): consistent container width ─────────
   pg-featured-offer and pg-current-offers fell back to the kit's 1200px
   content width; every other section is the compiler's 1140px boxed. Elementor
   sets --content-width per element in its post CSS, so override on the
   elements themselves with !important. */
.page-id-1158 .pg-featured-offer,
.page-id-1158 .pm-featured-offer,
.page-id-1158 .pg-current-offers,
.page-id-1158 .pm-current-offers,
.page-id-1158 .pg-featured-offer .e-con-boxed,
.page-id-1158 .pm-featured-offer .e-con-boxed,
.page-id-1158 .pg-current-offers .e-con-boxed,
.page-id-1158 .pm-current-offers .e-con-boxed,
.page-id-1158 .pg-featured-offer > .e-con,
.page-id-1158 .pm-featured-offer > .e-con,
.page-id-1158 .pg-current-offers > .e-con,
.page-id-1158 .pm-current-offers > .e-con {
  --content-width: 1140px !important;
}

/* full-width (non-boxed) inner containers in those sections get capped too */
.page-id-1158 .pg-featured-offer > .e-con-full,
.page-id-1158 .pm-featured-offer > .e-con-full,
.page-id-1158 .pg-current-offers > .e-con-full,
.page-id-1158 .pm-current-offers > .e-con-full {
  max-width: 1140px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* specials carousels ship 64px top+bottom padding each (128px between two
   stacked carousels) — tighten on this page */
.page-id-1158 .property-carousel {
  padding-top: 20px !important;
  padding-bottom: 20px !important;
}

/* "Current Specials" band: more breathing room below the hero trust bar
   before the heading starts, and match home's off-white band tone instead
   of pure white (was the pm-bg-surface utility class from the editor). */
.page-id-1158 .elementor-element-pg00s6 {
  background: var(--pm-surface-alt) !important;
  padding-top: 96px !important;
}

.row.align-items-center:has(.step-card) {
  align-items: stretch !important;
}

.step-card {
  height: 100%;
  display: flex;
  flex-direction: column;
}

/* ============================================================================
   30 · AWAYDAY 2026-07-16 BATCH — header, footer, home testimonials band.
   ============================================================================ */

/* Header: the hamburger toggle button ships an orange border on top of its
   orange fill (redundant ring at the edge) — drop the border, keep the fill.
   Bootstrap's own .navbar-toggler border rule beats a plain override here,
   hence !important. */
.navbar-toggler {
  border: none !important;
}

/* Footer (Elementor 105): brand/contact block flex-wraps in alongside the
   four nav-link groups (Explore -> Legal) on desktop; only forced to a
   full-width row on tablet/mobile (<=991px), where it stacks above them. */
.elementor-105 .elementor-element-476c62f {
  padding: 3.5rem 0 2rem !important;
}

.elementor-105 .elementor-element-26099df {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 2rem 2.5rem !important;
}

.elementor-105 .elementor-element-951ad0a {
  flex: 1 1 260px !important;
}

.elementor-105 .elementor-element-dc2ce0e,
.elementor-105 .elementor-element-5d0c2bd,
.elementor-105 .elementor-element-d622b1d,
.elementor-105 .elementor-element-1099248 {
  flex: 1 1 180px !important;
}

@media (max-width: 991px) {
  .elementor-105 .elementor-element-951ad0a {
    flex: 1 1 100% !important;
  }
}

/* Home "What Guests Are Saying" band: darker gray section background
   (bare <section>, no class — scope via :has() to the review cards it wraps). */
body.home section:has(.review-card) {
  background: var(--pm-border) !important;
}

/* Home hero: .pg-hero-overlay was added to the inner content wrapper
   (elementor-element-9f74ad2), which only spans the bottom portion of the
   hero (it's flex-aligned to the bottom), not the outer full-bleed image
   container (elementor-element-07ffa54, its parent) — that created a visible
   seam where the overlay's box ended partway down the photo. Escalate the
   overlay to the actual image container instead, and neutralize it on the
   inner wrapper so it doesn't apply twice. */
.elementor-element-07ffa54:has(> .pg-hero-overlay),
.elementor-element-07ffa54:has(> .pm-hero-overlay) {
  position: relative;
}

.elementor-element-07ffa54:has(> .pg-hero-overlay)::before,
.elementor-element-07ffa54:has(> .pm-hero-overlay)::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgb(8, 10, 8, 0.15) 0%, rgb(8, 10, 8, 0.5) 100%);
  pointer-events: none;
  z-index: 0;
}

.elementor-element-07ffa54 > .pg-hero-overlay::before,
.elementor-element-07ffa54 > .pm-hero-overlay::before {
  content: none;
}

/* Stretched Container Utility (replicating results-map-wrapper padding/margin layout) */
.stretched-container {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 auto !important;
  padding-left: 15px !important;
  padding-right: 15px !important;
}

@media (min-width: 768px) {
  .stretched-container {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
}

@media (min-width: 1440px) {
  .stretched-container {
    padding-left: 45px !important;
    padding-right: 45px !important;
  }
}

@media (min-width: 1920px) {
  .stretched-container {
    padding-left: calc(45px + (100vw - 1920px) / 2) !important;
    padding-right: calc(45px + (100vw - 1920px) / 2) !important;
  }
}

/* Vacation Mega Menu */
.mega-menu-vacation {
  display: flex;
  gap: 2rem;
  min-width: 455px !important;
}

/* Override Omnisend form field container padding on index */
.omnisend-form-660d7cc3d35343176c4407f4-field-container-62a3147776d81914aa87ed98,
.omnisend-form-660d7cc3d35343176c4407f4-action-container-627932485028ebd8c6660c51 {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* ── Footer "Subscribe to our emails" band (Omnisend embed) ─────────────────
   Dark band restyle to the approved reference: near-black background, orange
   envelope glyph left of the copy, dark input (Omnisend inlines a light one
   with an orange border — hence !important on input/button), orange Sign up.
   Scoped structurally via :has() on the embed so it survives per-env Elementor
   element ids (dev 444d6ed, test e75aadb) and forces the band color regardless
   of each env's Elementor background setting. */
.elementor-location-footer .e-con.e-parent:has([id^='omnisend-embedded']) {
  /* the band's own surface + separators are the only non-token colors here:
     lighter than the footer's --pm-surface-darker so it reads as a distinct
     element, framed by hairlines top and bottom */
  background-color: #181818 !important;
  border-top: 1px solid #2c2c2c;
  border-bottom: 1px solid #2c2c2c;
  /* full-bleed: negate the footer's own padding (52px top, 15px sides) and the
     band's boxed max-width so it spans the footer edge-to-edge as a separate
     block; inner padding re-aligns content with the 1320px boxed grid: the
     footer's boxed sections sit at 37.5px side padding, and the band is 30px
     wider than its containing block (100%), hence the 1290px in the calc */
  width: calc(100% + 30px) !important;
  max-width: none !important;
  margin: -52px -15px 0 !important;
  padding: 2.2rem max(37.5px, calc((100% - 1290px) / 2)) !important;
}

/* text column (the child container WITHOUT the embed): make room for the glyph;
   size to content so per-env Elementor column widths can't wrap the heading */
.elementor-location-footer
  .e-con.e-parent:has([id^='omnisend-embedded'])
  > .e-con.e-child:not(:has([id^='omnisend-embedded'])) {
  position: relative;
  padding-left: 64px !important;
  justify-content: center;
  width: auto !important;
  flex: 0 0 auto !important;
  max-width: 100%;
}

/* form column takes the remaining width */
.elementor-location-footer
  .e-con.e-parent:has([id^='omnisend-embedded'])
  > .e-con.e-child:has([id^='omnisend-embedded']) {
  flex: 1 1 auto !important;
  width: auto !important;
}

.elementor-location-footer
  .e-con.e-parent:has([id^='omnisend-embedded'])
  > .e-con.e-child:not(:has([id^='omnisend-embedded']))::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  background-color: var(--pm-brand);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-10 7L2 7'/%3E%3C/svg%3E")
    center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-10 7L2 7'/%3E%3C/svg%3E")
    center / contain no-repeat;
}

.elementor-location-footer input[id^='omnisend-form'][type='email'] {
  background-color: var(--pm-surface-dark) !important;
  border: 1px solid var(--pm-neutral-700) !important;
  color: var(--pm-neutral-50) !important;
}

.elementor-location-footer input[id^='omnisend-form'][type='email']::placeholder {
  color: var(--pm-neutral-400) !important;
}

.elementor-location-footer button[id^='omnisend-form'][type='submit'] {
  background-color: var(--pm-brand) !important;
  border-color: var(--pm-brand) !important;
  color: var(--pm-text-on-brand) !important;
}

/* Tablet/mobile responsiveness: stack text and form vertically, full-width
   band, everything centered (glyph above centered text, form centered) */
@media (max-width: 991px) {
  .elementor-location-footer .e-con.e-parent:has([id^='omnisend-embedded']) {
    flex-direction: column !important;
    gap: 1.5rem !important;
    padding: 2.2rem 15px !important;
    align-items: center !important;
  }

  .elementor-location-footer
    .e-con.e-parent:has([id^='omnisend-embedded'])
    > .e-con.e-child:not(:has([id^='omnisend-embedded'])) {
    padding-left: 0 !important;
    padding-top: 0 !important;
    width: 100% !important;
    align-items: center !important;
    text-align: center !important;
  }

  .elementor-location-footer
    .e-con.e-parent:has([id^='omnisend-embedded'])
    > .e-con.e-child:not(:has([id^='omnisend-embedded']))
    .elementor-widget-container {
    text-align: center !important;
  }

  .elementor-location-footer
    .e-con.e-parent:has([id^='omnisend-embedded'])
    > .e-con.e-child:not(:has([id^='omnisend-embedded']))::before {
    position: static;
    transform: none;
    display: block;
    margin: 0 auto 1rem;
    width: 44px;
    height: 44px;
  }

  .elementor-location-footer
    .e-con.e-parent:has([id^='omnisend-embedded'])
    > .e-con.e-child:has([id^='omnisend-embedded']) {
    flex: none !important;
    width: 100% !important;
    align-items: center !important;
  }

  /* Omnisend renders its own inline layout — force it full width and centered */
  .elementor-location-footer [id^='omnisend-embedded'],
  .elementor-location-footer [id^='omnisend-embedded'] form {
    width: 100% !important;
    max-width: 480px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
}

.elementor-location-footer button[id^='omnisend-form'][type='submit']:hover {
  background-color: var(--pm-brand-hover) !important;
  border-color: var(--pm-brand-hover) !important;
}

/* ==========================================================================
   BUTTON TYPOGRAPHY — avada-redesign
   Uniform font-weight and capitalize text-transform for every button surface,
   including pm_property_management_fork plugin buttons (.mfi-btn, .svf__btn,
   .pf__btn-search, .apply-filter-btn, .mobile-search-btn, .pf__btn-filter,
   #book-now) which the fork renders without these styles.
   .img-gal-open and .prop-detail-nav-content.btn are PDP-specific buttons from
   the fork that also need these styles.
   !important is required to override base.css's `text-transform: none !important`
   on .elementor-button and .pdp-bottom-cta button.
   ========================================================================== */
.elementor-button,
.btn-or,
.btn-or-outline,
.pm-btn-brand,
.btn-bl-outline,
.btn-ghost-white,
.btn-dark,
.btn-sidebar,
.btn-sidebar-dark,
.btn-cta-primary,
.btn-cta-ghost,
.btn-search,
.btn-view,
.btn-inq,
#final-cta .btn-white,
#final-cta .btn-outline-white,
.pm-property-top-info .btn-primary,
#pdp-bottom-cta .btn-outline-primary,
#pdp-bottom-cta button,
#book-now,
.mfi-btn,
.single-version-form button.svf__btn,
.pf__btn-search,
.pf__mobile-steps .apply-filter-btn,
.mobile-search-btn,
.pf__btn-filter.active,
.side-avail-checker #avail-promo-section button,
.img-gal-open,
.prop-detail-nav-content.btn,
.reviewbtn a {
  font-weight: 700 !important;
  text-transform: capitalize !important;
}

/* .img-gal-open hover fix — base.css only covers `a.img-gal-open:hover`; the
   actual markup is a <button>, so .btn-outline-primary:hover was winning and
   applying brand-tint background, leaving the white text invisible. */
.img-gal-open.btn:hover {
  background: var(--pm-brand-hover) !important;
  color: #fff !important;
}

.top-section ul li {
  display: flex !important;
  margin: 0 15px;
  gap: 4px;
}
/* ============================================================
   AVADA PROPERTIES — DESIGN TOKENS
   ============================================================
   Single source of truth for the redesign's visual language,
   consolidated from the `:root` custom-property blocks declared
   in all 17 static design mockups (sites/avada-properties/01_design/*.html).

   Provenance / methodology:
   - Every one of the 17 design files declares its own `:root` block.
     `10_HOMEPAGE — REDESIGN.html` has the most complete version
     (extra tokens + section comments); the other 16 are subsets of it.
   - Diffed all 17 blocks token-by-token: every token name that
     recurs across multiple files resolves to the EXACT SAME value
     everywhere it appears (verified programmatically — zero
     name/value conflicts found). So this file is a safe, lossless
     UNION of all 17 files, not a judgment call between conflicting
     sources.
   - 5 tokens (`--t1`, `--pc-dark`, `--or3`, `--grn2`, `--ch3`) appear
     ONLY in the homepage file. They're kept here for completeness/
     forward-compatibility since later phases may pull them in for
     page-specific work, but they currently have no consumers in
     styling-overrides.css — see inline notes below.

   This file should contain ONLY custom-property declarations.
   styling-overrides.css consumes these via var(--token-name) and
   must not hardcode any value that has a token equivalent here.
   ============================================================ */

:root {
  /* ---------- Brand Orange — primary CTA / accent ---------- */
  --or: #ea552a; /* primary brand orange (buttons, links-on-hover, accents) */
  --or2: #c8431e; /* darker orange — hover/active state for --or */
  --or3: #ff6b3d; /* lighter/brighter orange — homepage-only accent, no current consumer */
  --or-pale: #fdf0ea; /* pale orange tint — hover backgrounds, soft badges */
  --or-glow: rgba(234, 85, 42, 0.15); /* orange glow for hover box-shadows */

  /* ---------- Charcoal — primary text / dark sections ---------- */
  --ch: #131313; /* near-black charcoal — headings, dark section backgrounds */
  --ch2: #1e1e1e; /* slightly lighter charcoal — hover state for --ch */
  --ch3: #2d2d2d; /* homepage-only tertiary charcoal, no current consumer */

  /* ---------- Backgrounds ---------- */
  --bg-white: #ffffff; /* page / card background */
  --bg-light: #f4f6f6; /* soft off-white section background */
  --bg-stone: #e7eaea; /* default hairline border / divider color */
  --bg-stone2: #d0d6d6; /* slightly darker border — used for emphasis (e.g. form fields) */

  /* ---------- Peach accent ---------- */
  --pc: #f7b583; /* peach accent — gradients, soft highlights */
  --pc-dark: #8a4a0a; /* dark peach/amber — homepage-only, no current consumer */

  /* ---------- Forest Green — secondary/nature accent only ---------- */
  --grn: #1a6b47; /* forest green — trust badges, nature-themed accents (NOT primary CTA) */
  --grn2: #22a370; /* brighter green — homepage-only, no current consumer */
  --grn-pale: #e4f5ee; /* pale green tint — soft badge backgrounds */

  /* ---------- Neutral text scale ---------- */
  --t1: #131313; /* homepage-only alias of --ch; identical value, kept for parity with source */
  --t2: #374151; /* body copy default */
  --t3: #6b7280; /* secondary / muted text */
  --t4: #9aa0a6; /* tertiary / least-emphasis text (labels, captions, placeholders) */

  /* ---------- Spacing / Radius ---------- */
  --r: 12px; /* standard card/box radius */
  --r2: 16px; /* larger radius — hero panels, prominent cards */
  --r3: 8px; /* smaller radius — buttons, pills, form fields */

  /* ---------- Shadows ---------- */
  --sh: 0 4px 24px rgba(0, 0, 0, 0.09), 0 1px 6px rgba(0, 0, 0, 0.05); /* standard card elevation */
  --sh-sm: 0 1px 8px rgba(0, 0, 0, 0.07); /* subtle elevation (chips, small widgets) */
  --sh-lg:
    0 12px 48px rgba(0, 0, 0, 0.14), 0 4px 16px rgba(0, 0, 0, 0.07); /* pronounced elevation (sticky widgets, modals) */

  /* ---------- Typography ---------- */
  --font:
    'Montserrat', system-ui, sans-serif; /* brand font, loaded from Google Fonts in every design mockup
                                                         (family=Montserrat:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,400;1,600
                                                         — identical weight/style set across all 17 files) */
}

/* ============================================================
   AVADA PROPERTIES — STYLING OVERRIDES
   ============================================================
   Phase 1: sitewide, high-leverage visual restyling of the live
   `hello-elementor` + Elementor site to match the Figma redesign,
   using only the tokens declared in theme-tokens.css. No markup,
   widget, or PHP changes are required for anything in this file.

   Load order required: theme-tokens.css MUST be enqueued before
   this file. Every value below is `var(--token)` — nothing here
   hardcodes a color/radius/shadow that has a token equivalent.

   ----------------------------------------------------------------
   WHY THIS FILE LOOKS THE WAY IT DOES — SPECIFICITY STRATEGY
   ----------------------------------------------------------------
   The live site has no existing CSS variable system to redirect
   (`--e-global-color-*` is referenced in exactly 2 places as a
   `var(..., #hardcoded-fallback)` safety net, but is never actually
   *defined* anywhere — confirmed by grepping the ~505KB combined
   Autoptimize bundle. There is nothing upstream to hook into), so
   this file targets real, confirmed-present selectors directly:

   1. STABLE STRUCTURAL CLASSES, PLAIN SPECIFICITY (no !important).
      Elementor ships the same structural/utility classes on every
      page regardless of which specific page/widget instance you're
      on: `.elementor-heading-title`, `.elementor-button`,
      `.elementor-icon-box-title`, `.elementor-icon-list-text`,
      `.elementor-field-textual`, body/link element defaults, etc.
      These were confirmed present by grepping the live scrapes
      (sites/avada-properties/02_scrapes/*.html) and the combined
      Autoptimize CSS, not assumed. Overriding them with ordinary
      class-selector specificity is enough virtually everywhere,
      because Elementor's own base rule for each of these is also
      a single class selector (e.g. `.elementor-button{...}`) — we
      match it 1-for-1 and simply win on source order (this
      stylesheet loads after Elementor's).

   2. TARGETED !important — ONLY where Elementor is known to print
      higher-specificity, PER-WIDGET-INSTANCE rules that a plain
      class selector cannot reliably beat:
        - Per-element hashed classes like `.elementor-element-d6bd393`
          (Elementor's "Custom CSS" / per-widget color-picker panels
          compile to exactly this pattern: `.elementor-element-XXXXXXX
          .elementor-button{...}` or similar 2-class chains, which
          out-specificity a single-class override). We did NOT find
          live examples of this in the current scrapes' combined
          Autoptimize bundles (the only `elementor-element-` class
          present there is the unrelated `.elementor-element-populated`
          spacing helper) — per-widget custom CSS, if Elementor is
          printing any, is more likely sitting in a page-specific
          inline `<style>` block or a per-post Autoptimize fragment
          we don't have an offline copy of. Treat the !important
          uses below as defensive, not reactive to a confirmed
          collision, and revisit if a specific page still shows the
          old color/radius after this file loads.
        - Inline `style="..."` attributes (Elementor's color/typography
          controls sometimes render this way for icon SVG `fill`,
          image-box backgrounds, etc.). CSS — even with !important —
          cannot beat an inline `style` attribute. Anywhere we
          suspect this (noted inline below), it's flagged as a
          phase-2 follow-up rather than papered over with a guess.
      Every !important below has an inline comment explaining the
      specific instance-level rule it's defending against.

   3. THINGS DELIBERATELY LEFT ALONE in this pass:
        - The mega menu plugin (`.uc-mega_menu-*`, `ucaddon_mega_menu`)
          has its own complex positioning/transition CSS. We only
          touch link color/typography inside it, never layout,
          position, or z-index rules, to avoid breaking its JS-driven
          open/close behavior.
        - The custom `.property_card` widget (homepage property
          carousel) was only ever observed in the scrapes in its
          unrendered `.property_card.skeleton` loading state (it's
          populated client-side via `pm-ajax.php`). We style only
          the outer card chrome (background/radius/shadow), which is
          confirmed from its real CSS rule
          (`.property_card{background-color:#fff;border-radius:5px;
          box-shadow:...}`) — see the flagged TODO below for why we
          do not attempt to style its internal title/price/badge
          markup sight-unseen.
        - Page-specific section layout (hero composition, multi-step
          forms, sticky trip-summary widgets, etc.) is explicitly out
          of scope for this pass per the project brief — phase 2+.

   ============================================================ */

/* ============================================================
   1. GLOBAL RESETS — body, headings, links, images
   ============================================================ */

body {
  font-family: var(--font);
  color: var(--t2);
  background-color: var(--bg-light);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--font);
  color: var(--ch);
  line-height: 1.2;
}

/* Base reset on the live theme sets `a{color:#c36}` globally with no
   semantic distinction. The design system itself treats links as
   `color:inherit` and relies on component-specific classes (nav,
   footer, buttons, etc. — all handled in their own sections below)
   for color. This rule is only the *fallback* for plain inline
   links inside body copy (legal pages, blog posts) that don't carry
   one of those component classes — chosen deliberately rather than
   left as the old magenta default, since the magenta has no place in
   the new palette. */
a {
  color: var(--or);
  text-decoration: none;
  transition: color 0.15s ease;
}
a:hover,
a:focus {
  color: var(--or2);
  text-decoration: underline;
}

img {
  max-width: 100%;
}

/* ============================================================
   2. ELEMENTOR HEADINGS (.elementor-widget-heading)
   ============================================================
   Confirmed present on every scraped page. Elementor's own base
   rule (`.elementor-heading-title{line-height:1;margin:0;padding:0}`)
   is a single class selector — we match its specificity exactly and
   win on source order, no !important needed.
   ============================================================ */

.elementor-heading-title {
  font-family: var(--font);
  color: var(--ch);
}

/* ============================================================
   3. BUTTONS (.elementor-button)
   ============================================================
   Live default (confirmed in the combined Autoptimize CSS):
     .elementor-button{background-color:#69727d;border-radius:3px;
       color:#fff;padding:12px 24px;...}
   Redesign default button is the solid brand-orange button
   (`.btn-or` in the design files: var(--or) bg, var(--r3) radius,
   700-weight Montserrat, 2px self-colored border, darken-on-hover).
   ============================================================ */

.elementor-button {
  background-color: var(--or);
  border: 2px solid var(--or);
  border-radius: var(--r3);
  color: #fff;
  font-family: var(--font);
  font-weight: 700;
  letter-spacing: 0.01em;
  transition:
    background-color 0.18s ease,
    border-color 0.18s ease,
    color 0.18s ease,
    box-shadow 0.18s ease,
    transform 0.15s ease;
}

.elementor-button:hover,
.elementor-button:focus {
  background-color: var(--or2);
  border-color: var(--or2);
  color: #fff;
  box-shadow: 0 6px 20px var(--or-glow);
  transform: translateY(-1px);
}

.elementor-button:visited {
  color: #fff;
}

/* "Link" style buttons (e.g. the header's "Contact" button —
   confirmed markup: `.elementor-button.elementor-button-link`) read
   as plain text links in the live theme, not filled buttons. Give
   them the outline treatment instead of the solid-fill treatment
   above so they don't look like a generic button stacked next to
   the mega menu. */
.elementor-button.elementor-button-link {
  background-color: transparent;
  border-color: transparent;
  color: var(--t2);
}
.elementor-button.elementor-button-link:hover,
.elementor-button.elementor-button-link:focus {
  background-color: transparent;
  border-color: transparent;
  color: var(--or);
  box-shadow: none;
  transform: none;
}

/* Elementor's per-size button modifiers (`.elementor-button.elementor-size-*`)
   set their own border-radius (2-6px depending on size) which would
   otherwise win over the plain `.elementor-button` rule above on
   source order alone since they're equally specific (2 classes) but
   declared later in Elementor's own stylesheet. !important here is
   defending against that known, confirmed-present Elementor rule
   (`.elementor-button.elementor-size-md{border-radius:4px;...}` etc.),
   not a speculative one. */
.elementor-button.elementor-size-xs,
.elementor-button.elementor-size-sm,
.elementor-button.elementor-size-md,
.elementor-button.elementor-size-lg,
.elementor-button.elementor-size-xl {
  border-radius: var(--r3) !important;
}

/* ============================================================
   4. FORMS (.elementor-widget-form — confirmed on CONTACT,
      PROPERTY_MANAGEMENT)
   ============================================================
   NOTE: none of the 17 design files style a real <input>/<textarea>
   element — every design mockup's "form" is a static mock (divs
   styled as fake fields, e.g. CONTACT's `.fake-textarea`). There is
   no direct design precedent to copy pixel-for-pixel here. The
   rules below extrapolate from the design system's own consistent
   card/field conventions used elsewhere (1px var(--bg-stone2) border,
   var(--r3) radius, var(--bg-light) fill — see e.g. BOOKING_INQUIRY's
   `.tw-field`) rather than guessing at colors with no basis. Flagged
   for a closer look in phase 2 once a real form page is pixel-fitted.
   ============================================================ */

.elementor-field-textual {
  background-color: var(--bg-white);
  border: 1.5px solid var(--bg-stone2);
  border-radius: var(--r3);
  color: var(--ch);
  font-family: var(--font);
}

.elementor-field-textual:focus {
  border-color: var(--or);
  box-shadow: 0 0 0 3px var(--or-glow);
  outline: 0;
}

.elementor-field-group label {
  color: var(--t2);
  font-family: var(--font);
  font-weight: 600;
}

/* The form's submit button is a real .elementor-button under the
   hood (confirmed markup: `<button class="elementor-button
   elementor-size-sm" type="submit">`), so section 3 above already
   covers its fill/hover/radius — nothing further needed here. */

/* ============================================================
   5. ICON LISTS (.elementor-widget-icon-list — confirmed on
      every scraped page) & ICON BOXES (.elementor-widget-icon-box
      — confirmed on FAQ, PROPERTY_MANAGEMENT)
   ============================================================ */

.elementor-icon-list-text {
  color: var(--t2);
  font-family: var(--font);
}

.elementor-icon-list-item a:hover .elementor-icon-list-text {
  color: var(--or);
}

.elementor-icon-box-title {
  color: var(--ch);
  font-family: var(--font);
  font-weight: 700;
}

.elementor-icon-box-title a {
  color: inherit;
}

.elementor-icon-box-description {
  color: var(--t3);
}

/* ============================================================
   6. CALL TO ACTION (.elementor-cta — confirmed on FAQ and as a
      sitewide template block per 03_analysis/synthesis.md)
   ============================================================ */

.elementor-cta {
  border-radius: var(--r2);
}

.elementor-cta__title {
  color: #fff;
  font-family: var(--font);
  font-weight: 800;
}

/* ============================================================
   7. ACCORDION (.elementor-widget-accordion — confirmed on FAQ)
   ============================================================ */

.elementor-accordion-item {
  border-color: var(--bg-stone);
}

.elementor-tab-title,
.elementor-accordion-title {
  color: var(--ch);
  font-family: var(--font);
  font-weight: 700;
}

.elementor-tab-title.elementor-active,
.elementor-accordion-title.elementor-active {
  color: var(--or);
}

.elementor-tab-content,
.elementor-accordion-content {
  color: var(--t2);
}

/* ============================================================
   8. BLOG / POSTS GRID (.elementor-widget-posts — confirmed on
      BLOG; reused as related-posts on SINGLE_BLOG via
      ucaddon_post_carousel)
   ============================================================ */

.elementor-post {
  background-color: var(--bg-white);
  border-radius: var(--r);
  box-shadow: var(--sh-sm);
  overflow: hidden;
  transition:
    box-shadow 0.2s ease,
    transform 0.2s ease;
}

.elementor-post:hover {
  box-shadow: var(--sh);
  transform: translateY(-2px);
}

.elementor-post__title,
.elementor-post__title a {
  color: var(--ch);
  font-family: var(--font);
  font-weight: 700;
}

.elementor-post__title a:hover {
  color: var(--or);
}

.elementor-post__excerpt,
.elementor-post__excerpt p {
  color: var(--t3);
}

.elementor-post__read-more {
  color: var(--or);
  font-weight: 700;
}

/* ============================================================
   9. PROPERTY CARDS (.property_card — custom plugin widget, NOT
      core Elementor; confirmed class name from the homepage
      carousel's skeleton-loading markup, confirmed base rule from
      the live CSS: `.property_card{background-color:#fff;
      border-radius:5px;box-shadow:0 4px 4px rgba(0,0,0,.25)}`)
   ============================================================
   TODO / NOT CONFIDENT — flagging rather than guessing: every scrape
   we have only captured this widget in its `.property_card.skeleton`
   placeholder state (it's populated client-side via an AJAX call to
   pm-ajax.php, per 03_analysis/synthesis.md). We don't have ground
   truth for the populated card's internal class names (title, price,
   badge, image wrapper, etc.), so we deliberately only touch the
   outer card chrome here — the bits we can confirm from the live
   CSS rule above — and leave internal typography/spacing alone.
   Revisit once a populated card can be inspected (e.g. via browser
   devtools on the live/dev site) rather than guessing at class names.
   ============================================================ */

.property_card {
  border-radius: var(
    --r
  ) !important; /* live rule is `border-radius:5px` with no competing selector seen,
                                          !important used defensively since this is a 3rd-party widget bundle
                                          we have not fully audited for its own higher-specificity rules */
  box-shadow: var(--sh-sm) !important;
}

/* ============================================================
   10. SITE HEADER (#masthead / data-elementor-type="header" —
       confirmed: built from real Elementor widgets — icon-list,
       button, theme-site-logo, ucaddon_mega_menu — not custom HTML)
   ============================================================
   Mega menu layout/positioning (.uc-mega_menu-*) is left untouched
   per the strategy note at the top of this file — only color/type
   of its text and links are retargeted here.
   ============================================================ */

[data-elementor-type='header'] {
  background-color: var(--bg-white);
  border-bottom: 1px solid var(--bg-stone);
}

.uc-mega_menu_title,
.uc-mega_menu_title a {
  color: var(--t3);
  font-family: var(--font);
  font-weight: 600;
  transition: color 0.15s ease;
}

.uc-mega_menu_title:hover,
.uc-mega_menu_title a:hover {
  color: var(--ch);
}

/* ============================================================
   11. SITE FOOTER
   ============================================================
   MAJOR FINDING, confirmed across all 10 scraped pages: the live
   footer is rendered through an `elementor-widget-html` block whose
   raw markup is essentially identical to the design mockups' footer
   HTML — it already uses the redesign's exact class names
   (`footer-brand`, `footer-brand-desc`, `footer-contact-row`,
   `footer-col-label`, `footer-links`, `footer-hr`, `footer-copy`,
   `footer-legal`, `footer-logo-wrapper`) but those classes currently
   have ZERO CSS backing them anywhere in the live stylesheets. This
   is the highest-confidence, lowest-risk win in this whole file:
   plain class selectors, no specificity fight at all, because there
   is no competing Elementor rule to out-rank — nothing currently
   styles these classes at all.
   ============================================================ */

#footer {
  background-color: #0f110f;
  color: rgba(255, 255, 255, 0.55);
  font-family: var(--font);
}

.footer-brand-name {
  color: #fff;
  font-weight: 900;
}

.footer-brand-desc {
  color: rgba(255, 255, 255, 0.4);
}

.footer-contact-row {
  color: rgba(255, 255, 255, 0.35);
}

.footer-contact-row svg {
  color: var(--or);
  fill: currentColor;
}

.footer-col-label {
  color: rgba(255, 255, 255, 0.22);
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.footer-links a {
  color: rgba(255, 255, 255, 0.45);
  transition: color 0.15s ease;
}

.footer-links a:hover {
  color: var(--or);
}

.footer-hr {
  border-color: rgba(255, 255, 255, 0.07);
}

.footer-copy {
  color: rgba(255, 255, 255, 0.2);
}

.footer-legal a {
  color: rgba(255, 255, 255, 0.25);
  transition: color 0.15s ease;
}

.footer-legal a:hover {
  color: rgba(255, 255, 255, 0.55);
}

/* ============================================================
   12. GENERIC CARD / BOX PATTERN
   ============================================================
   The design system repeats one box convention everywhere a
   "card" appears (property summaries, step cards, FAQ cards, trip
   widgets, etc.): var(--bg-white) fill, 1px var(--bg-stone) border,
   var(--r) or var(--r2) radius, var(--sh)/--sh-sm/--sh-lg shadow.
   This utility class is provided for phase-2 page work to opt into
   without redefining the pattern each time — it has no live
   selector target of its own yet since it isn't a class any current
   page markup uses (no markup changes were made in this task).
   ============================================================ */

.avada-card {
  background-color: var(--bg-white);
  border: 1px solid var(--bg-stone);
  border-radius: var(--r);
  box-shadow: var(--sh-sm);
}

.elementor-105 .elementor-element-476c62f {
  padding: 3.5rem 0 2rem !important;
}

/* ============================================================================
   CONTAINER WIDTH STANDARDIZATION — all sections match hero section width
   ============================================================================
   Elementor containers use --content-width CSS variable to constrain width.
   Set global defaults to ensure all sections (hero, about, property management,
   current weather, etc.) use the same max-width for visual consistency. */

.e-con-boxed {
  --content-width: 1320px !important;
}

/* Apply content-width to Bootstrap .container as well */
.container {
  --content-width: 1320px !important;
}

/* Header navbar container: match the footer's boxed grid exactly —
   the footer's boxed section is 1320px of content inside 37.5px side
   padding, so the header container gets 1320 + 75 outer width with the
   same padding (Bootstrap's default is 1320 outer / 30px padding). */
.elementor-location-header .navbar .container {
  max-width: 1395px !important;
  padding-left: 37.5px !important;
  padding-right: 37.5px !important;
}
