/* Live mobile reference; all presentation changes stay below 761px. */
@media (max-width: 760px) {
/* A-Living independent mobile edition.
 * The approved mobile design is the starting point. Add mobile-specific
 * changes here, or edit this project's own component styles and scripts.
 * No files in this project are linked to the desktop checkout.
 */

/* Keep homepage section headings consistent in the independent mobile edition. */
html[data-mobile-page="home"] #search-title,
html[data-mobile-page="home"] main h2 {
  font-size: 2rem;
  line-height: 1.2;
}

/* One medium heading weight, with balanced lines, throughout this mobile copy. */
html[data-site-variant="mobile"] :is(h1, h2, h3, h4, h5, h6) {
  font-weight: 500 !important;
  text-wrap: balance;
}

html[data-site-variant="mobile"] :is(h1, h2, h3, h4, h5, h6) * {
  font-weight: inherit !important;
}

/* Keep the mobile menu's Close control plain, with an underline for keyboard focus. */
@media (max-width: 760px) {
  html[data-site-variant="mobile"] .phone-menu .phone-menu-close,
  html[data-site-variant="mobile"] .phone-menu .phone-menu-close:is(:hover, :focus, :focus-visible, :active) {
    background: transparent;
    box-shadow: none;
    outline: none;
  }
  html[data-site-variant="mobile"] .phone-menu .phone-menu-close:focus-visible::after {
    height: 2px;
    transform: scaleX(1);
  }
}

/* Compact homepage collection heading and plain text link. */
html[data-mobile-page="home"] #our-homes > .section-heading {
  margin-bottom: 18px;
}

html[data-mobile-page="home"] .home-stays-link {
  display: inline-block;
  margin-top: 18px;
  padding: 6px 0;
  border: 0;
  border-radius: 0;
  background: none;
  color: var(--cta-dark, #173e35);
  font-size: .875rem;
  font-weight: 500;
  line-height: 1.5;
  text-decoration: none;
}

html[data-mobile-page="home"] .home-stays-link:hover {
  text-decoration: underline;
  text-underline-offset: 4px;
}

/* Fixed covers let the surrounding card row handle horizontal swiping. */
html[data-site-variant="mobile"] .card-photo-gallery.is-single {
  touch-action: auto;
  pointer-events: none;
}

@media (max-width: 760px) {
  /* Give the longer filter labels room without increasing the bar's width. */
  html[data-mobile-page="home"] #home-property-filters .property-filter-bar {
    grid-template-columns: .72fr 1.15fr 1.45fr .78fr;
  }
  html[data-mobile-page="home"] #home-property-filters .property-filter-bar > button {
    padding-inline: 6px 20px;
  }
  html[data-mobile-page="home"] #home-property-filters .property-filter-bar > button > .i {
    right: 6px;
  }

  /* Keep the review close to its heading and the swipe dots close to its source. */
  html[data-site-variant="mobile"] :is(#reviews, #guest-stories) > .eyebrow {
    margin: 0 0 21px;
  }

  html[data-site-variant="mobile"] :is(#reviews, #guest-stories) .guest-quote {
    min-height: 0;
    justify-content: flex-start;
  }

  html[data-site-variant="mobile"] :is(#reviews, #guest-stories) blockquote { margin-block: 0; }
  html[data-site-variant="mobile"] :is(#reviews, #guest-stories) .guest-name { margin: 21px 0 0; }
  html[data-site-variant="mobile"] :is(#reviews, #guest-stories) .review-arrow,
  html[data-site-variant="mobile"] :is(#reviews, #guest-stories) .review-swipe-hint { display: none; }
  html[data-site-variant="mobile"] :is(#reviews, #guest-stories) .review-navigation { margin-top: 8px; }
  html[data-site-variant="mobile"] :is(#reviews, #guest-stories) .quote-controls { gap: 0; }
  html[data-site-variant="mobile"] :is(#reviews, #guest-stories) .quote-controls button {
    width: 22px;
    height: 22px;
  }
  html[data-site-variant="mobile"] :is(#reviews, #guest-stories) .quote-controls button[aria-pressed="true"] span {
    width: 6px;
    height: 6px;
  }


}

/* A tighter reading rhythm for the homepage on phones. */
@media (max-width: 760px) {
  html[data-mobile-page="home"] #our-homes {
    padding-block: 28px;
  }

  html[data-mobile-page="home"] #our-homes > .section-heading {
    margin-bottom: 16px;
  }

  html[data-mobile-page="home"] #our-homes .homes-grid {
    padding-bottom: 0;
  }

  html[data-mobile-page="home"] #our-homes .home-stays-link {
    margin-top: 6px;
  }

  html[data-mobile-page="home"] .attractions-intro {
    gap: 10px;
    padding-block: 30px 28px;
  }

  html[data-site-variant="mobile"] :is(#reviews, #guest-stories) {
    padding-block: 36px;
  }

  html[data-mobile-page="home"] .home-philosophy {
    padding-block: 32px;
  }

  html[data-mobile-page="home"] .home-philosophy-story {
    gap: 16px;
  }

  html[data-mobile-page="home"] .home-philosophy-brand .home-philosophy-logo {
    width: 125px;
    margin-block: -8px 10px;
    /* Align the visible artwork, accounting for the source PNG's clear edge. */
    transform: translateX(-10.94%);
  }

  html[data-mobile-page="home"] .home-philosophy-copy p {
    line-height: 1.65;
  }

  html[data-mobile-page="home"] .home-philosophy-copy .home-philosophy-lead {
    margin-bottom: 8px;
  }

  html[data-mobile-page="home"] .home-philosophy-copy .home-philosophy-link {
    margin-top: 16px;
  }

  /* Keep the social row directly below the hairline, before the legal copy. */
  html[data-site-variant="mobile"] .site-footer .footer-bottom {
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
  }

  html[data-site-variant="mobile"] .site-footer .footer-bottom > p,
  html[data-site-variant="mobile"] .site-footer .footer-bottom > div,
  html[data-site-variant="mobile"] .site-footer .footer-social {
    grid-column: 1;
  }

  html[data-site-variant="mobile"] .site-footer .footer-social {
    order: -1;
    justify-self: start;
    justify-content: flex-start;
  }
}

/* Plain white owner invitation; only the arrow gains colour on interaction. */
html[data-site-variant="mobile"][data-mobile-page="home"] #homeowners {
  padding: 14px 0;
  border: 0;
  background: #fff;
}
html[data-site-variant="mobile"][data-mobile-page="home"] #homeowners > .container {
  display: block;
  width: calc(100% - 40px);
  max-width: none;
  margin-inline: 20px;
}
html[data-site-variant="mobile"][data-mobile-page="home"] #homeowners h2 {
  margin: 0;
  font-size: 22px;
  line-height: 1.25;
  letter-spacing: -.025em;
}
html[data-site-variant="mobile"][data-mobile-page="home"] #homeowners .homeowner-button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  width: 100%;
  min-height: 56px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #173e35;
  box-shadow: none;
  text-align: left;
  text-decoration: none;
}
html[data-site-variant="mobile"][data-mobile-page="home"] .homeowner-arrow {
  display: grid;
  place-items: center;
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  border: 1px solid #9eb8a8;
  border-radius: 50%;
  background: #fff;
  color: #407a61;
}
html[data-site-variant="mobile"][data-mobile-page="home"] #homeowners .homeowner-button .i {
  width: 18px;
  height: 18px;
  stroke-width: 1.5;
}
html[data-site-variant="mobile"][data-mobile-page="home"] .homeowner-button:is(:hover, :focus-visible, :active) .homeowner-arrow {
  background: #407a61;
  border-color: #407a61;
  color: #fff;
}
html[data-site-variant="mobile"][data-mobile-page="home"] .homeowner-button:focus-visible {
  outline: 2px solid #407a61;
  outline-offset: 4px;
}
/* The story invitation has one small link; the surrounding story remains ordinary text. */
html[data-site-variant="mobile"] .home-philosophy-link::after { content: none; }
html[data-site-variant="mobile"] .home-philosophy-link:not(a):hover .home-philosophy-arrow,
html[data-site-variant="mobile"] .home-philosophy-link .home-philosophy-arrow {
  background: #fff;
  color: #407a61;
  border-color: #9eb8a8;
}
html[data-site-variant="mobile"] .home-philosophy-link:not(a) .home-philosophy-arrow:is(:hover, :focus-visible, :active) {
  background: #407a61;
  border-color: #407a61;
  color: #fff;
}
html[data-site-variant="mobile"] .home-philosophy-arrow:focus-visible {
  outline: 2px solid #407a61;
  outline-offset: 4px;
}

@media (max-width: 760px) {
  html[data-site-variant="mobile"][data-mobile-page="home"] #reviews {
    --background: #f3eee5;
    width: 100%;
    max-width: none;
    padding-inline: 20px;
    background: var(--background);
  }
}

/* Related stays use the same compact collection layout as the homepage. */
@media (max-width: 760px) {
  html[data-site-variant="mobile"] .related-section {
    padding-block: 28px;
  }

  html[data-site-variant="mobile"] .related-section .property-section-heading {
    margin-bottom: 16px;
  }

  html[data-site-variant="mobile"] .related-section h2 {
    font-size: 2rem;
    line-height: 1.2;
  }

  html[data-site-variant="mobile"] .property-related {
    display: flex;
    gap: 18px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    margin-right: -20px;
    padding: 0 20px 0 0;
    scrollbar-width: none;
  }

  html[data-site-variant="mobile"] .property-related-card {
    flex: 0 0 87%;
    min-width: 0;
    scroll-snap-align: start;
  }

  html[data-site-variant="mobile"] .related-stays-link {
    display: inline-block;
    margin-top: 6px;
    padding: 6px 0;
    border: 0;
    border-radius: 0;
    background: none;
    box-shadow: none;
    color: var(--cta-dark, #173e35);
    font-size: .875rem;
    font-weight: 500;
    line-height: 1.5;
    text-decoration: none;
  }

  html[data-site-variant="mobile"] .related-stays-link:hover {
    text-decoration: underline;
    text-underline-offset: 4px;
  }
}

/* Property details stay compact until a guest asks to read more. */
html[data-site-variant="mobile"] .property-more-link {
  appearance: none;
  display: inline-block;
  margin-top: 10px;
  padding: 6px 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--cta-dark, #173e35);
  font-size: .875rem;
  line-height: 1.5;
  text-decoration: none;
}
html[data-site-variant="mobile"] .property-more-link[hidden] { display: none; }
html[data-site-variant="mobile"] .property-more-link:hover {
  text-decoration: underline;
  text-underline-offset: 4px;
}

@media (max-width: 760px) {
  html[data-site-variant="mobile"] #property-description.is-collapsed {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    overflow: hidden;
  }

  html[data-site-variant="mobile"] #amenities .property-amenities {
    margin-block: 20px 4px;
    gap: 18px 12px;
  }

  html[data-site-variant="mobile"] .property-arrival {
    width: calc(100% + 40px);
    margin: 0 -20px;
    padding: 20px 20px 12px;
    border: 0;
    border-radius: 0;
    background: #edf2e8;
  }

  html[data-site-variant="mobile"] .property-page #guest-stories {
    padding-bottom: 16px;
  }

  html[data-site-variant="mobile"] .property-arrival + .related-section {
    border-top: 0;
    padding-top: 24px;
  }

  html[data-site-variant="mobile"] .property-arrival .property-guidelines {
    display: block;
    margin-top: 16px;
  }

  html[data-site-variant="mobile"] .property-guidelines > details {
    padding-bottom: 0;
    border-top: 1px solid #ced9cc;
  }

  html[data-site-variant="mobile"] .property-guidelines > details > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding-block: 16px;
    list-style: none;
    text-decoration: none;
    cursor: pointer;
  }

  html[data-site-variant="mobile"] .property-guidelines > details > summary::-webkit-details-marker { display: none; }
  html[data-site-variant="mobile"] .property-guidelines > details > summary::after { content: none; }
  html[data-site-variant="mobile"] .property-guidelines > details > summary > .i {
    flex-shrink: 0;
    width: 16px;
    height: 16px;
    color: var(--cta-dark, #173e35);
  }
  html[data-site-variant="mobile"] .property-guidelines > details[open] > summary > .i { transform: rotate(180deg); }
  html[data-site-variant="mobile"] .property-guidelines > details > summary h3 {
    font-size: .95rem;
    line-height: 1.4;
  }
  html[data-site-variant="mobile"] .property-guidelines > details > p { margin-block: 0 14px; }
  html[data-site-variant="mobile"] .property-guidelines .property-terms-trigger { margin-bottom: 16px; }
}

/* A direct route to the team's email details for longer stays. */
html[data-site-variant="mobile"] .long-stay-contact {
  display: grid;
  place-items: center;
  flex: 0 0 32px;
  width: 32px;
  height: 32px;
  margin: -5px 0 0 -5px;
  color: var(--cta-green, #407a61);
  text-decoration: none;
}
html[data-site-variant="mobile"] .long-stay-contact .i { width: 19px; height: 19px; }
html[data-site-variant="mobile"] #property-contact-email { scroll-margin-block: 120px; }

/* Related homes share the same full-photo carousel and dots as every collection. */
html[data-site-variant="mobile"] .property-related-photo {
  position: relative;
  flex: none;
  width: 100%;
  aspect-ratio: 3 / 2;
  margin: 0;
  overflow: hidden;
}

/* About mobile: a plain hero invitation and a shorter, expandable introduction. */
@media (max-width: 760px) {
  html[data-site-variant="mobile"] .about-home-hero__actions {
    margin-top: 16px;
    padding: 0;
    justify-content: flex-start;
  }
  html[data-site-variant="mobile"] .about-home-hero__text-link,
  html[data-site-variant="mobile"] .about-home-hero__text-link:hover {
    min-height: 44px;
    padding: 10px 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    color: #fcfaf5;
    font-size: .9rem;
    font-weight: 500;
    text-decoration: none;
  }
  html[data-site-variant="mobile"] .about-home-hero__text-link:hover {
    text-decoration: underline;
    text-underline-offset: 5px;
  }
  html[data-site-variant="mobile"] .about-film-intro { padding-block: 28px; }
  html[data-site-variant="mobile"] .about-film-intro__copy p { line-height: 1.75; }
}
html[data-site-variant="mobile"] .about-intro-toggle {
  display: inline-block;
  margin-top: 8px;
  padding: 6px 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--cta-dark, #173e35);
  font: 500 .875rem/1.5 var(--font-body, Manrope, sans-serif);
  cursor: pointer;
}
html[data-site-variant="mobile"] .about-intro-toggle[hidden],
html[data-site-variant="mobile"] #about-intro-more[hidden] { display: none; }
html[data-site-variant="mobile"] .about-intro-toggle:hover { text-decoration: underline; text-underline-offset: 4px; }
html[data-site-variant="mobile"] .about-intro-toggle:focus-visible { outline: 2px solid #407a61; outline-offset: 4px; }

/* A quiet speech outline for the independent mobile edition. */
@media(max-width:760px){
  html[data-site-variant="mobile"] :is(#reviews,#guest-stories) .review-bubble{
    --review-outline:#a7bdc6;
    position:relative;
    display:block;
    width:100%;
    padding:24px 18px 20px;
    border:1px solid var(--review-outline);
    border-radius:18px;
    background:transparent;
  }
  html[data-site-variant="mobile"] :is(#reviews,#guest-stories) .review-bubble::after{
    content:"";
    position:absolute;
    left:34px;
    bottom:-9px;
    width:16px;
    height:16px;
    border-right:1px solid var(--review-outline);
    border-bottom:1px solid var(--review-outline);
    border-radius:0 0 2px 0;
    background:var(--background);
    transform:rotate(45deg);
    pointer-events:none;
  }
  html[data-site-variant="mobile"] :is(#reviews,#guest-stories) .review-bubble blockquote{
    font-size:clamp(1.25rem,6vw,1.5rem);
    line-height:1.45;
    text-wrap:pretty;
  }
  html[data-site-variant="mobile"] :is(#reviews,#guest-stories) .review-bubble .guest-name{
    margin:20px 0 0;
    font-size:.875rem;
    line-height:1.5;
  }
  html[data-site-variant="mobile"] :is(#reviews,#guest-stories) .review-source{
    margin-top:24px;
  }
}

/* Compact services carousel for the independent mobile edition. */
.mobile-service-pagination { display: none; }

@media (max-width: 760px) {
  html[data-site-variant="mobile"] .about-page #core-services {
    padding-block: 30px 28px;
  }

  html[data-site-variant="mobile"] #core-services > .story-container {
    width: calc(100% - 40px);
  }

  html[data-site-variant="mobile"] #core-services .about-section-heading {
    margin-bottom: 20px;
  }

  html[data-site-variant="mobile"] #core-services-title {
    margin: 0;
    font-size: 2rem;
    line-height: 1.2;
    font-weight: 500;
    letter-spacing: -.045em;
  }

  html[data-site-variant="mobile"] #core-services-title em {
    display: inline;
    font-size: inherit;
  }

  html[data-site-variant="mobile"] #core-services .about-section-heading > p {
    margin-top: 10px;
    font-size: 13px;
    line-height: 1.5;
  }

  html[data-site-variant="mobile"] #core-services .about-service-columns {
    position: relative;
    display: flex;
    gap: 16px;
    align-items: stretch;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    outline-offset: 5px;
  }

  html[data-site-variant="mobile"] #core-services .about-service-columns::-webkit-scrollbar {
    display: none;
  }

  html[data-site-variant="mobile"] #core-services .about-service-group {
    flex: 0 0 100%;
    min-width: 0;
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }

  html[data-site-variant="mobile"] #core-services .about-service-column {
    display: flex;
    flex-direction: column;
    min-height: min(76svh, 650px);
    padding: 20px 18px 18px;
    border-color: #c4d3d3;
    border-radius: 14px;
  }

  html[data-site-variant="mobile"] #core-services .about-service-heading {
    padding-bottom: 13px;
  }

  html[data-site-variant="mobile"] #core-services .about-service-heading h3 {
    margin: 0;
    font-size: 25px;
    line-height: 1.2;
    color: var(--story-ink);
  }

  html[data-site-variant="mobile"] #core-services .about-service-list li {
    padding-block: 11px;
  }

  html[data-site-variant="mobile"] #core-services .about-service-title {
    gap: 9px;
    align-items: flex-start;
  }

  html[data-site-variant="mobile"] #core-services .about-service-title .about-line-icon {
    flex: 0 0 21px;
    width: 21px;
    height: 21px;
  }

  html[data-site-variant="mobile"] #core-services .about-service-list h4 {
    font-size: 15px;
    line-height: 1.35;
    letter-spacing: -.02em;
    text-wrap: pretty;
  }

  html[data-site-variant="mobile"] #core-services .about-service-list p {
    margin-top: 6px;
    font-size: 12.5px;
    line-height: 1.5;
    text-wrap: pretty;
  }

  html[data-site-variant="mobile"] #core-services .about-service-column > .about-service-actions {
    margin-top: auto;
    padding-top: 12px;
  }

  html[data-site-variant="mobile"] #core-services .about-service-actions .about-cta {
    min-height: 38px;
    padding: 4px 5px 4px 14px;
    gap: 12px;
    font-size: 12px;
    background: transparent;
    color: var(--emphasis-green);
    border-color: currentColor;
    box-shadow: none;
  }

  html[data-site-variant="mobile"] #core-services .about-service-actions .about-cta .i {
    width: 13px;
    height: 13px;
    padding: 5px;
    border-color: currentColor;
  }

  html[data-site-variant="mobile"] #core-services .about-service-actions .about-cta:hover {
    background: #edf3ed;
    color: #285b46;
  }

  html[data-site-variant="mobile"] #core-services .mobile-service-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2px;
    margin-top: 8px;
  }

  html[data-site-variant="mobile"] #core-services .mobile-service-pagination button {
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: #c4d3d3;
  }

  html[data-site-variant="mobile"] #core-services .mobile-service-pagination button::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
  }

  html[data-site-variant="mobile"] #core-services .mobile-service-pagination button[aria-pressed="true"] {
    color: var(--emphasis-green);
  }
}

/* Keep the owner enquiry and closing invitation compact on phones. */
@media (max-width: 760px) {
  html[data-site-variant="mobile"] .owners-page .owner-enquiry {
    padding-block: 30px;
  }
  html[data-site-variant="mobile"] .owners-page .owner-form-card {
    margin-top: 24px;
    padding: 18px 16px;
    scroll-margin-top: 80px;
  }
  html[data-site-variant="mobile"] .owners-page #owner-enquiry-form {
    scroll-margin-top: 100px;
  }
  html[data-site-variant="mobile"] .owners-page #owner-enquiry-form > .review-preview-note {
    display: none;
  }
  html[data-site-variant="mobile"] .owners-page .form-heading { margin-bottom: 14px; }
  html[data-site-variant="mobile"] .owners-page .form-heading h3 { font-size: 22px; }
  html[data-site-variant="mobile"] .owners-page .form-heading p {
    margin-top: 4px;
    line-height: 1.5;
  }
  html[data-site-variant="mobile"] .owners-page .owner-fields {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 10px 12px;
  }
  html[data-site-variant="mobile"] .owners-page .owner-field:nth-child(-n+4) {
    grid-column: 1 / -1;
  }
  html[data-site-variant="mobile"] .owners-page .owner-field label {
    margin-bottom: 4px;
    font-size: 12px;
    line-height: 1.4;
  }
  html[data-site-variant="mobile"] .owners-page .owner-field label > span { font-size: 10px; }
  html[data-site-variant="mobile"] .owners-page .owner-field input,
  html[data-site-variant="mobile"] .owners-page .owner-field select,
  html[data-site-variant="mobile"] .owners-page .owner-field textarea {
    min-height: 42px;
    padding: 8px 10px;
    font-size: 16px;
    line-height: 1.5;
  }
  /* Room for the inset chevron, so a long option cannot run under it. */
  html[data-site-variant="mobile"] .owners-page .owner-field select { padding-right: 38px; }
  html[data-site-variant="mobile"] .owners-page .owner-field textarea {
    height: 66px;
    min-height: 66px;
  }
  html[data-site-variant="mobile"] .owners-page .owner-privacy {
    margin-top: 12px;
    line-height: 1.5 !important;
  }
  html[data-site-variant="mobile"] .owners-page .owner-submit {
    min-height: 44px;
    margin-top: 12px;
    padding-block: 10px;
  }
  html[data-site-variant="mobile"] .owners-page .owner-form-note {
    margin-top: 8px;
    line-height: 1.5 !important;
  }
  html[data-site-variant="mobile"] .owners-page .owner-closing { padding-block: 26px; }
  html[data-site-variant="mobile"] .owners-page .owner-closing p {
    font-size: clamp(22px, 7vw, 28px);
    line-height: 1.25;
    letter-spacing: -.035em;
    font-weight: 500;
  }
  html[data-site-variant="mobile"] .owners-page .owner-closing p em { font-weight: inherit; }
  html[data-site-variant="mobile"] .owners-page .owner-closing .story-link {
    min-height: 36px;
    margin-top: 12px;
  }
}

/* Meet the first step directly after the animated owner introduction. */
@media (max-width: 760px) {
  html[data-site-variant="mobile"] .owners-page .owner-journey-intro { padding-bottom: 0; }
  html[data-site-variant="mobile"] .owners-page .owner-opening.motion-enabled .owner-journey-intro {
    justify-content: flex-end;
    padding-bottom: 0;
  }
  html[data-site-variant="mobile"] .owners-page .owner-journey-intro p { margin-top: 24px; }
  html[data-site-variant="mobile"] .owners-page .owner-scroll-journey { padding-top: 24px; }
  html[data-site-variant="mobile"] .owners-page .owner-milestone:first-child { align-items: start; }
  html[data-site-variant="mobile"] .owners-page .owner-scroll-journey.motion-enabled .owner-milestone:first-child :is(.milestone-copy, .milestone-art) {
    transform: none;
    opacity: 1;
  }
  html[data-site-variant="mobile"] .owners-page .owner-journey-rail { top: 17px; }
}


/* Compact owner FAQs throughout the independent mobile edition. */
@media (max-width: 760px) {
  html[data-site-variant="mobile"] :is(.owner-faq, .pm-faq) {
    padding-block: 28px 16px;
    border-bottom: 0;
  }
  html[data-site-variant="mobile"] :is(.owner-faq, .pm-faq-grid) {
    gap: 18px;
  }
  html[data-site-variant="mobile"] :is(.owner-faq, .pm-faq) h2 {
    margin-block: 0;
  }
  html[data-site-variant="mobile"] .pm-faq-grid > div:first-child > p:last-child {
    margin-top: 12px;
    margin-bottom: 0;
    line-height: 1.6;
  }
  html[data-site-variant="mobile"] :is(.owner-faq-list, .pm-faq-list) summary {
    min-height: 44px;
    padding-block: 13px;
    line-height: 1.5;
  }
  html[data-site-variant="mobile"] :is(.owner-faq-list, .pm-faq-list) details > p {
    margin-block: 0;
    padding: 0 24px 14px 0;
    line-height: 1.65;
  }
  html[data-site-variant="mobile"] :is(.owner-faq-list, .pm-faq-list),
  html[data-site-variant="mobile"] :is(.owner-faq-list, .pm-faq-list) details:last-child {
    border-bottom: 0;
  }
}

/* Mobile property management: copy first, then a full-width image with its invitation. */
@media (max-width: 760px) {
  html[data-site-variant="mobile"] .management-page .pm-hero { padding: 0; }
  html[data-site-variant="mobile"] .management-page .pm-hero-grid {
    display: flex;
    flex-direction: column;
    gap: 0;
    width: 100%;
    margin: 0;
  }
  html[data-site-variant="mobile"] .management-page .pm-hero-copy {
    width: 100%;
    padding: 22px 20px 20px;
  }
  html[data-site-variant="mobile"] .management-page .pm-hero .pm-lead {
    max-width: none;
    margin-top: 14px;
    line-height: 1.7;
  }
  html[data-site-variant="mobile"] .management-page .pm-hero-art {
    width: 100%;
    height: clamp(280px, 90vw, 400px);
    min-height: 0;
    margin: 0;
    padding: 0;
  }
  html[data-site-variant="mobile"] .management-page .pm-hero-photo {
    border-radius: 0;
  }
  html[data-site-variant="mobile"] .management-page .pm-hero-art .pm-hero-actions {
    position: absolute;
    right: 16px;
    bottom: 16px;
    z-index: 1;
    margin: 0;
  }
  html[data-site-variant="mobile"] .management-page .pm-hero-actions .pm-button {
    width: auto;
    min-width: 0;
    min-height: 44px;
    padding: 10px 14px;
    gap: 16px;
    font-size: 13px;
    box-shadow: 0 3px 15px #071b3333;
  }
  html[data-site-variant="mobile"] .management-page :is(.pm-services, .pm-platforms) {
    margin-top: 0;
    padding-block: 28px;
  }
  html[data-site-variant="mobile"] .management-page .pm-section-heading { margin-bottom: 18px; }
  html[data-site-variant="mobile"] .management-page .pm-platforms-copy > p { margin-top: 14px; }
  html[data-site-variant="mobile"] .management-page .pm-logo-grid { margin-top: 22px; }
  html[data-site-variant="mobile"] .management-page .pm-owner-link {
    min-height: 0;
    padding-block: 22px;
  }
}

/* Compact two-column discovery collections, with the same mobile heading rhythm. */
@media (max-width: 760px) {
  html[data-site-variant="mobile"] .discover-page main { padding-top: 68px; }
  html[data-site-variant="mobile"] .discover-page .discover-hero {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 0;
  }
  html[data-site-variant="mobile"] .discover-page .discover-hero-copy { padding: 22px 20px 20px; }
  html[data-site-variant="mobile"] .discover-page .discover-lead { margin-top: 14px; }
  html[data-site-variant="mobile"] .discover-page .discover-hero-photo {
    width: 100%;
    height: clamp(220px, 66vw, 320px);
    min-height: 0;
    border-radius: 0;
  }
  html[data-site-variant="mobile"] .discover-page .discover-carousel-controls { display: none; }
  html[data-site-variant="mobile"] .discover-page .discover-section { padding-block: 28px; }
  html[data-site-variant="mobile"] .discover-page .discover-section--places {
    border-top: 1px solid #cddbd5;
  }
  html[data-site-variant="mobile"] .discover-page .discover-section-heading { margin-bottom: 18px; }
  html[data-site-variant="mobile"] .discover-page .discover-section-heading h2 { font-size: 32px; line-height: 1.2; }
  html[data-site-variant="mobile"] .discover-page .discover-section-heading > p {
    margin-top: 10px;
    font-size: 13px;
    line-height: 1.6;
  }
  html[data-site-variant="mobile"] .discover-page .discover-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 12px;
  }
  html[data-site-variant="mobile"] .discover-page .discover-card { border-radius: 5px; }
  html[data-site-variant="mobile"] .discover-page .discover-card-photo { aspect-ratio: 2; }
  html[data-site-variant="mobile"] .discover-page .discover-card-copy { padding: 9px 9px 10px; }
  html[data-site-variant="mobile"] .discover-page .discover-card h3 {
    font-size: 14px;
    line-height: 1.3;
    text-wrap: pretty;
  }
  html[data-site-variant="mobile"] .discover-page .discover-card-description {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
    margin-top: 5px;
    font-size: 11px;
    line-height: 1.5;
  }
  html[data-site-variant="mobile"] .discover-page .discover-card-bottom {
    gap: 5px;
    padding: 7px 9px;
    font-size: 10px;
  }
  html[data-site-variant="mobile"] .discover-page .discover-card-bottom .i { width: 14px; height: 14px; flex: none; }
  html[data-site-variant="mobile"] .discover-page .discover-more-grid { margin-top: 14px; }
  html[data-site-variant="mobile"] .discover-page .discover-expand-row { margin-top: 14px; }
  html[data-site-variant="mobile"] .discover-page .discover-more {
    min-height: 44px;
    padding: 8px 0;
    border: 0;
    background: transparent;
    gap: 10px;
  }
  html[data-site-variant="mobile"] .discover-page .discover-stay-strip { padding-block: 28px; }
  html[data-site-variant="mobile"] .discover-page .discover-stay-strip .button { margin-top: 16px; }
}

/* Selected-stay handoff and live reservation details in the mobile edition. */
html[data-site-variant="mobile"] .booking-body #book,
html[data-site-variant="mobile"] .booking-body #book-steps { scroll-margin-top: 88px; }
html[data-site-variant="mobile"] .booking-body .summary-rows dd { overflow-wrap: anywhere; white-space: pre-line; }
html[data-site-variant="mobile"] .booking-body .summary-edit {
  display: inline-flex; align-items: center; gap: 7px; border: 0; background: transparent;
  color: var(--ink); font: inherit; font-size: 12px; padding: 10px 0 0; cursor: pointer;
}
html[data-site-variant="mobile"] .booking-body .summary-edit svg { width: 13px; height: 13px; }
html[data-site-variant="mobile"] .booking-body .summary-edit:hover { color: var(--cta-dark); }
html[data-site-variant="mobile"] .booking-body .summary-edit:focus-visible { outline: 2px solid var(--cta-dark); outline-offset: 4px; }
html[data-site-variant="mobile"] .booking-body .summary-pricing { grid-column: 1 / -1; padding: 0 26px 24px; }
html[data-site-variant="mobile"] .booking-body .summary-price-rows {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 16px;
  margin: 0; padding-top: 16px; border-top: 1px solid #dcd9cd; font-size: 13px; line-height: 1.5;
}
html[data-site-variant="mobile"] .booking-body .summary-price-rows dt { color: #617785; }
html[data-site-variant="mobile"] .booking-body .summary-price-rows dd { margin: 0; text-align: right; }
html[data-site-variant="mobile"] .booking-body .summary-price-total {
  display: flex; align-items: baseline; justify-content: space-between; gap: 16px;
  padding-top: 14px; margin-top: 14px; border-top: 1px solid #dcd9cd; font-size: 14px;
}
html[data-site-variant="mobile"] .booking-body .summary-price-total strong { font-weight: 500; white-space: nowrap; }
html[data-site-variant="mobile"] .booking-body .summary-price-note,
html[data-site-variant="mobile"] .booking-body .summary-price-status { margin-top: 12px; color: #546875; font-size: 12px; line-height: 1.6; }
html[data-site-variant="mobile"] .booking-body [data-quote-state="unavailable"] .summary-price-status { color: #993b30; }
@media (max-width: 760px) {
  html[data-site-variant="mobile"] .booking-body .summary-pricing { padding: 0 16px 16px; }
  html[data-site-variant="mobile"] .booking-body .summary-price-rows { font-size: 12px; gap: 6px 12px; }
  html[data-site-variant="mobile"] .booking-body .summary-price-total { font-size: 13px; }
}

/* Property photo preview: a named hero image with a swipeable thumbnail strip. */
html[data-site-variant="mobile"] .property-photo-dialog { padding: 0 0 max(24px,env(safe-area-inset-bottom)); overscroll-behavior: contain; }
html[data-site-variant="mobile"] .photo-dialog-top { align-items: flex-start; width: min(1080px,100%); margin: 0 auto; padding: max(20px,env(safe-area-inset-top)) 20px 18px; gap: 14px; }
html[data-site-variant="mobile"] #photo-dialog-title { margin: 0; font-size: clamp(1.6rem,6.4vw,2.25rem); line-height: 1.22; letter-spacing: -.04em; text-wrap: pretty; }
html[data-site-variant="mobile"] .photo-dialog-top > span { display: none; }
html[data-site-variant="mobile"] .photo-close { flex: 0 0 40px; }
html[data-site-variant="mobile"] .photo-viewer { position: relative; width: min(1080px,100%); margin: 0 auto; padding: 0 16px; gap: 0; }
html[data-site-variant="mobile"] .photo-viewer > img { display: block; width: 100%; max-width: 100%; height: auto; min-height: 0; max-height: 62dvh; aspect-ratio: 4 / 3; object-fit: contain; border-radius: 8px; background: #e8e8e1; }
html[data-site-variant="mobile"] .photo-viewer > button { position: absolute; top: 50%; transform: translateY(-50%); width: 40px; height: 40px; background: #fffdf8e8; z-index: 2; }
html[data-site-variant="mobile"] #photo-prev { left: 24px; }
html[data-site-variant="mobile"] #photo-next { right: 24px; }
html[data-site-variant="mobile"] #photo-thumbnails { width: min(1080px,100%); margin: 10px auto 0; justify-content: flex-start; gap: 8px; padding: 3px 16px 8px; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x proximity; scroll-padding-inline: 16px; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; scrollbar-width: thin; scrollbar-color: #9bafa4 transparent; }
html[data-site-variant="mobile"] #photo-thumbnails button { flex: 0 0 96px; width: 96px; height: 74px; padding: 2px; border: 2px solid transparent; border-radius: 6px; scroll-snap-align: start; }
html[data-site-variant="mobile"] #photo-thumbnails button[aria-pressed="true"] { border-color: var(--cta-green,#417b62); }
html[data-site-variant="mobile"] #photo-thumbnails img { display: block; border-radius: 3px; }
html[data-site-variant="mobile"] .photo-detail-line { display: flex; justify-content: space-between; gap: 16px; width: min(1080px,100%); margin: 0 auto; padding: 4px 20px 0; color: var(--muted); font-size: .75rem; line-height: 1.5; }
html[data-site-variant="mobile"] #photo-caption { margin: 0; text-align: left; font-size: inherit; }
html[data-site-variant="mobile"] #photo-count { margin: 0; flex-shrink: 0; }

/* A compact mobile booking flow: guest details, then the reservation invoice. */
html[data-site-variant="mobile"] .compact-booking .book-layout { display: block; width: min(680px,calc(100% - 40px)); padding: max(28px,env(safe-area-inset-top)) 0 40px; margin: 0 auto; }
html[data-site-variant="mobile"] .compact-booking #book,
html[data-site-variant="mobile"] .compact-booking .book-step { scroll-margin-top: 24px; }
html[data-site-variant="mobile"] .compact-booking #booking-form { display: flex; flex-direction: column; }
html[data-site-variant="mobile"] .compact-booking #booking-form[hidden] { display: none; }
html[data-site-variant="mobile"] .compact-booking #booking-form > .review-preview-note { order: 1; margin-top: 20px !important; }
html[data-site-variant="mobile"] .compact-booking .step-head { margin-bottom: 24px; }
html[data-site-variant="mobile"] .compact-booking .step-head h2 { font-size: 2rem; line-height: 1.2; letter-spacing: -.04em; }
html[data-site-variant="mobile"] .compact-booking .step-head p:last-child { margin-top: 12px; font-size: 15px; line-height: 1.65; }
html[data-site-variant="mobile"] .compact-booking .field-grid { grid-template-columns: 1fr; gap: 18px; }
html[data-site-variant="mobile"] .compact-booking :is(.bk-field label,.bk-label) { font-size: 14px; text-transform: none; letter-spacing: 0; }
html[data-site-variant="mobile"] .compact-booking :is(.bk-field input,.bk-select [data-slot="select-trigger"]) { font-size: 16px; }
html[data-site-variant="mobile"] .compact-booking #summary { display: block; margin-top: 28px; background: #faf0e7; }
html[data-site-variant="mobile"] .compact-booking .summary-body { padding: 22px 20px 18px; }
html[data-site-variant="mobile"] .compact-booking .summary-body h2 { font-size: 1.3rem; line-height: 1.3; }
html[data-site-variant="mobile"] .compact-booking .summary-rows { margin-top: 16px; padding-top: 16px; gap: 10px 16px; font-size: 13px; }
html[data-site-variant="mobile"] .compact-booking .summary-pricing { padding: 0 20px 22px; }
html[data-site-variant="mobile"] .compact-booking .step-actions { margin-top: 22px; padding-top: 0; border-top: 0; }
html[data-site-variant="mobile"] .compact-booking .step-actions .button { width: 100%; justify-content: center; }

/* Keep the standard header visible above the compact booking content. */
html[data-site-variant="mobile"] .compact-booking #main { padding-top: 80px; }
@media(min-width:761px) and (max-width:1100px){html[data-site-variant="mobile"] .compact-booking #main{padding-top:112px}}
@media(min-width:601px) and (max-width:760px){html[data-site-variant="mobile"] .compact-booking #main{padding-top:75px}}
@media(max-width:600px){html[data-site-variant="mobile"] .compact-booking #main{padding-top:68px}}

/* Give Login the same prominence as the mobile menu destinations. */
@media(max-width:760px){
  html[data-site-variant="mobile"] .phone-menu .phone-menu-account{width:100%;align-self:stretch}
  html[data-site-variant="mobile"] .phone-menu .phone-menu-account .nav-login{
    display:block;width:calc(100% + 24px);margin-inline:-12px;padding:17px 12px 19px;
    background:var(--cta-green,#407a61);color:#fff;border:0;border-radius:0;
    font:400 clamp(1.4rem,5.8vw,2.64rem)/1.13 Manrope,sans-serif;
    letter-spacing:-.045em;text-decoration:none;
  }
  html[data-site-variant="mobile"] .phone-menu .phone-menu-account .nav-login:is(:hover,:focus-visible){background:var(--cta-dark,#173e35);color:#fff}
}

/* Property collection links sit beside their headings in the mobile edition. */
@media (max-width: 760px) {
  html[data-site-variant="mobile"] :is(#our-homes, #more-stays, #destination-homes) .property-cards-heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    column-gap: 12px;
    margin-bottom: 16px;
  }
  html[data-site-variant="mobile"] .property-cards-heading > div { min-width: 0; }
  html[data-site-variant="mobile"] .property-cards-heading h2 { margin: 0; }
  html[data-site-variant="mobile"] :is(#our-homes, #more-stays, #destination-homes) .property-cards-link {
    display: inline-block;
    align-self: start;
    margin: 3px 0 0;
    padding: 6px 0;
    border: 0;
    border-radius: 0;
    background: none;
    box-shadow: none;
    color: var(--cta-dark, #173e35);
    font-size: .875rem;
    font-weight: 500;
    line-height: 1.5;
    white-space: nowrap;
    text-decoration: none;
  }
  html[data-site-variant="mobile"] .property-cards-link:hover {
    text-decoration: underline;
    text-underline-offset: 4px;
  }
}

/* Plain close icons keep their touch area; keyboard focus uses a small underline. */
html[data-site-variant="mobile"] :is(
  .mobile-search-close,
  .mobile-stays-search-close,
  .duration-close,
  .pf-close,
  .al-close,
  .al-login-close,
  .photo-close,
  .property-dialog-close,
  .sheet-close,
  .rv-drawer-close,
  .popup-close,
  #nearby-close-place,
  [data-slot="dialog-close"],
  .leaflet-popup-close-button,
  .gm-style-iw button.gm-ui-hover-effect
),
html[data-site-variant="mobile"] :is(
  .mobile-search-close,
  .mobile-stays-search-close,
  .duration-close,
  .pf-close,
  .al-close,
  .al-login-close,
  .photo-close,
  .property-dialog-close,
  .sheet-close,
  .rv-drawer-close,
  .popup-close,
  #nearby-close-place,
  [data-slot="dialog-close"],
  .leaflet-popup-close-button,
  .gm-style-iw button.gm-ui-hover-effect
):is(:hover,:focus,:focus-visible,:active) {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  outline: none !important;
}
html[data-site-variant="mobile"] :is(
  .mobile-search-close,
  .mobile-stays-search-close,
  .duration-close,
  .pf-close,
  .al-close,
  .al-login-close,
  .photo-close,
  .property-dialog-close,
  .sheet-close,
  .rv-drawer-close,
  .popup-close,
  #nearby-close-place,
  [data-slot="dialog-close"],
  .leaflet-popup-close-button,
  .gm-style-iw button.gm-ui-hover-effect
):focus-visible {
  background-image: linear-gradient(currentColor,currentColor) !important;
  background-size: 16px 2px !important;
  background-position: center calc(100% - 3px) !important;
  background-repeat: no-repeat !important;
}

/* Solid colour sections provide their own boundary without an extra hairline. */
@media (max-width: 760px) {
  html[data-site-variant="mobile"] .discover-page .discover-section--activities,
  html[data-site-variant="mobile"] .management-page .pm-owner-strip {
    border-block: 0;
  }
  html[data-site-variant="mobile"] .story-page .site-footer {
    border-top: 0;
  }
}

/* Compact homepage questions for the independent mobile edition. */
html[data-site-variant="mobile"] .home-faq {
  padding-block: 28px 16px;
  background: #edf2e9;
  color: #173f53;
}
html[data-site-variant="mobile"] .home-faq h2 {
  margin: 0 0 18px;
  font-size: 2rem;
  line-height: 1.2;
  text-wrap: balance;
}
html[data-site-variant="mobile"] .home-faq-list details + details {
  border-top: 1px solid #d2ded8;
}
html[data-site-variant="mobile"] .home-faq-list summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  min-height: 44px;
  padding-block: 13px;
  list-style: none;
  cursor: pointer;
  font-size: .9375rem;
  font-weight: 500;
  line-height: 1.5;
}
html[data-site-variant="mobile"] .home-faq-list summary::-webkit-details-marker { display: none; }
html[data-site-variant="mobile"] .home-faq-list summary::marker { content: ""; }
html[data-site-variant="mobile"] .home-faq-list summary:focus-visible {
  outline: 2px solid #407a61;
  outline-offset: 3px;
}
html[data-site-variant="mobile"] .home-faq-list summary .i {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
}
html[data-site-variant="mobile"] .home-faq-list details[open] summary .i { transform: rotate(180deg); }
html[data-site-variant="mobile"] .home-faq-list details > p {
  margin: 0;
  padding: 0 24px 14px 0;
  font-size: .875rem;
  line-height: 1.65;
  color: #5b6e78;
}
html[data-site-variant="mobile"] .home-faq-list details > p + p { padding-top: 0; }
html[data-site-variant="mobile"] .home-faq-list a {
  color: inherit;
  text-underline-offset: 3px;
  overflow-wrap: anywhere;
}

}

.mobile-only, .mobile-search-launch, .mobile-stays-search-launch, .mobile-service-pagination, .mobile-attraction-peek { display:none; }
@media(max-width:760px) {
 .mobile-only { display:block; }
 .desktop-only { display:none!important; }
 .mobile-search-launch,.mobile-stays-search-launch,.mobile-service-pagination { display:flex; }
 .compact-booking .book-hero, .compact-booking #book-steps,
 .compact-booking .book-summary, .compact-booking .book-promise,
 .compact-booking .step-head > .eyebrow,
 .compact-booking .book-step[data-step="2"] .step-head.sub,
 .compact-booking #extras,
 .compact-booking .book-step[data-step="2"] > .bk-field.full { display:none; }
 .compact-booking .summary-card { position:static; width:100%; }
 .compact-booking .book-step[hidden] { display:none; }
 .compact-booking .book-step[data-step="2"] .back-link,
 .compact-booking .step-actions .back-link { display:none; }
 .property-related-card { display:block; }
 .property-related-card .property-related-photo .card-photo-gallery { width:100%; height:100%; }
 .property-related-card .related-home-link { color:inherit; text-decoration:none; }
 #all-amenities.property-more-link { padding:6px 0; border:0; background:none; box-shadow:none; }
 #photo-full { touch-action:pan-y; }
 .property-cards-link::after { content:none!important; }
 .phone-menu-icon,.phone-menu-chevron,.phone-menu-account .nav-account-icon,.phone-menu-account .nav-arrow { display:none!important; }
 .mobile-destination-host > .mobile-destination { width:100%; }
}
@media(max-width:760px){
 .discover-carousel:after{display:none}
 .discover-slide:after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(9,31,41,.75));pointer-events:none}
 .discover-slide-caption{position:absolute;left:20px;right:84px;bottom:18px;z-index:1;margin:0;color:#fff;line-height:1.5;text-shadow:0 1px 3px #0006}
 .discover-slide-caption strong,.discover-slide-caption span{display:block}
 .discover-slide-caption strong{font-size:13px;font-weight:500}
 .discover-slide-caption span{font-size:12px;margin-top:2px}
 .stays-list-view{display:none!important}
}

@media(max-width:760px) {
 .phone-menu-account .phone-menu-login-arrow { display:none!important; }
 .al-login-submit,.al-login-dialog .al-login-support { justify-content:center; }
}
