/* All presentation is scoped to the shortcode: no theme or page-wide resets. */
.gms-app {
    --gms-forest: #1f1c14;
    --gms-forest-dark: #1f1c14;
    --gms-orange: #ed5412;
    --gms-orange-dark: #ce430a;
    --gms-cream: #eff5e6;
    --gms-paper: #fff;
    --gms-ink: #1f1c14;
    --gms-muted: #605d53;
    --gms-border: #d9e2ce;
    --gms-map-height: 640px;
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    margin: 1.5rem 0;
    padding: 0;
    color: var(--gms-ink);
    font-family: var(--gm-body-font, 'DM Sans', Arial, sans-serif);
    font-size: 16px;
    line-height: 1.55;
    text-align: left;
    color-scheme: light;
    container-type: inline-size;
    container-name: gms-stays;
}

.gms-app *,
.gms-app *::before,
.gms-app *::after {
    box-sizing: border-box;
}

.gms-app [hidden] {
    display: none !important;
}

.gms-app :where(h1, h2, h3, h4, h5, h6, p, ul, ol, figure) {
    margin: 0;
    padding: 0;
    color: inherit;
    line-height: inherit;
    letter-spacing: normal;
    text-transform: none;
}

.gms-app :where(a, button, input) {
    -webkit-tap-highlight-color: transparent;
}

.gms-app a {
    color: var(--gms-forest);
}

.gms-app :where(a, button, input):focus-visible {
    outline: 3px solid var(--gms-orange);
    outline-offset: 3px;
}

.gms-app .gms-header {
    margin: 0 0 1.5rem;
    max-width: 760px;
}

.gms-app .gms-eyebrow,
.gms-app .gms-kicker {
    margin: 0 0 .5rem;
    color: var(--gms-orange-dark);
    font-size: .76rem;
    font-weight: 750;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.gms-app .gms-title {
    margin: 0 0 .6rem;
    color: var(--gms-forest-dark);
    font-family: var(--gm-heading-font, 'Fraunces', Georgia, serif);
    font-size: 27px;
    font-weight: 800;
    line-height: 1.25;
    letter-spacing: -.025em;
}

.gms-app .gms-intro,
.gms-app .gms-subtitle {
    margin: 0;
    color: var(--gms-muted);
    font-size: .95rem;
    line-height: 1.65;
}

.gms-app .gms-layout {
    display: grid;
    grid-template-columns: minmax(280px, 340px) minmax(0, 1fr);
    gap: 1.25rem;
    align-items: start;
    min-width: 0;
}

.gms-app .gms-sidebar,
.gms-app .gms-list-panel,
.gms-app .gms-list,
.gms-app .gms-card-body,
.gms-app .gms-card-content {
    min-width: 0;
}

.gms-app .gms-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .65rem .75rem;
    margin: 0 0 1rem;
    padding: 1rem;
    border: 1px solid var(--gms-border);
    border-radius: 7px;
    background: var(--gms-cream);
}

.gms-app .gms-search-wrap,
.gms-app .gms-search-field {
    flex: 1 1 210px;
    width: 100%;
    min-width: 0;
}

.gms-app .gms-search-label {
    display: block;
    margin: 0 0 .4rem;
    color: var(--gms-forest-dark);
    font-family: var(--gm-ui-font, 'Jost', Arial, sans-serif);
    font-size: 16px;
    font-weight: 600;
}

.gms-app input.gms-search {
    display: block;
    flex: 1 1 200px;
    width: 100%;
    min-width: 0;
    min-height: 45px;
    height: auto;
    margin: 0;
    padding: .65rem .85rem;
    border: 1px solid #a9b8aa;
    border-radius: 8px;
    background: var(--gms-paper);
    color: var(--gms-ink);
    font-family: var(--gm-body-font, 'DM Sans', Arial, sans-serif);
    font-size: .9rem;
    font-weight: 400;
    line-height: 1.4;
    box-shadow: none;
    -webkit-appearance: auto;
    appearance: auto;
}

.gms-app input.gms-search::placeholder {
    color: #68766c;
    opacity: 1;
}

.gms-app input.gms-search:focus {
    border-color: var(--gms-forest);
    outline: 2px solid var(--gms-forest);
    outline-offset: 2px;
    background: var(--gms-paper);
    color: var(--gms-ink);
    box-shadow: none;
}

.gms-app .gms-count {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    margin: 0;
    padding: .3rem .65rem;
    border-radius: 30px;
    background: #eff5e6;
    color: var(--gms-forest-dark);
    font-size: .77rem;
    font-weight: 650;
    line-height: 1.5;
}

.gms-app :is(.gms-show-map, .gms-reset, .gms-load-map, .gms-affiliate, .gms-popup-link, .gms-view-all, .gms-column-toggle) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    width: auto;
    min-height: 44px;
    height: auto;
    margin: 0;
    padding: 10px 15px;
    border: 1px solid transparent;
    border-radius: 4px;
    background: none;
    color: var(--gms-forest);
    font-family: var(--gm-ui-font, 'Jost', Arial, sans-serif);
    font-size: 16px;
    font-weight: 600;
    line-height: 1.35;
    text-align: center;
    text-transform: none;
    text-decoration: none;
    letter-spacing: normal;
    box-shadow: none;
    cursor: pointer;
    transition: background-color .16s, border-color .16s, color .16s;
}

.gms-app .gms-reset {
    min-height: 36px;
    padding: .4rem .25rem;
    text-decoration: underline;
    text-underline-offset: .2em;
}

.gms-app .gms-reset:hover {
    background: transparent;
    color: var(--gms-orange-dark);
}

.gms-app .gms-list {
    display: grid;
    gap: 1.1rem;
    align-content: start;
    margin: 0;
    padding: 12px;
    list-style: none;
    scrollbar-color: #b7c4b7 var(--gms-cream);
    scrollbar-width: thin;
}

.gms-app.gms-mode-combined .gms-list {
    max-height: var(--gms-map-height);
    overflow-x: hidden;
    overflow-y: auto;
}

.gms-app .gms-card {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--gms-border);
    border-radius: 7px;
    background: var(--gms-paper);
    color: var(--gms-ink);
    box-shadow: 0 2px 5px rgb(30 57 39 / 3%);
    scroll-margin-block: 1rem;
    transition: border-color .16s, box-shadow .16s;
}

.gms-app .gms-card:hover {
    border-color: #b8c8b9;
    box-shadow: 0 4px 14px rgb(30 57 39 / 7%);
}

.gms-app .gms-card.gms-is-selected {
    border-color: var(--gms-forest);
    box-shadow: 0 0 0 2px var(--gms-forest), 0 4px 14px rgb(30 57 39 / 8%);
}

/* A steady orange halo, including when a featured stay is hovered or selected. */
.gms-app .gms-card.gms-card-featured {
    border-color: #ed8b5c;
    box-shadow: 0 0 0 1px rgb(237 84 18 / 16%), 0 0 12px 3px rgb(237 84 18 / 24%), 0 4px 10px rgb(237 84 18 / 12%);
}

.gms-app .gms-card.gms-card-featured:hover {
    border-color: var(--gms-orange);
    box-shadow: 0 0 0 1px rgb(237 84 18 / 22%), 0 0 14px 3px rgb(237 84 18 / 30%), 0 4px 12px rgb(237 84 18 / 15%);
}

.gms-app .gms-card.gms-card-featured.gms-is-selected {
    border-color: var(--gms-forest);
    box-shadow: 0 0 0 2px var(--gms-forest), 0 0 14px 3px rgb(237 84 18 / 30%);
}

.gms-app .gms-card:focus-visible {
    outline: 3px solid var(--gms-orange);
    outline-offset: 3px;
}

.gms-app .gms-list-controls {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: .65rem 1rem;
    margin: 1rem 0 0;
    padding: .25rem 12px;
    text-align: center;
}

.gms-app .gms-list-summary {
    color: var(--gms-muted);
    font-size: .8rem;
}

.gms-app .gms-view-all {
    border-color: var(--gms-orange-dark);
    background: var(--gms-orange-dark);
    color: #fff;
}

.gms-app .gms-view-all:hover {
    border-color: #aa3608;
    background: #aa3608;
    color: #fff;
}

.gms-app .gms-view-options {
    display: none;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    gap: .5rem;
    margin: 0 12px .5rem;
}

.gms-app .gms-view-label {
    margin-right: .25rem;
    color: var(--gms-muted);
    font-size: .8rem;
}

.gms-app .gms-column-toggle {
    border-color: var(--gms-border);
    background: var(--gms-paper);
}

.gms-app .gms-column-toggle:hover {
    border-color: var(--gms-orange-dark);
    background: #f9ecdf;
    color: var(--gms-ink);
}

.gms-app .gms-column-toggle[aria-pressed='true'] {
    border-color: var(--gms-forest);
    background: var(--gms-forest);
    color: #fff;
}

.gms-app .gms-card > .gms-image,
.gms-app .gms-card > .gms-image-link,
.gms-app .gms-card > .gms-image-wrap {
    grid-column: 1;
    grid-row: 1;
}

.gms-app .gms-image,
.gms-app .gms-image-link,
.gms-app .gms-image-wrap {
    position: relative;
    display: block;
    width: 100%;
    height: 220px;
    min-height: 0;
    margin: 0;
    overflow: hidden;
    border: 0;
    border-radius: 0;
    background: #e7ede3;
    color: var(--gms-forest);
    object-fit: cover;
}

.gms-app img.gms-image,
.gms-app .gms-image img,
.gms-app .gms-image-link img,
.gms-app .gms-image-wrap img {
    display: block;
    width: 100%;
    height: 220px;
    min-height: 0;
    max-width: 100%;
    margin: 0;
    border: 0;
    border-radius: 0;
    object-fit: cover;
}

.gms-app .gms-image-placeholder {
    display: grid;
    place-content: center;
    min-height: 165px;
    padding: 1rem;
    background: linear-gradient(145deg, #e5ecde, #d4e1cd);
    color: var(--gms-forest);
    font-family: var(--gm-heading-font, 'Fraunces', Georgia, serif);
    font-size: 1.1rem;
    text-align: center;
}

.gms-app .gms-card-body,
.gms-app .gms-card-content {
    padding: 22px;
}

.gms-app .gms-card-title,
.gms-app .gms-card-title a {
    margin: 0 0 .25rem;
    color: var(--gms-forest-dark);
    font-family: var(--gm-heading-font, 'Fraunces', Georgia, serif);
    font-size: 25px;
    font-weight: 800;
    line-height: 1.25;
    letter-spacing: -.025em;
    text-decoration: none;
    text-transform: none;
    overflow-wrap: anywhere;
}

.gms-app .gms-card-title a:hover {
    color: var(--gms-orange-dark);
    text-decoration: underline;
    text-underline-offset: .15em;
}

.gms-app .gms-location {
    margin: .25rem 0 .55rem;
    color: var(--gms-muted);
    font-size: .76rem;
    font-weight: 500;
    line-height: 1.45;
}

.gms-app .gms-description {
    display: -webkit-box;
    margin: .45rem 0 .6rem;
    overflow: hidden;
    color: var(--gms-muted);
    font-size: .8rem;
    line-height: 1.55;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
}

.gms-app .gms-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem .75rem;
    margin: .5rem 0;
    padding: 0;
    color: #465e4d;
    font-size: .75rem;
    font-weight: 600;
    line-height: 1.5;
    list-style: none;
}

.gms-app .gms-meta :where(span, li) {
    margin: 0;
    padding: 0;
}

.gms-app .gms-tags {
    display: flex;
    flex-wrap: wrap;
    gap: .3rem;
    margin: .6rem 0;
    padding: 0;
    list-style: none;
}

.gms-app .gms-tags :where(span, li),
.gms-app .gms-tag {
    margin: 0;
    padding: .14rem .45rem;
    border-radius: 5px;
    background: #eff5e6;
    color: #4e624f;
    font-size: .69rem;
    font-weight: 500;
    line-height: 1.5;
}

.gms-app .gms-featured,
.gms-app .gms-badge {
    display: inline-flex;
    margin: 0 0 .5rem;
    padding: .2rem .5rem;
    border-radius: 4px;
    background: #f7e9db;
    color: #833d1e;
    font-size: .64rem;
    font-weight: 750;
    line-height: 1.35;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.gms-app .gms-card-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    align-items: center;
    margin-top: .75rem;
}

.gms-app a.gms-affiliate,
.gms-app .gms-popup-link {
    border-color: var(--gms-orange-dark);
    background: var(--gms-orange-dark);
    color: #fff;
}

.gms-app a.gms-affiliate:hover,
.gms-app .gms-popup-link:hover {
    border-color: #aa3608;
    background: #aa3608;
    color: #fff;
    text-decoration: none;
}

.gms-app .gms-show-map {
    padding-inline: .6rem;
    border-color: #d9e2ce;
    background: #fff;
    color: var(--gms-forest);
}

.gms-app .gms-show-map:hover,
.gms-app .gms-show-map[aria-pressed='true'] {
    border-color: var(--gms-forest);
    background: #edf2e9;
    color: var(--gms-forest-dark);
}

.gms-app:not(.gms-enhanced) .gms-show-map {
    display: none;
}

.gms-app .gms-empty {
    grid-column: 1 / -1;
    margin: 0;
    padding: 2rem 1.25rem;
    border: 1px dashed #aebcab;
    border-radius: 7px;
    background: var(--gms-cream);
    color: var(--gms-muted);
    font-size: .92rem;
    line-height: 1.6;
    text-align: center;
}

.gms-app .gms-map-panel {
    position: sticky;
    top: 24px;
    isolation: isolate;
    min-width: 0;
    min-height: 280px;
    overflow: hidden;
    border: 1px solid #d6dfcb;
    border-radius: 8px;
    background: #e7eddd;
    box-shadow: 0 3px 12px rgb(30 57 39 / 4%);
}

.gms-app .gms-map {
    position: relative;
    z-index: 0;
    width: 100%;
    min-width: 0;
    height: var(--gms-map-height);
    min-height: 280px;
    margin: 0;
    background: #e7eddd;
    font-family: var(--gm-body-font, 'DM Sans', Arial, sans-serif);
    text-align: left;
}

.gms-app .gms-map:focus-visible {
    outline: 3px solid var(--gms-orange);
    outline-offset: -3px;
}

.gms-app .gms-map-notice {
    position: absolute;
    z-index: 1;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 1rem;
    min-height: 280px;
    margin: 0;
    padding: 2.5rem;
    overflow: hidden;
    background: radial-gradient(ellipse at 14% 20%, #f5f8ee 0%, #eff5e6 45%, #e7eddd 100%);
    color: var(--gms-forest-dark);
    text-align: center;
}

.gms-app .gms-map-notice::before {
    position: absolute;
    z-index: -1;
    inset: -40%;
    background: repeating-radial-gradient(ellipse at 20% 50%, transparent 0, transparent 25px, rgb(98 130 83 / 12%) 26px, transparent 28px, transparent 43px);
    transform: rotate(-20deg);
    content: '';
    pointer-events: none;
}

.gms-app .gms-map-notice :where(h2, h3, h4) {
    max-width: 320px;
    margin: 0;
    color: var(--gms-forest-dark);
    font-family: var(--gm-heading-font, 'Fraunces', Georgia, serif);
    font-size: 1.8rem;
    font-weight: 800;
    line-height: 1.25;
    letter-spacing: -.025em;
}

.gms-app .gms-map-notice p {
    max-width: 330px;
    margin: 0;
    color: #42563f;
    font-size: .87rem;
    line-height: 1.65;
}

.gms-app .gms-map-notice small,
.gms-app .gms-map-privacy {
    max-width: 340px;
    color: #4e6149;
    font-size: .73rem;
    line-height: 1.6;
}

.gms-app .gms-load-map {
    min-height: 46px;
    padding: .7rem 1.25rem;
    border-color: var(--gms-forest);
    background: var(--gms-forest);
    color: #fff;
    font-size: 16px;
}

.gms-app .gms-load-map:hover {
    border-color: var(--gms-forest-dark);
    background: var(--gms-forest-dark);
    color: #fff;
}

.gms-app .gms-load-map:disabled {
    opacity: .65;
    cursor: progress;
}

.gms-app .gms-status {
    min-height: 1.4em;
    margin: .6rem 0 0;
    padding: 0;
    color: var(--gms-muted);
    font-size: .76rem;
    line-height: 1.5;
}

.gms-app .gms-status:empty {
    min-height: 0;
    margin: 0;
}

.gms-app .gms-disclosure {
    margin: .9rem 0 0;
    color: var(--gms-muted);
    font-size: .74rem;
    line-height: 1.6;
}

.gms-app .gms-map img {
    max-width: none !important;
    max-height: none !important;
}

.gms-app .gms-map img.leaflet-tile {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
}

.gms-app .gms-map .leaflet-control-zoom {
    overflow: hidden;
    border: 1px solid #c5d0c0;
    border-radius: 8px;
    box-shadow: 0 2px 6px rgb(30 57 39 / 15%);
}

.gms-app .gms-map .leaflet-control-zoom a {
    display: block;
    width: 36px;
    height: 36px;
    margin: 0;
    padding: 0;
    background: #fff;
    color: var(--gms-forest-dark);
    font-family: Arial, sans-serif;
    font-size: 23px;
    line-height: 36px;
    text-align: center;
    text-decoration: none;
}

.gms-app .gms-map .leaflet-control-zoom a:hover {
    background: var(--gms-cream);
}

.gms-app .gms-map .leaflet-control-attribution {
    display: block !important;
    visibility: visible !important;
    max-width: 100%;
    margin: 0;
    padding: 3px 6px;
    background: rgb(255 255 255 / 94%);
    color: #24362d;
    font-family: Arial, sans-serif;
    font-size: 10px;
    line-height: 1.4;
    white-space: normal;
    opacity: 1 !important;
}

.gms-app .gms-map .leaflet-control-attribution a {
    color: #245440;
    font-weight: 400;
    text-decoration: underline;
}

.gms-app .gms-marker {
    border: 0;
    background: transparent;
    text-align: center;
    cursor: pointer;
}

.gms-app .gms-marker::before {
    position: absolute;
    top: 1px;
    left: 2px;
    width: 32px;
    height: 32px;
    border: 2px solid #fff;
    border-radius: 50% 50% 50% 5%;
    background: var(--gms-forest);
    box-shadow: 0 2px 5px rgb(16 39 24 / 30%);
    transform: rotate(-45deg);
    content: '';
}

.gms-app .gms-marker span {
    position: relative;
    z-index: 1;
    display: grid;
    place-items: center;
    width: 36px;
    height: 34px;
    color: #fff;
    font-family: Arial, sans-serif;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
}

.gms-app .gms-marker:hover::before,
.gms-app .gms-marker.gms-is-selected::before {
    background: var(--gms-orange);
}

.gms-app .gms-marker:focus-visible {
    outline: 3px solid var(--gms-orange);
    outline-offset: 3px;
}

.gms-app .gms-map-popup .leaflet-popup-content-wrapper {
    overflow: hidden;
    border: 1px solid var(--gms-border);
    border-radius: 7px;
    background: #fff;
    box-shadow: 0 4px 20px rgb(20 45 28 / 18%);
}

.gms-app .gms-map-popup .leaflet-popup-content {
    margin: 17px 19px;
    color: var(--gms-ink);
    font-family: var(--gm-body-font, 'DM Sans', Arial, sans-serif);
    font-size: 13px;
    line-height: 1.5;
}

.gms-app .gms-popup .gms-popup-title {
    margin: 0 0 5px;
    padding-right: 6px;
    color: var(--gms-forest-dark);
    font-family: var(--gm-body-font, 'DM Sans', Arial, sans-serif);
    font-size: 16px;
    font-weight: 750;
    line-height: 1.3;
}

.gms-app .gms-popup p {
    margin: 6px 0;
    color: var(--gms-muted);
    font-size: 12px;
    line-height: 1.5;
}

.gms-app .gms-popup .gms-popup-meta {
    color: var(--gms-forest);
    font-weight: 600;
}

.gms-app .gms-popup .gms-popup-link {
    min-height: 44px;
    margin-top: 7px;
    padding: 9px 13px;
    color: #fff;
    font-size: 12px;
}

.gms-app .gms-map-popup .leaflet-popup-close-button {
    width: 28px;
    height: 28px;
    color: #53664f;
    font-size: 20px;
    line-height: 27px;
}

.gms-app.gms-mode-list .gms-layout,
.gms-app.gms-mode-map .gms-layout {
    grid-template-columns: minmax(0, 1fr);
}

.gms-app.gms-mode-list .gms-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-height: none;
    overflow: visible;
}

.gms-app.gms-mode-list .gms-card {
    grid-template-columns: minmax(0, 1fr);
}

.gms-app.gms-mode-list .gms-image,
.gms-app.gms-mode-list .gms-image-link,
.gms-app.gms-mode-list .gms-image-wrap {
    height: 220px;
    min-height: 0;
    aspect-ratio: 16 / 10;
}

.gms-app.gms-mode-list .gms-card-body,
.gms-app.gms-mode-list .gms-card-content {
    padding: 22px;
}

.gms-app.gms-mode-list .gms-card-title {
    font-size: 25px;
}

.gms-app.gms-mode-map .gms-map-panel {
    position: relative;
    top: auto;
}

.gms-app .gms-sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

@media (max-width: 1050px) {
    .gms-app .gms-layout {
        grid-template-columns: minmax(280px, 1fr) minmax(0, 1fr);
        gap: 1rem;
    }

    .gms-app .gms-card {
        grid-template-columns: minmax(0, 1fr);
    }

    .gms-app .gms-card-body,
    .gms-app .gms-card-content {
        padding: 22px;
    }
}

@media (max-width: 760px) {
    .gms-app .gms-layout {
        grid-template-columns: minmax(0, 1fr);
    }

    .gms-app .gms-map-panel {
        position: relative;
        top: auto;
    }

    .gms-app.gms-mode-combined .gms-list {
        max-height: min(var(--gms-map-height), 580px);
    }

    .gms-app .gms-map {
        height: min(var(--gms-map-height), 480px);
        min-height: 280px;
    }

    .gms-app .gms-map-panel,
    .gms-app .gms-map-notice {
        min-height: 280px;
    }

    .gms-app .gms-card {
        grid-template-columns: minmax(0, 1fr);
    }

    .gms-app .gms-card-body,
    .gms-app .gms-card-content {
        padding: 1rem;
    }

    .gms-app .gms-map-notice {
        padding: 1.75rem;
    }
}

@media (max-width: 480px) {
    .gms-app {
        margin-block: 1rem;
    }

    .gms-app .gms-toolbar {
        padding: .8rem;
    }

    .gms-app .gms-card {
        grid-template-columns: minmax(0, 1fr);
        border-radius: 7px;
    }

    .gms-app .gms-card-body,
    .gms-app .gms-card-content {
        padding: .8rem;
    }

    .gms-app .gms-card-title {
        font-size: 23px;
    }

    .gms-app .gms-card-actions {
        gap: .35rem;
    }

    .gms-app .gms-card-actions :where(.gms-affiliate, .gms-show-map) {
        padding: 10px 15px;
        font-size: 16px;
    }

    .gms-app.gms-mode-list .gms-list {
        grid-template-columns: minmax(0, 1fr);
    }

    .gms-app.gms-mode-list .gms-image,
    .gms-app.gms-mode-list .gms-image-link,
    .gms-app.gms-mode-list .gms-image-wrap {
        height: 210px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .gms-app *,
    .gms-app *::before,
    .gms-app *::after {
        scroll-behavior: auto !important;
        transition: none !important;
        animation: none !important;
    }
}

@media print {
    .gms-app .gms-map-panel,
    .gms-app .gms-toolbar,
    .gms-app .gms-view-options,
    .gms-app .gms-list-controls,
    .gms-app .gms-show-map,
    .gms-app .gms-status {
        display: none !important;
    }

    .gms-app .gms-layout,
    .gms-app .gms-list {
        display: block;
        max-height: none !important;
        overflow: visible !important;
    }

    .gms-app .gms-card {
        margin-bottom: 1rem;
        break-inside: avoid;
        box-shadow: none;
    }
}

/* The Jannah content column may be narrow even on a desktop viewport. */
@container gms-stays (max-width: 720px) {
    .gms-app .gms-layout { grid-template-columns: minmax(0, 1fr); }
    .gms-app .gms-map-panel { position: relative; top: auto; }
    .gms-app .gms-map { height: min(var(--gms-map-height), 460px); }
    .gms-app.gms-mode-combined .gms-list { max-height: min(var(--gms-map-height), 580px); }
}

@container gms-stays (max-width: 560px) {
    .gms-app.gms-mode-list .gms-list { grid-template-columns: minmax(0, 1fr); }
    .gms-app .gms-toolbar { gap: .6rem; }
    .gms-app .gms-toolbar > .gms-search-label { flex: 1 1 100%; margin: 0; }
    .gms-app input.gms-search { flex-basis: 100%; }
}

/* Both the viewport and the actual shortcode content column must be full-width desktop. */
@media (min-width: 1024px) {
    @container gms-stays (min-width: 900px) {
        .gms-app.gms-mode-list.gms-columns-enabled .gms-view-options { display: flex; }
        .gms-app.gms-mode-list.gms-columns-enabled[data-gms-columns='3'] .gms-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    }
}

.gms-app .gms-map-notice > p:first-child {
    font-family: var(--gm-heading-font, 'Fraunces', Georgia, serif);
    font-size: 27px;
    font-weight: 800;
    line-height: 1.25;
    letter-spacing: -.025em;
    color: var(--gms-ink);
}

.gms-app .gms-no-location {
    color: var(--gms-muted);
    font-size: .76rem;
    line-height: 1.45;
}

.gms-app .gms-map-fallback {
    position: absolute;
    z-index: 1000;
    right: 12px;
    bottom: 32px;
    left: 12px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .65rem;
    padding: 13px 15px;
    border: 1px solid var(--gms-border);
    border-radius: 7px;
    background: rgb(255 255 255 / 97%);
    box-shadow: 0 3px 15px rgb(31 28 20 / 12%);
}

.gms-app .gms-map-fallback p {
    flex: 1 1 210px;
    margin: 0;
    color: var(--gms-ink);
    font-size: 13px;
    line-height: 1.5;
}

.gms-app .gms-use-standard-map {
    min-height: 44px;
    margin: 0;
    padding: 10px 15px;
    border: 1px solid var(--gms-ink);
    border-radius: 4px;
    background: var(--gms-ink);
    color: #fff;
    font-family: var(--gm-ui-font, 'Jost', Arial, sans-serif);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.4;
    text-transform: none;
    box-shadow: none;
    cursor: pointer;
}

.gms-app .gms-use-standard-map:hover {
    border-color: var(--gms-orange-dark);
    background: var(--gms-orange-dark);
    color: #fff;
}

.gms-app .gms-use-standard-map:disabled {
    opacity: .65;
    cursor: progress;
}

.gms-app .gms-explore {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    min-height: 44px;
    margin: .75rem 0 0;
    padding: 8px 14px;
    border: 1px solid var(--gms-border);
    border-radius: 5px;
    background: var(--gms-cream);
    color: var(--gms-ink);
    font-family: var(--gm-ui-font, 'Jost', Arial, sans-serif);
    font-size: 16px;
    font-weight: 600;
    line-height: 1.4;
    text-decoration: none;
}

.gms-app .gms-explore:hover {
    border-color: var(--gms-orange);
    background: #f9ecdf;
    color: var(--gms-ink);
    text-decoration: none;
}

.gms-app:not(.gms-enhanced) .gms-toolbar,
.gms-app:not(.gms-enhanced) .gms-load-map { display: none; }

.gms-app .gms-marker:hover span,
.gms-app .gms-marker.gms-is-selected span { color: #fff; }

/* Shared source coordinates stay honest: one accessible marker, every stay selectable. */
.gms-app .gms-group-popup .gms-popup + .gms-popup { border-top: 1px solid #d9dfd6; margin-top: 14px; padding-top: 14px; }
.gms-app .gms-select-stay { display: block; margin-top: 8px; padding: 6px 9px; font: inherit; cursor: pointer; }
.gms-app .gms-marker-group::before { box-shadow: 0 0 0 2px #f6f3e9, 0 2px 5px rgb(16 39 24 / 30%); }

/* v1.2: property previews and a separate, continuously labelled park reference. */
.gms-app .gms-popup-media { position: relative; width: 100%; height: 154px; margin: 0 0 13px; overflow: hidden; border-radius: 6px; background: #edf0e5; }
.gms-app .gms-map img.gms-popup-image { display: block; width: 100% !important; height: 154px !important; max-width: 100% !important; max-height: 154px !important; margin: 0 !important; object-fit: cover; border: 0; border-radius: 6px; }
.gms-app .gms-photo-placeholder { display: grid; width: 100%; height: 154px; place-items: center; padding: 15px; color: #586350; font-size: 13px; text-align: center; }
.gms-app .gms-photo-placeholder[hidden] { display: none !important; }
.gms-app .gms-park-marker { border: 0; background: transparent; cursor: pointer; }
.gms-app .gms-park-symbol { display: grid; place-items: center; width: 54px; height: 58px; color: #fff; background: #9b442b; border: 3px solid #fff; border-radius: 50% 50% 50% 8%; box-shadow: 0 3px 9px rgb(44 32 20 / 35%); transform: rotate(-45deg); }
.gms-app .gms-park-symbol svg { transform: rotate(45deg); }
.gms-app .gms-park-label { position: absolute; top: 64px; left: 50%; display: block; width: max-content; max-width: 190px; padding: 5px 8px; transform: translateX(-50%); border: 1px solid #b9836b; border-radius: 5px; background: #fff9ef; color: #71331f; box-shadow: 0 2px 5px rgb(44 32 20 / 12%); font: 700 12px/1.25 Arial, sans-serif; white-space: normal; text-align: center; }
.gms-app .gms-park-marker:focus-visible { outline: 3px solid #7a321f; outline-offset: 5px; }
.gms-app .gms-park-popup .gms-popup-title { color: #71331f; }
.gms-app .gms-park-popup p { font-size: 13px; }
.gms-app .gms-park-source { display: inline-block; padding: 8px 0; text-decoration: underline; }
.gms-app .gms-map-key { display: flex; align-items: center; gap: 7px; margin: 10px 0 0; color: var(--gms-muted); font-size: 12px; line-height: 1.5; }
.gms-app .gms-map-key-park { flex: 0 0 13px; width: 13px; height: 13px; border-radius: 50%; background: #9b442b; }
.gms-app .gms-map .leaflet-gl-layer { pointer-events: none; }

/* Featured stays and activity references use owned symbols rather than pin numbers. */
.gms-app .gms-marker .gms-pin-icon,
.gms-app .gms-marker .gms-pin-icon path,
.gms-app .gms-activity-symbol .gms-pin-icon,
.gms-app .gms-activity-symbol .gms-pin-icon path {
    fill: none !important;
    stroke: currentColor !important;
    color: #fff !important;
}
.gms-app .gms-marker.gms-marker-featured::before {
    width: 42px;
    height: 42px;
    background: #d62112;
    box-shadow: 0 3px 8px rgb(91 24 15 / 30%);
}
.gms-app .gms-marker.gms-marker-featured span { width: 46px; height: 44px; }
.gms-app .gms-marker.gms-marker-featured .gms-pin-icon { width: 28px; height: 28px; }
.gms-app .gms-marker.gms-marker-featured:hover::before,
.gms-app .gms-marker.gms-marker-featured.gms-is-selected::before { background: #b9190d; }
.gms-app .gms-activity-marker { border: 0; background: transparent; cursor: pointer; }
.gms-app .gms-activity-symbol {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border: 2px solid #fff;
    border-radius: 50% 50% 50% 5%;
    background: #217f9a;
    box-shadow: 0 2px 5px rgb(16 39 24 / 30%);
    transform: rotate(-45deg);
}
.gms-app .gms-activity-symbol .gms-pin-icon { transform: rotate(45deg); }
.gms-app .gms-activity-camping .gms-activity-symbol { background: #21784a; }
.gms-app .gms-activity-label {
    position: absolute;
    top: 47px;
    left: 50%;
    display: block;
    width: max-content;
    max-width: 160px;
    padding: 4px 7px;
    transform: translateX(-50%);
    border: 1px solid #c6d5c5;
    border-radius: 4px;
    background: #fff;
    color: var(--gms-ink);
    box-shadow: 0 2px 5px rgb(16 39 24 / 12%);
    font: 700 12px/1.25 Arial, sans-serif;
    white-space: normal;
    text-align: center;
}
.gms-app .gms-activity-marker:focus-visible { outline: 3px solid var(--gms-orange); outline-offset: 4px; }
.gms-app .gms-activity-popup p { font-size: 13px; }
.gms-app .gms-map-key { flex-wrap: wrap; gap: 8px 14px; }
.gms-app .gms-map-key-item { display: inline-flex; align-items: center; gap: 6px; }
.gms-app :is(.gms-map-key-stay,.gms-map-key-featured,.gms-map-key-kayaking,.gms-map-key-camping) { flex: 0 0 13px; width: 13px; height: 13px; border-radius: 50%; }
.gms-app .gms-map-key-stay { background: var(--gms-forest); }
.gms-app .gms-map-key-featured { background: #d62112; }
.gms-app .gms-map-key-kayaking { background: #217f9a; }
.gms-app .gms-map-key-camping { background: #21784a; }
.gms-app .gms-map-hint { margin: 6px 0 0; color: var(--gms-muted); font-size: 12px; line-height: 1.5; }

/* Photos are normal affiliate links, not card-selection/map-pan controls. */
.gms-app a.gms-image-link,
.gms-app a.gms-popup-photo-link { display: block; padding: 0; border: 0; text-decoration: none; cursor: pointer; }
.gms-app a.gms-image-link:focus-visible,
.gms-app a.gms-popup-photo-link:focus-visible { outline: 3px solid var(--gms-orange); outline-offset: -4px; }
.gms-app a.gms-popup-photo-link { width: 100%; height: 154px; border-radius: 6px; overflow: hidden; }

/* Contextual fallback is deliberately labeled and never presented as a property photo. */
.gms-area-photo { position: relative; margin: 0; }
.gms-area-label { position: absolute; left: 10px; bottom: 10px; padding: 3px 7px; border-radius: 3px; color: #fff; background: #173c2de6; font-size: 11px; line-height: 1.4; }
.gms-photo-placeholder:has(.gms-area-photo) { padding: 0; display: block; }

/* Map-bearing shortcodes put the map first in actual reading/focus order. */
.gms-app.gms-map-first > .gms-map-panel { position: relative; top: auto; margin-bottom: 12px; }
.gms-app.gms-map-first > .gms-header { margin-top: 24px; }
.gms-app.gms-map-first > .gms-layout { grid-template-columns: minmax(0, 1fr); }
.gms-app.gms-map-first.gms-mode-combined .gms-list { max-height: none; overflow: visible; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@container gms-stays (max-width: 560px) {
    .gms-app.gms-map-first.gms-mode-combined .gms-list { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
    .gms-app.gms-map-first.gms-mode-combined .gms-list { grid-template-columns: minmax(0, 1fr); }
}

/* Isolate Leaflet controls from theme-wide decorative link/button styling. */
.gms-app .gms-map .leaflet-control-zoom.leaflet-bar a {
    display: block !important;
    box-sizing: border-box !important;
    width: 36px !important;
    height: 36px !important;
    min-width: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
    background-image: none !important;
    color: #183d2b !important;
    font: 700 23px/36px Arial, sans-serif !important;
    letter-spacing: normal !important;
    text-align: center !important;
    text-indent: 0 !important;
    text-decoration: none !important;
    text-shadow: none !important;
    box-shadow: none !important;
    transform: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    opacity: 1 !important;
}
.gms-app .gms-map .leaflet-control-zoom.leaflet-bar a + a { border-top: 1px solid #c5d0c0 !important; }
.gms-app .gms-map .leaflet-control-zoom.leaflet-bar a span {
    display: inline !important;
    background: transparent !important;
    color: inherit !important;
    font: inherit !important;
    line-height: inherit !important;
    margin: 0 !important;
    padding: 0 !important;
    text-decoration: none !important;
    text-shadow: none !important;
    box-shadow: none !important;
    border: 0 !important;
}
.gms-app .gms-map .leaflet-control-zoom.leaflet-bar a:hover { background: #edf2ed !important; }
.gms-app .gms-map .leaflet-control-zoom.leaflet-bar a:focus-visible {
    outline: 2px solid #183d2b !important;
    outline-offset: -3px !important;
    background: #edf2ed !important;
}
.gms-app .gms-map .leaflet-control-zoom.leaflet-bar a.leaflet-disabled {
    color: #666 !important;
    background: #f3f3f3 !important;
    cursor: not-allowed !important;
}
.gms-app .gms-map .leaflet-control-attribution {
    background: #fff !important;
    background-image: none !important;
    color: #595959 !important;
    text-shadow: none !important;
    box-shadow: none !important;
    line-height: 1.5 !important;
    padding: 3px 6px !important;
}
.gms-app .gms-map .leaflet-control-attribution a,
.gms-app .gms-map .leaflet-control-attribution span {
    background: transparent !important;
    background-image: none !important;
    color: #595959 !important;
    text-shadow: none !important;
    box-shadow: none !important;
    line-height: inherit !important;
    border: 0 !important;
}
.gms-app .gms-map .leaflet-control-attribution a {
    padding: 0 !important;
    text-decoration: underline !important;
    text-underline-offset: 2px;
}
.gms-app .gms-map .leaflet-control-attribution a:hover { color: #183d2b !important; }
.gms-app .gms-map .leaflet-control-attribution a:focus-visible {
    outline: 2px solid #183d2b !important;
    outline-offset: 2px !important;
}
.gms-app .gms-map .leaflet-control-zoom a::before,
.gms-app .gms-map .leaflet-control-zoom a::after,
.gms-app .gms-map .leaflet-control-zoom a span::before,
.gms-app .gms-map .leaflet-control-zoom a span::after,
.gms-app .gms-map .leaflet-control-attribution::before,
.gms-app .gms-map .leaflet-control-attribution::after,
.gms-app .gms-map .leaflet-control-attribution a::before,
.gms-app .gms-map .leaflet-control-attribution a::after {
    content: none !important;
    display: none !important;
    background: none !important;
    box-shadow: none !important;
}
