.catalog-page { max-width:1100px; margin:auto; padding:0 24px 80px; color:var(--stone); }
.catalog-page [hidden] { display:none!important; }
.catalog-page .ui-icon { display:inline-flex; width:18px; height:18px; vertical-align:middle; }
.catalog-page .ui-icon svg { width:100%; height:100%; fill:none; stroke:currentColor; stroke-width:1.8; }
.catalog-page button,.catalog-page input,.catalog-page select { font:inherit; }
.catalog-page a:focus-visible,.catalog-page button:focus-visible,.catalog-page input:focus-visible,.catalog-page select:focus-visible,.catalog-page summary:focus-visible,.catalog-comparison-scroll:focus-visible { outline:3px solid var(--brand-dark); outline-offset:4px; }
.catalog-page .section-tag { font-size:12px; color:var(--brand-dark); letter-spacing:.18em; font-weight:600; text-transform:uppercase; margin:0 0 16px; }
.catalog-breadcrumb { padding:24px 0; display:flex; gap:12px; font-size:12px; }
.catalog-breadcrumb a { color:var(--brand-dark); }
.catalog-intro { display:grid; grid-template-columns:1.1fr 1fr; align-items:center; gap:48px; padding:8px 0 32px; }
.catalog-intro h1 { font-size:clamp(36px,4.5vw,56px); font-weight:500; line-height:1.05; letter-spacing:-.02em; margin:0 0 24px; }
.catalog-intro-copy>p:not(.section-tag) { max-width:480px; font-size:16px; line-height:1.7; margin-bottom:24px; }
.catalog-intro-photo { margin:0; position:relative; border-radius:20px; overflow:hidden; background:var(--brand-dark); }
.catalog-intro-photo img { display:block; width:100%; height:260px; object-fit:cover; }
.catalog-intro-photo figcaption { padding:16px 20px; color:var(--white); font-size:13px; }
.catalog-intro-photo figcaption span { display:block; font-size:12px; margin-top:4px; color:var(--cream); }
.catalog-trip { padding:24px; border:1px solid var(--cream-dark); border-radius:20px; background:var(--cream-light); box-shadow:0 4px 20px rgba(0,0,0,.04); }
.catalog-trip-heading { display:flex; align-items:baseline; flex-wrap:wrap; gap:16px; margin-bottom:20px; }
.catalog-trip h2 { font-size:24px; margin:0; }
.catalog-trip-heading span { font-size:13px; color:var(--stone-light); }
#catalog-trip-form { display:grid; grid-template-columns:1fr 1fr 1.1fr auto; align-items:end; gap:16px; }
#catalog-trip-form label { display:block; font-size:12px; font-weight:600; margin-bottom:8px; }
#catalog-trip-form input,#catalog-trip-form select { width:100%; min-width:0; min-height:48px; background:var(--white); border:1px solid var(--brand); border-radius:12px; padding:10px 12px; color:var(--stone); font-size:14px; }
#catalog-trip-form .btn { min-height:48px; padding:14px 24px; }
.catalog-trip-status { font-size:12px; line-height:1.65; margin:16px 0 0; color:var(--stone-light); }
.catalog-text-button { border:0; background:transparent; text-decoration:underline; text-underline-offset:4px; color:var(--brand-dark); padding:12px 0; cursor:pointer; font-size:13px!important; }
.catalog-collection { padding-top:64px; scroll-margin-top:100px; }
.catalog-collection-heading { display:flex; justify-content:space-between; align-items:end; gap:32px; margin-bottom:24px; }
.catalog-collection-heading h2 { font-size:clamp(28px,3.3vw,38px); line-height:1.15; margin:0; }
.catalog-collection-heading>p { max-width:300px; font-size:13px; color:var(--stone-light); line-height:1.7; margin:0; }
.catalog-filters { display:flex; flex-wrap:wrap; gap:8px; }
.catalog-filter { padding:11px 20px; min-height:44px; border-radius:50px; border:1px solid var(--brand); background:transparent; color:var(--brand-dark); cursor:pointer; font-size:13px!important; }
.catalog-filter[aria-pressed="true"] { background:var(--brand-dark); color:var(--white); }
.catalog-count { font-size:12px; color:var(--stone-light); margin:20px 0 24px; }
.catalog-grid { display:grid; grid-template-columns:1fr; gap:32px; }
.catalog-card { display:grid; grid-template-columns:1fr 1fr; background:var(--cream-light); border-radius:20px; border:1px solid var(--cream-dark); overflow:hidden; }
.catalog-card-media { display:block; position:relative; min-height:380px; overflow:hidden; background:var(--cream-dark); }
.catalog-card-media img { height:100%; width:100%; position:absolute; inset:0; object-fit:cover; transition:transform .3s ease; }
.catalog-card-media:hover img { transform:scale(1.025); }
.catalog-photo-number { position:absolute; left:20px; top:20px; width:36px; height:36px; border-radius:50%; background:var(--cream-light); color:var(--brand-dark); display:grid; place-items:center; font-size:12px; }
.catalog-card-body { padding:24px 32px; }
.catalog-card-topline { display:flex; justify-content:space-between; align-items:center; gap:8px; font-size:13px; color:var(--stone-light); }
.catalog-compare-toggle { min-height:44px; padding:8px 12px; border:1px solid var(--brand); border-radius:50px; background:transparent; color:var(--brand-dark); display:inline-flex; gap:6px; align-items:center; cursor:pointer; font-size:12px!important; }
.catalog-compare-toggle[aria-pressed="true"] { background:var(--brand-dark); color:var(--white); }
.catalog-compare-toggle .catalog-compare-selected { display:none !important; }
.catalog-compare-toggle[aria-pressed="true"] .catalog-compare-add { display:none !important; }
.catalog-compare-toggle[aria-pressed="true"] .catalog-compare-selected { display:inline-flex !important; }
.catalog-card h3 { font-size:32px; line-height:1.15; margin:12px 0; font-weight:500; }
.catalog-title-link { color:var(--brand-dark); }
.catalog-card-specs { display:flex; flex-wrap:wrap; gap:6px 16px; font-size:13px; color:var(--stone-light); margin:0; }
.catalog-card-reason { border-top:1px solid var(--cream-dark); margin:24px 0 16px; padding-top:20px; }
.catalog-card-reason .section-tag { margin-bottom:8px; font-size:12px; }
.catalog-card-reason>p:last-child { margin:0; font-size:16px; line-height:1.65; font-weight:500; }
.catalog-pet-note { font-size:12px; color:var(--stone-light); line-height:1.65; margin:0 0 16px; }
.catalog-card-foot { display:flex; align-items:center; gap:20px; flex-wrap:wrap; padding-top:8px; }
.catalog-card-foot .btn { padding:13px 24px; font-size:12px; }
.catalog-details-link { color:var(--brand-dark); font-size:12px; padding:12px 0; }
.catalog-quote-note { font-size:12px; color:var(--stone-light); line-height:1.7; margin:12px 0 0; }
.catalog-opening { margin-top:16px; border-top:1px solid var(--cream-dark); padding-top:12px; font-size:12px; line-height:1.7; }
.catalog-opening summary { cursor:pointer; color:var(--brand-dark); padding:8px 0; }
.catalog-opening p { margin:8px 0; }
.catalog-opening a { text-decoration:underline; text-underline-offset:4px; color:var(--brand-dark); display:inline-block; padding:8px 0; }
.catalog-empty { padding:32px; background:var(--cream-light); border-radius:20px; }
.catalog-empty h3 { font-size:28px; }
.catalog-empty p { max-width:650px; margin:16px 0 24px; }
.catalog-empty>a { display:inline-block; margin:16px; color:var(--brand-dark); }
.catalog-help { display:grid; grid-template-columns:1fr 1fr; gap:64px; border-top:1px solid var(--brand); margin-top:64px; padding-top:48px; }
.catalog-help h2 { font-size:38px; margin:0 0 16px; }
.catalog-help p:not(.section-tag) { font-size:14px; line-height:1.7; margin-bottom:20px; }
.catalog-help-links { display:flex; flex-direction:column; justify-content:center; }
.catalog-help-links a { padding:24px 0; color:var(--brand-dark); border-bottom:1px solid var(--cream-dark); font-size:14px; }
.catalog-shortlist { position:fixed; left:50%; transform:translateX(-50%); bottom:16px; z-index:90; display:flex; gap:24px; align-items:center; width:fit-content; max-width:calc(100% - 32px); margin:0; padding:16px 24px; background:var(--cream-light); border:1px solid var(--brand); border-radius:20px; box-shadow:0 4px 20px rgba(0,0,0,.12); }
.catalog-shortlist strong,.catalog-shortlist span { display:block; }
.catalog-shortlist strong { font-size:14px; }
.catalog-shortlist span { font-size:12px; margin-top:4px; }
.catalog-shortlist .btn { font-size:12px; padding:13px 24px; }
.catalog-shortlist .btn:disabled { background:var(--stone-light); cursor:default; transform:none; }
.catalog-dialog { position:fixed; width:calc(100% - 32px); max-width:1000px; max-height:90dvh; margin:auto; padding:32px; border:0; border-radius:20px; background:var(--cream-light); color:var(--stone); overflow-y:auto; }
.catalog-dialog::backdrop { background:rgba(45,70,71,.72); }
.catalog-dialog-header { display:flex; gap:24px; justify-content:space-between; align-items:start; }
.catalog-dialog h2 { font-size:32px; line-height:1.2; margin:0; }
.catalog-close { display:flex; gap:8px; align-items:center; border:0; background:transparent; color:var(--brand-dark); min-height:44px; padding:8px; cursor:pointer; font-size:13px!important; }
#comparison-trip { font-size:13px; margin:16px 0; color:var(--stone-light); }
.catalog-comparison-scroll { overflow-x:auto; overscroll-behavior-x:contain; margin-bottom:24px; }
.catalog-comparison-table { width:100%; border-collapse:collapse; text-align:left; font-size:13px; }
.catalog-comparison-table caption { text-align:left; font-size:12px; padding:0 0 20px; color:var(--stone-light); }
.catalog-comparison-table th,.catalog-comparison-table td { padding:16px; border-bottom:1px solid var(--cream-dark); min-width:190px; vertical-align:top; }
.catalog-comparison-table th:first-child { min-width:130px; font-weight:500; }
.catalog-comparison-table thead th { font-family:'Playfair Display',serif; font-size:20px; font-weight:500; }
.catalog-comparison-table img { display:block; width:100%; height:120px; object-fit:cover; border-radius:12px; margin-bottom:12px; }
.catalog-comparison-table a { color:var(--brand-dark); }
.catalog-comparison-table .btn { color:var(--white); font-size:12px; padding:12px 20px; }
.comparison-capacity { display:block; color:var(--stone-light); margin-top:4px; font-size:12px; }
.catalog-share { display:flex; justify-content:space-between; align-items:center; gap:24px; }
.catalog-share p { font-size:12px; margin:4px 0 0; }
.catalog-share .btn { flex-shrink:0; font-size:12px; }
#share-status { margin-top:16px; font-size:13px; }
#share-fallback { width:100%; padding:12px; color:var(--stone); }
@media(max-width:767px) {
  .catalog-page { padding:0 20px 48px; display:flex; flex-direction:column; }
  .catalog-breadcrumb { padding:16px 0; order:0; }
  .catalog-breadcrumb a { display:inline-flex; align-items:center; min-height:44px; min-width:44px; margin:-12px 0; }
  .catalog-intro { display:contents; }
  .catalog-intro-copy { order:1; padding:8px 0 24px; }
  .catalog-intro-copy .btn-link { display:none; }
  .catalog-intro-photo { order:3; margin:24px 0 0; }
  .catalog-intro h1 { font-size:38px; margin-bottom:16px; }
  .catalog-intro-copy>p:not(.section-tag) { font-size:14px; margin-bottom:16px; }
  .catalog-intro-photo img { height:180px; }
  .catalog-intro-photo figcaption { padding:12px 16px; font-size:12px; }
  .catalog-intro-photo figcaption span { display:none; }
  .catalog-trip { padding:20px 16px; order:2; }
  .catalog-trip-heading { gap:8px; margin-bottom:16px; }
  .catalog-trip-heading span { font-size:12px; }
  #catalog-trip-form { grid-template-columns:1fr 1fr; gap:12px; }
  #catalog-trip-form .btn { padding:12px 8px; font-size:12px; }
  #catalog-trip-form select { font-size:13px; padding:10px 8px; }
  #catalog-trip-form input { font-size:13px; padding:10px 8px; }
  .catalog-collection { padding-top:40px; order:4; }
  .catalog-collection-heading { display:block; }
  .catalog-collection-heading>p { margin-top:16px; }
  .catalog-filters { flex-wrap:wrap; }
  .catalog-filter { padding:10px 16px; }
  .catalog-card { grid-template-columns:1fr; }
  .catalog-card-media { min-height:240px; }
  .catalog-card-body { padding:20px; }
  .catalog-card h3 { font-size:28px; }
  .catalog-card-foot { gap:12px; }
  .catalog-help { order:5; grid-template-columns:1fr; gap:16px; margin-top:40px; padding-top:32px; }
  .catalog-help h2 { font-size:32px; }
  .catalog-shortlist { gap:12px; padding:12px; bottom:8px; width:calc(100% - 32px); justify-content:space-between; }
  .catalog-shortlist .btn { padding:12px 16px; font-size:12px; min-height:44px; }
  .catalog-shortlist span { display:none; }
  .catalog-shortlist strong { font-size:12px; }
  .catalog-dialog { padding:20px 16px; }
  .catalog-dialog h2 { font-size:26px; }
  .catalog-dialog-header { gap:8px; }
  .catalog-comparison-table th,.catalog-comparison-table td { min-width:104px; padding:12px 6px; font-size:12px; overflow-wrap:anywhere; }
  .catalog-comparison-table thead th { font-size:17px; }
  .catalog-comparison-table .btn { width:100%; min-height:44px; padding:12px 8px; font-size:12px; letter-spacing:.04em; white-space:normal; }
  .catalog-comparison-table img { width:100%; min-width:0; height:84px; border-radius:12px; }
  .catalog-comparison-table th:first-child { min-width:96px; max-width:96px; overflow-wrap:anywhere; position:sticky; left:0; background:var(--cream-light); z-index:1; }
  .catalog-comparison-table caption { max-width:calc(100vw - 64px); }
  .catalog-share { display:block; }
  .catalog-share .btn { margin-top:16px; width:100%; }
  .catalog-details-link { min-height:44px; display:inline-flex; align-items:center; }
  .catalog-text-button { min-height:44px; display:inline-flex; align-items:center; }
  .catalog-opening summary { min-height:44px; display:flex; align-items:center; }
  .catalog-opening a { min-height:44px; display:inline-flex; align-items:center; }
}
@media(prefers-reduced-motion:reduce) { .catalog-card-media img { transition:none; } }

.property-trip-context { background:var(--cream-light,#FAF7EE); color:var(--stone,#3A3A3A); max-width:1100px; margin:16px auto; padding:16px 24px; border:1px solid var(--brand-dark,#3D5C5D); border-radius:12px; font:13px/1.7 Poppins,sans-serif; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px 24px; }
.property-trip-context p { margin:0; }
.property-trip-context a { color:var(--brand-dark,#3D5C5D); text-decoration:underline; text-underline-offset:4px; padding:8px 0; }
@media(max-width:767px) { .property-trip-context { margin:12px 16px; padding:12px 16px; } }

.has-catalog-shortlist { scroll-padding-bottom:120px; }
.has-catalog-shortlist body { padding-bottom:120px; }
.catalog-area-guides { font-size:14px; }
.catalog-area-guides summary { padding:24px 0; cursor:pointer; color:var(--brand-dark); }
.catalog-area-guides a { display:block; padding:16px 0; }
