/* Heading typeface — Source Serif 4 (OFL), latin only, local file. */
@font-face{
  font-family:"Source Serif 4 Variable";
  font-style:normal;
  font-display:swap;
  font-weight:200 900;
  src:url("./fonts/source-serif-4-latin-wght-normal.woff2") format("woff2-variations");
  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;
}

/* HCH Listing v2 — presentation layer for single estate_property pages.
   Scope: everything lives under .hchx (the child-theme listing template wrapper).
   Does not restyle booking logic; only the markup around the preserved WP Rentals IDs. */
.hchx{
  --hchx-navy:#0f2f4d; --hchx-blue:#1a5a96; --hchx-blue-d:#134a7d; --hchx-ink:#1d2733;
  --hchx-muted:#4d5567; --hchx-line:#dfe4ea; --hchx-soft:#f4f6f9; --hchx-soft2:#eef3f8;
  --hchx-ok:#2f6b3a; --hchx-radius:14px; --hchx-shadow:0 10px 30px rgba(15,47,77,.10);
  --hchx-offset:72px; /* updated by JS from the real sticky header height */
  color:var(--hchx-ink); font:16px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Open Sans",Arial,sans-serif;
  max-width:1200px; margin:0 auto; padding:0 20px 40px; box-sizing:border-box;
}
.hchx *,.hchx *::before,.hchx *::after{box-sizing:border-box}
.hchx a{color:var(--hchx-blue);text-decoration-thickness:1px;text-underline-offset:2px}
.hchx a:hover{color:var(--hchx-blue-d)}
.hchx :focus-visible{outline:3px solid #f2b705;outline-offset:2px;border-radius:4px}
.hchx [id]{scroll-margin-top:calc(var(--hchx-offset) + 64px)}
.hchx h2{font-size:1.35rem;line-height:1.3;margin:0 0 14px;color:var(--hchx-navy);font-weight:700;letter-spacing:-.01em}
.hchx h3{font-size:1.02rem;margin:0 0 8px;color:var(--hchx-navy);font-weight:700}
.hchx p{margin:0 0 12px}

/* Breadcrumb + header */
.hchx-crumbs{font-size:13px;color:var(--hchx-muted);margin:14px 0 8px}
.hchx-crumbs a{color:var(--hchx-navy)}
.hchx-head h1.entry-title{
  font-family:"Source Serif 4 Variable","Iowan Old Style","Palatino Linotype",Palatino,"Times New Roman",serif;
  font-size:clamp(1.2rem,1.08rem + .55vw,1.5625rem);
  font-weight:500;
  font-optical-sizing:auto;
  line-height:1.28;
  letter-spacing:-.01em;
  color:var(--hchx-navy);
  margin:0 0 8px;
  max-width:22em;
  text-wrap:balance;
}
.hchx-loc{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;color:var(--hchx-muted);font-size:15px;margin-bottom:14px}
.hchx-loc .listing_main_image_location{display:inline;margin:0;padding:0;color:inherit}
.hchx-loc a{color:var(--hchx-muted)}
.hchx .schema_div_noshow{display:none}
.hchx-facts{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px;padding:0;list-style:none}
.hchx-facts li{background:var(--hchx-soft);border:1px solid var(--hchx-line);border-radius:999px;padding:5px 12px;font-size:14px;color:var(--hchx-ink);font-weight:600}
.hchx .category_wrapper{display:none} /* original term links kept in DOM for crawl parity; facts chips replace the visual */

/* Gallery */
.hchx-gallery{position:relative;margin:0 0 8px}
.hchx-g-track{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:220px 220px;gap:8px;border-radius:var(--hchx-radius);overflow:hidden;margin:0;padding:0;list-style:none}
.hchx-g-track li{margin:0;min-width:0}
.hchx-g-track li:first-child{grid-row:1 / span 2}
.hchx-g-track li:nth-child(n+6){display:none}
.hchx-g-item{display:block;width:100%;height:100%;padding:0;border:0;background:#dfe4ea;cursor:zoom-in;position:relative;overflow:hidden}
.hchx-g-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}
.hchx-g-item:hover img{transform:scale(1.03)}
.hchx-g-all{position:absolute;right:14px;bottom:14px;background:#fff;color:var(--hchx-navy);border:1px solid var(--hchx-navy);border-radius:10px;padding:9px 14px;font-weight:700;font-size:14px;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.15)}
.hchx-g-all:hover{background:var(--hchx-soft2)}
.hchx-g-count{display:none}

/* Section nav (replaces the translucent property_menu strip on this template) */
.property_menu_wrapper_hidden{display:none!important}
.hchx-secnav{position:sticky;top:var(--hchx-offset);z-index:40;background:#fff;border-bottom:1px solid var(--hchx-line);margin:18px -20px 0;padding:0 20px}
.hchx-secnav ul{display:flex;gap:4px;margin:0;padding:0;list-style:none;overflow-x:auto;scrollbar-width:none}
.hchx-secnav ul::-webkit-scrollbar{display:none}
.hchx-secnav a{display:block;padding:14px 12px;font-size:14px;font-weight:650;color:var(--hchx-muted);text-decoration:none;border-bottom:3px solid transparent;white-space:nowrap}
.hchx-secnav a:hover,.hchx-secnav a[aria-current="true"]{color:var(--hchx-navy);border-bottom-color:var(--hchx-blue)}

/* Layout */
.hchx-layout{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:48px;align-items:start;margin-top:28px}
.hchx-main>section{padding:0 0 30px;margin:0 0 30px;border-bottom:1px solid var(--hchx-line)}
.hchx-main>section:last-child{border-bottom:0}

/* Overview */
.hchx-highlights{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 22px;padding:0;list-style:none}
.hchx-highlights li{background:var(--hchx-soft2);border-radius:12px;padding:14px;font-size:14px;font-weight:650;color:var(--hchx-navy);display:flex;gap:10px;align-items:flex-start}
.hchx-ico{flex:0 0 22px;height:22px;color:var(--hchx-blue)}
.hchx #listing_description .panel-title-description{display:none}
.hchx #listing_description .panel-body{padding:0;color:var(--hchx-ink);font-size:16px;line-height:1.7}
.hchx-desc-clamp #listing_description .panel-body{max-height:11.2em;overflow:hidden;-webkit-mask-image:linear-gradient(#000 60%,transparent);mask-image:linear-gradient(#000 60%,transparent)}
.hchx #view_more_desc{display:inline-block;margin-top:10px;font-weight:700;color:var(--hchx-blue);cursor:pointer;background:none;border:0;padding:4px 0;font-size:15px;text-decoration:underline;text-underline-offset:3px}

/* Details */
.hchx-details{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin:0;padding:0}
.hchx-details div{border:1px solid var(--hchx-line);border-radius:12px;padding:12px 14px}
.hchx-details dt{font-size:13px;color:var(--hchx-muted);font-weight:600;margin:0}
.hchx-details dd{margin:2px 0 0;font-size:18px;font-weight:750;color:var(--hchx-navy)}

/* Amenities */
.hchx-amen{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 32px}
.hchx-amen ul{margin:0;padding:0;list-style:none;columns:1}
.hchx-amen li{padding:5px 0 5px 26px;position:relative;font-size:15px}
.hchx-amen li::before{content:"";position:absolute;left:2px;top:.62em;width:12px;height:7px;border-left:2px solid var(--hchx-ok);border-bottom:2px solid var(--hchx-ok);transform:rotate(-45deg)}
.hchx-amen-collapsed .hchx-amen-group:nth-child(n+4){display:none}
.hchx-more-btn{margin-top:16px;background:#fff;border:1px solid var(--hchx-navy);color:var(--hchx-navy);border-radius:10px;padding:9px 16px;font-weight:700;cursor:pointer;font-size:14px}
.hchx-incl{background:var(--hchx-soft2);border-left:4px solid var(--hchx-blue);border-radius:8px;padding:12px 16px;margin:0 0 20px;font-size:15px}

/* Building & location */
.hchx-loc-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:24px;align-items:start}
.hchx-addr{font-style:normal;line-height:1.7}
.hchx .google_map_on_list_wrapper{border-radius:var(--hchx-radius);overflow:hidden;border:1px solid var(--hchx-line);min-height:300px;position:relative;background:var(--hchx-soft)}
.hchx #google_map_on_list{height:320px;width:100%}
.hchx .leaflet-control-container .leaflet-top.leaflet-left{top:auto;bottom:10px} /* keeps zoom controls off the property popup on mobile */

/* Good to know */
.hchx-policies details{border:1px solid var(--hchx-line);border-radius:12px;margin:0 0 10px;background:#fff}
.hchx-policies summary{cursor:pointer;padding:14px 16px;font-weight:700;color:var(--hchx-navy);list-style:none;display:flex;justify-content:space-between;align-items:center}
.hchx-policies summary::-webkit-details-marker{display:none}
.hchx-policies summary::after{content:"+";font-size:20px;line-height:1;color:var(--hchx-blue)}
.hchx-policies details[open] summary::after{content:"\2013"}
.hchx-policies .hchx-pbody{padding:0 16px 14px;font-size:15px}
.hchx-ctable{width:100%;border-collapse:collapse;margin:4px 0 12px;font-size:15px}
.hchx-ctable th,.hchx-ctable td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--hchx-line);vertical-align:top}
.hchx-ctable th{width:40%;color:var(--hchx-navy)}

/* Trust */
.hchx-trust{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 16px;padding:0;list-style:none}
.hchx-trust li{border:1px solid var(--hchx-line);border-radius:12px;padding:14px;font-size:14px}
.hchx-trust strong{display:block;color:var(--hchx-navy);font-size:15px;margin-bottom:2px}
.hchx-contact{display:flex;flex-wrap:wrap;gap:10px 28px;font-size:15px}
.hchx-contact a{font-weight:700}

/* Related */
.hchx-related{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0;padding:0;list-style:none}
.hchx-related a{display:block;text-decoration:none;color:var(--hchx-ink);border:1px solid var(--hchx-line);border-radius:12px;overflow:hidden;height:100%}
.hchx-related a:hover{box-shadow:var(--hchx-shadow)}
.hchx-related img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block;background:var(--hchx-soft)}
.hchx-related span{display:block;padding:10px 12px;font-size:14px;font-weight:650;color:var(--hchx-navy)}
.hchx-related small{display:block;padding:0 12px 12px;color:var(--hchx-muted);font-size:13px}

/* Booking card (#primary keeps WP Rentals ids/classes) */
.hchx #primary.listingsidebar2{position:sticky;top:calc(var(--hchx-offset) + 64px);width:auto;float:none;padding:0;margin:0!important;max-height:calc(100vh - var(--hchx-offset) - 80px);overflow:auto;overscroll-behavior:contain;border-radius:var(--hchx-radius)}
.hchx #primary,.hchx #primary a,.hchx #primary label{color:var(--hchx-ink)}
.hchx-book{background:#fff;border:1px solid var(--hchx-line);border-radius:var(--hchx-radius);box-shadow:var(--hchx-shadow);padding:22px}
.hchx-sheet-head{display:none}
.hchx #listing_main_image_price_id{font-size:22px;font-weight:800;color:var(--hchx-navy);padding:0;margin:0 0 2px;background:none}
.hchx #listing_main_image_price_id>div{padding:0!important;font-size:inherit!important;font-weight:inherit!important}
.hchx-incl-line{font-size:14px;color:var(--hchx-muted);margin:0 0 14px}
.hchx-fees{background:#f6f8e9;border:1px solid #cfd99a;border-radius:10px;padding:10px 12px;font-size:14px;color:#2f3a10;margin:0 0 14px;font-weight:600}
.hchx .booking_form_request{background:none;padding:0;margin:0;border:0;box-shadow:none}
.hchx-fields{display:grid;grid-template-columns:1fr 1fr;border:1px solid #9aa6b5;border-radius:12px;overflow:visible;margin-bottom:12px;position:relative}
.hchx-field{position:relative;padding:8px 12px;margin:0!important;min-width:0}
.hchx-field+.hchx-field{border-left:1px solid #9aa6b5}
.hchx-field.hchx-guests{grid-column:1 / -1;border-left:0;border-top:1px solid #9aa6b5}
.hchx-field label,.hchx-flabel{display:block;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--hchx-navy)!important;margin:0}
.hchx .hchx-field input.form-control{border:0;box-shadow:none;padding:2px 0;height:auto;font-size:16px;background:transparent;width:100%;color:var(--hchx-ink);background-image:none}
.hchx .hchx-field input.form-control:disabled{color:#6b7480;cursor:not-allowed}
.hchx .hchx-guests .dropdown.form-control{border:0;box-shadow:none;padding:0;height:auto;background:transparent;position:relative}
.hchx #booking_guest_no_wrapper{cursor:pointer;font-size:16px;padding:2px 0;display:flex;justify-content:space-between;align-items:center;color:var(--hchx-ink)}
.hchx #booking_guest_no_wrapper_list{position:absolute;left:-12px;right:-12px;top:calc(100% + 8px);background:#fff;border:1px solid var(--hchx-line);border-radius:10px;box-shadow:var(--hchx-shadow);list-style:none;margin:0;padding:6px 0;max-height:240px;overflow:auto;z-index:60;display:none}
.hchx .dropdown.open #booking_guest_no_wrapper_list{display:block}
.hchx #booking_guest_no_wrapper_list li{padding:8px 14px;cursor:pointer}
.hchx #booking_guest_no_wrapper_list li:hover,.hchx #booking_guest_no_wrapper_list li:focus{background:var(--hchx-soft2);outline:none}
.hchx #show_cost_form{border-top:1px solid var(--hchx-line);margin:6px 0 10px;padding-top:8px}
.hchx #show_cost_form .cost_row{display:flex;justify-content:space-between;gap:10px;padding:6px 0;font-size:15px;color:var(--hchx-ink)}
.hchx #show_cost_form .cost_explanation{color:var(--hchx-ink)}
.hchx #show_cost_form .cost_value{font-weight:650;white-space:nowrap}
.hchx #show_cost_form #total_cost_row{border-top:1px solid var(--hchx-line);margin-top:6px;padding-top:10px;font-weight:800;font-size:17px;color:var(--hchx-navy)}
.hchx #show_cost_form .hch-monthly-row{font-size:13px;color:var(--hchx-muted)!important;opacity:1!important}
.hchx-promo{font-size:14px;color:var(--hchx-ok);font-weight:700;margin:4px 0 10px;display:flex;gap:8px;align-items:center}
.hchx-promo small{display:block;color:var(--hchx-muted);font-weight:500}
.hchx .booking_form_textarea_inst{font-size:13px;color:var(--hchx-muted);margin:6px 0}
.hchx .booking_form_textarea{width:100%;min-height:64px;border:1px solid #9aa6b5;border-radius:10px;padding:10px 12px;font-size:15px;resize:vertical}
.hchx #booking_form_request_mess{display:none;margin:8px 0;padding:10px 12px;border-radius:10px;background:#fdf2f2;border:1px solid #f0b8b8;color:#8a1c1c;font-size:14px}
.hchx #submit_booking_front{display:block;width:100%;height:auto;margin:12px 0 6px;padding:14px 16px;border:0;border-radius:12px;background:var(--hchx-blue)!important;color:#fff!important;font-size:17px;font-weight:800;letter-spacing:.01em;cursor:pointer;box-shadow:none;text-shadow:none}
.hchx #submit_booking_front:hover{background:var(--hchx-blue-d)!important}
.hchx-nocharge{text-align:center;font-size:13px;color:var(--hchx-muted);margin:0 0 12px}
.hchx-quote-btn{display:block;width:100%;background:#fff;border:1px solid var(--hchx-navy);color:var(--hchx-navy);border-radius:12px;padding:11px;font-weight:700;font-size:15px;cursor:pointer}
.hchx-quote-btn:hover{background:var(--hchx-soft2)}
.hchx-phones{margin:14px 0 0;padding:12px 0 0;border-top:1px solid var(--hchx-line);font-size:14px;display:grid;gap:4px}
.hchx-phones a{font-weight:700}
.hchx .hch_contact_phone{display:none} /* duplicated by .hchx-phones; element kept for any script hooks */
.hchx-mbar{display:none}
.hchx-scrim{display:none}

/* Lightbox */
.hchx-lb{position:fixed;inset:0;z-index:100050;background:rgba(10,18,28,.94);display:none;flex-direction:column;color:#fff}
.hchx-lb[aria-hidden="false"]{display:flex}
.hchx-lb-top{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;font-size:15px}
.hchx-lb-stage{flex:1;display:flex;align-items:center;justify-content:center;position:relative;min-height:0;padding:0 64px;touch-action:pan-y}
.hchx-lb-stage img{max-width:100%;max-height:100%;object-fit:contain;border-radius:6px;user-select:none}
.hchx-lb button{background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.35);border-radius:999px;width:48px;height:48px;font-size:22px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.hchx-lb button:hover{background:rgba(255,255,255,.26)}
.hchx-lb-prev,.hchx-lb-next{position:absolute;top:50%;transform:translateY(-50%)}
.hchx-lb-prev{left:10px}.hchx-lb-next{right:10px}
.hchx-lb-strip{display:flex;gap:6px;overflow-x:auto;padding:10px 16px 16px;scrollbar-width:thin}
.hchx-lb-strip button{width:72px;height:48px;border-radius:6px;padding:0;overflow:hidden;flex:0 0 auto;opacity:.55;border:2px solid transparent}
.hchx-lb-strip button[aria-current="true"]{opacity:1;border-color:#fff}
.hchx-lb-strip img{width:100%;height:100%;object-fit:cover}
.hchx-lock{overflow:hidden}

/* Quote dialog */
.hchx-dialog{border:0;border-radius:16px;padding:0;max-width:520px;width:calc(100% - 24px);box-shadow:0 20px 60px rgba(0,0,0,.3)}
.hchx-dialog::backdrop{background:rgba(10,18,28,.55)}
.hchx-dialog form{padding:22px}
.hchx-dialog h2{margin-top:0}
.hchx-dialog label{display:block;font-size:13px;font-weight:700;color:var(--hchx-navy);margin:10px 0 4px}
.hchx-dialog input,.hchx-dialog textarea{width:100%;border:1px solid #9aa6b5;border-radius:10px;padding:10px 12px;font-size:15px}
.hchx-dialog .hchx-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.hchx-dialog-actions{display:flex;gap:10px;margin-top:16px}
.hchx-dialog-actions button{flex:1;padding:12px;border-radius:10px;font-weight:800;font-size:15px;cursor:pointer;border:1px solid var(--hchx-navy)}
.hchx-dialog-actions .primary{background:var(--hchx-blue);color:#fff;border-color:var(--hchx-blue)}
.hchx-dialog-actions .secondary{background:#fff;color:var(--hchx-navy)}

/* ---------- Tablet & mobile (<=991px): one column, booking becomes a bottom sheet ---------- */
@media (max-width:991px){
  .hchx-layout{grid-template-columns:minmax(0,1fr);gap:0}
  .hchx-highlights,.hchx-trust{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hchx-related{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hchx #primary.listingsidebar2{position:fixed;left:0;right:0;bottom:0;top:auto;z-index:100020;max-height:88vh;margin:0!important;border-radius:18px 18px 0 0;transform:translateY(105%);transition:transform .28s ease;visibility:hidden;background:#fff;box-shadow:0 -10px 40px rgba(0,0,0,.25)}
  .hchx.hchx-sheet-open #primary.listingsidebar2{transform:none;visibility:visible}
  .hchx-book{border:0;box-shadow:none;border-radius:0;padding:4px 18px 24px}
  .hchx-sheet-head{display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;background:#fff;padding:14px 18px 10px;z-index:2;border-bottom:1px solid var(--hchx-line)}
  .hchx-sheet-head strong{font-size:17px;color:var(--hchx-navy)}
  .hchx-sheet-close{background:var(--hchx-soft);border:0;border-radius:999px;width:40px;height:40px;font-size:22px;cursor:pointer;color:var(--hchx-navy)}
  .hchx-scrim{position:fixed;inset:0;background:rgba(10,18,28,.5);z-index:100010;display:none}
  .hchx.hchx-sheet-open .hchx-scrim{display:block}
  .hchx-mbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:100000;background:#fff;border-top:1px solid var(--hchx-line);box-shadow:0 -4px 18px rgba(0,0,0,.08);padding:10px 16px calc(10px + env(safe-area-inset-bottom));align-items:center;justify-content:space-between;gap:12px}
  .hchx-mbar-info{font-size:13px;color:var(--hchx-muted);line-height:1.35;min-width:0}
  .hchx-mbar-info strong{display:block;font-size:16px;color:var(--hchx-navy)}
  .hchx-mbar button{flex:0 0 auto;background:var(--hchx-blue);color:#fff;border:0;border-radius:12px;padding:12px 18px;font-weight:800;font-size:15px;cursor:pointer}
  .hchx{padding-bottom:96px}
  .hchx-secnav{margin:14px -20px 0}
}
@media (max-width:767px){
  .hchx{padding:0 16px 96px}
  .hchx-gallery{margin:0 -16px 8px}
  .hchx-g-track{display:flex;grid-template:none;overflow-x:auto;scroll-snap-type:x mandatory;border-radius:0;gap:0;scrollbar-width:none}
  .hchx-g-track::-webkit-scrollbar{display:none}
  .hchx-g-track li,.hchx-g-track li:nth-child(n+6){display:block;flex:0 0 100%;scroll-snap-align:center;aspect-ratio:3/2}
  .hchx-g-all{right:12px;bottom:12px;padding:7px 11px;font-size:13px}
  .hchx-g-count{display:block;position:absolute;left:12px;bottom:12px;background:rgba(15,47,77,.82);color:#fff;border-radius:999px;padding:4px 10px;font-size:13px;font-weight:700}
  .hchx-head{order:2}
  .hchx-amen,.hchx-loc-grid{grid-template-columns:minmax(0,1fr)}
  .hchx-highlights{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hchx-trust{grid-template-columns:minmax(0,1fr)}
  .hchx-secnav{margin:10px -16px 0;padding:0 8px}
  .hchx-secnav a{padding:12px 10px}
  .hchx-ctable th,.hchx-ctable td{display:block;width:auto;border:0;padding:2px 0}
  .hchx-ctable tr{display:block;border-bottom:1px solid var(--hchx-line);padding:8px 0}
}
@media (prefers-reduced-motion:reduce){.hchx *{transition:none!important;scroll-behavior:auto!important}}
.hchx-top{display:flex;flex-direction:column}
@media (max-width:767px){.hchx-top .hchx-gallery{order:-1}.hchx-top .hchx-crumbs{margin-top:12px}}
/* property.js sets the inline max-height on .panel-body and toggles #view_more_desc.lessismore; we only add a fade. */
.hchx #listing_description:has(+ #view_more_desc:not(.lessismore)) .panel-body{-webkit-mask-image:linear-gradient(#000 55%,transparent);mask-image:linear-gradient(#000 55%,transparent)}
/* hch-goodtoknow mu-plugin block, restyled in place (its markup/text are untouched) */
.hchx .hchgtk-before{border:0;padding:0;margin:0;background:none;border-radius:0}
.hchx .hchgtk-before h3{font-size:1.35rem;color:var(--hchx-navy);margin:0 0 14px;letter-spacing:-.01em}
.hchx .hchgtk-before details{border:1px solid var(--hchx-line);border-radius:12px;margin:0 0 10px;padding:0;background:#fff}
.hchx .hchgtk-before summary{padding:14px 16px;color:var(--hchx-navy)}
.hchx .hchgtk-before details>*:not(summary){margin-left:16px;margin-right:16px}
.hchx .hchgtk-before details>:last-child{margin-bottom:14px}
.hchx .hchgtk-before p{color:var(--hchx-ink)}
.hchx .hchgtk-tbl{width:calc(100% - 32px)}
.hchx .hchgtk-tbl td{padding:9px 10px;border-bottom:1px solid var(--hchx-line);vertical-align:top}
.hchx .hchgtk-tbl td:first-child{font-weight:700;color:var(--hchx-navy);width:38%}
.hchx-amen-group h3{font-size:.95rem;text-transform:none}
/* v2.1: grid tiles chosen by the template (first 5 distinct photos), aspect-based height, header CTA */
@media (min-width:768px){
  .hchx-g-track{grid-template-rows:1fr 1fr;aspect-ratio:2.25/1}
  .hchx-g-track li{display:none}
  .hchx-g-track li.hchx-tile{display:block}
  .hchx-g-track li:first-child{grid-row:auto}
  .hchx-g-track li.hchx-tile-1{grid-row:1 / span 2}
}
.hchx-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:end}
.hchx-head .category_wrapper{grid-column:1 / -1}
.hchx-head-cta{display:flex;flex-direction:column;align-items:flex-end;gap:6px;margin-bottom:18px}
.hchx-cta{background:var(--hchx-blue);color:#fff;border:0;border-radius:12px;padding:13px 22px;font-weight:800;font-size:16px;cursor:pointer}
.hchx-cta:hover{background:var(--hchx-blue-d)}
.hchx-head-cta a{font-size:14px;font-weight:700}
@media (max-width:991px){.hchx-head{display:block}.hchx-head-cta{display:none}}

/* ===== v2.2: style the UNCHANGED live booking_form_template markup (no wrappers needed) ===== */
.hchx-book{display:flex;flex-direction:column}
.hchx-book>*{order:4}
.hchx-book>#listing_main_image_price_id{order:0}
.hchx-book>.hchx-incl-line{order:1}
.hchx-book>div[style*="d7ed77"]{order:2}
.hchx-book>#booking_form_request{order:3}
/* "$0 fees" panel: inline styles from the template are neutralised for contrast/spacing; wording untouched */
.hchx-book>div[style*="d7ed77"]{margin:0 0 14px!important;padding:10px 12px!important;max-width:none!important;background:#f6f8e9!important;border:1px solid #cfd99a;border-radius:10px;font-size:14px!important;line-height:1.45;color:#2f3a10;font-weight:600!important}
.hchx-book>div[style*="d7ed77"] span{font-size:inherit!important;font-weight:800}
/* form grid: check-in | check-out, guests full width, everything else full width */
.hchx #booking_form_request{display:grid;grid-template-columns:1fr 1fr;margin:0!important;padding:0!important;background:none!important}
.hchx #booking_form_request>*{grid-column:1 / -1;min-width:0}
.hchx #booking_form_request>.has_calendar{border:1px solid #9aa6b5;padding:8px 12px;margin:0!important;position:relative;background:#fff}
.hchx #booking_form_request>.has_calendar.calendar_icon{grid-column:auto}
.hchx #booking_form_request>.has_calendar:nth-child(1){border-radius:12px 0 0 0;border-right:0}
.hchx #booking_form_request>.has_calendar:nth-child(2){border-radius:0 12px 0 0}
.hchx #booking_form_request>.has_calendar.guest_icon{border-top:0;border-radius:0 0 12px 12px;margin-bottom:12px!important}
.hchx #booking_form_request>.has_calendar::before,.hchx #booking_form_request>.has_calendar::after{display:none}
.hchx #booking_form_request input.form-control{border:0!important;box-shadow:none!important;padding:2px 0!important;height:auto!important;font-size:16px!important;background:transparent!important;width:100%;color:var(--hchx-ink)}
.hchx #booking_form_request input.form-control:disabled{color:#6b7480;cursor:not-allowed}
.hchx #booking_form_request .dropdown.form-control{border:0!important;box-shadow:none!important;padding:0!important;height:auto!important;background:transparent!important;position:relative}
.hchx #booking_form_request>div[style*="color:red"]{padding:0!important}
.hchx #booking_form_request>div[style*="color:red"]:empty{display:none}
/* "Move in Ready" promo: same three lines, calmer typography */
.hchx #booking_form_request>div[style*="b3f2e0"]{background:var(--hchx-soft2)!important;border-radius:10px;padding:10px 12px!important;max-width:none!important;margin:4px 0 10px;font-weight:600!important;font-size:14px!important}
.hchx #booking_form_request>div[style*="b3f2e0"] p{margin:0!important;font-family:inherit!important;font-style:normal!important;font-size:13px!important;color:var(--hchx-muted)!important;line-height:1.45}
.hchx #booking_form_request>div[style*="b3f2e0"] p:first-child{font-size:15px!important;color:var(--hchx-ok)!important;font-weight:800}
.hchx #submit_booking_front+div{font-size:13px;color:var(--hchx-muted);margin:0 0 12px}
.hchx #contact_host{display:none!important}
.hchx .hchx-flabel{display:block;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--hchx-navy)!important;margin:0}
.hchx a.hchx-quote-btn{text-align:center;text-decoration:none;color:var(--hchx-navy)}
/* breadcrumb printed by hch-seo-phase1 (inline styles kept; spacing only) */
.hchx nav[data-hch="seo-p1-crumbnav"]{margin:14px 0 8px!important;font-size:13px!important}
.hchx #add_costs_here{margin:0}
.hchx .space_extra_opt:empty,.hchx .space_extra_opt:has(> input:only-child){display:none}
.hchx .caret_filter{margin-left:auto}
/* address block = unchanged estate_listing_address() output */
.hchx-addr-block .listing_detail{float:none;width:auto;padding:2px 0;font-size:15px}
.hchx-addr-block .item_head{font-weight:700;color:var(--hchx-navy);margin-right:4px}

/* ===== Desktop layout glitch fix (applied to the 540 PREVIEW CSS, 14 Nov 2026, America/Chicago).
   Neutralizes inherited WP Rentals / Bootstrap floats and leftover section-menu
   strips when v2 markup sits inside .row.content-fixed-listing.hchx-row.
   Does not change the owner-approved H1 typography (Source Serif 4, weight 500,
   clamp 1.2rem–1.5625rem ≈ 19px mobile / ~24px at 1280), prices, phones,
   booking markup, H1 wording, or SEO tags.
   Not applied to production. Staging is unchanged until the CSS-only operator
   kit in layout-fix-kit-2026-11-14/ is run. ===== */

/* Kill leftover WP Rentals section menus on v2 listing pages. */
.hchx-row .property_menu_wrapper,
.hchx-row .property_menu_wrapper_hidden,
.hchx-row .property_menu_wrapper_fixed,
.hchx-row .property_menu_wrapper_hidden_fixed {
  display: none !important;
}

/* The parent .row is a Bootstrap float row. v2 does not use .col-*
   children, so disable the float context. */
.row.content-fixed-listing.hchx-row {
  display: block;
  float: none;
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}
.row.content-fixed-listing.hchx-row::before,
.row.content-fixed-listing.hchx-row::after {
  display: none !important;
  content: none !important;
}

.hchx-row > .hchx {
  float: none !important;
  width: auto;
  max-width: 1200px;
}

/* Keep the title block in normal flow above the section nav. */
.hchx .hchx-top,
.hchx .hchx-head,
.hchx .single-content.listing-content {
  float: none !important;
  width: auto !important;
  max-width: none;
  position: relative;
  z-index: 1;
}

/* Section nav sticks below the site header, never over the H1. */
.hchx-secnav {
  position: sticky;
  top: var(--hchx-offset, 72px);
  z-index: 30;
  float: none !important;
  width: auto !important;
}

/* Main + booking grid: never let inherited widths collapse the column. */
.hchx-layout,
.hchx-main {
  float: none !important;
  width: auto !important;
  min-width: 0;
  max-width: none;
}

.hchx #primary,
.hchx #primary.listingsidebar2,
.hchx #primary.listing_type_1 {
  float: none !important;
  width: auto !important;
  max-width: 100%;
}

@media (min-width: 992px) {
  .hchx-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 380px;
  }
}

/* ===== Live typography + header layout patch (v4, 14 Nov 2026, America/Chicago).
   Production loads two theme layers the owner-approved preview did not:

   1) Bootstrap (wpestate_bootstrap-css): html { font-size: 10px; }
      The H1 clamp was written in rem (1.2rem–1.5625rem). That is 19.2–25px
      on a 16px root (the preview) but 12–15.625px on the live 10px root —
      measured 15.6px desktop / 12.9px mobile.

   2) WP Rentals typography customizer (inline style in wp_head):
      body, h1, h2, … { font-family: "Open Sans" !important; }
      That beats .hchx-head h1.entry-title without !important, even though
      Source Serif 4 is loaded (document.fonts.check).

   3) Parent style.css: .entry-title { float: left; width: 100%; } and
      .listing_type_1 .entry-prop { width: 600px; } plus
      .listing_type_1 .listing_main_image_location { float: left; }.
      The floated H1, narrowed by max-width: 22em on the shrunk font, leaves
      the location in a side column (≈53px and wrapping on a 390px viewport).
      The preview (no theme CSS) stacked title, then location, then facts.

   Scoped under #hchx / .hchx-head. The H1 tag, wording, and SEO tags are
   unchanged. Font-size is the same clamp expressed in px so it matches the
   approved preview (24.32px at 1280, 19.425px at 390) despite the 10px root.
   ===== */

#hchx .hchx-head h1.entry-title,
#hchx .hchx-head h1.entry-title.entry-prop {
  font-family: "Source Serif 4 Variable", "Iowan Old Style", "Palatino Linotype", Palatino, "Times New Roman", serif !important;
  font-size: clamp(19.2px, 17.28px + 0.55vw, 25px) !important;
  font-weight: 500 !important;
  font-optical-sizing: auto;
  line-height: 1.28;
  letter-spacing: -.01em;
  color: var(--hchx-navy) !important;
  float: none !important;
  width: auto !important;
  max-width: 22em;
  position: relative !important;
  left: auto !important;
  bottom: auto !important;
  margin: 0 0 8px !important;
  padding: 0 !important;
  text-shadow: none !important;
  display: block;
  text-wrap: balance;
}

#hchx .hchx-head-main {
  display: block;
  float: none !important;
  width: auto !important;
  min-width: 0;
  max-width: none;
}

#hchx .hchx-head .hchx-loc,
#hchx .hchx-head .hchx-loc .listing_main_image_location {
  float: none !important;
  width: auto !important;
  max-width: 100%;
  position: relative !important;
  left: auto !important;
  bottom: auto !important;
  margin-left: 0 !important;
  padding: 0 !important;
  text-shadow: none !important;
}

#hchx .hchx-head .hchx-loc {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
  align-items: center;
  color: var(--hchx-muted);
  font-size: 15px;
  margin-bottom: 14px;
  clear: both;
}

#hchx .hchx-head .hchx-facts {
  float: none !important;
  clear: both;
  width: auto !important;
}

@media (max-width: 991px) {
  #hchx .hchx-head,
  #hchx .hchx-head-main {
    display: block !important;
    width: auto !important;
  }
  #hchx .hchx-head h1.entry-title,
  #hchx .hchx-head h1.entry-title.entry-prop,
  #hchx .hchx-head .hchx-loc,
  #hchx .hchx-head .hchx-loc .listing_main_image_location {
    float: none !important;
    width: auto !important;
    max-width: none;
  }
}

/* ===== v5 (2026-11-14): generic rollout. Desktop gallery grid follows the number of distinct photos the
   post has (hchx-g-n1..n5, set by templates/hchx-gallery.php); map box hidden when the post has no coordinates. */
@media (min-width:768px){
  .hchx-g-n1 .hchx-g-track{grid-template-columns:1fr;grid-template-rows:1fr;aspect-ratio:2.25/1}
  .hchx-g-n1 .hchx-g-track li.hchx-tile-1{grid-row:auto}
  .hchx-g-n2 .hchx-g-track{grid-template-columns:2fr 1fr;grid-template-rows:1fr}
  .hchx-g-n2 .hchx-g-track li.hchx-tile-1{grid-row:auto}
  .hchx-g-n3 .hchx-g-track{grid-template-columns:2fr 1fr}
  .hchx-g-n4 .hchx-g-track{grid-template-columns:2fr 1fr 1fr}
  .hchx-g-n4 .hchx-g-track li.hchx-tile-2{grid-row:1 / span 2}
}
.hchx .hchx-nomap{display:none}
.hchx-loc-grid:has(.hchx-nomap){grid-template-columns:minmax(0,1fr)}
