/**
 * Property Photo Gallery — ported verbatim from the redcottage.com
 * YOOtheme template CSS (de-scoped), var-namespaced to --hrtk-pg-*.
 * Fonts deliberately inherit the site instead of forcing Montserrat.
 */
/* Layout vars (Hub "Photo Gallery" panel): --hrtk-pg-main-share is the large
   photo's UNITLESS share of the hero width (0.375 = the original 1.2fr of
   1.2fr 1fr 1fr), --hrtk-pg-gap the space between photos, --hrtk-pg-radius the
   corner radius. Display.php stamps non-default values inline on #pg-wrap. */
#pg-wrap {--hrtk-pg-accent: #B89535; --hrtk-pg-text: #1A1A1A; --hrtk-pg-text-secondary: #6B6B6B; --hrtk-pg-border: #E2DFDA; --hrtk-pg-border-light: #E8E5E0; --hrtk-pg-main-share: 0.375; --hrtk-pg-gap: 3px; --hrtk-pg-radius: 0px;}
#pg-wrap, #pg-wrap *, #pg-wrap *::before, #pg-wrap *::after {box-sizing: border-box !important;}
#pg-wrap {position: relative;}
/* Boxed mode: Display.php stamps .pg-boxed + --hrtk-pg-max-width when the Hub
   "Full width" toggle is off (or the shortcode passes max_width=). The cap sits
   on the wrapper so the fixed-position lightbox stays viewport-wide. */
#pg-wrap.pg-boxed {max-width: var(--hrtk-pg-max-width, 1200px) !important; margin-left: auto !important; margin-right: auto !important;}
/* Main column = its share of the width left after the two gaps; the two cell
   columns split the rest (identical to 1.2fr 1fr 1fr at the default share).
   max-height tracks the gap so a wider gap cannot clip the bottom row. */
#pg-wrap .pg-gallery {display: grid !important; grid-template-columns: calc((100% - 2 * var(--hrtk-pg-gap)) * var(--hrtk-pg-main-share)) 1fr 1fr; grid-template-rows: 260px 260px; gap: var(--hrtk-pg-gap); max-height: calc(520px + var(--hrtk-pg-gap)); overflow: hidden; position: relative;}
#pg-wrap .pg-gallery-main {grid-row: 1/3; overflow: hidden; position: relative;}
#pg-wrap .pg-gallery-main img {width: 100% !important; height: 100% !important; -o-object-fit: cover !important; object-fit: cover !important; cursor: pointer;}
#pg-wrap .pg-gallery-cell {overflow: hidden; position: relative;}
#pg-wrap .pg-gallery-cell img {width: 100% !important; height: 100% !important; -o-object-fit: cover !important; object-fit: cover !important; cursor: pointer;}
/* Corner radius: Display.php adds pg-radius-outer | pg-radius-all plus
   --hrtk-pg-radius only when the Hub radius is above 0. Outer rounds the grid
   as one block (it already clips overflow); all rounds every photo (cells clip
   their own overflow, so the hover overlay and the mobile slides round too). */
#pg-wrap.pg-radius-outer .pg-gallery {border-radius: var(--hrtk-pg-radius);}
#pg-wrap.pg-radius-all .pg-gallery-main, #pg-wrap.pg-radius-all .pg-gallery-cell {border-radius: var(--hrtk-pg-radius);}
/* Hover: a 10% darken overlay (Airbnb-style) instead of a scale-up zoom.
   pointer-events: none keeps clicks reaching the img openers; the show-all
   button sits above it at z-index 2. */
#pg-wrap .pg-gallery-main::after, #pg-wrap .pg-gallery-cell::after {content: ""; position: absolute; inset: 0; background: rgba(0,0,0,0.1); opacity: 0; transition: opacity 0.15s ease; pointer-events: none; z-index: 1;}
#pg-wrap .pg-gallery-main:hover::after, #pg-wrap .pg-gallery-cell:hover::after {opacity: 1;}
/* "Show all photos": Airbnb-spec (white, 1px #222 border, 8px radius, 14px/600).
   Unlike the rest of the module this button does NOT inherit the site font —
   every typographic/box property is pinned !important so theme button styles
   (font, letter-spacing, min-height, pill radii) cannot invade. */
#pg-wrap .pg-gallery-btn, #pg-wrap .pg-tour-btn {position: absolute !important; bottom: 20px; right: 20px; display: inline-flex !important; align-items: center !important; gap: 8px !important; margin: 0 !important; padding: 7px 15px !important; width: auto !important; height: auto !important; min-width: 0 !important; min-height: 0 !important; max-width: none !important; background: var(--hrtk-pg-btn-bg, #fff) !important; color: var(--hrtk-pg-btn-text, #222) !important; border: 1px solid var(--hrtk-pg-btn-border, #222) !important; border-radius: var(--hrtk-pg-btn-radius, 8px) !important; box-shadow: none !important; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif !important; font-size: 14px !important; font-weight: 600 !important; line-height: 18px !important; letter-spacing: normal !important; text-transform: none !important; text-decoration: none !important; text-shadow: none !important; white-space: nowrap !important; text-align: center !important; opacity: 1 !important; cursor: pointer !important; z-index: 2; transition: background-color 0.2s ease, transform 0.1s ease !important;}
#pg-wrap .pg-gallery-btn:hover, #pg-wrap .pg-tour-btn:hover {background: var(--hrtk-pg-btn-hover, #f7f7f7) !important; box-shadow: none !important;}
#pg-wrap .pg-gallery-btn:active, #pg-wrap .pg-tour-btn:active {transform: scale(0.96) !important;}
#pg-wrap .pg-gallery-btn svg, #pg-wrap .pg-tour-btn svg {display: block !important; width: 16px !important; height: 16px !important; flex: 0 0 auto !important; margin: 0 !important;}
#pg-wrap .pg-gallery-cell:nth-child(n+6) {display: none !important;}
/* 3D tour (Display tour_button): with a tour, "3D Tour" and "Show all photos"
   share one row over the grid's bottom-right corner; the row is positioned,
   the buttons in it are not. The tour button wears the show-all armor above
   (it may be an <a>, so color and decoration are pinned too). */
#pg-wrap .pg-gallery-actions {position: absolute !important; bottom: 20px; right: 20px; z-index: 2; display: flex !important; flex-wrap: wrap-reverse; justify-content: flex-end; align-items: center; gap: 8px; max-width: calc(100% - 40px);}
#pg-wrap .pg-gallery-actions > .pg-gallery-btn, #pg-wrap .pg-gallery-actions > .pg-tour-btn {position: static !important;}
#pg-wrap .pg-tour-btn:focus-visible, #pg-wrap .pg-mobile-tour:focus-visible {outline: 2px solid #222 !important; outline-offset: 2px !important;}
#pg-wrap .pg-mobile-counter, #pg-wrap .pg-mobile-showall, #pg-wrap .pg-mobile-actions {display: none;}
/* 3D tour dialog: a centered frame over a dark backdrop, or (pg-tour-fullscreen)
   the whole window. The script sets the iframe src on open, clears it on close.
   Its base class is pg-tour-dialog, never the bare pg-tour: that class is the
   photo tour mode on .pg-lightbox-grid (3.318.0 to 3.321.2 shared the name,
   which pinned the grid to the viewport and centered its sections). */
#pg-wrap .pg-tour-dialog {position: fixed !important; inset: 0; z-index: 1000001; display: flex !important; align-items: center; justify-content: center; animation: hrtk-pg-fade-in 0.2s ease;}
#pg-wrap .pg-tour-dialog[hidden] {display: none !important;}
#pg-wrap .pg-tour-backdrop {position: absolute; inset: 0; background: rgba(0,0,0,0.78);}
#pg-wrap .pg-tour-frame {position: relative; width: min(1200px, 92vw); height: min(800px, 82vh); background: #111; border-radius: 12px; overflow: hidden; box-shadow: 0 20px 60px rgba(0,0,0,0.4);}
#pg-wrap .pg-tour-fullscreen .pg-tour-frame {width: 100vw; height: 100vh; height: 100dvh; border-radius: 0; box-shadow: none;}
#pg-wrap .pg-tour-iframe {display: block !important; width: 100% !important; height: 100% !important; max-width: none !important; border: 0 !important; margin: 0 !important; padding: 0 !important;}
#pg-wrap .pg-tour-close {position: absolute !important; top: 12px; right: 12px; z-index: 2; display: inline-flex !important; align-items: center !important; justify-content: center !important; width: 40px !important; height: 40px !important; min-width: 0 !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important; background: rgba(255,255,255,0.95) !important; color: #222 !important; border: none !important; border-radius: 50% !important; box-shadow: 0 2px 8px rgba(0,0,0,0.25) !important; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif !important; font-size: 16px !important; font-weight: 600 !important; line-height: 1 !important; text-decoration: none !important; cursor: pointer !important;}
#pg-wrap .pg-tour-close:hover {background: #fff !important;}
#pg-wrap .pg-tour-close:focus-visible {outline: 2px solid #fff !important; outline-offset: 2px !important;}
#pg-wrap .pg-lightbox {display: none; position: fixed !important; top: 0; left: 0; width: 100%; height: 100%; background: rgba(250,250,248,0.98) !important; z-index: 1000000; flex-direction: column; overflow-y: auto; transition: background-color 0.25s ease;}
#pg-wrap .pg-lightbox.active {display: flex !important;}
#pg-wrap .pg-lightbox-header {position: sticky; top: 0; z-index: 10; background: rgba(250,250,248,0.96) !important; backdrop-filter: blur(10px); display: flex !important; align-items: center; justify-content: flex-start; padding: 12px 24px; border-bottom: 1px solid var(--hrtk-pg-border-light); transition: background-color 0.25s ease;}
#pg-wrap .pg-lightbox-title {font-family: inherit; font-size: 14.4px !important; font-weight: 400 !important; text-transform: uppercase; letter-spacing: 3px;}
/* "✕ Close", Airbnb-style: icon + label text button, left of the header.
   Fully armored like .pg-gallery-btn — themes style bare <button> hard. */
#pg-wrap .pg-lightbox-close {background: none !important; border: none !important; margin: 0 !important; padding: 8px 10px !important; width: auto !important; height: auto !important; min-width: 0 !important; min-height: 0 !important; box-shadow: none !important; display: inline-flex !important; align-items: center !important; gap: 8px !important; border-radius: 8px !important; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif !important; font-size: 14px !important; font-weight: 600 !important; line-height: 18px !important; letter-spacing: normal !important; text-transform: none !important; text-decoration: none !important; white-space: nowrap !important; color: var(--hrtk-pg-text) !important; cursor: pointer !important; transition: background-color 0.2s ease !important;}
#pg-wrap .pg-lightbox-close:hover {background: rgba(0,0,0,0.06) !important;}
/* The dialog moves focus here on open: ring for keyboard focus only. */
#pg-wrap .pg-lightbox-close:focus:not(:focus-visible) {outline: none !important;}
#pg-wrap .pg-lightbox-close:focus-visible {outline: 2px solid var(--hrtk-pg-text) !important; outline-offset: 2px !important;}
#pg-wrap .pg-lightbox-close-x {font-size: 15px !important; line-height: 1 !important;}
#pg-wrap .pg-lightbox-grid {max-width: 900px; margin: 0 auto; padding: 24px 40px 80px; display: flex; flex-direction: column; gap: 6px; width: 100%;}
#pg-wrap .pg-lightbox-grid img {width: 100% !important; cursor: pointer;}
#pg-wrap .pg-lightbox-grid .pg-lb-row {display: grid !important; gap: 6px;}
#pg-wrap .pg-lightbox-grid .pg-lb-row-single {grid-template-columns: 1fr;}
#pg-wrap .pg-lightbox-grid .pg-lb-row-double {grid-template-columns: 1fr 1fr;}
#pg-wrap .pg-lightbox-grid .pg-lb-row-double img {aspect-ratio: 4/3; -o-object-fit: cover !important; object-fit: cover !important;}
#pg-wrap .pg-lightbox-grid .pg-lb-row-single img {aspect-ratio: 16/9; -o-object-fit: cover !important; object-fit: cover !important;}
/* By room (Hub "Group photos by room"): the grid view is one block per room
   under a heading, each block restarting the single/double row rhythm.
   property-gallery.js builds the blocks from the payload's rooms list; a
   listing without room data keeps the flat grid. The heading inherits the
   site font like the rest of the module; size, weight and spacing are pinned
   so a theme's h3 rules cannot resize it inside the browser. */
#pg-wrap .pg-lightbox.pg-has-tour:not(.single-view) {background: rgb(250,250,248) !important;}
#pg-wrap .pg-lightbox.pg-has-tour:not(.single-view) .pg-lightbox-header {background: rgb(250,250,248) !important;}
#pg-wrap .pg-lightbox-grid.pg-tour {max-width: 1280px; padding: 32px 40px 96px; gap: 0;}
/* Photo tour index: one tile per room (cover photo + name); a tile scrolls to
   its section. Tiles are <button>s, armored like .pg-lightbox-close. */
#pg-wrap .pg-tour-index {margin: 0 0 56px; padding: 0;}
#pg-wrap .pg-tour-heading {margin: 0 0 28px !important; padding: 0 !important; font-family: inherit; font-size: 26px !important; font-weight: 600 !important; line-height: 1.2 !important; letter-spacing: normal !important; text-transform: none !important; color: var(--hrtk-pg-text) !important;}
#pg-wrap .pg-tour-tiles {display: grid !important; grid-template-columns: repeat(auto-fill, minmax(148px, 1fr)); gap: 24px 16px; margin: 0 !important; padding: 0 !important; list-style: none !important;}
#pg-wrap .pg-tour-tiles li {margin: 0 !important; padding: 0 !important; list-style: none !important;}
#pg-wrap .pg-tour-tiles li::before, #pg-wrap .pg-tour-tiles li::marker {content: none !important;}
#pg-wrap .pg-tour-tile {display: block !important; width: 100% !important; height: auto !important; min-width: 0 !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important; background: none !important; border: none !important; border-radius: 0 !important; box-shadow: none !important; font-family: inherit !important; font-size: 15px !important; font-weight: 400 !important; line-height: 1.35 !important; letter-spacing: normal !important; text-transform: none !important; text-align: left !important; text-decoration: none !important; color: var(--hrtk-pg-text) !important; cursor: pointer !important;}
#pg-wrap .pg-tour-thumb {display: block; aspect-ratio: 3/2; overflow: hidden; border-radius: calc(var(--hrtk-pg-radius, 0px) / 2); box-shadow: 0 2px 8px rgba(0,0,0,0.14); transition: box-shadow 0.2s ease, transform 0.2s ease;}
#pg-wrap .pg-tour-thumb img {display: block; width: 100% !important; height: 100% !important; -o-object-fit: cover !important; object-fit: cover !important; cursor: pointer;}
#pg-wrap .pg-tour-collage {display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 2px;}
#pg-wrap .pg-tour-collage img {min-height: 0;}
#pg-wrap .pg-tour-tile:hover .pg-tour-thumb {box-shadow: 0 6px 18px rgba(0,0,0,0.2); transform: translateY(-1px);}
#pg-wrap .pg-tour-tile:focus-visible {outline: none !important;}
#pg-wrap .pg-tour-tile:focus-visible .pg-tour-thumb {outline: 2px solid var(--hrtk-pg-text); outline-offset: 3px;}
#pg-wrap .pg-tour-label {display: block; margin-top: 10px; overflow-wrap: anywhere;}
#pg-wrap .pg-tour-tile[aria-current="true"] .pg-tour-thumb {outline: 2px solid var(--hrtk-pg-text); outline-offset: 3px;}
/* Pinned room index (toolkit#806): once the full index has scrolled under the
   header, a compact one-row bar of room names holds beneath it (fixed, so
   nothing in the grid moves) until the guest is back at the top. The script
   toggles pg-tour-bar-on and reads --pg-tour-bar for its scroll offsets. A
   site that keeps the old layout stamps pg-tour-static on #pg-wrap and gets
   no bar at all. Chips are <button>s, armored like .pg-lightbox-close.
   The bar is fixed, so it ends at --pg-lb-sb (the lightbox's own scrollbar
   width, published by the script), flush with the header, not over the track. */
#pg-wrap .pg-lightbox {--pg-tour-bar: 52px;}
#pg-wrap .pg-tour-bar {display: none; position: fixed; top: var(--pg-lb-head, 56px); left: 0; right: var(--pg-lb-sb, 0px); z-index: 9; height: var(--pg-tour-bar); box-sizing: border-box; margin: 0; padding: 0 40px; background: rgb(250,250,248); border-bottom: 1px solid rgba(0,0,0,0.08);}
#pg-wrap .pg-lightbox.pg-tour-bar-on:not(.single-view) .pg-tour-bar {display: block;}
#pg-wrap .pg-tour-bar-list {display: flex !important; gap: 8px; height: 100%; align-items: center; max-width: 1200px; margin: 0 auto !important; padding: 0 !important; list-style: none !important; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch;}
#pg-wrap .pg-tour-bar-list::-webkit-scrollbar {display: none;}
/* Soft edges on the strip: the script sets pg-fade-l / pg-fade-r only while
   chips hide past that edge, so the first and last chip read crisp when they
   are fully in view. A 0px stop is no fade at all. */
#pg-wrap .pg-tour-bar-list {--pg-fade-l: 0px; --pg-fade-r: 0px; -webkit-mask-image: linear-gradient(to right, transparent, #000 var(--pg-fade-l), #000 calc(100% - var(--pg-fade-r)), transparent); mask-image: linear-gradient(to right, transparent, #000 var(--pg-fade-l), #000 calc(100% - var(--pg-fade-r)), transparent);}
#pg-wrap .pg-tour-bar-list.pg-fade-l {--pg-fade-l: 48px;}
#pg-wrap .pg-tour-bar-list.pg-fade-r {--pg-fade-r: 48px;}
#pg-wrap .pg-tour-bar-list li {flex: 0 0 auto; margin: 0 !important; padding: 0 !important; list-style: none !important;}
#pg-wrap .pg-tour-bar-list li::before, #pg-wrap .pg-tour-bar-list li::marker {content: none !important;}
#pg-wrap .pg-tour-chip {display: inline-block !important; margin: 0 !important; padding: 6px 12px !important; width: auto !important; height: auto !important; min-width: 0 !important; min-height: 0 !important; background: none !important; border: 1px solid rgba(0,0,0,0.14) !important; border-radius: 999px !important; box-shadow: none !important; font-family: inherit; font-size: 14px !important; font-weight: 500 !important; line-height: 1.2 !important; letter-spacing: normal !important; text-transform: none !important; color: var(--hrtk-pg-text) !important; cursor: pointer; white-space: nowrap;}
#pg-wrap .pg-tour-chip:hover {background: rgba(0,0,0,0.06) !important;}
#pg-wrap .pg-tour-chip[aria-current="true"] {background: var(--hrtk-pg-text) !important; border-color: var(--hrtk-pg-text) !important; color: rgb(250,250,248) !important;}
#pg-wrap .pg-tour-chip:focus:not(:focus-visible) {outline: none !important;}
#pg-wrap .pg-tour-chip:focus-visible {outline: 2px solid var(--hrtk-pg-text) !important; outline-offset: 2px !important;}
/* Room names stick below the bar while it shows, not under it. */
#pg-wrap .pg-lightbox.pg-tour-bar-on .pg-lb-room-head {top: calc(var(--pg-lb-head, 56px) + var(--pg-tour-bar) + 28px);}
/* One section per room: the name holds in the left column (sticky under the
   lightbox header, whose height property-gallery.js publishes as
   --pg-lb-head) while the room's photos scroll in the right one. The heading
   inherits the site font like the rest of the module; size, weight and spacing
   are pinned so a theme's h3 rules cannot resize it. */
#pg-wrap .pg-lb-room {display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); -moz-column-gap: 48px; column-gap: 48px; align-items: start;}
#pg-wrap .pg-lb-room + .pg-lb-room {margin-top: 72px;}
#pg-wrap .pg-lb-room-head {position: sticky; top: calc(var(--pg-lb-head, 56px) + 28px); padding-bottom: 8px;}
#pg-wrap .pg-lb-room-title {margin: 0 !important; padding: 0 !important; font-family: inherit; font-size: 26px !important; font-weight: 600 !important; line-height: 1.2 !important; letter-spacing: normal !important; text-transform: none !important; color: var(--hrtk-pg-text) !important; overflow-wrap: anywhere;}
#pg-wrap .pg-lb-room-meta {margin: 10px 0 0 !important; padding: 0 !important; font-family: inherit; font-size: 16px !important; font-weight: 400 !important; line-height: 1.5 !important; color: var(--hrtk-pg-text-secondary) !important;}
/* The room's details line (the listing's custom field): two rows, then a
   "Show more" the script reveals only when the clamp hid something. Under
   a bed line it sits tighter, as one block of secondary text. */
#pg-wrap .pg-lb-room-details {margin: 10px 0 0 !important; padding: 0 !important; font-family: inherit; font-size: 16px !important; font-weight: 400 !important; line-height: 1.5 !important; color: var(--hrtk-pg-text-secondary) !important; overflow-wrap: anywhere;}
#pg-wrap .pg-lb-room-meta + .pg-lb-room-details {margin-top: 4px !important;}
#pg-wrap .pg-lb-room-details:not(.is-open) {display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;}
#pg-wrap .pg-lb-room-more {display: inline-block !important; width: auto !important; height: auto !important; min-width: 0 !important; min-height: 0 !important; margin: 6px 0 0 !important; padding: 0 !important; background: none !important; border: none !important; border-radius: 0 !important; box-shadow: none !important; font-family: inherit !important; font-size: 16px !important; font-weight: 600 !important; line-height: 1.5 !important; letter-spacing: normal !important; text-transform: none !important; text-decoration: underline !important; text-underline-offset: 2px; color: var(--hrtk-pg-text) !important; cursor: pointer !important;}
#pg-wrap .pg-lb-room-more[hidden] {display: none !important;}
#pg-wrap .pg-lb-room-more:focus-visible {outline: 2px solid var(--hrtk-pg-text); outline-offset: 3px;}
#pg-wrap .pg-lb-room-photos {display: flex; flex-direction: column; gap: var(--hrtk-pg-gap, 8px); min-width: 0;}
/* Mosaic blocks (planMosaic): one photo full width, two side by side, three as
   two stacked beside one tall. Cells crop; the photo fills its cell. */
#pg-wrap .pg-mosaic {display: grid; gap: var(--hrtk-pg-gap, 8px);}
#pg-wrap .pg-mosaic-full {grid-template-columns: 1fr;}
#pg-wrap .pg-mosaic-pair, #pg-wrap .pg-mosaic-trio {grid-template-columns: 1fr 1fr;}
#pg-wrap .pg-mosaic-cell {position: relative; overflow: hidden; aspect-ratio: 4/3; border-radius: calc(var(--hrtk-pg-radius, 0px) / 2);}
#pg-wrap .pg-mosaic-full .pg-mosaic-cell {aspect-ratio: 3/2;}
#pg-wrap .pg-mosaic-cell img {position: absolute; inset: 0; width: 100% !important; height: 100% !important; -o-object-fit: cover !important; object-fit: cover !important; transition: filter 0.2s ease;}
#pg-wrap .pg-mosaic-cell:hover img {filter: brightness(0.92);}
#pg-wrap .pg-mosaic-trio .pg-mosaic-cell {grid-column: 1;}
#pg-wrap .pg-mosaic-trio .pg-mosaic-tall {grid-column: 2; grid-row: 1 / span 2; aspect-ratio: auto;}
#pg-wrap .pg-mosaic-trio.pg-mosaic-flip .pg-mosaic-cell {grid-column: 2;}
#pg-wrap .pg-mosaic-trio.pg-mosaic-flip .pg-mosaic-tall {grid-column: 1;}
@media (max-width: 900px) {
	#pg-wrap .pg-lightbox-grid.pg-tour {padding: 24px 24px 80px;}
	#pg-wrap .pg-lb-room {grid-template-columns: 1fr; row-gap: 14px;}
	#pg-wrap .pg-lb-room + .pg-lb-room {margin-top: 48px;}
	/* One column: the name rides under the header while its room scrolls. */
	#pg-wrap .pg-lb-room-head {top: var(--pg-lb-head, 56px); z-index: 5; margin: 0 -24px; padding: 12px 24px; background: rgba(250,250,248,0.96); backdrop-filter: blur(10px);}
	#pg-wrap .pg-lb-room-title, #pg-wrap .pg-tour-heading {font-size: 21px !important;}
	#pg-wrap .pg-lb-room-meta {margin-top: 4px !important; font-size: 14px !important;}
	#pg-wrap .pg-lb-room-details {margin-top: 4px !important; font-size: 14px !important;}
	#pg-wrap .pg-lb-room-more {margin-top: 4px !important; font-size: 14px !important;}
	#pg-wrap .pg-tour-index {margin-bottom: 36px;}
	/* The index becomes a swipe strip that bleeds to the screen edges. */
	#pg-wrap .pg-tour-tiles {display: flex !important; gap: 12px; margin: 0 -24px !important; padding: 4px 24px 12px !important; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none; -webkit-overflow-scrolling: touch;}
	#pg-wrap .pg-tour-tiles::-webkit-scrollbar {display: none;}
	#pg-wrap .pg-tour-tiles li {flex: 0 0 132px; scroll-snap-align: start;}
	#pg-wrap .pg-tour-tile {font-size: 14px !important;}
	/* The bar bleeds to the screen edges like the swipe strip; the room name
	   under it rides directly beneath the bar. */
	#pg-wrap .pg-tour-bar {padding: 0 16px;}
	#pg-wrap .pg-lightbox.pg-tour-bar-on .pg-lb-room-head {top: calc(var(--pg-lb-head, 56px) + var(--pg-tour-bar));}
}
#pg-wrap .pg-lightbox-single {display: none; flex: 1; align-items: center; justify-content: center; position: relative; min-height: 0;}
#pg-wrap .pg-lightbox.single-view .pg-lightbox-grid {display: none !important;}
#pg-wrap .pg-lightbox.single-view .pg-lightbox-single {display: flex !important;}
/* Single view goes Airbnb-black: dark backdrop, borderless dark header.
   --pg-single-bg is inline-driven by the drag-down-to-close gesture
   (property-gallery.js) so the backdrop alpha can track the finger. */
#pg-wrap .pg-lightbox.single-view {background: var(--pg-single-bg, #000) !important;}
#pg-wrap .pg-lightbox.single-view .pg-lightbox-header {background: #000 !important; border-bottom: none !important; backdrop-filter: none; -webkit-backdrop-filter: none;}
#pg-wrap .pg-lightbox.single-view .pg-lightbox-close {color: #fff !important;}
#pg-wrap .pg-lightbox.single-view .pg-lightbox-close:hover {background: rgba(255,255,255,0.12) !important;}
#pg-wrap .pg-lightbox-single-img {max-width: 90% !important; max-height: calc(100vh - 120px); -o-object-fit: contain !important; object-fit: contain !important;}
/* Prev/next: Airbnb's white-outlined circles on the black single view. */
#pg-wrap .pg-lightbox-nav {position: absolute !important; top: 50%; transform: translateY(-50%); background: transparent !important; border: 1px solid rgba(255,255,255,0.75) !important; margin: 0 !important; padding: 0 !important; min-width: 0 !important; min-height: 0 !important; width: 44px !important; height: 44px !important; border-radius: 50% !important; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif !important; font-size: 22.4px !important; font-weight: 400 !important; line-height: 1 !important; letter-spacing: normal !important; text-decoration: none !important; text-shadow: none !important; box-shadow: none !important; cursor: pointer; display: flex !important; align-items: center; justify-content: center; color: #fff !important; z-index: 2; transition: background-color 0.2s ease !important;}
#pg-wrap .pg-lightbox-nav:hover {background: rgba(255,255,255,0.12) !important;}
#pg-wrap .pg-lightbox-prev {left: 24px;}
#pg-wrap .pg-lightbox-next {right: 24px;}
/* Counter sits centered in the header (Airbnb "1 / 83"); single view only. */
#pg-wrap .pg-lightbox-counter {display: none; position: absolute !important; left: 50%; top: 50%; transform: translate(-50%, -50%); margin: 0 !important; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif !important; font-size: 14px !important; font-weight: 500 !important; line-height: 18px !important; letter-spacing: normal !important; color: var(--hrtk-pg-text) !important;}
#pg-wrap .pg-lightbox.single-view .pg-lightbox-counter {display: block !important; color: #fff !important;}
/* Caption: centered under the photo on the black backdrop. */
#pg-wrap .pg-lightbox-caption {position: absolute; bottom: 24px; left: 50%; transform: translateX(-50%); max-width: 80%; text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin: 0 !important; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif !important; font-size: 14px !important; font-weight: 400 !important; line-height: 20px !important; letter-spacing: normal !important; color: #c9c9c9 !important;}
#pg-wrap .pg-lightbox-caption:empty {display: none;}
#pg-data {display: none !important;}
@media (max-width: 1024px) {
/* One cell column beside the main photo: its share is half the desktop pair's,
   so main = 2s / (1 + s) of the width (0.375 gives the original 1.2fr 1fr). */
#pg-wrap .pg-gallery {grid-template-columns: calc((100% - var(--hrtk-pg-gap)) * 2 * var(--hrtk-pg-main-share) / (1 + var(--hrtk-pg-main-share))) 1fr !important; grid-template-rows: 260px 260px !important; max-height: calc(520px + var(--hrtk-pg-gap)) !important;}
#pg-wrap .pg-gallery-main {grid-row: 1/3 !important; grid-column: 1/2 !important;}
#pg-wrap .pg-gallery-main img {aspect-ratio: auto !important;}
#pg-wrap .pg-gallery-cell:nth-child(2), #pg-wrap .pg-gallery-cell:nth-child(3) {display: none !important;}
#pg-wrap .pg-gallery-cell:nth-child(4) {display: block !important; grid-column: 2 !important; grid-row: 1 !important;}
#pg-wrap .pg-gallery-cell:nth-child(5) {display: block !important; grid-column: 2 !important; grid-row: 2 !important;}
}
@media (max-width: 640px) {
#pg-wrap .pg-gallery-cell, #pg-wrap .pg-gallery-cell:nth-child(n+4), #pg-wrap .pg-gallery-cell:nth-child(n+6) {display: block !important;}
#pg-wrap .pg-gallery {grid-template-columns: none !important; grid-template-rows: none !important; display: flex !important; flex-wrap: nowrap !important; overflow-x: scroll !important; overflow-y: hidden !important; scroll-snap-type: x mandatory !important; -webkit-overflow-scrolling: touch !important; scrollbar-width: none; max-height: none !important; height: auto !important; gap: 0 !important; position: relative !important; touch-action: pan-x pan-y !important;  width: 100% !important;}
#pg-wrap .pg-gallery::-webkit-scrollbar {display: none;}
#pg-wrap .pg-gallery-main, #pg-wrap .pg-gallery-cell {flex: 0 0 100% !important; min-width: 100% !important; max-width: 100% !important; width: 100% !important; height: auto !important; grid-row: auto !important; grid-column: auto !important; scroll-snap-align: start !important; scroll-snap-stop: normal !important; position: relative !important;}
#pg-wrap .pg-gallery-main img, #pg-wrap .pg-gallery-cell img {width: 100% !important; height: auto !important; aspect-ratio: 1 / 1 !important; -o-object-fit: cover !important; object-fit: cover !important; display: block !important;}
#pg-wrap .pg-gallery-cell .pg-gallery-btn {display: none !important;}
#pg-wrap .pg-mobile-counter {display: block !important; position: absolute !important; bottom: 14px; left: 14px; z-index: 4; background: rgba(0, 0, 0, 0.55); color: #ffffff; font-family: inherit; font-size: 11.2px; font-weight: 500; letter-spacing: 0.3px; padding: 5px 11px; border-radius: 100px; pointer-events: none; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);}
#pg-wrap .pg-mobile-showall {display: inline-flex !important; align-items: center !important; gap: 6px !important; position: absolute !important; bottom: 14px; right: 14px; z-index: 4; margin: 0 !important; padding: 6px 11px !important; width: auto !important; height: auto !important; min-width: 0 !important; min-height: 0 !important; background: var(--hrtk-pg-btn-bg, #fff) !important; color: var(--hrtk-pg-btn-text, #222) !important; border: none !important; border-radius: 100px !important; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15) !important; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif !important; font-size: 12px !important; font-weight: 600 !important; line-height: 16px !important; letter-spacing: normal !important; text-transform: none !important; text-decoration: none !important; white-space: nowrap !important; cursor: pointer !important; touch-action: manipulation;}
#pg-wrap .pg-mobile-showall svg {display: block !important; width: 14px !important; height: 14px !important; flex: 0 0 auto !important;}
/* 3D tour on mobile: the tour pill left of "Show all", both in one row that
   takes the show-all pill's place; the pill copies its armor. */
#pg-wrap .pg-gallery-actions {display: none !important;}
#pg-wrap .pg-mobile-actions {display: flex !important; align-items: center; gap: 6px; position: absolute !important; bottom: 14px; right: 14px; z-index: 4;}
#pg-wrap .pg-mobile-actions > .pg-mobile-showall {position: static !important;}
#pg-wrap .pg-mobile-tour {display: inline-flex !important; align-items: center !important; gap: 6px !important; margin: 0 !important; padding: 6px 11px !important; width: auto !important; height: auto !important; min-width: 0 !important; min-height: 0 !important; background: var(--hrtk-pg-btn-bg, #fff) !important; color: var(--hrtk-pg-btn-text, #222) !important; border: none !important; border-radius: 100px !important; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15) !important; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif !important; font-size: 12px !important; font-weight: 600 !important; line-height: 16px !important; letter-spacing: normal !important; text-transform: none !important; text-decoration: none !important; white-space: nowrap !important; cursor: pointer !important; touch-action: manipulation;}
#pg-wrap .pg-mobile-tour svg {display: block !important; width: 14px !important; height: 14px !important; flex: 0 0 auto !important;}
#pg-wrap .pg-tour-modal .pg-tour-frame {width: 100vw; height: 75vh; height: 75dvh; border-radius: 0;}
#pg-wrap .pg-lightbox-header {padding: 12px 16px;}
#pg-wrap .pg-lightbox-grid {padding: 16px 20px 60px;}
}
.pg-lightbox-title {display: none !important;}
.pg-lightbox-grid .pg-lb-row.pg-lb-row-double:last-child {display: grid !important; grid-template-columns: 1fr !important;}
.pg-lightbox-grid .pg-lb-row.pg-lb-row-double:last-child img:only-child {width: 100% !important; max-width: 100% !important; display: block;}
/* Motion — entrances fade-in-up, exits fade-out-down. The lightbox itself only
   fades (a translating fixed overlay would drag its sticky header along); the
   rise happens on the grid / single-view content inside it. `.pg-closing` is
   JS-managed (property-gallery.js close()): it plays the exit before `.active`
   is dropped, and must stay AFTER the `.active` rules so it wins the cascade. */
@keyframes hrtk-pg-fade-in {from {opacity: 0;} to {opacity: 1;}}
@keyframes hrtk-pg-fade-out {from {opacity: 1;} to {opacity: 0;}}
@keyframes hrtk-pg-fade-in-up {from {opacity: 0; transform: translateY(18px);} to {opacity: 1; transform: translateY(0);}}
@keyframes hrtk-pg-fade-out-down {from {opacity: 1; transform: translateY(0);} to {opacity: 0; transform: translateY(14px);}}
#pg-wrap .pg-lightbox.active {animation: hrtk-pg-fade-in 0.3s cubic-bezier(0.22, 1, 0.36, 1) both;}
#pg-wrap .pg-lightbox.active .pg-lightbox-grid {animation: hrtk-pg-fade-in-up 0.45s cubic-bezier(0.22, 1, 0.36, 1) both;}
#pg-wrap .pg-lightbox.single-view .pg-lightbox-single {animation: hrtk-pg-fade-in-up 0.4s cubic-bezier(0.22, 1, 0.36, 1) both;}
/* Prev/next photo swap: film dissolve. Once the incoming photo has pixels,
   the JS parks the outgoing photo in .pg-ghost-wrap — a full-area layer on the
   single-view backdrop color, centered like the real photo — and fades the
   whole layer out over the new view. The overlap crossfades directly and any
   region the two photos don't share fades via the backdrop, so a portrait /
   landscape swap can't pop its exposed edges in at full opacity (the 3.211.1
   "jump"). .pg-img-swap (plain fade-in) remains the first-view fallback. */
#pg-wrap .pg-lightbox-single-img.pg-img-swap {animation: hrtk-pg-fade-in 0.45s ease both;}
#pg-wrap .pg-ghost-wrap {display: none; position: absolute; inset: 0; background: #000; align-items: center; justify-content: center; pointer-events: none;}
#pg-wrap .pg-ghost-wrap.pg-ghost-active {display: flex; animation: hrtk-pg-fade-out 0.45s ease both;}
#pg-wrap .pg-img-ghost {display: block;}
#pg-wrap .pg-lightbox.pg-closing {animation: hrtk-pg-fade-out 0.26s ease both;}
#pg-wrap .pg-lightbox.pg-closing .pg-lightbox-grid, #pg-wrap .pg-lightbox.pg-closing .pg-lightbox-single {animation: hrtk-pg-fade-out-down 0.26s cubic-bezier(0.55, 0, 0.75, 0.4) both;}
/* Drag gestures (property-gallery.js pointer handlers). touch-action: none
   is safe here: the single view never scrolls; the grid view is untouched. */
#pg-wrap .pg-lightbox-single {touch-action: none;}
#pg-wrap .pg-lightbox-single-img {-webkit-user-drag: none; -webkit-user-select: none; -moz-user-select: none; user-select: none;}
/* Zoom (toolkit#823, property-gallery.js zoom handlers). The header button
   is the mouse and keyboard path; it only shows in single view. While
   zoomed the photo pans under a grab cursor and the arrows and caption step
   back so they stop reading as part of the photo. */
#pg-wrap .pg-lightbox-single-img {transform-origin: center center;}
#pg-wrap .pg-lightbox.pg-zoomed .pg-lightbox-single-img {cursor: grab;}
#pg-wrap .pg-lightbox.pg-zoomed .pg-lightbox-single-img:active {cursor: grabbing;}
#pg-wrap .pg-lightbox.pg-zoomed .pg-lightbox-nav, #pg-wrap .pg-lightbox.pg-zoomed .pg-lightbox-caption {opacity: 0.35; transition: opacity 0.2s ease;}
#pg-wrap .pg-lightbox-zoom {display: none !important; margin: 0 0 0 auto !important; padding: 8px 10px !important; width: auto !important; height: auto !important; min-width: 0 !important; min-height: 0 !important; background: none !important; border: none !important; box-shadow: none !important; border-radius: 8px !important; color: var(--hrtk-pg-text) !important; cursor: pointer !important; align-items: center !important; justify-content: center !important; line-height: 1 !important; transition: background-color 0.2s ease !important;}
#pg-wrap .pg-lightbox.single-view .pg-lightbox-zoom {display: inline-flex !important; color: #fff !important;}
#pg-wrap .pg-lightbox.single-view .pg-lightbox-zoom:hover {background: rgba(255,255,255,0.12) !important;}
#pg-wrap .pg-lightbox-zoom:focus:not(:focus-visible) {outline: none !important;}
#pg-wrap .pg-lightbox-zoom:focus-visible {outline: 2px solid #fff !important; outline-offset: 2px !important;}
#pg-wrap .pg-lightbox-zoom svg {width: 20px !important; height: 20px !important; display: block !important;}
#pg-wrap .pg-lightbox-zoom .pg-zoom-out {display: none !important;}
#pg-wrap .pg-lightbox.pg-zoomed .pg-lightbox-zoom .pg-zoom-in {display: none !important;}
#pg-wrap .pg-lightbox.pg-zoomed .pg-lightbox-zoom .pg-zoom-out {display: block !important;}
/* Downward drag-to-close: the backdrop alpha follows the finger via
   --pg-single-bg, so the base 0.25s background transition is cut to keep it
   1:1; the chrome dims out of the way. Removing the class springs both back. */
#pg-wrap .pg-lightbox.pg-drag-dismiss {transition: none !important;}
#pg-wrap .pg-lightbox.pg-drag-dismiss .pg-lightbox-header, #pg-wrap .pg-lightbox.pg-drag-dismiss .pg-lightbox-nav, #pg-wrap .pg-lightbox.pg-drag-dismiss .pg-lightbox-caption {opacity: 0.25; transition: opacity 0.2s ease;}
/* Swipe slide-dissolve: the ghost (outgoing photo) picks up the finger's
   release offset (--pg-drag-x, inline) and keeps sliding in the swipe
   direction while dissolving, as the incoming photo settles in from the far
   side. Button/keyboard nav keeps the pure film dissolve above. */
@keyframes hrtk-pg-ghost-out-left {from {opacity: 1; transform: translateX(var(--pg-drag-x, 0px));} to {opacity: 0; transform: translateX(calc(var(--pg-drag-x, 0px) - 180px));}}
@keyframes hrtk-pg-ghost-out-right {from {opacity: 1; transform: translateX(var(--pg-drag-x, 0px));} to {opacity: 0; transform: translateX(calc(var(--pg-drag-x, 0px) + 180px));}}
@keyframes hrtk-pg-img-in-left {from {transform: translateX(64px);} to {transform: translateX(0);}}
@keyframes hrtk-pg-img-in-right {from {transform: translateX(-64px);} to {transform: translateX(0);}}
#pg-wrap .pg-ghost-wrap.pg-ghost-active.pg-ghost-slide-left {animation: hrtk-pg-ghost-out-left 0.38s cubic-bezier(0.22, 1, 0.36, 1) both;}
#pg-wrap .pg-ghost-wrap.pg-ghost-active.pg-ghost-slide-right {animation: hrtk-pg-ghost-out-right 0.38s cubic-bezier(0.22, 1, 0.36, 1) both;}
#pg-wrap .pg-lightbox-single-img.pg-img-in-left {animation: hrtk-pg-img-in-left 0.38s cubic-bezier(0.22, 1, 0.36, 1) both;}
#pg-wrap .pg-lightbox-single-img.pg-img-in-right {animation: hrtk-pg-img-in-right 0.38s cubic-bezier(0.22, 1, 0.36, 1) both;}
@media (prefers-reduced-motion: reduce) {
#pg-wrap .pg-lightbox.active, #pg-wrap .pg-lightbox.active .pg-lightbox-grid, #pg-wrap .pg-lightbox.single-view .pg-lightbox-single, #pg-wrap .pg-lightbox-single-img.pg-img-swap, #pg-wrap .pg-lightbox-single-img.pg-img-in-left, #pg-wrap .pg-lightbox-single-img.pg-img-in-right, #pg-wrap .pg-ghost-wrap.pg-ghost-active, #pg-wrap .pg-lightbox.pg-closing, #pg-wrap .pg-lightbox.pg-closing .pg-lightbox-grid, #pg-wrap .pg-lightbox.pg-closing .pg-lightbox-single, #pg-wrap .pg-tour-dialog {animation: none !important;}
}
