/* CaboForSale Consolidated Theme Stylesheet - Auto-generated */

/* --- tokens.css --- */
/**
 * CaboForSale.mx - Design Tokens
 * Source: docs/DESIGN-SYSTEM.md (Sections 3 to 7)
 * Version: 1.0 (Locked 2026-09-24)
 */

:root {
  /* --------------------------------------------------------------------------
     Section 3: Colour
     -------------------------------------------------------------------------- */
  --cabo-paper: #FBF9F5;
  --cabo-white: #FFFFFF;
  --cabo-sand: #F4EFE7;
  --cabo-stone: #EAE3D7;
  --cabo-line: #E4DCCF;
  --cabo-line-strong: #CBBFAE;
  --cabo-ink: #1F1D1A;
  --cabo-ink-hover: #35322D;
  --cabo-ink-2: #3D3A35;
  --cabo-muted: #65605A;
  --cabo-faint: #8F897E;
  --cabo-cream: #FAF5EE;
  --cabo-gold: #C9A458;
  --cabo-gold-deep: #7A5D22;
  --cabo-gold-tint: #F6EFE0;
  --cabo-success: #4E6B4F;
  --cabo-error: #9E3A2E;
  --cabo-scrim: rgba(31, 29, 26, 0.55);

  /* --------------------------------------------------------------------------
     Section 4: Typography
     -------------------------------------------------------------------------- */
  --cabo-font-display: 'Cormorant Garamond', 'Cormorant', Georgia, 'Times New Roman', serif;
  --cabo-font-sans: 'Jost', 'Futura', 'Avenir Next', 'Segoe UI', system-ui, sans-serif;

  --cabo-text-display: clamp(2.75rem, 1.43rem + 5.4vw, 5.5rem);
  --cabo-text-h1: clamp(2.5rem, 1.94rem + 2.29vw, 4rem);
  --cabo-text-h2: clamp(2rem, 1.63rem + 1.52vw, 3rem);
  --cabo-text-h3: clamp(1.5rem, 1.31rem + 0.76vw, 2rem);
  --cabo-text-h4: 22px;
  --cabo-text-stat: clamp(2.25rem, 1.97rem + 1.14vw, 3rem);
  --cabo-text-lead: clamp(1.125rem, 1.08rem + 0.19vw, 1.25rem);
  --cabo-text-body: 16px;
  --cabo-text-small: 14px;
  --cabo-text-label: 12px;
  --cabo-text-ui: 13px;
  --cabo-text-price: 17px;

  --cabo-leading-display: 1;
  --cabo-leading-tight: 1.1;
  --cabo-leading-snug: 1.3;
  --cabo-leading-normal: 1.55;
  --cabo-leading-relaxed: 1.7;

  /* --------------------------------------------------------------------------
     Section 5: Space and layout
     -------------------------------------------------------------------------- */
  --cabo-space-1: 4px;
  --cabo-space-2: 8px;
  --cabo-space-3: 12px;
  --cabo-space-4: 16px;
  --cabo-space-5: 24px;
  --cabo-space-6: 32px;
  --cabo-space-7: 48px;
  --cabo-space-8: 64px;
  --cabo-space-9: 96px;
  --cabo-space-10: 128px;
  --cabo-space-11: 160px;

  --cabo-section: clamp(72px, 9vw, 144px);
  --cabo-section-tight: clamp(48px, 6vw, 96px);
  --cabo-gutter: clamp(20px, 4vw, 56px);
  --cabo-container: 1320px;
  --cabo-container-wide: 1600px;
  --cabo-container-narrow: 720px;
  --cabo-measure-prose: 68ch;
  --cabo-header-h: 64px;
  --cabo-header-scrolled-h: 56px;

  /* --------------------------------------------------------------------------
     Section 6: Shape, lines, elevation
     -------------------------------------------------------------------------- */
  --cabo-radius-0: 0;
  --cabo-radius-1: 2px;
  --cabo-radius-round: 999px;
  --cabo-border: 1px solid var(--cabo-line);
  --cabo-rule-gold: 1px solid var(--cabo-gold);
  --cabo-shadow-float: 0 12px 32px rgba(31, 29, 26, 0.08);
  --cabo-shadow-modal: 0 24px 64px rgba(31, 29, 26, 0.18);

  /* --------------------------------------------------------------------------
     Section 7: Motion
     -------------------------------------------------------------------------- */
  --cabo-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --cabo-dur-fast: 180ms;
  --cabo-dur: 320ms;
  --cabo-dur-slow: 700ms;
  --cabo-dur-press: 60ms;
}

@media (max-width: 767px) {
  :root {
    --cabo-header-h: 56px;
    --cabo-section: clamp(40px, 10vw, 64px);
    --cabo-section-tight: clamp(32px, 8vw, 48px);
    --cabo-gutter: clamp(16px, 5vw, 24px);
  }
}


/* --- fonts.css --- */
@font-face {
  font-\66 amily: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500 600;
  font-display: swap;
  src: url('https://caboforsale.mx/wp-content/themes/caboforsale-theme/assets/fonts/cormorant-garamond-normal-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-\66 amily: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500 600;
  font-display: swap;
  src: url('https://caboforsale.mx/wp-content/themes/caboforsale-theme/assets/fonts/cormorant-garamond-normal-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-\66 amily: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url('https://caboforsale.mx/wp-content/themes/caboforsale-theme/assets/fonts/cormorant-garamond-italic-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-\66 amily: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url('https://caboforsale.mx/wp-content/themes/caboforsale-theme/assets/fonts/cormorant-garamond-italic-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-\66 amily: 'Jost';
  font-style: normal;
  font-weight: 300 500;
  font-display: swap;
  src: url('https://caboforsale.mx/wp-content/themes/caboforsale-theme/assets/fonts/jost-normal-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-\66 amily: 'Jost';
  font-style: normal;
  font-weight: 300 500;
  font-display: swap;
  src: url('https://caboforsale.mx/wp-content/themes/caboforsale-theme/assets/fonts/jost-normal-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


/* --- base.css --- */
/**
 * CaboForSale.mx - Base Stylesheet
 * Source: docs/DESIGN-SYSTEM.md (Sections 4, 10, 11, 12)
 *
 * Contains reset, element typography, links, focus styles, form base, and layout utilities.
 * All colours reference custom properties defined in tokens.css.
 */

/* --------------------------------------------------------------------------
   1. Reset & Box Sizing
   -------------------------------------------------------------------------- */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  -webkit-text-size-adjust: 100%;
  tab-size: 4;
}

body {
  margin: 0;
  background-color: var(--cabo-paper);
  color: var(--cabo-ink-2);
  font-family: var(--cabo-font-sans);
  font-size: var(--cabo-text-body);
  font-weight: 400;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

h1,
h2,
h3,
h4,
h5,
h6,
p,
ul,
ol,
dl,
dd,
figure,
blockquote {
  margin: 0;
}

ul,
ol {
  padding: 0;
  list-style: none;
}

img,
picture,
svg,
video {
  display: block;
  max-width: 100%;
}

button,
input,
select,
textarea {
  font: inherit;
  color: inherit;
}

[hidden] {
  display: none;
}

/* --------------------------------------------------------------------------
   2. Typography (Section 4)
   -------------------------------------------------------------------------- */
h1,
.cabo-h1 {
  font-family: var(--cabo-font-display);
  font-size: var(--cabo-text-h1);
  font-weight: 500;
  line-height: 1.05;
  letter-spacing: -0.01em;
  font-variant-numeric: lining-nums;
  font-feature-settings: "lnum" 1;
  color: var(--cabo-ink);
}

h2,
.cabo-h2 {
  font-family: var(--cabo-font-display);
  font-size: var(--cabo-text-h2);
  font-weight: 500;
  line-height: 1.1;
  letter-spacing: -0.01em;
  font-variant-numeric: lining-nums;
  font-feature-settings: "lnum" 1;
  color: var(--cabo-ink);
}

h3,
.cabo-h3 {
  font-family: var(--cabo-font-display);
  font-size: var(--cabo-text-h3);
  font-weight: 500;
  line-height: 1.15;
  letter-spacing: 0;
  font-variant-numeric: lining-nums;
  font-feature-settings: "lnum" 1;
  color: var(--cabo-ink);
}

h4,
.cabo-h4 {
  font-family: var(--cabo-font-display);
  font-size: var(--cabo-text-h4);
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0;
  font-variant-numeric: lining-nums;
  font-feature-settings: "lnum" 1;
  color: var(--cabo-ink);
}

h5,
.cabo-h5,
h6,
.cabo-h6 {
  font-family: var(--cabo-font-display);
  font-size: var(--cabo-text-h4);
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0;
  font-variant-numeric: lining-nums;
  font-feature-settings: "lnum" 1;
  color: var(--cabo-ink);
}

.cabo-display {
  font-family: var(--cabo-font-display);
  font-size: var(--cabo-text-display);
  font-weight: 500;
  line-height: 0.95;
  letter-spacing: -0.015em;
  font-variant-numeric: lining-nums;
  font-feature-settings: "lnum" 1;
  color: var(--cabo-ink);
}

.cabo-stat {
  font-family: var(--cabo-font-display);
  font-size: var(--cabo-text-stat);
  font-weight: 500;
  line-height: 1.0;
  letter-spacing: -0.01em;
  font-variant-numeric: lining-nums;
  font-feature-settings: "lnum" 1;
  color: var(--cabo-ink);
}

.cabo-lead {
  font-family: var(--cabo-font-sans);
  font-size: var(--cabo-text-lead);
  font-weight: 300;
  line-height: 1.6;
  letter-spacing: 0;
  color: var(--cabo-ink-2);
}

.cabo-body {
  font-family: var(--cabo-font-sans);
  font-size: var(--cabo-text-body);
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0;
  color: var(--cabo-ink-2);
}

.cabo-small {
  font-family: var(--cabo-font-sans);
  font-size: var(--cabo-text-small);
  font-weight: 400;
  line-height: 1.55;
  letter-spacing: 0;
  color: var(--cabo-muted);
}

.cabo-spec {
  font-family: var(--cabo-font-sans);
  font-size: var(--cabo-text-small);
  font-weight: 400;
  line-height: 1.55;
  letter-spacing: 0;
  color: var(--cabo-muted);
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

.cabo-label {
  font-family: var(--cabo-font-sans);
  font-size: var(--cabo-text-label);
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--cabo-muted);
}

.cabo-ui {
  font-family: var(--cabo-font-sans);
  font-size: var(--cabo-text-ui);
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.cabo-price {
  font-family: var(--cabo-font-sans);
  font-size: var(--cabo-text-price);
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
  color: var(--cabo-ink);
}

.cabo-glance-band__item strong,
.cabo-step-num {
  font-family: var(--cabo-font-display);
  font-size: var(--cabo-text-h3);
  font-weight: 500;
  line-height: 1.15;
  font-variant-numeric: lining-nums;
  font-feature-settings: "lnum" 1;
}

.cabo-faq-item summary {
  font-family: var(--cabo-font-display);
  font-size: var(--cabo-text-h4);
  font-weight: 600;
  line-height: 1.2;
  font-variant-numeric: lining-nums;
  font-feature-settings: "lnum" 1;
}

p {
  max-width: 68ch;
}

p + p {
  margin-top: var(--cabo-space-4);
}

small {
  font-size: var(--cabo-text-small);
  line-height: 1.55;
}

/* --------------------------------------------------------------------------
   3. Links
   -------------------------------------------------------------------------- */
html {
  scroll-behavior: smooth;
}

:target,
[id] {
  scroll-margin-top: 96px;
}

a {
  color: inherit;
  text-decoration: none;
  transition: color var(--cabo-dur-fast) var(--cabo-ease);
}

a:hover {
  color: var(--cabo-ink);
}

a:active {
  transform: none;
}

.cabo-link {
  display: inline-flex;
  align-items: center;
  gap: var(--cabo-space-2);
  color: var(--cabo-ink);
  text-decoration: underline;
  text-decoration-color: var(--cabo-gold);
  text-underline-offset: 6px;
  text-decoration-thickness: 1px;
  transition: text-decoration-color var(--cabo-dur-fast) var(--cabo-ease), color var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-link:hover {
  text-decoration-color: var(--cabo-ink);
}

/* --------------------------------------------------------------------------
   4. Focus Styles (Section 11)
   -------------------------------------------------------------------------- */
:focus-visible {
  outline: 2px solid var(--cabo-ink);
  outline-offset: 2px;
}

[data-theme="dark"] :focus-visible,
.cabo-theme-dark :focus-visible,
.cabo-ink-surface :focus-visible {
  outline-color: var(--cabo-cream);
}

/* --------------------------------------------------------------------------
   5. Form Base (Section 10)
   -------------------------------------------------------------------------- */
label,
.cabo-form-label {
  display: block;
  font-family: var(--cabo-font-sans);
  font-size: var(--cabo-text-label);
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--cabo-muted);
  margin-bottom: var(--cabo-space-2);
}

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="search"],
input[type="password"],
input[type="number"],
input[type="url"],
select,
textarea,
.cabo-input {
  display: block;
  width: 100%;
  height: 52px;
  padding: 0 var(--cabo-space-4);
  font-family: var(--cabo-font-sans);
  font-size: var(--cabo-text-body);
  font-weight: 400;
  line-height: 1.7;
  color: var(--cabo-ink-2);
  background-color: var(--cabo-white);
  border: 1px solid var(--cabo-faint);
  border-radius: var(--cabo-radius-1);
  transition: border-color var(--cabo-dur-fast) var(--cabo-ease);
}

textarea,
.cabo-textarea {
  height: auto;
  min-height: 120px;
  padding: var(--cabo-space-3) var(--cabo-space-4);
  resize: vertical;
}

input::placeholder,
textarea::placeholder {
  color: var(--cabo-faint);
  opacity: 1;
}

input:focus,
select:focus,
textarea:focus,
.cabo-input:focus,
.cabo-textarea:focus {
  outline: 2px solid var(--cabo-ink);
  outline-offset: 2px;
  border-color: var(--cabo-ink);
}

input[aria-invalid="true"],
select[aria-invalid="true"],
textarea[aria-invalid="true"],
.is-invalid {
  border-color: var(--cabo-error);
}

input[type="checkbox"],
input[type="radio"] {
  width: 18px;
  height: 18px;
  accent-color: var(--cabo-ink);
}

select,
.cabo-select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-color: var(--cabo-white);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right var(--cabo-space-4) center;
  padding-right: var(--cabo-space-8);
}

/* --------------------------------------------------------------------------
   6. Utilities
   -------------------------------------------------------------------------- */
.cabo-container {
  width: min(100% - (var(--cabo-gutter) * 2), var(--cabo-container));
  margin-inline: auto;
}

.cabo-container--wide {
  width: min(100% - (var(--cabo-gutter) * 2), var(--cabo-container-wide));
}

.cabo-container--narrow {
  width: min(100% - (var(--cabo-gutter) * 2), var(--cabo-container-narrow));
}

.cabo-section {
  padding-block: var(--cabo-section);
}

.cabo-section--tight {
  padding-block: var(--cabo-section-tight);
}

.cabo-section--sand {
  background-color: var(--cabo-sand);
}

.cabo-stack {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: var(--cabo-space-4);
}

.cabo-icon-sprite {
  position: absolute;
  display: none;
}

.cabo-visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* --------------------------------------------------------------------------
   7. Reduced Motion (Section 7)
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms;
    animation-iteration-count: 1;
    transition-duration: 0.01ms;
    scroll-behavior: auto;
  }

  /* The universal selector loses to the html rule above, so reset it by name. */
  html {
    scroll-behavior: auto;
  }
}

@media (max-width: 767px) {
  /* Inline links in list items and in headings: bigger hit area, same text flow. */
  li a:not([class]),
  .cabo-sources a {
    padding-block: 2px;
  }

  h2 > a:not([class]),
  h3 > a:not([class]) {
    padding-block: var(--cabo-space-2);
  }

  .cabo-link,
  .cabo-coverage-card__link,
  a.cabo-post-card__category,
  .cabo-footer a,
  .cabo-related-links-section a,
  .cabo-card a:not(.cabo-card__image-link):not(.cabo-card__favourite):not(.cabo-btn) {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
  }
}

/* Anti-spam honeypot: kept in the DOM for bots, never visible to people. */
.cabo-hp {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}


/* --- components.css --- */
/**
 * CaboForSale.mx - Components Stylesheet
 * Source: docs/DESIGN-SYSTEM.md (Section 10)
 *
 * Component blocks authored with cabo-* BEM conventions.
 * Includes buttons, search panel, cards, badges, modal, gallery, and UI chrome.
 */

/* --------------------------------------------------------------------------
   Global header
   -------------------------------------------------------------------------- */
.cabo-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  width: 100%;
  height: auto;
  color: var(--cabo-ink);
  background: var(--cabo-paper);
  border-bottom: 1px solid var(--cabo-line);
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  transition: box-shadow var(--cabo-dur) var(--cabo-ease);
}

.cabo-header.is-scrolled {
  background: color-mix(in srgb, var(--cabo-paper) 92%, transparent);
  border-bottom-color: var(--cabo-line);
  box-shadow: var(--cabo-shadow-float);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.cabo-header__inner {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) auto minmax(180px, 1fr);
  align-items: center;
  min-height: var(--cabo-header-h);
  gap: var(--cabo-space-5);
}

.cabo-header.is-scrolled .cabo-header__inner {
  min-height: var(--cabo-header-scrolled-h);
}

.cabo-header__logo,
.cabo-mobile-drawer__logo {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  min-width: 120px;
  min-height: 44px;
}

.cabo-header__logo img {
  width: 200px;
  max-height: 30px;
  height: auto;
}

.cabo-header__nav {
  display: block;
}

.cabo-header__nav-list {
  display: flex;
  align-items: center;
  gap: var(--cabo-space-5);
}

.cabo-header__nav-list > li {
  position: relative;
}

/* The Communities mega panel spans the header, so it must position from the header, not this item. */
.cabo-header__nav-list > li.cabo-header__communities {
  position: static;
}

.cabo-header__nav-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  gap: var(--cabo-space-1);
  min-height: 44px;
  padding: var(--cabo-space-2) 0;
  border: 0;
  background: transparent;
  color: var(--cabo-ink);
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  white-space: nowrap;
  cursor: pointer;
}

.cabo-header__nav-link::after {
  position: absolute;
  right: 0;
  bottom: var(--cabo-space-1);
  left: 0;
  height: 1px;
  background: var(--cabo-gold);
  content: "";
  transform: scaleX(0);
  transform-origin: right;
  transition: transform var(--cabo-dur) var(--cabo-ease);
}

.cabo-header__nav-link:hover::after,
.cabo-header__nav-link:focus-visible::after,
.cabo-header__mega-toggle[aria-expanded="true"]::after,
.cabo-header__services-toggle[aria-expanded="true"]::after,
.cabo-header__services-toggle.is-active::after,
.cabo-header__services-toggle[aria-current="page"]::after {
  transform: scaleX(1);
  transform-origin: left;
}

.cabo-header__mega-toggle .cabo-icon,
.cabo-header__services-toggle .cabo-icon {
  transition: transform var(--cabo-dur) var(--cabo-ease);
}

.cabo-header__mega-toggle[aria-expanded="true"] .cabo-icon,
.cabo-header__services-toggle[aria-expanded="true"] .cabo-icon {
  transform: rotate(180deg);
}

.cabo-header__services {
  position: relative;
}

.cabo-header__services-menu {
  position: absolute;
  top: calc(100% + var(--cabo-space-2));
  left: 0;
  z-index: 1001;
  min-width: 260px;
  background: var(--cabo-white);
  border-top: 2px solid var(--cabo-gold);
  border-right: 1px solid var(--cabo-line);
  border-bottom: 1px solid var(--cabo-line);
  border-left: 1px solid var(--cabo-line);
  box-shadow: var(--cabo-shadow-float);
  visibility: hidden;
  opacity: 0;
  transform: translateY(-4px);
  transition: opacity var(--cabo-dur-fast) var(--cabo-ease),
    transform var(--cabo-dur-fast) var(--cabo-ease),
    visibility 0s linear var(--cabo-dur-fast);
}

.cabo-header.is-scrolled .cabo-header__services-menu {
  top: 100%;
}

.cabo-header__services-menu.is-open {
  visibility: visible;
  opacity: 1;
  transform: translateY(0);
  transition: opacity var(--cabo-dur) var(--cabo-ease),
    transform var(--cabo-dur) var(--cabo-ease),
    visibility 0s linear 0s;
}

.cabo-header__services-nav {
  margin: 0;
  padding: var(--cabo-space-2) 0;
  list-style: none;
}

.cabo-header__services-link {
  display: flex;
  align-items: center;
  padding: var(--cabo-space-2) var(--cabo-space-5);
  color: var(--cabo-ink);
  font-size: var(--cabo-text-label);
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
  transition: background-color var(--cabo-dur-fast) var(--cabo-ease),
    color var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-header__services-link:hover,
.cabo-header__services-link:focus-visible {
  background: var(--cabo-sand);
  color: var(--cabo-gold);
}

.cabo-header__services-link:focus-visible {
  outline: 2px solid var(--cabo-gold);
  outline-offset: -2px;
}

.cabo-header__mega {
  position: absolute;
  top: var(--cabo-header-h);
  left: 0;
  z-index: 1001;
  width: 100%;
  max-height: calc(100dvh - var(--cabo-header-h));
  overflow-y: auto;
  visibility: hidden;
  opacity: 0;
  transform: translateY(-4px);
  background: var(--cabo-white);
  border-top: 2px solid var(--cabo-gold);
  border-bottom: var(--cabo-border);
  box-shadow: var(--cabo-shadow-float);
  transition: opacity var(--cabo-dur-fast) var(--cabo-ease),
    transform var(--cabo-dur-fast) var(--cabo-ease),
    visibility 0s linear var(--cabo-dur-fast);
}

.cabo-header.is-scrolled .cabo-header__mega {
  top: var(--cabo-header-scrolled-h);
  max-height: calc(100dvh - var(--cabo-header-scrolled-h));
}

.cabo-header__mega.is-open {
  visibility: visible;
  opacity: 1;
  transform: translateY(0);
  transition: opacity var(--cabo-dur) var(--cabo-ease),
    transform var(--cabo-dur) var(--cabo-ease),
    visibility 0s linear 0s;
}

.cabo-header__mega-inner {
  padding-block: var(--cabo-space-6);
}

.cabo-header__mega-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(180px, 100%), 1fr));
  gap: var(--cabo-space-6);
}

.cabo-header__mega-group {
  min-width: 0;
}

.cabo-header__mega-title {
  margin-bottom: var(--cabo-space-3);
  color: var(--cabo-muted);
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.cabo-header__mega-group a,
.cabo-header__mega-all {
  display: flex;
  align-items: center;
  min-width: 44px;
  min-height: 44px;
  color: var(--cabo-ink-2);
}

.cabo-header__mega-group a:hover,
.cabo-header__mega-group a:focus-visible,
.cabo-header__mega-all:hover,
.cabo-header__mega-all:focus-visible {
  color: var(--cabo-ink);
  text-decoration: underline;
  text-decoration-color: var(--cabo-gold);
  text-underline-offset: 6px;
}

.cabo-header__mega-fallback {
  margin-top: var(--cabo-space-5);
}

.cabo-header__mega-fallback ul {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(180px, 100%), 1fr));
  gap: 0 var(--cabo-space-6);
}

.cabo-header__mega-all {
  width: fit-content;
  margin-top: var(--cabo-space-5);
  border-top: var(--cabo-border);
  font-weight: 500;
}

.cabo-header__actions,
.cabo-header__desktop-actions {
  display: flex;
  align-items: center;
}

.cabo-header__actions {
  justify-content: flex-end;
  gap: var(--cabo-space-3);
}

.cabo-header__desktop-actions {
  gap: var(--cabo-space-4);
}

.cabo-header-favs,
.cabo-header-auth,
.cabo-header__menu-toggle,
.cabo-mobile-drawer__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
  padding: 0;
  border: 0;
  border-radius: var(--cabo-radius-round);
  background: transparent;
  color: var(--cabo-ink);
  cursor: pointer;
  transition: background-color var(--cabo-dur-fast) var(--cabo-ease),
    color var(--cabo-dur-fast) var(--cabo-ease),
    transform 60ms var(--cabo-ease);
}

.cabo-header-favs:hover,
.cabo-header-auth:hover,
.cabo-header__menu-toggle:hover,
.cabo-mobile-drawer__close:hover {
  background-color: var(--cabo-sand);
  color: var(--cabo-ink);
}

.cabo-header-favs:active,
.cabo-header-auth:active,
.cabo-header__menu-toggle:active,
.cabo-mobile-drawer__close:active {
  transform: scale(0.94);
  transition-duration: 60ms;
}

.cabo-header-favs:focus-visible,
.cabo-header-auth:focus-visible,
.cabo-header__menu-toggle:focus-visible,
.cabo-mobile-drawer__close:focus-visible {
  outline: 2px solid var(--cabo-ink);
  outline-offset: 2px;
}

.cabo-header__divider {
  display: inline-block;
  width: 1px;
  height: 24px;
  background: var(--cabo-line);
  margin-inline: var(--cabo-space-1);
}

.cabo-header-favs {
  position: relative;
  gap: 6px;
  font-variant-numeric: tabular-nums;
}

.cabo-header-favs .cabo-icon {
  fill: none;
  stroke: currentColor;
}

.cabo-header-favs .cabo-fav-count-num {
  position: absolute;
  top: 4px;
  right: 2px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  background: var(--cabo-gold);
  color: var(--cabo-ink);
  font: 500 10px/1 var(--cabo-font-sans);
  letter-spacing: 0;
  font-variant-numeric: tabular-nums;
  border-radius: var(--cabo-radius-0);
  line-height: 1;
  text-align: center;
}

.cabo-header-favs .cabo-fav-count-num[hidden],
.cabo-header-favs .cabo-fav-count-num.is-hidden {
  display: none;
}

.cabo-header-auth .cabo-icon {
  fill: none;
  stroke: currentColor;
}

.cabo-header .cabo-btn {
  min-height: 40px;
  height: 40px;
  padding: 0 var(--cabo-space-4);
  border: 1px solid var(--cabo-ink);
  border-radius: var(--cabo-radius-1);
  background: var(--cabo-ink);
  color: var(--cabo-cream);
  font-size: var(--cabo-text-ui);
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background-color var(--cabo-dur-fast) var(--cabo-ease),
    border-color var(--cabo-dur-fast) var(--cabo-ease),
    color var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-header .cabo-btn:hover,
.cabo-header .cabo-btn:focus-visible {
  background: var(--cabo-ink-hover);
  border-color: var(--cabo-ink-hover);
  color: var(--cabo-cream);
}

.cabo-mobile-drawer .cabo-btn {
  min-height: 48px;
  padding: 0 var(--cabo-space-5);
  border: 1px solid var(--cabo-ink);
  border-radius: 0;
  background: var(--cabo-ink);
  color: var(--cabo-cream);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.cabo-header .cabo-btn--outline,
.cabo-mobile-drawer .cabo-btn--outline,
.cabo-mobile-drawer .cabo-btn-outline,
.cabo-mobile-drawer .cabo-btn-secondary {
  background: transparent;
  color: var(--cabo-ink);
  border-color: var(--cabo-ink);
}

.cabo-header .cabo-btn--outline:hover,
.cabo-header .cabo-btn--outline:focus-visible,
.cabo-mobile-drawer .cabo-btn--outline:hover,
.cabo-mobile-drawer .cabo-btn--outline:focus-visible,
.cabo-mobile-drawer .cabo-btn-outline:hover,
.cabo-mobile-drawer .cabo-btn-outline:focus-visible,
.cabo-mobile-drawer .cabo-btn-secondary:hover,
.cabo-mobile-drawer .cabo-btn-secondary:focus-visible {
  background: var(--cabo-ink);
  color: var(--cabo-cream);
  border-color: var(--cabo-ink);
}

.cabo-mobile-drawer .cabo-btn:hover,
.cabo-mobile-drawer .cabo-btn:focus-visible {
  background: var(--cabo-ink-hover);
  color: var(--cabo-cream);
}

.cabo-header__menu-toggle {
  display: none;
  flex-direction: column;
  gap: 7px;
  padding: 0;
  border: var(--cabo-border);
  border-radius: var(--cabo-radius-round);
}

.cabo-header__menu-toggle span {
  width: 18px;
  height: 1px;
  background: currentColor;
}

/* --------------------------------------------------------------------------
   Header account dropdown menu
   -------------------------------------------------------------------------- */
.cabo-header-account {
  position: relative;
  display: inline-flex;
  align-items: center;
}

.cabo-header-account__trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--cabo-space-2);
  width: 44px;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
  padding: 0;
  border: 0;
  border-radius: var(--cabo-radius-round);
  background: transparent;
  color: var(--cabo-ink);
  font-size: var(--cabo-text-label);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color var(--cabo-dur-fast) var(--cabo-ease),
    color var(--cabo-dur-fast) var(--cabo-ease),
    transform 60ms var(--cabo-ease);
}

.cabo-header-account__trigger:hover,
.cabo-header-account__trigger[aria-expanded="true"] {
  background-color: var(--cabo-sand);
  color: var(--cabo-ink);
}

.cabo-header-account__trigger:active {
  transform: scale(0.94);
  transition-duration: 60ms;
}

.cabo-header-account__trigger:focus-visible {
  outline: 2px solid var(--cabo-ink);
  outline-offset: 2px;
}

.cabo-header-account__name {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.cabo-header-account__avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border: 1px solid var(--cabo-line);
  background: var(--cabo-sand);
  color: var(--cabo-ink);
  font-size: var(--cabo-text-label);
  font-weight: 600;
  line-height: 1;
  text-transform: uppercase;
}

.cabo-header-account__trigger .cabo-icon {
  fill: none;
  stroke: currentColor;
  transition: transform var(--cabo-dur) var(--cabo-ease);
}

.cabo-header-account__trigger[aria-expanded="true"] .cabo-icon {
  transform: rotate(180deg);
}

.cabo-header-account__menu {
  position: absolute;
  top: calc(100% + var(--cabo-space-2));
  right: 0;
  z-index: 1001;
  width: 320px;
  background: var(--cabo-white);
  border-top: 2px solid var(--cabo-gold);
  border-right: 1px solid var(--cabo-line);
  border-bottom: 1px solid var(--cabo-line);
  border-left: 1px solid var(--cabo-line);
  box-shadow: var(--cabo-shadow-float);
  visibility: hidden;
  opacity: 0;
  transform: translateY(-4px);
  transition: opacity var(--cabo-dur-fast) var(--cabo-ease),
    transform var(--cabo-dur-fast) var(--cabo-ease),
    visibility 0s linear var(--cabo-dur-fast);
}

.cabo-header.is-scrolled .cabo-header-account__menu {
  top: 100%;
}

.cabo-header-account__menu.is-open {
  visibility: visible;
  opacity: 1;
  transform: translateY(0);
  transition: opacity var(--cabo-dur) var(--cabo-ease),
    transform var(--cabo-dur) var(--cabo-ease),
    visibility 0s linear 0s;
}

.cabo-header-account__profile {
  padding: var(--cabo-space-4) var(--cabo-space-5);
  border-bottom: 1px solid var(--cabo-line);
  background: var(--cabo-paper);
}

.cabo-header-account__full-name {
  margin: 0;
  color: var(--cabo-ink);
  font-size: var(--cabo-text-small);
  font-weight: 600;
  line-height: var(--cabo-leading-tight);
}

.cabo-header-account__email {
  margin: var(--cabo-space-1) 0 0;
  color: var(--cabo-muted);
  font-size: var(--cabo-text-label);
  line-height: var(--cabo-leading-normal);
  word-break: break-all;
}

.cabo-header-account__phone {
  margin: var(--cabo-space-2) 0 0;
  color: var(--cabo-muted);
  font-size: var(--cabo-text-label);
  line-height: var(--cabo-leading-normal);
}

.cabo-header-account__nav {
  margin: 0;
  padding: var(--cabo-space-2) 0;
  list-style: none;
}

.cabo-header-account__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--cabo-space-2) var(--cabo-space-5);
  color: var(--cabo-ink);
  font-size: var(--cabo-text-label);
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background-color var(--cabo-dur-fast) var(--cabo-ease),
    color var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-header-account__link:hover,
.cabo-header-account__link:focus-visible {
  background: var(--cabo-sand);
  color: var(--cabo-gold);
}

.cabo-header-account__link:hover .cabo-menu-count,
.cabo-header-account__link:focus-visible .cabo-menu-count {
  color: var(--cabo-gold);
}

.cabo-menu-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: auto;
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  background: var(--cabo-sand);
  color: var(--cabo-ink);
  font: 500 12px/1 var(--cabo-font-sans);
  letter-spacing: 0;
  font-variant-numeric: tabular-nums;
  border-radius: var(--cabo-radius-0);
  line-height: 1;
}

.cabo-mobile-drawer__utility-link .cabo-menu-count {
  margin-left: var(--cabo-space-2);
}

.cabo-menu-count[hidden],
.cabo-menu-count.is-hidden {
  display: none;
}

.cabo-header-account__link:focus-visible {
  outline: 2px solid var(--cabo-gold);
  outline-offset: -2px;
}

.cabo-header-account__divider {
  margin: var(--cabo-space-2) 0;
  border: 0;
  border-top: 1px solid var(--cabo-line);
}

/* --------------------------------------------------------------------------
   Full-screen responsive menu
   -------------------------------------------------------------------------- */
.cabo-mobile-drawer {
  position: fixed;
  inset: 0;
  z-index: 1600;
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: none;
  height: 100dvh;
  visibility: hidden;
  opacity: 0;
  transform: none;
  overflow: hidden;
  color: var(--cabo-ink-2);
  background: var(--cabo-paper);
  border: 0;
  box-shadow: none;
  transition: opacity var(--cabo-dur) var(--cabo-ease), visibility 0s linear var(--cabo-dur);
}

.cabo-mobile-drawer.is-open {
  visibility: visible;
  opacity: 1;
  transform: none;
  transition: opacity var(--cabo-dur) var(--cabo-ease), visibility 0s linear 0s;
}

.cabo-mobile-drawer__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: var(--cabo-header-h);
  padding-inline: var(--cabo-gutter);
  border-bottom: var(--cabo-border);
}

.cabo-mobile-drawer__logo img {
  width: 180px;
  height: auto;
}

.cabo-mobile-drawer__close {
  border: var(--cabo-border);
  border-radius: var(--cabo-radius-round);
}

.cabo-mobile-drawer__body {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(280px, 340px);
  grid-template-rows: auto auto;
  align-content: start;
  flex: 1;
  gap: var(--cabo-space-6) var(--cabo-space-8);
  width: min(100% - (var(--cabo-gutter) * 2), var(--cabo-container));
  margin-inline: auto;
  padding-block: var(--cabo-space-7);
  overflow-y: auto;
  overscroll-behavior: contain;
}

.cabo-mobile-drawer__body > nav {
  grid-column: 1;
  grid-row: 1;
}

.cabo-mobile-drawer__nav a {
  display: flex;
  align-items: center;
  width: fit-content;
  min-height: 48px;
  color: var(--cabo-ink);
  font-weight: 500;
  line-height: 1.1;
  font-variant-numeric: lining-nums;
}

.cabo-mobile-drawer__nav a:hover,
.cabo-mobile-drawer__nav a:focus-visible {
  text-decoration: underline;
  text-decoration-color: var(--cabo-gold);
  text-underline-offset: 8px;
}

.cabo-mobile-drawer__utility {
  grid-column: 1;
  grid-row: 2;
  align-self: start;
  display: flex;
  flex-direction: column;
  width: 100%;
  padding-top: var(--cabo-space-6);
  border-top: var(--cabo-border);
}

.cabo-mobile-drawer__utility-link,
.cabo-mobile-drawer__contact-links a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--cabo-ink-2);
  cursor: pointer;
}

.cabo-mobile-drawer__auth-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--cabo-space-3);
  width: 100%;
}

.cabo-mobile-drawer .cabo-mobile-drawer__auth-btn {
  width: 100%;
  height: 48px;
  min-height: 48px;
  padding: 0 var(--cabo-space-3);
  border-radius: 0;
  font-size: var(--cabo-text-ui);
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  cursor: pointer;
  box-sizing: border-box;
}

.cabo-mobile-drawer__favorites-row {
  width: 100%;
  margin-top: var(--cabo-space-4);
  border-top: 1px solid var(--cabo-line);
  border-bottom: 1px solid var(--cabo-line);
}

.cabo-mobile-drawer__favorites-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: 48px;
  padding-inline: 0;
  color: var(--cabo-ink-2);
  font-size: var(--cabo-text-small);
  font-weight: 500;
  letter-spacing: 0.04em;
  text-decoration: none;
  box-sizing: border-box;
  transition: color var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-mobile-drawer__favorites-link:hover,
.cabo-mobile-drawer__favorites-link:focus-visible {
  color: var(--cabo-gold);
}

.cabo-mobile-drawer__favorites-label {
  display: inline-flex;
  align-items: center;
  gap: var(--cabo-space-3);
}

.cabo-mobile-drawer__favorites-label .cabo-icon {
  color: var(--cabo-gold);
  flex-shrink: 0;
}

.cabo-mobile-drawer__favorites-link .cabo-menu-count {
  margin-left: auto;
}

.cabo-mobile-drawer__account {
  display: flex;
  flex-direction: column;
  width: 100%;
}

.cabo-mobile-drawer__account-profile {
  display: flex;
  align-items: flex-start;
  gap: var(--cabo-space-4);
  padding-bottom: var(--cabo-space-4);
  border-bottom: 1px solid var(--cabo-line);
}

.cabo-mobile-drawer__account-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  flex-shrink: 0;
  border: 1px solid var(--cabo-line);
  border-radius: 0;
  background: var(--cabo-sand);
  color: var(--cabo-ink);
  font-size: var(--cabo-text-small);
  font-weight: 600;
  line-height: 1;
  text-transform: uppercase;
}

.cabo-mobile-drawer__account-profile-info {
  display: flex;
  flex-direction: column;
  min-width: 0;
  flex: 1;
}

.cabo-mobile-drawer__account-name {
  margin: 0;
  color: var(--cabo-ink);
  font-size: var(--cabo-text-body);
  font-weight: 600;
  line-height: var(--cabo-leading-tight);
}

.cabo-mobile-drawer__account-email {
  margin: var(--cabo-space-1) 0 0;
  color: var(--cabo-muted);
  font-size: var(--cabo-text-label);
  line-height: var(--cabo-leading-normal);
  word-break: break-all;
}

.cabo-mobile-drawer__account-phone {
  margin: var(--cabo-space-1) 0 0;
  color: var(--cabo-muted);
  font-size: var(--cabo-text-label);
  line-height: var(--cabo-leading-normal);
}

.cabo-mobile-drawer__account-links {
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0;
  list-style: none;
  width: 100%;
}

.cabo-mobile-drawer__account-links li {
  width: 100%;
  border-bottom: 1px solid var(--cabo-line);
}

.cabo-mobile-drawer__account-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: 48px;
  padding-inline: 0;
  color: var(--cabo-ink-2);
  font-size: var(--cabo-text-body);
  font-weight: 500;
  letter-spacing: 0.02em;
  text-transform: none;
  text-decoration: none;
  box-sizing: border-box;
  transition: color var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-mobile-drawer__account-link:hover,
.cabo-mobile-drawer__account-link:focus-visible {
  color: var(--cabo-gold);
}

.cabo-mobile-drawer__account-link .cabo-icon {
  color: var(--cabo-muted);
  flex-shrink: 0;
  transition: color var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-mobile-drawer__account-link:hover .cabo-icon,
.cabo-mobile-drawer__account-link:focus-visible .cabo-icon {
  color: var(--cabo-gold);
}

.cabo-mobile-drawer__account-link-end {
  display: inline-flex;
  align-items: center;
  gap: var(--cabo-space-2);
}

.cabo-mobile-drawer__account-link-end .cabo-menu-count {
  margin-left: auto;
}

.cabo-mobile-drawer__account-footer {
  width: 100%;
  margin-top: var(--cabo-space-2);
}

.cabo-mobile-drawer__account-link--logout {
  display: inline-flex;
  align-items: center;
  width: 100%;
  min-height: 48px;
  color: var(--cabo-muted);
  font-size: var(--cabo-text-small);
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: none;
  text-decoration: none;
  border-bottom: 0;
  transition: color var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-mobile-drawer__account-link--logout:hover,
.cabo-mobile-drawer__account-link--logout:focus-visible {
  color: var(--cabo-ink);
}

.cabo-mobile-drawer__contact {
  grid-column: 2;
  grid-row: 2;
  align-self: start;
  width: 100%;
  box-sizing: border-box;
  padding: var(--cabo-space-6);
  background: var(--cabo-sand);
  border-top: 2px solid var(--cabo-gold);
  border-radius: 0;
}

.cabo-mobile-drawer__contact .cabo-label {
  margin: 0 0 var(--cabo-space-4);
  color: var(--cabo-ink);
  font-size: var(--cabo-text-label);
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.cabo-mobile-drawer__contact-primary {
  width: 100%;
  min-height: 48px;
  height: 48px;
  border-radius: 0;
}

.cabo-mobile-drawer__contact-links {
  display: flex;
  flex-direction: column;
  margin-top: var(--cabo-space-3);
  width: 100%;
}

.cabo-mobile-drawer__contact-link {
  display: flex;
  align-items: center;
  gap: var(--cabo-space-3);
  width: 100%;
  min-height: 44px;
  padding-block: var(--cabo-space-2);
  border-top: 1px solid var(--cabo-line);
  color: var(--cabo-ink-2);
  font-size: var(--cabo-text-small);
  font-weight: 500;
  letter-spacing: 0.04em;
  text-decoration: none;
  box-sizing: border-box;
  transition: color var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-mobile-drawer__contact-link:hover,
.cabo-mobile-drawer__contact-link:focus-visible {
  color: var(--cabo-gold);
}

.cabo-mobile-drawer__contact-link .cabo-icon {
  color: var(--cabo-gold);
  flex-shrink: 0;
}

@media (min-width: 1240px) and (max-width: 1365px) {
  .cabo-header__inner {
    gap: var(--cabo-space-3);
  }

  .cabo-header__nav-list {
    gap: var(--cabo-space-4);
  }
}

@media (max-width: 1239px) {
  .cabo-header__inner {
    display: flex;
    min-height: var(--cabo-header-h);
  }

  .cabo-header__logo {
    margin-right: auto;
  }

  .cabo-header__nav,
  .cabo-header__desktop-actions,
  .cabo-header__divider {
    display: none;
  }

  .cabo-header-account__name {
    display: none;
  }

  .cabo-header-account__avatar {
    display: inline-flex;
  }

  .cabo-header__menu-toggle {
    display: inline-flex;
  }
}

@media (max-width: 480px) {
  .cabo-header-account__menu {
    position: fixed;
    top: calc(var(--cabo-header-h) + var(--cabo-space-1));
    right: var(--cabo-space-3);
    left: var(--cabo-space-3);
    width: auto;
  }
}

@media (max-width: 767px) {
  .cabo-header__logo img,
  .cabo-mobile-drawer__logo img {
    width: 140px;
  }

  .cabo-header__actions {
    gap: var(--cabo-space-2);
  }

  .cabo-mobile-drawer__body {
    display: flex;
    flex-direction: column;
    gap: var(--cabo-space-6);
    padding-block: var(--cabo-space-5);
    padding-bottom: calc(var(--cabo-space-8) + env(safe-area-inset-bottom, 0px));
    overflow-x: hidden;
  }

  .cabo-mobile-drawer__nav {
    order: 1;
  }

  .cabo-mobile-drawer__nav a {
    width: 100%;
  }

  .cabo-mobile-drawer__utility {
    order: 2;
    align-self: stretch;
    width: 100%;
  }

  .cabo-mobile-drawer__contact {
    order: 3;
    align-self: stretch;
    width: 100%;
    padding: var(--cabo-space-6);
    box-sizing: border-box;
  }
}

/* --------------------------------------------------------------------------
   Global footer
   -------------------------------------------------------------------------- */
.cabo-footer {
  padding-block: var(--cabo-space-9) var(--cabo-space-7);
  color: color-mix(in srgb, var(--cabo-cream) 78%, transparent);
  background: var(--cabo-ink);
  border: 0;
}

.cabo-footer__brand-band {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: var(--cabo-space-8);
  padding-bottom: var(--cabo-space-8);
  border-bottom: 1px solid color-mix(in srgb, var(--cabo-cream) 12%, transparent);
}

.cabo-footer__brand {
  min-width: 0;
  max-width: 420px;
}

.cabo-footer__logo {
  display: inline-flex;
  align-items: center;
  margin-bottom: var(--cabo-space-4);
}

.cabo-footer__logo img {
  display: block;
  width: 220px;
  height: auto;
  max-width: 100%;
}

.cabo-footer__tagline {
  max-width: 36ch;
  margin: 0;
  color: color-mix(in srgb, var(--cabo-cream) 78%, transparent);
  line-height: var(--cabo-leading-relaxed);
}

.cabo-footer__contact {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--cabo-space-3);
  min-width: 0;
}

.cabo-footer__title {
  margin: 0 0 var(--cabo-space-3) 0;
  color: var(--cabo-gold);
}

.cabo-footer__contact-info {
  display: flex;
  flex-direction: column;
  gap: var(--cabo-space-1);
}

.cabo-footer__contact-link {
  display: inline-flex;
  align-items: center;
  gap: var(--cabo-space-2);
  min-height: 44px;
  color: var(--cabo-cream);
  text-decoration: none;
  transition: color var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-footer__contact-link:hover,
.cabo-footer__contact-link:focus-visible {
  color: var(--cabo-gold);
  text-decoration: underline;
  text-decoration-color: var(--cabo-gold);
  text-underline-offset: var(--cabo-space-1);
}

.cabo-footer__contact-link .cabo-icon {
  flex: 0 0 auto;
  color: var(--cabo-gold);
}

.cabo-footer__contact-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--cabo-space-3);
  margin-top: var(--cabo-space-2);
}

.cabo-footer .cabo-btn-primary,
.cabo-footer .cabo-btn--cream {
  color: var(--cabo-ink);
  background: var(--cabo-cream);
  border-color: var(--cabo-cream);
  border-radius: var(--cabo-radius-0);
}

.cabo-footer .cabo-btn-primary:hover,
.cabo-footer .cabo-btn-primary:focus-visible,
.cabo-footer .cabo-btn--cream:hover,
.cabo-footer .cabo-btn--cream:focus-visible {
  color: var(--cabo-ink);
  background: var(--cabo-white);
  border-color: var(--cabo-white);
}

.cabo-footer .cabo-btn--outline,
.cabo-footer .cabo-btn--light {
  color: var(--cabo-cream);
  background: transparent;
  border-color: color-mix(in srgb, var(--cabo-cream) 70%, transparent);
  border-radius: var(--cabo-radius-0);
}

.cabo-footer .cabo-btn--outline:hover,
.cabo-footer .cabo-btn--outline:focus-visible,
.cabo-footer .cabo-btn--light:hover,
.cabo-footer .cabo-btn--light:focus-visible {
  color: var(--cabo-ink);
  background: var(--cabo-cream);
  border-color: var(--cabo-cream);
}

.cabo-footer .cabo-btn .cabo-icon {
  flex: 0 0 auto;
}

.cabo-footer__nav-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--cabo-space-8);
  padding-block: var(--cabo-space-8);
  border-bottom: 1px solid color-mix(in srgb, var(--cabo-cream) 12%, transparent);
}

.cabo-footer__group {
  min-width: 0;
}

.cabo-footer__summary {
  display: block;
  list-style: none;
  cursor: default;
  pointer-events: none;
  margin-bottom: var(--cabo-space-4);
}

.cabo-footer__summary::-webkit-details-marker {
  display: none;
}

.cabo-footer__chevron {
  display: none;
}

.cabo-footer__links {
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0;
  list-style: none;
}

.cabo-footer__links li {
  margin: 0;
  padding: 0;
}

.cabo-footer__links a {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  color: color-mix(in srgb, var(--cabo-cream) 78%, transparent);
  text-decoration: none;
  transition: color var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-footer__utility a {
  display: inline-flex;
  align-items: center;
  min-width: 44px;
  min-height: 44px;
  color: color-mix(in srgb, var(--cabo-cream) 78%, transparent);
  text-decoration: none;
  transition: color var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-footer__links a:hover,
.cabo-footer__links a:focus-visible,
.cabo-footer__utility a:hover,
.cabo-footer__utility a:focus-visible {
  color: var(--cabo-cream);
  text-decoration: underline;
  text-decoration-color: var(--cabo-gold);
  text-underline-offset: var(--cabo-space-1);
}

.cabo-footer a:focus-visible {
  outline-color: var(--cabo-gold);
}

.cabo-footer a span[aria-hidden="true"] {
  display: inline-block;
  margin-left: var(--cabo-space-1);
  transition: transform var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-footer a:hover span[aria-hidden="true"],
.cabo-footer a:focus-visible span[aria-hidden="true"] {
  transform: translateX(var(--cabo-space-1));
}

.cabo-footer__legal {
  padding-top: var(--cabo-space-6);
  color: color-mix(in srgb, var(--cabo-cream) 72%, transparent);
}

.cabo-footer__legal-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--cabo-space-4);
}

.cabo-footer__copyright {
  margin: 0;
}

.cabo-footer__utility {
  display: flex;
  flex-wrap: wrap;
  gap: 0 var(--cabo-space-4);
}

.cabo-footer__disclaimer {
  margin-top: var(--cabo-space-4);
  margin-bottom: 0;
  max-width: none;
  color: color-mix(in srgb, var(--cabo-cream) 60%, transparent);
  line-height: var(--cabo-leading-relaxed);
}

.cabo-whatsapp-float {
  position: fixed;
  right: var(--cabo-space-5);
  bottom: var(--cabo-space-5);
  z-index: 990;
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  min-height: 56px;
  padding: 0;
  border-radius: var(--cabo-radius-round);
  color: var(--cabo-cream);
  background: var(--cabo-ink);
  box-shadow: var(--cabo-shadow-float);
}

/* Phones: no floating WhatsApp button where the screen already has fixed bars. Listing pages
   have WhatsApp in their bottom action bar; search pages keep the sticky search bar. */
@media (max-width: 767px) {
  body.single-property .cabo-whatsapp-float,
  body:has(.cabo-sb:not(.sb--home)) .cabo-whatsapp-float {
    display: none;
  }
}

.cabo-whatsapp-float:hover,
.cabo-whatsapp-float:focus-visible {
  color: var(--cabo-cream);
  background: var(--cabo-ink-hover);
  transform: translateY(calc(var(--cabo-space-1) * -1));
}

.cabo-whatsapp-float:focus-visible {
  outline-color: var(--cabo-ink);
}

.cabo-whatsapp-float .cabo-icon {
  fill: currentColor;
}

.cabo-whatsapp-float span {
  position: absolute;
  right: calc(100% + var(--cabo-space-3));
  width: max-content;
  padding: var(--cabo-space-2) var(--cabo-space-3);
  visibility: hidden;
  opacity: 0;
  color: var(--cabo-cream);
  background: var(--cabo-ink);
  border-radius: var(--cabo-radius-1);
  transition: opacity var(--cabo-dur-fast) var(--cabo-ease), visibility 0s linear var(--cabo-dur-fast);
}

.cabo-whatsapp-float:hover span,
.cabo-whatsapp-float:focus-visible span {
  visibility: visible;
  opacity: 1;
  transition: opacity var(--cabo-dur-fast) var(--cabo-ease), visibility 0s linear 0s;
}

@media (max-width: 1023px) {
  .cabo-footer__brand-band {
    flex-direction: column;
    gap: var(--cabo-space-6);
  }

  .cabo-footer__brand {
    max-width: 100%;
  }

  .cabo-footer__nav-row {
    grid-template-columns: repeat(3, 1fr);
    gap: var(--cabo-space-5);
  }
}

@media (max-width: 767px) {
  .cabo-footer {
    padding-block: var(--cabo-space-8) calc(var(--cabo-space-8) + 72px + env(safe-area-inset-bottom, 0px));
  }

  .cabo-footer__brand-band {
    flex-direction: column;
    gap: var(--cabo-space-6);
    padding-bottom: var(--cabo-space-6);
  }

  .cabo-footer__logo img {
    width: 180px;
  }

  .cabo-footer__contact {
    width: 100%;
  }

  .cabo-footer__contact-info {
    width: 100%;
  }

  .cabo-footer__contact-actions {
    flex-direction: column;
    width: 100%;
    gap: var(--cabo-space-2);
  }

  .cabo-footer__contact-actions .cabo-btn {
    width: 100%;
    min-height: 48px;
  }

  .cabo-footer__nav-row {
    grid-template-columns: 1fr;
    gap: 0;
    padding-block: 0;
    border-bottom: 0;
  }

  .cabo-footer__group {
    border-bottom: 1px solid color-mix(in srgb, var(--cabo-cream) 12%, transparent);
  }

  .cabo-footer__summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 48px;
    padding-block: var(--cabo-space-3);
    margin-bottom: 0;
    cursor: pointer;
    pointer-events: auto;
  }

  .cabo-footer__summary .cabo-footer__title {
    margin-bottom: 0;
  }

  .cabo-footer__chevron {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--cabo-gold);
    transition: transform var(--cabo-dur-fast) var(--cabo-ease);
  }

  .cabo-footer__group[open] .cabo-footer__chevron {
    transform: rotate(180deg);
  }

  .cabo-footer__links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--cabo-space-1) var(--cabo-space-3);
    padding-bottom: var(--cabo-space-4);
  }

  .cabo-footer__links a {
    min-height: 44px;
  }

  .cabo-footer__legal {
    padding-top: var(--cabo-space-6);
  }

  .cabo-footer__legal-row {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--cabo-space-3);
  }

  .cabo-footer__utility {
    gap: 0 var(--cabo-space-3);
  }

  .cabo-footer__disclaimer {
    margin-top: var(--cabo-space-3);
  }

  .cabo-whatsapp-float {
    right: var(--cabo-space-4);
    bottom: var(--cabo-space-4);
  }

  .cabo-whatsapp-float span {
    display: none;
  }
}

/* --------------------------------------------------------------------------
   Global utility components
   -------------------------------------------------------------------------- */
.cabo-btn {
  appearance: none;
  -webkit-appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--cabo-space-2);
  min-height: 48px;
  padding: 0 var(--cabo-space-6);
  color: var(--cabo-cream);
  font: 500 var(--cabo-text-ui)/1 var(--cabo-font-sans);
  letter-spacing: 0.14em;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  background: var(--cabo-ink);
  border: 1px solid var(--cabo-ink);
  border-radius: var(--cabo-radius-1);
  box-shadow: none;
  cursor: pointer;
  touch-action: manipulation;
  transition: background-color var(--cabo-dur-fast) var(--cabo-ease),
    border-color var(--cabo-dur-fast) var(--cabo-ease),
    color var(--cabo-dur-fast) var(--cabo-ease),
    transform 60ms var(--cabo-ease);
}

.cabo-btn:hover,
.cabo-btn:focus-visible {
  color: var(--cabo-cream);
  background: var(--cabo-ink-hover);
  border-color: var(--cabo-ink-hover);
}

.cabo-btn:active,
.btn:active {
  transform: translateY(1px);
  background-color: var(--cabo-ink-2);
  border-color: var(--cabo-ink-2);
  color: var(--cabo-cream);
  transition-duration: 60ms;
}

.cabo-btn-outline:active,
.cabo-btn--outline:active,
.cabo-btn-secondary:active,
.cabo-btn--secondary:active,
.btn--outline:active {
  transform: translateY(1px);
  background-color: var(--cabo-ink-2);
  border-color: var(--cabo-ink-2);
  color: var(--cabo-cream);
  transition-duration: 60ms;
}

.cabo-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  border-radius: var(--cabo-radius-round);
  transition: background-color var(--cabo-dur-fast) var(--cabo-ease),
    border-color var(--cabo-dur-fast) var(--cabo-ease),
    color var(--cabo-dur-fast) var(--cabo-ease),
    transform 60ms var(--cabo-ease);
}

.cabo-icon-btn:hover {
  background-color: var(--cabo-sand);
  color: var(--cabo-ink);
}

.cabo-icon-btn:active {
  transform: scale(0.94);
  transition-duration: 60ms;
}

.cabo-icon-btn:focus-visible {
  outline: 2px solid var(--cabo-ink);
  outline-offset: 2px;
}

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

.cabo-btn.cabo-btn-sm {
  min-height: 40px;
  padding-inline: var(--cabo-space-4);
}

.cabo-btn:focus-visible {
  outline: 2px solid var(--cabo-gold);
  outline-offset: 2px;
}

.cabo-btn-outline,
.cabo-btn--outline,
.cabo-btn-secondary,
.cabo-btn--secondary {
  color: var(--cabo-ink);
  background: transparent;
  border-color: var(--cabo-ink);
}

.cabo-btn-outline:hover,
.cabo-btn-outline:focus-visible,
.cabo-btn--outline:hover,
.cabo-btn--outline:focus-visible,
.cabo-btn-secondary:hover,
.cabo-btn-secondary:focus-visible,
.cabo-btn--secondary:hover,
.cabo-btn--secondary:focus-visible {
  color: var(--cabo-cream);
  background: var(--cabo-ink);
  border-color: var(--cabo-ink);
}

.cabo-btn--cream {
  color: var(--cabo-ink);
  background: var(--cabo-cream);
  border-color: var(--cabo-cream);
}

.cabo-btn--cream:hover,
.cabo-btn--cream:focus-visible {
  color: var(--cabo-ink);
  background: var(--cabo-white);
  border-color: var(--cabo-white);
}

.cabo-btn-outline-white,
.cabo-btn--light {
  color: var(--cabo-cream);
  background: transparent;
  border-color: color-mix(in srgb, var(--cabo-cream) 70%, transparent);
}

.cabo-btn-outline-white:hover,
.cabo-btn-outline-white:focus-visible,
.cabo-btn--light:hover,
.cabo-btn--light:focus-visible {
  color: var(--cabo-ink);
  background: var(--cabo-cream);
  border-color: var(--cabo-cream);
}

.cabo-skip-link {
  position: fixed;
  top: var(--cabo-space-3);
  left: var(--cabo-space-3);
  z-index: 3000;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  color: var(--cabo-cream);
  background: var(--cabo-ink);
}

.cabo-skip-link:focus {
  width: auto;
  height: auto;
  min-height: 44px;
  padding: var(--cabo-space-3) var(--cabo-space-4);
  overflow: visible;
  clip-path: none;
  outline-color: var(--cabo-cream);
}

.cabo-main-anchor {
  scroll-margin-top: 96px;
}

.cabo-breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--cabo-space-2);
  color: var(--cabo-muted);
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.cabo-breadcrumbs a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}

.cabo-breadcrumbs a:hover,
.cabo-breadcrumbs a:focus-visible,
.cabo-breadcrumbs [aria-current="page"] {
  color: var(--cabo-ink);
}

.cabo-alert {
  padding: var(--cabo-space-3) var(--cabo-space-4);
  color: var(--cabo-ink-2);
  background: var(--cabo-white);
  border-left: 2px solid var(--cabo-success);
  line-height: 1.55;
}

.cabo-alert--success {
  border-left-color: var(--cabo-success);
}

.cabo-alert--error {
  border-left-color: var(--cabo-error);
}

.cabo-toast {
  position: fixed;
  right: calc(var(--cabo-space-5) + 72px);
  bottom: var(--cabo-space-5);
  z-index: 2400;
  max-width: min(360px, calc(100vw - (var(--cabo-gutter) * 2)));
  padding: var(--cabo-space-3) var(--cabo-space-5);
  visibility: hidden;
  opacity: 0;
  color: var(--cabo-cream);
  background: var(--cabo-ink);
  border-left: 2px solid var(--cabo-success);
  box-shadow: var(--cabo-shadow-float);
  transform: translateY(8px);
  transition: opacity var(--cabo-dur) var(--cabo-ease),
    transform var(--cabo-dur) var(--cabo-ease),
    visibility 0s linear var(--cabo-dur);
}

.cabo-toast.is-visible {
  visibility: visible;
  opacity: 1;
  transform: translateY(0);
  transition: opacity var(--cabo-dur) var(--cabo-ease),
    transform var(--cabo-dur) var(--cabo-ease),
    visibility 0s linear 0s;
}

.cabo-modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 2200;
  display: grid;
  place-items: center;
  padding: var(--cabo-gutter);
  visibility: hidden;
  opacity: 0;
  background: var(--cabo-scrim);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  transition: opacity var(--cabo-dur) var(--cabo-ease), visibility 0s linear var(--cabo-dur);
}

.cabo-modal-backdrop.active {
  visibility: visible;
  opacity: 1;
  transition: opacity var(--cabo-dur) var(--cabo-ease), visibility 0s linear 0s;
}

.cabo-modal-card {
  position: relative;
  width: min(480px, 100%);
  max-height: calc(100dvh - (var(--cabo-gutter) * 2));
  padding: var(--cabo-space-7);
  overflow-y: auto;
  color: var(--cabo-ink-2);
  background: var(--cabo-paper);
  border: var(--cabo-border);
  border-radius: var(--cabo-radius-0);
  box-shadow: var(--cabo-shadow-modal);
  transform: translateY(8px);
  transition: transform var(--cabo-dur) var(--cabo-ease);
}

.cabo-modal-backdrop.active .cabo-modal-card {
  transform: translateY(0);
}

.cabo-modal-close {
  position: absolute;
  top: var(--cabo-space-3);
  right: var(--cabo-space-3);
  display: inline-grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  color: var(--cabo-ink);
  background: var(--cabo-white);
  border: var(--cabo-border);
  border-radius: var(--cabo-radius-round);
  cursor: pointer;
}

.cabo-modal-title {
  max-width: calc(100% - var(--cabo-space-7));
  margin-bottom: var(--cabo-space-3);
  font-weight: 500;
}

.cabo-modal-subtitle {
  margin-bottom: var(--cabo-space-6);
  color: var(--cabo-muted);
}

.cabo-auth-name-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--cabo-space-4);
}

.cabo-auth-name-fields[hidden] {
  display: none;
}

.cabo-form-group + .cabo-form-group,
.cabo-auth-name-fields + .cabo-form-group,
#caboAuthForm .cabo-alert {
  margin-top: var(--cabo-space-4);
}

/* First and last name sit side by side: the grid gap spaces them. */
.cabo-auth-name-fields .cabo-form-group + .cabo-form-group {
  margin-top: 0;
}

.cabo-auth-submit {
  width: 100%;
  min-height: 48px;
  margin-top: var(--cabo-space-4);
}

.cabo-auth-mode-row,
.cabo-auth-note {
  margin-top: var(--cabo-space-4);
}

.cabo-form-consent {
  margin-top: var(--cabo-space-3);
  margin-bottom: 0;
  color: var(--cabo-muted);
  line-height: var(--cabo-leading-snug);
}

.cabo-form-consent a {
  color: var(--cabo-ink);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.cabo-form-consent a:hover,
.cabo-form-consent a:focus-visible {
  color: var(--cabo-gold);
}

.cabo-auth-mode-toggle {
  min-height: 44px;
  padding: 0;
  color: var(--cabo-ink);
  background: transparent;
  border: 0;
  text-decoration: underline;
  text-decoration-color: var(--cabo-gold);
  text-underline-offset: var(--cabo-space-2);
  cursor: pointer;
}

.cabo-auth-back-row {
  display: none;
  margin-top: var(--cabo-space-3);
  text-align: center;
}

.cabo-modal-backdrop.is-hard .cabo-auth-back-row {
  display: block;
}

.cabo-auth-back-link {
  color: var(--cabo-muted);
  text-decoration: underline;
  transition: color var(--cabo-dur) var(--cabo-ease);
}

.cabo-auth-back-link:hover,
.cabo-auth-back-link:focus-visible {
  color: var(--cabo-ink);
}

.cabo-modal-backdrop.is-hard .cabo-modal-close {
  display: none;
}

/* Consents */
.cabo-auth-consents {
  margin-top: var(--cabo-space-4);
  padding-top: var(--cabo-space-3);
  border-top: 1px solid var(--cabo-border);
}

.cabo-auth-consents[hidden] {
  display: none;
}

.cabo-form-consent-group {
  margin-bottom: var(--cabo-space-3);
}

.cabo-form-channel-title {
  margin-bottom: var(--cabo-space-2);
  font-size: var(--cabo-text-label);
  font-weight: 500;
  color: var(--cabo-ink-2);
}

.cabo-checkbox-group {
  display: flex;
  flex-direction: column;
  gap: var(--cabo-space-2);
}

.cabo-checkbox-label {
  display: flex;
  align-items: flex-start;
  gap: var(--cabo-space-2);
  min-height: 44px;
  padding: var(--cabo-space-1) 0;
  font-size: var(--cabo-text-label);
  line-height: var(--cabo-leading-snug);
  color: var(--cabo-ink-2);
  cursor: pointer;
}

.cabo-form-checkbox {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  margin-top: 2px;
  accent-color: var(--cabo-gold);
  cursor: pointer;
}

.cabo-checkbox-label a {
  color: var(--cabo-ink);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.cabo-checkbox-label a:hover,
.cabo-checkbox-label a:focus-visible {
  color: var(--cabo-gold);
}

.cabo-required-mark {
  color: var(--cabo-error);
}

html.is-auth-wall-hard,
body.is-auth-wall-hard,
.is-auth-modal-open,
body.is-lightbox-open,
body.is-drawer-open {
  overflow: hidden;
  touch-action: none;
}

body.is-auth-wall-hard > *:not(#caboAuthModal):not(.cabo-modal-backdrop):not(script):not(style) {
  filter: blur(var(--cabo-space-1));
  pointer-events: none;
  user-select: none;
}

.cabo-lead-status,
.cabo-form-success-card {
  margin-top: var(--cabo-space-4);
}

.cabo-form-success-card {
  padding: var(--cabo-space-6) var(--cabo-space-5);
}

.cabo-form-success-card__title {
  margin-bottom: var(--cabo-space-2);
}

.cabo-form-success-card__action {
  margin-top: var(--cabo-space-4);
}

@media (max-width: 479px) {
  .cabo-modal-card {
    padding: var(--cabo-space-6) var(--cabo-space-5);
  }

  .cabo-auth-name-fields {
    grid-template-columns: 1fr;
    gap: var(--cabo-space-4);
  }

  .cabo-toast {
    right: var(--cabo-gutter);
    bottom: calc(var(--cabo-space-5) + 64px);
  }
}

.cabo-hero-content {
  width: 100%;
  min-width: 0;
}

@media (max-width: 767px) {
  .cabo-btn,
  .cabo-btn.cabo-btn-sm {
    min-height: 44px;
    white-space: normal;
  }

  .cabo-btn.cabo-btn-primary {
    min-width: 0;
    max-width: 100%;
    text-align: center;
    text-wrap: balance;
  }

  .cabo-property-actions .cabo-btn,
  .cabo-property-mobile-actions .cabo-btn {
    white-space: nowrap;
  }

  .cabo-breadcrumbs a {
    min-width: 44px;
    justify-content: center;
  }
}

/* --------------------------------------------------------------------------
   Property archive
   -------------------------------------------------------------------------- */
.cabo-archive {
  background: var(--cabo-paper);
}

.cabo-archive__intro {
  padding-top: var(--cabo-section-tight);
  padding-bottom: var(--cabo-space-7);
}

.cabo-archive__intro h1 {
  max-width: 14ch;
  margin: var(--cabo-space-4) 0 var(--cabo-space-5);
}

.cabo-archive__intro > p:last-child {
  max-width: 58ch;
  margin: 0;
  color: var(--cabo-muted);
}

.cabo-archive__search {
  padding-block: var(--cabo-space-7);
  background: var(--cabo-sand);
  border-block: var(--cabo-border);
}

.cabo-archive__results {
  padding-block: var(--cabo-section-tight);
}

.cabo-archive--neighborhood .cabo-neighborhood-header {
  margin-bottom: var(--cabo-space-6);
  padding-bottom: var(--cabo-space-5);
  border-bottom: 1px solid var(--cabo-border);
}

.cabo-archive--neighborhood .cabo-neighborhood-header .cabo-breadcrumbs {
  margin-bottom: var(--cabo-space-4);
}

.cabo-archive--neighborhood .cabo-neighborhood-header__title {
  margin: 0 0 var(--cabo-space-3);
  font-size: var(--cabo-text-h1);
  line-height: var(--cabo-leading-tight);
  color: var(--cabo-ink);
  overflow-wrap: break-word;
}

.cabo-archive--neighborhood .cabo-neighborhood-header__count {
  margin: 0 0 var(--cabo-space-4);
  color: var(--cabo-muted);
  font-size: var(--cabo-text-lead);
  line-height: var(--cabo-leading-normal);
  max-width: var(--cabo-measure-prose);
  overflow-wrap: break-word;
}

.cabo-archive--neighborhood .cabo-neighborhood-header__guide {
  margin: 0;
}

.cabo-results-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--cabo-space-5);
  margin-bottom: var(--cabo-space-7);
  padding-bottom: var(--cabo-space-4);
  border-bottom: var(--cabo-border);
}

.cabo-results-count {
  margin: 0;
  color: var(--cabo-muted);
}

.cabo-results-count strong {
  color: var(--cabo-ink);
  font-weight: 500;
  font-variant-numeric: tabular-nums;
}

.cabo-results-toolbar__controls,
.cabo-view-toggle {
  display: flex;
  align-items: center;
  gap: var(--cabo-space-3);
}

.cabo-results-toolbar__controls > label {
  color: var(--cabo-muted);
  white-space: nowrap;
}

.cabo-results-sort {
  min-width: 180px;
}

.cabo-view-toggle {
  padding-left: var(--cabo-space-4);
  border-left: var(--cabo-border);
}

.cabo-view-toggle__button {
  min-height: 44px;
  padding-inline: var(--cabo-space-4);
  color: var(--cabo-muted);
  background: transparent;
  border: 0;
  border-bottom: 1px solid transparent;
  cursor: pointer;
}

.cabo-view-toggle__button:hover,
.cabo-view-toggle__button:focus-visible,
.cabo-view-toggle__button.is-active {
  color: var(--cabo-ink);
  border-bottom-color: var(--cabo-gold);
}

.cabo-listing-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--cabo-space-7) var(--cabo-space-5);
}

.cabo-listing-grid[aria-busy="true"],
.cabo-listing-grid.is-busy {
  opacity: 0.45;
  pointer-events: none;
  transition: opacity var(--cabo-dur) var(--cabo-ease);
}

.cabo-busy-bar,
.busy-bar {
  height: 2px;
  margin-bottom: var(--cabo-space-4);
  background: var(--cabo-line);
  overflow: hidden;
  position: relative;
  width: 100%;
}

.cabo-busy-bar span,
.busy-bar span {
  display: block;
  width: 30%;
  height: 100%;
  background: var(--cabo-gold);
  transform: translateX(-100%);
  animation: cabo-busy var(--cabo-dur-slow) var(--cabo-ease) infinite;
}

@keyframes cabo-busy {
  to {
    transform: translateX(340%);
  }
}

@media (prefers-reduced-motion: reduce) {
  .cabo-busy-bar span,
  .busy-bar span {
    animation: none;
    transform: none;
    width: 100%;
    opacity: 0.5;
  }
}

.cabo-empty-state {
  grid-column: 1 / -1;
  padding: var(--cabo-space-8) var(--cabo-space-5);
  text-align: center;
  background: var(--cabo-white);
  border: var(--cabo-border);
}

.cabo-empty-state h3 {
  margin: 0 0 var(--cabo-space-3);
}

.cabo-empty-state p {
  max-width: 48ch;
  margin: 0 auto var(--cabo-space-5);
  color: var(--cabo-muted);
}

.cabo-pagination {
  margin-top: var(--cabo-space-8);
  text-align: center;
}

.cabo-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  min-height: 40px;
  margin-inline: var(--cabo-space-1);
  color: var(--cabo-muted);
}

.cabo-pagination ul.page-numbers {
  display: flex;
  justify-content: center;
  gap: var(--cabo-space-2);
  margin: 0;
  padding: 0;
  list-style: none;
}

.cabo-pagination ul.page-numbers > li {
  display: contents;
}

.cabo-pagination .page-numbers.current {
  color: var(--cabo-ink);
  border-bottom: 1px solid var(--cabo-gold);
}

.cabo-pagination .prev,
.cabo-pagination .next {
  width: auto;
  padding-inline: var(--cabo-space-3);
  color: var(--cabo-ink);
}

.cabo-results-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--cabo-space-4);
  margin-bottom: var(--cabo-space-6);
  padding-bottom: var(--cabo-space-4);
  border-bottom: var(--cabo-border);
}

.cabo-results-toolbar__status {
  display: flex;
  flex-direction: column;
  gap: var(--cabo-space-1);
}

.cabo-results-count {
  margin: 0;
  color: var(--cabo-ink);
  font-weight: 500;
}

.cabo-map-missing-count {
  margin: 0;
  color: var(--cabo-muted);
}

.cabo-properties-container {
  display: block;
  width: 100%;
}

@media (min-width: 1024px) {
  .cabo-properties-container[data-view="split"] {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
    gap: var(--cabo-space-6);
    align-items: start;
  }

  .cabo-properties-container[data-view="split"] .cabo-properties-list-pane {
    display: block;
  }

  .cabo-properties-container[data-view="split"] .cabo-properties-map-pane {
    display: block;
    position: sticky;
    top: calc(var(--cabo-header-h) + var(--cabo-space-4));
    height: calc(100vh - var(--cabo-header-h) - var(--cabo-space-8));
    min-height: 540px;
  }

  .cabo-properties-container[data-view="split"] .cabo-listing-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr));
  }

  .cabo-properties-container[data-view="list"] .cabo-properties-list-pane {
    display: block;
  }

  .cabo-properties-container[data-view="list"] .cabo-properties-map-pane {
    display: none;
  }

  .cabo-properties-container[data-view="list"] .cabo-listing-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr));
  }

  .cabo-properties-container[data-view="map"] .cabo-properties-list-pane {
    display: none;
  }

  .cabo-properties-container[data-view="map"] .cabo-properties-map-pane {
    display: block;
    height: calc(100vh - var(--cabo-header-h) - var(--cabo-space-8));
    min-height: 600px;
  }
}

@media (max-width: 1023.98px) {
  .cabo-view-toggle__button--split {
    display: none;
  }

  .cabo-map-move-search-label {
    min-height: 44px;
  }

  .cabo-map-move-search-checkbox {
    width: 44px;
    height: 44px;
    margin: 0;
  }

  .cabo-archive .cabo-map-wrapper .leaflet-control-zoom a,
  .cabo-archive .cabo-map-wrapper .leaflet-container .leaflet-control-zoom a,
  .cabo-location-map-section .leaflet-control-zoom a,
  .cabo-community-page .leaflet-control-zoom a {
    width: 44px;
    min-width: 44px;
    height: 44px;
    min-height: 44px;
    line-height: 42px;
  }

  .cabo-properties-container[data-view="list"] .cabo-properties-list-pane {
    display: block;
  }

  .cabo-properties-container[data-view="list"] .cabo-properties-map-pane {
    display: none;
  }

  .cabo-properties-container[data-view="map"] .cabo-properties-list-pane {
    display: none;
  }

  .cabo-properties-container[data-view="map"] .cabo-properties-map-pane {
    display: block;
    position: relative;
    height: calc(100vh - var(--cabo-header-h) - var(--cabo-space-6));
    min-height: 480px;
  }
}

.cabo-map-wrapper {
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  min-height: 400px;
  background: var(--cabo-stone);
  border: var(--cabo-border);
  overflow: hidden;
}

.cabo-map-controls-bar {
  position: absolute;
  top: var(--cabo-space-3);
  right: var(--cabo-space-3);
  z-index: 400;
  display: flex;
  align-items: center;
  gap: var(--cabo-space-3);
  padding: var(--cabo-space-2) var(--cabo-space-3);
  background: var(--cabo-white);
  border: var(--cabo-border);
  box-shadow: var(--cabo-shadow-float);
  border-radius: var(--cabo-radius-1);
}

.cabo-map-move-search-label {
  display: inline-flex;
  align-items: center;
  gap: var(--cabo-space-2);
  margin: 0;
  color: var(--cabo-ink);
  cursor: pointer;
  user-select: none;
}

.cabo-map-move-search-checkbox {
  accent-color: var(--cabo-gold-deep);
  cursor: pointer;
}

.cabo-map-search-area-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: var(--cabo-space-2) var(--cabo-space-3);
  font-weight: 600;
  color: var(--cabo-white);
  background: var(--cabo-ink);
  border: 1px solid var(--cabo-ink);
  border-radius: var(--cabo-radius-1);
  cursor: pointer;
  transition: background var(--cabo-dur-fast) var(--cabo-ease), color var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-map-search-area-btn:hover,
.cabo-map-search-area-btn:focus-visible {
  background: var(--cabo-ink-hover);
  border-color: var(--cabo-gold);
}

.cabo-interactive-map {
  flex: 1 1 auto;
  width: 100%;
  height: 100%;
  min-height: 380px;
  background: var(--cabo-stone);
  overflow: hidden;
}

.cabo-interactive-map--detail {
  position: relative;
  isolation: isolate;
  min-height: 380px;
  height: 420px;
  border: var(--cabo-border);
}

.cabo-interactive-map--taxonomy {
  position: relative;
  isolation: isolate;
  min-height: 440px;
  height: 480px;
  border: var(--cabo-border);
}

.cabo-map-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  min-height: 300px;
  color: var(--cabo-muted);
}

.cabo-map-search-area-btn[hidden],
.cabo-map-selected-sheet[hidden],
.cabo-map-missing-count[hidden],
.cabo-map-loading[hidden] {
  display: none;
}

/* Cabo Map Custom Controls (M2) */
.leaflet-top.leaflet-left .cabo-map-tool-control.cabo-map-draw-control {
  margin-top: var(--cabo-space-2);
  margin-left: 10px;
}

.cabo-map-draw-btn,
.cabo-map-satellite-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--cabo-space-2);
  min-height: 44px;
  min-width: 44px;
  padding: var(--cabo-space-2) var(--cabo-space-3);
  font-size: var(--cabo-text-small);
  font-weight: 600;
  color: var(--cabo-ink);
  background: var(--cabo-white);
  border: 1px solid var(--cabo-line-strong);
  border-radius: var(--cabo-radius-1);
  box-shadow: var(--cabo-shadow-float);
  cursor: pointer;
  text-decoration: none;
  white-space: nowrap;
  user-select: none;
  transition: background var(--cabo-dur-fast) var(--cabo-ease),
    color var(--cabo-dur-fast) var(--cabo-ease),
    border-color var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-map-draw-btn:hover,
.cabo-map-satellite-btn:hover,
.cabo-map-draw-btn:focus-visible,
.cabo-map-satellite-btn:focus-visible {
  color: var(--cabo-white);
  background: var(--cabo-ink);
  border-color: var(--cabo-ink);
}

.cabo-map-draw-btn[aria-pressed="true"],
.cabo-map-satellite-btn[aria-pressed="true"] {
  color: var(--cabo-white);
  background: var(--cabo-ink);
  border-color: var(--cabo-gold);
}

.cabo-map-satellite-btn[hidden] {
  display: none;
}

/* Satellite button positioned at top-right under the search controls bar */
.leaflet-top.leaflet-right .cabo-map-satellite-control {
  margin-top: calc(var(--cabo-space-3) + 44px + var(--cabo-space-2));
  margin-right: var(--cabo-space-3);
}

.cabo-map-tool-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

.cabo-map-tool-icon svg {
  width: 16px;
  height: 16px;
  stroke: currentColor;
}

/* Hint: in the top-left control column, under the Draw button, so it is always on screen */
.cabo-map-draw-hint {
  position: static;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--cabo-space-3);
  width: 320px;
  max-width: calc(100vw - 64px);
  margin-top: var(--cabo-space-2);
  box-sizing: border-box;
  padding: var(--cabo-space-2) var(--cabo-space-3);
  font-size: var(--cabo-text-small);
  line-height: var(--cabo-leading-snug);
  color: var(--cabo-ink);
  background: var(--cabo-white);
  border: 1px solid var(--cabo-gold);
  border-radius: var(--cabo-radius-1);
  box-shadow: var(--cabo-shadow-float);
  pointer-events: auto;
}

.cabo-map-draw-hint[hidden] {
  display: none;
}

.cabo-map-draw-hint__text {
  font-weight: 500;
}

.cabo-map-draw-hint__cancel {
  font: inherit;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  min-width: 44px;
  padding: 0 var(--cabo-space-2);
  margin: 0;
  font-size: var(--cabo-text-small);
  font-weight: 600;
  color: var(--cabo-gold-deep);
  background: transparent;
  border: 0;
  border-radius: var(--cabo-radius-1);
  text-decoration: underline;
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
  transition: color var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-map-draw-hint__cancel:hover,
.cabo-map-draw-hint__cancel:focus-visible {
  color: var(--cabo-ink);
  background: transparent;
  outline-color: var(--cabo-gold-deep);
}

.cabo-map-polygon,
path.cabo-map-polygon {
  stroke: var(--cabo-ink);
  fill: var(--cabo-ink);
  fill-opacity: 0.15;
}

/* Suppress Geoman cursor tooltips */
.leaflet-pm-tooltip {
  display: none;
}

@media (max-width: 1023.98px) {
  .cabo-map-controls-bar {
    top: 158px;
    left: var(--cabo-space-2);
    right: auto;
    align-items: flex-start;
  }

  .leaflet-top.leaflet-right .cabo-map-satellite-control {
    margin-top: var(--cabo-space-2);
    margin-right: var(--cabo-space-2);
  }
}

/* While drawing, the hint takes the place of "Search as I move the map" on smaller screens */
@media (max-width: 1023.98px) {
  .is-map-drawing .cabo-map-controls-bar {
    display: none;
  }
}

@media (max-width: 767px) {
  .cabo-map-draw-hint {
    width: 260px;
    padding: var(--cabo-space-2);
    gap: var(--cabo-space-2);
  }
}

.cabo-location-map-section {
  padding-block: var(--cabo-section);
  background: var(--cabo-paper);
}

.cabo-property-location-header {
  display: flex;
  align-items: center;
  gap: var(--cabo-space-3);
  margin-bottom: var(--cabo-space-4);
  color: var(--cabo-ink-2);
}

.cabo-property-location-header .cabo-icon {
  color: var(--cabo-gold-deep);
  flex-shrink: 0;
}

.cabo-property-location-header p {
  margin: 0;
}

.cabo-map-pin {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  min-width: 44px;
  padding: var(--cabo-space-2) var(--cabo-space-3);
  font-weight: 700;
  color: var(--cabo-cream);
  background: var(--cabo-ink);
  border: 1.5px solid var(--cabo-gold);
  border-radius: var(--cabo-radius-round);
  box-shadow: var(--cabo-shadow-float);
  white-space: nowrap;
  cursor: pointer;
  transition: transform var(--cabo-dur-fast) var(--cabo-ease), background var(--cabo-dur-fast) var(--cabo-ease), border-color var(--cabo-dur-fast) var(--cabo-ease);
  outline: none;
}

.cabo-map-pin:hover,
.cabo-map-pin.is-hovered {
  background: var(--cabo-ink-hover);
  border-color: var(--cabo-white);
  transform: scale(1.08);
  z-index: 450;
}

.cabo-map-pin:focus-visible {
  background: var(--cabo-ink-hover);
  border-color: var(--cabo-white);
  transform: scale(1.08);
  outline: 2px solid var(--cabo-ink);
  outline-offset: 2px;
  z-index: 450;
}

.cabo-map-pin.is-selected {
  background: var(--cabo-gold-deep);
  color: var(--cabo-white);
  border-color: var(--cabo-white);
  box-shadow: 0 0 0 3px var(--cabo-gold);
  transform: scale(1.12);
  z-index: 460;
}

.cabo-map-pin--primary {
  background: var(--cabo-gold-deep);
  color: var(--cabo-white);
  border-color: var(--cabo-white);
}

.cabo-cluster-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
  font-weight: 700;
  color: var(--cabo-cream);
  background: var(--cabo-ink);
  border: 2px solid var(--cabo-gold);
  border-radius: var(--cabo-radius-round);
  box-shadow: var(--cabo-shadow-float);
  cursor: pointer;
  transition: transform var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-cluster-icon:hover,
.cabo-cluster-icon:focus-visible {
  transform: scale(1.08);
  border-color: var(--cabo-white);
}

.leaflet-popup {
  margin-bottom: 24px;
}

.leaflet-popup-content-wrapper,
.leaflet-container .leaflet-popup-content-wrapper,
.cabo-map-wrapper .leaflet-popup-content-wrapper,
.cabo-interactive-map .leaflet-popup-content-wrapper,
.cabo-map-leaflet-popup .leaflet-popup-content-wrapper {
  background: var(--cabo-white);
  color: var(--cabo-ink);
  border: var(--cabo-border);
  border-radius: var(--cabo-radius-1);
  box-shadow: 0 16px 36px color-mix(in srgb, var(--cabo-ink) 12%, transparent), 0 2px 6px color-mix(in srgb, var(--cabo-ink) 4%, transparent), var(--cabo-shadow-float);
  padding: 0;
  overflow: hidden;
}

.leaflet-container .leaflet-popup-content,
.cabo-map-wrapper .leaflet-popup-content,
.cabo-interactive-map .leaflet-popup-content {
  margin: 0;
  line-height: normal;
  width: 268px;
}

.leaflet-popup-tip-container {
  width: 24px;
  height: 12px;
  margin-top: -1px;
}

.leaflet-popup-tip,
.leaflet-container .leaflet-popup-tip,
.cabo-map-wrapper .leaflet-popup-tip,
.cabo-interactive-map .leaflet-popup-tip,
.cabo-map-leaflet-popup .leaflet-popup-tip {
  background: var(--cabo-white);
  border: var(--cabo-border);
  box-shadow: 0 4px 12px color-mix(in srgb, var(--cabo-ink) 8%, transparent);
}

.leaflet-popup-close-button,
a.leaflet-popup-close-button,
.leaflet-container a.leaflet-popup-close-button {
  position: absolute;
  top: var(--cabo-space-2);
  right: var(--cabo-space-2);
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  min-width: 32px;
  min-height: 32px;
  padding: 0;
  color: var(--cabo-ink);
  font-weight: 300;
  line-height: 1;
  text-decoration: none;
  background: color-mix(in srgb, var(--cabo-paper) 92%, transparent);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid var(--cabo-line);
  border-radius: var(--cabo-radius-round);
  cursor: pointer;
  transition: background-color var(--cabo-dur-fast) var(--cabo-ease),
              border-color var(--cabo-dur-fast) var(--cabo-ease),
              color var(--cabo-dur-fast) var(--cabo-ease),
              transform var(--cabo-dur-fast) var(--cabo-ease);
}

.leaflet-popup-close-button:hover,
.leaflet-popup-close-button:focus-visible,
a.leaflet-popup-close-button:hover,
a.leaflet-popup-close-button:focus-visible,
.leaflet-container a.leaflet-popup-close-button:hover,
.leaflet-container a.leaflet-popup-close-button:focus-visible {
  color: var(--cabo-ink-hover);
  background: var(--cabo-white);
  border-color: var(--cabo-ink);
  outline: 2px solid var(--cabo-gold);
  outline-offset: 1px;
}

.cabo-map-popup {
  display: flex;
  flex-direction: column;
  width: 100%;
  background: var(--cabo-white);
  overflow: hidden;
}

.cabo-map-popup__media {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--cabo-stone);
  border-bottom: 1px solid var(--cabo-line);
  text-decoration: none;
}

.cabo-map-popup__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 0;
  transition: transform var(--cabo-dur-slow) var(--cabo-ease);
}

.cabo-map-popup:hover .cabo-map-popup__img,
.cabo-map-popup:focus-within .cabo-map-popup__img {
  transform: scale(1.03);
}

.cabo-map-popup__placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--cabo-space-1);
  width: 100%;
  height: 100%;
  background: var(--cabo-stone);
  color: var(--cabo-muted);
}

.cabo-map-popup__placeholder-label {
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--cabo-muted);
}

.cabo-map-popup__body {
  display: flex;
  flex-direction: column;
  padding: var(--cabo-space-4);
  min-width: 0;
}

.cabo-map-popup__title {
  margin: 0 0 var(--cabo-space-1);
  line-height: 1.25;
  letter-spacing: -0.01em;
  font-variant-numeric: lining-nums;
  font-feature-settings: "lnum" 1;
  color: var(--cabo-ink);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

.cabo-map-popup__title a,
.leaflet-container .cabo-map-popup__title a {
  position: relative;
  color: inherit;
  text-decoration: none;
  background-image: linear-gradient(var(--cabo-gold), var(--cabo-gold));
  background-repeat: no-repeat;
  background-position: left bottom;
  background-size: 0 1px;
  transition: background-size var(--cabo-dur) var(--cabo-ease);
}

.cabo-map-popup:hover .cabo-map-popup__title a,
.cabo-map-popup__title a:hover,
.cabo-map-popup__title a:focus-visible,
.leaflet-container .cabo-map-popup:hover .cabo-map-popup__title a,
.leaflet-container .cabo-map-popup__title a:hover,
.leaflet-container .cabo-map-popup__title a:focus-visible {
  background-size: 100% 1px;
}

.cabo-map-popup__title a:focus-visible,
.leaflet-container .cabo-map-popup__title a:focus-visible {
  outline: 2px solid var(--cabo-gold);
  outline-offset: 2px;
}

.cabo-map-popup__specs {
  margin: 0 0 var(--cabo-space-2);
  line-height: 1.4;
  color: var(--cabo-muted);
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

.cabo-map-popup__price {
  margin: 0 0 var(--cabo-space-3);
  font-weight: 600;
  line-height: 1.2;
  color: var(--cabo-ink);
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

.cabo-map-popup__price--contact {
  color: var(--cabo-muted);
  font-weight: 500;
}

.cabo-map-popup__btn,
.cabo-map-popup .cabo-map-popup__btn,
.leaflet-container .cabo-map-popup__btn,
.cabo-map-wrapper .cabo-map-popup__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--cabo-space-2);
  width: 100%;
  min-height: 40px;
  padding: 0 var(--cabo-space-4);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-decoration: none;
  text-align: center;
  color: var(--cabo-cream);
  background: var(--cabo-ink);
  border: 1px solid var(--cabo-ink);
  border-radius: var(--cabo-radius-1);
  box-shadow: none;
  cursor: pointer;
  touch-action: manipulation;
  transition: background-color var(--cabo-dur-fast) var(--cabo-ease),
              border-color var(--cabo-dur-fast) var(--cabo-ease),
              color var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-map-popup__btn .cabo-icon {
  width: 14px;
  height: 14px;
  stroke-width: 1.75;
  transition: transform var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-map-popup__btn:hover,
.cabo-map-popup__btn:focus-visible,
.cabo-map-popup .cabo-map-popup__btn:hover,
.cabo-map-popup .cabo-map-popup__btn:focus-visible,
.leaflet-container .cabo-map-popup__btn:hover,
.leaflet-container .cabo-map-popup__btn:focus-visible,
.cabo-map-wrapper .cabo-map-popup__btn:hover,
.cabo-map-wrapper .cabo-map-popup__btn:focus-visible {
  background: var(--cabo-ink-hover);
  border-color: var(--cabo-ink-hover);
  color: var(--cabo-cream);
}

.cabo-map-popup__btn:hover .cabo-icon,
.cabo-map-popup__btn:focus-visible .cabo-icon {
  transform: translateX(3px);
}

.cabo-map-popup__btn:focus-visible {
  outline: 2px solid var(--cabo-gold);
  outline-offset: 2px;
}

.cabo-map-popup--subject {
  width: 240px;
}

.cabo-map-popup--subject .cabo-map-popup__body {
  padding: var(--cabo-space-4);
}

.cabo-map-popup__badge {
  align-self: flex-start;
  margin-bottom: var(--cabo-space-2);
}

@media (prefers-reduced-motion: reduce) {
  .cabo-map-popup__img,
  .cabo-map-popup__title a,
  .cabo-map-popup__btn .cabo-icon {
    transition: none;
  }
  .cabo-map-popup:hover .cabo-map-popup__img,
  .cabo-map-popup__btn:hover .cabo-icon {
    transform: none;
  }
}

.cabo-map-selected-sheet {
  position: absolute;
  bottom: var(--cabo-space-3);
  left: var(--cabo-space-3);
  right: var(--cabo-space-3);
  z-index: 500;
  max-width: 400px;
  margin-inline: auto;
  background: var(--cabo-white);
  border: var(--cabo-border);
  border-radius: var(--cabo-radius-1);
  box-shadow: var(--cabo-shadow-float);
  padding: var(--cabo-space-3);
}

.cabo-map-selected-sheet__close {
  position: absolute;
  top: var(--cabo-space-2);
  right: var(--cabo-space-2);
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
  background: var(--cabo-sand);
  border: 0;
  border-radius: var(--cabo-radius-round);
  line-height: 1;
  color: var(--cabo-ink);
  cursor: pointer;
}

.cabo-map-selected-sheet__close:hover,
.cabo-map-selected-sheet__close:focus-visible {
  background: var(--cabo-stone);
}

.cabo-property-card.is-map-selected > .cabo-card {
  outline: 2px solid var(--cabo-gold);
  box-shadow: var(--cabo-shadow-float);
}

.cabo-area-listings {
  padding-bottom: var(--cabo-section-tight);
}

.cabo-area-listings__header,
.cabo-favorites-toolbar,
.cabo-favorites-toolbar__actions,
.cabo-account-sync-banner,
.cabo-account-sync-banner__message,
.cabo-price-drop-summary__inner,
.cabo-price-drop-summary__message {
  display: flex;
  align-items: center;
}

.cabo-area-listings__header,
.cabo-favorites-toolbar,
.cabo-account-sync-banner,
.cabo-price-drop-summary__inner {
  justify-content: space-between;
}

.cabo-area-listings__header {
  align-items: flex-end;
  gap: var(--cabo-space-4);
  margin-bottom: var(--cabo-space-6);
}


.cabo-favorites-page__content {
  padding-block: var(--cabo-section-tight);
}

.cabo-account-sync-banner {
  flex-wrap: wrap;
  gap: var(--cabo-space-4);
  margin-bottom: var(--cabo-space-6);
  padding: var(--cabo-space-4) var(--cabo-space-5);
  background: var(--cabo-gold-tint);
  border: var(--cabo-border);
  border-left: 3px solid var(--cabo-gold);
}

.cabo-account-sync-banner__message,
.cabo-price-drop-summary__message,
.cabo-favorites-toolbar__actions {
  gap: var(--cabo-space-3);
}

.cabo-account-sync-banner__icon,
.cabo-price-drop-summary__icon,
.cabo-favorites-empty__icon {
  display: inline-grid;
  flex: 0 0 auto;
  place-items: center;
  color: var(--cabo-ink);
}

.cabo-account-sync-banner strong {
  color: var(--cabo-ink);
}

.cabo-account-sync-banner p {
  margin: var(--cabo-space-1) 0 0;
  color: var(--cabo-muted);
}

.cabo-price-drop-summary {
  margin-bottom: var(--cabo-space-7);
  padding: var(--cabo-space-5);
  color: var(--cabo-cream);
  background: var(--cabo-ink);
  border: var(--cabo-rule-gold);
}

.cabo-price-drop-summary__inner {
  flex-wrap: wrap;
  gap: var(--cabo-space-4);
}

.cabo-price-drop-summary__icon,
.cabo-price-drop-summary__label,
.js-price-drop-total-savings {
  color: var(--cabo-gold);
}

.cabo-price-drop-summary__label {
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.cabo-price-drop-summary h2,
.cabo-price-drop-summary h3 {
  margin: var(--cabo-space-1) 0 0;
  color: var(--cabo-cream);
}

.cabo-price-drop-summary__savings {
  text-align: right;
}

.cabo-price-drop-summary__savings > span {
  color: var(--cabo-stone);
}

.js-price-drop-total-savings {
  font-weight: 600;
}

.cabo-favorites-toolbar {
  align-items: flex-end;
  flex-wrap: wrap;
  gap: var(--cabo-space-4);
  margin-bottom: var(--cabo-space-7);
  padding-bottom: var(--cabo-space-4);
  border-bottom: var(--cabo-border);
}

.cabo-favorites-toolbar .cabo-section-title {
  margin-bottom: 0;
}

.cabo-favorites-toolbar__actions {
  flex-wrap: wrap;
}

.cabo-favorites-clear {
  color: var(--cabo-error);
  border-color: var(--cabo-error);
}

.cabo-favorites-empty {
  max-width: 640px;
  margin-inline: auto;
}

.cabo-favorites-empty__icon {
  width: var(--cabo-space-8);
  height: var(--cabo-space-8);
  margin: 0 auto var(--cabo-space-5);
  background: var(--cabo-gold-tint);
  border-radius: var(--cabo-radius-round);
}

.cabo-empty-state .cabo-favorites-empty__sync {
  margin-top: var(--cabo-space-5);
  margin-bottom: 0;
}

.cabo-favorites-empty__sync a {
  font-weight: 600;
}

@media (min-width: 700px) {
  .cabo-listing-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1100px) {
  .cabo-listing-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .cabo-archive__intro {
    padding-top: var(--cabo-space-3);
    padding-bottom: var(--cabo-space-3);
  }

  .cabo-archive__intro h1 {
    margin-top: var(--cabo-space-2);
    margin-bottom: var(--cabo-space-2);
    font-size: var(--cabo-text-h2);
  }

  .cabo-archive__intro > p:last-child {
    line-height: 1.4;
  }

  .cabo-archive__search {
    padding-block: var(--cabo-space-3);
  }

  .cabo-archive__results {
    padding-block: var(--cabo-space-4);
  }

  .cabo-area-listings__header,
  .cabo-favorites-toolbar,
  .cabo-price-drop-summary__inner {
    align-items: stretch;
    flex-direction: column;
  }

  .cabo-area-listings__header .cabo-btn,
  .cabo-favorites-toolbar__actions,
  .cabo-favorites-toolbar__actions .cabo-btn {
    width: 100%;
  }

  .cabo-favorites-toolbar__actions {
    align-items: stretch;
    flex-direction: column;
  }

  .cabo-price-drop-summary__savings {
    text-align: left;
  }

  .cabo-results-toolbar,
  .cabo-results-toolbar__controls {
    align-items: stretch;
    flex-direction: column;
  }

  .cabo-results-toolbar {
    gap: var(--cabo-space-3);
    margin-bottom: var(--cabo-space-4);
    padding-bottom: var(--cabo-space-3);
  }

  .cabo-results-toolbar__controls {
    gap: var(--cabo-space-2);
  }

  .cabo-results-sort {
    width: 100%;
  }

  .cabo-view-toggle {
    justify-content: stretch;
    padding-top: var(--cabo-space-2);
    padding-left: 0;
    border-top: var(--cabo-border);
    border-left: 0;
  }

  .cabo-view-toggle__button {
    flex: 1;
  }

  .cabo-archive .cabo-map-move-search-checkbox,
  .cabo-archive .leaflet-buttons-control-button {
    width: var(--cabo-space-7);
    min-width: var(--cabo-space-7);
    height: var(--cabo-space-7);
    min-height: var(--cabo-space-7);
    font-size: var(--cabo-text-body);
  }
}

/* --------------------------------------------------------------------------
   Listing card
   -------------------------------------------------------------------------- */
.cabo-property-card:has(> .cabo-card) {
  display: block;
  overflow: visible;
  background: transparent;
  border: 0;
  border-radius: var(--cabo-radius-0);
  box-shadow: none;
  transform: none;
  transition: none;
}

.cabo-property-card:has(> .cabo-card):hover {
  border-color: transparent;
  box-shadow: none;
  transform: none;
}

.cabo-card {
  isolation: isolate;
  display: flex;
  min-width: 0;
  flex-direction: column;
  background: transparent;
  border: 0;
  border-radius: var(--cabo-radius-0);
  box-shadow: none;
}

.cabo-card__media,
.cabo-card__image-link,
.cabo-card__placeholder {
  width: 100%;
  aspect-ratio: 4 / 3;
}

.cabo-card__media {
  position: relative;
  overflow: hidden;
  background: var(--cabo-stone);
  border-radius: var(--cabo-radius-0);
}

.cabo-card__image-link,
.cabo-card__placeholder {
  display: block;
}

.cabo-card__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--cabo-dur-slow) var(--cabo-ease);
}

.cabo-card:hover .cabo-card__image,
.cabo-card:focus-within .cabo-card__image {
  transform: scale(1.03);
}

.cabo-card__placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: var(--cabo-space-3);
  color: var(--cabo-muted);
  background: var(--cabo-stone);
}

.cabo-card__placeholder-mark {
  width: var(--cabo-space-9);
  height: var(--cabo-space-9);
  object-fit: contain;
  opacity: 0.12;
}

.cabo-card__placeholder-label,
.cabo-card__location,
.cabo-card .cabo-badge {
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.cabo-card__badge {
  position: absolute;
  top: var(--cabo-space-3);
  left: var(--cabo-space-3);
  z-index: 1;
}

.cabo-card__badge:empty {
  display: none;
}

.cabo-card .cabo-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--cabo-space-1);
  padding: 6px 10px;
  color: var(--cabo-ink);
  background: var(--cabo-white);
  border: 0;
  border-radius: var(--cabo-radius-1);
  box-shadow: none;
}

.cabo-card .cabo-badge--reduced {
  color: var(--cabo-gold-deep);
}

.cabo-card .cabo-badge--pending {
  background: var(--cabo-stone);
}

.cabo-card .cabo-badge--sold {
  color: var(--cabo-cream);
  background: var(--cabo-ink);
}

.cabo-card__favourite {
  position: absolute;
  top: var(--cabo-space-3);
  right: var(--cabo-space-3);
  z-index: 2;
  display: inline-grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  color: var(--cabo-ink);
  background: var(--cabo-white);
  border: var(--cabo-border);
  border-radius: var(--cabo-radius-round);
  box-shadow: none;
  cursor: pointer;
  transition: color var(--cabo-dur-fast) var(--cabo-ease),
    background-color var(--cabo-dur-fast) var(--cabo-ease),
    border-color var(--cabo-dur-fast) var(--cabo-ease),
    transform 60ms var(--cabo-ease);
}

.cabo-card__favourite:hover {
  background-color: var(--cabo-sand);
  color: var(--cabo-ink);
}

.cabo-card__favourite:active {
  transform: scale(0.94);
  transition-duration: 60ms;
}

.cabo-card__favourite:focus-visible {
  outline: 2px solid var(--cabo-ink);
  outline-offset: 2px;
}

.cabo-card__favourite .cabo-icon {
  transition: transform var(--cabo-dur) var(--cabo-ease), fill var(--cabo-dur-fast) var(--cabo-ease);
  fill: transparent;
}

.cabo-card__favourite.is-favorited .cabo-icon,
.cabo-card__favourite.active .cabo-icon {
  fill: var(--cabo-ink);
}

.cabo-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  min-width: 0;
  padding-top: var(--cabo-space-4);
}

.cabo-card__location {
  margin: 0 0 var(--cabo-space-2);
  color: var(--cabo-muted);
}

.cabo-card__title {
  display: -webkit-box;
  min-height: calc(var(--cabo-text-h4) * 2.4);
  margin: 0;
  overflow: hidden;
  color: var(--cabo-ink);
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.cabo-card__title a {
  position: relative;
  color: inherit;
  background-image: linear-gradient(var(--cabo-gold), var(--cabo-gold));
  background-repeat: no-repeat;
  background-position: left bottom;
  background-size: 0 1px;
  transition: background-size var(--cabo-dur) var(--cabo-ease);
}

.cabo-card:hover .cabo-card__title a,
.cabo-card__title a:focus-visible {
  background-size: 100% 1px;
}

.cabo-card__specs {
  margin: var(--cabo-space-2) 0 0;
  color: var(--cabo-muted);
  font-variant-numeric: tabular-nums;
}

.cabo-card__price {
  margin: var(--cabo-space-3) 0 0;
  color: var(--cabo-ink);
  font-variant-numeric: tabular-nums;
}

.cabo-card__price--contact {
  color: var(--cabo-muted);
}

@media (prefers-reduced-motion: reduce) {
  .cabo-card__image,
  .cabo-card__favourite,
  .cabo-card__title a {
    transition: none;
  }

  .cabo-card:hover .cabo-card__image,
  .cabo-card:focus-within .cabo-card__image,
  .cabo-card__favourite:hover {
    transform: none;
  }
}

/* --------------------------------------------------------------------------
   Listing gallery and photo lightbox
   -------------------------------------------------------------------------- */

.cabo-property-gallery {
  position: relative;
  width: 100%;
}

.cabo-property-gallery .cabo-gallery-main,
.cabo-property-gallery .cabo-gallery-thumb-item {
  position: relative;
  display: block;
  width: 100%;
  min-width: 0;
  padding: 0;
  overflow: hidden;
  background: var(--cabo-stone);
  border: 0;
  border-radius: var(--cabo-radius-1);
}

.cabo-property-gallery button.cabo-gallery-main,
.cabo-property-gallery button.cabo-gallery-thumb-item {
  cursor: pointer;
}

.cabo-property-gallery .cabo-gallery-main {
  width: 100%;
  height: 100%;
}

.cabo-property-gallery .cabo-gallery-thumbs {
  display: grid;
  gap: var(--cabo-space-2);
  min-width: 0;
  height: 100%;
}

.cabo-property-gallery .cabo-gallery-thumbs--1 {
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr);
}

.cabo-property-gallery .cabo-gallery-thumbs--2 {
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: repeat(2, minmax(0, 1fr));
}

.cabo-property-gallery .cabo-gallery-thumbs--3 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: repeat(2, minmax(0, 1fr));
}

.cabo-property-gallery .cabo-gallery-thumbs--3 .cabo-gallery-thumb-item:first-child {
  grid-column: span 2;
}

.cabo-property-gallery .cabo-gallery-thumbs--4 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: repeat(2, minmax(0, 1fr));
}

.cabo-property-gallery .cabo-gallery-thumb-item {
  width: 100%;
  height: 100%;
}

.cabo-property-gallery .cabo-gallery-main > img:not(.cabo-gallery-placeholder__mark),
.cabo-property-gallery .cabo-gallery-thumb-item > img:not(.cabo-gallery-placeholder__mark) {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--cabo-dur-slow) var(--cabo-ease);
}

.cabo-property-gallery button.cabo-gallery-main:hover > img,
.cabo-property-gallery button.cabo-gallery-main:focus-visible > img,
.cabo-property-gallery button.cabo-gallery-thumb-item:hover > img,
.cabo-property-gallery button.cabo-gallery-thumb-item:focus-visible > img {
  transform: scale(1.03);
}

.cabo-property-gallery .cabo-gallery-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--cabo-space-2);
  color: var(--cabo-muted);
  text-align: center;
  min-height: 380px;
}

.cabo-property-gallery .cabo-gallery-main > .cabo-gallery-placeholder__mark,
.cabo-property-gallery .cabo-gallery-thumb-item > .cabo-gallery-placeholder__mark {
  width: clamp(32px, 20%, 96px);
  height: auto;
  opacity: 0.12;
}

.cabo-property-gallery .cabo-gallery-placeholder__label {
  padding-inline: var(--cabo-space-2);
}

.cabo-property-gallery .cabo-gallery-badge-featured {
  position: absolute;
  top: var(--cabo-space-4);
  left: var(--cabo-space-4);
  z-index: 2;
  padding: 4px 10px;
  background: var(--cabo-ink);
  color: var(--cabo-cream);
  border-radius: var(--cabo-radius-0);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  pointer-events: none;
}

.cabo-property-gallery .cabo-gallery-view-all {
  position: absolute;
  top: auto;
  right: var(--cabo-space-4);
  bottom: var(--cabo-space-4);
  left: auto;
  z-index: 2;
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  gap: var(--cabo-space-2);
  padding: 0 var(--cabo-space-4);
  color: var(--cabo-ink);
  background: var(--cabo-white);
  border: var(--cabo-border);
  border-radius: var(--cabo-radius-1);
  box-shadow: var(--cabo-shadow-float);
  cursor: pointer;
  font-weight: 500;
  transition: background-color var(--cabo-dur-fast) var(--cabo-ease),
    border-color var(--cabo-dur-fast) var(--cabo-ease),
    color var(--cabo-dur-fast) var(--cabo-ease),
    transform 60ms var(--cabo-ease);
}

.cabo-property-gallery .cabo-gallery-view-all:hover,
.cabo-property-gallery .cabo-gallery-view-all:focus-visible {
  color: var(--cabo-cream);
  background: var(--cabo-ink);
}

/* --------------------------------------------------------------------------
   Property Detail Groups & Virtual Tour
   -------------------------------------------------------------------------- */
.cabo-property-detail-groups {
  display: flex;
  flex-direction: column;
  gap: var(--cabo-space-6);
}

.cabo-property-detail-group {
  display: flex;
  flex-direction: column;
  gap: var(--cabo-space-2);
}

.cabo-property-detail-group__title {
  color: var(--cabo-muted);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin: 0;
  padding-bottom: var(--cabo-space-2);
  border-bottom: var(--cabo-border);
}

.cabo-property-virtual-tour__wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: var(--cabo-sand);
  border-radius: var(--cabo-radius-1);
  overflow: hidden;
}

.cabo-property-virtual-tour__wrap iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

body.is-lightbox-open {
  overflow: hidden;
}

.cabo-lightbox-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  visibility: hidden;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity var(--cabo-dur-fast) var(--cabo-ease), visibility 0s linear var(--cabo-dur-fast);
}

.cabo-lightbox-modal.active,
.cabo-lightbox-modal.is-active {
  visibility: visible;
  opacity: 1;
  transition: opacity var(--cabo-dur-fast) var(--cabo-ease), visibility 0s linear 0s;
}

.cabo-lightbox-backdrop {
  position: absolute;
  inset: 0;
  background: var(--cabo-ink);
  opacity: 0.96;
  backdrop-filter: blur(4px);
}

.cabo-lightbox-content {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  width: min(1200px, calc(100% - var(--cabo-space-6)));
  height: min(900px, calc(100dvh - var(--cabo-space-6)));
  min-width: 0;
  color: var(--cabo-cream);
}

.cabo-lightbox-header {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) 44px;
  align-items: center;
  gap: var(--cabo-space-4);
  min-height: 52px;
  border-bottom: var(--cabo-border);
}

.cabo-lightbox-counter {
  color: var(--cabo-cream);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.cabo-lightbox-caption {
  overflow: hidden;
  color: var(--cabo-cream);
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.cabo-lightbox-close,
.cabo-lightbox-nav {
  display: inline-grid;
  width: 44px;
  min-width: 44px;
  height: 44px;
  min-height: 44px;
  place-items: center;
  padding: 0;
  color: var(--cabo-cream);
  background: var(--cabo-ink);
  border: 1px solid var(--cabo-cream);
  border-radius: var(--cabo-radius-round);
  cursor: pointer;
}

.cabo-lightbox-close:hover,
.cabo-lightbox-close:focus-visible,
.cabo-lightbox-nav:hover,
.cabo-lightbox-nav:focus-visible {
  color: var(--cabo-ink);
  background: var(--cabo-cream);
}

.cabo-lightbox-main {
  position: relative;
  display: grid;
  min-width: 0;
  min-height: 0;
  place-items: center;
  overflow: hidden;
  touch-action: pan-y;
}

.cabo-lightbox-img-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  padding: var(--cabo-space-4) 60px;
}

.cabo-lightbox-img {
  display: block;
  max-width: 100%;
  max-height: calc(100% - 32px);
  object-fit: contain;
}

.cabo-lightbox-caption-bottom {
  margin: var(--cabo-space-2) 0 0;
  text-align: center;
  color: var(--cabo-cream);
  max-width: 80ch;
  line-height: 1.4;
}

.cabo-lightbox-filters {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: var(--cabo-space-2);
  padding: var(--cabo-space-2) var(--cabo-space-4);
  max-width: 100%;
  border-top: var(--cabo-border);
}

.cabo-lightbox-filter-chip {
  appearance: none;
  -webkit-appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 0 var(--cabo-space-3);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--cabo-cream);
  background: transparent;
  border: 1px solid var(--cabo-faint);
  border-radius: var(--cabo-radius-round);
  cursor: pointer;
  transition: background-color var(--cabo-dur-fast) var(--cabo-ease),
    border-color var(--cabo-dur-fast) var(--cabo-ease),
    color var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-lightbox-filter-chip:hover,
.cabo-lightbox-filter-chip:focus-visible {
  background: var(--cabo-ink-hover);
  border-color: var(--cabo-cream);
  color: var(--cabo-cream);
}

.cabo-lightbox-filter-chip.active,
.cabo-lightbox-filter-chip[aria-pressed="true"] {
  background: var(--cabo-cream);
  color: var(--cabo-ink);
  border-color: var(--cabo-cream);
}

.cabo-lightbox-nav {
  position: absolute;
  top: 50%;
  z-index: 2;
  transform: translateY(-50%);
}

.cabo-lightbox-nav.prev {
  left: 0;
}

.cabo-lightbox-nav.next {
  right: 0;
}

.cabo-lightbox-thumbnails {
  display: flex;
  max-width: 100%;
  gap: var(--cabo-space-2);
  padding-block: var(--cabo-space-2);
  overflow-x: auto;
  border-top: var(--cabo-border);
  scrollbar-width: thin;
}

.cabo-lightbox-thumb {
  width: 80px;
  min-width: 80px;
  height: 60px;
  min-height: 44px;
  padding: 0;
  overflow: hidden;
  opacity: 0.55;
  background: var(--cabo-ink);
  border: 2px solid transparent;
  border-radius: var(--cabo-radius-1);
  cursor: pointer;
}

.cabo-lightbox-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.cabo-lightbox-thumb.active,
.cabo-lightbox-thumb[aria-current="true"] {
  opacity: 1;
  border-color: var(--cabo-cream);
}

@media (max-width: 767px) {
  .cabo-property-gallery .cabo-gallery-view-all {
    right: var(--cabo-space-3);
    bottom: var(--cabo-space-3);
  }

  .cabo-lightbox-content {
    width: calc(100% - var(--cabo-space-4));
    height: calc(100dvh - var(--cabo-space-4));
  }

  .cabo-lightbox-header {
    gap: var(--cabo-space-2);
  }

  .cabo-lightbox-caption {
    text-align: left;
  }

  .cabo-lightbox-img-wrap {
    padding-inline: var(--cabo-space-2);
    padding-bottom: 60px;
  }

  .cabo-lightbox-nav {
    top: auto;
    bottom: var(--cabo-space-2);
    transform: none;
  }

  .cabo-lightbox-nav.prev {
    left: calc(50% - 52px);
  }

  .cabo-lightbox-nav.next {
    right: calc(50% - 52px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .cabo-property-gallery .cabo-gallery-main > img,
  .cabo-property-gallery .cabo-gallery-thumb-item > img,
  .cabo-lightbox-modal {
    transition: none;
  }

  .cabo-property-gallery button.cabo-gallery-main:hover > img,
  .cabo-property-gallery button.cabo-gallery-main:focus-visible > img,
  .cabo-property-gallery button.cabo-gallery-thumb-item:hover > img,
  .cabo-property-gallery button.cabo-gallery-thumb-item:focus-visible > img {
    transform: none;
  }
}


/* Breadcrumbs list (was inline in template-parts/breadcrumbs.php). */
.cabo-breadcrumbs__list {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--cabo-space-2, 0.5rem);
  list-style: none;
  margin: 0;
  padding: 0;
}

/* --------------------------------------------------------------------------
   W1b: /my-account/ Page Components & Layout
   -------------------------------------------------------------------------- */
.cabo-account-page {
  background: var(--cabo-paper);
  min-height: 80vh;
}


.cabo-account-page__content {
  padding-block: var(--cabo-section-tight);
}

/* Logged-out Auth Grid */
.cabo-account-auth-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--cabo-space-6);
  max-width: 1040px;
  margin-inline: auto;
}

@media (min-width: 900px) {
  .cabo-account-auth-grid {
    grid-template-columns: 1fr 1fr;
    gap: var(--cabo-space-7);
  }
}

.cabo-account-panel {
  padding: var(--cabo-space-6);
  background: var(--cabo-white);
  border: var(--cabo-border);
}

.cabo-account-panel__header {
  margin-bottom: var(--cabo-space-5);
  padding-bottom: var(--cabo-space-4);
  border-bottom: var(--cabo-border);
}

.cabo-account-panel__header .cabo-label {
  display: block;
  margin-bottom: var(--cabo-space-2);
  color: var(--cabo-gold-deep);
}

.cabo-account-panel__header h2 {
  margin-top: 0;
  margin-bottom: var(--cabo-space-2);
  color: var(--cabo-ink);
  font-size: var(--cabo-text-h2);
}

.cabo-account-panel__desc {
  margin: 0;
  color: var(--cabo-muted);
  font-size: var(--cabo-text-body);
  line-height: 1.5;
}

.cabo-account-auth-form .cabo-form-group {
  margin-bottom: var(--cabo-space-4);
}

.cabo-account-auth-form .cabo-form-label {
  display: block;
  margin-bottom: var(--cabo-space-2);
  color: var(--cabo-ink);
}

.cabo-account-auth-form .cabo-form-input {
  width: 100%;
  min-height: 48px;
  padding: var(--cabo-space-3) var(--cabo-space-4);
  font-size: var(--cabo-text-body);
  color: var(--cabo-ink);
  background: var(--cabo-white);
  border: var(--cabo-border);
  box-sizing: border-box;
}

.cabo-account-auth-form .cabo-form-input:focus {
  outline: 2px solid var(--cabo-gold);
  outline-offset: -1px;
}

.cabo-account-auth-form .cabo-form-error {
  margin-bottom: var(--cabo-space-4);
  padding: var(--cabo-space-3);
  font-size: var(--cabo-text-small);
  color: var(--cabo-error);
  background: var(--cabo-sand);
  border-left: 3px solid var(--cabo-error);
}

.cabo-account-auth-form__actions {
  display: flex;
  flex-direction: column;
  gap: var(--cabo-space-4);
  margin-top: var(--cabo-space-5);
}

.cabo-account-auth-form__submit {
  width: 100%;
  min-height: 48px;
}

.cabo-account-auth-form__prompt {
  margin: 0;
  font-size: var(--cabo-text-small);
  color: var(--cabo-muted);
  text-align: center;
}

.cabo-account-auth-form__prompt button {
  background: none;
  border: none;
  padding: 0;
  font-size: var(--cabo-text-small);
  color: var(--cabo-gold-deep);
  text-decoration: underline;
  cursor: pointer;
}

/* Benefits Card */
.cabo-account-benefits-list {
  list-style: none;
  margin: 0 0 var(--cabo-space-6) 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--cabo-space-4);
}

.cabo-account-benefit-item {
  display: flex;
  align-items: flex-start;
  gap: var(--cabo-space-4);
}

.cabo-account-benefit-item__icon {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  background: var(--cabo-gold-tint);
  color: var(--cabo-gold-deep);
}

.cabo-account-benefit-item__content strong {
  display: block;
  color: var(--cabo-ink);
  font-size: var(--cabo-text-body);
  margin-bottom: var(--cabo-space-1);
}

.cabo-account-benefit-item__content p {
  margin: 0;
  color: var(--cabo-muted);
  font-size: var(--cabo-text-small);
  line-height: 1.5;
}

.cabo-account-benefits-action {
  padding-top: var(--cabo-space-4);
  border-top: var(--cabo-border);
}

.cabo-account-benefits-action .cabo-btn {
  width: 100%;
  min-height: 48px;
}

/* Logged-In Two-Column Layout */
.cabo-account-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--cabo-space-7);
  align-items: start;
}

@media (min-width: 1024px) {
  .cabo-account-layout {
    grid-template-columns: 340px minmax(0, 1fr);
  }
}

/* Sidebar */
.cabo-account-sidebar {
  display: flex;
  flex-direction: column;
  gap: var(--cabo-space-6);
}

.cabo-account-card {
  padding: var(--cabo-space-5);
  background: var(--cabo-white);
  border: var(--cabo-border);
}

.cabo-account-card > .cabo-label {
  display: block;
  margin-bottom: var(--cabo-space-3);
  color: var(--cabo-gold-deep);
}

.cabo-account-user-meta {
  display: flex;
  align-items: center;
  gap: var(--cabo-space-3);
  margin-bottom: var(--cabo-space-4);
  padding-bottom: var(--cabo-space-4);
  border-bottom: var(--cabo-border);
}

.cabo-account-user-meta__avatar {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  background: var(--cabo-sand);
  color: var(--cabo-ink);
  font-weight: 600;
  font-size: var(--cabo-text-ui);
  text-transform: uppercase;
  border: var(--cabo-border);
}

.cabo-account-user-meta__name {
  display: block;
  color: var(--cabo-ink);
  font-size: var(--cabo-text-body);
}

.cabo-account-user-meta__email {
  margin: var(--cabo-space-1) 0 0 0;
  color: var(--cabo-muted);
  font-size: var(--cabo-text-small);
  word-break: break-word;
}

.cabo-account-card__phone {
  margin: 0 0 var(--cabo-space-2) 0;
  color: var(--cabo-ink);
  font-size: var(--cabo-text-small);
  font-weight: 500;
}

.cabo-account-card__note {
  margin: 0 0 var(--cabo-space-4) 0;
  color: var(--cabo-muted);
  font-size: var(--cabo-text-small);
  line-height: 1.4;
}

.cabo-account-card__actions {
  display: flex;
}

.cabo-account-card--team h3 {
  margin-top: 0;
  margin-bottom: var(--cabo-space-2);
  color: var(--cabo-ink);
  font-size: var(--cabo-text-h3);
}

.cabo-account-card__team-intro {
  margin: 0 0 var(--cabo-space-4) 0;
  color: var(--cabo-muted);
  font-size: var(--cabo-text-small);
  line-height: 1.5;
}

.cabo-account-contact-channels {
  display: flex;
  flex-direction: column;
  gap: var(--cabo-space-2);
}

.cabo-account-channel-link {
  display: flex;
  align-items: center;
  gap: var(--cabo-space-3);
  padding: var(--cabo-space-3);
  color: var(--cabo-ink);
  text-decoration: none;
  background: var(--cabo-sand);
  border: var(--cabo-border);
  min-height: 48px;
  box-sizing: border-box;
  transition: background var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-account-channel-link:hover,
.cabo-account-channel-link:focus-visible {
  background: var(--cabo-gold-tint);
}

.cabo-account-channel-link .cabo-icon {
  flex: 0 0 auto;
  color: var(--cabo-gold-deep);
}

.cabo-account-channel-link span {
  display: flex;
  flex-direction: column;
  font-size: var(--cabo-text-small);
}

.cabo-account-channel-link strong {
  color: var(--cabo-ink);
  font-size: var(--cabo-text-ui);
}

.cabo-account-channel-link small {
  color: var(--cabo-muted);
  font-size: var(--cabo-text-label);
}

/* Main Content Column */
.cabo-account-main {
  display: flex;
  flex-direction: column;
  gap: var(--cabo-space-8);
  min-width: 0;
}

.cabo-account-section {
  padding-bottom: var(--cabo-space-7);
  border-bottom: var(--cabo-border);
}

.cabo-account-section:last-of-type {
  border-bottom: none;
  padding-bottom: 0;
}

.cabo-account-section__header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: var(--cabo-space-4);
  margin-bottom: var(--cabo-space-5);
}

.cabo-account-section__header .cabo-label {
  display: block;
  margin-bottom: var(--cabo-space-1);
  color: var(--cabo-gold-deep);
}

.cabo-account-section__header h2 {
  margin: 0;
  color: var(--cabo-ink);
  font-size: var(--cabo-text-h2);
}

.cabo-account-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--cabo-space-5);
}

@media (min-width: 768px) {
  .cabo-account-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.cabo-account-empty {
  padding: var(--cabo-space-7) var(--cabo-space-5);
  text-align: center;
  background: var(--cabo-white);
  border: var(--cabo-border);
}

.cabo-account-empty__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  margin-bottom: var(--cabo-space-3);
  color: var(--cabo-gold-deep);
  background: var(--cabo-gold-tint);
}

.cabo-account-empty h3 {
  margin-top: 0;
  margin-bottom: var(--cabo-space-2);
  color: var(--cabo-ink);
  font-size: var(--cabo-text-h3);
}

.cabo-account-empty p {
  max-width: 44ch;
  margin-inline: auto;
  margin-bottom: var(--cabo-space-5);
  color: var(--cabo-muted);
  font-size: var(--cabo-text-body);
  line-height: 1.5;
}

/* Explore Cabo Links Row */
.cabo-account-links-row {
  margin-top: var(--cabo-space-2);
  padding-top: var(--cabo-space-6);
  border-top: var(--cabo-border);
}

.cabo-account-links-row > .cabo-label {
  display: block;
  margin-bottom: var(--cabo-space-4);
  color: var(--cabo-gold-deep);
}

.cabo-account-links-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--cabo-space-4);
}

@media (min-width: 700px) {
  .cabo-account-links-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.cabo-account-link-card {
  display: flex;
  flex-direction: column;
  padding: var(--cabo-space-4);
  background: var(--cabo-white);
  border: var(--cabo-border);
  color: var(--cabo-ink);
  text-decoration: none;
  transition: border-color var(--cabo-dur-fast) var(--cabo-ease), background var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-account-link-card:hover,
.cabo-account-link-card:focus-visible {
  border-color: var(--cabo-gold);
  background: var(--cabo-sand);
}

.cabo-account-link-card__title {
  font-weight: 600;
  font-size: var(--cabo-text-body);
  color: var(--cabo-ink);
  margin-bottom: var(--cabo-space-1);
}

.cabo-account-link-card__desc {
  font-size: var(--cabo-text-small);
  color: var(--cabo-muted);
  line-height: 1.4;
  margin-bottom: var(--cabo-space-3);
  flex: 1 0 auto;
}

.cabo-account-link-card__action {
  align-self: flex-start;
  display: flex;
  align-items: center;
  color: var(--cabo-gold-deep);
}

/* --------------------------------------------------------------------------
   Saved Searches (/my-account/ and Modal)
   -------------------------------------------------------------------------- */
.cabo-saved-searches-list {
  display: flex;
  flex-direction: column;
  gap: var(--cabo-space-4);
  margin-bottom: var(--cabo-space-6);
}

.cabo-saved-search-card {
  display: flex;
  flex-direction: column;
  gap: var(--cabo-space-4);
  padding: var(--cabo-space-5);
  background: var(--cabo-white);
  border: var(--cabo-border);
  transition: opacity var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-saved-search-card.is-paused {
  opacity: 0.7;
}

.cabo-saved-search-card__title-row {
  display: flex;
  align-items: center;
  gap: var(--cabo-space-2);
  margin-bottom: var(--cabo-space-1);
}

.cabo-saved-search-card__title {
  margin: 0;
  font-size: var(--cabo-text-body);
  font-weight: 600;
  color: var(--cabo-ink);
}

.cabo-saved-search-card__summary {
  margin: 0;
  font-size: var(--cabo-text-small);
  color: var(--cabo-muted);
  line-height: 1.4;
}

.cabo-saved-search-card__alert-msg,
.cabo-account-section__notice {
  margin-top: var(--cabo-space-2);
  margin-bottom: 0;
  font-size: var(--cabo-text-small);
  color: var(--cabo-gold-deep);
}

.cabo-saved-search-card__meta {
  display: flex;
  flex-direction: column;
  gap: var(--cabo-space-3);
  padding-top: var(--cabo-space-3);
  border-top: var(--cabo-border);
}

.cabo-saved-search-card__freq-group {
  display: flex;
  align-items: center;
  gap: var(--cabo-space-2);
}

.cabo-saved-search-card__freq-group .cabo-form-label {
  margin-bottom: 0;
  font-size: var(--cabo-text-small);
  color: var(--cabo-muted);
  white-space: nowrap;
}

.cabo-saved-search-card__actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--cabo-space-2);
}

.cabo-btn-ghost,
.cabo-btn--ghost {
  background: transparent;
  border: 1px solid transparent;
  color: var(--cabo-ink);
}

.cabo-btn-ghost:hover,
.cabo-btn-ghost:focus-visible,
.cabo-btn--ghost:hover,
.cabo-btn--ghost:focus-visible {
  background: var(--cabo-sand);
  border-color: var(--cabo-border);
  color: var(--cabo-ink);
}

.cabo-btn-danger,
.cabo-btn--danger {
  color: var(--cabo-error);
}

.cabo-btn-danger:hover,
.cabo-btn-danger:focus-visible,
.cabo-btn--danger:hover,
.cabo-btn--danger:focus-visible {
  color: var(--cabo-white);
  background: var(--cabo-error);
  border-color: var(--cabo-error);
}

.cabo-modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: var(--cabo-space-3);
  margin-top: var(--cabo-space-5);
}

.cabo-save-search-feedback {
  margin-top: var(--cabo-space-3);
  font-size: var(--cabo-text-small);
}

.cabo-save-search-feedback.is-error {
  color: var(--cabo-error);
}

.cabo-save-search-feedback.is-success {
  color: var(--cabo-success);
}

@media (min-width: 768px) {
  .cabo-saved-search-card {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
  }

  .cabo-saved-search-card__body {
    flex: 1 1 auto;
  }

  .cabo-saved-search-card__meta {
    flex: 0 0 auto;
    flex-direction: row;
    align-items: center;
    gap: var(--cabo-space-4);
    padding-top: 0;
    border-top: none;
  }
}

.cabo-account-fav-alerts {
  margin: var(--cabo-space-3) 0 var(--cabo-space-4) 0;
}

.cabo-account-fav-alerts .cabo-form-checkbox-label {
  display: inline-flex;
  align-items: center;
  gap: var(--cabo-space-2);
  cursor: pointer;
  font-size: var(--cabo-text-small);
  color: var(--cabo-ink-2);
}

/* --------------------------------------------------------------------------
   Shared page sections (v2.1)
   -------------------------------------------------------------------------- */

/* 1. Icon columns (G6) */
.cabo-cols,
.cols {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--cabo-space-7) var(--cabo-space-6);
}

.cabo-col,
.col {
  min-width: 0;
  padding-top: var(--cabo-space-5);
  border-top: 1px solid var(--cabo-line-strong);
  border-left: 0;
  border-right: 0;
  border-bottom: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.cabo-col__icon,
.col__icon {
  display: inline-grid;
  place-items: center;
  width: 40px;
  height: 40px;
  margin-bottom: var(--cabo-space-4);
  color: var(--cabo-gold-deep);
  background: transparent;
}

.cabo-col__num,
.col__num {
  float: right;
  font: 500 24px/1 var(--cabo-font-display);
  color: var(--cabo-faint);
  font-variant-numeric: lining-nums;
}

.cabo-col .cabo-h3,
.cabo-col h3,
.col .h3 {
  font-size: var(--cabo-text-h3);
  line-height: 1.2;
  margin-bottom: var(--cabo-space-3);
  color: var(--cabo-ink);
}

.cabo-col p,
.cabo-col p.small,
.col p.small {
  font-size: var(--cabo-text-body);
  color: var(--cabo-ink-2);
  line-height: 1.65;
}

.cabo-col .cabo-link,
.cabo-col .link {
  margin-top: var(--cabo-space-4);
}

@media (max-width: 900px) {
  .cabo-cols,
  .cols {
    grid-template-columns: 1fr;
  }
}

/* 2. Side panel (G3) */
.cabo-side-panel {
  position: sticky;
  top: 112px;
  padding: var(--cabo-space-6);
  background: var(--cabo-sand);
  border: 0;
  border-top: 2px solid var(--cabo-gold);
  border-radius: 0;
  box-shadow: none;
}

.cabo-side-panel .cabo-h3,
.cabo-side-panel h2,
.cabo-side-panel h3 {
  font-size: var(--cabo-text-h3);
  margin: var(--cabo-space-2) 0 var(--cabo-space-3);
  color: var(--cabo-ink);
}

.cabo-side-panel .cabo-form-group,
.cabo-side-panel .field {
  margin-bottom: var(--cabo-space-4);
}

.cabo-side-panel .cabo-form-input,
.cabo-side-panel input[type="text"],
.cabo-side-panel input[type="email"],
.cabo-side-panel input[type="tel"] {
  height: 48px;
  background: var(--cabo-white);
  border: 1px solid var(--cabo-faint);
  border-radius: var(--cabo-radius-1);
}

@media (max-width: 900px) {
  .cabo-side-panel {
    position: static;
  }
}

/* 3. Fold-open rows / FAQ (G4) */
.cabo-faq-section__inner {
  max-width: 720px;
  margin-inline: auto;
}

.cabo-faq-list {
  max-width: 720px;
  margin-inline: auto;
  border-top: 1px solid var(--cabo-line);
}

.cabo-faq-item {
  border-bottom: 1px solid var(--cabo-line);
  background: transparent;
  box-shadow: none;
}

.cabo-faq-item summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  min-height: 56px;
  padding-block: 16px;
  color: var(--cabo-ink);
  font-size: var(--cabo-text-price);
  font-weight: 500;
  line-height: 1.4;
  cursor: pointer;
  list-style: none;
}

.cabo-faq-item summary::-webkit-details-marker {
  display: none;
}

.cabo-faq-item summary:focus-visible {
  outline: 2px solid var(--cabo-ink);
  outline-offset: 3px;
}

.cabo-faq-item summary .cabo-icon {
  flex: 0 0 auto;
  color: var(--cabo-gold-deep);
  transition: transform var(--cabo-dur) var(--cabo-ease);
}

.cabo-faq-item[open] summary .cabo-icon {
  transform: rotate(180deg);
}

.cabo-faq-item__answer {
  padding: 0 0 16px;
  color: var(--cabo-ink-2);
  line-height: 1.65;
  font-size: var(--cabo-text-body);
}

.cabo-faq-item[open] .cabo-faq-item__answer,
.cabo-faq-item[open] .cabo-faq-body,
.cabo-faq-item[open] .faq-body {
  animation: cabo-reveal var(--cabo-dur) var(--cabo-ease);
}

@keyframes cabo-reveal {
  from {
    opacity: 0;
    transform: translateY(-6px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

.field__error,
.cabo-field-error {
  display: block;
  font-size: var(--cabo-text-small);
  color: var(--cabo-error);
  margin-top: var(--cabo-space-1);
  animation: cabo-reveal var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-form-input[aria-invalid="true"],
.cabo-form-select[aria-invalid="true"],
.cabo-form-textarea[aria-invalid="true"],
input[aria-invalid="true"],
select[aria-invalid="true"],
textarea[aria-invalid="true"],
.is-error .cabo-form-input,
.is-error input,
.is-error select,
.is-error textarea {
  border-color: var(--cabo-error);
}

input[aria-invalid="true"]:focus-visible,
select[aria-invalid="true"]:focus-visible,
textarea[aria-invalid="true"]:focus-visible {
  outline: 2px solid var(--cabo-error);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  .cabo-faq-item summary .cabo-icon,
  .cabo-faq-item summary svg {
    transition: none;
  }
  .cabo-faq-item[open] .cabo-faq-item__answer,
  .cabo-faq-item[open] .cabo-faq-body,
  .cabo-faq-item[open] .faq-body,
  .field__error,
  .cabo-field-error {
    animation: none;
  }
}

.cabo-faq-item__answer p {
  margin: 0;
}

.cabo-faq-item__answer p + p {
  margin-top: 12px;
}

/* 4. Shared Tables (G5) */
.cabo-table-wrap {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin: var(--cabo-space-6) 0;
}

.cabo-table-wrap table,
.cabo-table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
  margin: 0;
  background: transparent;
  border: 1px solid var(--cabo-line);
}

.cabo-table-wrap th,
.cabo-table-wrap td,
.cabo-table th,
.cabo-table td {
  border: 1px solid var(--cabo-line);
  padding: var(--cabo-space-3) var(--cabo-space-4);
  text-align: left;
  background: transparent;
}

.cabo-table-wrap thead th,
.cabo-table thead th,
.cabo-cost-table thead th,
.cabo-property-table thead th,
.cabo-guide-page__table thead th {
  color: var(--cabo-ink);
  font-weight: 500;
  font-size: var(--cabo-text-small);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  border-bottom: 2px solid var(--cabo-line-strong);
  background: transparent;
}

.cabo-table-wrap tbody th,
.cabo-table tbody th,
.cabo-cost-table tbody th,
.cabo-property-table tbody th,
.cabo-guide-page__table tbody th {
  color: var(--cabo-ink);
  font-weight: 500;
  font-size: var(--cabo-text-small);
  text-transform: none;
  border: 1px solid var(--cabo-line);
  background: transparent;
}

.cabo-table-wrap td,
.cabo-table td,
.cabo-cost-table tbody td,
.cabo-property-table td,
.cabo-guide-page__table tbody td {
  color: var(--cabo-ink-2);
  font-size: var(--cabo-text-small);
  line-height: 1.5;
}



/* --- templates.css --- */
/**
 * CaboForSale.mx - Templates Stylesheet
 * Source: docs/DESIGN-SYSTEM.md (Section 12)
 *
 * Page-level layout, grid placement, and template-specific structures.
 * Grouped by template (front page, archive property, single property, community, guides).
 */

/* Single property */
.cabo-property-detail-page {
  background: var(--cabo-paper);
  padding-bottom: 0;
}

.cabo-property-heading {
  padding-top: var(--cabo-space-6);
  padding-bottom: var(--cabo-space-5);
}

.cabo-property-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--cabo-space-2);
  color: var(--cabo-muted);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.cabo-property-breadcrumb a {
  color: var(--cabo-muted);
  text-decoration: none;
  transition: color var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-property-breadcrumb a:hover {
  color: var(--cabo-ink);
}

.cabo-property-heading__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: var(--cabo-space-6);
  margin-top: var(--cabo-space-4);
}

.cabo-property-heading__copy {
  min-width: 0;
  max-width: 820px;
}

.cabo-property-title {
  max-width: 100%;
  margin: 0;
  color: var(--cabo-ink);
  line-height: 1.1;
  overflow-wrap: normal;
  word-break: normal;
}

.cabo-property-location {
  display: flex;
  align-items: center;
  gap: var(--cabo-space-2);
  max-width: 680px;
  margin: var(--cabo-space-2) 0 0;
  color: var(--cabo-muted);
}

.cabo-property-location .cabo-icon {
  flex: 0 0 auto;
  color: var(--cabo-gold-deep);
}

.cabo-property-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--cabo-space-2);
  margin-top: var(--cabo-space-3);
}

.cabo-property-mls {
  color: var(--cabo-muted);
  font-weight: 500;
}

.cabo-property-heading__summary {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: var(--cabo-space-3);
}

.cabo-property-price {
  font-weight: 600;
  color: var(--cabo-ink);
  white-space: nowrap;
  line-height: 1;
}

.cabo-property-price--contact {
  color: var(--cabo-ink);
}

.cabo-property-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--cabo-space-2);
}

.cabo-property-actions .cabo-btn {
  min-width: 100px;
}

.cabo-property-facts {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  margin: var(--cabo-space-6) 0 0;
  padding: var(--cabo-space-3) 0;
  background: transparent;
  border: 0;
  border-top: 1px solid var(--cabo-line);
  border-bottom: 1px solid var(--cabo-line);
  border-radius: 0;
}

.cabo-property-fact {
  flex: 1 1 0;
  min-width: 110px;
  padding: var(--cabo-space-2) var(--cabo-space-5);
  border-left: var(--cabo-border);
}

.cabo-property-fact:first-child {
  padding-left: var(--cabo-space-5);
  border-left: 0;
}

.cabo-property-fact dt {
  color: var(--cabo-muted);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.cabo-property-fact dd {
  margin: var(--cabo-space-1) 0 0;
  color: var(--cabo-ink);
  font-weight: 600;
  line-height: 1.2;
}

.cabo-property-gallery-wrap {
  padding-top: var(--cabo-space-3);
  padding-bottom: var(--cabo-space-8);
}

.cabo-property-gallery.cabo-gallery-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  gap: var(--cabo-space-2);
  height: 560px;
  border-radius: var(--cabo-radius-1);
  overflow: hidden;
}

.cabo-property-gallery.cabo-property-gallery--single,
.cabo-property-gallery.cabo-property-gallery--empty {
  grid-template-columns: minmax(0, 1fr);
  height: 500px;
}

.cabo-property-detail-page .cabo-property-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 380px;
  align-items: stretch;
  gap: clamp(40px, 5vw, 80px);
  padding-top: 0;
  padding-bottom: var(--cabo-space-9);
}

.cabo-property-main-col {
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.cabo-property-sidebar-col {
  min-width: 0;
  height: 100%;
}

.cabo-property-section {
  padding: var(--cabo-space-8) 0;
  border-top: var(--cabo-border);
}

.cabo-property-section:first-child {
  padding-top: 0;
  border-top: 0;
}

.cabo-property-section__header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: var(--cabo-space-4);
  margin-bottom: var(--cabo-space-5);
}

.cabo-property-section__eyebrow {
  color: var(--cabo-gold-deep);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin: 0 0 var(--cabo-space-1);
}

.cabo-property-section__title,
.cabo-property-section h2 {
  margin: 0;
  color: var(--cabo-ink);
}

.cabo-property-description-wrap {
  position: relative;
}

.cabo-property-description > :first-child {
  margin-top: 0;
}

.cabo-property-description > :last-child {
  margin-bottom: 0;
}

.cabo-property-description.cabo-prose {
  color: var(--cabo-ink-2);
  line-height: 1.8;
  max-width: 68ch;
}

.cabo-property-description.cabo-prose p:first-of-type {
  line-height: 1.7;
  color: var(--cabo-ink);
  margin-bottom: var(--cabo-space-4);
}

.cabo-property-description.cabo-prose p {
  margin-bottom: var(--cabo-space-4);
}

.cabo-property-description.cabo-prose p:last-child {
  margin-bottom: 0;
}

.cabo-property-description.is-collapsible {
  position: relative;
  max-height: 320px;
  overflow: hidden;
  transition: max-height var(--cabo-dur) var(--cabo-ease);
}

.cabo-property-description.is-collapsible.is-expanded {
  max-height: 4000px;
}

.cabo-property-description-fade {
  position: absolute;
  bottom: 56px;
  left: 0;
  right: 0;
  height: 100px;
  background: linear-gradient(to bottom, transparent 0%, var(--cabo-paper) 100%);
  pointer-events: none;
  opacity: 1;
  transition: opacity var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-property-description-wrap.is-expanded .cabo-property-description-fade {
  opacity: 0;
}

.cabo-property-description-actions {
  margin-top: var(--cabo-space-4);
  display: flex;
  align-items: center;
}

.cabo-property-desc-toggle {
  display: inline-flex;
  align-items: center;
  gap: var(--cabo-space-2);
  cursor: pointer;
}

.cabo-property-desc-toggle .cabo-icon {
  transition: transform var(--cabo-dur) var(--cabo-ease);
}

.cabo-property-description-wrap.is-expanded .cabo-property-desc-toggle .cabo-icon {
  transform: rotate(180deg);
}

.cabo-property-virtual-tour__wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: var(--cabo-stone);
  border: var(--cabo-border);
  border-radius: var(--cabo-radius-1);
  overflow: hidden;
}

.cabo-property-virtual-tour__wrap iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.cabo-property-detail-groups {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--cabo-space-8);
}

.cabo-property-detail-group {
  display: flex;
  flex-direction: column;
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
}

.cabo-property-detail-group__title {
  display: flex;
  align-items: center;
  gap: var(--cabo-space-2);
  margin: 0 0 var(--cabo-space-3);
  padding-bottom: var(--cabo-space-2);
  border-bottom: 1px solid var(--cabo-line-strong);
  color: var(--cabo-gold-deep);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-size: var(--cabo-text-label);
}

.cabo-property-details {
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0;
}

.cabo-property-details__item {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--cabo-space-3);
  padding: var(--cabo-space-3) 0;
  border-bottom: 1px solid var(--cabo-line);
}

.cabo-property-details__item:last-child {
  border-bottom: 1px solid var(--cabo-line);
  padding-bottom: var(--cabo-space-3);
}

.cabo-property-details__item dt {
  color: var(--cabo-muted);
  font-size: var(--cabo-text-small);
  flex: 1 1 auto;
}

.cabo-property-details__item dd {
  margin: 0;
  color: var(--cabo-ink);
  font-weight: 500;
  font-size: var(--cabo-text-small);
  text-align: right;
  flex: 0 1 auto;
  overflow-wrap: anywhere;
}

.cabo-property-features-card {
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
}

.cabo-property-features {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--cabo-space-3) var(--cabo-space-6);
  margin: 0;
  padding: 0;
  list-style: none;
}

.cabo-property-features li {
  display: flex;
  align-items: flex-start;
  gap: var(--cabo-space-2);
  color: var(--cabo-ink);
  padding: var(--cabo-space-2) 0;
  font-size: var(--cabo-text-small);
  line-height: var(--cabo-leading-normal);
}

.cabo-property-features .cabo-icon {
  flex: 0 0 auto;
  color: var(--cabo-gold-deep);
  margin-top: 2px;
}

.cabo-property-location-header {
  display: flex;
  align-items: center;
  gap: var(--cabo-space-3);
  margin-bottom: var(--cabo-space-4);
}

.cabo-property-location-header .cabo-icon {
  flex: 0 0 auto;
  color: var(--cabo-gold-deep);
}

.cabo-property-location-header p {
  margin: 0;
  font-weight: 500;
  color: var(--cabo-ink);
}

.cabo-property-location-panel {
  display: flex;
  align-items: center;
  gap: var(--cabo-space-4);
  min-height: 120px;
  padding: var(--cabo-space-5) 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.cabo-property-location-panel .cabo-icon {
  flex: 0 0 auto;
  color: var(--cabo-gold-deep);
}

.cabo-property-location-panel p {
  margin: 0;
  color: var(--cabo-ink-2);
}

.cabo-property-detail-page .cabo-interactive-map--detail {
  border: 0;
  border-radius: 0;
}

.cabo-property-table-wrap {
  max-width: 100%;
  overflow-x: auto;
  background: transparent;
  border: 0;
  border-top: 1px solid var(--cabo-line);
  border-bottom: 1px solid var(--cabo-line);
  border-radius: 0;
}

.cabo-property-table {
  width: 100%;
  min-width: 600px;
  border-collapse: collapse;
}

.cabo-property-table th,
.cabo-property-table td {
  padding: var(--cabo-space-4);
  border-bottom: var(--cabo-border);
  text-align: left;
  vertical-align: middle;
}

.cabo-property-table tbody tr:last-child td {
  border-bottom: 0;
}

.cabo-property-table th {
  color: var(--cabo-muted);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  background: var(--cabo-paper);
}

.cabo-property-inquiry {
  position: sticky;
  top: calc(var(--cabo-header-h) + var(--cabo-space-4));
  width: 100%;
  padding: var(--cabo-space-6);
  border: 0;
  border-top: 2px solid var(--cabo-gold);
  border-radius: 0;
  background: var(--cabo-sand);
  box-shadow: none;
}

.cabo-property-inquiry__eyebrow {
  margin: 0 0 var(--cabo-space-2);
  color: var(--cabo-gold-deep);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.cabo-property-inquiry h2 {
  margin: 0 0 var(--cabo-space-2);
  color: var(--cabo-ink);
}

.cabo-property-inquiry__subtext {
  margin: 0 0 var(--cabo-space-5);
  color: var(--cabo-muted);
  line-height: 1.5;
}

.cabo-property-inquiry .cabo-inquiry-form {
  display: grid;
  gap: var(--cabo-space-4);
}

.cabo-property-inquiry .cabo-form-group {
  margin: 0;
}

.cabo-property-inquiry .cabo-form-label {
  display: block;
  margin-bottom: var(--cabo-space-2);
  color: var(--cabo-muted);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.cabo-property-inquiry .cabo-form-input,
.cabo-property-inquiry .cabo-form-textarea {
  width: 100%;
  border: 1px solid var(--cabo-line-strong);
  border-radius: var(--cabo-radius-1);
  background: var(--cabo-white);
  color: var(--cabo-ink);
}

.cabo-property-inquiry .cabo-form-input {
  height: 48px;
  padding: 0 var(--cabo-space-4);
}

.cabo-property-inquiry .cabo-form-textarea {
  min-height: 100px;
  padding: var(--cabo-space-3) var(--cabo-space-4);
  resize: vertical;
}

.cabo-property-inquiry .cabo-form-input:focus,
.cabo-property-inquiry .cabo-form-textarea:focus {
  border-color: var(--cabo-ink);
  outline: 2px solid var(--cabo-ink);
  outline-offset: 2px;
  box-shadow: none;
}

.cabo-property-inquiry .cabo-lead-status:empty {
  display: none;
}

.cabo-property-inquiry__trust {
  display: flex;
  align-items: flex-start;
  gap: var(--cabo-space-2);
  margin-top: var(--cabo-space-5);
  padding-top: var(--cabo-space-4);
  border-top: 1px solid var(--cabo-sand);
}

.cabo-property-inquiry__trust .cabo-icon {
  flex: 0 0 auto;
  color: var(--cabo-gold-deep);
  margin-top: 2px;
}

.cabo-property-inquiry__note {
  margin: 0;
  color: var(--cabo-muted);
  line-height: 1.4;
}

.cabo-property-similar-wrap {
  background: var(--cabo-sand);
  border-top: var(--cabo-border);
  padding: var(--cabo-space-8) 0 var(--cabo-space-9);
}

.cabo-property-similar .cabo-property-section__header {
  margin-bottom: var(--cabo-space-6);
}

.cabo-property-mobile-actions-slot {
  display: none;
}

.cabo-property-mobile-actions {
  display: none;
}

@media (max-width: 1023px) {
  .cabo-property-heading__grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .cabo-property-heading__summary {
    align-items: flex-start;
  }

  .cabo-property-actions {
    justify-content: flex-start;
  }

  .cabo-property-detail-page .cabo-property-layout {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--cabo-space-7);
  }

  .cabo-property-inquiry {
    position: static;
    max-width: 720px;
  }

  .cabo-property-gallery.cabo-gallery-grid {
    height: 480px;
  }
}

@media (max-width: 767px) {
  .cabo-property-detail-page {
    display: flex;
    flex-direction: column;
    padding-bottom: calc(var(--cabo-space-8) + var(--cabo-space-5));
  }

  .cabo-property-detail-page .cabo-property-layout {
    padding-bottom: 0;
  }

  .cabo-property-similar .cabo-listing-grid {
    padding-inline: var(--cabo-gutter);
  }

  .cabo-property-similar .cabo-card__body {
    padding-inline: var(--cabo-space-3);
  }

  .cabo-service-card {
    min-width: 0;
    box-sizing: border-box;
    padding: var(--cabo-space-5);
  }

  .cabo-property-detail-page .cabo-property-section__header {
    padding-inline: var(--cabo-gutter);
  }

  .cabo-property-detail-page .cabo-property-similar .cabo-btn-secondary {
    min-width: 0;
  }

  .cabo-property-detail-page a:not(.cabo-card__image-link):not(.cabo-card__favourite):not(.cabo-btn),
  .cabo-home a:not(.cabo-card__image-link):not(.cabo-card__favourite):not(.cabo-btn):not(.cabo-community-card):not(.cabo-area-tile):not(.cabo-collection-tile):not(.cabo-places-link):not(.cabo-places-group__link),
  .cabo-archive a:not(.cabo-card__image-link):not(.cabo-card__favourite):not(.cabo-btn) {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
  }

  .cabo-property-detail-page .leaflet-control-zoom a {
    min-width: 44px;
    width: 44px;
    min-height: 44px;
    height: 44px;
    line-height: 42px;
  }

  .cabo-property-heading {
    order: 2;
    padding-top: var(--cabo-space-4);
    padding-bottom: var(--cabo-space-4);
  }

  .cabo-property-gallery-wrap {
    order: 1;
    padding-bottom: var(--cabo-space-5);
  }

  .cabo-property-layout,
  .cabo-property-similar-wrap {
    order: 3;
  }

  .cabo-property-breadcrumb .cabo-breadcrumbs__item--current,
  .cabo-property-breadcrumb .cabo-breadcrumbs__item--current + .cabo-breadcrumbs__sep {
    display: none;
  }

  .cabo-property-heading__grid {
    gap: var(--cabo-space-4);
    margin-top: var(--cabo-space-3);
  }

  .cabo-property-title {
    font-size: var(--cabo-text-h3);
    line-height: 1.08;
  }

  .cabo-property-heading__summary,
  .cabo-property-actions {
    width: 100%;
  }

  .cabo-property-price {
    white-space: normal;
  }

  .cabo-property-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--cabo-space-2);
  }

  .cabo-property-actions .cabo-btn {
    min-width: 0;
    white-space: nowrap;
    grid-column: auto;
  }

  .cabo-property-actions .cabo-property-action--tour {
    grid-column: 1 / -1;
  }

  .cabo-property-actions .cabo-property-action--whatsapp {
    display: none;
  }

  .cabo-property-facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    row-gap: var(--cabo-space-3);
    margin-top: var(--cabo-space-4);
    padding: var(--cabo-space-3) 0;
    background: transparent;
    border: 0;
    border-top: 1px solid var(--cabo-line);
    border-bottom: 1px solid var(--cabo-line);
    border-radius: 0;
  }

  .cabo-property-fact,
  .cabo-property-fact:first-child {
    min-width: 0;
    padding: 0 var(--cabo-space-3);
    border-left: 1px solid var(--cabo-line);
  }

  .cabo-property-fact:nth-child(odd) {
    padding-left: 0;
    border-left: 0;
  }

  .cabo-property-gallery.cabo-gallery-grid {
    grid-template-columns: minmax(0, 1fr);
    height: 65vw;
    min-height: 260px;
    max-height: 380px;
  }

  .cabo-property-gallery .cabo-gallery-thumbs {
    display: none;
  }

  .cabo-property-gallery .cabo-gallery-view-all {
    right: var(--cabo-space-3);
    bottom: var(--cabo-space-3);
    max-width: calc(100% - var(--cabo-space-6));
    white-space: nowrap;
  }

  .cabo-property-section {
    padding: var(--cabo-space-6) 0;
  }

  .cabo-property-section__header {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--cabo-space-2);
    margin-bottom: var(--cabo-space-4);
  }

  .cabo-property-detail-groups {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--cabo-space-6);
  }

  .cabo-property-features {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cabo-property-detail-group,
  .cabo-property-features-card {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
  }

  .cabo-property-detail-group + .cabo-property-detail-group,
  .cabo-property-features-card + .cabo-property-features-card {
    border-top: 0;
  }

  .cabo-property-details__item {
    padding-block: var(--cabo-space-2);
  }

  .cabo-property-features {
    gap: var(--cabo-space-1) var(--cabo-space-4);
  }

  .cabo-property-features li {
    align-items: flex-start;
    padding-block: var(--cabo-space-1);
  }

  .cabo-property-features .cabo-icon {
    margin-top: var(--cabo-space-1);
  }

  .cabo-property-virtual-tour__wrap {
    display: grid;
    place-items: center;
    min-height: 0;
    background: linear-gradient(135deg, var(--cabo-sand), var(--cabo-stone));
  }

  .cabo-property-virtual-tour__wrap::before {
    position: absolute;
    z-index: 1;
    width: var(--cabo-space-8);
    height: var(--cabo-space-8);
    border: var(--cabo-border);
    border-radius: 50%;
    content: "";
    pointer-events: none;
  }

  .cabo-property-virtual-tour__wrap::after {
    position: absolute;
    z-index: 1;
    width: 0;
    height: 0;
    border-top: var(--cabo-space-2) solid transparent;
    border-bottom: var(--cabo-space-2) solid transparent;
    border-left: var(--cabo-space-3) solid var(--cabo-ink);
    content: "";
    pointer-events: none;
  }

  .cabo-property-location-panel,
  .cabo-property-inquiry {
    padding: var(--cabo-space-5);
  }

  .cabo-property-similar-wrap {
    padding: var(--cabo-space-6) 0 var(--cabo-space-7);
  }

  .cabo-property-mobile-actions-slot {
    display: contents;
  }

  .cabo-property-mobile-actions {
    position: fixed;
    z-index: 80;
    right: 0;
    bottom: 0;
    left: 0;
    display: grid;
    /* Request Info and WhatsApp side by side: one row keeps the bar short. */
    grid-auto-flow: column;
    grid-auto-columns: minmax(0, 1fr);
    gap: var(--cabo-space-2);
    padding: var(--cabo-space-3) var(--cabo-gutter);
    padding-bottom: calc(var(--cabo-space-3) + env(safe-area-inset-bottom));
    border-top: var(--cabo-border);
    background: var(--cabo-white);
    box-shadow: var(--cabo-shadow-float);
  }

  .cabo-property-mobile-actions .cabo-btn:only-child {
    grid-column: 1 / -1;
    width: 100%;
  }

  body.single-property .cabo-whatsapp-float {
    bottom: calc(var(--cabo-space-8) + var(--cabo-space-5));
  }
}

/* --------------------------------------------------------------------------
   Homepage (D5)
   -------------------------------------------------------------------------- */
.cabo-home {
  background: var(--cabo-paper);
}

.cabo-home-hero {
  padding-top: var(--cabo-space-9);
  padding-bottom: var(--cabo-space-7);
}

.cabo-home-hero__intro {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 4fr);
  gap: var(--cabo-space-7);
  align-items: end;
}

.cabo-home-hero__title-group .cabo-label {
  margin-bottom: var(--cabo-space-4);
}

.cabo-home-hero__lead-group .cabo-lead {
  padding-bottom: var(--cabo-space-2);
}

.cabo-home-hero__search {
  margin-top: var(--cabo-space-7);
}

.cabo-home-hero__media {
  position: relative;
  margin: var(--cabo-space-8) 0 0;
  aspect-ratio: 21 / 9;
  overflow: hidden;
  background: var(--cabo-stone);
}

.cabo-home-hero__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Shared section intro */
.cabo-section-intro {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: var(--cabo-space-7);
  align-items: end;
  margin-bottom: var(--cabo-space-7);
}

.cabo-section-intro__title {
  min-width: 0;
}

.cabo-section-intro__title .cabo-label {
  margin-bottom: var(--cabo-space-3);
}

.cabo-section-intro__title .cabo-h2 {
  margin: 0;
}

.cabo-section-intro__copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--cabo-space-3);
  align-items: flex-start;
}

.cabo-section-intro__copy .cabo-lead {
  margin: 0;
}

/* Areas portrait grid & tiles */
.cabo-portrait-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr));
  gap: var(--cabo-space-5);
}

.cabo-portrait-tile {
  display: flex;
  flex-direction: column;
  color: var(--cabo-ink);
  background: var(--cabo-white);
  border: var(--cabo-border);
  transition: border-color var(--cabo-dur-fast) var(--cabo-ease), transform var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-portrait-tile:hover {
  border-color: var(--cabo-line-strong);
}

.cabo-portrait-tile__media {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: var(--cabo-stone);
}

.cabo-portrait-tile__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--cabo-dur-slow) var(--cabo-ease);
}

.cabo-portrait-tile:hover .cabo-portrait-tile__image {
  transform: scale(1.03);
}

.cabo-portrait-tile__placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  background: var(--cabo-stone);
}

.cabo-portrait-tile__placeholder-mark {
  width: var(--cabo-space-8);
  height: var(--cabo-space-8);
  object-fit: contain;
  opacity: 0.4;
}

.cabo-portrait-tile__content {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  padding: var(--cabo-space-5);
  gap: var(--cabo-space-3);
}

.cabo-portrait-tile__title {
  margin: 0;
  line-height: 1.2;
}

.cabo-portrait-tile__desc {
  margin: 0;
  color: var(--cabo-muted);
  line-height: 1.5;
  flex: 1 1 auto;
}

.cabo-portrait-tile__link {
  align-self: flex-start;
  margin-top: var(--cabo-space-2);
}

/* Communities grid & cards */
.cabo-community-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(340px, 100%), 1fr));
  gap: var(--cabo-space-5);
}

.cabo-community-card {
  display: flex;
  flex-direction: column;
  color: var(--cabo-ink);
  background: var(--cabo-white);
  border: var(--cabo-border);
  transition: border-color var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-community-card:hover {
  border-color: var(--cabo-line-strong);
}

.cabo-community-card__media {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--cabo-stone);
}

.cabo-community-card__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--cabo-dur-slow) var(--cabo-ease);
}

.cabo-community-card:hover .cabo-community-card__image {
  transform: scale(1.03);
}

.cabo-community-card__placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  background: var(--cabo-stone);
}

.cabo-community-card__placeholder-mark {
  width: var(--cabo-space-7);
  height: var(--cabo-space-7);
  object-fit: contain;
  opacity: 0.4;
}

.cabo-community-card__body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  padding: var(--cabo-space-5);
  gap: var(--cabo-space-2);
}

.cabo-community-card__eyebrow {
  color: var(--cabo-muted);
}

.cabo-community-card__title {
  margin: 0;
  line-height: 1.2;
}

.cabo-community-card__desc {
  margin: var(--cabo-space-1) 0 0;
  color: var(--cabo-muted);
  line-height: 1.5;
  flex: 1 1 auto;
}

.cabo-community-card__link {
  align-self: flex-start;
  margin-top: var(--cabo-space-3);
}

/* Services section */
.cabo-services-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
  gap: var(--cabo-space-5);
}

.cabo-service-item {
  display: flex;
  flex-direction: column;
  padding: var(--cabo-space-6);
  background: var(--cabo-white);
  border: var(--cabo-border);
}

.cabo-service-item__eyebrow {
  margin-bottom: var(--cabo-space-2);
}

.cabo-service-item__title {
  margin: 0 0 var(--cabo-space-3);
  line-height: 1.2;
}

.cabo-service-item__desc {
  margin: 0 0 var(--cabo-space-5);
  color: var(--cabo-muted);
  line-height: 1.6;
  flex: 1 1 auto;
}

.cabo-service-item .cabo-link {
  align-self: flex-start;
}

/* Guides CTA callout */
.cabo-guides-callout {
  display: grid;
  grid-template-columns: minmax(0, 8fr) auto;
  gap: var(--cabo-space-7);
  align-items: center;
  padding: var(--cabo-space-8);
  background: var(--cabo-sand);
  border: var(--cabo-border);
}

.cabo-guides-callout__copy {
  min-width: 0;
}

.cabo-guides-callout__copy .cabo-label {
  margin-bottom: var(--cabo-space-3);
}

.cabo-guides-callout__copy .cabo-h2 {
  margin: 0 0 var(--cabo-space-3);
}

.cabo-guides-callout__copy .cabo-lead {
  margin: 0;
  color: var(--cabo-muted);
}

.cabo-guides-callout__action {
  flex-shrink: 0;
}

/* Responsive adjustments for homepage */
@media (max-width: 1023px) {
  .cabo-home-hero {
    padding-top: var(--cabo-space-7);
    padding-bottom: var(--cabo-space-5);
  }

  .cabo-home-hero__intro {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--cabo-space-4);
  }

  .cabo-section-intro {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--cabo-space-4);
  }

  .cabo-guides-callout {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--cabo-space-5);
    padding: var(--cabo-space-6);
  }

  .cabo-guides-callout__action .cabo-btn {
    width: 100%;
  }
}

/* Homepage v1.1 photo-led experience */
.cabo-home .cabo-home__hero {
  position: relative;
  display: grid;
  align-items: center;
  justify-items: center;
  min-height: 720px;
  aspect-ratio: auto;
  overflow: hidden;
  color: var(--cabo-cream);
  background: var(--cabo-ink);
}

.cabo-home .cabo-hero-banner__picture,
.cabo-home .cabo-hero-banner__image,
.cabo-home .cabo-hero-banner__scrim {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.cabo-home .cabo-hero-banner__image {
  object-fit: cover;
}

/* Even tint over the whole photo (the content is centered), a little deeper
   in the middle behind the white heading so it stays readable. */
.cabo-home .cabo-hero-banner__scrim {
  background:
    radial-gradient(
      ellipse 60% 55% at 50% 50%,
      color-mix(in srgb, var(--cabo-ink) 30%, transparent) 0%,
      transparent 100%
    ),
    color-mix(in srgb, var(--cabo-ink) 32%, transparent);
}

.cabo-home .cabo-area-tile__scrim {
  background: linear-gradient(to top, var(--cabo-scrim), transparent);
}

.cabo-home .cabo-hero-banner__content {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding-top: var(--cabo-space-8);
  padding-bottom: var(--cabo-space-8);
}

.cabo-home .cabo-hero-banner__content .cabo-label,
.cabo-home .cabo-hero-banner__content .cabo-display,
.cabo-home .cabo-hero-banner__content .cabo-lead {
  color: var(--cabo-cream);
  text-align: center;
}

.cabo-home .cabo-hero-banner__content .cabo-label {
  margin: 0 auto;
}

.cabo-home .cabo-hero-banner__content .cabo-display {
  max-width: 760px;
  margin: var(--cabo-space-3) auto var(--cabo-space-4);
  text-align: center;
}

.cabo-home .cabo-hero-banner__content .cabo-lead {
  max-width: 680px;
  margin: 0 auto;
  text-align: center;
}

.cabo-home .cabo-hero-banner__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: var(--cabo-space-3);
  margin-top: var(--cabo-space-5);
}

.cabo-home .cabo-btn--light {
  color: var(--cabo-cream);
  background: transparent;
  border-color: var(--cabo-cream);
}

.cabo-home .cabo-btn--light:hover,
.cabo-home .cabo-btn--light:focus-visible {
  color: var(--cabo-ink);
  background: var(--cabo-cream);
}

.cabo-home .cabo-home__search {
  position: relative;
  z-index: 20;
  margin-top: calc(var(--cabo-space-7) * -1);
}

.cabo-sheet-open .cabo-home .cabo-home__search,
.cabo-home .cabo-home__search:has(.cabo-sb-sheet.is-open) {
  z-index: 2100;
}

.cabo-home .cabo-home__listings {
  padding-top: var(--cabo-section-tight);
}

.cabo-home .cabo-home-rows {
  display: flex;
  flex-direction: column;
  gap: var(--cabo-space-8);
}

.cabo-home .cabo-home-row {
  display: flex;
  flex-direction: column;
}

.cabo-home .cabo-home-row__header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--cabo-space-4);
  margin-bottom: var(--cabo-space-4);
}

.cabo-home .cabo-home-row__title-group {
  display: flex;
  align-items: baseline;
  gap: var(--cabo-space-2);
}

.cabo-home .cabo-home-row__title {
  margin: 0;
  font-size: var(--cabo-text-h3);
  font-weight: 500;
  line-height: 1.15;
  color: var(--cabo-ink);
}

.cabo-home .cabo-home-row__sep {
  color: var(--cabo-line-strong);
}

.cabo-home .cabo-home-row__count {
  font-size: var(--cabo-text-body);
  font-weight: 400;
  color: var(--cabo-muted);
}

.cabo-home .cabo-home-row__actions {
  display: flex;
  align-items: center;
  gap: var(--cabo-space-4);
}

.cabo-home .cabo-home-row__link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  min-width: 44px;
  font-size: var(--cabo-text-small);
  font-weight: 500;
  color: var(--cabo-ink);
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-color: var(--cabo-line-strong);
  white-space: nowrap;
}

.cabo-home .cabo-home-row__link:hover,
.cabo-home .cabo-home-row__link:focus-visible {
  color: var(--cabo-gold-deep);
  text-decoration-color: var(--cabo-gold);
}

.cabo-home .cabo-home-carousel__controls {
  display: flex;
  flex: 0 0 auto;
  gap: var(--cabo-space-2);
}

.cabo-home .cabo-home-carousel__controls .cabo-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  cursor: pointer;
  border: 1px solid var(--cabo-line-strong);
  border-radius: var(--cabo-radius-round);
  background: var(--cabo-white);
  color: var(--cabo-ink);
  transition: background-color var(--cabo-dur-fast) var(--cabo-ease),
    border-color var(--cabo-dur-fast) var(--cabo-ease),
    color var(--cabo-dur-fast) var(--cabo-ease),
    opacity var(--cabo-dur-fast) var(--cabo-ease),
    transform 60ms var(--cabo-ease);
}

.cabo-home .cabo-home-carousel__controls .cabo-icon-btn:hover:not(:disabled) {
  background: var(--cabo-sand);
  border-color: var(--cabo-ink);
  color: var(--cabo-ink);
}

.cabo-home .cabo-home-carousel__controls .cabo-icon-btn:active:not(:disabled) {
  transform: scale(0.94);
  transition-duration: 60ms;
}

.cabo-home .cabo-home-carousel__controls .cabo-icon-btn:disabled {
  opacity: 0.35;
  cursor: not-allowed;
  pointer-events: none;
}

.cabo-home .cabo-home-carousel__track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - (3 * var(--cabo-space-5))) / 4);
  gap: var(--cabo-space-5);
  overflow-x: auto;
  max-width: 100%;
  padding-bottom: var(--cabo-space-3);
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-color: var(--cabo-line-strong) transparent;
  scrollbar-width: thin;
}

.cabo-home .cabo-home-carousel__slide {
  min-width: 0;
  scroll-snap-align: start;
}

@media (max-width: 1239px) {
  .cabo-home .cabo-home-carousel__track {
    grid-auto-columns: calc((100% - (2 * var(--cabo-space-5))) / 3);
  }
}

@media (max-width: 1023px) {
  .cabo-home .cabo-home-carousel__track {
    grid-auto-columns: calc((100% - var(--cabo-space-5)) / 2);
  }
}

.cabo-home .cabo-home-carousel__slide[hidden] {
  display: none;
}

.cabo-home .cabo-home__collections,
.cabo-home .cabo-home__services,
.cabo-home .cabo-home__contact {
  background: var(--cabo-sand);
  border-block: var(--cabo-border);
}

.cabo-home .cabo-collection-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--cabo-space-4);
}

.cabo-home .cabo-collection-tile {
  position: relative;
  display: block;
  min-width: 0;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  color: var(--cabo-cream);
  background: var(--cabo-ink);
}

.cabo-home .cabo-collection-tile__image,
.cabo-home .cabo-area-tile__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--cabo-dur-slow) var(--cabo-ease);
}

.cabo-home .cabo-collection-tile__scrim {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    transparent 0%,
    transparent 35%,
    color-mix(in srgb, var(--cabo-ink) 55%, transparent) 55%,
    color-mix(in srgb, var(--cabo-ink) 80%, transparent) 100%
  );
  pointer-events: none;
}

.cabo-home .cabo-area-tile__scrim {
  position: absolute;
  inset: 0;
}

.cabo-home .cabo-collection-tile__content,
.cabo-home .cabo-area-tile__content {
  position: absolute;
  right: var(--cabo-space-5);
  bottom: var(--cabo-space-5);
  left: var(--cabo-space-5);
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: var(--cabo-space-2);
}

.cabo-home .cabo-collection-tile__content .cabo-h3,
.cabo-home .cabo-area-tile__content .cabo-h3 {
  color: var(--cabo-cream);
}

.cabo-home .cabo-collection-tile:not(.cabo-collection-tile--icon) .cabo-collection-tile__content .cabo-h3,
.cabo-home .cabo-collection-tile:not(.cabo-collection-tile--icon) .cabo-collection-tile__content span {
  text-shadow: 0 1px 2px color-mix(in srgb, var(--cabo-ink) 40%, transparent);
}

.cabo-home .cabo-collection-tile__content .cabo-label {
  margin-top: var(--cabo-space-2);
  color: var(--cabo-cream);
}

.cabo-home .cabo-collection-tile--icon {
  display: block;
  padding: 0;
  color: var(--cabo-ink);
  background: var(--cabo-sand);
  border: var(--cabo-border);
}

.cabo-home .cabo-collection-tile--icon .cabo-collection-tile__scrim {
  display: none;
}

.cabo-home .cabo-collection-tile--icon .cabo-collection-tile__content,
.cabo-home .cabo-collection-tile--icon .cabo-collection-tile__content .cabo-h3,
.cabo-home .cabo-collection-tile--icon .cabo-collection-tile__content .cabo-label,
.cabo-home .cabo-collection-tile--icon .cabo-collection-tile__content span {
  color: var(--cabo-ink);
  text-shadow: none;
}

.cabo-home .cabo-collection-tile__icon {
  position: absolute;
  top: var(--cabo-space-5);
  left: var(--cabo-space-5);
  display: inline-grid;
  place-items: center;
  width: 56px;
  height: 56px;
  color: var(--cabo-gold-deep);
  background: var(--cabo-gold-tint);
  flex-shrink: 0;
}

.cabo-home .cabo-collection-tile:hover .cabo-collection-tile__image,
.cabo-home .cabo-collection-tile:focus-visible .cabo-collection-tile__image,
.cabo-home .cabo-area-tile:hover .cabo-area-tile__image,
.cabo-home .cabo-area-tile:focus-visible .cabo-area-tile__image {
  transform: scale(1.03);
}

.cabo-home .cabo-area-tile__content {
  padding: var(--cabo-space-3);
  background: var(--cabo-ink);
}

.cabo-home .cabo-area-tile__content .cabo-label {
  color: var(--cabo-cream);
}

.cabo-home .cabo-area-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--cabo-space-5);
}

.cabo-home .cabo-area-tile {
  position: relative;
  display: block;
  min-width: 0;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  color: var(--cabo-cream);
  background: var(--cabo-stone);
}

.cabo-home .cabo-home__places {
  background: var(--cabo-paper);
  border-top: var(--cabo-border);
}

.cabo-home .cabo-places-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--cabo-space-8);
}

@media (min-width: 640px) {
  .cabo-home .cabo-places-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--cabo-space-6);
  }
}

@media (min-width: 1100px) {
  .cabo-home .cabo-places-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--cabo-space-8);
  }
}

.cabo-home .cabo-places-group {
  display: flex;
  flex-direction: column;
}

.cabo-home .cabo-places-group__title {
  margin: 0 0 var(--cabo-space-3);
  padding-bottom: var(--cabo-space-3);
  border-bottom: 2px solid var(--cabo-line-strong);
}

.cabo-home .cabo-places-group__link {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  width: 100%;
  /* 25px of text + 2 x 12px: a 44px+ tap target on phones */
  padding-block: var(--cabo-space-3);
  gap: var(--cabo-space-3);
  color: var(--cabo-ink);
  text-decoration: none;
  font-size: var(--cabo-text-h4);
  font-weight: 600;
  line-height: var(--cabo-leading-tight);
  transition: color var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-home .cabo-places-group__name {
  flex: 0 1 auto;
  min-width: 0;
}

.cabo-home .cabo-places-group__link:hover,
.cabo-home .cabo-places-group__link:focus-visible {
  color: var(--cabo-gold-deep);
}

.cabo-home .cabo-places-group__count {
  flex: 0 0 auto;
  margin-left: auto;
  align-self: baseline;
  font-size: var(--cabo-text-label);
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  color: var(--cabo-muted);
}

.cabo-home .cabo-places-list {
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0;
  list-style: none;
}

.cabo-home .cabo-places-item {
  border-bottom: 1px solid var(--cabo-line);
}

.cabo-home .cabo-places-link {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  width: 100%;
  gap: var(--cabo-space-2);
  padding-block: var(--cabo-space-3);
  color: var(--cabo-ink);
  text-decoration: none;
  transition: color var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-home .cabo-places-link:hover,
.cabo-home .cabo-places-link:focus-visible {
  color: var(--cabo-gold-deep);
}

.cabo-home .cabo-places-name {
  flex: 0 1 auto;
  min-width: 0;
  font-size: var(--cabo-text-body);
  line-height: var(--cabo-leading-normal);
}

.cabo-home .cabo-places-leader {
  flex: 1 1 auto;
  min-width: var(--cabo-space-2);
  border-bottom: 1px dotted var(--cabo-line-strong);
  align-self: baseline;
  margin-bottom: var(--cabo-space-1);
}

.cabo-home .cabo-places-count {
  flex: 0 0 auto;
  margin-left: auto;
  align-self: baseline;
  font-size: var(--cabo-text-label);
  font-variant-numeric: tabular-nums;
  color: var(--cabo-muted);
}

.cabo-home .cabo-places-more {
  margin-top: var(--cabo-space-2);
}

.cabo-home .cabo-places-more__summary {
  display: inline-flex;
  align-items: center;
  gap: var(--cabo-space-1);
  padding-block: var(--cabo-space-2);
  font-size: var(--cabo-text-label);
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--cabo-gold-deep);
  cursor: pointer;
  transition: color var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-home .cabo-places-more__summary:hover,
.cabo-home .cabo-places-more__summary:focus-visible {
  color: var(--cabo-ink);
}

.cabo-home .cabo-places-more[open] .cabo-places-more__summary {
  margin-bottom: var(--cabo-space-2);
}

.cabo-home .cabo-home-carousel__controls.is-carousel-static {
  display: none;
}

.cabo-home .cabo-home__services-related {
  margin-top: var(--cabo-space-8);
  padding-top: var(--cabo-space-6);
  border-top: 1px solid var(--cabo-line-strong);
}

.cabo-home .cabo-home__services-related .cabo-related-links-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 0;
  border-top: 0;
}

@media (max-width: 1024px) {
  .cabo-home .cabo-home__services-related .cabo-related-links-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .cabo-home .cabo-home__services-related .cabo-related-links-grid {
    grid-template-columns: 1fr;
  }
}

.cabo-home .cabo-community-carousel {
  display: flex;
  flex-direction: column;
}

.cabo-home .cabo-community-carousel__header {
  display: flex;
  justify-content: flex-end;
  margin-bottom: var(--cabo-space-4);
}

.cabo-home .cabo-community-card {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  height: 100%;
  text-decoration: none;
  color: inherit;
  background: var(--cabo-white);
  border: var(--cabo-border);
  overflow: hidden;
  transition: transform var(--cabo-dur-fast) var(--cabo-ease), box-shadow var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-home .cabo-community-card:hover,
.cabo-home .cabo-community-card:focus-visible {
  transform: translateY(-2px);
  box-shadow: var(--cabo-shadow-float);
}

.cabo-home .cabo-community-card__media {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--cabo-stone);
}

.cabo-home .cabo-community-card__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform var(--cabo-dur-slow) var(--cabo-ease);
}

.cabo-home .cabo-community-card:hover .cabo-community-card__image,
.cabo-home .cabo-community-card:focus-visible .cabo-community-card__image {
  transform: scale(1.03);
}

.cabo-home .cabo-community-card__content {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  width: 100%;
  padding: var(--cabo-space-4);
  gap: var(--cabo-space-1);
}

.cabo-home .cabo-community-card__area {
  margin: 0;
  font-size: var(--cabo-text-label);
  color: var(--cabo-muted);
}

.cabo-home .cabo-community-card__name {
  margin: 0;
  font-size: var(--cabo-text-h4);
  font-weight: 500;
  line-height: 1.25;
  color: var(--cabo-ink);
}

.cabo-home .cabo-community-card__count {
  margin-top: var(--cabo-space-2);
  margin-bottom: 0;
  font-size: var(--cabo-text-small);
  font-weight: 500;
  color: var(--cabo-ink-2);
}

.cabo-home .cabo-split__image,
.cabo-home .cabo-guide-split__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.cabo-home .cabo-home__services {
  padding-block: var(--cabo-space-4);
}

.cabo-home .cabo-home__services-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--cabo-space-2) var(--cabo-space-3);
  text-align: center;
}

.cabo-home .cabo-home__services-label {
  margin: 0;
  color: var(--cabo-muted);
  font-size: var(--cabo-text-label);
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  line-height: 1.5;
}

.cabo-home .cabo-home__services-divider {
  color: var(--cabo-line-strong);
  user-select: none;
  font-size: var(--cabo-text-small);
  line-height: 1;
}

.cabo-home .cabo-home__services-link {
  color: var(--cabo-ink);
  font-size: var(--cabo-text-small);
  font-weight: 500;
  line-height: 1.5;
  text-decoration: none;
  transition: color var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-home .cabo-home__services-link:hover,
.cabo-home .cabo-home__services-link:focus-visible {
  color: var(--cabo-gold-deep);
  text-decoration: underline;
}

/* Phones: the label on its own line, the four services in a 2 x 2 grid, no
   dividers (they would dangle at the line ends when the row wraps). */
@media (max-width: 767px) {
  .cabo-home .cabo-home__services-bar {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    justify-items: center;
  }

  .cabo-home .cabo-home__services-label {
    grid-column: 1 / -1;
  }

  .cabo-home .cabo-home__services-divider {
    display: none;
  }
}

.cabo-home .cabo-guide-split {
  display: grid;
  grid-template-columns: min(40%, 420px) minmax(0, 1fr);
  background: var(--cabo-white);
  border: var(--cabo-border);
}

.cabo-home .cabo-guide-split--text {
  grid-template-columns: minmax(0, 1fr);
}

.cabo-home .cabo-guide-split--text .cabo-guide-split__copy {
  max-width: var(--cabo-container-narrow);
  margin-inline: auto;
}

.cabo-home .cabo-guide-split__media {
  min-height: 100%;
  overflow: hidden;
  background: var(--cabo-sand);
}

.cabo-home .cabo-guide-split__copy {
  padding: var(--cabo-space-7);
}

.cabo-home .cabo-guide-split__copy .cabo-h2 {
  margin: var(--cabo-space-3) 0 var(--cabo-space-4);
}

.cabo-home .cabo-guide-split__topics {
  display: grid;
  gap: var(--cabo-space-3);
  margin: var(--cabo-space-5) 0;
}

.cabo-home .cabo-guide-split__topics li {
  display: flex;
  align-items: flex-start;
  gap: var(--cabo-space-3);
}

.cabo-home .cabo-guide-split__topics .cabo-icon {
  flex: 0 0 auto;
  color: var(--cabo-success);
}

.cabo-home .cabo-guide-form,
.cabo-home .cabo-inquiry-form {
  display: grid;
  gap: var(--cabo-space-4);
}

.cabo-home .cabo-guide-form {
  grid-template-columns: repeat(2, minmax(0, 1fr)) auto;
  align-items: end;
  padding-top: var(--cabo-space-5);
  border-top: var(--cabo-border);
}

.cabo-home .cabo-guide-form .cabo-small {
  grid-column: 1 / -1;
}

.cabo-home .cabo-form-label {
  display: block;
  margin-bottom: var(--cabo-space-2);
}

.cabo-home .cabo-form-input,
.cabo-home .cabo-form-textarea {
  width: 100%;
  color: var(--cabo-ink);
  background: var(--cabo-white);
  border: 1px solid var(--cabo-faint);
  border-radius: var(--cabo-radius-1);
}

.cabo-home .cabo-form-input {
  height: 52px;
  padding-inline: var(--cabo-space-4);
}

.cabo-home .cabo-form-textarea {
  min-height: 128px;
  padding: var(--cabo-space-3) var(--cabo-space-4);
  resize: vertical;
}

.cabo-home .cabo-contact-grid {
  display: grid;
  grid-template-columns: minmax(0, 4fr) minmax(0, 5fr);
  gap: var(--cabo-space-8);
}

.cabo-home .cabo-contact-grid__intro .cabo-h2 {
  margin: var(--cabo-space-3) 0 var(--cabo-space-4);
}

.cabo-home .cabo-contact-channels {
  display: grid;
  gap: var(--cabo-space-3);
  margin-top: var(--cabo-space-6);
}

.cabo-home .cabo-contact-channels a,
.cabo-home .cabo-contact-channels__item {
  display: flex;
  align-items: center;
  gap: var(--cabo-space-4);
  min-height: 56px;
  color: var(--cabo-ink);
}

.cabo-home .cabo-contact-channels .cabo-icon {
  flex: 0 0 auto;
  color: var(--cabo-gold-deep);
}

.cabo-home .cabo-contact-channels span span {
  display: flex;
  flex-direction: column;
}

.cabo-home .cabo-contact-channels small {
  color: var(--cabo-muted);
}

.cabo-home .cabo-inquiry-form {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding: var(--cabo-space-6);
  background: var(--cabo-sand);
  border-top: 2px solid var(--cabo-gold);
  border-inline: 0;
  border-bottom: 0;
  box-shadow: none;
}

.cabo-home .cabo-form-group--wide {
  grid-column: 1 / -1;
}

.cabo-home [data-home-reveal] {
  opacity: 0;
  transform: translateY(var(--cabo-space-5));
  transition: opacity var(--cabo-dur-slow) var(--cabo-ease), transform var(--cabo-dur-slow) var(--cabo-ease);
}

.cabo-home [data-home-reveal].is-revealed {
  opacity: 1;
  transform: none;
}

@media (max-width: 1024px) {
  .cabo-home .cabo-home__hero {
    aspect-ratio: auto;
  }

  .cabo-home .cabo-collection-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cabo-home .cabo-split,
  .cabo-home .cabo-guide-split,
  .cabo-home .cabo-contact-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .cabo-home .cabo-split:nth-child(even) .cabo-split__media {
    order: 0;
  }
}

@media (max-width: 767px) {
  .cabo-home .cabo-home__hero {
    min-height: 520px;
    aspect-ratio: auto;
  }

  .cabo-home .cabo-hero-banner__scrim {
    background: color-mix(in srgb, var(--cabo-ink) 48%, transparent);
  }

  .cabo-home .cabo-hero-banner__content {
    padding-top: var(--cabo-space-7);
    padding-bottom: var(--cabo-space-7);
  }

  .cabo-home .cabo-hero-banner__content .cabo-display {
    max-width: 760px;
    font-size: var(--cabo-text-h1);
    line-height: 1.1;
    margin-inline: auto;
    text-align: center;
  }

  .cabo-home .cabo-hero-banner__actions,
  .cabo-home .cabo-hero-banner__actions .cabo-btn {
    width: 100%;
  }

  .cabo-home .cabo-home__search {
    position: relative;
    z-index: 20;
    margin-top: calc(var(--cabo-space-6) * -1);
    padding-top: 0;
  }


  .cabo-home .cabo-collection-grid,
  .cabo-home .cabo-area-grid {
    grid-auto-columns: 78vw;
    grid-auto-flow: column;
    grid-template-columns: none;
    overflow-x: auto;
    gap: var(--cabo-space-3);
    padding-bottom: var(--cabo-space-2);
    scroll-snap-type: inline mandatory;
    scrollbar-width: thin;
  }

  .cabo-home .cabo-collection-tile {
    aspect-ratio: 4 / 5;
    scroll-snap-align: start;
  }

  .cabo-home .cabo-area-tile {
    aspect-ratio: 4 / 3;
    scroll-snap-align: start;
  }

  .cabo-home .cabo-area-tile__content {
    justify-content: flex-start;
    min-height: 8.625rem;
  }

  .cabo-home .cabo-collection-tile__content {
    right: var(--cabo-space-4);
    bottom: var(--cabo-space-4);
    left: var(--cabo-space-4);
    justify-content: flex-start;
    min-height: 7.625rem;
  }

  .cabo-home .cabo-collection-tile__icon {
    top: var(--cabo-space-4);
    left: var(--cabo-space-4);
  }

  .cabo-home .cabo-home-carousel__track {
    grid-auto-columns: calc((100% - var(--cabo-space-4)) / 1.2);
    gap: var(--cabo-space-4);
  }

  .cabo-home .cabo-split__media {
    aspect-ratio: 16 / 9;
  }

  .cabo-home .cabo-guide-split__media {
    min-height: auto;
    padding-top: var(--cabo-space-6);
    background: transparent;
    display: flex;
    justify-content: center;
  }

  .cabo-home .cabo-guide-split__image {
    max-width: 240px;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 5;
    margin-inline: auto;
  }

  .cabo-home .cabo-guide-split__copy,
  .cabo-home .cabo-inquiry-form {
    padding: var(--cabo-space-5);
  }

  .cabo-home .cabo-guide-form .cabo-small,
  .cabo-home .cabo-form-group--wide {
    grid-column: auto;
  }

  .cabo-home .cabo-guide-form,
  .cabo-home .cabo-inquiry-form {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 479px) {
  .cabo-home .cabo-home__hero {
    min-height: 480px;
  }

  .cabo-home .cabo-hero-banner__content {
    padding-top: var(--cabo-space-6);
    padding-bottom: var(--cabo-space-6);
  }

  .cabo-home .cabo-hero-banner__content .cabo-display {
    margin-block: var(--cabo-space-2);
  }

  .cabo-home .cabo-hero-banner__content .cabo-lead {
    display: block;
  }

  .cabo-home .cabo-home__search {
    position: relative;
    z-index: 20;
    padding-top: 0;
  }

  .cabo-home .cabo-home__listings {
    padding-top: var(--cabo-space-5);
  }

  .cabo-home .cabo-home__listings .cabo-section-intro {
    margin-bottom: var(--cabo-space-4);
  }

  .cabo-home .cabo-home__listings .cabo-section-intro__copy,
  .cabo-home .cabo-home-carousel__controls {
    display: none;
  }

  .cabo-home .cabo-home-rows {
    gap: var(--cabo-space-6);
  }

  .cabo-home .cabo-home-row__header {
    margin-bottom: var(--cabo-space-3);
  }
}

@media (prefers-reduced-motion: reduce) {
  .cabo-home *,
  .cabo-home *::before,
  .cabo-home *::after {
    scroll-behavior: auto;
    transition-duration: 0.01ms;
    animation-duration: 0.01ms;
    animation-iteration-count: 1;
  }

  .cabo-home [data-home-reveal],
  .cabo-home .cabo-collection-tile:hover .cabo-collection-tile__image,
  .cabo-home .cabo-collection-tile:focus-visible .cabo-collection-tile__image,
  .cabo-home .cabo-area-tile:hover .cabo-area-tile__image,
  .cabo-home .cabo-area-tile:focus-visible .cabo-area-tile__image {
    opacity: 1;
    transform: none;
  }
}

/* Service pages (D6a) */
.cabo-service-page {
  color: var(--cabo-ink-2);
  background: var(--cabo-paper);
}

.cabo-service-page .cabo-btn--light { color: var(--cabo-cream); background: transparent; border-color: var(--cabo-cream); }
.cabo-service-page .cabo-btn--light:hover,
.cabo-service-page .cabo-btn--light:focus-visible { color: var(--cabo-ink); background: var(--cabo-cream); }
.cabo-service-page .cabo-glance-band { border-block: var(--cabo-border); background: var(--cabo-paper); }
.cabo-service-page .cabo-glance-band__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.cabo-service-page .cabo-glance-band__item { min-width: 0; padding: var(--cabo-space-5) 0; border: 0; border-top: 1px solid var(--cabo-line-strong); }
.cabo-service-page .cabo-glance-band__item:first-child { border-left: 0; }
.cabo-service-page .cabo-glance-band__icon,
.cabo-service-page .cabo-feature-band__icon,
.cabo-service-page .cabo-timeline__icon { display: inline-grid; place-items: center; width: 40px; height: 40px; color: var(--cabo-gold-deep); background: transparent; }
.cabo-service-page .cabo-glance-band__item strong { display: block; margin-top: var(--cabo-space-3); color: var(--cabo-ink); }
.cabo-service-page .cabo-glance-band__item .cabo-stat-val {
  font: 500 var(--cabo-text-h2)/1 var(--cabo-font-display);
  font-variant-numeric: lining-nums;
  font-feature-settings: "lnum" 1;
}
.cabo-service-page .cabo-glance-band__item p,
.cabo-service-page .cabo-timeline__card p,
.cabo-service-page .cabo-feature-band__card p,
.cabo-service-page .cabo-related-card p { margin: var(--cabo-space-2) 0 0; color: var(--cabo-muted); max-width: 100%; }
.cabo-service-page .cabo-service-intro__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 400px);
  gap: var(--cabo-space-8);
  align-items: start;
}
.cabo-service-page .cabo-service-intro__body {
  max-width: var(--cabo-measure-prose);
}
.cabo-service-page .cabo-service-intro__aside {
  position: sticky;
  top: calc(var(--cabo-header-h) + var(--cabo-space-5));
}
.cabo-service-page .cabo-service-aside-card {
  padding: var(--cabo-space-6);
  background: var(--cabo-sand);
  border: 0;
  border-top: 2px solid var(--cabo-gold);
  border-radius: 0;
  box-shadow: none;
}
.cabo-service-page .cabo-service-aside-card .cabo-h3 {
  margin: var(--cabo-space-3) 0 var(--cabo-space-5);
}
.cabo-service-page .cabo-service-aside-list {
  display: grid;
  gap: var(--cabo-space-4);
  margin: 0;
  padding: 0;
  list-style: none;
}
.cabo-service-page .cabo-service-aside-item {
  display: flex;
  align-items: flex-start;
  gap: var(--cabo-space-3);
}
.cabo-service-page .cabo-service-aside-icon {
  display: inline-grid;
  place-items: center;
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  color: var(--cabo-gold-deep);
  background: transparent;
  border-radius: var(--cabo-radius-1);
}
.cabo-service-page .cabo-service-aside-text strong {
  display: block;
  color: var(--cabo-ink);
}
.cabo-service-page .cabo-service-aside-text p {
  margin: var(--cabo-space-1) 0 0;
  color: var(--cabo-muted);
  max-width: 100%;
}
.cabo-service-page .cabo-service-prose,
.cabo-service-page .cabo-service-section-head { max-width: var(--cabo-measure-prose); }
.cabo-service-page .cabo-service-prose .cabo-h2,
.cabo-service-page .cabo-service-section-head .cabo-h2 { margin: var(--cabo-space-3) 0 var(--cabo-space-4); }
.cabo-service-page .cabo-service-prose p { max-width: var(--cabo-measure-prose); }
.cabo-service-page .cabo-timeline { background: var(--cabo-sand); border-block: var(--cabo-border); }
.cabo-service-page .cabo-related-grid,
.cabo-service-page .cabo-guide-split { background: transparent; border: 0; border-block: 0; box-shadow: none; }
.cabo-service-page .cabo-service-section-head { margin-bottom: var(--cabo-space-7); }
.cabo-service-page .cabo-service-section-head .cabo-lead { margin: 0; }
.cabo-service-page .cabo-timeline__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--cabo-space-7) var(--cabo-space-6); }
.cabo-service-page .cabo-timeline__card,
.cabo-service-page .cabo-feature-band__card {
  min-width: 0;
  padding: var(--cabo-space-5) 0 0;
  background: transparent;
  border: 0;
  border-top: 1px solid var(--cabo-line-strong);
  box-shadow: none;
}
.cabo-service-page .cabo-cost-card { min-width: 0; padding: var(--cabo-space-6); background: var(--cabo-white); border: var(--cabo-border); }
.cabo-service-page .cabo-timeline__card { position: relative; }
.cabo-service-page .cabo-step-num { position: absolute; top: var(--cabo-space-5); right: 0; color: var(--cabo-faint); font: 500 24px/1 var(--cabo-font-display); }
.cabo-service-page .cabo-timeline__card .cabo-h3,
.cabo-service-page .cabo-feature-band__card .cabo-h3 { margin: var(--cabo-space-4) 0 var(--cabo-space-3); }
.cabo-service-page .cabo-cost-section,
.cabo-service-page .cabo-faq-section,
.cabo-service-page .cabo-inquiry-section { background: var(--cabo-white); }
.cabo-service-page .cabo-cost-table { width: 100%; border-collapse: collapse; background: transparent; border: 1px solid var(--cabo-line); }
.cabo-service-page .cabo-cost-table th,
.cabo-service-page .cabo-cost-table td { padding: var(--cabo-space-3) var(--cabo-space-4); border: 1px solid var(--cabo-line); text-align: left; vertical-align: top; }
.cabo-service-page .cabo-cost-table thead th {
  color: var(--cabo-ink);
  font-size: var(--cabo-text-small);
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  border-bottom: 2px solid var(--cabo-line-strong);
  background: transparent;
}
.cabo-service-page .cabo-cost-table tbody th { color: var(--cabo-ink); font-weight: 500; }
.cabo-service-page .cabo-cost-cards-mobile { display: none; }
.cabo-service-page .cabo-feature-band { background: var(--cabo-paper); }
.cabo-service-page .cabo-feature-band__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--cabo-space-7) var(--cabo-space-6); }
.cabo-service-page .cabo-related-grid__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--cabo-space-6); }
.cabo-service-page .cabo-related-card { min-width: 0; background: transparent; border: 0; box-shadow: none; }
.cabo-service-page .cabo-related-card__media { aspect-ratio: 4 / 3; overflow: hidden; background: var(--cabo-stone); border: 0; box-shadow: none; }
.cabo-service-page .cabo-related-card__image { width: 100%; height: 100%; object-fit: cover; transition: transform var(--cabo-dur-slow) var(--cabo-ease); }
.cabo-service-page .cabo-related-card:hover .cabo-related-card__image { transform: scale(1.03); }
.cabo-service-page .cabo-related-card__body { padding: var(--cabo-space-4) 0 0; }
.cabo-service-page .cabo-related-card__body .cabo-h3 { margin: 0; }
.cabo-service-page .cabo-related-card__body .cabo-link { display: inline-block; margin-top: var(--cabo-space-4); }
.cabo-service-page .cabo-faq-section__inner { max-width: 900px; }
.cabo-service-page .cabo-faq-list { border-top: var(--cabo-border); }
.cabo-service-page .cabo-faq-item { border-bottom: var(--cabo-border); }
.cabo-service-page .cabo-faq-item summary { display: flex; align-items: center; justify-content: space-between; gap: var(--cabo-space-4); min-height: 64px; padding: var(--cabo-space-4) 0; color: var(--cabo-ink); cursor: pointer; list-style: none; }
.cabo-service-page .cabo-faq-item summary::-webkit-details-marker { display: none; }
.cabo-service-page .cabo-faq-item summary:focus-visible { outline: 2px solid var(--cabo-ink); outline-offset: 3px; }
.cabo-service-page .cabo-faq-item summary .cabo-icon { flex: 0 0 auto; color: var(--cabo-gold-deep); transition: transform var(--cabo-dur-fast) var(--cabo-ease); }
.cabo-service-page .cabo-faq-item[open] summary .cabo-icon { transform: rotate(180deg); }
.cabo-service-page .cabo-faq-item__answer { max-width: var(--cabo-measure-prose); padding: 0 0 var(--cabo-space-5); color: var(--cabo-muted); }
.cabo-service-page .cabo-faq-item__answer p { margin: 0; }
.cabo-service-page .cabo-guide-split__container { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--cabo-space-8); align-items: center; padding: 0; background: transparent; border: 0; box-shadow: none; }
.cabo-service-page .cabo-guide-split__media { aspect-ratio: 3 / 2; overflow: hidden; background: var(--cabo-stone); border: 0; box-shadow: none; }
.cabo-service-page .cabo-guide-split__image { width: 100%; height: 100%; object-fit: cover; }
.cabo-service-page .cabo-guide-split__copy { padding: 0; }
.cabo-service-page .cabo-guide-split__copy .cabo-h2 { margin: var(--cabo-space-3) 0 var(--cabo-space-4); }
.cabo-service-page .cabo-guide-split__copy ul { display: grid; gap: var(--cabo-space-3); margin: var(--cabo-space-5) 0; }
.cabo-service-page .cabo-guide-split__copy li { display: flex; align-items: flex-start; gap: var(--cabo-space-3); }
.cabo-service-page .cabo-guide-split__copy li .cabo-icon { flex: 0 0 auto; color: var(--cabo-success); }
.cabo-service-page .cabo-contact-grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 5fr); gap: var(--cabo-space-8); }
.cabo-service-page .cabo-contact-grid__intro .cabo-h2 { margin: var(--cabo-space-3) 0 var(--cabo-space-4); }
.cabo-service-page .cabo-contact-channels { display: grid; gap: var(--cabo-space-3); margin-top: var(--cabo-space-6); }
.cabo-service-page .cabo-contact-channels a { display: flex; align-items: center; gap: var(--cabo-space-4); min-height: 56px; color: var(--cabo-ink); }
.cabo-service-page .cabo-contact-channels .cabo-icon { flex: 0 0 auto; color: var(--cabo-gold-deep); }
.cabo-service-page .cabo-contact-channels a span { display: flex; flex-direction: column; }
.cabo-service-page .cabo-contact-channels small { color: var(--cabo-muted); }
.cabo-service-page .cabo-inquiry-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--cabo-space-4); min-width: 0; padding: 0; background: transparent; border: 0; }
.cabo-service-page .cabo-service-sources {
  padding-block: var(--cabo-space-4) var(--cabo-space-8);
  color: var(--cabo-muted);
}
.cabo-service-page .cabo-service-sources .cabo-h3 {
  font-size: var(--cabo-text-body);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--cabo-ink-2);
  margin-bottom: var(--cabo-space-2);
}
.cabo-service-page .cabo-service-sources p {
  font-size: var(--cabo-text-small);
  line-height: 1.5;
  color: var(--cabo-muted);
  margin-bottom: var(--cabo-space-2);
}
.cabo-service-page .cabo-service-sources ul {
  display: flex;
  flex-wrap: wrap;
  gap: var(--cabo-space-2) var(--cabo-space-4);
  padding: 0;
  margin: 0;
  list-style: none;
}
.cabo-service-page .cabo-service-sources li {
  font-size: var(--cabo-text-ui);
}
.cabo-service-page .cabo-service-sources a {
  color: var(--cabo-muted);
  text-decoration: underline;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}
.cabo-service-page .cabo-service-sources a:hover {
  color: var(--cabo-ink);
}
.cabo-service-page .cabo-form-label { display: block; margin-bottom: var(--cabo-space-2); }
.cabo-service-page .cabo-form-input,
.cabo-service-page .cabo-form-textarea { width: 100%; max-width: 100%; color: var(--cabo-ink); background: var(--cabo-white); border: 1px solid var(--cabo-faint); border-radius: var(--cabo-radius-1); }
.cabo-service-page .cabo-form-input { height: 52px; padding-inline: var(--cabo-space-4); }
.cabo-service-page .cabo-form-textarea { min-height: 132px; padding: var(--cabo-space-3) var(--cabo-space-4); resize: vertical; }
.cabo-service-page .cabo-form-group--wide { grid-column: 1 / -1; }
.cabo-service-page .cabo-service-sources { border-top: var(--cabo-border); }
.cabo-service-page .cabo-service-sources ul { display: grid; gap: var(--cabo-space-2); padding-left: var(--cabo-space-5); }

@media (max-width: 1023px) {
  .cabo-service-page .cabo-service-intro__grid { grid-template-columns: minmax(0, 1fr); gap: var(--cabo-space-6); }
  .cabo-service-page .cabo-service-intro__aside { position: static; }
  .cabo-service-page .cabo-glance-band__grid,
  .cabo-service-page .cabo-feature-band__grid,
  .cabo-service-page .cabo-timeline__grid,
  .cabo-service-page .cabo-related-grid__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cabo-service-page .cabo-contact-grid,
  .cabo-service-page .cabo-guide-split__container { grid-template-columns: minmax(0, 1fr); }
  .cabo-service-page .cabo-guide-split__media { aspect-ratio: 3 / 2; }
}

@media (max-width: 767px) {
  .cabo-service-page .cabo-glance-band__grid,
  .cabo-service-page .cabo-feature-band__grid,
  .cabo-service-page .cabo-timeline__grid,
  .cabo-service-page .cabo-related-grid__grid,
  .cabo-service-page .cabo-inquiry-form { grid-template-columns: minmax(0, 1fr); }
  .cabo-service-page .cabo-glance-band__item,
  .cabo-service-page .cabo-glance-band__item:first-child { border-top: var(--cabo-border); border-left: 0; }
  .cabo-service-page .cabo-glance-band__item:first-child { border-top: 0; }
  .cabo-service-page .cabo-cost-table-wrap { display: none; }
  .cabo-service-page .cabo-cost-cards-mobile { display: grid; gap: var(--cabo-space-4); }
  .cabo-service-page .cabo-guide-split__copy,
  .cabo-service-page .cabo-inquiry-form { padding: var(--cabo-space-5); }
  .cabo-service-page .cabo-form-group--wide { grid-column: auto; }
}

@media (prefers-reduced-motion: reduce) {
  .cabo-service-page *,
  .cabo-service-page *::before,
  .cabo-service-page *::after { scroll-behavior: auto; transition-duration: 0.01ms; animation-duration: 0.01ms; animation-iteration-count: 1; }
  .cabo-service-page .cabo-related-card:hover .cabo-related-card__image,
  .cabo-service-page .cabo-faq-item[open] summary .cabo-icon { transform: none; }
}

/* Community and area guides (D6b) */
.cabo-community-page {
  color: var(--cabo-ink-2);
  background: var(--cabo-paper);
}


.cabo-community-page .cabo-community-page__glance {
  background: var(--cabo-white);
  border-block: var(--cabo-border);
}

.cabo-community-page .cabo-community-page__glance-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr));
}

.cabo-community-page .cabo-community-page__stat {
  min-width: 0;
  padding: var(--cabo-space-6) var(--cabo-space-5);
  border-left: var(--cabo-border);
}

.cabo-community-page .cabo-community-page__stat:first-child {
  border-left: 0;
}

.cabo-community-page .cabo-community-page__stat strong,
.cabo-community-page .cabo-community-page__stat span {
  display: block;
}

.cabo-community-page .cabo-community-page__stat strong {
  margin-bottom: var(--cabo-space-2);
  color: var(--cabo-ink);
  font-weight: 500;
  font-variant-numeric: lining-nums;
}

.cabo-community-page .cabo-community-page__editorial-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 380px);
  align-items: start;
  gap: var(--cabo-space-8);
}

.cabo-community-page .cabo-community-page__narrative {
  max-width: var(--cabo-measure-prose);
}

.cabo-community-page .cabo-community-page__narrative .cabo-h2 {
  margin: var(--cabo-space-3) 0 var(--cabo-space-5);
}

.cabo-community-page .cabo-community-page__narrative .cabo-h3 {
  margin: var(--cabo-space-6) 0 var(--cabo-space-4);
}

.cabo-community-page .cabo-community-page__narrative p {
  max-width: 68ch;
}

.cabo-community-page .cabo-community-page__highlights {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--cabo-space-4);
  margin: 0;
  padding: 0;
  list-style: none;
}

.cabo-community-page .cabo-community-page__highlights li {
  display: flex;
  align-items: flex-start;
  gap: var(--cabo-space-3);
}

.cabo-community-page .cabo-community-page__highlights .cabo-icon {
  flex: 0 0 auto;
  margin-top: var(--cabo-space-1);
  color: var(--cabo-success);
}

.cabo-community-page .cabo-community-page__guide {
  position: sticky;
  top: calc(var(--cabo-header-h) + var(--cabo-space-5));
  min-width: 0;
  padding: var(--cabo-space-6);
  color: var(--cabo-ink-2);
  background: var(--cabo-sand);
  border: 0;
  border-top: 2px solid var(--cabo-gold);
  border-radius: 0;
  box-shadow: none;
}

.cabo-community-page .cabo-community-page__guide .cabo-h3 {
  margin: var(--cabo-space-3) 0 var(--cabo-space-3);
}

.cabo-community-page .cabo-community-page__guide > p:not(.cabo-label) {
  margin: 0 0 var(--cabo-space-5);
  color: var(--cabo-muted);
}

.cabo-community-page .cabo-community-page__guide-form {
  display: grid;
  gap: var(--cabo-space-4);
}

.cabo-community-page .cabo-community-page__guide-form .cabo-form-label {
  display: block;
  margin-bottom: var(--cabo-space-2);
}

.cabo-community-page .cabo-community-page__guide-form .cabo-form-input {
  width: 100%;
  max-width: 100%;
  height: 52px;
  padding-inline: var(--cabo-space-4);
  color: var(--cabo-ink);
  background: var(--cabo-white);
  border: 1px solid var(--cabo-faint);
  border-radius: var(--cabo-radius-1);
}

.cabo-community-page .cabo-community-page__form-note {
  margin: 0;
  color: var(--cabo-muted);
}

.cabo-community-page .cabo-community-page__listings {
  background: var(--cabo-sand);
  border-block: var(--cabo-border);
}

.cabo-community-page .cabo-community-page__listings .cabo-empty-state {
  grid-column: 1 / -1;
  max-width: var(--cabo-container-narrow);
  margin-inline: auto;
}

.cabo-community-page .cabo-community-page__listings .cabo-pagination {
  margin-top: var(--cabo-space-7);
}

.cabo-community-page .cabo-community-page__faq {
  background: var(--cabo-white);
}

.cabo-community-page .cabo-community-page__faq-inner {
  max-width: 720px;
  margin-inline: auto;
}

.cabo-community-page .cabo-community-page__faq-inner > .cabo-h2 {
  margin: var(--cabo-space-3) 0 var(--cabo-space-6);
}

.cabo-community-page .cabo-community-page__faq-list {
  border-top: 1px solid var(--cabo-line);
}

.cabo-community-page .cabo-community-page__faq-item {
  border-bottom: 1px solid var(--cabo-line);
}

.cabo-community-page .cabo-community-page__faq-item summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--cabo-space-4);
  min-height: 56px;
  padding: var(--cabo-space-4) 0;
  color: var(--cabo-ink);
  cursor: pointer;
  list-style: none;
}

.cabo-community-page .cabo-community-page__faq-item summary::-webkit-details-marker {
  display: none;
}

.cabo-community-page .cabo-community-page__faq-item summary .cabo-icon {
  flex: 0 0 auto;
  color: var(--cabo-gold-deep);
  transition: transform var(--cabo-dur) var(--cabo-ease);
}

.cabo-community-page .cabo-community-page__faq-item[open] summary .cabo-icon {
  transform: rotate(180deg);
}

.cabo-community-page .cabo-community-page__faq-answer {
  max-width: 68ch;
  padding-bottom: var(--cabo-space-5);
  color: var(--cabo-muted);
}

.cabo-community-page .cabo-community-page__faq-answer p {
  margin: 0;
}

@media (max-width: 1023px) {
  .cabo-community-page .cabo-community-page__editorial-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--cabo-space-7);
  }

  .cabo-community-page .cabo-community-page__guide {
    position: static;
    max-width: var(--cabo-container-narrow);
  }
}

@media (max-width: 767px) {
  .cabo-community-page .cabo-community-page__glance-grid,
  .cabo-community-page .cabo-community-page__highlights {
    grid-template-columns: minmax(0, 1fr);
  }

  .cabo-community-page .cabo-community-page__stat,
  .cabo-community-page .cabo-community-page__stat:first-child {
    border-top: var(--cabo-border);
    border-left: 0;
  }

  .cabo-community-page .cabo-community-page__stat:first-child {
    border-top: 0;
  }

  .cabo-community-page .cabo-community-page__guide {
    padding: var(--cabo-space-5);
  }
}

@media (prefers-reduced-motion: reduce) {
  .cabo-community-page .cabo-community-page__faq-item[open] summary .cabo-icon {
    transform: none;
  }
}

/* Standard content page */
.cabo-page {
  background: var(--cabo-paper);
}

.cabo-page__article {
  padding-block: var(--cabo-section);
}

.cabo-page__header {
  padding-bottom: var(--cabo-space-7);
  border-bottom: var(--cabo-border);
}

.cabo-page__header .cabo-h1 {
  margin: var(--cabo-space-4) 0 0;
}

.cabo-page__body {
  padding-top: var(--cabo-space-7);
}

.cabo-page-content {
  max-width: var(--cabo-measure-prose);
}

.cabo-page-content > :first-child {
  margin-top: 0;
}

.cabo-page-content > :last-child {
  margin-bottom: 0;
}

.cabo-page-content h2,
.cabo-page-content h3,
.cabo-page-content h4 {
  margin-top: var(--cabo-space-7);
  margin-bottom: var(--cabo-space-4);
}

.cabo-page-content ul,
.cabo-page-content ol {
  display: grid;
  gap: var(--cabo-space-2);
  margin-block: var(--cabo-space-5);
  padding-left: var(--cabo-space-6);
}

.cabo-page-content a:not(.cabo-btn) {
  color: var(--cabo-ink);
  text-decoration: underline;
  text-decoration-color: var(--cabo-gold);
  text-underline-offset: 4px;
}

.cabo-page-content img,
.cabo-page-content iframe,
.cabo-page-content table {
  max-width: 100%;
}

.cabo-page-content table {
  width: 100%;
  border-collapse: collapse;
}

.cabo-page-content th,
.cabo-page-content td {
  padding: var(--cabo-space-3);
  border-bottom: var(--cabo-border);
  text-align: left;
}

.cabo-page__pagination {
  margin-top: var(--cabo-space-6);
}

.cabo-page__advisory {
  max-width: var(--cabo-measure-prose);
  margin-top: var(--cabo-space-8);
  padding: var(--cabo-space-6);
  color: var(--cabo-ink-2);
  background: var(--cabo-sand);
  border-top: var(--cabo-border);
}

.cabo-page__advisory .cabo-h3 {
  margin: var(--cabo-space-3) 0 var(--cabo-space-4);
}

.cabo-page__advisory .cabo-btn {
  margin-top: var(--cabo-space-5);
}

/* Not-found page */
.cabo-not-found__hero {
  background: var(--cabo-paper);
}

.cabo-not-found__hero .cabo-display {
  margin: var(--cabo-space-4) 0 var(--cabo-space-5);
}

.cabo-not-found__search {
  margin-top: var(--cabo-space-7);
  padding: var(--cabo-space-5);
  background: var(--cabo-white);
  border: var(--cabo-border);
}

.cabo-not-found__search-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--cabo-space-3);
}

.cabo-not-found__search input {
  min-width: 0;
}

.cabo-not-found__section-head {
  max-width: var(--cabo-measure-prose);
  margin-bottom: var(--cabo-space-7);
}

.cabo-not-found__section-head .cabo-h2 {
  margin: var(--cabo-space-3) 0 0;
}

.cabo-not-found__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr));
  gap: var(--cabo-space-6);
}

.cabo-not-found__card {
  min-width: 0;
  padding-top: var(--cabo-space-5);
  border-top: var(--cabo-border);
}

.cabo-not-found__icon {
  display: inline-flex;
  color: var(--cabo-gold-deep);
}

.cabo-not-found__card .cabo-h3 {
  margin: var(--cabo-space-4) 0 var(--cabo-space-3);
}

.cabo-not-found__card .cabo-link {
  margin-top: var(--cabo-space-4);
}

.cabo-not-found__assistance {
  background: var(--cabo-sand);
  border-block: var(--cabo-border);
}

.cabo-not-found__assistance-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--cabo-space-7);
}

.cabo-not-found__assistance .cabo-h3 {
  margin: 0 0 var(--cabo-space-3);
}

/* Contact page */
.cabo-contact-page__hero {
  background: var(--cabo-paper);
  border-bottom: var(--cabo-border);
}

.cabo-contact-page__hero .cabo-display {
  margin: var(--cabo-space-4) 0 var(--cabo-space-5);
}

.cabo-contact-page .cabo-contact-grid__intro > p:not(.cabo-label) {
  color: var(--cabo-muted);
}

.cabo-contact-page__form-note {
  margin: var(--cabo-space-4) 0 0;
  color: var(--cabo-muted);
}

.cabo-contact-page__coverage {
  background: var(--cabo-sand);
  border-block: var(--cabo-border);
}

.cabo-contact-page__coverage .cabo-h3 {
  margin: var(--cabo-space-3) 0 var(--cabo-space-4);
}

@media (max-width: 767px) {
  .cabo-page__advisory,
  .cabo-not-found__search {
    padding: var(--cabo-space-5);
  }

  .cabo-not-found__search-row {
    grid-template-columns: minmax(0, 1fr);
  }

  .cabo-not-found__search-row .cabo-btn {
    width: 100%;
  }

  .cabo-not-found__assistance-inner {
    align-items: flex-start;
    flex-direction: column;
  }
}

/* --------------------------------------------------------------------------
   Guides hub template
   -------------------------------------------------------------------------- */
.cabo-guides-hub {
  color: var(--cabo-ink-2);
  background: var(--cabo-paper);
}

.cabo-guides-hub__hero {
  padding-block: clamp(48px, 6vw, 80px);
  background: var(--cabo-paper);
  border-bottom: var(--cabo-border);
}

.cabo-guides-hub__hero-inner {
  max-width: var(--cabo-measure-prose);
}

.cabo-guides-hub__hero .cabo-display {
  margin: var(--cabo-space-3) 0 var(--cabo-space-4);
}

.cabo-guides-hub__hero .cabo-lead {
  margin: 0;
  color: var(--cabo-ink-2);
}

.cabo-guides-hub__market {
  border-bottom: var(--cabo-border);
}

.cabo-guides-hub__market-heading {
  display: flex;
  align-items: center;
  gap: var(--cabo-space-4);
  margin-bottom: var(--cabo-space-6);
}

.cabo-guides-hub__market-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 48px;
  height: 48px;
  color: var(--cabo-gold-deep);
  background: var(--cabo-gold-tint);
  border-radius: var(--cabo-radius-0);
}

.cabo-guides-hub__market-heading .cabo-label {
  margin-bottom: var(--cabo-space-1);
}

.cabo-guides-hub__market-heading .cabo-h2 {
  margin: 0;
}

.cabo-guides-hub__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--cabo-space-7) var(--cabo-space-6);
}

.cabo-guides-hub__card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.cabo-guides-hub__card-media {
  position: relative;
  display: block;
  aspect-ratio: 4 / 3;
  max-height: 420px;
  overflow: hidden;
  background: var(--cabo-stone);
}

.cabo-guides-hub__card-image {
  width: 100%;
  height: 100%;
  max-height: 420px;
  object-fit: cover;
  transition: transform var(--cabo-dur-slow) var(--cabo-ease);
}

.cabo-guides-hub__card:hover .cabo-guides-hub__card-image {
  transform: scale(1.03);
}

.cabo-guides-hub__card-body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  padding-top: var(--cabo-space-4);
}

.cabo-guides-hub__card .cabo-label {
  margin-bottom: var(--cabo-space-2);
}

.cabo-guides-hub__card .cabo-h3 {
  margin: 0 0 var(--cabo-space-2);
  font-size: var(--cabo-text-h3);
  line-height: var(--cabo-leading-tight);
}

.cabo-guides-hub__card .cabo-h3 a {
  color: var(--cabo-ink);
  text-decoration: none;
}

.cabo-guides-hub__card .cabo-h3 a:hover,
.cabo-guides-hub__card .cabo-h3 a:focus-visible {
  color: var(--cabo-gold-deep);
}

.cabo-guides-hub__card-desc {
  margin: 0 0 var(--cabo-space-4);
  color: var(--cabo-ink-2);
  line-height: var(--cabo-leading-normal);
}

.cabo-guides-hub__card .cabo-link {
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}

.cabo-guides-hub__empty {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--cabo-space-4);
  padding: var(--cabo-space-6) 0;
  background: transparent;
  border: 0;
}

.cabo-guides-hub__empty p {
  max-width: 56ch;
  margin: 0;
  color: var(--cabo-ink-2);
  line-height: var(--cabo-leading-normal);
}

.cabo-guides-hub__services {
  background: var(--cabo-sand);
}

@media (max-width: 1024px) {
  .cabo-guides-hub__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--cabo-space-6) var(--cabo-space-5);
  }
}

@media (max-width: 767px) {
  .cabo-guides-hub .cabo-guides-hub__market {
    padding-block: var(--cabo-space-5);
  }

  .cabo-guides-hub__market-heading {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--cabo-space-1);
    margin-bottom: var(--cabo-space-3);
  }

  .cabo-guides-hub__market-icon {
    width: 32px;
    height: 32px;
  }

  .cabo-guides-hub__market-heading .cabo-h2 {
    font-size: var(--cabo-text-h3);
  }

  .cabo-guides-hub__market-action .cabo-link {
    min-height: 36px;
    font-size: var(--cabo-text-small);
  }

  .cabo-guides-hub__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--cabo-space-4) var(--cabo-space-3);
  }

  .cabo-guides-hub__card-body {
    padding: var(--cabo-space-2) 0 0;
  }

  .cabo-guides-hub__card .cabo-label {
    display: none;
    margin: 0;
  }

  .cabo-guides-hub__card .cabo-h3 {
    font-size: var(--cabo-text-small);
    line-height: var(--cabo-leading-snug);
    margin: 0 0 var(--cabo-space-1);
  }

  .cabo-guides-hub__card-desc {
    display: none;
    margin: 0;
  }

  .cabo-guides-hub__card .cabo-link {
    font-size: var(--cabo-text-small);
    min-height: 36px;
  }

  .cabo-guides-hub__empty {
    padding: var(--cabo-space-2) 0;
    gap: var(--cabo-space-2);
  }

  .cabo-guides-hub .cabo-guides-hub__services {
    padding-block: var(--cabo-space-5);
  }

  .cabo-guides-hub__services .cabo-section-intro {
    margin-bottom: var(--cabo-space-4);
  }

  .cabo-guides-hub__services .cabo-cols {
    gap: var(--cabo-space-3);
  }

  .cabo-guides-hub__services .cabo-col {
    padding-top: var(--cabo-space-3);
  }

  .cabo-guides-hub__services .cabo-col__icon {
    width: 28px;
    height: 28px;
    margin-bottom: var(--cabo-space-2);
  }

  .cabo-guides-hub__services .cabo-h3 {
    font-size: var(--cabo-text-body);
    margin-bottom: var(--cabo-space-2);
  }

  .cabo-guides-hub__services .cabo-link {
    min-height: 36px;
    font-size: var(--cabo-text-small);
  }
}

/* --------------------------------------------------------------------------
   Single guide template
   -------------------------------------------------------------------------- */
.cabo-guide-page {
  color: var(--cabo-ink-2);
  background: var(--cabo-paper);
}


.cabo-guide-page__glance {
  background: var(--cabo-sand);
  border-bottom: var(--cabo-border);
}

.cabo-guide-page__glance-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr));
}

.cabo-guide-page__fact {
  min-width: 0;
  padding: var(--cabo-space-6) var(--cabo-space-5);
  border-left: var(--cabo-border);
}

.cabo-guide-page__fact:first-child {
  border-left: 0;
}

.cabo-guide-page__fact strong,
.cabo-guide-page__fact span {
  display: block;
}

.cabo-guide-page__fact strong {
  margin-bottom: var(--cabo-space-2);
  color: var(--cabo-ink);
  font-weight: 500;
  font-variant-numeric: lining-nums;
}

.cabo-guide-page__story,
.cabo-guide-page__editorial {
  background: var(--cabo-white);
  border-bottom: var(--cabo-border);
}

.cabo-guide-page__prose {
  max-width: var(--cabo-measure-prose);
}

.cabo-guide-page__prose .cabo-h2 {
  margin: var(--cabo-space-3) 0 var(--cabo-space-5);
}

.cabo-guide-page__split {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  gap: var(--cabo-space-8);
  align-items: center;
}

.cabo-guide-page__split--reverse {
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
}

.cabo-guide-page__split-copy {
  min-width: 0;
}

.cabo-guide-page__split-copy .cabo-h2 {
  margin: var(--cabo-space-3) 0 var(--cabo-space-5);
}

.cabo-guide-page__split-media {
  min-width: 0;
  overflow: hidden;
  background: var(--cabo-sand);
  border: var(--cabo-border);
}

.cabo-guide-page__split-image {
  display: block;
  width: 100%;
  height: 100%;
  max-height: 480px;
  object-fit: cover;
}

.cabo-guide-page__location {
  background: var(--cabo-paper);
  border-bottom: var(--cabo-border);
}

.cabo-guide-page__location-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
  gap: var(--cabo-space-8);
  align-items: start;
}

.cabo-guide-page__location-copy {
  min-width: 0;
}

.cabo-guide-page__table-wrap {
  margin-top: var(--cabo-space-6);
  max-width: 100%;
}

.cabo-guide-page__table {
  width: 100%;
  max-width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
}

.cabo-guide-page__table th,
.cabo-guide-page__table td {
  padding: var(--cabo-space-3) var(--cabo-space-4);
  border-bottom: var(--cabo-border);
  text-align: left;
  word-break: break-word;
  overflow-wrap: break-word;
}

@media (max-width: 767px) {
  .cabo-guide-page__table th,
  .cabo-guide-page__table td {
    padding: var(--cabo-space-2) var(--cabo-space-3);
  }
}

.cabo-guide-page__table thead th {
  color: var(--cabo-ink);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  background: var(--cabo-sand);
}

.cabo-guide-page__table tbody th {
  color: var(--cabo-ink);
  font-weight: 500;
}

.cabo-guide-page__map-slot {
  display: flex;
  flex-direction: column;
  gap: var(--cabo-space-4);
  min-width: 0;
}

.cabo-guide-page__map-figure {
  overflow: hidden;
  background: var(--cabo-sand);
  border: var(--cabo-border);
}

.cabo-guide-page__map-image {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
  background: var(--cabo-white);
}

.cabo-guide-page__map-action {
  display: flex;
  align-items: center;
  gap: var(--cabo-space-3);
  padding: var(--cabo-space-4) var(--cabo-space-5);
  background: var(--cabo-sand);
  border: var(--cabo-border);
  transition: border-color var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-guide-page__map-action:hover {
  border-color: var(--cabo-line-strong);
}

.cabo-guide-page__map-action .cabo-icon {
  color: var(--cabo-gold-deep);
  flex-shrink: 0;
}

.cabo-guide-page__map-action .cabo-h3 {
  margin: 0 0 var(--cabo-space-1);
  color: var(--cabo-ink);
}

.cabo-guide-page__faq {
  background: var(--cabo-white);
  border-bottom: var(--cabo-border);
}

.cabo-guide-page__faq-inner {
  max-width: 720px;
  margin-inline: auto;
}

.cabo-guide-page__faq-inner > .cabo-h2 {
  margin: var(--cabo-space-3) 0 var(--cabo-space-6);
}

.cabo-guide-page__faq-list {
  border-top: 1px solid var(--cabo-line);
}

.cabo-guide-page__faq-item {
  border-bottom: 1px solid var(--cabo-line);
}

.cabo-guide-page__faq-item summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--cabo-space-4);
  min-height: 56px;
  padding: var(--cabo-space-4) 0;
  color: var(--cabo-ink);
  cursor: pointer;
  list-style: none;
}

.cabo-guide-page__faq-item summary::-webkit-details-marker {
  display: none;
}

.cabo-guide-page__faq-item summary .cabo-icon {
  flex: 0 0 auto;
  color: var(--cabo-gold-deep);
  transition: transform var(--cabo-dur) var(--cabo-ease);
}

.cabo-guide-page__faq-item[open] summary .cabo-icon {
  transform: rotate(180deg);
}

.cabo-guide-page__faq-answer {
  max-width: 68ch;
  padding-bottom: var(--cabo-space-5);
  color: var(--cabo-ink-2);
}

.cabo-guide-page__faq-answer p {
  margin: 0;
}

.cabo-guide-page__listings {
  background: var(--cabo-sand);
  border-bottom: var(--cabo-border);
}

.cabo-guide-page__listing-map {
  display: flex;
  align-items: center;
  gap: var(--cabo-space-4);
  margin-top: var(--cabo-space-7);
  padding: var(--cabo-space-5);
  background: var(--cabo-white);
  border: var(--cabo-border);
}

.cabo-guide-page__listing-map-thumb {
  flex: 0 0 100px;
  max-width: 100px;
  overflow: hidden;
  border: var(--cabo-border);
  background: var(--cabo-sand);
}

.cabo-guide-page__listing-map-img {
  display: block;
  width: 100%;
  height: 68px;
  object-fit: cover;
}

.cabo-guide-page__listing-map .cabo-icon {
  color: var(--cabo-gold-deep);
}

.cabo-guide-page__listing-map .cabo-h3 {
  margin: 0 0 var(--cabo-space-1);
}

.cabo-guide-page__download {
  background: var(--cabo-white);
  border-bottom: var(--cabo-border);
}

.cabo-guide-page__download-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 420px);
  gap: var(--cabo-space-8);
  align-items: start;
}

.cabo-guide-page__download-grid .cabo-h2 {
  margin: var(--cabo-space-3) 0 var(--cabo-space-4);
}

.cabo-guide-page__download-preview {
  margin-top: var(--cabo-space-6);
  max-width: 320px;
  overflow: hidden;
  border: var(--cabo-border);
  background: var(--cabo-sand);
}

.cabo-guide-page__download-thumb {
  display: block;
  width: 100%;
  height: auto;
  max-height: 220px;
  object-fit: cover;
}

.cabo-guide-page__download-form,
.cabo-guide-page__download-action {
  padding: var(--cabo-space-6);
  background: var(--cabo-sand);
  border: 0;
  border-top: 2px solid var(--cabo-gold);
  border-radius: 0;
  box-shadow: none;
}

.cabo-guide-page__download-action {
  display: flex;
  flex-direction: column;
  gap: var(--cabo-space-4);
}

.cabo-guide-page__download-form .cabo-form-group {
  margin-bottom: var(--cabo-space-4);
}

.cabo-guide-page__download-form .cabo-btn,
.cabo-guide-page__download-action .cabo-btn {
  width: 100%;
  margin-top: var(--cabo-space-2);
}

.cabo-guide-page__related {
  background: var(--cabo-paper);
}

.cabo-guide-page__related-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr));
  gap: var(--cabo-space-6);
}

.cabo-guide-page__related-card {
  display: flex;
  flex-direction: column;
  gap: var(--cabo-space-3);
  min-width: 0;
  padding: var(--cabo-space-6);
  background: var(--cabo-white);
  border: var(--cabo-border);
  transition: border-color var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-guide-page__related-card:hover {
  border-color: var(--cabo-line-strong);
}

.cabo-guide-page__related-media {
  overflow: hidden;
  border: var(--cabo-border);
  background: var(--cabo-sand);
}

.cabo-guide-page__related-thumb {
  display: block;
  width: 100%;
  height: 160px;
  object-fit: cover;
  transition: transform var(--cabo-dur) var(--cabo-ease);
}

.cabo-guide-page__related-card:hover .cabo-guide-page__related-thumb {
  transform: scale(1.03);
}

.cabo-guide-page__related-icon {
  display: inline-flex;
  color: var(--cabo-gold-deep);
}

.cabo-guide-page__related-card .cabo-label {
  margin: 0;
}

.cabo-guide-page__related-card .cabo-h3 {
  margin: 0;
}

.cabo-guide-page__related-card .cabo-h3 a {
  color: var(--cabo-ink);
  text-decoration: none;
}

.cabo-guide-page__related-card .cabo-h3 a:hover {
  color: var(--cabo-gold-deep);
}

.cabo-guide-page__related-card .cabo-link {
  margin-top: auto;
}

@media (max-width: 1023px) {
  .cabo-guide-page__split,
  .cabo-guide-page__split--reverse,
  .cabo-guide-page__location-grid,
  .cabo-guide-page__download-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--cabo-space-6);
  }

  .cabo-guide-page__split--reverse .cabo-guide-page__split-copy {
    order: 1;
  }

  .cabo-guide-page__split--reverse .cabo-guide-page__split-media {
    order: 2;
  }
}

@media (max-width: 767px) {
  .cabo-guide-page__glance-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .cabo-guide-page__fact,
  .cabo-guide-page__fact:first-child {
    border-top: var(--cabo-border);
    border-left: 0;
  }

  .cabo-guide-page__fact:first-child {
    border-top: 0;
  }

  .cabo-guide-page__download-form,
  .cabo-guide-page__download-action {
    padding: var(--cabo-space-5);
  }
}

@media (prefers-reduced-motion: reduce) {
  .cabo-guide-page__faq-item[open] summary .cabo-icon {
    transform: none;
  }
}

/* ==========================================================================
   Communities Index Page (/communities/)
   ========================================================================== */

.cabo-communities-index {
  color: var(--cabo-ink-2);
  background: var(--cabo-paper);
}

.cabo-communities-index__hero {
  padding-block: clamp(48px, 6vw, 80px);
  background: var(--cabo-paper);
  border-bottom: var(--cabo-border);
}

.cabo-communities-index__hero-inner {
  max-width: var(--cabo-measure-prose);
}

.cabo-communities-index__hero .cabo-display {
  margin: var(--cabo-space-3) 0 var(--cabo-space-4);
}

.cabo-communities-index__hero .cabo-lead {
  margin: 0;
  color: var(--cabo-ink-2);
}

/* Category Quick Navigation Bar */
.cabo-communities-index__nav {
  position: sticky;
  top: var(--cabo-header-h, 0);
  z-index: 10;
  background: var(--cabo-paper);
  border-bottom: var(--cabo-border);
  padding-block: var(--cabo-space-3);
}

.cabo-communities-index__nav-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--cabo-space-2) var(--cabo-space-3);
}

.cabo-communities-index__nav-link {
  display: inline-flex;
  align-items: center;
  gap: var(--cabo-space-2);
  min-height: 44px;
  padding: var(--cabo-space-2) var(--cabo-space-4);
  color: var(--cabo-ink);
  background: var(--cabo-white);
  border: var(--cabo-border);
  text-decoration: none;
  transition: color var(--cabo-dur-fast) var(--cabo-ease),
    background var(--cabo-dur-fast) var(--cabo-ease),
    border-color var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-communities-index__nav-link:hover,
.cabo-communities-index__nav-link:focus-visible {
  color: var(--cabo-gold-deep);
  background: var(--cabo-gold-tint);
  border-color: var(--cabo-gold-deep);
}

.cabo-communities-index__nav-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--cabo-gold-deep);
}

/* Category Sections */
.cabo-communities-index__market {
  border-bottom: var(--cabo-border);
  scroll-margin-top: calc(var(--cabo-header-h, 0) + 60px);
}

.cabo-communities-index__market-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--cabo-space-5);
  margin-bottom: var(--cabo-space-6);
}

.cabo-communities-index__market-title-wrap {
  display: flex;
  align-items: center;
  gap: var(--cabo-space-4);
}

.cabo-communities-index__market-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 48px;
  height: 48px;
  color: var(--cabo-gold-deep);
  background: var(--cabo-gold-tint);
  border-radius: var(--cabo-radius-1);
}

.cabo-communities-index__market-heading .cabo-label {
  margin-bottom: var(--cabo-space-1);
}

.cabo-communities-index__market-heading .cabo-h2 {
  margin: 0;
}

.cabo-communities-index__market-intro {
  max-width: 46ch;
  margin: 0;
  color: var(--cabo-muted);
}

/* Communities Grid */
.cabo-communities-index__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--cabo-space-7) var(--cabo-space-6);
}

@media (max-width: 1024px) {
  .cabo-communities-index__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--cabo-space-6) var(--cabo-space-5);
  }
}

@media (max-width: 640px) {
  .cabo-communities-index__grid {
    grid-template-columns: 1fr;
    gap: var(--cabo-space-6);
  }
}

.cabo-communities-index__card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.cabo-communities-index__card--col {
  border-top: 1px solid var(--cabo-line-strong);
  padding-top: var(--cabo-space-5);
}

.cabo-communities-index__card-media {
  position: relative;
  display: block;
  aspect-ratio: 4 / 3;
  max-height: 420px;
  overflow: hidden;
  background: var(--cabo-stone);
}

.cabo-communities-index__card-image {
  width: 100%;
  height: 100%;
  max-height: 420px;
  object-fit: cover;
  transition: transform var(--cabo-dur-slow) var(--cabo-ease);
}

.cabo-communities-index__card--photo:hover .cabo-communities-index__card-image {
  transform: scale(1.03);
}

.cabo-communities-index__card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--cabo-space-2);
  padding: 0;
}

.cabo-communities-index__card-header .cabo-col__icon {
  margin-bottom: 0;
}

.cabo-communities-index__card-icon {
  display: inline-grid;
  place-items: center;
  width: 40px;
  height: 40px;
  color: var(--cabo-gold-deep);
  background: transparent;
}

.cabo-communities-index__card-meta {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--cabo-space-2);
  margin-bottom: var(--cabo-space-2);
}

.cabo-communities-index__card-count {
  display: inline-flex;
  align-items: center;
  padding: 0;
  font-size: var(--cabo-text-small);
  color: var(--cabo-muted);
  background: transparent;
}

.cabo-communities-index__card-body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  padding: var(--cabo-space-4) 0 0;
}

.cabo-communities-index__card-body .cabo-label {
  margin-bottom: var(--cabo-space-2);
}

.cabo-communities-index__card-body .cabo-h3 {
  margin: 0 0 var(--cabo-space-3);
  font-size: var(--cabo-text-h3);
  line-height: var(--cabo-leading-tight);
}

.cabo-communities-index__card-body .cabo-h3 a {
  color: var(--cabo-ink);
  text-decoration: none;
}

.cabo-communities-index__card-body .cabo-h3 a:hover,
.cabo-communities-index__card-body .cabo-h3 a:focus-visible {
  color: var(--cabo-gold-deep);
}

.cabo-communities-index__card-desc {
  margin: 0 0 var(--cabo-space-4);
  color: var(--cabo-muted);
  line-height: var(--cabo-leading-normal);
}

.cabo-communities-index__card-body .cabo-link {
  margin-top: auto;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

@media (max-width: 767px) {
  .cabo-communities-index .cabo-communities-index__market {
    padding-block: var(--cabo-space-5);
  }

  .cabo-communities-index__market-heading {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--cabo-space-1);
    margin-bottom: var(--cabo-space-3);
  }

  .cabo-communities-index__market-icon {
    width: 32px;
    height: 32px;
  }

  .cabo-communities-index__market-heading .cabo-h2 {
    font-size: var(--cabo-text-h3);
  }

  .cabo-communities-index__market-action .cabo-link {
    min-height: 36px;
    font-size: var(--cabo-text-small);
  }

  .cabo-communities-index__card-body {
    padding-top: var(--cabo-space-2);
  }

  .cabo-communities-index__card-body .cabo-h3 {
    font-size: var(--cabo-text-h4);
    margin-bottom: var(--cabo-space-1);
  }

  .cabo-communities-index__card-body .cabo-h3 a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
  }

  .cabo-communities-index__card-desc {
    display: none;
  }

  .cabo-communities-index__card-body .cabo-link {
    min-height: 44px;
    font-size: var(--cabo-text-small);
  }

  .cabo-communities-index .cabo-communities-index__services {
    padding-block: var(--cabo-space-5);
  }

  .cabo-communities-index__service-grid {
    gap: var(--cabo-space-3);
  }

  .cabo-communities-index__service {
    padding-top: var(--cabo-space-3);
  }
}

/* Empty State */
.cabo-communities-index__empty {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--cabo-space-4);
  padding: var(--cabo-space-6) 0;
  background: transparent;
  border: 0;
}

.cabo-communities-index__empty p {
  max-width: 54ch;
  margin: 0;
  color: var(--cabo-muted);
}

.cabo-communities-index__empty-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--cabo-space-3);
  margin-top: var(--cabo-space-2);
}

/* Bottom Services and Resource Section */
.cabo-communities-index__services {
  background: var(--cabo-white);
}

.cabo-communities-index__service-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr));
  gap: var(--cabo-space-5);
  margin-top: var(--cabo-space-6);
}

.cabo-communities-index__service {
  display: flex;
  flex-direction: column;
  padding-top: var(--cabo-space-5);
  padding-inline: 0;
  padding-bottom: 0;
  background: transparent;
  border: 0;
  border-top: 1px solid var(--cabo-line-strong);
  text-decoration: none;
  color: var(--cabo-ink);
  box-shadow: none;
}

.cabo-communities-index__service:hover,
.cabo-communities-index__service:focus-visible {
  border-color: var(--cabo-line-strong);
  box-shadow: none;
}

.cabo-communities-index__service .cabo-h3 {
  margin: var(--cabo-space-4) 0 var(--cabo-space-2);
}

.cabo-communities-index__service p {
  margin: 0 0 var(--cabo-space-4);
  color: var(--cabo-muted);
  line-height: 1.5;
}

.cabo-communities-index__service .cabo-link {
  margin-top: auto;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

/* Responsive adjustments */
@media (max-width: 767px) {
  .cabo-communities-index__market-action .cabo-link {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
  }

  .cabo-communities-index__nav {
    position: static;
    padding-block: var(--cabo-space-2);
  }

  .cabo-communities-index__nav-inner {
    flex-wrap: nowrap;
    max-width: 100%;
    overflow-x: auto;
    padding-bottom: var(--cabo-space-1);
    scroll-padding-inline: var(--cabo-space-2);
    overscroll-behavior-inline: contain;
    scroll-snap-type: inline proximity;
    scrollbar-width: thin;
  }

  .cabo-communities-index__nav-link {
    flex: 0 0 auto;
    white-space: nowrap;
    scroll-snap-align: start;
  }

  .cabo-communities-index__market-heading {
    flex-direction: column;
  }
}

/* ==========================================================================
   Blog Hub & Archive Templates (.cabo-blog-hub)
   ========================================================================== */

.cabo-blog-hub {
  background: var(--cabo-paper);
  min-height: 100vh;
  padding-bottom: var(--cabo-section);
}

.cabo-blog-hub__header {
  background: var(--cabo-cream);
  border-bottom: var(--cabo-border);
  padding-top: var(--cabo-section-tight);
  padding-bottom: var(--cabo-space-7);
}

.cabo-blog-hub__header-content {
  max-width: 820px;
}

.cabo-blog-hub__title {
  margin: var(--cabo-space-3) 0 var(--cabo-space-4);
  color: var(--cabo-ink);
}

.cabo-blog-hub__lead {
  color: var(--cabo-muted);
  margin: 0 0 var(--cabo-space-6);
  max-width: 680px;
}

/* Category Filter Chips */
.cabo-blog-hub__filters {
  margin-top: var(--cabo-space-6);
  padding-top: var(--cabo-space-4);
  border-top: var(--cabo-border);
}

.cabo-blog-hub__chips {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--cabo-space-2) var(--cabo-space-3);
  list-style: none;
  margin: 0;
  padding: 0;
}

.cabo-blog-hub__chip-item {
  display: inline-flex;
}

.cabo-blog-hub__chip {
  display: inline-flex;
  align-items: center;
  padding: var(--cabo-space-2) var(--cabo-space-4);
  background: var(--cabo-white);
  border: var(--cabo-border);
  border-radius: var(--cabo-radius-1);
  color: var(--cabo-ink);
  letter-spacing: 0.04em;
  text-decoration: none;
  transition: background-color var(--cabo-dur-fast) var(--cabo-ease),
    border-color var(--cabo-dur-fast) var(--cabo-ease),
    color var(--cabo-dur-fast) var(--cabo-ease);
  min-height: 44px;
}

.cabo-blog-hub__chip:hover {
  background: var(--cabo-sand);
  border-color: var(--cabo-line-strong);
  color: var(--cabo-ink);
}

.cabo-blog-hub__chip--active {
  background: var(--cabo-ink);
  border-color: var(--cabo-ink);
  color: var(--cabo-white);
}

.cabo-blog-hub__chip--active:hover {
  background: var(--cabo-ink-hover);
  border-color: var(--cabo-ink-hover);
  color: var(--cabo-white);
}

@media (max-width: 767px) {
  .cabo-blog-hub__chips {
    flex-wrap: nowrap;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    padding-bottom: var(--cabo-space-1);
    scroll-padding-inline: var(--cabo-space-2);
    overscroll-behavior-inline: contain;
    scroll-snap-type: inline proximity;
    scrollbar-width: thin;
  }

  .cabo-blog-hub__chip-item,
  .cabo-blog-hub__chip {
    flex: 0 0 auto;
    white-space: nowrap;
    scroll-snap-align: start;
  }

  .cabo-article__header .cabo-badge--category {
    min-width: 44px;
    min-height: 44px;
    justify-content: center;
  }
}

/* Featured Editorial Story Card */
.cabo-blog-hub__featured-section {
  padding-top: var(--cabo-section-tight);
  padding-bottom: var(--cabo-space-7);
}

.cabo-featured-post {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--cabo-space-6);
  background: var(--cabo-white);
  border: var(--cabo-border);
  box-shadow: var(--cabo-shadow-float);
  overflow: hidden;
}

@media (min-width: 900px) {
  .cabo-featured-post {
    grid-template-columns: 1.2fr 1fr;
    gap: 0;
  }
}

.cabo-featured-post__media {
  position: relative;
  min-height: 280px;
  background: var(--cabo-sand);
}

.cabo-featured-post__media-link {
  display: block;
  width: 100%;
  height: 100%;
}

.cabo-featured-post__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.cabo-featured-post__body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: var(--cabo-space-6) var(--cabo-space-7);
}

@media (min-width: 1024px) {
  .cabo-featured-post__body {
    padding: var(--cabo-space-8) var(--cabo-space-8);
  }
}

.cabo-featured-post__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--cabo-space-2);
  margin-bottom: var(--cabo-space-4);
  color: var(--cabo-muted);
}

.cabo-featured-post__dot {
  color: var(--cabo-faint);
}

.cabo-featured-post__title {
  margin: 0 0 var(--cabo-space-4);
  line-height: 1.15;
}

.cabo-featured-post__title a {
  color: var(--cabo-ink);
  text-decoration: none;
  transition: color var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-featured-post__title a:hover {
  color: var(--cabo-gold-deep);
}

.cabo-featured-post__excerpt {
  margin-bottom: var(--cabo-space-6);
  color: var(--cabo-muted);
  line-height: 1.6;
}

.cabo-featured-post__footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--cabo-space-4);
  padding-top: var(--cabo-space-4);
  border-top: var(--cabo-border);
  margin-top: auto;
}

.cabo-post-byline__team {
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--cabo-muted);
}

.cabo-featured-post__cta {
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}

/* Post Grid */
.cabo-blog-hub__grid-section {
  padding-top: var(--cabo-space-6);
  padding-bottom: var(--cabo-section-tight);
}

.cabo-post-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--cabo-space-6);
}

@media (min-width: 640px) {
  .cabo-post-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .cabo-post-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: var(--cabo-space-7) var(--cabo-space-6);
  }
}

/* Post Card Component */
.cabo-post-card {
  display: flex;
  flex-direction: column;
  background: var(--cabo-white);
  border: var(--cabo-border);
  transition: border-color var(--cabo-dur-fast) var(--cabo-ease),
              box-shadow var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-post-card:hover {
  border-color: var(--cabo-line-strong);
  box-shadow: var(--cabo-shadow-float);
}

.cabo-post-card__media {
  position: relative;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--cabo-sand);
}

.cabo-post-card__media-link {
  display: block;
  width: 100%;
  height: 100%;
}

.cabo-post-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--cabo-dur) var(--cabo-ease);
  display: block;
}

.cabo-post-card:hover .cabo-post-card__img {
  transform: scale(1.03);
}

/* Card Brand Mark (subtle bottom-right mark over post photo) */
.cabo-post-card__brand-mark {
  position: absolute;
  inset: auto 0 0 0;
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
  padding: var(--cabo-space-4);
  background: linear-gradient(
    180deg,
    transparent 0%,
    color-mix(in srgb, var(--cabo-ink) 25%, transparent) 35%,
    color-mix(in srgb, var(--cabo-ink) 72%, transparent) 100%
  );
  pointer-events: none;
  z-index: 2;
}

.cabo-post-card__brand-mark-picture {
  display: inline-flex;
  align-items: flex-end;
}

.cabo-post-card__brand-mark-img {
  display: block;
  height: 18px;
  width: auto;
  max-width: 140px;
  object-fit: contain;
  pointer-events: none;
  filter: drop-shadow(0 1px 3px color-mix(in srgb, var(--cabo-ink) 65%, transparent));
}

@media (max-width: 767px) {
  .cabo-post-card__brand-mark {
    padding: var(--cabo-space-3);
  }

  .cabo-post-card__brand-mark-img {
    height: 16px;
    max-width: 120px;
  }
}

/* Designed Fallback Media Variant (when post has no image) */
.cabo-post-card__fallback {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: var(--cabo-sand);
  border-bottom: var(--cabo-border);
  position: relative;
  padding: var(--cabo-space-5);
  text-align: center;
}

.cabo-post-card__fallback-watermark {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  letter-spacing: 0.25em;
  color: var(--cabo-line-strong);
  opacity: 0.35;
  pointer-events: none;
  user-select: none;
}

.cabo-post-card__fallback-badge {
  display: inline-block;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--cabo-gold-deep);
  border: var(--cabo-border);
  background: var(--cabo-white);
  padding: var(--cabo-space-1) var(--cabo-space-3);
  margin-bottom: var(--cabo-space-3);
  position: relative;
  z-index: 1;
}

.cabo-post-card__fallback-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--cabo-gold);
  position: relative;
  z-index: 1;
}

.cabo-post-card__body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  padding: var(--cabo-space-6);
}

.cabo-post-card__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--cabo-space-2);
  margin-bottom: var(--cabo-space-3);
  color: var(--cabo-muted);
}

.cabo-post-card__category {
  color: var(--cabo-gold-deep);
  text-decoration: none;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.cabo-post-card__category:hover {
  text-decoration: underline;
}

.cabo-post-card__dot {
  color: var(--cabo-faint);
}

.cabo-post-card__title {
  margin: 0 0 var(--cabo-space-3);
  line-height: 1.25;
}

.cabo-post-card__title a {
  color: var(--cabo-ink);
  text-decoration: none;
  transition: color var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-post-card__title a:hover {
  color: var(--cabo-gold-deep);
}

.cabo-post-card__excerpt {
  margin: 0 0 var(--cabo-space-5);
  color: var(--cabo-muted);
  line-height: 1.55;
  flex: 1 1 auto;
}

.cabo-post-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: var(--cabo-space-3);
  border-top: var(--cabo-border);
  color: var(--cabo-muted);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

/* Pagination */
.cabo-pagination {
  margin-top: var(--cabo-space-8);
  display: flex;
  justify-content: center;
}

.cabo-pagination .page-numbers {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--cabo-space-2);
  list-style: none;
  margin: 0;
  padding: 0;
}

.cabo-pagination a.page-numbers,
.cabo-pagination span.page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  padding: var(--cabo-space-2) var(--cabo-space-3);
  background: var(--cabo-white);
  border: var(--cabo-border);
  border-radius: var(--cabo-radius-1);
  color: var(--cabo-ink);
  text-decoration: none;
  transition: background-color var(--cabo-dur-fast) var(--cabo-ease),
    border-color var(--cabo-dur-fast) var(--cabo-ease),
    color var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-pagination a.page-numbers:hover {
  background: var(--cabo-sand);
  border-color: var(--cabo-line-strong);
}

.cabo-pagination .page-numbers.current {
  background: var(--cabo-ink);
  border-color: var(--cabo-ink);
  color: var(--cabo-white);
}

.cabo-blog-hub__cta-section {
  padding-top: var(--cabo-space-6);
  padding-bottom: var(--cabo-space-8);
}

.cabo-blog-hub__empty {
  padding: var(--cabo-space-9) 0;
  text-align: center;
}

.cabo-blog-hub__empty-box {
  max-width: 580px;
  margin: 0 auto;
  padding: var(--cabo-space-8);
  background: var(--cabo-white);
  border: var(--cabo-border);
}

.cabo-blog-hub__empty-box h2 {
  margin: 0 0 var(--cabo-space-3);
}

.cabo-blog-hub__empty-box p {
  color: var(--cabo-muted);
  margin: 0 0 var(--cabo-space-6);
}

.cabo-blog-hub__empty-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--cabo-space-3);
}

/* ==========================================================================
   Single Post Reading Template (.cabo-post-page)
   ========================================================================== */

.cabo-post-page {
  background: var(--cabo-paper);
  min-height: 100vh;
}

/* ==========================================================================
   Editorial Blog Post Layout (.cabo-post-page)
   ========================================================================== */

/* Post Hero Meta */
.cabo-article__hero-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--cabo-space-2);
  margin-top: var(--cabo-space-4);
  font-size: var(--cabo-text-small);
  color: var(--cabo-sand);
}

.cabo-page-hero--no-image .cabo-article__hero-meta {
  color: var(--cabo-muted);
}

.cabo-article__hero-meta .cabo-article__meta-sep {
  opacity: 0.6;
}

.cabo-article__hero-meta .cabo-article__byline-label {
  color: inherit;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-size: var(--cabo-text-label);
}

.cabo-article__hero-meta .cabo-article__byline-name {
  color: var(--cabo-white);
  font-weight: 500;
}

.cabo-page-hero--no-image .cabo-article__hero-meta .cabo-article__byline-name {
  color: var(--cabo-ink);
}

/* Phone Hero Constraint (70svh max with text at bottom) */
@media (max-width: 767px) {
  .cabo-post-page .cabo-page-hero--tall {
    min-height: min(360px, 70svh);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding-top: var(--cabo-space-7);
    padding-bottom: var(--cabo-space-6);
  }
}

/* Mobile Collapsible TOC (< 1024px) */
.cabo-article__toc-mobile {
  display: block;
  margin-top: var(--cabo-space-4);
  margin-bottom: var(--cabo-space-6);
  padding: var(--cabo-space-4) 0;
  border-top: var(--cabo-border);
  border-bottom: var(--cabo-border);
  background: transparent;
}

.cabo-article__toc-mobile-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  list-style: none;
  font-size: var(--cabo-text-label);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--cabo-ink);
  user-select: none;
  min-height: 44px;
}

.cabo-article__toc-mobile-summary::-webkit-details-marker {
  display: none;
}

.cabo-article__toc-mobile .cabo-toc__nav {
  margin-top: var(--cabo-space-4);
}

.cabo-article__toc-mobile-icon {
  display: inline-flex;
  transition: transform var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-article__toc-mobile[open] .cabo-article__toc-mobile-icon {
  transform: rotate(180deg);
}

@media (min-width: 1024px) {
  .cabo-article__toc-mobile {
    display: none;
  }
}

/* Article Reading Layout */
.cabo-article__layout-container {
  padding-top: var(--cabo-space-5);
  padding-bottom: var(--cabo-space-6);
}

.cabo-article__layout {
  display: flex;
  flex-direction: column;
  width: 100%;
}

@media (min-width: 1024px) {
  .cabo-article__layout {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: flex-start;
    gap: var(--cabo-space-7);
    max-width: 1008px;
    margin-inline: auto;
  }

  .cabo-article__layout--no-toc {
    max-width: 720px;
  }
}

/* Sticky Aside: Table of Contents Sidebar (Desktop >= 1024px) */
.cabo-article__sidebar {
  display: none;
}

@media (min-width: 1024px) {
  .cabo-article__sidebar {
    display: block;
    flex: 0 0 240px;
    width: 240px;
    position: sticky;
    top: calc(var(--cabo-header-h) + 32px);
    max-height: calc(100vh - var(--cabo-header-h) - 64px);
    overflow-y: auto;
  }
}

.cabo-toc {
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
}

.cabo-toc__eyebrow {
  margin-bottom: var(--cabo-space-4);
  font-size: var(--cabo-text-label);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--cabo-muted);
}

.cabo-toc__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--cabo-space-3);
  border-left: 1px solid var(--cabo-line);
}

.cabo-toc__item {
  position: relative;
  margin-left: -1px;
}

.cabo-toc__link {
  color: var(--cabo-muted);
  text-decoration: none;
  font-size: var(--cabo-text-small);
  line-height: 1.45;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  box-sizing: border-box;
  padding-left: var(--cabo-space-3);
  border-left: 2px solid transparent;
  transition: color var(--cabo-dur-fast) var(--cabo-ease),
              border-color var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-toc__link:hover,
.cabo-toc__link:focus-visible {
  color: var(--cabo-ink);
  border-left-color: var(--cabo-line-strong);
}

.cabo-toc__link.is-active {
  color: var(--cabo-ink);
  font-weight: 500;
  border-left-color: var(--cabo-gold);
}

.cabo-toc__footer {
  margin-top: var(--cabo-space-5);
  padding-top: var(--cabo-space-4);
  border-top: var(--cabo-border);
}

/* Reading Column (Strict ~720px, 68-72ch) */
.cabo-reading-column {
  width: 100%;
  max-width: 720px;
  min-width: 0;
  color: var(--cabo-ink-2);
  font-size: var(--cabo-text-lead);
  line-height: 1.65;
}

@media (min-width: 1024px) {
  .cabo-reading-column {
    flex: 1 1 720px;
    width: 720px;
  }
}

.cabo-reading-column > p,
.cabo-reading-column p {
  font-size: var(--cabo-text-lead);
  line-height: 1.65;
  margin-top: 0;
  margin-bottom: var(--cabo-space-3);
}

@media (max-width: 767px) {
  .cabo-reading-column > p,
  .cabo-reading-column p {
    font-size: var(--cabo-text-price);
  }
}

/* Headings inside Article */
.cabo-reading-column h2 {
  font-size: var(--cabo-text-h3);
  font-weight: 400;
  line-height: 1.1;
  color: var(--cabo-ink);
  margin-top: var(--cabo-space-7);
  margin-bottom: var(--cabo-space-3);
  scroll-margin-top: calc(var(--cabo-header-h) + 24px);
}

.cabo-reading-column h3 {
  font-size: var(--cabo-text-h4);
  font-weight: 500;
  line-height: 1.3;
  color: var(--cabo-ink);
  margin-top: var(--cabo-space-5);
  margin-bottom: var(--cabo-space-2);
  scroll-margin-top: calc(var(--cabo-header-h) + 24px);
}

/* Inline Links */
.cabo-reading-column p a:not(.cabo-link),
.cabo-reading-column li a:not(.cabo-link) {
  color: var(--cabo-ink);
  text-decoration: underline;
  text-decoration-color: var(--cabo-gold);
  text-decoration-thickness: 1px;
  text-underline-offset: var(--cabo-space-1);
  transition: color var(--cabo-dur-fast) var(--cabo-ease), text-decoration-color var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-reading-column p a:not(.cabo-link):hover,
.cabo-reading-column p a:not(.cabo-link):focus-visible,
.cabo-reading-column li a:not(.cabo-link):hover,
.cabo-reading-column li a:not(.cabo-link):focus-visible {
  color: var(--cabo-ink);
  text-decoration-color: var(--cabo-ink);
}

/* Lists */
.cabo-reading-column ul,
.cabo-reading-column ol {
  margin-top: 0;
  margin-bottom: var(--cabo-space-6);
  padding-left: var(--cabo-space-6);
}

.cabo-reading-column li {
  margin-bottom: var(--cabo-space-2);
  line-height: 1.65;
}

/* Blockquotes */
.cabo-reading-column blockquote {
  margin: var(--cabo-space-7) 0;
  padding: var(--cabo-space-4) var(--cabo-space-6);
  background: transparent;
  border-left: 3px solid var(--cabo-gold);
}

.cabo-reading-column blockquote p {
  font-style: italic;
  font-size: var(--cabo-text-lead);
  line-height: 1.6;
  color: var(--cabo-ink);
  margin: 0;
}

/* Tables (Horizontal scroll inside wrapper on mobile, thin lines, no zebra) */
.cabo-table-wrap {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin: var(--cabo-space-6) 0;
}

.cabo-table-wrap table,
.cabo-reading-column table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
  margin: 0;
  background: transparent;
  border: 1px solid var(--cabo-line);
}

.cabo-reading-column th,
.cabo-reading-column td {
  border: 1px solid var(--cabo-line);
  padding: var(--cabo-space-3) var(--cabo-space-4);
  text-align: left;
  background: transparent;
}

.cabo-reading-column th {
  color: var(--cabo-ink);
  font-weight: 500;
  font-size: var(--cabo-text-small);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  border-bottom: 2px solid var(--cabo-line-strong);
}

.cabo-reading-column td {
  color: var(--cabo-ink-2);
  font-size: var(--cabo-text-small);
  line-height: 1.5;
}

.cabo-reading-column td a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}

/* Step 5a: One-line Team Note */
.cabo-article__team-note {
  margin-top: var(--cabo-space-7);
  padding-top: var(--cabo-space-5);
  border-top: var(--cabo-border);
  display: flex;
  flex-direction: column;
  gap: var(--cabo-space-4);
  background: transparent;
  box-shadow: none;
}

@media (min-width: 768px) {
  .cabo-article__team-note {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: var(--cabo-space-6);
  }
}

.cabo-article__team-note-copy {
  flex: 1 1 auto;
}

.cabo-article__team-note-copy .cabo-label {
  margin-bottom: var(--cabo-space-1);
}

.cabo-article__team-note-text {
  margin: 0;
  color: var(--cabo-muted);
  font-size: var(--cabo-text-small);
  line-height: 1.5;
}

.cabo-article__team-note-action {
  flex: 0 0 auto;
}

.cabo-article__team-note-action .cabo-btn {
  white-space: nowrap;
}

/* Step 5b: Related Articles Section */
.cabo-article__related-posts {
  background: transparent;
  border-top: var(--cabo-border);
  padding-top: var(--cabo-space-7);
  padding-bottom: var(--cabo-space-7);
}

/* Step 5c: Featured Properties Section */
.cabo-article__related-listings {
  background: transparent;
  border-top: var(--cabo-border);
  padding-top: var(--cabo-space-7);
  padding-bottom: var(--cabo-space-7);
}

.cabo-article__listings-footer {
  margin-top: var(--cabo-space-5);
}

/* Step 5d: Related Guides / Resources */
.cabo-post-page .cabo-related-links-section {
  background: transparent;
  border-top: var(--cabo-border);
  padding-top: var(--cabo-space-7);
  padding-bottom: var(--cabo-space-7);
}

.cabo-post-page .cabo-related-link-card {
  background: transparent;
  border: none;
  border-top: var(--cabo-border);
  box-shadow: none;
  padding: var(--cabo-space-4) 0;
  border-radius: 0;
}

.cabo-post-page .cabo-related-link-card:hover {
  transform: none;
  box-shadow: none;
  border-top-color: var(--cabo-line-strong);
}

/* Step 5e: Bottom Consultation CTA */
.cabo-article__cta-section {
  background: transparent;
  border-top: var(--cabo-border);
  padding-top: var(--cabo-space-7);
  padding-bottom: var(--cabo-space-8);
}

.cabo-post-page .cabo-guides-callout {
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
}

/* Zero shadows and no filled backgrounds in cabo-post-page */
.cabo-post-page .cabo-post-card {
  background: transparent;
  border: none;
  border-top: var(--cabo-border);
  box-shadow: none;
  padding-top: var(--cabo-space-4);
}

.cabo-post-page .cabo-post-card:hover {
  box-shadow: none;
  transform: none;
}

.cabo-post-page .cabo-property-card,
.cabo-post-page .cabo-card {
  background: transparent;
  box-shadow: none;
}

.cabo-post-page .cabo-property-card:hover,
.cabo-post-page .cabo-card:hover {
  box-shadow: none;
}

@media (min-width: 1024px) {
  .cabo-post-page .cabo-listing-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.cabo-article__guides-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--cabo-space-6);
}

@media (min-width: 640px) {
  .cabo-article__guides-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .cabo-article__guides-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* Guide Card Component */
.cabo-guide-card {
  display: flex;
  flex-direction: column;
  background: var(--cabo-paper);
  border: var(--cabo-border);
  transition: border-color var(--cabo-dur-fast) var(--cabo-ease),
              box-shadow var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-guide-card:hover {
  border-color: var(--cabo-line-strong);
  box-shadow: var(--cabo-shadow-float);
}

.cabo-guide-card__media {
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--cabo-sand);
}

.cabo-guide-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform var(--cabo-dur) var(--cabo-ease);
}

.cabo-guide-card:hover .cabo-guide-card__img {
  transform: scale(1.03);
}

.cabo-guide-card__body {
  padding: var(--cabo-space-6);
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
}

.cabo-guide-card__title {
  margin: var(--cabo-space-2) 0 var(--cabo-space-3);
  line-height: 1.25;
}

.cabo-guide-card__title a {
  color: var(--cabo-ink);
  text-decoration: none;
}

.cabo-guide-card__excerpt {
  color: var(--cabo-muted);
  line-height: 1.55;
  margin: 0 0 var(--cabo-space-5);
  flex: 1 1 auto;
}

.cabo-guide-card__link {
  font-weight: 500;
  margin-top: auto;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

.cabo-article__cta-section {
  padding-bottom: var(--cabo-space-10);
}

/* ==========================================================================
   Legal Document Layout (.cabo-legal-page)
   ========================================================================== */

.cabo-legal-page {
  background: var(--cabo-paper);
  min-height: 100vh;
}

.cabo-legal-page__header {
  background: var(--cabo-cream);
  border-bottom: var(--cabo-border);
  padding-top: var(--cabo-section-tight);
  padding-bottom: var(--cabo-space-7);
}

.cabo-legal-page__breadcrumb {
  margin-bottom: var(--cabo-space-4);
}

.cabo-legal-page__heading-block {
  max-width: 820px;
  margin-top: var(--cabo-space-4);
}

.cabo-legal-page__title {
  margin: var(--cabo-space-2) 0 var(--cabo-space-4);
  color: var(--cabo-ink);
  line-height: 1.15;
}

.cabo-legal-page__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--cabo-space-2);
  color: var(--cabo-muted);
}

.cabo-legal-page__meta-sep {
  color: var(--cabo-faint);
}

.cabo-legal-page__body {
  padding-top: var(--cabo-space-8);
  padding-bottom: var(--cabo-section);
}

.cabo-legal-page__layout {
  display: flex;
  flex-direction: column;
  width: 100%;
}

@media (min-width: 1024px) {
  .cabo-legal-page__layout {
    flex-direction: row;
    justify-content: center;
    align-items: flex-start;
    gap: var(--cabo-space-8);
    max-width: 1008px;
    margin-inline: auto;
  }

  .cabo-legal-page__layout--no-toc {
    max-width: 700px;
  }
}

.cabo-legal-page__sidebar {
  display: none;
}

@media (min-width: 1024px) {
  .cabo-legal-page__sidebar {
    display: block;
    flex: 0 0 240px;
    width: 240px;
    position: sticky;
    top: calc(var(--cabo-header-h) + 32px);
    max-height: calc(100vh - var(--cabo-header-h) - 64px);
    overflow-y: auto;
  }
}

.cabo-legal-page__content {
  width: 100%;
  max-width: 700px;
  min-width: 0;
}

.cabo-legal-page__content > p,
.cabo-legal-page__content p {
  font-size: var(--cabo-text-lead);
  line-height: var(--cabo-leading-relaxed);
  color: var(--cabo-ink-2);
}

.cabo-legal-page__content h2 {
  scroll-margin-top: calc(var(--cabo-header-h) + 32px);
}

.cabo-legal-page__content h2.cabo-legal-page__part-title,
.cabo-legal-page__content h2:is([id*="part-1"], [id*="part-2"]) {
  font-size: var(--cabo-text-h1);
  font-weight: 400;
  line-height: var(--cabo-leading-tight);
  color: var(--cabo-ink);
  margin-top: var(--cabo-space-8);
  margin-bottom: var(--cabo-space-4);
}

.cabo-legal-page__content ol,
.cabo-legal-page__content ul {
  padding-left: var(--cabo-space-6);
  margin-bottom: var(--cabo-space-6);
  color: var(--cabo-ink-2);
  line-height: var(--cabo-leading-normal);
}

.cabo-legal-page__content li {
  margin-bottom: var(--cabo-space-2);
}

.cabo-legal-page hr,
.cabo-reading-column hr {
  border: 0;
  border-top: 1px solid var(--cabo-line);
  margin: var(--cabo-space-8) 0;
}

.cabo-legal-page__advisory-box {
  margin-top: var(--cabo-space-9);
  padding-top: var(--cabo-space-7);
  background: transparent;
  border: 0;
  border-top: 1px solid var(--cabo-line);
  border-radius: 0;
  box-shadow: none;
  display: flex;
  flex-direction: column;
  gap: var(--cabo-space-4);
  align-items: flex-start;
}

@media (min-width: 640px) {
  .cabo-legal-page__advisory-box {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: var(--cabo-space-6);
  }
}

.cabo-legal-page__advisory-box p {
  margin: 0;
}

.cabo-legal-brokerage {
  margin-top: var(--cabo-space-9);
  padding: var(--cabo-space-6) 0 0;
  background: transparent;
  border: 0;
  border-top: 2px solid var(--cabo-gold);
  border-radius: 0;
  box-shadow: none;
}

.cabo-legal-brokerage__title {
  margin: 0 0 var(--cabo-space-4);
}

.cabo-legal-brokerage__details p {
  margin: 0 0 var(--cabo-space-2);
  color: var(--cabo-ink-2);
  font-size: var(--cabo-text-small);
  line-height: var(--cabo-leading-relaxed);
}

.cabo-legal-brokerage__details p:last-child {
  margin-bottom: 0;
}

.cabo-legal-brokerage__details a {
  color: var(--cabo-ink);
  text-decoration: underline;
}

.cabo-legal-page__advisory-box p {
  margin: var(--cabo-space-2) 0 var(--cabo-space-4);
  color: var(--cabo-muted);
}

/* ==========================================================================
   About Page Layout (.cabo-about-page)
   ========================================================================== */

.cabo-about-page {
  background: var(--cabo-paper);
}

/* ==========================================================================
   Uniform Page Hero System (PH2)
   Left aligned, tall / compact, one scrim, all inner pages
   ========================================================================== */

.cabo-page-hero {
  position: relative;
  display: flex;
  align-items: center;
  box-sizing: border-box;
  width: 100%;
  background-color: var(--cabo-ink);
  color: var(--cabo-white);
  overflow: hidden;
}

/* Variants: Tall & Compact */
.cabo-page-hero--tall {
  min-height: 560px;
  padding-block: var(--cabo-space-9) var(--cabo-space-8);
}

.cabo-page-hero--compact {
  min-height: 420px;
  padding-block: var(--cabo-space-8) var(--cabo-space-7);
}

/* No-image variant */
.cabo-page-hero--no-image {
  background-color: var(--cabo-sand);
  color: var(--cabo-ink);
  border-bottom: var(--cabo-border);
}

/* Hero image */
.cabo-page-hero__image,
.cabo-page-hero > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  z-index: 0;
}

/* Unified Scrim: left-to-right dark gradient + light bottom fade */
.cabo-page-hero__scrim {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(
      90deg,
      color-mix(in srgb, var(--cabo-ink) 88%, transparent) 0%,
      color-mix(in srgb, var(--cabo-ink) 80%, transparent) 38%,
      color-mix(in srgb, var(--cabo-ink) 55%, transparent) 65%,
      color-mix(in srgb, var(--cabo-ink) 25%, transparent) 100%
    ),
    linear-gradient(
      180deg,
      transparent 0%,
      transparent 60%,
      color-mix(in srgb, var(--cabo-ink) 65%, transparent) 100%
    );
  pointer-events: none;
}

/* Content Container - left aligned on container edge */
.cabo-page-hero__content {
  position: relative;
  z-index: 2;
  box-sizing: border-box;
  text-align: left;
}

/* Max text width ~640px on all child elements, strictly left aligned */
.cabo-page-hero__breadcrumbs,
.cabo-page-hero__eyebrow,
.cabo-page-hero__title,
.cabo-page-hero__lead,
.cabo-page-hero__actions,
.cabo-page-hero__after,
.cabo-page-hero .cabo-breadcrumbs,
.cabo-page-hero .cabo-label,
.cabo-page-hero .cabo-eyebrow,
.cabo-page-hero h1,
.cabo-page-hero .cabo-lead {
  max-width: 640px;
  margin-left: 0;
  margin-right: auto;
  text-align: left;
}

/* Headings get a little more room than body copy, still a fixed measure. */
.cabo-page-hero__title,
.cabo-page-hero h1 {
  max-width: 780px;
}

/* Breadcrumbs */
.cabo-page-hero__breadcrumbs {
  margin-bottom: var(--cabo-space-3);
}

.cabo-page-hero .cabo-breadcrumbs {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--cabo-space-2);
  font-size: var(--cabo-text-label);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.cabo-page-hero .cabo-breadcrumbs a,
.cabo-page-hero .cabo-breadcrumbs span,
.cabo-page-hero .cabo-breadcrumbs li {
  color: var(--cabo-sand);
}

.cabo-page-hero .cabo-breadcrumbs a:hover,
.cabo-page-hero .cabo-breadcrumbs a:focus-visible {
  color: var(--cabo-white);
  text-decoration: underline;
}

.cabo-page-hero--no-image .cabo-breadcrumbs a,
.cabo-page-hero--no-image .cabo-breadcrumbs span,
.cabo-page-hero--no-image .cabo-breadcrumbs li {
  color: var(--cabo-muted);
}

.cabo-page-hero--no-image .cabo-breadcrumbs a:hover,
.cabo-page-hero--no-image .cabo-breadcrumbs a:focus-visible {
  color: var(--cabo-ink);
}

/* Eyebrow */
.cabo-page-hero__eyebrow.cabo-label,
.cabo-page-hero .cabo-label,
.cabo-page-hero .cabo-eyebrow {
  display: block;
  font-size: var(--cabo-text-label);
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--cabo-gold);
  margin: 0 0 var(--cabo-space-3) 0;
}

.cabo-page-hero--no-image .cabo-page-hero__eyebrow.cabo-label,
.cabo-page-hero--no-image .cabo-label,
.cabo-page-hero--no-image .cabo-eyebrow {
  color: var(--cabo-gold-deep);
}

/* Title / H1 */
.cabo-page-hero__title,
.cabo-page-hero h1 {
  margin: 0 0 var(--cabo-space-4) 0;
  font-weight: 400;
  line-height: 1.1;
  color: var(--cabo-white);
  letter-spacing: -0.01em;
}

.cabo-page-hero--tall .cabo-page-hero__title,
.cabo-page-hero--tall h1 {
  font-size: var(--cabo-text-h1);
}

.cabo-page-hero--compact .cabo-page-hero__title,
.cabo-page-hero--compact h1 {
  font-size: var(--cabo-text-h1);
}

.cabo-page-hero--no-image .cabo-page-hero__title,
.cabo-page-hero--no-image h1 {
  color: var(--cabo-ink);
}

/* Lead */
.cabo-page-hero__lead,
.cabo-page-hero .cabo-lead {
  font-size: var(--cabo-text-lead);
  line-height: 1.6;
  color: var(--cabo-sand);
  margin: 0 0 var(--cabo-space-5) 0;
}

.cabo-page-hero--no-image .cabo-page-hero__lead,
.cabo-page-hero--no-image .cabo-lead {
  color: var(--cabo-ink-2);
}

/* Actions */
.cabo-page-hero__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--cabo-space-3);
  margin-top: var(--cabo-space-5);
  margin-bottom: 0;
}

.cabo-page-hero:not(.cabo-page-hero--no-image) .cabo-btn-primary,
.cabo-page-hero:not(.cabo-page-hero--no-image) .cabo-btn--primary,
.cabo-page-hero:not(.cabo-page-hero--no-image) .cabo-btn--cream {
  color: var(--cabo-ink);
  background: var(--cabo-cream);
  border-color: var(--cabo-cream);
}

.cabo-page-hero:not(.cabo-page-hero--no-image) .cabo-btn-primary:hover,
.cabo-page-hero:not(.cabo-page-hero--no-image) .cabo-btn-primary:focus-visible,
.cabo-page-hero:not(.cabo-page-hero--no-image) .cabo-btn--cream:hover,
.cabo-page-hero:not(.cabo-page-hero--no-image) .cabo-btn--cream:focus-visible {
  color: var(--cabo-ink);
  background: var(--cabo-white);
  border-color: var(--cabo-white);
}

.cabo-page-hero:not(.cabo-page-hero--no-image) .cabo-btn-outline,
.cabo-page-hero:not(.cabo-page-hero--no-image) .cabo-btn--outline,
.cabo-page-hero:not(.cabo-page-hero--no-image) .cabo-btn-outline-white,
.cabo-page-hero:not(.cabo-page-hero--no-image) .cabo-btn--light {
  color: var(--cabo-cream);
  background: transparent;
  border-color: color-mix(in srgb, var(--cabo-cream) 70%, transparent);
}

.cabo-page-hero:not(.cabo-page-hero--no-image) .cabo-btn-outline:hover,
.cabo-page-hero:not(.cabo-page-hero--no-image) .cabo-btn-outline:focus-visible,
.cabo-page-hero:not(.cabo-page-hero--no-image) .cabo-btn--outline:hover,
.cabo-page-hero:not(.cabo-page-hero--no-image) .cabo-btn--outline:focus-visible,
.cabo-page-hero:not(.cabo-page-hero--no-image) .cabo-btn-outline-white:hover,
.cabo-page-hero:not(.cabo-page-hero--no-image) .cabo-btn-outline-white:focus-visible,
.cabo-page-hero:not(.cabo-page-hero--no-image) .cabo-btn--light:hover,
.cabo-page-hero:not(.cabo-page-hero--no-image) .cabo-btn--light:focus-visible {
  color: var(--cabo-ink);
  background: var(--cabo-cream);
  border-color: var(--cabo-cream);
}

/* After HTML (e.g. 404 search) */
.cabo-page-hero__after {
  margin-top: var(--cabo-space-5);
}

/* Editorial Intro */
.cabo-about-intro__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--cabo-space-6);
}

@media (min-width: 1024px) {
  .cabo-about-intro__grid {
    grid-template-columns: 1fr 1.2fr;
    gap: var(--cabo-space-10);
    align-items: start;
  }
}

.cabo-about-intro__heading .cabo-label {
  margin-bottom: var(--cabo-space-3);
}

.cabo-about-intro__heading h2 {
  color: var(--cabo-ink);
  line-height: 1.15;
}

/* Services Grid */
.cabo-about-services {
  background: transparent;
}

.cabo-about-services__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--cabo-space-7) var(--cabo-space-6);
  margin-top: var(--cabo-space-8);
}

@media (min-width: 768px) {
  .cabo-about-services__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.cabo-service-card {
  background: transparent;
  border: 0;
  border-top: 1px solid var(--cabo-line-strong);
  padding: var(--cabo-space-5) 0 0;
  display: flex;
  flex-direction: column;
}

.cabo-service-card__icon {
  color: var(--cabo-gold-deep);
  margin-bottom: var(--cabo-space-4);
  line-height: 1;
}

.cabo-service-card h3 {
  color: var(--cabo-ink);
  margin: 0 0 var(--cabo-space-3);
  line-height: 1.25;
}

.cabo-service-card p {
  color: var(--cabo-muted);
  line-height: 1.55;
  margin: 0 0 var(--cabo-space-6);
  flex: 1 1 auto;
}

.cabo-service-card__link {
  margin-top: auto;
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: var(--cabo-space-2);
}

/* Approach Section */
.cabo-about-approach__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--cabo-space-6);
  margin-top: var(--cabo-space-8);
}

@media (min-width: 768px) {
  .cabo-about-approach__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.cabo-about-approach {
  background: transparent;
}

.cabo-about-approach__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--cabo-space-7) var(--cabo-space-6);
  margin-top: var(--cabo-space-8);
}

@media (min-width: 768px) {
  .cabo-about-approach__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.cabo-about-approach__card {
  background: transparent;
  border: 0;
  border-top: 1px solid var(--cabo-line-strong);
  padding: var(--cabo-space-5) 0 0;
  position: relative;
}

.cabo-about-approach__card h3 {
  color: var(--cabo-ink);
  margin: 0 0 var(--cabo-space-3);
  line-height: 1.25;
}

.cabo-about-approach__card p {
  color: var(--cabo-muted);
  line-height: 1.55;
  margin: 0;
}

/* Coverage Grid */
.cabo-about-coverage {
  background: transparent;
}

.cabo-about-coverage__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--cabo-space-7) var(--cabo-space-6);
  margin-top: var(--cabo-space-8);
}

@media (min-width: 640px) {
  .cabo-about-coverage__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .cabo-about-coverage__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.cabo-coverage-card {
  background: transparent;
  border: 0;
  border-top: 1px solid var(--cabo-line-strong);
  padding: var(--cabo-space-5) 0 0;
  display: flex;
  flex-direction: column;
}

.cabo-coverage-card h3 {
  color: var(--cabo-ink);
  margin: 0 0 var(--cabo-space-2);
}

.cabo-coverage-card p {
  color: var(--cabo-muted);
  line-height: 1.5;
  margin: 0 0 var(--cabo-space-4);
  flex: 1 1 auto;
}

.cabo-coverage-card__link {
  color: var(--cabo-gold-deep);
  text-decoration: none;
  font-weight: 500;
  margin-top: auto;
}

.cabo-coverage-card__link:hover,
.cabo-coverage-card__link:focus-visible {
  text-decoration: underline;
}

.cabo-col__details {
  margin: 0;
}

.cabo-col__summary {
  list-style: none;
  display: block;
  cursor: pointer;
}

.cabo-col__summary::-webkit-details-marker {
  display: none;
}

.cabo-col__text {
  margin: 0;
}

.cabo-col__more {
  cursor: pointer;
  color: var(--cabo-gold-deep);
  font-weight: 500;
  font-size: var(--cabo-text-small);
  min-height: 44px;
  min-width: 44px;
  display: inline-flex;
  align-items: center;
}

.cabo-col__more:hover,
.cabo-col__more:focus-visible {
  text-decoration: underline;
}

@media (min-width: 768px) {
  .cabo-col__summary {
    cursor: default;
  }

  .cabo-col__more {
    display: none;
  }
}

@media (max-width: 767px) {
  .cabo-col__details[data-mobile-collapse]:not([open]) .cabo-col__text {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  .cabo-col__details[data-mobile-collapse][open] .cabo-col__text {
    display: block;
  }

  .cabo-col__details[data-mobile-collapse][open] .cabo-col__more,
  .cabo-col__details[data-no-collapse] .cabo-col__more {
    display: none;
  }

  .cabo-col__details[data-no-collapse] .cabo-col__summary {
    cursor: default;
  }
}

/* CTA Row */
.cabo-about-cta__inner {
  padding-top: var(--cabo-space-8);
  border-top: 1px solid var(--cabo-line-strong);
  display: flex;
  flex-direction: column;
  gap: var(--cabo-space-6);
}

@media (min-width: 1024px) {
  .cabo-about-cta__inner {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }

  .cabo-about-cta__content {
    max-width: 600px;
  }
}

.cabo-about-cta__content .cabo-label {
  margin-bottom: var(--cabo-space-3);
}

.cabo-about-cta__content h2 {
  color: var(--cabo-ink);
  margin-bottom: var(--cabo-space-3);
}

.cabo-about-cta__content .cabo-lead {
  color: var(--cabo-muted);
  margin: 0;
}

.cabo-about-cta__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--cabo-space-4);
  flex-shrink: 0;
}

/* Listing Disclaimer Component */
.cabo-listing-disclaimer-box {
  margin-top: var(--cabo-space-8);
  padding-top: var(--cabo-space-6);
  border-top: var(--cabo-border);
}

.cabo-listing-disclaimer {
  color: var(--cabo-muted);
  line-height: var(--cabo-leading-normal);
  margin-top: var(--cabo-space-4);
  margin-bottom: 0;
}

.cabo-listing-disclaimer a {
  color: var(--cabo-ink);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.cabo-listing-disclaimer a:hover,
.cabo-listing-disclaimer a:focus-visible {
  color: var(--cabo-gold);
}

/* ==========================================================================
   Site Search Results Template (.cabo-search-page)
   ========================================================================== */

.cabo-search-page {
  background: var(--cabo-paper);
  min-height: 80vh;
}

.cabo-search-page__hero {
  background: var(--cabo-cream);
  border-bottom: var(--cabo-border);
  padding-top: var(--cabo-section-tight);
  padding-bottom: var(--cabo-space-8);
}

.cabo-search-page__header-content {
  max-width: 800px;
}

.cabo-search-page__title {
  margin: var(--cabo-space-3) 0 var(--cabo-space-4);
  color: var(--cabo-ink);
}

.cabo-search-page__query {
  font-style: italic;
  color: var(--cabo-gold);
}

.cabo-search-page__lead {
  margin: 0 0 var(--cabo-space-6);
  color: var(--cabo-muted);
}

.cabo-search-page__form {
  max-width: 640px;
}

.cabo-search-page__form-inner {
  display: flex;
  gap: var(--cabo-space-3);
}

.cabo-search-page__form-inner .cabo-input {
  flex: 1;
  background: var(--cabo-white);
}

.cabo-search-page__main {
  padding-top: var(--cabo-space-8);
  padding-bottom: var(--cabo-section);
}

.cabo-search-results__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--cabo-space-6);
}

@media (min-width: 768px) {
  .cabo-search-results__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1100px) {
  .cabo-search-results__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.cabo-search-card {
  display: flex;
  flex-direction: column;
  background: var(--cabo-white);
  border: var(--cabo-border);
  overflow: hidden;
  transition: transform var(--cabo-dur-fast) ease, box-shadow var(--cabo-dur-fast) ease;
}

.cabo-search-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--cabo-shadow-float);
}

.cabo-search-card__media {
  position: relative;
  aspect-ratio: 16 / 10;
  background: var(--cabo-sand);
  overflow: hidden;
}

.cabo-search-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--cabo-dur) var(--cabo-ease);
}

.cabo-search-card:hover .cabo-search-card__img {
  transform: scale(1.03);
}

.cabo-search-card__placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--cabo-sand);
  color: var(--cabo-muted);
}

.cabo-search-card__monogram {
  letter-spacing: 0.1em;
  color: var(--cabo-gold);
}

.cabo-search-card__body {
  padding: var(--cabo-space-6);
  display: flex;
  flex-direction: column;
  flex: 1;
}

.cabo-search-card__type {
  margin-bottom: var(--cabo-space-2);
  color: var(--cabo-gold);
}

.cabo-search-card__title {
  margin: 0 0 var(--cabo-space-3);
  color: var(--cabo-ink);
  line-height: 1.25;
}

.cabo-search-card__title a {
  color: var(--cabo-ink);
  text-decoration: none;
}

.cabo-search-card__title a:hover,
.cabo-search-card__title a:focus-visible {
  color: var(--cabo-gold);
}

.cabo-search-card__excerpt {
  margin: 0 0 var(--cabo-space-4);
  color: var(--cabo-muted);
  line-height: 1.5;
  flex: 1;
}

.cabo-search-card__footer {
  margin-top: auto;
  padding-top: var(--cabo-space-4);
  border-top: var(--cabo-border);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.cabo-search-card__meta {
  color: var(--cabo-faint);
}

/* Empty State */
.cabo-search-empty {
  padding-top: var(--cabo-space-8);
  padding-bottom: var(--cabo-section);
}

.cabo-search-empty__box {
  background: var(--cabo-white);
  border: var(--cabo-border);
  padding: var(--cabo-space-8);
  text-align: center;
}

@media (min-width: 768px) {
  .cabo-search-empty__box {
    padding: var(--cabo-space-11) var(--cabo-space-10);
  }
}

.cabo-search-empty__icon {
  color: var(--cabo-gold);
  margin-bottom: var(--cabo-space-4);
  display: flex;
  justify-content: center;
}

.cabo-search-empty__box h2 {
  margin: 0 0 var(--cabo-space-3);
  color: var(--cabo-ink);
}

.cabo-search-empty__box .cabo-lead {
  max-width: 60ch;
  margin: 0 auto var(--cabo-space-8);
  color: var(--cabo-muted);
}

.cabo-search-empty__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--cabo-space-6);
  text-align: left;
  margin-bottom: var(--cabo-space-8);
}

@media (min-width: 768px) {
  .cabo-search-empty__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.cabo-search-empty__card {
  display: flex;
  flex-direction: column;
  padding: var(--cabo-space-6);
  background: var(--cabo-sand);
  border: var(--cabo-border);
  text-decoration: none;
  color: inherit;
  transition: transform var(--cabo-dur-fast) ease, border-color var(--cabo-dur-fast) ease;
}

.cabo-search-empty__card:hover,
.cabo-search-empty__card:focus-visible {
  transform: translateY(-2px);
  border-color: var(--cabo-gold);
}

.cabo-search-empty__card-icon {
  color: var(--cabo-gold);
  margin-bottom: var(--cabo-space-3);
}

.cabo-search-empty__card h3 {
  margin: 0 0 var(--cabo-space-2);
  color: var(--cabo-ink);
}

.cabo-search-empty__card p {
  margin: 0 0 var(--cabo-space-4);
  color: var(--cabo-muted);
  line-height: 1.5;
  flex: 1;
}

.cabo-search-empty__card .cabo-link {
  margin-top: auto;
}

.cabo-search-empty__advisory {
  padding-top: var(--cabo-space-8);
  border-top: var(--cabo-border);
  max-width: 600px;
  margin: 0 auto;
}

.cabo-search-empty__advisory h3 {
  margin: 0 0 var(--cabo-space-2);
  color: var(--cabo-ink);
}

.cabo-search-empty__advisory p {
  margin: 0 0 var(--cabo-space-5);
  color: var(--cabo-muted);
}

/* ==========================================================================
   Internal Link Map / Related Links Section (.cabo-related-links-section)
   Style tile v2.1 Section 10 related links list
   ========================================================================== */

.cabo-related-links-section {
  background: transparent;
  border-top: var(--cabo-border);
}

.cabo-related,
.cabo-related-links-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: var(--cabo-space-6);
  border-top: 1px solid var(--cabo-line-strong);
  margin-top: var(--cabo-space-6);
}

.cabo-related a,
.cabo-related-links-grid a,
.cabo-related__link {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 4px 16px;
  align-items: center;
  padding-block: var(--cabo-space-5);
  border-bottom: 1px solid var(--cabo-line);
  background: transparent;
  box-shadow: none;
  border-radius: 0;
  text-decoration: none;
}

.cabo-related a .cabo-label,
.cabo-related-links-grid a .cabo-label {
  grid-column: 1 / -1;
  color: var(--cabo-muted);
}

.cabo-related a b,
.cabo-related-links-grid a b,
.cabo-related__link b {
  font: 500 22px/1.25 var(--cabo-font-display);
  color: var(--cabo-ink);
}

.cabo-related a .cabo-icon,
.cabo-related-links-grid a .cabo-icon,
.cabo-related__link .cabo-icon {
  color: var(--cabo-gold-deep);
  transition: transform var(--cabo-dur) var(--cabo-ease);
}

.cabo-related a:hover .cabo-icon,
.cabo-related-links-grid a:hover .cabo-icon,
.cabo-related__link:hover .cabo-icon {
  transform: translateX(4px);
}

@media (max-width: 900px) {
  .cabo-related,
  .cabo-related-links-grid {
    grid-template-columns: 1fr;
  }
}

/* Mobile content-page rhythm. Keep editorial spacing on larger screens. */
@media (max-width: 767px) {
  .cabo-service-page .cabo-section,
  .cabo-about-page .cabo-section,
  .cabo-post-page .cabo-section {
    padding-block: var(--cabo-space-5);
  }

  .cabo-service-page .cabo-glance-band {
    padding-block: var(--cabo-space-4);
  }

  .cabo-service-page .cabo-glance-band__grid {
    grid-template-columns: 1fr;
    gap: var(--cabo-space-2);
  }

  .cabo-service-page .cabo-glance-band__item {
    padding: var(--cabo-space-2) 0 0;
    border: 0;
    border-top: 1px solid var(--cabo-line);
    background: transparent;
    box-shadow: none;
  }

  .cabo-service-page .cabo-glance-band__item .cabo-stat-val {
    font-size: var(--cabo-text-body);
    display: inline;
    margin: 0;
  }

  .cabo-service-page .cabo-glance-band__icon {
    display: none;
  }

  .cabo-service-page .cabo-timeline__grid.cabo-cols,
  .cabo-service-page .cabo-feature-band__grid.cabo-cols,
  .cabo-about-page .cabo-about-services__grid.cabo-cols,
  .cabo-about-page .cabo-about-approach__grid.cabo-cols,
  .cabo-about-page .cabo-about-coverage__grid.cabo-cols {
    display: flex;
    flex-direction: column;
    gap: var(--cabo-space-2);
  }

  .cabo-service-page .cabo-timeline__card,
  .cabo-service-page .cabo-feature-band__card,
  .cabo-about-page .cabo-service-card,
  .cabo-about-page .cabo-about-approach__card,
  .cabo-about-page .cabo-coverage-card {
    padding: var(--cabo-space-2) 0 0;
    border: 0;
    border-top: 1px solid var(--cabo-line);
    background: transparent;
    box-shadow: none;
  }

  .cabo-service-page .cabo-timeline__card .cabo-col__num,
  .cabo-service-page .cabo-feature-band__card .cabo-col__num,
  .cabo-about-page .cabo-about-approach__card .cabo-col__num {
    float: none;
    display: inline-block;
    font-size: var(--cabo-text-small);
    font-weight: 600;
    color: var(--cabo-gold-deep);
    margin-right: var(--cabo-space-2);
  }

  .cabo-service-page .cabo-timeline__icon,
  .cabo-service-page .cabo-feature-band__icon,
  .cabo-about-page .cabo-service-card__icon,
  .cabo-about-page .cabo-about-approach__card .cabo-col__icon,
  .cabo-about-page .cabo-coverage-card .cabo-col__icon {
    display: none;
  }

  .cabo-service-page .cabo-timeline__card .cabo-h3,
  .cabo-service-page .cabo-feature-band__card .cabo-h3,
  .cabo-about-page .cabo-service-card .cabo-h3,
  .cabo-about-page .cabo-about-approach__card .cabo-h3,
  .cabo-about-page .cabo-coverage-card .cabo-h3 {
    display: inline;
    font-size: var(--cabo-text-body);
    line-height: 1.35;
    margin: 0;
  }

  .cabo-service-page .cabo-cost-cards-mobile {
    display: flex;
    flex-direction: column;
    gap: var(--cabo-space-2);
  }

  .cabo-service-page .cabo-cost-card {
    padding: var(--cabo-space-2) 0;
    background: transparent;
    border: 0;
    border-top: 1px solid var(--cabo-line);
    box-shadow: none;
  }

  .cabo-service-page .cabo-cost-card .cabo-h3 {
    font-size: var(--cabo-text-small);
    margin-bottom: var(--cabo-space-1);
  }

  .cabo-service-page .cabo-cost-card strong {
    font-size: var(--cabo-text-ui);
    color: var(--cabo-gold-deep);
    display: inline-block;
    margin-left: var(--cabo-space-2);
    margin-bottom: 0;
  }

  .cabo-service-page .cabo-cost-card p {
    font-size: var(--cabo-text-ui);
    line-height: 1.45;
    margin: 0;
  }

  .cabo-service-page .cabo-related-grid__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--cabo-space-4);
  }

  .cabo-service-page .cabo-related-card {
    border: 0;
    background: transparent;
    box-shadow: none;
    padding: 0;
  }

  .cabo-service-page .cabo-related-card__media {
    max-height: 180px;
    aspect-ratio: 16 / 9;
    overflow: hidden;
  }

  .cabo-service-page .cabo-related-card__body {
    padding: var(--cabo-space-3) 0 0;
  }

  .cabo-service-page .cabo-guide-split__container {
    display: flex;
    flex-direction: column;
    gap: var(--cabo-space-4);
  }

  .cabo-service-page .cabo-guide-split__media {
    max-height: 180px;
    aspect-ratio: 16 / 9;
    overflow: hidden;
  }

  .cabo-service-page .cabo-guide-split__copy {
    padding: 0;
  }

  .cabo-service-page .cabo-service-intro__aside {
    margin-top: var(--cabo-space-4);
  }

  .cabo-service-page .cabo-service-aside-item {
    gap: var(--cabo-space-2);
    padding: var(--cabo-space-2) 0;
  }

  .cabo-service-page .cabo-service-intro__grid,
  .cabo-service-page .cabo-contact-grid {
    gap: var(--cabo-space-5);
  }

  .cabo-service-page .cabo-service-section-head {
    margin-bottom: var(--cabo-space-5);
  }

  .cabo-service-page .cabo-faq-item summary,
  .cabo-guide-page__faq-item summary {
    min-height: calc(var(--cabo-space-6) + var(--cabo-space-3));
    padding-block: var(--cabo-space-3);
  }

  .cabo-service-page .cabo-inquiry-form,
  .cabo-guide-page__download-form,
  .cabo-guide-page__download-action {
    gap: var(--cabo-space-3);
  }

  .cabo-service-page .cabo-form-group--wide,
  .cabo-service-page .cabo-inquiry-form .cabo-form-group:last-child {
    margin-top: 0;
  }

  .cabo-service-page .cabo-contact-channels {
    margin-top: var(--cabo-space-4);
  }

  .cabo-contact-page__hero .cabo-display {
    margin-bottom: var(--cabo-space-4);
  }

  .cabo-contact-page .cabo-inquiry-section {
    padding-top: var(--cabo-space-6);
  }

  .cabo-contact-page .cabo-contact-grid__intro > p:not(.cabo-label) {
    margin-bottom: var(--cabo-space-3);
  }

  .cabo-contact-page .cabo-inquiry-form .cabo-form-group:last-child {
    display: grid;
    gap: var(--cabo-space-3);
  }

  .cabo-contact-page .cabo-inquiry-form .cabo-form-group:last-child .cabo-btn {
    margin-top: 0;
  }

  .cabo-guides-hub__hero {
    padding-block: var(--cabo-space-7);
  }

  .cabo-guides-hub__market {
    padding-block: var(--cabo-space-7);
  }

  .cabo-guides-hub__market-heading {
    margin-bottom: var(--cabo-space-5);
  }

  .cabo-guides-hub__grid,
  .cabo-guides-hub__service-grid,
  .cabo-guide-page__related-grid {
    gap: var(--cabo-space-4);
  }

  .cabo-guides-hub__card-body,
  .cabo-guides-hub__service,
  .cabo-guide-page__related-card {
    padding: var(--cabo-space-5);
  }

  .cabo-guides-hub a.cabo-link,
  .cabo-guides-hub a,
  .cabo-guide-page__related-card a.cabo-link,
  .cabo-guide-page__related-card a,
  .cabo-guide-page__related a,
  .cabo-blog-hub a.cabo-link,
  .cabo-blog-hub__chip,
  .cabo-blog-hub a.cabo-badge--category {
    min-height: calc(var(--cabo-space-6) + var(--cabo-space-3));
    display: inline-flex;
    align-items: center;
  }


  .cabo-guide-page__story,
  .cabo-guide-page__editorial,
  .cabo-guide-page__location,
  .cabo-guide-page__faq,
  .cabo-guide-page__download,
  .cabo-guide-page__related {
    padding-block: var(--cabo-space-7);
  }

  .cabo-guide-page__split {
    gap: var(--cabo-space-5);
  }

  .cabo-guide-page__split-media {
    aspect-ratio: 16 / 10;
    max-height: none;
  }

  .cabo-guide-page__split-image {
    aspect-ratio: 16 / 10;
    max-height: none;
  }

  .cabo-guide-page__table-wrap,
  .cabo-reading-column table {
    max-width: 100%;
    overflow-x: auto;
  }

  .cabo-guide-page__table {
    min-width: 100%;
    table-layout: auto;
  }

  .cabo-guide-page__download-grid {
    gap: var(--cabo-space-5);
  }

  .cabo-guide-page__download-preview {
    margin-top: var(--cabo-space-4);
    max-width: 100%;
  }

  .cabo-guide-page__download-form,
  .cabo-guide-page__download-action {
    padding: var(--cabo-space-5);
  }

  .cabo-guide-page__download-form .cabo-form-group {
    margin-bottom: var(--cabo-space-3);
  }

  .cabo-guide-page__download-form .cabo-small,
  .cabo-guide-page__download-form .cabo-form-note {
    line-height: 1.55;
  }

  .cabo-page-hero {
    align-items: flex-end;
  }

  .cabo-page-hero--tall {
    min-height: 480px;
    min-height: min(560px, 70svh);
    padding-block: var(--cabo-space-7) var(--cabo-space-6);
  }

  .cabo-page-hero--compact {
    min-height: 360px;
    min-height: min(420px, 50svh);
    padding-block: var(--cabo-space-6) var(--cabo-space-5);
  }

  .cabo-page-hero__actions {
    flex-direction: column;
    align-items: stretch;
  }

  .cabo-page-hero__actions .cabo-btn {
    width: 100%;
    justify-content: center;
  }

  .cabo-about-services .cabo-service-card__link {
    width: 100%;
    justify-content: center;
    padding-inline: var(--cabo-space-4);
    padding-block: var(--cabo-space-2);
    line-height: 1.4;
  }

  .cabo-about-intro,
  .cabo-about-services,
  .cabo-about-approach,
  .cabo-about-coverage,
  .cabo-about-cta {
    padding-block: var(--cabo-space-7);
  }

  .cabo-about-cta__inner {
    gap: var(--cabo-space-5);
  }

  .cabo-about-cta__actions {
    gap: var(--cabo-space-3);
  }

  .cabo-blog-hub__header {
    padding-top: var(--cabo-space-7);
    padding-bottom: var(--cabo-space-5);
  }

  .cabo-blog-hub__filters {
    margin-top: var(--cabo-space-4);
  }

  .cabo-blog-hub__featured-section {
    padding-top: var(--cabo-space-6);
    padding-bottom: var(--cabo-space-5);
  }

  .cabo-featured-post__media {
    min-height: 0;
    aspect-ratio: 16 / 10;
  }

  .cabo-featured-post__body {
    padding: var(--cabo-space-5);
  }

  .cabo-blog-hub__grid-section {
    padding-top: var(--cabo-space-5);
    padding-bottom: var(--cabo-space-7);
  }

  .cabo-post-card__body {
    padding: var(--cabo-space-5);
  }

  .cabo-article__layout-container {
    padding-top: var(--cabo-space-4);
    padding-bottom: var(--cabo-space-7);
  }

  .cabo-reading-column h2 {
    margin-top: var(--cabo-space-7);
  }

  .cabo-reading-column table {
    display: block;
    width: 100%;
    overflow-x: auto;
    white-space: normal;
  }

  .cabo-article__related-posts a.cabo-link {
    min-height: calc(var(--cabo-space-6) + var(--cabo-space-3));
    display: inline-flex;
    align-items: center;
  }
}

/* -----------------------------------------------------------------------------
   Guide Page v2 (Place Page System)
   ----------------------------------------------------------------------------- */

html:has(.cabo-guide-page--v2) {
  scroll-padding-top: calc(var(--cabo-header-h) + 54px);
}

.cabo-guide-page--v2 {
  color: var(--cabo-ink-2);
  background: var(--cabo-paper);
}

.cabo-place-sec {
  padding-block: var(--cabo-section-tight);
  border-bottom: var(--cabo-border);
  background: var(--cabo-paper);
}

.cabo-place-sec--sand {
  background: var(--cabo-sand);
}

.cabo-place-sec--download {
  background: var(--cabo-paper);
}

.cabo-place-sec-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: var(--cabo-space-8);
  margin-bottom: var(--cabo-space-6);
  align-items: end;
}

.cabo-place-sec-head .cabo-h2 {
  margin: var(--cabo-space-2) 0 0;
}

.cabo-place-sec-head__action {
  justify-self: end;
}

.cabo-place-sec-head__prose {
  margin: 0;
}

/* 1. Key Facts Bar */
.cabo-place-facts-wrap {
  position: relative;
  z-index: 2;
  margin-top: -64px;
}

.cabo-place-facts {
  background: var(--cabo-paper);
  border: var(--cabo-border);
  box-shadow: none;
  border-radius: var(--cabo-radius-1);
}

.cabo-place-facts__market {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-bottom: 1px solid var(--cabo-line);
  background: var(--cabo-sand);
}

.cabo-place-facts__market-item {
  padding: var(--cabo-space-5) var(--cabo-space-6);
  min-width: 0;
}

.cabo-place-facts__market-item:nth-child(n+2) {
  border-left: 1px solid var(--cabo-line);
}

.cabo-place-facts__market-item strong {
  display: block;
  font-size: var(--cabo-text-h2);
  font-weight: 500;
  color: var(--cabo-ink);
  line-height: var(--cabo-leading-tight);
  margin-top: var(--cabo-space-1);
  font-variant-numeric: lining-nums;
}

.cabo-place-facts__market-caption {
  grid-column: 1 / -1;
  border-top: 1px solid var(--cabo-line);
  padding: var(--cabo-space-2) var(--cabo-space-6);
  font-size: var(--cabo-text-label);
  color: var(--cabo-muted);
}

.cabo-place-facts__grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.cabo-place-fact {
  display: flex;
  flex-direction: column;
  padding: var(--cabo-space-4) var(--cabo-space-5);
  min-width: 0;
  box-sizing: border-box;
}

.cabo-place-fact:nth-child(n+2) {
  border-left: 1px solid var(--cabo-line);
}

.cabo-place-fact .cabo-label,
.cabo-place-fact__label {
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: var(--cabo-text-label);
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--cabo-muted);
  line-height: 1.3;
}

.cabo-place-fact__icon {
  color: var(--cabo-gold-deep);
  margin-bottom: var(--cabo-space-1);
}

.cabo-place-fact__val {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  text-overflow: ellipsis;
  margin-top: var(--cabo-space-1);
  margin-bottom: 0;
  padding: 0;
  font-size: var(--cabo-text-body);
  font-weight: 500;
  color: var(--cabo-ink);
  line-height: var(--cabo-leading-snug);
  max-height: calc(2 * var(--cabo-leading-snug) * 1em + 1px);
  word-break: break-word;
}

/* 2. Sticky Section Bar */
.cabo-place-secnav {
  position: sticky;
  /* Only sticks after the hero, when the header is already in its scrolled height (+1px border). */
  top: calc(var(--cabo-header-scrolled-h) + 1px);
  z-index: 20;
  width: 100%;
  max-width: 100vw;
  overflow: hidden;
  background: var(--cabo-paper);
  border-bottom: 1px solid var(--cabo-line-strong);
  backdrop-filter: blur(12px);
}

.cabo-place-secnav__inner {
  display: flex;
  align-items: center;
  gap: var(--cabo-space-6);
  min-height: 52px;
  overflow-x: auto;
  scrollbar-width: none;
}

.cabo-place-secnav__inner::-webkit-scrollbar {
  display: none;
}

.cabo-place-nav-chip {
  color: var(--cabo-muted);
  text-decoration: none;
  white-space: nowrap;
  font-size: var(--cabo-text-ui);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding-block: var(--cabo-space-4);
  border-bottom: 2px solid transparent;
  transition: color var(--cabo-dur-fast) var(--cabo-ease), border-color var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-place-nav-chip:hover {
  color: var(--cabo-ink);
}

.cabo-place-nav-chip.is-current {
  color: var(--cabo-ink);
  border-bottom-color: var(--cabo-gold);
}

.cabo-place-secnav__cta {
  margin-left: auto;
  padding-left: var(--cabo-space-4);
}

/* 3. Overview Section */
.cabo-place-split {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  gap: var(--cabo-space-8);
  align-items: start;
}

.cabo-place-split--single {
  grid-template-columns: minmax(0, 1fr);
  max-width: var(--cabo-measure-prose);
}

.cabo-place-split--homes {
  grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.75fr);
  align-items: center;
}

.cabo-place-split--homes.cabo-place-split--single {
  grid-template-columns: minmax(0, 1fr);
  max-width: 100%;
}

.cabo-place-split--homes.cabo-place-split--single .cabo-place-split__main,
.cabo-place-split--homes.cabo-place-split--single .cabo-table-scroll,
.cabo-place-split--homes.cabo-place-split--single table {
  width: 100%;
  max-width: 100%;
}

.cabo-place-split__main,
.cabo-place-split__side {
  min-width: 0;
}

.cabo-place-highlights {
  display: grid;
  gap: var(--cabo-space-3);
  list-style: none;
  padding: 0;
  margin: 0;
}

.cabo-place-highlights li {
  display: flex;
  gap: var(--cabo-space-3);
  align-items: flex-start;
  padding-bottom: var(--cabo-space-3);
  border-bottom: 1px solid var(--cabo-line);
  color: var(--cabo-ink);
  font-size: var(--cabo-text-small);
  line-height: var(--cabo-leading-normal);
}

.cabo-place-highlights__icon {
  color: var(--cabo-gold-deep);
  margin-top: 3px;
  flex-shrink: 0;
}

figure.cabo-place-photo {
  margin: var(--cabo-space-8) 0 0;
}

figure.cabo-place-photo img {
  width: 100%;
  height: auto;
  object-fit: cover;
  display: block;
  border-radius: var(--cabo-radius-1);
}

.cabo-place-photo--16-7 img {
  aspect-ratio: 16 / 7;
}

.cabo-place-photo--21-8 img {
  aspect-ratio: 21 / 8;
}

.cabo-place-photo--3-2 img {
  aspect-ratio: 3 / 2;
}

figure.cabo-place-photo figcaption {
  margin-top: var(--cabo-space-2);
  font-size: var(--cabo-text-ui);
  color: var(--cabo-muted);
}

/* Details Fold Component */
details.cabo-place-more {
  margin-top: var(--cabo-space-5);
  border-top: 1px solid var(--cabo-line);
}

details.cabo-place-more summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 48px;
  cursor: pointer;
  list-style: none;
  color: var(--cabo-ink);
  font-weight: 500;
  font-size: var(--cabo-text-ui);
  letter-spacing: 0.04em;
  padding-block: var(--cabo-space-3);
}

details.cabo-place-more summary::-webkit-details-marker {
  display: none;
}

details.cabo-place-more summary .cabo-icon {
  color: var(--cabo-gold-deep);
  transition: transform var(--cabo-dur) var(--cabo-ease);
}

details.cabo-place-more[open] summary .cabo-icon {
  transform: rotate(180deg);
}

details.cabo-place-more .cabo-place-more__body {
  padding-block: var(--cabo-space-2) var(--cabo-space-4);
  color: var(--cabo-ink-2);
}

/* 4. Location Section */
.cabo-place-distances {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  border-top: 1px solid var(--cabo-line-strong);
  list-style: none;
  padding: 0;
  margin: var(--cabo-space-6) 0 0;
}

.cabo-place-distances li {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--cabo-space-4);
  padding: var(--cabo-space-4) 0;
  border-bottom: 1px solid var(--cabo-line);
  font-size: var(--cabo-text-body);
}

.cabo-place-distances li:nth-child(odd) {
  padding-right: var(--cabo-space-6);
}

.cabo-place-distances li:nth-child(even) {
  padding-left: var(--cabo-space-6);
  border-left: 1px solid var(--cabo-line);
}

.cabo-place-distances b {
  font-size: var(--cabo-text-h4);
  font-weight: 500;
  line-height: var(--cabo-leading-tight);
  color: var(--cabo-ink);
  white-space: nowrap;
  font-variant-numeric: lining-nums;
}

.cabo-place-inside-wrap {
  margin-top: var(--cabo-space-6);
}

.cabo-place-inside-chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--cabo-space-2);
  margin-top: var(--cabo-space-2);
}

.cabo-place-chip {
  display: inline-flex;
  align-items: center;
  gap: var(--cabo-space-2);
  padding: 6px 12px;
  background: var(--cabo-white);
  border: 1px solid var(--cabo-line);
  font-size: var(--cabo-text-ui);
  color: var(--cabo-ink);
  border-radius: var(--cabo-radius-round);
}

.cabo-place-chip .cabo-icon {
  color: var(--cabo-gold-deep);
  flex-shrink: 0;
}

.cabo-place-split--location {
  margin-top: var(--cabo-space-6);
  align-items: start;
}

.cabo-place-split--location .cabo-place-distances {
  grid-template-columns: 1fr;
  margin: 0;
}

.cabo-place-split--location .cabo-place-distances li:nth-child(even) {
  border-left: 0;
  padding-left: 0;
}

.cabo-place-split--location .cabo-place-distances li:nth-child(odd) {
  padding-right: 0;
}

.cabo-place-map-card {
  position: relative;
  display: block;
  border: 1px solid var(--cabo-line);
  background: var(--cabo-sand);
  border-radius: var(--cabo-radius-1);
  overflow: hidden;
  text-decoration: none;
}

.cabo-place-map-card img,
.cabo-place-map-card__img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
}

.cabo-place-map-card span.cabo-btn {
  position: absolute;
  left: 16px;
  bottom: 16px;
}

.cabo-place-map-card--no-img {
  min-height: 220px;
  aspect-ratio: 4 / 3;
  display: flex;
  align-items: center;
  justify-content: center;
}

.cabo-place-map-card--no-img span.cabo-btn {
  position: static;
}

/* 5. Lifestyle Section */
.cabo-place-cols {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--cabo-space-8);
  margin-top: var(--cabo-space-8);
}

.cabo-place-col {
  padding-top: var(--cabo-space-5);
  padding-bottom: 0;
  padding-inline: 0;
  background: transparent;
  border: 0;
  border-top: 1px solid var(--cabo-line);
  border-radius: 0;
}

.cabo-place-col__icon {
  color: var(--cabo-gold-deep);
  margin-bottom: var(--cabo-space-3);
}

.cabo-place-col .cabo-h4 {
  margin: 0 0 var(--cabo-space-2);
  color: var(--cabo-ink);
}

.cabo-place-col p {
  margin: 0;
  font-size: var(--cabo-text-small);
  color: var(--cabo-muted);
  line-height: var(--cabo-leading-normal);
}

.cabo-place-checklist {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: var(--cabo-space-2) var(--cabo-space-6);
  list-style: none;
  padding: 0;
  margin: 0 0 var(--cabo-space-5);
}

.cabo-place-checklist li {
  display: flex;
  align-items: baseline;
  gap: var(--cabo-space-2);
  font-size: var(--cabo-text-small);
  color: var(--cabo-ink-2);
}

.cabo-place-checklist .cabo-icon {
  color: var(--cabo-gold-deep);
  flex-shrink: 0;
}

.cabo-place-subhead {
  margin-bottom: var(--cabo-space-2);
  color: var(--cabo-muted);
}

.cabo-place-prose--spaced {
  margin-top: var(--cabo-space-4);
}

/* 6. Tables & Stack */
.cabo-place-tbl-wrap {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.cabo-place-tbl {
  width: 100%;
  border-collapse: collapse;
  text-align: left;
  font-size: var(--cabo-text-small);
}

.cabo-place-tbl th,
.cabo-place-tbl td {
  padding: var(--cabo-space-4);
  border-bottom: 1px solid var(--cabo-line);
  vertical-align: top;
}

.cabo-place-tbl th {
  font-size: var(--cabo-text-label);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--cabo-muted);
  font-weight: 500;
  border-bottom: 1px solid var(--cabo-line-strong);
}

.cabo-place-tbl td b {
  color: var(--cabo-ink);
  font-weight: 500;
}

/* 7. Callouts (Memberships) */
.cabo-place-callouts {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: var(--cabo-space-5);
  margin-top: var(--cabo-space-6);
}

.cabo-place-callout {
  padding: var(--cabo-space-5);
  background: var(--cabo-sand);
  border: 1px solid var(--cabo-line);
  border-radius: var(--cabo-radius-1);
}

.cabo-place-callout .cabo-label {
  display: block;
  margin-bottom: var(--cabo-space-1);
}

.cabo-place-callout b {
  display: block;
  font-size: var(--cabo-text-h3);
  color: var(--cabo-ink);
  line-height: var(--cabo-leading-tight);
}

.cabo-place-callout__note {
  display: block;
  color: var(--cabo-muted);
  margin-top: var(--cabo-space-1);
}

/* 8. Who it suits */
.cabo-place-suits {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: var(--cabo-space-8);
}

.cabo-place-suits--single {
  grid-template-columns: minmax(0, 1fr);
  max-width: 680px;
}

.cabo-place-homes__note {
  margin-top: var(--cabo-space-3);
  color: var(--cabo-muted);
}

.cabo-place-tbl__source {
  margin-top: var(--cabo-space-2);
  color: var(--cabo-muted);
  font-size: var(--cabo-text-label);
}

.cabo-place-suits__col .cabo-h4 {
  display: flex;
  align-items: center;
  gap: var(--cabo-space-2);
  margin: 0 0 var(--cabo-space-4);
  color: var(--cabo-ink);
}

.cabo-place-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: var(--cabo-radius-round);
  flex-shrink: 0;
}

.cabo-place-mark--yes {
  background: var(--cabo-success);
  color: var(--cabo-white);
}

.cabo-place-mark--no {
  background: var(--cabo-error);
  color: var(--cabo-white);
}

.cabo-place-suits__col ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: var(--cabo-space-3);
}

.cabo-place-suits__col li {
  display: flex;
  gap: var(--cabo-space-2);
  font-size: var(--cabo-text-small);
  line-height: var(--cabo-leading-normal);
}

.cabo-place-suits__col li b {
  display: block;
  color: var(--cabo-ink);
}

.cabo-place-suits__col li span span {
  display: block;
  color: var(--cabo-muted);
}

/* 9. Listings Row */
.cabo-place-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--cabo-space-6);
}

/* 10. Download Section */
.cabo-place-download {
  background: var(--cabo-sand);
  border: 1px solid var(--cabo-line);
  padding: clamp(24px, 4vw, 48px);
  border-radius: var(--cabo-radius-1);
}

.cabo-place-download__grid {
  display: grid;
  grid-template-columns: 200px minmax(0, 1fr);
  gap: var(--cabo-space-8);
  align-items: center;
}

.cabo-place-download__grid--no-media {
  grid-template-columns: minmax(0, 1fr);
}

.cabo-place-download__cover {
  display: block;
  width: 100%;
  height: auto;
  border: 1px solid var(--cabo-line);
  box-shadow: none;
  border-radius: var(--cabo-radius-1);
  object-fit: cover;
}

.cabo-place-download__content .cabo-h3 {
  margin: var(--cabo-space-2) 0 var(--cabo-space-3);
  color: var(--cabo-ink);
}

.cabo-place-download__sub {
  color: var(--cabo-muted);
  margin-bottom: var(--cabo-space-5);
  max-width: 60ch;
}

.cabo-place-download__inputs {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
  gap: var(--cabo-space-3);
  align-items: start; /* error text grows a field downward; the row stays on one line */
}

.cabo-place-download__inputs .cabo-place-download__field {
  margin: 0;
}

.cabo-place-download__inputs .cabo-place-download__field--submit:only-child {
  grid-column: 1 / -1;
}

.cabo-place-download__inputs .cabo-form-input {
  width: 100%;
  margin-bottom: 0;
}

.cabo-place-faq-inner {
  max-width: 720px;
}

/* More neighborhoods section on master guides */
.cabo-more-neighbourhoods {
  border-top: 1px solid var(--cabo-line);
}

.cabo-more-neighbourhoods__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--cabo-space-6);
  border-top: 1px solid var(--cabo-line-strong);
  margin-top: var(--cabo-space-6);
  padding-top: var(--cabo-space-6);
}

.cabo-more-card {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: var(--cabo-space-6);
  background: var(--cabo-paper);
  border: 1px solid var(--cabo-line);
  border-radius: var(--cabo-radius-0);
  min-height: 220px;
  transition: transform var(--cabo-dur) var(--cabo-ease), box-shadow var(--cabo-dur) var(--cabo-ease), border-color var(--cabo-dur) var(--cabo-ease);
}

.cabo-more-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--cabo-shadow-float);
  border-color: var(--cabo-line-strong);
}

.cabo-more-card__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--cabo-space-2);
}

.cabo-more-card__header .cabo-label {
  color: var(--cabo-muted);
}

.cabo-more-card__badge {
  color: var(--cabo-faint);
}

.cabo-more-card__title {
  margin: 0 0 var(--cabo-space-2) 0;
  font: 500 22px/1.25 var(--cabo-font-display);
  color: var(--cabo-ink);
}

.cabo-more-card__title b {
  font-weight: 500;
}

.cabo-more-card__summary {
  margin: 0 0 var(--cabo-space-4) 0;
  color: var(--cabo-muted);
  line-height: var(--cabo-leading-relaxed);
  flex-grow: 1;
}

.cabo-more-card:focus {
  outline: 2px solid var(--cabo-ink);
  outline-offset: 2px;
}

.cabo-more-card__action {
  margin-top: auto;
}

.cabo-more-card__action .cabo-btn {
  width: 100%;
  justify-content: center;
}

.cabo-more-neighbourhoods__actions {
  display: flex;
  justify-content: center;
  margin-top: var(--cabo-space-6);
  padding-top: var(--cabo-space-4);
}

.cabo-more-neighbourhoods__actions[hidden] {
  display: none;
}

.cabo-more-neighbourhoods__toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--cabo-space-2);
  min-height: 44px;
  padding: var(--cabo-space-3) var(--cabo-space-6);
  cursor: pointer;
}

.cabo-more-neighbourhoods__toggle .cabo-icon {
  color: var(--cabo-gold-deep);
  transition: transform var(--cabo-dur) var(--cabo-ease);
}

.cabo-more-neighbourhoods__toggle[aria-expanded="true"] .cabo-icon {
  transform: rotate(180deg);
}

@media (max-width: 900px) {
  .cabo-more-neighbourhoods__grid {
    grid-template-columns: 1fr;
  }
}

.cabo-clamp-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Responsive Overrides */
@media (max-width: 1023px) {
  .cabo-place-split,
  .cabo-place-split--homes {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--cabo-space-6);
  }

  .cabo-place-facts__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .cabo-place-fact:nth-child(3n+1) {
    border-left: 0;
  }

  .cabo-place-fact:nth-child(n+4) {
    border-top: 1px solid var(--cabo-line);
  }
}

@media (max-width: 767px) {
  .cabo-place-facts-wrap {
    margin-top: -48px;
  }

  .cabo-place-facts__market-item {
    padding: var(--cabo-space-4) var(--cabo-space-3);
  }

  .cabo-place-facts__market-item strong {
    font-size: var(--cabo-text-h4);
  }

  .cabo-place-facts__market-caption {
    padding: var(--cabo-space-2) var(--cabo-space-3);
  }

  .cabo-place-facts__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cabo-place-fact:nth-child(n) {
    border-left: 0;
    border-top: 1px solid var(--cabo-line);
    padding: var(--cabo-space-3) var(--cabo-space-4);
  }

  .cabo-place-fact:nth-child(even) {
    border-left: 1px solid var(--cabo-line);
  }

  .cabo-place-fact:nth-child(-n+2) {
    border-top: 0;
  }

  .cabo-place-secnav__cta {
    display: none;
  }

  .cabo-place-sec-head {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--cabo-space-4);
  }

  .cabo-place-sec-head__action {
    justify-self: start;
  }

  .cabo-place-distances {
    grid-template-columns: minmax(0, 1fr);
  }

  .cabo-place-distances li {
    flex-wrap: wrap;
    gap: var(--cabo-space-1) var(--cabo-space-3);
  }

  .cabo-place-distances li:nth-child(n) {
    padding: var(--cabo-space-3) 0;
    border-left: 0;
  }

  .cabo-place-distances b {
    white-space: normal;
    text-align: right;
    font-size: var(--cabo-text-body);
  }

  .cabo-guide-page .cabo-page-hero--tall {
    padding-bottom: 64px;
  }

  .cabo-place-cols,
  .cabo-place-callouts,
  .cabo-place-suits,
  .cabo-place-checklist {
    grid-template-columns: minmax(0, 1fr);
  }

  .cabo-place-cols {
    gap: 0;
  }

  .cabo-place-col {
    background: transparent;
    border: 0;
    border-top: 1px solid var(--cabo-line);
    border-radius: 0;
    padding-block: var(--cabo-space-4);
    padding-inline: 0;
  }

  .cabo-place-cards {
    grid-auto-flow: column;
    grid-auto-columns: 82%;
    grid-template-columns: none;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    padding-bottom: var(--cabo-space-3);
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .cabo-place-cards::-webkit-scrollbar {
    display: none;
  }

  .cabo-place-cards > * {
    scroll-snap-align: start;
  }

  .cabo-place-tbl--stack thead {
    display: none;
  }

  .cabo-place-tbl--stack tbody,
  .cabo-place-tbl--stack tr {
    display: block;
    width: 100%;
  }

  .cabo-place-tbl--stack tr {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 2px 12px;
    padding: var(--cabo-space-3) 0;
    border-bottom: 1px solid var(--cabo-line);
  }

  .cabo-place-tbl--stack td {
    padding: 0;
    border: 0;
  }

  .cabo-place-tbl--stack td:nth-child(3) {
    grid-column: 1 / -1;
    font-size: var(--cabo-text-ui);
    color: var(--cabo-muted);
    margin-top: 4px;
  }

  .cabo-place-download {
    padding: var(--cabo-space-6);
  }

  .cabo-place-download__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--cabo-space-6);
  }

  .cabo-place-download__media {
    max-width: 160px;
    margin-inline: auto;
  }

  .cabo-place-download__inputs {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* --------------------------------------------------------------------------
   PL3: Community Page v2 (Place System)
   -------------------------------------------------------------------------- */
.cabo-community-market-bar-wrap {
  position: relative;
  z-index: 5;
  margin-top: -64px;
}

.cabo-community-market-bar {
  background: var(--cabo-paper);
  border: var(--cabo-border);
  border-radius: var(--cabo-radius-1);
  overflow: hidden;
  box-shadow: none;
}

.cabo-community-market-bar__stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-bottom: 1px solid var(--cabo-line);
  background: var(--cabo-sand);
}

.cabo-community-market-bar__stat {
  padding: var(--cabo-space-4) var(--cabo-space-6);
  min-width: 0;
}

.cabo-community-market-bar__stat:nth-child(n+2) {
  border-left: 1px solid var(--cabo-line);
}

.cabo-community-market-bar__stat strong {
  display: block;
  font-size: var(--cabo-text-h2);
  font-weight: 500;
  color: var(--cabo-ink);
  line-height: var(--cabo-leading-tight);
  margin-top: var(--cabo-space-1);
  font-variant-numeric: lining-nums;
}

.cabo-community-market-bar__types {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--cabo-space-2) var(--cabo-space-3);
  padding: var(--cabo-space-4) var(--cabo-space-6);
  background: var(--cabo-paper);
}

.cabo-chip {
  display: inline-flex;
  align-items: center;
  gap: var(--cabo-space-2);
  min-height: 44px;
  padding: var(--cabo-space-2) var(--cabo-space-4);
  font-size: var(--cabo-text-ui);
  font-weight: 500;
  color: var(--cabo-ink);
  background: var(--cabo-white);
  border: 1px solid var(--cabo-line);
  border-radius: 999px;
  text-decoration: none;
  cursor: pointer;
  transition: border-color var(--cabo-dur) var(--cabo-ease), color var(--cabo-dur) var(--cabo-ease);
}

.cabo-chip:hover,
.cabo-chip:focus-visible {
  border-color: var(--cabo-gold);
  color: var(--cabo-gold-deep);
}

.cabo-chip--map .cabo-icon {
  color: var(--cabo-gold-deep);
}

.cabo-community-page__listing-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--cabo-space-6);
}

.cabo-community-page__mls-disclaimer {
  margin-top: var(--cabo-space-6);
  color: var(--cabo-muted);
}

.cabo-place-sec-head__actions {
  display: flex;
  align-items: center;
  gap: var(--cabo-space-4);
}

.cabo-community-page__highlights-heading {
  margin: var(--cabo-space-6) 0 var(--cabo-space-4);
}

.cabo-community-page__highlights--2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: var(--cabo-space-6);
}

.cabo-community-guide-feature {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  background: var(--cabo-sand);
  border: 1px solid var(--cabo-line);
  border-radius: var(--cabo-radius-1);
  overflow: hidden;
}

.cabo-community-guide-feature__media {
  position: relative;
  min-height: 380px;
}

.cabo-community-guide-feature__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.cabo-community-guide-feature__placeholder {
  position: absolute;
  inset: 0;
  background: var(--cabo-stone);
}

.cabo-community-guide-feature__body {
  padding: clamp(28px, 4vw, 48px);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.cabo-community-guide-feature__body .cabo-h2 {
  margin: var(--cabo-space-2) 0 var(--cabo-space-3);
}

.cabo-community-guide-feature__mini-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--cabo-space-4);
  margin: var(--cabo-space-5) 0 var(--cabo-space-6);
  padding-block: var(--cabo-space-4);
  border-block: 1px solid var(--cabo-line);
}

.cabo-community-guide-feature__mini-facts div:nth-child(n+2) {
  border-left: 1px solid var(--cabo-line);
  padding-left: var(--cabo-space-4);
}

.cabo-community-guide-feature__mini-facts dt {
  color: var(--cabo-muted);
}

.cabo-community-guide-feature__mini-facts dd {
  margin: var(--cabo-space-1) 0 0;
  font-size: var(--cabo-text-h4);
  font-weight: 500;
  color: var(--cabo-ink);
  font-variant-numeric: lining-nums;
}

.cabo-community-guide-feature__actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--cabo-space-4);
}

.cabo-community-neighbourhoods-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: var(--cabo-space-3);
}

.cabo-chip-card {
  display: flex;
  flex-direction: column;
  gap: var(--cabo-space-1);
  padding: var(--cabo-space-3) var(--cabo-space-4);
  background: var(--cabo-white);
  border: 1px solid var(--cabo-line);
  border-radius: var(--cabo-radius-1);
  text-decoration: none;
  transition: border-color var(--cabo-dur) var(--cabo-ease);
}

a.cabo-chip-card:hover,
a.cabo-chip-card:focus-visible {
  border-color: var(--cabo-gold);
}

.cabo-chip-card b {
  color: var(--cabo-ink);
  font-weight: 500;
  font-size: var(--cabo-text-body);
}

.cabo-chip-card span {
  color: var(--cabo-muted);
  font-size: var(--cabo-text-label);
}

.cabo-communities-index__grid--3 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--cabo-space-6);
}

.cabo-community-page__related-label {
  margin: var(--cabo-space-8) 0 var(--cabo-space-4);
}

@media (max-width: 1023px) {
  .cabo-community-page__listing-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cabo-community-guide-feature {
    grid-template-columns: minmax(0, 1fr);
  }

  .cabo-community-guide-feature__media {
    min-height: 260px;
    height: 260px;
  }

  .cabo-communities-index__grid--3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 768px) {
  .cabo-community-market-bar-wrap {
    margin-top: var(--cabo-space-4);
  }

  .cabo-community-market-bar__stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cabo-community-market-bar__stat:nth-child(n) {
    border-left: 0;
    border-top: 1px solid var(--cabo-line);
  }

  .cabo-community-market-bar__stat:nth-child(even) {
    border-left: 1px solid var(--cabo-line);
  }

  .cabo-community-market-bar__stat:nth-child(-n+2) {
    border-top: 0;
  }

  .cabo-community-page__listing-grid {
    grid-auto-flow: column;
    grid-auto-columns: 82%;
    grid-template-columns: none;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    padding-bottom: var(--cabo-space-3);
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .cabo-community-page__listing-grid::-webkit-scrollbar {
    display: none;
  }

  .cabo-community-page__listing-grid > * {
    scroll-snap-align: start;
  }

  .cabo-place-sec-head__actions {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--cabo-space-2);
  }

  .cabo-communities-index__grid--3 {
    grid-template-columns: minmax(0, 1fr);
  }
}


/* Logged-in guide request: the account email shown under "Email me the guide" */
.cabo-guide-send-note {
  margin: var(--cabo-space-2) 0 0;
  color: var(--cabo-ink-2);
  overflow-wrap: anywhere;
}


/* --- style.css --- */
/*
Theme Name: CaboForSale Theme
Theme URI: https://caboforsale.mx
Author: CaboForSale Engineering
Author URI: https://caboforsale.mx
Description: Ultra-fast, responsive custom real estate theme for Los Cabos, Mexico. Designed for maximum lead generation, SEO indexation, and brokerage independence.
Version: 1.6.9
Text Domain: caboforsale-theme
*/

/* Core styles loaded via assets/css/design-system.css */

