/* Shared mobile shell. Loaded last so every public page uses the same controls. */
/* The card owns the ratio; both older and newer photo wrappers fill that box. */
.home-page :is(.sale-grid, .rental-grid) .property-card { aspect-ratio: 1.48; }
.home-page :is(.sale-grid, .rental-grid) .property-card > :is(.photo, .reference-photo) {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  aspect-ratio: auto !important;
}
.home-page :is(.sale-grid, .rental-grid) .property-card > :is(.photo, .reference-photo) img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.listing-card > a > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.listing-card > a:focus-visible { outline: 2px solid #fff !important; outline-offset: -5px; }
@media (max-width: 1000px) {
  body[class] .site-header, body[class] .site-header.is-sticky {
    height: 76px;
    min-height: 76px;
    padding: 12px 6vw;
    display: flex;
    align-items: center;
    justify-content: center;
    animation: none;
  }
  body[class] .site-header .nav-left, body[class] .site-header .nav-right { display: none; }
  body[class] .site-header .brand { min-width: 48px; min-height: 48px; justify-content: center; }
  body[class] .site-header .original-logo, body[class] .site-header:not(.is-sticky) .original-logo,
  body[class] .site-header.is-sticky .original-logo { width: 46px; height: auto; }
  .site-header .menu-toggle, .site-header.is-sticky .menu-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    position: absolute;
    right: 6vw;
    top: 14px;
    min-width: 64px;
    min-height: 48px;
    font: 400 12px/1.5 Avenir, 'Avenir Next', sans-serif;
    letter-spacing: .09em;
    text-transform: uppercase;
    color: inherit;
  }
  body.mobile-menu-open { overflow: hidden; }
  body.mobile-menu-open .site-header, body.mobile-menu-open .site-header:has(#mobile-nav:not([hidden])) {
    position: fixed;
    z-index: 1002;
    background: #202523;
    color: #fff;
  }
  body.mobile-menu-open .site-header .original-logo { filter: brightness(0) invert(1); }
  body[class] #mobile-nav, body[class] .site-header #mobile-nav:not([hidden]), .has-sticky-menu #mobile-nav {
    position: fixed;
    z-index: 1001;
    inset: 76px 0 0;
    width: 100%;
    min-width: 0;
    max-height: calc(100svh - 76px);
    max-height: calc(100dvh - 76px);
    padding: 20px 6vw max(32px, env(safe-area-inset-bottom));
    margin: 0;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    background: #202523;
    color: #f5f6f3;
    border: 0;
    border-top: 1px solid #ffffff20;
    box-shadow: none;
  }
  body[class] #mobile-nav a, body[class] #mobile-nav button {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    width: 100%;
    min-height: 58px;
    padding: 12px 0;
    border-bottom: 1px solid #ffffff16;
    font: 400 17px/1.5 Avenir, 'Avenir Next', sans-serif;
    letter-spacing: .08em;
    text-align: left;
    text-transform: uppercase;
  }
  #mobile-nav [aria-current="page"] { color: #b8c4b8; }
  body.guides-mega-open .site-header { position: fixed; top: 0; background: #202523; color: #fff; }
  body.guides-mega-open .site-header .original-logo { filter: brightness(0) invert(1); }
  .guides-mega { top: 76px; max-height: calc(100dvh - 76px); padding: 20px 6vw 32px; }
  .guides-mega-shade { inset-block-start: 76px; }
  .guides-mega-open { overflow: hidden; }
  .guides-mega nav a { min-height: 44px; padding-block: 10px; }
  .guides-mega-top > a, .guides-mega-close { min-height: 44px; display: flex; align-items: center; }
}

@media (max-width: 900px) {
  :root { --gutter: clamp(20px, 6vw, 40px); --content-edge: var(--gutter); }
  html { scroll-padding-top: 96px; -webkit-text-size-adjust: 100%; }
  html:has(.property-page) { scroll-padding-top: calc(76px + var(--property-sticky-height, 88px) + 20px); }
  .wrap { width: calc(100% - var(--gutter) * 2); }
  input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
  select, textarea { min-width: 0; max-width: 100%; font-size: 16px; }
  input[type="date"] { min-height: 48px; appearance: none; }
  .listing-page .sort-label select { font-size: 16px; }
  .view-switch { gap: 8px; }
  .view-switch button { min-width: 44px; min-height: 44px; }
  .filter-chip, .calendar-days button { min-height: 44px; }
  form, form > *, .contact-fields, .contact-name-pair > *, .contact-phone-pair > * { min-width: 0; }
  .button, .primary, .outline-button { min-height: 48px; white-space: normal; text-align: center; }
  dialog:not(.photo-lightbox):not(.photo-catalog) {
    width: calc(100% - 32px);
    max-height: calc(100svh - 32px);
    max-height: calc(100dvh - 32px);
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 56px 24px 28px;
  }
  dialog .dialog-close { top: 8px; right: 8px; width: 44px; height: 44px; display: grid; place-items: center; }
  .footer-preview-close { min-width: 44px; min-height: 44px; }
  #contact-dialog { max-height: calc(100dvh - 32px); }
  #contact-form input, #contact-form select, #contact-form textarea { font-size: 16px; }
  #contact-form .phone-country-choice select, #property-enquiry .phone-country-choice select { font-size: 16px; }
  .reference-footer .footer-inner {
    width: calc(100% - var(--gutter) * 2);
    grid-template-columns: minmax(0, 1fr);
    gap: 32px;
    padding-block: 48px;
  }
  .footer-monogram img { width: 100px; }
  .reference-footer .footer-top { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .reference-footer .footer-social { justify-content: flex-start; gap: 16px; }
  .reference-footer .footer-social :is(button,a) { width: 44px; height: 44px; }
  .reference-footer .footer-columns { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px 24px; margin-top: 36px; }
  .reference-footer .footer-conversation { grid-column: 1 / -1; }
  .reference-footer h3 { margin-bottom: 14px; }
  .footer-columns a, .footer-columns button { min-height: 44px; display: flex; align-items: center; margin-bottom: 0; padding-block: 8px; font-size: 12px; overflow-wrap: anywhere; }
  .reference-footer .subscribe input { font-size: 16px; text-transform: none; }
  .reference-footer .subscribe button { min-height: 50px; }
  .footer-legal { flex-direction: column; gap: 16px; padding: 24px var(--gutter); }
  .footer-legal > div { gap: 4px 12px; align-items: center; }
  .footer-legal button, .footer-legal a { min-height: 44px; display: inline-flex; align-items: center; }

  /* The homepage keeps its image-led identity, with comfortable reading widths. */
  .home-page { --section-space: 72px; --heading-space: 24px; --panel-space: 48px; }
  .home-page .hero { min-height: 580px; height: 100svh; }
  .home-page .hero-gallery { transform: none; will-change: auto; }
  .home-page .hero-caption { left: var(--gutter); right: var(--gutter); bottom: 120px; }
  .home-page .hero-caption h1 { font-size: clamp(32px, 8.6vw, 52px); line-height: 1.12; letter-spacing: .015em; }
  .home-page .hero-caption h1 .hero-title-main { font-size: 1.08em; }
  .home-page .hero-signature { left: var(--gutter); right: var(--gutter); bottom: max(24px, env(safe-area-inset-bottom)); font-size: 11px; max-width: 400px; }
  .home-page .hero-caption .hero-actions { gap: 12px; margin-top: 28px; }
  .home-page .hero-actions .button { flex: 1; min-width: 0; max-width: 220px; min-height: 50px; padding: 12px 8px; font-size: 11px; }
  .home-page .collection > .section-heading,
  .home-page .rentals > .section-heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; }
  .home-page .section-heading h2 { grid-column: 1 / -1; max-width: none; font-size: 22px; }
  .home-page .section-heading .text-link { max-width: none; font-size: 11px; min-height: 44px; }
  .home-page .carousel-controls { margin: 0; gap: 4px; }
  .home-page .carousel-controls button { width: 44px; height: 44px; }
  .home-page .collection .sale-grid.carousel,
  .home-page .rentals .rental-grid.carousel { --carousel-card-width: calc((100vw - var(--gutter) * 3) * .9); }
  /* Add 28% to the established portrait height while keeping card widths unchanged. */
  .home-page :is(.sale-grid, .rental-grid) .property-card {
    aspect-ratio: auto;
    height: calc((100vw - var(--gutter) * 2) * .78 / .66 * 1.28);
  }
  .home-page .seller { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .home-page .seller-copy { width: 100%; padding: 48px var(--gutter); text-align: center; }
  .home-page .seller-copy h2 { font-size: clamp(30px, 6.5vw, 40px); }
  .home-page .seller-copy .seller-aside { font-size: 15px; line-height: 1.85; max-width: 440px; margin-inline: auto; }
  .home-page .seller-image.reference-photo { display: none; }
  .home-page .island-maps .islands-grid { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .home-page .island-maps .island-photo { height: auto; min-height: 0; aspect-ratio: 1.65; max-width: 440px; margin-inline: auto; }
  .home-page .island-maps .island-divider { height: auto; min-height: 0; display: flex; flex-direction: row; align-items: center; justify-content: center; gap: 20px; padding: 32px 0; }
  .home-page .island-divider::before, .home-page .island-divider::after { width: 40px; height: 1px; margin: 0; }
  .home-page .island-description { font-size: 15px; line-height: 1.85; text-align: left; }
  .home-page .ownership-inner.wrap { justify-items: center; text-align: center; }
  .home-page .ownership-banner .button { justify-self: center; }
  .home-page .ownership-copy h2 { font-size: 22px; }
  .home-page .journal { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .home-page .journal-heading { padding: 0; gap: 20px; }
  .home-page .journal-heading h2 { max-width: none; padding-right: 0; font-size: 22px; }
  .home-page .journal-heading p { max-width: 520px; font-size: 15px; }
  .home-page .journal .journal-controls { position: static; grid-row: 2; justify-content: flex-end; }
  .home-page .journal .guide-grid.carousel { grid-row: 3; --carousel-card-width: calc((100vw - var(--gutter) * 2) * .78); }
  /* Native momentum, with a complete centered resting position for every card.
     Symmetric end space lets the first and last cards settle there as well. */
  .home-page :is(.collection .sale-grid, .rentals .rental-grid, .journal .guide-grid).carousel {
    width: 100vw;
    margin-inline-start: calc(-1 * var(--gutter));
    grid-auto-columns: var(--carousel-card-width);
    gap: 16px;
    padding-inline: calc((100vw - var(--carousel-card-width)) / 2);
    scroll-padding-inline: 0;
    scroll-behavior: auto;
  }
  .home-page :is(.sale-grid, .rental-grid, .guide-grid).carousel:not(.is-dragging) { scroll-snap-type: x mandatory; }
  .home-page :is(.sale-grid, .rental-grid, .guide-grid).carousel > * { scroll-snap-align: center; }
  .home-page .journal .guide-grid .guide-card h3 { margin-inline: 0; font-size: 14px; }
}

@media (max-width: 700px) {
  /* Phone property cards are 28% taller than their previous content-width height. */
  .home-page :is(.sale-grid, .rental-grid) .property-card {
    height: calc((100vw - var(--gutter) * 2) * 1.28);
  }
}

@media (max-width: 480px) {
  .contact-name-pair { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .contact-phone-pair { grid-template-columns: 94px minmax(0, 1fr); gap: 12px; }
  .reference-footer .footer-columns { grid-template-columns: minmax(0, 1fr); }
  .reference-footer .subscribe { flex-direction: column; height: auto; gap: 10px; }
  .reference-footer .subscribe input, .reference-footer .subscribe button { width: 100%; min-height: 50px; flex: auto; }
  .reference-footer h2 { font-size: 19px; }
  .guides-mega-columns { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .guides-mega-columns > section:first-child nav { display: flex !important; }
  .guides-mega h2 { margin-bottom: 10px; }
  .guides-mega-top { padding-bottom: 14px; margin-bottom: 20px; }
}

@media (max-width: 1000px) and (max-height: 540px) {
  body[class] #mobile-nav, body[class] .site-header #mobile-nav:not([hidden]) { display: grid; grid-template-columns: 1fr 1fr; align-content: start; column-gap: 24px; }
  body[class] #mobile-nav a, body[class] #mobile-nav button { min-height: 50px; font-size: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  .mobile-menu-open .site-header { animation: none; }
}

@media (hover: none) {
  .listing-card:hover img, .home-page :is(.property-card, .guide-card):hover img { transform: none; }
  .card-photo-arrow:active, .save-property:active { background: #0005; }
  .view-switch button:active, .filter-chip:active { background: #edf0eb; }
}

/* Mobile reading scale: clear copy, quieter tracking and comfortable controls. */
@media (max-width: 900px) {
  .site-header .menu-toggle, .site-header.is-sticky .menu-toggle { font-size: 13px; }
  .home-page .hero-actions .button,
  .home-page .section-heading .text-link,
  .home-page .seller-copy .button,
  .home-page .ownership-banner .button,
  .home-page .island-link,
  .home-page .gazette-all { font-size: 13px; line-height: 1.5; letter-spacing: .05em; }
  .home-page .hero-signature { font-size: 13px; line-height: 1.6; letter-spacing: .04em; }
  .home-page :is(.sale-grid, .rental-grid) .property-image-caption h3 { font-size: 16px; line-height: 1.5; letter-spacing: .06em; }
  .home-page :is(.sale-grid, .rental-grid) .property-image-caption p { font-size: 14px; line-height: 1.5; letter-spacing: .05em; }
  .home-page .journal .guide-grid .guide-card h3 { font-size: 16px; line-height: 1.5; }
  .home-page .seller-copy .seller-aside,
  .home-page .island-description,
  .home-page .journal-heading p,
  .home-page .ownership-copy p { font-size: 16px; line-height: 1.8; }

  .reference-footer .footer-columns :is(a, button),
  .reference-footer .footer-conversation :is(.footer-mail, .footer-call) { font-size: 14px; line-height: 1.6; letter-spacing: .04em; }
  .reference-footer .subscribe button { font-size: 14px; }
  .reference-footer h3 { font-size: 13px; line-height: 1.6; }
  .reference-footer .footer-legal { font-size: 13px; line-height: 1.6; }
  .reference-footer .footer-legal > div { flex-wrap: wrap; }

  .listing-filters label, .rentals-page .rental-filter-primary > label,
  .filter-caption { font-size: 13px; line-height: 1.5; letter-spacing: .04em; }
  .listing-page .saved-toggle, .listing-page .reset-filters,
  .results-summary .reset-filters, .filter-chip, .view-switch button { font-size: 13px; min-height: 44px; }
  .rental-intro-copy { font-size: 16px; line-height: 1.8; }
  .listing-facts, .rental-tenure, .is-map .rental-tenure,
  .rentals-page .listing-caption .rental-card-location,
  .card-photo-count { font-size: 13px; line-height: 1.5; letter-spacing: .04em; }
  .calendar-top button { width: 44px; min-height: 44px; }

  .property-features, .rental-detail .property-features { font-size: 15px; line-height: 1.75; }
  .property-page:not(.rental-detail) .property-features { display: grid; gap: 8px; }
  .property-page:not(.rental-detail) .property-features li::before { display: none; }
  .property-documents h3 br { display: initial; }
  .facts-strip dt, .rental-detail .facts-strip dt,
  .glance-price .price-note, .rental-detail .glance-price .price-note { font-size: 13px; line-height: 1.6; letter-spacing: .025em; }
  .detail-navigation .sticky-property, .rental-detail .detail-navigation .sticky-property { font-size: 13px; }
  .detail-navigation #sticky-price { font-size: 14px; }
  .detail-navigation .sticky-actions a { font-size: 13px; min-height: 44px; }
  .sticky-facts dt { font-size: 12px; }
  .property-contact-actions .primary,
  .property-documents .property-contact-actions .outline-button,
  .property-documents > #download-expose,
  .detail-section-heading > a { font-size: 13px; }
  .detail-enquiry > div > p { font-size: 16px; line-height: 1.8; }
  .location-copy > .location-note { font-size: 14px !important; }
  .gallery-open, .gallery-back, .photo-catalog-navigation button, .photo-catalog-label,
  .lightbox-count { font-size: 13px; letter-spacing: .04em; }

  #property-enquiry label, #contact-form .contact-fields label,
  .contact-page #contact-form .contact-fields label { font-size: 14px; line-height: 1.6; }
  #property-enquiry .contact-fields .phone-format-note,
  #contact-form .contact-fields .phone-format-note,
  #property-enquiry .contact-fields .required-fields-note,
  #contact-form .contact-fields .required-fields-note,
  .contact-form-heading .contact-required,
  .enquiry-card-heading .enquiry-reference,
  .rental-detail #property-enquiry .rental-stay-summary { font-size: 13px; line-height: 1.65; }
  #property-enquiry .enquiry-form-bottom .primary,
  #contact-form button[type="submit"] { font-size: 13px; line-height: 1.5; min-height: 48px; }
  :is(#contact-form, #property-enquiry) .enquiry-consent label { font-size: 14px; min-height: 44px; }
  :is(#contact-form, #property-enquiry) .enquiry-consent a { font-size: 14px; min-height: 44px; display: inline-flex; align-items: center; }
  .direct-contact a, .seller-call a { min-height: 44px; display: inline-flex; align-items: center; }

  .sell-intro p, .sell-approach .seller-benefits p { font-size: 16px; line-height: 1.85; }
  .about-person-bio .about-eyebrow, .about-person-role, .about-languages,
  .about-island-view figcaption, .article-photo figcaption,
  .library-credits { font-size: 13px; line-height: 1.65; }
  .about-person-contact .outline-button, .about-journal-links a,
  .guides-intro .guide-button, .article-aside .guide-button { font-size: 13px; }
  .guides-page { --gutter: clamp(20px, 6vw, 40px); }
  /* Shared scroll padding already accounts for the fixed mobile header. */
  .guides-page :is(section, header)[id] { scroll-margin-top: 0; }
  .guide-breadcrumb { font-size: 13px; }
  .guide-breadcrumb a { min-height: 44px; display: inline-flex; align-items: center; }
}

@media (max-width: 480px) {
  .contact-page #contact-form .contact-name-pair { row-gap: 0; }
}

.mobile-property-contact { display: none; }
@media (max-width: 1000px) {
  body[class] .site-header .nav-left { display: contents; }
  .site-header .nav-left > :not(.language-toggle) { display: none; }
  body[class] .site-header .language-toggle {
    position: absolute;
    top: 14px;
    left: max(12px, calc(6vw - 12px));
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    min-width: 48px;
    min-height: 48px;
    padding: 10px;
    transform: none;
  }
  body[class] .site-header .language-toggle img { width: 28px; height: 28px; }
  body.mobile-menu-open .site-header .language-toggle img,
  body.guides-mega-open .site-header .language-toggle img { filter: brightness(0) invert(1); }
}
@media (max-width: 900px) {
  .property-page .detail-navigation { display: none; }
  html:has(.property-page) { scroll-padding-top: 96px; scroll-padding-bottom: calc(96px + env(safe-area-inset-bottom)); }
  .mobile-property-contact:not([hidden]) {
    position: fixed;
    z-index: 70;
    inset: auto 0 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 12px;
    height: auto;
    margin: 0;
    padding: 12px var(--gutter) max(12px, env(safe-area-inset-bottom));
    background: #202523;
    box-shadow: 0 -4px 24px #00000012;
  }
  .mobile-property-contact a {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 48px;
    padding: 12px;
    background: #fff;
    color: #202523;
    font-size: 14px;
    line-height: 1.5;
    letter-spacing: .05em;
    text-transform: uppercase;
    touch-action: manipulation;
  }
  .mobile-property-contact a:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
  .mobile-property-contact a:active { background: #e7ebe5; }
  .property-page:has(dialog[open]) .mobile-property-contact,
  .property-page.mobile-menu-open .mobile-property-contact,
  .property-page.guides-mega-open .mobile-property-contact { display: none; }
}


/* The fixed navigation uses the footer monogram's visible grey-green tone. */
body[class] :is(.site-header.is-sticky, .guides-page .site-header, .contact-page .site-header, .mobile-menu-open .site-header, .guides-mega-open .site-header, .property-page:has(.detail-navigation:not([hidden])) .site-header) > .brand {
  position: absolute;
  inset: 0 auto auto 50%;
  width: auto;
  height: 100%;
  min-width: 0;
  min-height: 0;
  aspect-ratio: 1024 / 737;
  padding: 0;
  margin: 0;
  transform: translateX(-50%);
  display: block;
}
body[class] :is(.site-header.is-sticky, .guides-page .site-header, .contact-page .site-header, .mobile-menu-open .site-header, .guides-mega-open .site-header, .property-page:has(.detail-navigation:not([hidden])) .site-header) > .brand::before {
  content: '';
  position: absolute;
  inset: 0;
  background: #313534;
  background: color-mix(in srgb, #fff 7.5%, #202523);
  -webkit-mask: url('assets/5c641.png') center / contain no-repeat;
  mask: url('assets/5c641.png') center / contain no-repeat;
  pointer-events: none;
}
body[class] :is(.site-header.is-sticky, .guides-page .site-header, .contact-page .site-header, .mobile-menu-open .site-header, .guides-mega-open .site-header, .property-page:has(.detail-navigation:not([hidden])) .site-header) > .brand .original-logo {
  display: block;
  width: auto;
  height: 100%;
  max-width: none;
  object-fit: contain;
  opacity: 0;
}
body[class] .site-header > .nav-left { grid-column: 1; }
body[class] .site-header > .nav-right { grid-column: 3; }

/* Keep the fixed header edge clean, without a one-pixel separator. */
body[class] :is(.site-header.is-sticky, .guides-page .site-header, .contact-page .site-header, .mobile-menu-open .site-header, .guides-mega-open .site-header, .property-page:has(.detail-navigation:not([hidden])) .site-header) {
  box-shadow: none;
  border-bottom: 0;
}

/* Shared reading rhythm, with existing photo sizes and form controls preserved. */
@media (max-width: 900px) {
  body:is(.home-page, .property-page, .listing-page, .contact-page, .sell-page, .about-page, .guides-page) {
    --gutter: clamp(20px, 6vw, 40px);
    --content-edge: var(--gutter);
    --mobile-section-space: 64px;
    --mobile-heading-space: 24px;
    --space: var(--mobile-section-space);
  }
  .home-page {
    --section-space: var(--mobile-section-space);
    --section-half-space: calc(var(--section-space) / 2);
    --heading-space: var(--mobile-heading-space);
  }
  .guides-page { --guide-space: var(--mobile-section-space); }

  .property-page :is(.detail-summary h2, .property-documents h3, .location-copy h2),
  .sell-page :is(.sell-intro h2, .sell-approach h2),
  .about-page .about-journal-detail h3 {
    margin-bottom: var(--mobile-heading-space);
  }
  .property-page .property-documents { margin-top: 32px; }
  .property-page .property-documents .viewing-intro { margin-bottom: 24px; }
  .property-page .property-location-section { gap: 32px; }
  .property-page .property-contact-actions { gap: 12px; }

  .contact-page .contact-intro-row { margin-top: 24px; gap: 16px; }
  .contact-page .contact-composition { padding-top: 32px; padding-bottom: var(--mobile-section-space); gap: 48px; }
  .about-page .about-journal,
  .about-page .about-journal + .about-conversation,
  .guides-page :is(.tax-library, .guide-contact, .related-guides) {
    padding-block: var(--mobile-section-space);
  }
  .about-page .about-journal-intro { margin-bottom: 32px; }
  .about-page .about-journal-detail { padding-top: 32px; }
  .guides-page .section-intro { margin-bottom: 32px; }
  .guides-page :is(.guides-intro p, .article-heading > p) { margin-top: var(--mobile-heading-space); }
  .guides-page .article-heading { padding-top: 32px; padding-bottom: 32px; }
  .guides-page .article-layout { padding-top: 32px; }
  .guides-page .article-copy > section + section { margin-top: 48px; }

  /* Enlarge standalone link hit areas without changing their type size. */
  .home-page .rental-reset,
  .property-page .detail-section-heading > #related-collection {
    display: inline-flex;
    align-items: center;
    min-height: 48px;
    padding-block: 8px;
    touch-action: manipulation;
  }
  .property-page .detail-section-heading > #related-collection { justify-content: flex-end; }
  .guides-page .guide-card-copy h3 > a {
    display: flex;
    align-items: center;
    min-height: 44px;
    max-width: 100%;
    touch-action: manipulation;
  }
  .guides-page .article-sources li > a {
    display: flex;
    align-items: center;
    min-height: 44px;
    padding-block: 8px;
    touch-action: manipulation;
  }
  .guides-page .article-sources ul { padding-left: 0; }
}

@media (max-width: 700px) {
  .guides-page .section-intro > p,
  .about-page .about-journal-intro > p { margin-top: 24px; }
}

.reference-footer .footer-section-links {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
}
@media (max-width: 900px) {
  .reference-footer .footer-columns:has(.footer-accordion) {
    grid-template-columns: minmax(0, 1fr);
    row-gap: 0;
  }
  .reference-footer .footer-accordion {
    display: block;
    min-width: 0;
    border-top: 1px solid #ffffff26;
  }
  .reference-footer .footer-accordion > h3 { width: 100%; margin: 0; }
  .reference-footer .footer-columns .footer-section-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    width: 100%;
    min-height: 56px;
    margin: 0;
    padding: 14px 0;
    font: inherit;
    letter-spacing: inherit;
    line-height: 1.6;
    text-transform: inherit;
    text-align: left;
    color: inherit;
    touch-action: manipulation;
  }
  .footer-section-indicator { position: relative; flex: 0 0 16px; width: 16px; height: 16px; }
  .footer-section-indicator::before,
  .footer-section-indicator::after { content: ''; position: absolute; background: currentColor; }
  .footer-section-indicator::before { width: 12px; height: 1px; left: 2px; top: 7px; }
  .footer-section-indicator::after { height: 12px; width: 1px; left: 7px; top: 2px; }
  .footer-section-toggle[aria-expanded="true"] .footer-section-indicator::after { display: none; }
  .reference-footer .footer-section-links { padding-bottom: 16px; }
  .reference-footer .footer-section-links > :is(a,button) { width: 100%; }
  .reference-footer .footer-accordion ~ .footer-conversation {
    border-top: 1px solid #ffffff26;
    padding-top: 28px;
  }
}
