/* ═══════════════════════════════════════════════════════════════
   Amax Connect Public Styles v2
   All design tokens are injected as CSS custom properties from PHP.
   ═══════════════════════════════════════════════════════════════ */

/* ─── Design tokens (defaults — overridden by PHP inline CSS) ── */
:root {
  --ac-primary:      #0066ff;
  --ac-secondary:    #f5f7fa;
  --ac-accent:       #ff5500;
  --ac-btn-bg:       #0066ff;   /* separate from primary so it can be customised independently */
  --ac-btn-text:     #ffffff;
  --ac-text:         #1a1a2e;
  --ac-text-muted:   #6b7280;
  --ac-border:       #e5e7eb;
  --ac-card-bg:      #ffffff;
  --ac-radius:       12px;
  --ac-btn-radius:   8px;
  --ac-font:         inherit;
  --ac-heading-size: 20px;
  --ac-shadow:       0 2px 12px rgba(0,0,0,0.07);
  --ac-shadow-hover: 0 10px 40px rgba(0,0,0,0.14);
  --ac-transition:   0.22s ease;
}

/* ─── Container ──────────────────────────────────────────────── */
.ac-wrap {
  font-family: var(--ac-font);
  color: var(--ac-text);
  width: 100%;
}
.ac-wrap *, .ac-wrap *::before, .ac-wrap *::after { box-sizing: border-box; }
.ac-wrap a { transition: var(--ac-transition); }
.ac-error {
  background: #fee2e2; color: #dc2626;
  padding: 12px 16px;
  border-left: 4px solid #dc2626;
  border-radius: 6px;
  font-size: 14px;
  margin-bottom: 16px;
}
.ac-empty {
  text-align: center;
  padding: 48px 20px;
  color: var(--ac-text-muted);
  font-size: 15px;
}

/* ─── Filter Bar ─────────────────────────────────────────────── */
/* Scoped under .ac-wrap + !important on visual properties so      */
/* theme button styling can't override. Matches the minimal site   */
/* tab aesthetic: no chunky pills, no heavy backgrounds.           */

.ac-wrap .ac-filter-bar {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 10px 24px !important;
  margin: 0 0 12px 0 !important;
  padding: 4px 0 0 0 !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
.ac-wrap .ac-filter-label {
  font-size: 11px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  color: #94a3b8 !important;
  margin: 0 !important;
  padding: 0 !important;
  width: auto !important;
  flex: none !important;
  background: transparent !important;
  border: none !important;
}
.ac-wrap .ac-filter-group {
  display: flex !important;
  align-items: center !important;
  gap: 9px !important;
  flex-wrap: nowrap !important;
}
/* count on each filter option (faceted). Fixed min-width + tabular figures so
   the number changing (1 → 2 digits) never changes the button width — that
   width jitter was making the Features group jump between rows on select. */
.ac-wrap .ac-opt-count {
  display: inline-block !important;
  min-width: 1.5em !important;
  text-align: left !important;
  font-size: 10.5px !important;
  font-weight: 700 !important;
  opacity: 0.55 !important;
  font-variant-numeric: tabular-nums !important;
  margin-left: 1px !important;
}
/* Features has the most options; pin it to its own row so it can't hop lines
   as counts change. Result: a stable 2-row bar (Sort·Show·Size / Features). */
.ac-wrap .ac-filter-group--feat { flex-basis: 100% !important; }
.ac-wrap .ac-size-btn--active .ac-opt-count,
.ac-wrap .ac-feat-btn--active .ac-opt-count,
.ac-wrap .ac-avail-btn--active .ac-opt-count { opacity: 0.8 !important; }
.ac-wrap .ac-opt--empty { opacity: 0.4 !important; }
.ac-wrap .ac-sort-select {
  padding: 6px 28px 6px 10px !important;
  border: 1px solid #e5e7eb !important;
  border-radius: 6px !important;
  font-family: var(--ac-font, inherit) !important;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%2394a3b8' d='M5 6L0 0h10z'/%3E%3C/svg%3E") no-repeat right 10px center !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  color: #0f172a !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  cursor: pointer !important;
  line-height: 1.4 !important;
  box-shadow: none !important;
  text-transform: none !important;
  letter-spacing: normal !important;
}
.ac-wrap .ac-sort-select:hover {
  border-color: #cbd5e1 !important;
}
.ac-wrap .ac-sort-select:focus-visible {
  outline: 2px solid var(--ac-primary, #0066ff) !important;
  outline-offset: 1px !important;
}

/* Segmented control for Availability — inline pill buttons */
.ac-wrap .ac-avail-btns {
  display: inline-flex !important;
  gap: 0 !important;
  padding: 2px !important;
  background: #f1f5f9 !important;
  border-radius: 6px !important;
  border: none !important;
}
.ac-wrap .ac-avail-btn {
  padding: 5px 12px !important;
  margin: 0 !important;
  border: none !important;
  border-radius: 4px !important;
  background: transparent !important;
  font-family: var(--ac-font, inherit) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  line-height: 1.3 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  color: #64748b !important;
  cursor: pointer !important;
  transition: color .15s ease, background-color .15s ease !important;
  box-shadow: none !important;
  text-shadow: none !important;
  min-height: 0 !important;
  height: auto !important;
  transform: none !important;
}
.ac-wrap .ac-avail-btn:hover {
  color: #0f172a !important;
  background: rgba(255,255,255,0.6) !important;
}
.ac-wrap .ac-avail-btn--active,
.ac-wrap .ac-avail-btn--active:hover {
  background: #fff !important;
  color: #0f172a !important;
  box-shadow: 0 1px 2px rgba(15,23,42,0.06) !important;
  transform: none !important;
}
.ac-wrap .ac-size-btns {
  display: inline-flex !important;
  gap: 0 !important;
  padding: 2px !important;
  background: #f1f5f9 !important;
  border-radius: 6px !important;
  border: none !important;
}
.ac-wrap .ac-size-btn {
  padding: 5px 12px !important;
  margin: 0 !important;
  border: none !important;
  border-radius: 4px !important;
  background: transparent !important;
  font-family: var(--ac-font, inherit) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  line-height: 1.3 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  color: #64748b !important;
  cursor: pointer !important;
  transition: color .15s ease, background-color .15s ease !important;
  box-shadow: none !important;
  text-shadow: none !important;
  min-height: 0 !important;
  height: auto !important;
  transform: none !important;
}
.ac-wrap .ac-size-btn:hover {
  color: #0f172a !important;
  background: rgba(255,255,255,0.6) !important;
}
.ac-wrap .ac-size-btn--active,
.ac-wrap .ac-size-btn--active:hover {
  background: #fff !important;
  color: #0f172a !important;
  box-shadow: 0 1px 2px rgba(15,23,42,0.06) !important;
  transform: none !important;
}
.ac-wrap .ac-filter-count {
  margin-left: auto !important;
  font-size: 12px !important;
  color: #94a3b8 !important;
  white-space: nowrap !important;
  font-weight: 500 !important;
}

/* ─── Grid ───────────────────────────────────────────────────── */
.ac-grid {
  display: grid;
  gap: 24px;
}
.ac-cols-1 { grid-template-columns: 1fr; }
.ac-cols-2 { grid-template-columns: repeat(2, minmax(0,1fr)); }
.ac-cols-3 { grid-template-columns: repeat(3, minmax(0,1fr)); gap: 20px; }
.ac-cols-4 { grid-template-columns: repeat(4, minmax(0,1fr)); gap: 16px; }

/* List layout overrides */
.ac-layout-list { grid-template-columns: 1fr !important; gap: 10px; }

/* Responsive breakpoints */
@media (max-width: 1100px) {
  .ac-cols-4 { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 20px; }
}
@media (max-width: 860px) {
  .ac-cols-3 { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .ac-cols-4 { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 540px) {
  .ac-cols-2, .ac-cols-3, .ac-cols-4 { grid-template-columns: 1fr; gap: 14px; }
}

/* ─── Card Base ──────────────────────────────────────────────── */
.ac-card {
  background: var(--ac-card-bg, #fff);
  border-radius: var(--ac-radius);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform var(--ac-transition), box-shadow var(--ac-transition);
  position: relative;
  min-width: 0; /* prevent grid blowout */
}

/* ── Card Style: Default ── */
.ac-style--default .ac-card {
  box-shadow: var(--ac-shadow);
  border: 1px solid var(--ac-border);
}
.ac-style--default .ac-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--ac-shadow-hover);
}

/* ── Card Style: Flat ── */
.ac-style--flat .ac-card {
  box-shadow: none;
  border: 1.5px solid var(--ac-border);
}
.ac-style--flat .ac-card:hover { border-color: var(--ac-primary); }

/* ── Card Style: Elevated ── */
.ac-style--elevated .ac-card {
  box-shadow: 0 4px 20px rgba(0,0,0,0.10);
  border: none;
}
.ac-style--elevated .ac-card:hover {
  transform: scale(1.02);
  box-shadow: 0 16px 48px rgba(0,0,0,0.18);
}

/* ── Card Style: Dark ── */
.ac-style--dark .ac-card {
  background: #1e293b;
  border: 1px solid #334155;
  box-shadow: 0 2px 12px rgba(0,0,0,0.3);
}
.ac-style--dark .ac-card:hover { box-shadow: 0 8px 32px rgba(0,0,0,0.4); transform: translateY(-3px); }
.ac-style--dark .ac-card__title { color: #fff !important; }
.ac-style--dark .ac-card__size  { color: #94a3b8; }
.ac-style--dark .ac-card__features li { color: #cbd5e1; }
.ac-style--dark .ac-feat-icon   { stroke: var(--ac-accent); }
.ac-style--dark .ac-price__amount { color: var(--ac-accent); }
.ac-style--dark .ac-price__period { color: #94a3b8; }

/* ─── Card density at higher column counts ───────────────────── */
/* 3 columns — slightly tighter */
.ac-cols-3 .ac-card__body         { padding: 14px 16px; gap: 8px; }
.ac-cols-3 .ac-card__title        { font-size: clamp(14px, 1.5vw, 18px); }
.ac-cols-3 .ac-price__amount      { font-size: 19px; }
.ac-cols-3 .ac-card__media        { aspect-ratio: 4/3; }

/* 4 columns — compact */
.ac-cols-4 .ac-card__body         { padding: 12px 14px; gap: 6px; }
.ac-cols-4 .ac-card__title        { font-size: clamp(13px, 1.3vw, 16px); margin-bottom: 2px; }
.ac-cols-4 .ac-card__size         { font-size: 12px; }
.ac-cols-4 .ac-price__amount      { font-size: 18px; }
.ac-cols-4 .ac-card__media        { aspect-ratio: 4/3; }
.ac-cols-4 .ac-card__foot         { padding-top: 10px; gap: 8px; }
.ac-cols-4 .ac-card__features li  { font-size: 12px; }
.ac-cols-4 .ac-btn                { padding: 9px 12px; font-size: 13px; }
.ac-cols-4 .ac-promo-badge        { font-size: 11px; padding: 3px 8px; }

/* ─── Card Media ─────────────────────────────────────────────── */
.ac-card__media {
  position: relative;
  width: 100%;
  aspect-ratio: 16/9;
  overflow: hidden;
  background: var(--ac-secondary);
  flex-shrink: 0;
}
.ac-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
.ac-card:hover .ac-card__media img { transform: scale(1.04); }

/* ─── Badges on image ────────────────────────────────────────── */
.ac-dim-badge {
  position: absolute;
  bottom: 10px;
  left: 10px;
  top: auto;            /* defensive: prevent themes pinning top+bottom */
  right: auto;          /* defensive: prevent full-width stretch */
  height: auto;         /* defensive: size to content, not container */
  width: auto;          /* defensive: size to content, not container */
  max-width: calc(100% - 20px);
  align-self: auto;     /* defensive: ignore flex align-items: stretch */
  background: rgba(0,0,0,.6);
  color: #fff;
  font-size: 11px;
  line-height: 1.4;
  font-weight: 700;
  padding: 3px 9px;
  border-radius: 4px;
  backdrop-filter: blur(4px);
  box-sizing: border-box;
  white-space: nowrap;
}
.ac-status-badge {
  position: absolute;
  top: 10px;
  right: 10px;
  font-size: 11px;
  font-weight: 700;
  padding: 3px 9px;
  border-radius: 4px;
}
.ac-status-badge--inline {
  position: static;
  display: inline-block;
  margin-bottom: 10px;
}
.ac-status--bookable      { background: #dcfce7; color: #15803d; }
.ac-status--lead-capture  { background: #fef3c7; color: #b45309; }
.ac-status--rented,
.ac-status--reserved      { background: #fee2e2; color: #b91c1c; }
.ac-status--hidden        { background: #f1f5f9; color: #64748b; }
.ac-status--other         { background: #e0e7ff; color: #4338ca; }

/* ─── Card Body ──────────────────────────────────────────────── */
.ac-card__body {
  padding: 18px 20px;
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: 10px;
}
.ac-card__head-section {}
.ac-card__title {
  font-size: var(--ac-heading-size);
  font-weight: 700;
  color: var(--ac-primary);
  margin: 0 0 4px;
  line-height: 1.25;
}
.ac-card__size {
  font-size: 13px;
  color: var(--ac-text-muted);
  margin: 0;
}
.ac-card__site {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  font-weight: 600;
  color: var(--ac-text-muted);
  margin: 0 0 6px;
  line-height: 1.2;
}
.ac-card__site-icon { flex-shrink: 0; opacity: .75; }
.ac-style--dark .ac-card__site { color: #94a3b8; }

/* ─── Features list ──────────────────────────────────────────── */
.ac-card__features {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 5px;
  flex: 1;
}
.ac-card__features li {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 13px;
  color: var(--ac-text-muted);
}
.ac-feat-icon { flex-shrink: 0; stroke: var(--ac-primary); }

/* ─── Card Footer ────────────────────────────────────────────── */
.ac-card__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px solid var(--ac-border);
  flex-wrap: wrap;
}
.ac-style--dark .ac-card__foot { border-color: #334155; }

/* ─── Price ──────────────────────────────────────────────────── */
.ac-price { display: flex; align-items: baseline; gap: 2px; }
.ac-price__amount {
  font-size: 22px;
  font-weight: 800;
  color: var(--ac-accent);
  line-height: 1;
}
.ac-price__period {
  font-size: 13px;
  color: var(--ac-text-muted);
  font-weight: 500;
}
/* Promotional price: discounted first-period figure on top, the
   ongoing price stated plainly beneath it. */
.ac-price--promo {
  flex-direction: column;
  align-items: flex-start;
  gap: 1px;
}
.ac-price--promo .ac-price__lead {
  display: flex;
  align-items: baseline;
  gap: 4px;
}
.ac-price__then {
  font-size: 12px;
  color: var(--ac-text-muted);
  font-weight: 500;
}
.ac-style--dark .ac-price__then { color: #94a3b8; }

/* ─── CTA Buttons ────────────────────────────────────────────── */
.ac-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 10px 20px;
  border-radius: var(--ac-btn-radius);
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition: var(--ac-transition);
  line-height: 1;
  white-space: nowrap;
}
.ac-wrap .ac-btn--reserve,
.ac-btn--reserve {
  background: var(--ac-btn-bg);
  color: var(--ac-btn-text);
  border: 2px solid var(--ac-btn-bg);
}
.ac-wrap .ac-btn--reserve:hover,
.ac-btn--reserve:hover {
  filter: brightness(0.88);
  color: var(--ac-btn-text);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0,0,0,0.18);
}
.ac-btn--enquire {
  background: transparent;
  color: var(--ac-text-muted);
  border: 1.5px solid var(--ac-border);
}
.ac-btn--enquire:hover {
  border-color: var(--ac-primary);
  color: var(--ac-primary);
}

/* Sold-out "Join Waitlist" button — styled identically to Reserve   */
/* Now (solid flat button, same padding / radius / weight) but in    */
/* a warm orange tone so it's distinguishable at a glance. Reuses    */
/* .ac-btn--enquire for the click handler.                           */
.ac-wrap .ac-btn--waitlist,
.ac-btn--waitlist {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  background: #ea580c !important;
  color: #fff !important;
  border: 2px solid #ea580c !important;
  font-weight: 700 !important;
  letter-spacing: normal !important;
  box-shadow: none !important;
  text-shadow: none !important;
  transition: filter .15s ease, transform .15s ease, box-shadow .15s ease !important;
}
.ac-wrap .ac-btn--waitlist:hover,
.ac-btn--waitlist:hover {
  background: #ea580c !important;
  border-color: #ea580c !important;
  color: #fff !important;
  filter: brightness(0.92) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 12px rgba(234, 88, 12, 0.25) !important;
}
.ac-wrap .ac-btn--waitlist:active,
.ac-btn--waitlist:active {
  transform: translateY(0) !important;
  box-shadow: none !important;
  filter: brightness(0.88) !important;
}
.ac-btn--waitlist .ac-btn__icon {
  flex-shrink: 0;
  opacity: 0.95;
}

/* Respect reduced-motion preference */
@media (prefers-reduced-motion: reduce) {
  .ac-btn--waitlist,
  .ac-wrap .ac-btn--waitlist,
  .ac-btn--waitlist:hover,
  .ac-wrap .ac-btn--waitlist:hover {
    transform: none !important;
    transition: none !important;
  }
}

/* Purely presentational "Sold Out" chip — non-interactive. */
.ac-wrap .ac-btn--sold-out,
.ac-btn--sold-out {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: #f1f5f9 !important;
  color: #64748b !important;
  border: 1.5px solid #e2e8f0 !important;
  cursor: not-allowed !important;
  pointer-events: none !important;
  font-weight: 600 !important;
}

.ac-btn--full { width: 100%; }

/* ═══════════════════════════════════════════════════════════════
   COMPACT LAYOUT
   ═══════════════════════════════════════════════════════════════ */
.ac-layout-compact .ac-card {
  flex-direction: row;
  align-items: stretch;
  overflow: visible;
}
.ac-layout-compact .ac-card__media {
  width: 38%;
  flex-shrink: 0;
  border-radius: var(--ac-radius) 0 0 var(--ac-radius);
  aspect-ratio: unset;
  min-height: 200px;
}
.ac-layout-compact .ac-card__body {
  flex: 1;
  min-width: 0;
}
.ac-layout-compact .ac-card:hover .ac-card__media img { transform: scale(1.03); }

@media (max-width: 600px) {
  .ac-layout-compact .ac-card { flex-direction: column; }
  .ac-layout-compact .ac-card__media { width: 100%; min-height: unset; aspect-ratio: 16/9; border-radius: var(--ac-radius) var(--ac-radius) 0 0; }
}

/* ═══════════════════════════════════════════════════════════════
   LIST LAYOUT
   ═══════════════════════════════════════════════════════════════ */
.ac-layout-list .ac-card {
  flex-direction: row;
  align-items: center;
  padding: 0;
  overflow: hidden;
}
.ac-layout-list .ac-card__media {
  width: 140px;
  min-height: 90px;
  flex-shrink: 0;
  aspect-ratio: unset;
  border-radius: 0;
}
.ac-layout-list .ac-card__body {
  flex-direction: row;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  padding: 14px 18px;
}
.ac-layout-list .ac-card__head-section { flex: 1; min-width: 180px; }
.ac-layout-list .ac-card__features { flex-direction: row; flex-wrap: wrap; flex: none; }
.ac-layout-list .ac-card__foot {
  border-top: none;
  padding-top: 0;
  margin-top: 0;
  flex-shrink: 0;
}
.ac-layout-list .ac-dim-badge { bottom: auto; top: 8px; left: 8px; }

@media (max-width: 640px) {
  .ac-layout-list .ac-card { flex-direction: column; }
  .ac-layout-list .ac-card__media { width: 100%; min-height: unset; aspect-ratio: 16/9; }
  .ac-layout-list .ac-card__body { flex-direction: column; align-items: flex-start; }
  .ac-layout-list .ac-card__foot { border-top: 1px solid var(--ac-border); padding-top: 12px; }
}

/* ═══════════════════════════════════════════════════════════════
   SINGLE UNIT
   ═══════════════════════════════════════════════════════════════ */
.ac-card--single { overflow: visible; }
.ac-single__inner {
  display: flex;
  gap: 32px;
  align-items: flex-start;
}
.ac-single__media {
  flex: 0 0 45%;
  position: relative;
  border-radius: var(--ac-radius);
  overflow: hidden;
}
.ac-single__media img {
  width: 100%;
  border-radius: var(--ac-radius);
  display: block;
}
.ac-single__body { flex: 1; }
.ac-single__body .ac-card__features { max-width: none; }
.ac-card--single .ac-status-badge { position: static; display: inline-block; margin-bottom: 10px; }

@media (max-width: 720px) {
  .ac-single__inner { flex-direction: column; }
  .ac-single__media { flex: none; width: 100%; }
}

/* ─── Promotion badge ────────────────────────────────────────── */
.ac-promo-badge {
  display: inline-block;
  margin-top: 8px;
  padding: 4px 10px;
  background: #fef3c7;
  color: #92400e;
  border: 1px solid #fde68a;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.3;
}
.ac-style--dark .ac-promo-badge {
  background: #451a03;
  color: #fde68a;
  border-color: #78350f;
}

/* ─── Availability chip ──────────────────────────────────────── */
.ac-avail-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  font-weight: 600;
  color: #15803d;
  background: #dcfce7;
  border-radius: 20px;
  padding: 3px 9px;
  white-space: nowrap;
}
.ac-avail-chip svg { opacity: 0.8; }
.ac-style--dark .ac-avail-chip { background: #14532d; color: #86efac; }
.ac-cols-4 .ac-avail-chip { font-size: 11px; padding: 2px 7px; }

/* ─── Price strip (show_only_price mode) ──────────────────────── */
.ac-price-strip {
  display: inline-flex;
  align-items: baseline;
  gap: 2px;
  background: var(--ac-primary);
  color: #fff;
  padding: 6px 16px;
  border-radius: var(--ac-btn-radius);
  font-size: 20px;
  font-weight: 800;
}
.ac-price-strip__period { font-size: 13px; font-weight: 400; opacity: .8; }

/* ─── Inline shortcodes ──────────────────────────────────────── */
.ac-count { font-size: 14px; color: var(--ac-text); }
.ac-count strong { color: var(--ac-primary); font-size: 1.2em; }
.ac-count--zero  { color: var(--ac-text-muted); }
.ac-price-from   { font-size: 14px; color: var(--ac-text-muted); }
.ac-price-from strong { color: var(--ac-primary); font-size: 1.3em; }
.ac-price-from__period { font-size: .8em; }

/* ─── Enquiry Modal ──────────────────────────────────────────── */
#ac-enquiry-modal { position: fixed; inset: 0; z-index: 99999; }
.ac-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.55);
  backdrop-filter: blur(3px);
}
.ac-modal {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: #fff;
  border-radius: calc(var(--ac-radius) + 4px);
  width: 100%;
  max-width: 520px;
  max-height: 92vh;
  overflow-y: auto;
  z-index: 100000;
  box-shadow: 0 24px 80px rgba(0,0,0,.25);
  padding: 28px 30px;
}
.ac-modal__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 24px;
}
.ac-modal__head h3 { margin: 0 0 4px; font-size: 18px; font-weight: 700; color: var(--ac-text); }
.ac-modal__head p  { margin: 0; font-size: 13px; color: var(--ac-text-muted); }
.ac-modal-close {
  flex-shrink: 0;
  background: none;
  border: none;
  cursor: pointer;
  color: var(--ac-text-muted);
  padding: 4px;
  border-radius: 6px;
  transition: var(--ac-transition);
  display: flex;
}
.ac-modal-close:hover { background: #f1f5f9; color: var(--ac-text); }
/* Harden the close button so host themes (e.g. an orange `button` style)
   can't turn the little × into a big coloured block button. ID-scoped +
   !important so it always wins over theme button rules. */
#ac-enquiry-modal .ac-modal-close {
  flex: 0 0 auto !important;
  width: 36px !important;
  height: 36px !important;
  min-width: 0 !important;
  min-height: 0 !important;
  padding: 6px !important;
  margin: 0 !important;
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 8px !important;
  cursor: pointer !important;
  color: var(--ac-text-muted, #6b7280) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
  font-size: 0 !important;
  text-shadow: none !important;
  appearance: none !important;
  -webkit-appearance: none !important;
}
#ac-enquiry-modal .ac-modal-close:hover { background: #f1f5f9 !important; color: var(--ac-text, #1a1a2e) !important; }
#ac-enquiry-modal .ac-modal-close svg { width: 20px !important; height: 20px !important; display: block !important; flex: none !important; }
.ac-modal__fields { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 16px; }
.ac-modal__field { display: flex; flex-direction: column; gap: 5px; }
.ac-modal__field--full { grid-column: 1 / -1; }
.ac-modal__field label { font-size: 12px; font-weight: 700; color: var(--ac-text); }
/* Secondary billing period, e.g. a weekly figure under the monthly price.
   Deliberately quiet: it is supporting information, not a competing price. */
.ac-price__alt {
  margin-top: 2px;
  font-size: 12px;
  font-weight: 500;
  color: var(--ac-muted, #6b7280);
  line-height: 1.3;
}
.ac-price__alt-period { margin-left: 1px; }

.ac-modal__field input,
.ac-modal__field select,
.ac-modal__field textarea {
  padding: 9px 12px;
  border: 1px solid var(--ac-border);
  border-radius: 7px;
  font-size: 13px;
  color: var(--ac-text);
  background: #fafafa;
  width: 100%;
  box-sizing: border-box;
  transition: border-color .15s;
}
/* Match the height of the text inputs — host themes often size selects
   differently, so pin the box model rather than inheriting theirs. */
.ac-modal__field select {
  -webkit-appearance: none;
  appearance: none;
  height: auto;
  /* Deliberately no line-height here. Setting one (it used to be 1.4) makes the
     select a couple of pixels taller or shorter than the text inputs beside it,
     in whichever direction the surrounding theme happens to differ. Leaving it
     alone lets the select size the same way the inputs do. A theme that sets an
     explicit line-height on its inputs should match it here via Custom CSS. */
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpolyline points='1,1 6,6 11,1'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  padding-right: 32px;
}
.ac-modal__field input:focus,
.ac-modal__field select:focus,
.ac-modal__field textarea:focus {
  outline: none;
  border-color: var(--ac-primary);
  background: #fff;
  box-shadow: 0 0 0 3px rgba(0,102,255,.1);
}
.ac-modal__field textarea { resize: vertical; min-height: 90px; }
.ac-req { color: #dc2626; }
.ac-modal-response {
  padding: 10px 14px;
  border-radius: 7px;
  font-size: 13px;
  margin-bottom: 14px;
}
.ac-modal-response--ok   { background: #dcfce7; color: #15803d; }
.ac-modal-response--fail { background: #fee2e2; color: #dc2626; }
@media (max-width: 480px) {
  .ac-modal { padding: 22px 18px; max-width: calc(100% - 24px); }
  .ac-modal__fields { grid-template-columns: 1fr; }
}

/* ─── Card hidden (filter) ───────────────────────────────────── */
.ac-card--hidden { display: none !important; }

/* ─── Admin-only hint (visible to logged-in admins only) ───── */
/* Renders in place of the Reserve button when no booking URL    */
/* is configured. Helps diagnose missing-button reports without  */
/* having to open browser dev tools or check the admin manually. */
.ac-admin-hint {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  font-size: 12px;
  font-weight: 600;
  color: #92400e;
  background: #fef3c7;
  border: 1px dashed #f59e0b;
  border-radius: var(--ac-btn-radius, 8px);
  text-decoration: none;
  line-height: 1.3;
  cursor: help;
  transition: background .15s, border-color .15s;
}
.ac-admin-hint:hover {
  background: #fde68a;
  border-color: #d97706;
  text-decoration: none;
  color: #78350f;
}
.ac-admin-hint__cta {
  font-weight: 700;
  color: #b45309;
  white-space: nowrap;
}

/* ─── Urgency badge ────────────────────────────────────────── */
/* "Only X left" pill. Renders an attention-grabbing red/amber */
/* gradient with a soft pulsing dot, inherits border-radius    */
/* from the plugin's design tokens so it feels on-brand.       */
/* A CTA must never be clipped by the edge of its card, whatever the look or
   how little room the price column leaves. */
.ac-wrap .ac-btn { max-width: 100%; }
/* Classic keeps its own inline footer markup, where the badge and the button
   are siblings of the price block. The row already wraps; this stops the
   button itself being compressed to an unreadable width first. */
.ac-wrap .ac-card__foot > .ac-btn { flex: 0 0 auto; }
.ac-wrap .ac-card__foot > .ac-urgency-badge,
.ac-wrap .ac-card__foot > .ac-avail-chip { flex: 0 0 auto; }

.ac-urgency-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #fff;
  background: linear-gradient(135deg, #dc2626 0%, #ea580c 100%);
  border-radius: 999px;
  box-shadow: 0 2px 8px rgba(220, 38, 38, 0.25);
  white-space: nowrap;
  vertical-align: middle;
  margin-bottom: 4px;
}

.ac-urgency-badge__dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #fff;
  display: inline-block;
  animation: sxPulse 1.6s ease-in-out infinite;
  flex-shrink: 0;
}

@keyframes sxPulse {
  0%, 100% { opacity: 0.5; transform: scale(0.85); }
  50%      { opacity: 1;   transform: scale(1.1);  }
}

/* When count gets really tight (1 or 2), dial up the urgency — */
/* pure red, slightly bigger, faster pulse.                     */
.ac-urgency-badge[data-count="1"],
.ac-urgency-badge[data-count="2"] {
  background: #dc2626;
  box-shadow: 0 2px 12px rgba(220, 38, 38, 0.4);
}

.ac-urgency-badge[data-count="1"] .ac-urgency-badge__dot,
.ac-urgency-badge[data-count="2"] .ac-urgency-badge__dot {
  animation-duration: 1s;
}

/* Respect users who've asked not to see motion (accessibility). */
@media (prefers-reduced-motion: reduce) {
  .ac-urgency-badge__dot { animation: none; opacity: 1; }
}

/* Position inside single-unit card so it sits next to the      */
/* status badge without crowding the title.                     */
.ac-card--single .ac-urgency-badge { margin-left: 8px; }

/* ─── Multi-site selector tabs ─────────────────────────────── */
/* Minimal text-based filter tabs above the unit grid. No pills, */
/* no card container — just clean labels with a subtle underline */
/* on the active one and a thin baseline across the whole row.   */
/*                                                               */
/* NOTE: Selectors are scoped under .ac-wrap and some visual     */
/* resets use !important to defeat aggressive WordPress-theme    */
/* button styling (Elementor / Astra / Divi / etc. all ship      */
/* global button styles with higher specificity than a plain     */
/* class selector). We only use !important on the properties     */
/* themes commonly override; behaviour and layout stay free for  */
/* child-theme overrides.                                        */

.ac-wrap .ac-site-tabs {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 4px !important;
  margin: 0 0 24px !important;
  padding: 0 !important;
  border-bottom: 1px solid #e5e7eb !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  scrollbar-width: none;
  -ms-overflow-style: none;
  list-style: none !important;
}

.ac-wrap .ac-site-tabs::-webkit-scrollbar {
  display: none;
}

/* Scroll affordance: when the location tabs overflow, fade the right
   edge and show a chevron so users know there are more locations. */
.ac-wrap .ac-site-tabs-wrap {
  position: relative !important;
  margin: 0 0 24px !important;
}
.ac-wrap .ac-site-tabs-wrap .ac-site-tabs {
  margin: 0 !important;
}
.ac-wrap .ac-site-tabs-wrap::after {
  content: "" !important;
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 1px !important;
  width: 56px !important;
  pointer-events: none !important;
  background: linear-gradient(to right, rgba(255,255,255,0), rgba(255,255,255,0.96)) !important;
  opacity: 0 !important;
  transition: opacity .15s ease !important;
}
.ac-wrap .ac-site-tabs-wrap.ac-site-tabs--scrollable:not(.ac-site-tabs--end)::after {
  opacity: 1 !important;
}
.ac-wrap .ac-site-tabs__more {
  position: absolute !important;
  top: 0 !important;
  bottom: 1px !important;
  right: 0 !important;
  display: none !important;
  align-items: center !important;
  justify-content: center !important;
  width: 34px !important;
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
  background: transparent !important;
  color: #0f172a !important;
  cursor: pointer !important;
  box-shadow: none !important;
  min-height: 0 !important;
  height: auto !important;
}
.ac-wrap .ac-site-tabs-wrap.ac-site-tabs--scrollable:not(.ac-site-tabs--end) .ac-site-tabs__more {
  display: inline-flex !important;
}
.ac-style--dark .ac-site-tabs-wrap::after {
  background: linear-gradient(to right, rgba(15,23,42,0), rgba(15,23,42,0.96)) !important;
}
.ac-style--dark .ac-site-tabs__more { color: #e2e8f0 !important; }

/* Hard-reset the button to a clean slate — themes apply heavy  */
/* defaults to <button>, so we need to override them explicitly. */
.ac-wrap .ac-site-tab {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  padding: 10px 2px !important;
  margin: 0 16px -1px 0 !important;     /* gap between tabs + overlap baseline */
  min-height: 0 !important;
  height: auto !important;
  width: auto !important;
  max-width: none !important;

  font-family: var(--ac-font, inherit) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  line-height: 1.3 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  text-align: left !important;
  text-decoration: none !important;

  color: #64748b !important;
  background: transparent !important;
  background-image: none !important;
  border: none !important;
  border-top: none !important;
  border-left: none !important;
  border-right: none !important;
  border-bottom: 2px solid transparent !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  text-shadow: none !important;

  cursor: pointer !important;
  white-space: nowrap !important;
  transition: color .15s ease, border-color .15s ease !important;
  outline: none !important;
  transform: none !important;
  opacity: 1 !important;
}

.ac-wrap .ac-site-tab:hover {
  color: #0f172a !important;
  background: transparent !important;
  border-bottom-color: transparent !important;
  transform: none !important;
  box-shadow: none !important;
}

.ac-wrap .ac-site-tab:focus,
.ac-wrap .ac-site-tab:focus-visible {
  outline: 2px solid var(--ac-primary, #0066ff) !important;
  outline-offset: 2px !important;
  box-shadow: none !important;
  background: transparent !important;
}

.ac-wrap .ac-site-tab--active,
.ac-wrap .ac-site-tab--active:hover {
  color: var(--ac-primary, #0066ff) !important;
  background: transparent !important;
  border-bottom-color: var(--ac-primary, #0066ff) !important;
  transform: none !important;
  box-shadow: none !important;
}

.ac-wrap .ac-site-tab__icon { display: none !important; }

.ac-wrap .ac-site-tab__label {
  display: inline-block !important;
  color: inherit !important;
}

.ac-wrap .ac-site-tab__count {
  display: inline-block !important;
  color: #94a3b8 !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  font-variant-numeric: tabular-nums;
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  min-width: 0 !important;
  height: auto !important;
  box-shadow: none !important;
}

.ac-wrap .ac-site-tab--active .ac-site-tab__count {
  color: var(--ac-primary, #0066ff) !important;
  opacity: 0.7;
}

/* Card is hidden (filtered out by site tab) */
.ac-card--site-hidden { display: none !important; }
.ac-card--size-hidden { display: none !important; }

/* ── Size tabs (exclusive Small/Medium/Large — mirrors .ac-site-tab) ── */
.ac-wrap .ac-size-tabs-wrap {
  margin: 0 0 24px !important;
}
.ac-wrap .ac-size-tabs {
  display: flex !important;
  justify-content: center !important;
  gap: 40px !important;
  margin: 0 !important;
  border-bottom: 1px solid #e2e8f0 !important;
}
.ac-wrap .ac-size-tab {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  padding: 14px 4px !important;
  margin: 0 0 -1px 0 !important;
  min-height: 0 !important;
  height: auto !important;
  width: auto !important;
  max-width: none !important;

  font-family: var(--ac-font, inherit) !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  text-align: left !important;
  text-decoration: none !important;

  color: #64748b !important;
  background: transparent !important;
  background-image: none !important;
  border: none !important;
  border-bottom: 2px solid transparent !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  text-shadow: none !important;

  cursor: pointer !important;
  white-space: nowrap !important;
  transition: color .15s ease, border-color .15s ease !important;
  outline: none !important;
  transform: none !important;
  opacity: 1 !important;
}
.ac-wrap .ac-size-tab:hover {
  color: #0f172a !important;
  background: transparent !important;
  border-bottom-color: transparent !important;
  transform: none !important;
  box-shadow: none !important;
}
.ac-wrap .ac-size-tab:focus,
.ac-wrap .ac-size-tab:focus-visible {
  outline: 2px solid var(--ac-primary, #0066ff) !important;
  outline-offset: 2px !important;
  box-shadow: none !important;
  background: transparent !important;
}
.ac-wrap .ac-size-tab--active,
.ac-wrap .ac-size-tab--active:hover {
  color: var(--ac-primary, #0066ff) !important;
  background: transparent !important;
  border-bottom-color: var(--ac-primary, #0066ff) !important;
  transform: none !important;
  box-shadow: none !important;
}
.ac-wrap .ac-size-tab__label {
  display: inline-block !important;
  color: inherit !important;
}
.ac-wrap .ac-size-tab__count {
  display: inline-block !important;
  color: #475569 !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  font-variant-numeric: tabular-nums;
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  min-width: 0 !important;
  height: auto !important;
  box-shadow: none !important;
}
.ac-wrap .ac-size-tab--active .ac-size-tab__count {
  color: var(--ac-primary, #0066ff) !important;
  opacity: 1 !important;
}
.ac-style--dark .ac-size-tabs { border-bottom-color: rgba(255,255,255,.14) !important; }

/* Hidden state-sync buttons used by size_tabs. Needs !important because
   the base .ac-size-btns rule sets display:inline-flex !important, which
   would otherwise beat an inline style="display:none". */
.ac-wrap .ac-size-btns--sync,
.ac-wrap .ac-size-btns--sync .ac-size-btn { display: none !important; }

/* ── Size guide ──────────────────────────────────────────────── */
.ac-size-guide {
  margin: 0 0 18px;
}
.ac-size-guide__toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 14px;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #fff;
  font-family: var(--ac-font, inherit);
  font-size: 13px;
  font-weight: 600;
  color: #334155;
  cursor: pointer;
  transition: border-color .15s ease, background-color .15s ease;
}
.ac-size-guide__toggle:hover { border-color: #cbd5e1; background: #f8fafc; }
.ac-size-guide__chevron { font-size: 11px; transition: transform .2s ease; }
.ac-size-guide--open .ac-size-guide__chevron { transform: rotate(180deg); }
.ac-size-guide__panel {
  margin-top: 10px;
  padding: 16px;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  background: #f8fafc;
}
.ac-size-guide__hint {
  margin: 0 0 12px;
  font-size: 12px;
  color: #64748b;
}
.ac-size-guide__options {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 8px;
}
.ac-size-guide__opt {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 11px 14px;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #fff;
  text-align: left;
  font-family: var(--ac-font, inherit);
  cursor: pointer;
  transition: border-color .15s ease, box-shadow .15s ease, transform .05s ease;
}
.ac-size-guide__opt:hover {
  border-color: var(--ac-btn-bg, #0066ff);
  box-shadow: 0 1px 3px rgba(15,23,42,0.08);
}
.ac-size-guide__opt:active { transform: translateY(1px); }
.ac-size-guide__opt-title { font-size: 13px; font-weight: 600; color: #1e293b; }
.ac-size-guide__opt-sub   { font-size: 11px; color: #64748b; }
.ac-style--dark .ac-size-guide__toggle,
.ac-style--dark .ac-size-guide__panel,
.ac-style--dark .ac-size-guide__opt { background: #1e293b; border-color: #334155; color: #e2e8f0; }
.ac-style--dark .ac-size-guide__opt-title { color: #f1f5f9; }
.ac-style--dark .ac-size-guide__hint,
.ac-style--dark .ac-size-guide__opt-sub { color: #94a3b8; }

/* Empty-state when filters leave nothing */
.ac-site-empty {
  padding: 40px 20px;
  text-align: center;
  color: #6b7280;
  font-size: 14px;
  background: var(--ac-secondary, #f5f7fa);
  border-radius: var(--ac-radius, 12px);
  margin: 0;
  grid-column: 1 / -1;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .ac-wrap .ac-site-tab { transition: none !important; }
}

/* Mobile */
@media (max-width: 640px) {
  .ac-wrap .ac-site-tabs {
    -webkit-overflow-scrolling: touch;
  }
  .ac-wrap .ac-site-tab {
    font-size: 13px !important;
    margin-right: 12px !important;
  }
}

/* ============================================================
   Storefront layout "looks" (v1.5.0) — scoped skins.
   Classic uses the existing card styles (no overrides needed).
   ============================================================ */

/* ── Compact List ─────────────────────────────────────────── */
.ac-wrap.ac-look--compact .ac-grid { display: flex; flex-direction: column; gap: 10px; }
.ac-wrap.ac-look--compact .ac-card--compact {
	display: flex; align-items: center; gap: 16px;
	padding: 14px 16px; background: #fff;
	border: 1px solid #e7eef7; border-radius: var(--ac-radius, 12px);
	box-shadow: 0 1px 3px rgba(10,30,60,.05);
	transition: box-shadow .18s ease, border-color .18s ease;
}
.ac-wrap.ac-look--compact .ac-card--compact:hover { box-shadow: 0 6px 20px rgba(10,30,60,.10); border-color: #d3e0f0; }
.ac-wrap.ac-look--compact .ac-cx__thumb { flex: 0 0 68px; width: 68px; height: 68px; border-radius: 8px; overflow: hidden; background: #f4f8fe; }
.ac-wrap.ac-look--compact .ac-cx__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ac-wrap.ac-look--compact .ac-cx__main { flex: 1 1 auto; min-width: 0; }
.ac-wrap.ac-look--compact .ac-cx__id { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ac-wrap.ac-look--compact .ac-card__title { font-size: 16px; margin: 0; font-weight: 700; color: #0c2038; line-height: 1.2; }
.ac-wrap.ac-look--compact .ac-cx__meta { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 4px; font-size: 13px; color: #566a83; }
.ac-wrap.ac-look--compact .ac-cx__size { font-weight: 600; color: #33455c; }
.ac-wrap.ac-look--compact .ac-cx__dim { color: #7a8aa0; }
.ac-wrap.ac-look--compact .ac-cx__site { display: inline-flex; align-items: center; gap: 4px; }
.ac-wrap.ac-look--compact .ac-cx__end { flex: 0 0 auto; display: flex; align-items: center; gap: 16px; }
.ac-wrap.ac-look--compact .ac-price { display: flex; align-items: baseline; gap: 3px; text-align: right; }
/* Same stacking as the finder look: badge above the button so neither is
   squeezed and the CTA keeps its natural width. */
.ac-wrap.ac-look--compact .ac-cx__actions {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	justify-content: center;
	gap: 6px;
	flex: 0 1 auto;
	min-width: 0;
}
@media (max-width: 620px) {
	.ac-wrap.ac-look--compact .ac-card--compact { flex-wrap: wrap; }
	.ac-wrap.ac-look--compact .ac-cx__end { width: 100%; justify-content: space-between; border-top: 1px solid #eef2f7; padding-top: 10px; }
}

/* ── Space Finder ─────────────────────────────────────────── */
.ac-wrap.ac-look--finder .ac-card--finder {
	display: flex; flex-direction: column; height: 100%;
	background: #fff; border: 1px solid #e7eef7; overflow: hidden;
	border-radius: var(--ac-radius, 14px);
	box-shadow: 0 2px 6px rgba(10,30,60,.06);
	transition: transform .18s ease, box-shadow .18s ease;
}
.ac-wrap.ac-look--finder .ac-card--finder:hover { transform: translateY(-3px); box-shadow: 0 16px 40px -18px rgba(10,30,60,.35); }
.ac-wrap.ac-look--finder .ac-fn__media { position: relative; aspect-ratio: 16 / 10; background: #f4f8fe; }
.ac-wrap.ac-look--finder .ac-fn__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ac-wrap.ac-look--finder .ac-fn__promo { position: absolute; top: 10px; left: 10px; background: var(--ac-accent, #ff5500); color: #fff; font-size: 11px; font-weight: 700; padding: 4px 9px; border-radius: 100px; }
.ac-wrap.ac-look--finder .ac-fn__body { display: flex; flex-direction: column; gap: 8px; padding: 16px 16px 18px; flex: 1; }
.ac-wrap.ac-look--finder .ac-fn__site { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 600; color: #7a8aa0; }
.ac-wrap.ac-look--finder .ac-fn__hero { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.ac-wrap.ac-look--finder .ac-fn__size { font-size: 22px; font-weight: 800; letter-spacing: -.02em; color: var(--ac-primary, #0066ff); line-height: 1.1; }
.ac-wrap.ac-look--finder .ac-fn__dim { font-size: 13px; font-weight: 600; color: #7a8aa0; }
.ac-wrap.ac-look--finder .ac-fn__name { font-size: 14px; font-weight: 600; color: #33455c; margin: 0; }
.ac-wrap.ac-look--finder .ac-fn__fits { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.ac-wrap.ac-look--finder .ac-fn__fits li { display: flex; align-items: flex-start; gap: 7px; font-size: 13.5px; color: #445566; line-height: 1.4; }
.ac-wrap.ac-look--finder .ac-fn__fits li svg { flex: none; color: var(--ac-primary, #0066ff); margin-top: 2px; }
.ac-wrap.ac-look--finder .ac-fn__foot { margin-top: auto; padding-top: 12px; display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.ac-wrap.ac-look--finder .ac-fn__from { font-size: 12px; color: #7a8aa0; margin-right: 2px; }
.ac-wrap.ac-look--finder .ac-price__amount { font-size: 20px; font-weight: 800; color: #0c2038; }
/* Price column must be allowed to shrink, or a long promo line ("£40.00 first
   2 months") forces the actions out past the edge of the card. */
.ac-wrap.ac-look--finder .ac-fn__price { flex: 1 1 auto; min-width: 0; }
/* Availability badge stacked ABOVE the button, not beside it. Side by side they
   competed for one line and pushed the CTA outside the card — which only began
   to show once real availability data existed and the badge started rendering. */
.ac-wrap.ac-look--finder .ac-fn__actions {
	flex: 0 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 6px;
}


/* Feature / group filter chips (auto-derived) - segmented control, mirrors .ac-size-btn so host themes cannot restyle it */
.ac-wrap .ac-feat-btns {
	display: inline-flex !important;
	flex-wrap: wrap !important;
	gap: 0 !important;
	padding: 2px !important;
	background: #f1f5f9 !important;
	border-radius: 6px !important;
	border: none !important;
}
.ac-wrap .ac-feat-btn {
	padding: 5px 12px !important;
	margin: 0 !important;
	border: none !important;
	border-radius: 4px !important;
	background: transparent !important;
	font-family: var(--ac-font, inherit) !important;
	font-size: 12px !important;
	font-weight: 500 !important;
	line-height: 1.3 !important;
	letter-spacing: normal !important;
	text-transform: none !important;
	color: #64748b !important;
	cursor: pointer !important;
	transition: color .15s ease, background-color .15s ease !important;
	box-shadow: none !important;
	text-shadow: none !important;
	min-height: 0 !important;
	height: auto !important;
	transform: none !important;
}
.ac-wrap .ac-feat-btn:hover {
	color: #0f172a !important;
	background: rgba(255,255,255,0.6) !important;
}
.ac-wrap .ac-feat-btn--active,
.ac-wrap .ac-feat-btn--active:hover {
	background: #fff !important;
	color: #0f172a !important;
	box-shadow: 0 1px 2px rgba(15,23,42,0.06) !important;
	transform: none !important;
}
.ac-card--feat-hidden { display: none !important; }

/* Neater "Not sure what size?" toggle - resist themes turning it into a loud block */
.ac-wrap .ac-size-guide__toggle {
	background: #fff !important;
	border: 1px solid #e2e8f0 !important;
	color: #475569 !important;
	padding: 7px 12px !important;
	font-size: 12.5px !important;
	font-weight: 600 !important;
	border-radius: 8px !important;
	box-shadow: none !important;
}
.ac-wrap .ac-size-guide__toggle:hover {
	border-color: #cbd5e1 !important;
	background: #f8fafc !important;
	color: #334155 !important;
}

/* ═══════════════════════════════════════════════════════════════════
   Amax Connect — filter redesign v3 (multi-select, chips, drawer)
   ═══════════════════════════════════════════════════════════════════ */

/* Availability filter now uses its own composable hidden class */
.ac-wrap .ac-card--avail-hidden { display: none !important; }

/* ── Active-filter chips row (always visible in the results view) ── */
.ac-wrap .ac-active-filters {
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 8px 10px !important;
  margin: 0 0 18px 0 !important;
  padding: 12px 0 0 0 !important;
  border-top: 1px solid #eef2f7 !important;
}
.ac-wrap .ac-active-filters .ac-filter-count {
  margin: 0 !important;
  font-size: 13px !important;
  color: #475569 !important;
  font-weight: 600 !important;
  white-space: nowrap !important;
}
.ac-wrap .ac-active-filters .ac-filter-count #ac-visible-count {
  color: #0f172a !important;
  font-variant-numeric: tabular-nums !important;
}
.ac-wrap .ac-chips {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 7px !important;
  flex: 1 1 auto !important;
  min-width: 0 !important;
}
.ac-wrap .ac-chip {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  color: #0f172a !important;
  background: #f1f5f9 !important;
  border: 1px solid #e2e8f0 !important;
  padding: 4px 5px 4px 11px !important;
  border-radius: 100px !important;
  line-height: 1.4 !important;
}
.ac-wrap .ac-chip__cat { font-style: normal !important; color: #64748b !important; font-weight: 600 !important; }
.ac-wrap .ac-chip__x {
  appearance: none !important;
  border: 0 !important;
  cursor: pointer !important;
  width: 19px !important;
  height: 19px !important;
  border-radius: 50% !important;
  display: inline-grid !important;
  place-items: center !important;
  padding: 0 !important;
  background: #e2e8f0 !important;
  color: #475569 !important;
  font-size: 13px !important;
  line-height: 1 !important;
  transition: background .14s ease, color .14s ease !important;
}
.ac-wrap .ac-chip__x:hover { background: var(--ac-accent, #ff5500) !important; color: #fff !important; }
.ac-wrap .ac-clear-all {
  appearance: none !important;
  border: 0 !important;
  background: none !important;
  font-family: var(--ac-font, inherit) !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  color: #64748b !important;
  cursor: pointer !important;
  text-decoration: underline !important;
  text-underline-offset: 2px !important;
  padding: 2px 4px !important;
  margin-left: auto !important;
}
.ac-wrap .ac-clear-all:hover { color: var(--ac-accent, #ff5500) !important; }

/* ── Empty state after filtering ── */
.ac-wrap .ac-filter-empty {
  grid-column: 1 / -1 !important;
  text-align: center !important;
  color: #64748b !important;
  font-size: 14px !important;
  padding: 32px 20px !important;
  border: 1px dashed #e2e8f0 !important;
  border-radius: 12px !important;
  margin: 0 !important;
}

/* ── Size-guide "Ask us" lead-capture line ── */
.ac-wrap .ac-size-guide__ask { margin: 12px 0 2px 0 !important; font-size: 12.5px !important; color: #64748b !important; }
.ac-wrap .ac-size-guide__ask-link {
  appearance: none !important;
  border: 0 !important;
  background: none !important;
  padding: 0 !important;
  font-family: var(--ac-font, inherit) !important;
  font-size: 12.5px !important;
  font-weight: 700 !important;
  color: var(--ac-primary, #0066ff) !important;
  cursor: pointer !important;
  text-decoration: none !important;
  text-transform: none !important;
  letter-spacing: normal !important;
}
.ac-wrap .ac-size-guide__ask-link:hover { text-decoration: underline !important; }

/* ── Harden the size-guide option cards so host themes can't restyle them ── */
.ac-wrap .ac-size-guide__opt {
  display: flex !important;
  flex-direction: column !important;
  gap: 2px !important;
  text-align: left !important;
  align-items: flex-start !important;
  padding: 10px 12px !important;
  margin: 0 !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 10px !important;
  background: #fff !important;
  color: #1e293b !important;
  cursor: pointer !important;
  box-shadow: none !important;
  text-shadow: none !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  line-height: 1.3 !important;
  min-height: 0 !important;
  height: auto !important;
  transform: none !important;
  transition: border-color .14s ease, background .14s ease !important;
  font-family: var(--ac-font, inherit) !important;
}
.ac-wrap .ac-size-guide__opt:hover { border-color: var(--ac-primary, #0066ff) !important; background: #f8fafc !important; }
.ac-wrap .ac-size-guide__opt-title { font-size: 13px !important; font-weight: 600 !important; color: #1e293b !important; }
.ac-wrap .ac-size-guide__opt-sub { font-size: 11px !important; color: #64748b !important; font-weight: 500 !important; }

/* ── Filters panel: inline on desktop; mobile bits hidden ── */
.ac-wrap .ac-filters-panel { display: block !important; }
.ac-wrap .ac-filters-trigger,
.ac-wrap .ac-filters-panel__head,
.ac-wrap .ac-filters-panel__foot,
.ac-wrap .ac-filters-scrim { display: none !important; }

/* ── Dark style variants ── */
.ac-style--dark .ac-chip { background: #1e293b !important; border-color: #334155 !important; color: #e2e8f0 !important; }
.ac-style--dark .ac-chip__cat { color: #94a3b8 !important; }
.ac-style--dark .ac-chip__x { background: #334155 !important; color: #cbd5e1 !important; }
.ac-style--dark .ac-active-filters { border-top-color: #243043 !important; }
.ac-style--dark .ac-active-filters .ac-filter-count { color: #cbd5e1 !important; }
.ac-style--dark .ac-active-filters .ac-filter-count #ac-visible-count { color: #f1f5f9 !important; }
.ac-style--dark .ac-filter-empty { border-color: #334155 !important; color: #94a3b8 !important; }
.ac-style--dark .ac-size-guide__opt { background: #1e293b !important; border-color: #334155 !important; color: #e2e8f0 !important; }
.ac-style--dark .ac-size-guide__opt-title { color: #f1f5f9 !important; }
.ac-style--dark .ac-size-guide__opt-sub { color: #94a3b8 !important; }

/* ─────────────────────────────  MOBILE  ───────────────────────────── */
@media (max-width: 720px) {
  .ac-wrap .ac-filters-trigger {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    width: 100% !important;
    padding: 11px 14px !important;
    margin: 0 0 14px 0 !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 10px !important;
    background: #fff !important;
    color: #0f172a !important;
    cursor: pointer !important;
    font-family: var(--ac-font, inherit) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    box-shadow: none !important;
    text-transform: none !important;
    letter-spacing: normal !important;
  }
  .ac-wrap .ac-filters-trigger__badge {
    background: var(--ac-primary, #0066ff) !important;
    color: #fff !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    min-width: 18px !important;
    height: 18px !important;
    border-radius: 100px !important;
    display: none !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 5px !important;
  }
  .ac-wrap .ac-filters-trigger__badge--on { display: inline-flex !important; }

  .ac-wrap .ac-filters-panel {
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    z-index: 100000 !important;
    background: #fff !important;
    border-radius: 18px 18px 0 0 !important;
    box-shadow: 0 -18px 50px -12px rgba(0,0,0,.4) !important;
    max-height: 84vh !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    transform: translateY(101%) !important;
    transition: transform .28s cubic-bezier(.22,.61,.36,1) !important;
    padding: 0 16px !important;
    margin: 0 !important;
  }
  .ac-wrap .ac-filters-panel.ac-filters-panel--open { transform: translateY(0) !important; }
  .ac-wrap .ac-filters-panel__head {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    position: sticky !important;
    top: 0 !important;
    background: #fff !important;
    padding: 16px 0 12px 0 !important;
    border-bottom: 1px solid #eef2f7 !important;
    z-index: 2 !important;
  }
  .ac-wrap .ac-filters-panel__title { font-size: 16px !important; font-weight: 800 !important; color: #0f172a !important; }
  .ac-wrap .ac-filters-panel__close {
    appearance: none !important;
    border: 0 !important;
    background: #f1f5f9 !important;
    width: 32px !important;
    height: 32px !important;
    border-radius: 50% !important;
    cursor: pointer !important;
    font-size: 20px !important;
    line-height: 1 !important;
    color: #475569 !important;
    padding: 0 !important;
  }
  .ac-wrap .ac-filters-panel__foot {
    display: block !important;
    position: sticky !important;
    bottom: 0 !important;
    background: #fff !important;
    padding: 12px 0 16px 0 !important;
    border-top: 1px solid #eef2f7 !important;
  }
  .ac-wrap .ac-filters-panel__apply {
    display: block !important;
    width: 100% !important;
    appearance: none !important;
    border: 0 !important;
    background: var(--ac-btn-bg, var(--ac-primary, #0066ff)) !important;
    color: var(--ac-btn-text, #fff) !important;
    font-family: var(--ac-font, inherit) !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    padding: 14px !important;
    border-radius: 11px !important;
    cursor: pointer !important;
    text-transform: none !important;
    letter-spacing: normal !important;
  }
  .ac-wrap .ac-filters-scrim {
    display: block !important;
    position: fixed !important;
    inset: 0 !important;
    background: rgba(6,12,24,.5) !important;
    opacity: 0 !important;
    pointer-events: none !important;
    transition: opacity .25s ease !important;
    z-index: 99999 !important;
  }
  .ac-wrap.ac-filters-drawer-open .ac-filters-scrim { opacity: 1 !important; pointer-events: auto !important; }

  /* Inside the drawer, stack each facet label above its options */
  .ac-wrap .ac-filters-panel .ac-filter-bar { flex-direction: column !important; align-items: stretch !important; gap: 16px !important; padding-top: 14px !important; }
  .ac-wrap .ac-filters-panel .ac-filter-group { flex-direction: column !important; align-items: flex-start !important; gap: 8px !important; }
  .ac-wrap .ac-filters-panel .ac-filter-label { width: auto !important; }
  .ac-wrap .ac-filters-panel .ac-avail-btns,
  .ac-wrap .ac-filters-panel .ac-size-btns,
  .ac-wrap .ac-filters-panel .ac-feat-btns { flex-wrap: wrap !important; }
  .ac-wrap .ac-filters-panel .ac-sort-select { width: 100% !important; }

  .ac-style--dark .ac-filters-panel,
  .ac-style--dark .ac-filters-panel__head,
  .ac-style--dark .ac-filters-panel__foot { background: #0f172a !important; }
  .ac-style--dark .ac-filters-panel__head { border-bottom-color: #243043 !important; }
  .ac-style--dark .ac-filters-panel__foot { border-top-color: #243043 !important; }
  .ac-style--dark .ac-filters-trigger { background: #1e293b !important; border-color: #334155 !important; color: #e2e8f0 !important; }
  .ac-style--dark .ac-filters-panel__close { background: #334155 !important; color: #cbd5e1 !important; }
}


/* ── Features filter: high-visibility pills (scoped to the features group so
   other pages' sort/size/show filters are untouched). Faint default made the
   active state nearly invisible, which read as 'only one selectable'. ── */
.ac-wrap .ac-filter-group--feat { align-items: flex-start !important; gap: 12px !important; }
.ac-wrap .ac-filter-group--feat .ac-filter-label {
  font-size: 13px !important;
  font-weight: 700 !important;
  color: #334155 !important;
  padding-top: 9px !important;
}
.ac-wrap .ac-filter-group--feat .ac-feat-btns {
  display: inline-flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  padding: 0 !important;
  background: transparent !important;
  border-radius: 0 !important;
  border: none !important;
}
.ac-wrap .ac-filter-group--feat .ac-feat-btn {
  padding: 8px 16px !important;
  border: 1.5px solid #cbd5e1 !important;
  border-radius: 999px !important;
  background-color: #ffffff !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #334155 !important;
  box-shadow: none !important;
}
.ac-wrap .ac-filter-group--feat .ac-feat-btn:hover {
  color: #0f172a !important;
  border-color: var(--ac-accent, #e8750a) !important;
  background-color: #ffffff !important;
}
.ac-wrap .ac-filter-group--feat .ac-feat-btn--active,
.ac-wrap .ac-filter-group--feat .ac-feat-btn--active:hover {
  background-color: var(--ac-accent, #e8750a) !important;
  border-color: var(--ac-accent, #e8750a) !important;
  color: #ffffff !important;
  box-shadow: 0 2px 6px rgba(232,117,10,.30) !important;
}
.ac-wrap .ac-filter-group--feat .ac-feat-btn--active .ac-opt-count { color: #ffffff !important; opacity: .85 !important; }
.ac-wrap .ac-filter-group--feat .ac-opt--empty { opacity: .45 !important; }



/* ---- Homepage size guide: compact cards + clickable location tags ---- */
.ac-wrap.ac-look--sizeguide .ac-fn__media { height: 132px !important; }
.ac-wrap.ac-look--sizeguide .ac-fn__media img { width:100% !important; height:100% !important; object-fit:cover !important; }
.ac-wrap.ac-look--sizeguide .ac-fn__body { padding: 12px 14px 14px !important; }
.ac-wrap.ac-look--sizeguide .ac-fn__hero { margin-bottom: 6px !important; }
.ac-wrap.ac-look--sizeguide .ac-fn__foot { margin-top: 8px !important; }
.ac-wrap.ac-look--sizeguide a.ac-btn--reserve { padding: 7px 14px !important; font-size: 12px !important; }
.ac-wrap .ac-sg__locs { display:flex !important; flex-wrap:wrap !important; align-items:center !important; gap:6px !important; margin:0 !important; }
.ac-wrap .ac-sg__locs-label { font-size:10.5px !important; font-weight:700 !important; color:#94a3b8 !important; text-transform:uppercase !important; letter-spacing:.04em !important; margin-right:1px !important; }
.ac-wrap a.ac-sg__loc, .ac-wrap a.ac-sg__loc:link, .ac-wrap a.ac-sg__loc:visited { display:inline-block !important; padding:3px 9px !important; font-size:12px !important; font-weight:600 !important; line-height:1.3 !important; color:#334155 !important; background:#f1f5f9 !important; border:1px solid #e2e8f0 !important; border-radius:999px !important; text-decoration:none !important; box-shadow:none !important; transition:background-color .15s ease, border-color .15s ease, color .15s ease !important; }
.ac-wrap a.ac-sg__loc:hover { background:var(--ac-accent,#e8750a) !important; border-color:var(--ac-accent,#e8750a) !important; color:#ffffff !important; }
.ac-wrap a.ac-sg__loc--more, .ac-wrap a.ac-sg__loc--more:link, .ac-wrap a.ac-sg__loc--more:visited { background:transparent !important; border-color:transparent !important; color:#64748b !important; font-weight:700 !important; }
.ac-wrap a.ac-sg__loc--more:hover { color:var(--ac-accent,#e8750a) !important; background:transparent !important; }


/* ---- Size guide v2: uncropped image, tighter spacing, all locations inline ---- */
.ac-wrap.ac-look--sizeguide .ac-card--sizeguide { overflow:hidden !important; }
.ac-wrap.ac-look--sizeguide .ac-fn__media { height:154px !important; background:#ffffff !important; display:flex !important; align-items:center !important; justify-content:center !important; padding:6px !important; }
.ac-wrap.ac-look--sizeguide .ac-fn__media img { width:100% !important; height:100% !important; object-fit:contain !important; }
.ac-wrap.ac-look--sizeguide .ac-fn__body { padding:11px 16px 13px !important; gap:6px !important; }
.ac-wrap.ac-look--sizeguide .ac-fn__hero { margin:0 !important; }
.ac-wrap.ac-look--sizeguide .ac-fn__foot { margin:4px 0 0 !important; padding:0 !important; }
.ac-wrap.ac-look--sizeguide a.ac-btn--reserve { padding:8px 16px !important; font-size:12.5px !important; }
.ac-wrap.ac-look--sizeguide .ac-sg__locs { display:block !important; line-height:1.55 !important; margin:0 !important; }
.ac-wrap.ac-look--sizeguide .ac-sg__locs-label { display:inline !important; margin:0 5px 0 0 !important; }
.ac-wrap.ac-look--sizeguide a.ac-sg__loc, .ac-wrap.ac-look--sizeguide a.ac-sg__loc:link, .ac-wrap.ac-look--sizeguide a.ac-sg__loc:visited { display:inline !important; padding:0 !important; background:transparent !important; border:none !important; border-radius:0 !important; font-size:12.5px !important; font-weight:600 !important; line-height:1.55 !important; color:#475569 !important; box-shadow:none !important; }
.ac-wrap.ac-look--sizeguide .ac-sg__sep { color:#cbd5e1 !important; font-weight:400 !important; }
.ac-wrap.ac-look--sizeguide a.ac-sg__loc:hover { color:var(--ac-accent,#e8750a) !important; background:transparent !important; }

.ac-wrap.ac-look--sizeguide .ac-sg__locs { overflow-wrap:break-word !important; word-break:normal !important; }


/* ---- Size guide v3: premium card polish ---- */
.ac-wrap.ac-look--sizeguide .ac-grid { gap:18px !important; }
.ac-wrap.ac-look--sizeguide .ac-card--sizeguide { padding:0 !important; background:#ffffff !important; border:1px solid #e7ebf1 !important; border-radius:16px !important; overflow:hidden !important; box-shadow:0 1px 2px rgba(16,24,40,.05) !important; transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease !important; display:flex !important; flex-direction:column !important; }
.ac-wrap.ac-look--sizeguide .ac-card--sizeguide:hover { transform:translateY(-4px) !important; box-shadow:0 16px 34px rgba(16,24,40,.13) !important; border-color:#d7dee8 !important; }
.ac-wrap.ac-look--sizeguide .ac-fn__media { height:150px !important; background:#f6f8fb !important; border-bottom:1px solid #eef1f6 !important; padding:12px !important; display:flex !important; align-items:center !important; justify-content:center !important; }
.ac-wrap.ac-look--sizeguide .ac-fn__media img { width:100% !important; height:100% !important; object-fit:contain !important; }
.ac-wrap.ac-look--sizeguide .ac-fn__body { padding:14px 16px 16px !important; gap:9px !important; display:flex !important; flex-direction:column !important; flex:1 !important; }
.ac-wrap.ac-look--sizeguide .ac-fn__hero { margin:0 !important; display:flex !important; align-items:baseline !important; gap:9px !important; }
.ac-wrap.ac-look--sizeguide .ac-fn__size { font-size:21px !important; font-weight:800 !important; color:#0f172a !important; letter-spacing:-.02em !important; line-height:1 !important; }
.ac-wrap.ac-look--sizeguide .ac-fn__dim { font-size:12px !important; font-weight:600 !important; color:#5b6675 !important; background:#f1f5f9 !important; padding:3px 8px !important; border-radius:6px !important; line-height:1.4 !important; }
.ac-wrap.ac-look--sizeguide .ac-sg__locs { display:flex !important; align-items:flex-start !important; gap:6px !important; margin:0 !important; }
.ac-wrap.ac-look--sizeguide .ac-sg__pin { flex:0 0 auto !important; margin-top:2px !important; display:block !important; }
.ac-wrap.ac-look--sizeguide .ac-sg__locs-list { flex:1 1 auto !important; line-height:1.5 !important; }
.ac-wrap.ac-look--sizeguide a.ac-sg__loc, .ac-wrap.ac-look--sizeguide a.ac-sg__loc:link, .ac-wrap.ac-look--sizeguide a.ac-sg__loc:visited { display:inline !important; padding:0 !important; background:transparent !important; border:none !important; font-size:12.5px !important; font-weight:600 !important; color:#475569 !important; box-shadow:none !important; }
.ac-wrap.ac-look--sizeguide a.ac-sg__loc:hover { color:var(--ac-accent,#e8750a) !important; background:transparent !important; }
.ac-wrap.ac-look--sizeguide .ac-sg__sep { color:#cbd5e1 !important; font-weight:400 !important; }
.ac-wrap.ac-look--sizeguide .ac-fn__foot { display:block !important; margin:auto 0 0 !important; padding:0 !important; }
.ac-wrap.ac-look--sizeguide .ac-fn__price { display:none !important; }
.ac-wrap.ac-look--sizeguide .ac-fn__actions { width:100% !important; margin-top:13px !important; }
.ac-wrap.ac-look--sizeguide a.ac-btn--reserve { display:flex !important; align-items:center !important; justify-content:center !important; gap:6px !important; width:100% !important; text-align:center !important; background:var(--ac-accent,#e8750a) !important; border:1px solid var(--ac-accent,#e8750a) !important; color:#ffffff !important; padding:10px 14px !important; font-size:13px !important; font-weight:700 !important; border-radius:10px !important; letter-spacing:.01em !important; box-shadow:0 2px 6px rgba(232,117,10,.22) !important; transition:background-color .15s ease, transform .15s ease, box-shadow .15s ease !important; }
.ac-wrap.ac-look--sizeguide a.ac-btn--reserve::after { content:'\2192' !important; font-size:14px !important; line-height:1 !important; }
.ac-wrap.ac-look--sizeguide a.ac-btn--reserve:hover { background:#cf6708 !important; border-color:#cf6708 !important; transform:translateY(-1px) !important; box-shadow:0 6px 14px rgba(232,117,10,.32) !important; color:#fff !important; }

/* size-tab hide must beat the card display:flex (specificity) */
.ac-wrap.ac-look--sizeguide .ac-card--sizeguide.ac-card--size-hidden,
.ac-wrap.ac-look--sizeguide .ac-card--sizeguide.ac-card--hidden,
.ac-wrap.ac-look--sizeguide .ac-card--sizeguide.ac-card--site-hidden,
.ac-wrap.ac-look--sizeguide .ac-card--sizeguide.ac-card--feat-hidden { display:none !important; }

/* size guide: whiten the renders' light-grey studio bg */
.ac-wrap.ac-look--sizeguide .ac-fn__media { background:#ffffff !important; }
.ac-wrap.ac-look--sizeguide .ac-fn__media img { filter:brightness(1.12) contrast(1.02) !important; mix-blend-mode:multiply !important; }


/* size guide v4: big size hero + relatable label */
.ac-wrap.ac-look--sizeguide .ac-fn__body { gap:10px !important; }
.ac-wrap.ac-look--sizeguide .ac-sg__top { display:flex !important; align-items:baseline !important; justify-content:space-between !important; gap:8px !important; margin:0 !important; }
.ac-wrap.ac-look--sizeguide .ac-sg__size { display:inline-flex !important; align-items:baseline !important; gap:5px !important; font-size:13px !important; font-weight:700 !important; text-transform:uppercase !important; letter-spacing:.03em !important; color:#94a3b8 !important; line-height:1 !important; }
.ac-wrap.ac-look--sizeguide .ac-sg__num { font-size:34px !important; font-weight:800 !important; color:#0f172a !important; letter-spacing:-.02em !important; text-transform:none !important; line-height:.9 !important; }
.ac-wrap.ac-look--sizeguide .ac-sg__dim { align-self:center !important; font-size:12px !important; font-weight:600 !important; color:#5b6675 !important; background:#f1f5f9 !important; padding:3px 8px !important; border-radius:6px !important; white-space:nowrap !important; }
.ac-wrap.ac-look--sizeguide .ac-sg__label { display:inline-block !important; align-self:flex-start !important; font-size:11.5px !important; font-weight:800 !important; letter-spacing:.05em !important; text-transform:uppercase !important; color:var(--ac-accent,#e8750a) !important; background:rgba(232,117,10,.10) !important; padding:4px 10px !important; border-radius:6px !important; line-height:1.2 !important; }

/* ═══════════════════════════════════════════════════════════════
   LAYOUT × LOOK COMPLETION
   ═══════════════════════════════════════════════════════════════
   Card size (full / compact / list) previously only worked for the
   classic card: every .ac-layout-* rule targeted .ac-card__* internals,
   which the compact and finder cards do not have. Picking any other
   combination either did nothing or rendered badly.

   The model, applied consistently to all three looks:
     full    the look's natural card, in an N-column grid
     compact the same card, denser, in an N-column grid
     list    one full-width horizontal row per line

   Layout classes sit on .ac-grid, look classes on .ac-wrap, so
   .ac-wrap.ac-look--X .ac-grid.ac-layout-Y is (0,4,0) and beats the
   base rules without needing !important.
   ═══════════════════════════════════════════════════════════════ */

/* ── Compact look ──────────────────────────────────────────────
   Its base rule forces .ac-grid to a single flex column, which is why
   the columns control appeared to do nothing. That is right for list
   and wrong for the other two, so grid behaviour is restored there. */

.ac-wrap.ac-look--compact .ac-grid.ac-layout-full,
.ac-wrap.ac-look--compact .ac-grid.ac-layout-compact {
	display: grid;
	gap: 14px;
}

/* In a column the row card has nowhere near the width it has across the
   page, so the price and CTA drop to their own line rather than being
   squeezed against the text.

   Explicit grid areas rather than flex wrapping: with flex, the thumb,
   text and price each resolve their own basis and the result depends on
   content length, which put the thumb alone on one line and clipped the
   price off the card. Named areas place all three deterministically at
   any column width. */
.ac-wrap.ac-look--compact .ac-grid.ac-layout-full .ac-card--compact,
.ac-wrap.ac-look--compact .ac-grid.ac-layout-compact .ac-card--compact {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	grid-template-areas:
		"thumb main"
		"end   end";
	align-items: center;
	row-gap: 12px;
	column-gap: 14px;
}

.ac-wrap.ac-look--compact .ac-grid.ac-layout-full .ac-cx__thumb,
.ac-wrap.ac-look--compact .ac-grid.ac-layout-compact .ac-cx__thumb {
	grid-area: thumb;
}

.ac-wrap.ac-look--compact .ac-grid.ac-layout-full .ac-cx__main,
.ac-wrap.ac-look--compact .ac-grid.ac-layout-compact .ac-cx__main {
	grid-area: main;
	min-width: 0;
}

.ac-wrap.ac-look--compact .ac-grid.ac-layout-full .ac-cx__end,
.ac-wrap.ac-look--compact .ac-grid.ac-layout-compact .ac-cx__end {
	grid-area: end;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	min-width: 0;
}

.ac-wrap.ac-look--compact .ac-grid.ac-layout-full .ac-cx__actions .ac-btn,
.ac-wrap.ac-look--compact .ac-grid.ac-layout-compact .ac-cx__actions .ac-btn {
	white-space: nowrap;
}

/* Denser variant: smaller thumb, drop the secondary dimension line. */
.ac-wrap.ac-look--compact .ac-grid.ac-layout-compact .ac-card--compact {
	padding: 10px 12px;
	gap: 12px;
}

.ac-wrap.ac-look--compact .ac-grid.ac-layout-compact .ac-cx__thumb {
	flex: 0 0 52px;
	width: 52px;
	height: 52px;
}

.ac-wrap.ac-look--compact .ac-grid.ac-layout-compact .ac-cx__dim {
	display: none;
}

/* ── Finder look ───────────────────────────────────────────────
   full already worked. compact had no rules at all, so it rendered
   identically to full. list inherited the global one-column rule while
   keeping a 16/10 media box, so the image stretched to the full page
   width and produced one enormous card. */

.ac-wrap.ac-look--finder .ac-grid.ac-layout-compact .ac-fn__media {
	aspect-ratio: 16 / 9;
}

.ac-wrap.ac-look--finder .ac-grid.ac-layout-compact .ac-fn__body {
	padding: 12px 13px 14px;
	gap: 6px;
}

.ac-wrap.ac-look--finder .ac-grid.ac-layout-compact .ac-fn__fits {
	display: none;
}

.ac-wrap.ac-look--finder .ac-grid.ac-layout-compact .ac-fn__size {
	font-size: 19px;
}

/* list: turn the card on its side and give the media a fixed track, so
   it can never scale with the page width again. */
.ac-wrap.ac-look--finder .ac-grid.ac-layout-list .ac-card--finder {
	flex-direction: row;
	align-items: stretch;
}

.ac-wrap.ac-look--finder .ac-grid.ac-layout-list .ac-fn__media {
	flex: 0 0 clamp(140px, 22%, 260px);
	aspect-ratio: auto;
	min-height: 100%;
}

.ac-wrap.ac-look--finder .ac-grid.ac-layout-list .ac-fn__body {
	flex: 1 1 auto;
	min-width: 0;
	padding: 16px 18px;
}

/* In a grid the foot is pushed down so cards in a row align, but a list
   row has no neighbour to align with and the gap just makes it tall. */
.ac-wrap.ac-look--finder .ac-grid.ac-layout-list .ac-fn__foot {
	margin-top: 6px;
}

/* ── Responsive ────────────────────────────────────────────────
   Every combination collapses to a single column on a phone. The
   side-by-side list cards stack rather than squeezing a 140px image
   against the text. */

@media (max-width: 860px) {
	.ac-wrap.ac-look--compact .ac-grid.ac-layout-full,
	.ac-wrap.ac-look--compact .ac-grid.ac-layout-compact,
	.ac-wrap.ac-look--finder .ac-grid.ac-layout-full,
	.ac-wrap.ac-look--finder .ac-grid.ac-layout-compact {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 560px) {
	.ac-wrap.ac-look--finder .ac-grid.ac-layout-list .ac-card--finder {
		flex-direction: column;
	}

	.ac-wrap.ac-look--finder .ac-grid.ac-layout-list .ac-fn__media {
		flex: 0 0 auto;
		aspect-ratio: 16 / 9;
		min-height: 0;
	}

	.ac-wrap.ac-look--compact .ac-card--compact {
		flex-wrap: wrap;
		row-gap: 10px;
	}

	.ac-wrap.ac-look--compact .ac-cx__end {
		flex: 1 0 100%;
		justify-content: space-between;
	}
}


/* Inline SVG icon set (replaces emoji UI icons). Sizes to font-size and
   inherits currentColor, so it works on any card style or colour scheme. */
.ac-ico{width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.13em;flex:none}
