/*
Theme Name: Stay in Thai
Theme URI: https://stay.in.th
Author: stay.in.th
Author URI: https://stay.in.th
Description: A lightweight Thailand accommodation directory theme. Property listings, province and region taxonomy pages, bilingual EN/TH support, enquiry system, and travel blog. Built for speed, beauty, and conversions.
Version: 1.4.5
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: thailand-stay
Tags: directory, travel, accommodation, thailand, lightweight
*/

/* ============================================================
   CSS CUSTOM PROPERTIES
   Palette:
     --cream        #F7F3EE  page section backgrounds
     --warm-white   #FBFAF7  cards, header background
     --soft-black   #1F1D1B  headings, dark sections
     --taupe        #B8A99A  muted text, meta labels
     --sage         #9DA89D  secondary accents
     --sage-light   #EAF3DE  booking success state background
     --terracotta   #C68A6E  category labels, amenity icons
     --gold         #D4A843  featured badges, gold accents
     --gold-bar     #C4972A  announcement bar background
     --line         #E8E2D9  borders and dividers
   ============================================================ */
:root {
  /* Brand palette */
  --cream:        #F7F3EE;
  --warm-white:   #FBFAF7;
  --soft-black:   #1F1D1B;
  --taupe:        #B8A99A;
  --sage:         #9DA89D;
  --terracotta:   #C68A6E;
  --line:         #E8E2D9;
  --sage-light:   #EAF3DE;
  --terra-light:  #FAECE7;

  /* Thai accent */
  --gold:         #D4A843;
  --gold-light:   #FBF4E3;

  /* Typography */
  --font-display: 'Playfair Display', Georgia, serif;
  --font-body:    'DM Sans', system-ui, sans-serif;
  --font-mono:    'DM Mono', monospace;

  /* Spacing */
  --space-xs:  4px;
  --space-sm:  8px;
  --space-md:  16px;
  --space-lg:  24px;
  --space-xl:  40px;
  --space-2xl: 64px;
  --space-3xl: 96px;

  /* Layout */
  --container:    1240px;
  --radius-sm:    6px;
  --radius-md:    12px;
  --radius-lg:    20px;
  --radius-full:  9999px;

  /* Shadows */
  --shadow-sm:  0 1px 3px rgba(31,29,27,.06), 0 1px 2px rgba(31,29,27,.04);
  --shadow-md:  0 4px 16px rgba(31,29,27,.08), 0 2px 4px rgba(31,29,27,.04);
  --shadow-lg:  0 12px 40px rgba(31,29,27,.12), 0 4px 8px rgba(31,29,27,.06);
  --shadow-card:0 2px 8px rgba(31,29,27,.07);

  /* Transitions */
  --ease:         cubic-bezier(.4,0,.2,1);
  --transition:   .2s var(--ease);
}

/* ============================================================
   RESET & BASE
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html {
  font-size: 16px;
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
  overflow-x: clip;
  width: 100%;
}

body {
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.6;
  color: var(--soft-black);
  background: var(--cream);
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
  width: 100%;
  max-width: 100%;
}

/* ── Neutralise WordPress global-layout injected styles ────────────────────
   WP 6.1+ injects max-width constraints via .is-layout-constrained when
   theme.json declares layout.contentSize. We've removed that from theme.json
   but add these overrides as a safeguard against cached/residual WP styles. */
.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
.wp-site-blocks > * {
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
#page, #content {
  width: 100%;
  max-width: 100%;
}

img, video { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button { cursor: pointer; border: none; background: none; font-family: inherit; }
ul, ol { list-style: none; }
input, select, textarea { font-family: inherit; }

/* ============================================================
   TYPOGRAPHY
   ============================================================ */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  font-weight: 600;
  line-height: 1.2;
  color: var(--soft-black);
}

h1 { font-size: clamp(2rem, 5vw, 3.5rem); }
h2 { font-size: clamp(1.5rem, 3vw, 2.25rem); }
h3 { font-size: clamp(1.125rem, 2vw, 1.5rem); }
h4 { font-size: 1.125rem; }

p { max-width: 65ch; }
p + p { margin-top: var(--space-md); }

.label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--taupe);
}

/* On light/cream backgrounds, labels need more contrast */
.section .label,
.form-section__title,
.form-card .label {
  color: #7A6E66;
}

/* ============================================================
   CONTRAST FIXES — cream/warm-white background contexts
   All interactive and informational text on light bg must
   meet minimum contrast. Taupe (#B8A99A) fails on cream.
   Mid-dark (#5C534C) and charcoal (#7A6E66) are used instead.
   ============================================================ */

/* Nav: province button, site nav links */
.nav-province-dropdown > button { color: #5C534C; }
.nav-province-dropdown > button:hover { color: var(--soft-black); }
.site-nav a { color: #5C534C; }
.site-nav a:hover, .site-nav a.current { color: var(--soft-black); }

/* Property card secondary text */
.property-card__province { color: #7A6E66; }
.property-card__meta     { color: #7A6E66; }
.property-card__type     { color: #5C534C; }
.property-card__price span { color: #7A6E66; }

/* Blog card secondary text */
.blog-card__excerpt  { color: #5C534C; }
.blog-card__footer   { color: #7A6E66; }

/* Region tabs default state */
.region-tab { color: #5C534C; }

/* Directory sidebar filter labels */
.directory-sidebar .label { color: #5C534C; }

/* Filter pills - already fixed above */

/* Listing page secondary text */
.listing-header__meta { color: #5C534C; }

/* Booking widget period */
.booking-widget__period { color: #5C534C; font-size: .9rem; }
.booking-widget__note   { color: #7A6E66; }

/* Form section labels - already fixed above */

/* Submit property page helper text */
.submit-property-page .subtitle { color: #5C534C; }

/* ============================================================
   LAYOUT UTILITIES
   ============================================================ */
.container {
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: var(--space-lg);
}

.container--narrow { max-width: 800px; }
.container--wide   { max-width: 1440px; }

.section { padding-block: var(--space-3xl); }
.section--sm { padding-block: var(--space-2xl); }

.grid-2 { display: grid; grid-template-columns: repeat(2,1fr); gap: var(--space-lg); }
.grid-3 { display: grid; grid-template-columns: repeat(3,1fr); gap: var(--space-lg); }
.grid-4 { display: grid; grid-template-columns: repeat(4,1fr); gap: var(--space-lg); }

.flex { display: flex; }
.flex-center { display: flex; align-items: center; justify-content: center; }
.flex-between { display: flex; align-items: center; justify-content: space-between; }
.gap-sm { gap: var(--space-sm); }
.gap-md { gap: var(--space-md); }

/* ============================================================
   ANNOUNCEMENT BAR  (MutedCanvas mc-topbar pattern)
   ============================================================ */
.ts-topbar {
  background: #C4972A;
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .03em;
  padding: 10px 0;
  position: relative;
}

.ts-topbar__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  position: relative;
}

/* Left: stacked text block */
.ts-topbar__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  line-height: 1.35;
  gap: 1px;
}

.ts-topbar__eyebrow {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  opacity: .75;
}

.ts-topbar__msg {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .02em;
}

.ts-topbar a {
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.ts-topbar__close {
  position: absolute;
  right: 0;
  background: none;
  border: none;
  color: rgba(255,255,255,.7);
  cursor: pointer;
  padding: 4px;
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color var(--transition);
  flex-shrink: 0;
}

.ts-topbar__close:hover {
  color: #fff;
  background: rgba(255,255,255,.15);
}

/* Right: timer */
.ts-topbar__right {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

/* Countdown timer */
.topbar-countdown {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
}

.topbar-countdown__unit {
  display: flex;
  flex-direction: column;
  align-items: center;
  background: rgba(31,29,27,.15);
  border-radius: 4px;
  padding: 3px 8px;
  min-width: 44px;
}

.topbar-countdown__num {
  font-size: 16px;
  font-weight: 900;
  line-height: 1.2;
  letter-spacing: .02em;
}

.topbar-countdown__label {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  opacity: .75;
  line-height: 1;
}

.topbar-countdown__sep {
  font-size: 18px;
  font-weight: 900;
  opacity: .6;
  margin-bottom: 8px;
}

.topbar-countdown__tz {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .08em;
  opacity: .7;
  margin-left: 4px;
  text-transform: uppercase;
}

.topbar-countdown.is-expired { display: none; }

/* Mobile: stack text above timer */
@media (max-width: 600px) {
  .ts-topbar__inner {
    flex-direction: column;
    gap: 6px;
    padding-right: 20px; /* space for close button */
  }
  .ts-topbar__close {
    top: 0;
    right: 0;
  }
  .topbar-countdown__unit { min-width: 36px; padding: 2px 6px; }
  .topbar-countdown__num  { font-size: 14px; }
  .topbar-countdown__sep  { font-size: 14px; }
}

/* ============================================================
   NAVIGATION
   ============================================================ */
.site-header {
  background: rgba(251,250,247,.96);
  height: 64px;
  position: sticky;
  top: 0;
  z-index: 300;
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.site-header .container {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-lg);
}

.site-logo {
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--soft-black);
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  flex-shrink: 0;
}

.site-logo__icon {
  width: 32px;
  height: 32px;
  background: var(--soft-black);
  color: var(--cream);
  border-radius: var(--radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
}

.site-nav {
  display: flex;
  align-items: center;
  gap: var(--space-xl);
}

.site-nav a {
  font-size: .9rem;
  font-weight: 500;
  color: #5C534C;
  transition: color var(--transition);
}

.site-nav a:hover,
.site-nav a.current { color: var(--soft-black); }

.site-header__actions {
  display: flex;
  align-items: center;
  gap: var(--space-md);
}

/* ─── Mega trigger (mc-mega-trigger pattern) ─── */
.ts-mega-wrap { display: flex; align-items: center; }

.ts-mega-trigger {
  display: flex;
  align-items: center;
  gap: 6px;
  background: none;
  border: 1px solid var(--line);
  font-size: .875rem;
  font-weight: 500;
  color: #5C534C;
  padding: 7px 14px;
  border-radius: var(--radius-full);
  background: var(--warm-white);
  cursor: pointer;
  transition: all var(--transition);
  white-space: nowrap;
}

.ts-mega-trigger:hover,
.ts-mega-trigger[aria-expanded="true"] {
  border-color: var(--soft-black);
  color: var(--soft-black);
  background: var(--cream);
}

.ts-mega-trigger__arrow {
  transition: transform .2s ease;
  flex-shrink: 0;
}

.ts-mega-trigger[aria-expanded="true"] .ts-mega-trigger__arrow {
  transform: rotate(180deg);
}

/* ============================================================
   MEGA PANEL  (mc-mega-panel pattern)
   ============================================================ */
.ts-mega-panel {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 500;
  background: var(--warm-white);
  border-top: 2px solid var(--gold);
  border-bottom: 1px solid var(--line);
  box-shadow: 0 20px 60px rgba(31,29,27,.14);
  opacity: 0;
  transform: translateY(-8px);
  pointer-events: none;
  transition: opacity .2s ease, transform .2s ease;
  /* visibility not used — pointer-events handles interaction blocking */
}

.ts-mega-panel.is-open {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.ts-mega-panel__inner {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 0;
  padding: 36px 0;
}

/* Intro column */
.ts-mega-panel__intro {
  padding-right: 36px;
  border-right: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.ts-mega-panel__label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--terracotta);
}

.ts-mega-panel__heading {
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--soft-black);
  line-height: 1.3;
}

.ts-mega-panel__desc {
  font-size: 13px;
  color: #5C534C;
  line-height: 1.6;
  max-width: none;
}

.ts-mega-panel__all {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--soft-black);
  text-decoration: none;
  margin-top: 8px;
  transition: color var(--transition);
  display: inline-block;
}

.ts-mega-panel__all:hover { color: var(--terracotta); }

/* 5 region columns */
.ts-mega-panel__regions {
  padding-left: 36px;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 4px 20px;
  align-content: start;
}

.ts-mega-panel__col-head {
  display: flex;
  align-items: center;
  gap: 6px;
  padding-bottom: 8px;
  margin-bottom: 4px;
  border-bottom: 1.5px solid var(--line);
}

.ts-mega-panel__col-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--soft-black);
}

.ts-mega-panel__col ul {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.ts-mega-panel__link {
  display: block;
  font-size: .875rem;
  color: #5C534C;
  padding: 5px 0;
  text-decoration: none;
  transition: color var(--transition), padding-left var(--transition);
  border-radius: 3px;
}

.ts-mega-panel__link:hover {
  color: var(--soft-black);
  padding-left: 4px;
}

/* ============================================================
   LANGUAGE SWITCHER
   ============================================================ */
.ts-lang-wrap {
  position: relative;
}

.ts-lang-trigger {
  display: flex;
  align-items: center;
  gap: 5px;
  background: var(--warm-white);
  border: 1px solid var(--line);
  border-radius: var(--radius-full);
  padding: 6px 12px;
  font-size: .85rem;
  font-weight: 600;
  color: #5C534C;
  cursor: pointer;
  transition: all var(--transition);
  white-space: nowrap;
}

.ts-lang-trigger:hover,
.ts-lang-trigger[aria-expanded="true"] {
  border-color: var(--soft-black);
  color: var(--soft-black);
  background: var(--cream);
}

.ts-lang-flag { font-size: 14px; line-height: 1; display: flex; align-items: center; }
.ts-lang-name { font-size: .8rem; font-weight: 700; letter-spacing: .06em; }

/* Flag image — used in trigger button and dropdown */
.ts-lang-flag-img {
  width: 20px;
  height: 14px;
  object-fit: cover;
  border-radius: 2px;
  display: block;
  flex-shrink: 0;
}

/* Language code badge — shown as fallback when no flag image */
.ts-lang-option__code {
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .06em;
  background: var(--line);
  color: var(--soft-black);
  border-radius: 3px;
  padding: 2px 5px;
  min-width: 28px;
  text-align: center;
}

/* Flag container in dropdown options */
.ts-lang-option__flag {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  width: 24px;
}

.ts-lang-arrow {
  transition: transform .2s ease;
  flex-shrink: 0;
  opacity: .6;
}

.ts-lang-trigger[aria-expanded="true"] .ts-lang-arrow {
  transform: rotate(180deg);
}

/* Dropdown menu */
.ts-lang-menu {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  background: var(--warm-white);
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-lg);
  min-width: 160px;
  padding: 6px;
  z-index: 600;

  /* Hidden state */
  opacity: 0;
  transform: translateY(-6px);
  pointer-events: none;
  transition: opacity .15s ease, transform .15s ease;
}

.ts-lang-menu.is-open {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.ts-lang-option {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 12px;
  border-radius: var(--radius-sm);
  font-size: .875rem;
  color: #5C534C;
  text-decoration: none;
  transition: background var(--transition), color var(--transition);
}

.ts-lang-option:hover {
  background: var(--cream);
  color: var(--soft-black);
}

.ts-lang-option--active {
  color: var(--soft-black);
  font-weight: 600;
}

.ts-lang-option__flag { font-size: 16px; flex-shrink: 0; }
.ts-lang-option__name { flex: 1; }

.ts-lang-option__check {
  color: var(--terracotta);
  flex-shrink: 0;
}

/* ============================================================
   THAI LANGUAGE TYPOGRAPHY
   .lang-th is added to <body> when Thai is active
   ============================================================ */

/* Load Sarabun for Thai — added to Google Fonts enqueue in functions.php */
.lang-th body,
.lang-th .site-nav a,
.lang-th .ts-mega-panel__link,
.lang-th .ts-lang-option__name,
.lang-th .property-card__title,
.lang-th .blog-card__title,
.lang-th p,
.lang-th li {
  font-family: 'Sarabun', 'DM Sans', system-ui, sans-serif;
}

/* Thai script needs slightly more line height */
.lang-th p,
.lang-th li,
.lang-th .ts-mega-panel__link {
  line-height: 1.8;
}

/* Thai mega panel col labels don't uppercase well */
.lang-th .ts-mega-panel__col-label {
  text-transform: none;
  letter-spacing: 0;
  font-size: 13px;
}
.btn {
  display: inline-flex;
  align-items: center;
  gap: var(--space-sm);
  padding: 10px 20px;
  font-size: .9rem;
  font-weight: 500;
  border-radius: var(--radius-full);
  transition: all var(--transition);
  white-space: nowrap;
}

.btn--primary {
  background: var(--soft-black);
  color: var(--warm-white);
}

.btn--primary:hover {
  background: #3a3835;
  transform: translateY(-1px);
  box-shadow: var(--shadow-md);
}

.btn--outline {
  border: 1.5px solid var(--soft-black);
  color: var(--soft-black);
  background: transparent;
}

.btn--outline:hover {
  background: var(--soft-black);
  color: var(--warm-white);
}

.btn--gold {
  background: var(--gold);
  color: var(--soft-black);
  font-weight: 600;
}

.btn--gold:hover {
  background: #bf9530;
  transform: translateY(-1px);
  box-shadow: 0 4px 20px rgba(212,168,67,.3);
}

.btn--sm { padding: 7px 14px; font-size: .8rem; }
.btn--lg { padding: 14px 28px; font-size: 1rem; }

/* ============================================================
   HERO — HOME PAGE
   ============================================================ */
.hero {
  position: relative;
  min-height: 80vh;
  display: flex;
  align-items: center;
  overflow: hidden;
  background-color: var(--soft-black);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

/* Dark overlay so text stays readable over any photo */
.hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.52);
  z-index: 1;
}

/* Remove old separate bg div — no longer needed */
.hero__bg { display: none; }

.hero__content {
  position: relative;
  z-index: 2;
  color: var(--warm-white);
  max-width: 700px;
}

.hero__label {
  display: inline-flex;
  align-items: center;
  gap: var(--space-sm);
  font-size: .8rem;
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: var(--space-lg);
}

.hero__label::before {
  content: '';
  width: 24px;
  height: 1px;
  background: var(--gold);
}

.hero__title {
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 6vw, 4.5rem);
  font-weight: 700;
  line-height: 1.1;
  color: var(--warm-white);
  margin-bottom: var(--space-lg);
}

.hero__subtitle {
  font-size: 1.125rem;
  color: rgba(251,250,247,.75);
  margin-bottom: var(--space-xl);
  max-width: 50ch;
}

/* ============================================================
   SEARCH BAR
   ============================================================ */
.search-bar {
  background: var(--warm-white);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  padding: var(--space-sm);
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  max-width: 680px;
}

.search-bar__field {
  flex: 1;
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  padding: var(--space-sm) var(--space-md);
  border-right: 1px solid var(--line);
}

.search-bar__field:last-of-type { border-right: none; }

.search-bar__field svg {
  width: 18px;
  height: 18px;
  color: var(--taupe);
  flex-shrink: 0;
}

.search-bar__field input,
.search-bar__field select {
  border: none;
  background: transparent;
  font-size: .9rem;
  color: var(--soft-black);
  outline: none;
  width: 100%;
}

.search-bar__field select option { color: var(--soft-black); }

.search-bar__submit {
  flex-shrink: 0;
}

/* ============================================================
   FILTER PILLS (Directory)
   ============================================================ */
.filter-bar {
  background: var(--warm-white);
  border-bottom: 1px solid var(--line);
  position: sticky;
  top: 64px;
  z-index: 50;
}

.filter-bar__inner {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  padding-block: var(--space-md);
  overflow-x: auto;
  scrollbar-width: none;
}

.filter-bar__inner::-webkit-scrollbar { display: none; }

.filter-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 16px;
  font-size: .85rem;
  font-weight: 500;
  color: #5C534C;
  background: var(--cream);
  border: 1px solid #D0C8BF;
  border-radius: var(--radius-full);
  white-space: nowrap;
  transition: all var(--transition);
  cursor: pointer;
}

.filter-pill:hover {
  border-color: var(--soft-black);
  color: var(--soft-black);
}

.filter-pill.active {
  background: var(--soft-black);
  color: var(--warm-white);
  border-color: var(--soft-black);
}

.filter-pill__icon { font-size: 14px; }

/* ============================================================
   PROPERTY CARD
   ============================================================ */
.property-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: var(--space-lg);
}

/* Fixed 4-column grid — home page full width */
.property-grid--4col {
  grid-template-columns: repeat(4, 1fr);
}

/* Fixed 3-column grid — archive page with sidebar */
.property-grid--3col {
  grid-template-columns: repeat(3, 1fr);
}

/* ── Featured block (archive page) ───────────────────────── */
.featured-block { }

.featured-block__header {
  display: flex;
  align-items: center;
  gap: var(--space-md);
  margin-bottom: var(--space-lg);
}

.featured-block__badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: var(--gold-light);
  color: #7A5C00;
  border: 1px solid var(--gold);
  border-radius: var(--radius-full);
  font-size: .75rem;
  font-weight: 700;
  padding: 4px 12px;
  letter-spacing: .04em;
}

.featured-block__label {
  font-size: .8rem;
  color: #7A6E66;
  max-width: none;
}

/* Divider between featured and free listings */
.listings-divider {
  display: flex;
  align-items: center;
  gap: var(--space-md);
  margin-bottom: var(--space-xl);
  margin-top: var(--space-xl);
}

.listings-divider::before,
.listings-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--line);
}

.listings-divider span {
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #7A6E66;
  white-space: nowrap;
}

/* ── Placeholder card (featured slot available) ──────────── */
.property-card--placeholder {
  border: 1.5px dashed var(--line);
  background: var(--cream);
  cursor: default;
}

.property-card--placeholder:hover {
  transform: none;
  box-shadow: none;
}

.property-card--placeholder .property-card__image {
  background: var(--line);
  display: flex;
  align-items: center;
  justify-content: center;
}

.property-card--placeholder .property-card__image::after {
  content: '⭐';
  font-size: 2rem;
  opacity: .3;
}

.featured-slot-cta {
  display: inline-block;
  margin-top: var(--space-sm);
  font-size: .8rem;
  font-weight: 600;
  color: var(--terracotta);
  text-decoration: none;
  transition: color var(--transition);
}

.featured-slot-cta:hover { color: var(--soft-black); }

/* Featured card wrapper for JS region filtering */
.featured-card-wrap { display: contents; }

/* No results message */
.featured-no-results {
  text-align: center;
  padding: var(--space-2xl);
  color: #5C534C;
  font-size: .95rem;
  width: 100%;
}

.featured-no-results a {
  color: var(--terracotta);
  font-weight: 600;
  margin-left: var(--space-sm);
}

.property-card {
  background: var(--warm-white);
  border-radius: var(--radius-md);
  overflow: hidden;
  border: 1.5px solid #D8D0C6;
  cursor: pointer;
  box-shadow: 0 1px 4px rgba(31,29,27,.06);
}

/* Featured card — gold border */
.property-card--featured {
  border: 1.5px solid var(--gold);
  box-shadow: 0 0 0 1px var(--gold), 0 2px 8px rgba(212,168,67,.12);
}

.property-card__image {
  position: relative;
  aspect-ratio: 4/3;
  overflow: hidden;
  background: var(--cream);
}

.property-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .45s var(--ease);
}

/* Image zooms on card hover */
.property-card:hover .property-card__image img { transform: scale(1.06); }

.property-card__badge {
  position: absolute;
  top: var(--space-sm);
  left: var(--space-sm);
  background: var(--warm-white);
  color: var(--soft-black);
  font-size: .75rem;
  font-weight: 600;
  padding: 4px 10px;
  border-radius: var(--radius-full);
  box-shadow: var(--shadow-sm);
}

.property-card__badge--new { background: var(--terracotta); color: white; }
.property-card__badge--featured { background: var(--gold); color: var(--soft-black); }

.property-card__wishlist {
  position: absolute;
  top: var(--space-sm);
  right: var(--space-sm);
  width: 32px;
  height: 32px;
  background: rgba(251,250,247,.9);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  transition: all var(--transition);
  border: 1px solid var(--line);
}

.property-card__wishlist:hover { background: var(--warm-white); transform: scale(1.1); }

.property-card__body { padding: var(--space-md); }

.property-card__province {
  font-size: .75rem;
  font-weight: 500;
  color: #7A6E66;
  letter-spacing: .04em;
  margin-bottom: 4px;
  display: flex;
  align-items: center;
  gap: 4px;
}

.property-card__title {
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 600;
  color: var(--soft-black);
  margin-bottom: var(--space-xs);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  transition: color var(--transition);
}

/* Title colour change on hover — the only visible card hover effect */
.property-card:hover .property-card__title { color: var(--terracotta); }

.property-card__meta {
  font-size: .8rem;
  color: #7A6E66;
  margin-bottom: var(--space-md);
}

.property-card__footer {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  border-top: 1px solid var(--line);
  padding-top: var(--space-md);
  margin-top: var(--space-md);
}

.property-card__price {
  font-family: var(--font-display);
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--soft-black);
}

.property-card__price span {
  font-family: var(--font-body);
  font-size: .85rem;
  font-weight: 400;
  color: #5C534C;
}

.property-card__type {
  font-size: .75rem;
  font-weight: 600;
  color: #5C534C;
  background: var(--cream);
  border: 1px solid #D0C8BF;
  padding: 3px 8px;
  border-radius: var(--radius-full);
}
/* ============================================================
   PROVINCE BROWSE SECTION
   ============================================================ */
.province-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: var(--space-md);
}

.province-card {
  position: relative;
  border-radius: var(--radius-md);
  overflow: hidden;
  aspect-ratio: 4/3;
  cursor: pointer;
  background: var(--soft-black);
}

.province-card__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: .6;
  transition: opacity .4s var(--ease), transform .4s var(--ease);
}

.province-card:hover .province-card__img {
  opacity: .5;
  transform: scale(1.05);
}

.province-card__body {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: var(--space-md);
  background: linear-gradient(to top, rgba(31,29,27,.8) 0%, transparent 100%);
  color: white;
}

.province-card__name {
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 600;
  margin-bottom: 2px;
}

.province-card__count {
  font-size: .75rem;
  color: rgba(255,255,255,.7);
}

.province-card--hidden { display: none !important; }

.province-grid__more {
  display: flex;
  justify-content: center;
  margin-top: var(--space-xl);
  padding-top: var(--space-md);
}

.province-show-more-btn {
  padding: 10px 28px;
  font-size: .9rem;
}

/* Region pill above province grid */
.region-tabs {
  display: flex;
  gap: var(--space-sm);
  flex-wrap: wrap;
  margin-bottom: var(--space-xl);
}

.region-tab {
  padding: 6px 16px;
  font-size: .85rem;
  font-weight: 500;
  border-radius: var(--radius-full);
  border: 1px solid var(--line);
  background: var(--warm-white);
  color: #5C534C;
  cursor: pointer;
  transition: all var(--transition);
}

.region-tab.active,
.region-tab:hover {
  background: var(--soft-black);
  color: var(--warm-white);
  border-color: var(--soft-black);
}

/* ============================================================
   SINGLE LISTING PAGE
   ============================================================ */

.listing-header {
  padding-block: var(--space-xl) var(--space-lg);
}

.listing-header__title {
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 4vw, 2.75rem);
  font-weight: 700;
  margin-bottom: var(--space-md);
}

/* ── Listing page breadcrumb ─────────────────────────────── */
.listing-breadcrumb {
  font-size: .85rem;
  color: #5C534C;
  margin-bottom: var(--space-md);
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
}

.listing-breadcrumb a {
  color: #5C534C;
  transition: color var(--transition);
}

.listing-breadcrumb a:hover { color: var(--soft-black); }

.listing-breadcrumb__sep { color: var(--line); }

.listing-breadcrumb span:last-child { color: var(--soft-black); font-weight: 500; }

/* ── Listing meta row ────────────────────────────────────── */
.listing-meta-pill {
  display: inline-block;
  font-size: .8rem;
  font-weight: 500;
  color: #5C534C;
  background: var(--cream);
  border: 1px solid var(--line);
  border-radius: var(--radius-full);
  padding: 3px 10px;
}

.listing-meta-item {
  font-size: .9rem;
  color: #5C534C;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.listing-meta-item::before {
  content: '·';
  color: var(--line);
  margin-right: 4px;
}

.listing-meta-item:first-of-type::before { display: none; }

/* ── Location text ───────────────────────────────────────── */
.listing-location-text {
  font-size: .95rem;
  color: #5C534C;
  margin-bottom: var(--space-md);
}

.listing-map {
  border-radius: var(--radius-md);
  overflow: hidden;
  border: 1px solid var(--line);
  position: relative;
  width: 100%;
  padding-bottom: 75%; /* 4:3 ratio — height is 75% of width */
  height: 0;
}

.listing-map iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: block;
  border: none;
}

/* ── Booking widget text ─────────────────────────────────── */
.booking-widget__heading {
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: #5C534C;
  margin-bottom: var(--space-sm);
  max-width: none;
}

.booking-widget__sub {
  font-size: .85rem;
  color: #7A6E66;
  margin-bottom: var(--space-lg);
  max-width: none;
}

/* ── Ad widget area below booking widget ─────────────────── */
.listing-ad-widget {
  border-radius: var(--radius-md);
  overflow: hidden;
}

.listing-ad-widget .widget {
  background: var(--warm-white);
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  padding: var(--space-lg);
  /* sticky position set by JS based on booking widget height */
  position: sticky;
  top: 80px; /* fallback — JS overrides this */
}

.listing-ad-widget .widget__title {
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: #7A6E66;
  margin-bottom: var(--space-md);
}

/* Sidebar wrapper — sticky as a whole unit.
   Both booking widget and ad widget scroll into view together.
   align-self: start is required for sticky to work in a grid. */
.listing-sidebar {
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
  position: sticky;
  top: 80px;
  align-self: start;
}

/* ── Ad slots ────────────────────────────────────────────── */
.ts-ad-slot {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: var(--space-lg);
  overflow: hidden;
}

.ts-ad-slot--leaderboard {
  min-height: 90px;
  width: 100%;
  max-width: 970px;
  margin-inline: auto;
}

.ts-ad-slot--midcontent {
  min-height: 90px;
  width: 100%;
  max-width: 100%; /* stretch full width of the container, same as post-layout */
  margin-inline: auto;
  margin-bottom: var(--space-xl);
}

/* Placeholder outline visible only in Customizer preview */
.ts-ad-slot:empty {
  display: none;
}

/* Ad slot inner content stretches to fill */
.ts-ad-slot > * {
  display: block;
  width: 100%;
}

/* Travel Blog nav link — acts as both nav link and mega trigger */
.ts-blog-nav-trigger {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  cursor: pointer;
}

.ts-blog-nav-trigger .ts-mega-trigger__arrow {
  transition: transform .2s ease;
  opacity: .6;
}

.ts-blog-nav-trigger[aria-expanded="true"] .ts-mega-trigger__arrow {
  transform: rotate(180deg);
}

/* Blog mega panel — 2-col: intro + 3x2 category cards */
.ts-mega-panel--blog .ts-mega-panel__inner {
  grid-template-columns: 220px 1fr;
}

.ts-blog-panel__cats {
  padding-left: 36px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  align-content: start;
}

.ts-blog-cat-card {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: var(--cream);
  text-decoration: none;
  transition: all var(--transition);
}

.ts-blog-cat-card:hover {
  border-color: var(--soft-black);
  background: var(--warm-white);
  box-shadow: var(--shadow-sm);
}

.ts-blog-cat-card__emoji {
  font-size: 1.25rem;
  line-height: 1;
  flex-shrink: 0;
  margin-top: 1px;
}

.ts-blog-cat-card__name {
  display: block;
  font-size: .875rem;
  font-weight: 600;
  color: var(--soft-black);
  line-height: 1.3;
  margin-bottom: 2px;
}

.ts-blog-cat-card__desc {
  display: block;
  font-size: .76rem;
  color: #7A6E66;
  line-height: 1.4;
}

/* Blog category filter tabs — above posts, matches region-tab style */
.blog-cat-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
  margin-bottom: var(--space-xl);
  padding: var(--space-md) 0 var(--space-xl);
  border-bottom: 1px solid var(--line);
}

/* Wrapper for JS filtering */
.blog-card-wrap { display: contents; }
.related-properties {
  margin-top: var(--space-3xl);
  padding-top: var(--space-2xl);
  border-top: 1px solid var(--line);
  margin-bottom: var(--space-2xl);
}

.related-properties__title {
  font-family: var(--font-display);
  font-size: 1.375rem;
  font-weight: 600;
  color: var(--soft-black);
  margin-bottom: var(--space-xl);
}

/* ── Full-width hero image ───────────────────────────────── */
.listing-hero-image {
  border-radius: var(--radius-lg);
  overflow: hidden;
  margin-bottom: var(--space-md);
  aspect-ratio: 16/10;
  background: var(--cream);
}

.listing-hero-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.listing-hero-placeholder {
  width: 100%;
  height: 100%;
  background: var(--line);
}

/* ── Thumbnail slider ────────────────────────────────────── */
.listing-slider {
  position: relative;
  margin-bottom: var(--space-2xl);
  overflow: hidden; /* clip the sliding track here */
}

.listing-slider__track {
  display: flex;
  flex-direction: row; /* explicit horizontal */
  flex-wrap: nowrap;   /* never wrap to next line */
  gap: 8px;
  transition: transform .3s ease;
  /* overflow visible so JS can slide */
}

.listing-slider__item {
  flex: 0 0 calc((100% - 40px) / 6); /* 6 thumbnails, 5 gaps of 8px */
  aspect-ratio: 4/3;
  border-radius: var(--radius-sm);
  overflow: hidden;
  cursor: pointer;
  border: 2.5px solid transparent;
  transition: border-color var(--transition), opacity var(--transition);
  opacity: .72;
}

.listing-slider__item.is-active {
  border-color: var(--soft-black);
  opacity: 1;
}

.listing-slider__item:hover { opacity: 1; }

.listing-slider__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  pointer-events: none;
}

/* Prev / Next arrows */
.listing-slider__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 32px;
  height: 32px;
  background: var(--warm-white);
  border: 1px solid var(--line);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: var(--shadow-sm);
  transition: all var(--transition);
  z-index: 2;
  color: var(--soft-black);
}

.listing-slider__arrow:hover {
  background: var(--soft-black);
  color: var(--warm-white);
  border-color: var(--soft-black);
}

.listing-slider__arrow--prev { left: 4px; }
.listing-slider__arrow--next { right: 4px; }

/* Divider (kept for potential reuse) */
.booking-widget__divider {
  height: 1px;
  background: var(--line);
  margin: var(--space-lg) 0;
}

/* ── Owner Profile Card — same visual style as booking-widget ── */
.owner-card {
  background: var(--warm-white);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: var(--space-lg);
  box-shadow: var(--shadow-md);
}

.owner-card__label {
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #7A6E66;
  margin-bottom: var(--space-md);
  max-width: none;
}

.owner-card__top {
  display: flex;
  align-items: center;
  gap: var(--space-md);
  margin-bottom: var(--space-md);
}

.owner-card__avatar {
  flex-shrink: 0;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  overflow: hidden;
  background: var(--cream);
  border: 2px solid var(--line);
}

.owner-card__avatar img,
.owner-card__avatar img.avatar {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 50%;
}

.owner-card__info { flex: 1; min-width: 0; }

.owner-card__name {
  font-size: 1rem;
  font-weight: 600;
  color: var(--soft-black);
  margin-bottom: 2px;
  max-width: none;
}

.owner-card__title {
  font-size: .8rem;
  color: #5C534C;
  margin-bottom: 2px;
  max-width: none;
}

.owner-card__since {
  font-size: .75rem;
  color: var(--taupe);
  max-width: none;
}

.owner-card__bio {
  font-size: .875rem;
  color: #5C534C;
  line-height: 1.6;
  margin-bottom: var(--space-md);
  padding-top: var(--space-sm);
  border-top: 1px solid var(--line);
}

.owner-card__contact {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: .85rem;
  font-weight: 600;
  color: var(--soft-black);
  border: 1.5px solid var(--soft-black);
  border-radius: var(--radius-full);
  padding: 7px 16px;
  transition: all var(--transition);
  text-decoration: none;
  width: 100%;
  justify-content: center;
}

.owner-card__contact:hover {
  background: var(--soft-black);
  color: var(--warm-white);
}

.ts-province-layout {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: var(--space-2xl);
  align-items: start;
}

.listing-layout {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: var(--space-2xl);
  align-items: start;
}

.listing-content__section {
  padding-bottom: var(--space-xl);
  border-bottom: 1px solid var(--line);
  margin-bottom: var(--space-xl);
}

.listing-content__section:last-child {
  border-bottom: none;
  margin-bottom: 0;
}

.listing-content__section h3 {
  font-family: var(--font-display);
  font-size: 1.25rem;
  margin-bottom: var(--space-lg);
}

/* Amenities grid */
.amenities-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-sm) var(--space-lg);
}

.amenity-item {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  font-size: .9rem;
  color: var(--soft-black);
  padding: var(--space-sm) 0;
  border-bottom: 1px solid var(--line);
}

.amenity-item__icon {
  font-size: 18px;
  flex-shrink: 0;
  width: 22px;
  text-align: center;
  color: var(--terracotta); /* FA icons inherit this colour */
}

/* Emoji don't inherit colour — keep them natural */
.amenity-item__icon:not(:has(i)) { color: inherit; }

/* Amenity category label */
.amenity-category {
  grid-column: span 3;
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--taupe);
  padding-top: var(--space-md);
  margin-bottom: -var(--space-xs);
}

/* ============================================================
   BOOKING WIDGET
   Not sticky — the entire sidebar column scrolls with the page.
   This is the only reliable approach to prevent overflow/clipping
   issues in a 380px sidebar without JS.
   ============================================================ */
.booking-widget {
  background: var(--warm-white);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: var(--space-lg);
  box-shadow: var(--shadow-md);
}

.booking-widget__price {
  display: flex;
  align-items: baseline;
  gap: var(--space-sm);
  margin-bottom: var(--space-md);
}

.booking-widget__amount {
  font-family: var(--font-display);
  font-size: 1.75rem;
  font-weight: 700;
}

.booking-widget__period {
  font-size: .9rem;
  color: #5C534C;
}

/* Form rows inside booking widget — single column to avoid width issues */
.booking-widget .form-row {
  grid-template-columns: 1fr 1fr;
  gap: var(--space-sm);
  margin-bottom: var(--space-sm);
}

/* Full-width fields */
.booking-widget .form-group--full,
.booking-widget .form-group--email,
.booking-widget .form-group--phone,
.booking-widget .form-group--message {
  grid-column: span 2;
}

/* Compact inputs inside the widget */
.booking-widget .form-group input,
.booking-widget .form-group select,
.booking-widget .form-group textarea {
  padding: 8px 10px;
  font-size: .85rem;
}

.booking-widget__submit {
  width: 100%;
  margin-top: var(--space-md);
  padding: 13px;
  font-size: .95rem;
  font-weight: 600;
  justify-content: center;
}

.booking-widget__note {
  text-align: center;
  font-size: .75rem;
  color: var(--taupe);
  margin-top: var(--space-sm);
}

/* Booking success state */
.booking-success {
  text-align: center;
  padding: var(--space-xl) var(--space-md);
}

.booking-success__icon {
  width: 48px;
  height: 48px;
  background: var(--sage-light);
  color: var(--sage);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  font-weight: 700;
  margin: 0 auto var(--space-md);
  border: 2px solid var(--sage);
}

.booking-success__title {
  font-family: var(--font-display);
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--soft-black);
  margin-bottom: var(--space-sm);
  max-width: none;
}

.booking-success__sub {
  font-size: .875rem;
  color: #5C534C;
  line-height: 1.6;
  max-width: none;
}

.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-sm);
  margin-bottom: var(--space-sm);
}

.form-group { display: flex; flex-direction: column; gap: 4px; }

.form-group label {
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--soft-black);
}

.form-group input,
.form-group select,
.form-group textarea {
  padding: 10px 14px;
  border: 1.5px solid #D0C8BF;
  border-radius: var(--radius-sm);
  font-size: .9rem;
  color: var(--soft-black);
  background: var(--warm-white);
  outline: none;
  transition: border-color var(--transition);
  width: 100%;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  border-color: var(--soft-black);
  background: #FFFFFF;
}

.form-group--full { grid-column: span 2; }

/* ── Guest stepper − [ n ] + ─────────────────────────────── */
.stepper {
  display: flex;
  align-items: center;
  gap: 0;
  border: 1.5px solid #D0C8BF;
  border-radius: var(--radius-sm);
  background: var(--warm-white);
  overflow: hidden;
  height: 40px;
}

.stepper__btn {
  width: 38px;
  height: 100%;
  background: none;
  border: none;
  font-size: 1.2rem;
  font-weight: 400;
  color: var(--soft-black);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background var(--transition), color var(--transition);
  flex-shrink: 0;
  line-height: 1;
  user-select: none;
}

.stepper__btn:hover { background: var(--cream); }

.stepper__btn:disabled {
  color: var(--line);
  cursor: not-allowed;
}

.stepper__btn:active { background: var(--line); }

.stepper__val {
  flex: 1;
  text-align: center;
  font-size: .95rem;
  font-weight: 600;
  color: var(--soft-black);
  border-left: 1px solid #D0C8BF;
  border-right: 1px solid #D0C8BF;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 32px;
}

.booking-widget__submit {
  width: 100%;
  margin-top: var(--space-md);
  padding: 14px;
  font-size: 1rem;
  font-weight: 600;
  justify-content: center;
}

.booking-widget__note {
  text-align: center;
  font-size: .8rem;
  color: var(--taupe);
  margin-top: var(--space-sm);
}

/* ============================================================
   TAXONOMY HERO — Province & Region pages
   ============================================================ */
.ts-tax-hero {
  position: relative;
  padding-block: var(--space-3xl);
  background-color: var(--soft-black);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

/* Dark overlay over cover image */
.ts-tax-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.55);
  z-index: 0;
}

.ts-tax-hero .container {
  position: relative;
  z-index: 1;
}

.ts-tax-hero--region {
  /* Region hero has no cover image — use gradient instead */
  background: linear-gradient(135deg, var(--soft-black) 0%, #2C2822 100%);
}

.ts-tax-hero--region::before { display: none; }

.ts-tax-hero__emoji {
  font-size: 2.5rem;
  margin-bottom: var(--space-md);
  line-height: 1;
}

.ts-tax-hero__title {
  font-family: var(--font-display);
  font-size: clamp(2rem, 5vw, 3.25rem);
  font-weight: 700;
  color: #fff;
  margin-bottom: var(--space-md);
  line-height: 1.15;
}

.ts-tax-hero__meta {
  font-size: 1rem;
  color: rgba(255,255,255,.75);
  margin-bottom: var(--space-sm);
  max-width: none;
}

.ts-tax-hero__meta strong { color: var(--gold); }

.ts-tax-hero__desc {
  font-size: .95rem;
  color: rgba(255,255,255,.65);
  max-width: 600px;
  line-height: 1.7;
  margin-top: var(--space-md);
}

/* Empty state */
.ts-tax-empty {
  text-align: center;
  padding: var(--space-3xl) 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-lg);
}

.ts-tax-empty p {
  font-size: 1rem;
  color: #5C534C;
  max-width: none;
}

/* Post header — full width above columns */
.post-header {
  max-width: 780px;
  margin-bottom: var(--space-xl);
}

.post-header__cat {
  display: inline-block;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
  color: var(--terracotta);
  margin-bottom: var(--space-md);
  transition: color var(--transition);
}

.post-header__cat:hover { color: var(--soft-black); }

/* Badges row — category + partner badge side by side */
.post-header__badges {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  flex-wrap: wrap;
  margin-bottom: var(--space-md);
}

/* Override margin when inside badges row */
.post-header__badges .post-header__cat { margin-bottom: 0; }

/* Partner Content badge */
.partner-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: #7A5C00;
  background: #FBF4E3;
  border: 1.5px solid #D4A843;
  border-radius: var(--radius-full);
  padding: 3px 10px;
}

.partner-badge svg { color: #D4A843; flex-shrink: 0; }

/* "Sponsored" note in meta row */
.post-header__sponsored-note {
  font-size: .8rem;
  font-weight: 600;
  color: #7A5C00;
}

/* Partner Content disclosure box — shown at top of article */
.partner-disclosure {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  background: #FBF4E3;
  border: 1px solid #D4A843;
  border-left: 3px solid #D4A843;
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  padding: var(--space-md) var(--space-lg);
  font-size: .85rem;
  color: #5C4A00;
  line-height: 1.6;
  margin-bottom: var(--space-xl);
  max-width: none;
}

.partner-disclosure svg { flex-shrink: 0; margin-top: 2px; color: #D4A843; }

.post-header__title {
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 4vw, 2.75rem);
  font-weight: 700;
  line-height: 1.2;
  color: var(--soft-black);
  margin-bottom: var(--space-md);
}

.post-header__meta {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  flex-wrap: wrap;
  font-size: .875rem;
  color: #5C534C;
}

.post-header__sep { color: var(--line); }

/* Featured image full width */
.post-hero-image {
  border-radius: var(--radius-lg);
  overflow: hidden;
  margin-bottom: var(--space-3xl);
  aspect-ratio: 16/10;
}

.post-hero-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Two-column layout: article + sidebar */
.post-layout {
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: var(--space-2xl);
  align-items: start;
}

/* Article content */
.post-content-wrap { min-width: 0; }

.entry-content {
  font-size: 1.0625rem;
  line-height: 1.8;
  color: var(--soft-black);
}

.entry-content h2 {
  font-family: var(--font-display);
  font-size: 1.5rem;
  margin-top: var(--space-2xl);
  margin-bottom: var(--space-md);
}

.entry-content h3 {
  font-family: var(--font-display);
  font-size: 1.2rem;
  margin-top: var(--space-xl);
  margin-bottom: var(--space-sm);
}

.entry-content p { margin-bottom: var(--space-md); max-width: 65ch; }
.entry-content ul, .entry-content ol {
  padding-left: var(--space-xl);
  margin-bottom: var(--space-md);
}
.entry-content li { margin-bottom: var(--space-xs); }
.entry-content a { color: var(--terracotta); text-decoration: underline; text-underline-offset: 2px; }
.entry-content img { border-radius: var(--radius-md); margin-block: var(--space-lg); }
.entry-content blockquote {
  border-left: 3px solid var(--gold);
  padding-left: var(--space-lg);
  margin-left: 0;
  color: #5C534C;
  font-style: italic;
  margin-block: var(--space-lg);
}

/* Tags */
.post-tags {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
  margin-top: var(--space-xl);
  padding-top: var(--space-xl);
  border-top: 1px solid var(--line);
}

.post-tag {
  font-size: .8rem;
  font-weight: 500;
  color: #5C534C;
  background: var(--cream);
  border: 1px solid var(--line);
  border-radius: var(--radius-full);
  padding: 4px 12px;
  transition: all var(--transition);
}

.post-tag:hover {
  background: var(--soft-black);
  color: var(--warm-white);
  border-color: var(--soft-black);
}

/* Right sidebar */
.post-sidebar {
  position: sticky;
  top: 80px;
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
  min-width: 0; /* prevent overflow */
}

.post-sidebar .widget {
  background: var(--warm-white);
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  padding: var(--space-md);  /* 16px — enough breathing room without squeezing 300px ads */
  min-width: 0;
  overflow: hidden;
}

/* Ad-only widgets: no padding so 300x600 fills the full width cleanly */
.post-sidebar .widget_custom_html,
.post-sidebar .widget_text {
  padding: 0;
  background: transparent;
  border: none;
}

/* Contain all media inside sidebar widgets */
.post-sidebar .widget img,
.post-sidebar .widget iframe,
.post-sidebar .widget video {
  max-width: 100%;
  height: auto;
  display: block;
  border-radius: var(--radius-sm);
}

.post-sidebar .widget-title,
.post-sidebar .widgettitle,
.post-sidebar .widget-title h2,
.post-sidebar .widget-title h3,
.post-sidebar h2.widget-title,
.post-sidebar h3.widget-title,
.post-sidebar h2.widgettitle,
.post-sidebar h3.widgettitle {
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #7A6E66;
  margin-bottom: var(--space-md);
  padding-bottom: var(--space-sm);
  border-bottom: 1px solid var(--line);
  font-family: var(--font-body);
  line-height: 1.4;
}

.post-sidebar__placeholder {
  background: var(--warm-white);
  border: 1.5px dashed var(--line);
  border-radius: var(--radius-md);
  padding: var(--space-lg);
}

/* Related posts section */
.related-posts {
  margin-top: var(--space-3xl);
  padding-top: var(--space-2xl);
  border-top: 1px solid var(--line);
}

.related-posts__title {
  font-family: var(--font-display);
  font-size: 1.375rem;
  font-weight: 600;
  color: var(--soft-black);
  margin-bottom: var(--space-xl);
}

.related-posts__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-xl);
}

/* Responsive */
@media (max-width: 1100px) {
  .post-layout { grid-template-columns: 1fr 320px; }
  .related-posts__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 900px) {
  .post-layout { grid-template-columns: 1fr; }
  .post-sidebar { position: static; }
  .related-posts__grid { grid-template-columns: 1fr; }
  .post-hero-image { aspect-ratio: 16/9; }
}
.blog-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: var(--space-xl);
}

.blog-card {
  background: var(--warm-white);
  border-radius: var(--radius-md);
  overflow: hidden;
  border: 1px solid var(--line);
  /* No card-level hover transition */
}

/* NO whole-card lift */

.blog-card__image {
  aspect-ratio: 16/9;
  overflow: hidden;
  background: var(--cream);
}

.blog-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .45s var(--ease);
}

/* Image zooms on hover */
.blog-card:hover .blog-card__image img { transform: scale(1.06); }

.blog-card__body { padding: var(--space-lg); }

.blog-card__cat {
  display: inline-block;
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--terracotta);
  margin-bottom: var(--space-sm);
}

.blog-card__title {
  font-family: var(--font-display);
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--soft-black);
  margin-bottom: var(--space-sm);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  transition: color var(--transition);
}

/* Title colour on hover — only visible effect */
.blog-card:hover .blog-card__title { color: var(--terracotta); }

.blog-card__excerpt {
  font-size: .875rem;
  color: #5C534C;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin-bottom: var(--space-md);
}

.blog-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: .8rem;
  color: #7A6E66;
  border-top: 1px solid var(--line);
  padding-top: var(--space-md);
}

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer {
  background: var(--soft-black);
  color: var(--taupe);
  padding-block: var(--space-3xl) var(--space-xl);
}

.site-footer__grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: var(--space-2xl);
  margin-bottom: var(--space-2xl);
}

.site-footer__brand .site-logo { color: var(--warm-white); margin-bottom: var(--space-md); }
.site-footer__brand .site-logo .site-logo__icon { background: var(--warm-white); color: var(--soft-black); }

.site-footer__desc {
  font-size: .875rem;
  line-height: 1.7;
  color: rgba(184,169,154,.7);
  max-width: 280px;
}

.site-footer__col h4 {
  font-family: var(--font-body);
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--warm-white);
  margin-bottom: var(--space-lg);
}

.site-footer__col ul { display: flex; flex-direction: column; gap: var(--space-sm); }

.site-footer__col ul a {
  font-size: .875rem;
  color: rgba(184,169,154,.7);
  transition: color var(--transition);
}

.site-footer__col ul a:hover { color: var(--warm-white); }

.site-footer__bottom {
  border-top: 1px solid rgba(232,226,217,.1);
  padding-top: var(--space-xl);
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: .8rem;
  color: rgba(184,169,154,.5);
}

.form-section__title {
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #7A6E66;
  margin-bottom: var(--space-lg);
}

/* ============================================================
   SUBMIT PROPERTY PAGE
   ============================================================ */
.submit-property-page {
  max-width: 740px;
  margin-inline: auto;
  padding-block: var(--space-3xl);
}

.submit-property-page h1 {
  text-align: center;
  margin-bottom: var(--space-sm);
}

.submit-property-page .subtitle {
  text-align: center;
  color: var(--taupe);
  margin-bottom: var(--space-2xl);
}

.form-card {
  background: var(--warm-white);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: var(--space-2xl);
}

.form-section {
  margin-bottom: var(--space-xl);
  padding-bottom: var(--space-xl);
  border-bottom: 1px solid var(--line);
}

.form-section:last-child { border-bottom: none; margin-bottom: 0; }

.form-section__title {
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--taupe);
  margin-bottom: var(--space-lg);
}

/* ============================================================
   UTILITIES
   ============================================================ */
.text-center { text-align: center; }
.text-taupe  { color: var(--taupe); }
.text-gold   { color: var(--gold); }
.mt-sm { margin-top: var(--space-sm); }
.mt-md { margin-top: var(--space-md); }
.mt-lg { margin-top: var(--space-lg); }
.mt-xl { margin-top: var(--space-xl); }
.mb-sm { margin-bottom: var(--space-sm); }
.mb-md { margin-bottom: var(--space-md); }
.mb-lg { margin-bottom: var(--space-lg); }
.mb-xl { margin-bottom: var(--space-xl); }
.hidden { display: none !important; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1024px) {
  .listing-layout { grid-template-columns: 1fr; }
  .booking-widget { position: static; }
  .site-footer__grid { grid-template-columns: 1fr 1fr; }
  .ts-mega-panel__inner { grid-template-columns: 1fr; }
  .ts-mega-panel__intro { border-right: none; padding-right: 0; border-bottom: 1px solid var(--line); padding-bottom: var(--space-lg); }
  .ts-mega-panel__regions { grid-template-columns: repeat(3, 1fr); padding-left: 0; padding-top: var(--space-lg); }
  /* 4-col → 2-col on tablet */
  .property-grid--4col { grid-template-columns: repeat(2, 1fr); }
  /* 3-col stays 3-col on tablet (sidebar layout) */
}

@media (max-width: 768px) {
  .search-bar { flex-direction: column; gap: 0; }
  .search-bar__field { border-right: none; border-bottom: 1px solid var(--line); }
  .search-bar__field:last-of-type { border-bottom: none; }
  .search-bar__submit { width: 100%; }
  .search-bar__submit .btn { width: 100%; justify-content: center; }
  .listing-hero-image { aspect-ratio: 16/9; }
  .listing-slider__item { flex: 0 0 calc((100% - 24px) / 4); } /* 4 visible on tablet */
  .amenities-grid { grid-template-columns: 1fr 1fr; }
  .amenity-category { grid-column: span 2; }
  .site-footer__grid { grid-template-columns: 1fr; gap: var(--space-xl); }
  .site-footer__bottom { flex-direction: column; gap: var(--space-sm); text-align: center; }
  .site-nav { display: none; }
  .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; }
  .ts-mega-panel__regions { grid-template-columns: repeat(2, 1fr); }
  /* Fixed grids → single column on mobile */
  .property-grid--4col,
  .property-grid--3col { grid-template-columns: 1fr; }
  /* Province page: collapse sidebar above results on mobile */
  .ts-province-layout { grid-template-columns: 1fr; }
  .ts-province-layout .directory-sidebar { position: static !important; top: auto !important; }
}

@media (max-width: 480px) {
  .container { padding-inline: var(--space-md); }
  .property-grid { grid-template-columns: 1fr; }
  .province-grid { grid-template-columns: repeat(2, 1fr); }
  .amenities-grid { grid-template-columns: 1fr 1fr; }
  .amenity-category { grid-column: span 2; }
  .form-row { grid-template-columns: 1fr; }
  .form-group--full { grid-column: span 1; }
  .ts-mega-panel__regions { grid-template-columns: repeat(2, 1fr); }
}

/* ============================================================
   MOBILE MENU
   ============================================================ */

/* Hamburger button — hidden on desktop */
.ts-mobile-menu-btn {
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  width: 40px;
  height: 40px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px;
  border-radius: var(--radius-sm);
  transition: background .2s;
  flex-shrink: 0;
}
.ts-mobile-menu-btn:hover { background: rgba(255,255,255,.08); }
.ts-mobile-menu-btn__bar {
  display: block;
  width: 22px;
  height: 2px;
  background: var(--soft-black);
  border-radius: 2px;
  transition: transform .25s ease, opacity .25s ease;
}
.ts-mobile-menu-btn.is-open .ts-mobile-menu-btn__bar:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.ts-mobile-menu-btn.is-open .ts-mobile-menu-btn__bar:nth-child(2) { opacity: 0; transform: scaleX(0); }
.ts-mobile-menu-btn.is-open .ts-mobile-menu-btn__bar:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Mobile menu wrapper — fixed, invisible, out of flow always */
.ts-mobile-menu {
  position: fixed;
  inset: 0;
  z-index: 398;
  pointer-events: none;
  visibility: hidden;
}
.ts-mobile-menu.is-open {
  pointer-events: auto;
  visibility: visible;
}

/* Overlay */
.ts-mobile-menu__overlay {
  position: fixed;
  inset: 0;
  background: rgba(31,29,27,.55);
  z-index: 399;
  opacity: 0;
  pointer-events: none;
  transition: opacity .3s ease;
}

/* Drawer */
.ts-mobile-menu__drawer {
  position: fixed;
  top: 0; right: 0; bottom: 0;
  width: min(340px, 88vw);
  background: var(--warm-white);
  z-index: 400;
  display: flex;
  flex-direction: column;
  overflow: hidden; /* drawer itself does NOT scroll — only the body section does */
  transform: translateX(100%);
  transition: transform .32s cubic-bezier(.4,0,.2,1);
  box-shadow: -8px 0 32px rgba(31,29,27,.15);
}

/* Open state */
.ts-mobile-menu.is-open .ts-mobile-menu__overlay {
  opacity: 1;
  pointer-events: auto;
}
.ts-mobile-menu.is-open .ts-mobile-menu__drawer {
  transform: translateX(0);
}

/* Drawer header */
.ts-mobile-menu__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-md) var(--space-lg);
  border-bottom: 1px solid var(--line);
  background: var(--soft-black);
  flex-shrink: 0;
}
.ts-mobile-menu__head .site-logo {
  color: var(--warm-white);
  font-size: .85rem;
}
.ts-mobile-menu__head .site-logo__icon { font-size: 1.1rem; }

/* Close button */
.ts-mobile-menu__close {
  background: none;
  border: none;
  color: rgba(255,255,255,.6);
  cursor: pointer;
  padding: 6px;
  border-radius: var(--radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color .2s, background .2s;
}
.ts-mobile-menu__close:hover { color: var(--warm-white); background: rgba(255,255,255,.1); }

/* Primary links */
.ts-mobile-menu__links {
  list-style: none;
  padding: var(--space-sm) 0;
  border-bottom: 1px solid var(--line);
  flex-shrink: 0;
}
.ts-mobile-menu__link {
  display: block;
  padding: var(--space-md) var(--space-lg);
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 500;
  color: var(--soft-black);
  text-decoration: none;
  transition: background .15s, color .15s;
}
.ts-mobile-menu__link:hover { background: var(--cream); }
.ts-mobile-menu__link--active { color: var(--terracotta); font-weight: 600; }

/* Accordion sections */
.ts-mobile-menu__section {
  border-bottom: 1px solid var(--line);
  flex-shrink: 0;
}
.ts-mobile-menu__accordion {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-md) var(--space-lg);
  background: none;
  border: none;
  cursor: pointer;
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 500;
  color: var(--soft-black);
  text-align: left;
  transition: background .15s;
}
.ts-mobile-menu__accordion:hover { background: var(--cream); }
.ts-mobile-acc-arrow {
  flex-shrink: 0;
  transition: transform .25s ease;
  color: var(--taupe);
}
.ts-mobile-menu__accordion[aria-expanded="true"] .ts-mobile-acc-arrow {
  transform: rotate(180deg);
}

/* Accordion body */
.ts-mobile-menu__accordion-body {
  max-height: 0;
  overflow: hidden;
  transition: max-height .3s ease;
  background: var(--cream);
}
.ts-mobile-menu__accordion-body.is-open {
  max-height: 600px;
}
.ts-mobile-region {
  padding: var(--space-sm) var(--space-lg) 0;
}
.ts-mobile-region__label {
  font-family: var(--font-body);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--taupe);
  margin-bottom: var(--space-sm);
  margin-top: var(--space-sm);
}
.ts-mobile-region__links {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
  padding-bottom: var(--space-md);
  border-bottom: 1px solid var(--line);
}
.ts-mobile-region:last-child .ts-mobile-region__links { border-bottom: none; }
.ts-mobile-province-link {
  font-family: var(--font-body);
  font-size: .82rem;
  color: var(--soft-black);
  text-decoration: none;
  padding: 4px 10px;
  background: var(--warm-white);
  border: 1px solid var(--line);
  border-radius: var(--radius-full);
  transition: background .15s, border-color .15s, color .15s;
  display: inline-block;
}
.ts-mobile-province-link:hover {
  background: var(--soft-black);
  border-color: var(--soft-black);
  color: var(--warm-white);
}

/* CTA — visible at bottom; sticky so it's always reachable while scrolling */
.ts-mobile-menu__cta {
  padding: var(--space-lg);
  flex-shrink: 0;
  border-top: 1px solid var(--line);
  background: var(--warm-white);
  position: sticky;
  bottom: 0;
}

/* Scrollable body between the fixed header and the sticky CTA.
   flex:1 1 auto grows to fill available space; min-height:0 allows shrinking;
   overflow-y:auto scrolls when content is taller than remaining drawer height. */
.ts-mobile-menu__body {
  flex: 1 1 auto;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  min-height: 0;
}

/* Show hamburger + hide desktop nav on mobile */
@media (max-width: 768px) {
  .ts-mobile-menu-btn { display: flex; }
  .site-nav { display: none !important; }
  /* Hide provinces mega trigger and Submit Property button in header — menu covers them */
  .site-header__actions .ts-mega-wrap { display: none; }
  .site-header__actions .btn--primary { display: none; }
  /* Keep lang switcher visible in header */
  .site-header__actions .ts-lang-wrap { display: flex; }
  /* Keep container aligned */
  .site-header .container { gap: 0; justify-content: space-between; }
}

/* Prevent body scroll when menu open */
body.ts-menu-open { overflow: hidden; }
