/**
 * Location pages ("Care homes in X"): the page-level layout the LOC presets cannot hold.
 * Spec: docs/superpowers/specs/2026-10-13-location-page-divi5-template-design.md §9.
 *
 * Module styling lives in the "LOC •" presets; this file only carries section grounds,
 * full-bleed bands, positioning (hero image and fact card, review swoop, Home for Life
 * ribbon), the map, the care tabs' rich-text panels, the sticky FAQ column and v3's
 * breakpoints (1100px, 980px, 767px). Values are v3's (build-loc-v3.py CSS). Every rule
 * sits under body.d5f-loc-page, which the plugin adds to location pages only.
 */

/* ---------- rows and section rhythm ---------- */
/* Rows take the site's row width (80% of the window, up to 1600px) at every size, as on the
 * care-home and Key Information pages, rather than v3's 1140px and 22px phone gutters. */
.d5f-loc-page .loc-row {
  width: 80%;
  max-width: 1600px;
}
.d5f-loc-page .loc-section {
  padding: 54px 0;
}
/* v3 spaces modules with their own margins (heading 8px, intro 34px, ...), which the presets
 * carry; Divi's 30px column gap would add to every one of them. */
.d5f-loc-page .loc-row > .et_pb_column {
  row-gap: 0;
}
/* Margins the presets do not hold: the hero copy and the FAQ intro column (v3 values).
 * Visitors get Divi's critical CSS `.et_pb_section .et_pb_row .et_flex_column > .et_pb_module
 * { margin-bottom: 0 }` (0,4,0), so module margins here carry .et_pb_section .et_pb_row too. */
.d5f-loc-page .et_pb_section .et_pb_row .et_pb_module.loc-hero-breadcrumbs {
  margin-bottom: 24px;
}
.d5f-loc-page .et_pb_section .et_pb_row .et_pb_module.loc-hero-lede {
  margin-bottom: 25px;
}
.d5f-loc-page .et_pb_section .et_pb_row .et_pb_module.loc-hero-chips {
  margin-bottom: 28px;
}
.d5f-loc-page .loc-hero-maplink {
  margin-top: 18px;
}
.d5f-loc-page .et_pb_section .et_pb_row .et_pb_module.loc-faq-intro-text {
  margin-bottom: 26px;
}
.d5f-loc-page .loc-faq-photo {
  margin-top: 30px;
}
.d5f-loc-page .loc-where,
.d5f-loc-page .loc-guidance {
  background: var(--gcid-e595az73z7, #f6f5ee);
}
.d5f-loc-page .loc-fees {
  padding: 85px 0;
}
.d5f-loc-page section[id] {
  scroll-margin-top: 158px;
}

/* ---------- hero: copy beside a full-height photograph, fact card over it ---------- */
.d5f-loc-page .loc-hero.et_pb_section {
  padding: 0;
}
/* The sub-nav bar sits flush under the hero, as on the care-home and Key Information pages;
 * its section would otherwise keep Divi's 54px of white above and below it. */
.d5f-loc-page .loc-subnav.et_pb_section {
  padding: 0;
}
.d5f-loc-page .loc-hero .loc-hero-grid {
  width: 100%;
  max-width: none;
  min-height: 630px;
  padding: 0;
  align-items: stretch;
  column-gap: 0;
  row-gap: 0; /* stacked below 980px, the photo meets the copy */
}
/* Divi sizes a 1_2 column as half the row minus its gutter; the hero is two true halves. */
@media (min-width: 981px) {
  .d5f-loc-page .loc-hero-grid > .et_pb_column {
    flex: 1 1 50%;
    width: 50%;
    max-width: 50%;
  }
}
/* v3's 7vw right padding, capped so both hero buttons stay on one line at 1440px with a
 * scrollbar (712px column); wider screens are unchanged in effect. */
.d5f-loc-page .loc-hero-copy {
  padding: 58px min(7vw, 86px) 56px max(57px, 5vw);
  justify-content: center;
}
.d5f-loc-page .loc-hero-actions {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 12px;
}
.d5f-loc-page .loc-hero-media {
  position: relative;
  min-height: 630px;
  background: var(--gcid-0c954fbe-679d-42e9-84b7-a563185ae948, #768f68);
  isolation: isolate;
  overflow: hidden;
}
.d5f-loc-page .loc-hero-image {
  position: absolute;
  inset: 0;
  z-index: -1;
  margin: 0 !important;
}
.d5f-loc-page .loc-hero-image .et_pb_image_wrap,
.d5f-loc-page .loc-hero-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 34%;
}
.d5f-loc-page .loc-fact-card {
  position: absolute;
  left: 36px;
  right: 36px;
  bottom: 34px;
}

/* ---------- reviews: the purple quote band, swoop in the corner ---------- */
.d5f-loc-page .loc-reviews {
  position: relative;
  background: var(--gcid-9b21a94e-6123-4107-8e5d-8a4e35b263db, #9797b1);
  padding: 64px 0 72px;
  overflow: hidden;
}
/* The swoop is positioned against the section, so its row and column are not containers. */
.d5f-loc-page .loc-reviews .et_pb_row,
.d5f-loc-page .loc-reviews .et_pb_column {
  position: static;
}
.d5f-loc-page .loc-reviews .et_pb_column > :not(.loc-reviews-swoop) {
  position: relative;
  z-index: 2;
}
/* v3 has one "next" arrow, under the slides on the right, not over the second review. */
.d5f-loc-page .loc-reviews .et_pb_group_carousel {
  padding-bottom: 106px;
}
.d5f-loc-page .loc-reviews .et_pb_group_carousel_arrow_next {
  top: auto !important;
  bottom: 0;
  right: 0;
  transform: none;
}
.d5f-loc-page .loc-reviews .loc-reviews-swoop {
  position: absolute;
  left: 0;
  bottom: 0;
  width: min(32%, 430px);
  margin: 0 !important;
  z-index: 1;
  pointer-events: none;
}

/* ---------- where we are: map, per-home list, towns ---------- */
/* In v3 the intro's 34px and the map's collapse into one gap; flex margins do not collapse. */
.d5f-loc-page .loc-map {
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 8px 18px rgba(23, 53, 66, .08);
}
.d5f-loc-page .d5f-loc-map {
  height: 520px;
  width: 100%;
  background: #e8ede4;
  z-index: 1;
}
.d5f-loc-page .d5f-loc-map:focus-visible {
  outline: 3px solid var(--gcid-1bkrrn0b5w, #173542);
  outline-offset: -3px;
}
.d5f-loc-page .leaflet-container {
  font-family: "Poppins", Arial, sans-serif;
  background: #e8ede4;
}
.d5f-loc-page .gs-pin {
  background: none;
  border: 0;
}
.d5f-loc-page .gs-pin span {
  display: block;
  width: 34px;
  height: 34px;
  border-radius: 50% 50% 50% 0;
  background: var(--gcid-mej54zz720, #465f57);
  transform: rotate(-45deg);
  box-shadow: 0 3px 8px rgba(23, 53, 66, .4);
  border: 2px solid #fff;
}
/* The glyph centres on the pin's round head (the top 34px), not the whole 34x44 box. */
.d5f-loc-page .gs-pin b {
  position: absolute;
  inset: 0 0 auto 0;
  height: 34px;
  display: grid;
  place-items: center;
  color: #fff;
}
.d5f-loc-page .gs-pin b svg {
  display: block;
}
.d5f-loc-page .gs-pin:hover span,
.d5f-loc-page .leaflet-marker-icon:focus .gs-pin span {
  background: var(--gcid-3z66cybh3t, #d97b49);
}
.d5f-loc-page .leaflet-popup-content-wrapper {
  border-radius: 10px;
  box-shadow: 0 12px 28px rgba(23, 53, 66, .22);
  padding: 0;
}
.d5f-loc-page .leaflet-popup-content {
  margin: 0;
  width: 262px !important;
  line-height: 1.5;
}
.d5f-loc-page .leaflet-popup-tip {
  box-shadow: none;
}
.d5f-loc-page .gs-pop {
  padding: 18px 20px 20px;
}
.d5f-loc-page .gs-pop h3 {
  font: 600 21px/1.25 "Poppins", sans-serif;
  color: var(--gcid-xw113lu7lx, #425339);
  margin: 0 0 4px;
  padding: 0;
}
.d5f-loc-page .gs-pop .gs-pop__town {
  font: 600 15px/1.4 "Poppins", sans-serif;
  color: var(--gcid-0c954fbe-679d-42e9-84b7-a563185ae948, #768f68);
  margin: 0 0 8px;
}
.d5f-loc-page .gs-pop .gs-pop__addr {
  font: 500 15px/1.5 "Montserrat", sans-serif;
  color: #666;
  margin: 0 0 12px;
}
.d5f-loc-page .gs-pop .gs-pop__care {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0 0 16px;
  padding: 0;
  list-style: none;
}
.d5f-loc-page .gs-pop .gs-pop__care li {
  border: 1px solid #dfe3db;
  background: var(--gcid-9tb02gjr2s, #f9f8f4);
  border-radius: 999px;
  padding: 4px 11px;
  color: var(--gcid-xw113lu7lx, #425339);
  font: 600 13px/1.3 "Poppins", sans-serif;
}
/* leaflet.css colours .leaflet-container a, so the button needs the extra class to stay white. */
.d5f-loc-page .leaflet-container a.gs-pop__button {
  display: flex;
  justify-content: center;
  width: 100%;
  padding: 10px 18px;
  border: 2px solid #fff;
  border-radius: 999px;
  background: var(--gcid-3z66cybh3t, #d97b49);
  box-shadow: 0 0 0 1px rgba(217, 123, 73, .15);
  color: #fff;
  font: 600 16px/1.6 "Poppins", sans-serif;
  text-decoration: none;
}
.d5f-loc-page .leaflet-popup-close-button {
  width: 30px !important;
  height: 30px !important;
  font-size: 22px !important;
  color: var(--gcid-xw113lu7lx, #425339) !important;
  padding: 4px 0 0 !important;
}
.d5f-loc-page .leaflet-bar a {
  color: var(--gcid-xw113lu7lx, #425339);
  border-bottom-color: #e2e6df;
}
.d5f-loc-page .leaflet-bar a:hover {
  background: var(--gcid-e595az73z7, #f6f5ee);
}
.d5f-loc-page .leaflet-control-attribution {
  font: 500 11px/1.5 "Montserrat", sans-serif;
  background: rgba(255, 255, 255, .85);
}
.d5f-loc-page .leaflet-control-attribution a {
  color: var(--gcid-link-color, #058063);
}
.d5f-loc-page .loc-map-list {
  margin-top: 34px;
}

/* ---------- care available: Divi Tabs styled as v3's pill nav over a soft panel ---------- */
.d5f-loc-page .loc-care-tabs {
  border: 0;
  background: transparent;
}
.d5f-loc-page .loc-care-tabs .et_pb_tabs_controls {
  position: relative;
  z-index: 2;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 16px;
  width: fit-content;
  max-width: 100%;
  margin: 0 auto -33px;
  padding: 13px !important; /* Divi sets .et_pb_tabs_controls { padding: 0 !important } */
  background: #e5e6df;
  border-radius: 999px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, .03);
}
.d5f-loc-page .loc-care-tabs .et_pb_tabs_controls::after {
  display: none;
}
.d5f-loc-page .loc-care-tabs .et_pb_tab_nav_item {
  height: auto !important;
  border: 0;
  background: transparent;
  margin: 0;
}
.d5f-loc-page .loc-care-tabs .et_pb_tab_nav_item_link {
  display: block;
  padding: 18.4px 24px;
  border-radius: 999px;
  color: var(--gcid-mej54zz720, #465f57);
  font: 500 20px/1.15 "Poppins", Arial, sans-serif;
}
.d5f-loc-page .loc-care-tabs .et_pb_tab_nav_item:hover .et_pb_tab_nav_item_link {
  background: rgba(255, 255, 255, .65);
}
/* Divi core sets .et_pb_tab_active a { color: #333 !important }. */
.d5f-loc-page .loc-care-tabs .et_pb_tab_active .et_pb_tab_nav_item_link {
  background: var(--gcid-mej54zz720, #465f57);
  color: #fff !important;
  font-weight: 600;
  box-shadow: 0 3px 9px rgba(8, 56, 72, .18);
}
.d5f-loc-page .loc-care-tabs .et_pb_tab_nav_item_link:focus-visible {
  outline: 3px solid var(--gcid-1bkrrn0b5w, #173542);
  outline-offset: 2px;
}
.d5f-loc-page .loc-care-tabs .et_pb_all_tabs {
  background: #f7f6f1;
  border-radius: 6px;
  padding: 101px 64px 64px;
}
.d5f-loc-page .loc-care-tabs .et_pb_tab {
  padding: 0;
}
.d5f-loc-page .loc-care-panel {
  display: grid;
  grid-template-columns: 518fr 442fr;
  gap: 64px;
  align-items: center;
}
.d5f-loc-page .loc-care-media {
  margin: 0;
  border-radius: 6px;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: #edece7;
  box-shadow: 0 0 0 4px var(--gcid-mej54zz720, #465f57);
}
.d5f-loc-page .loc-care-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.d5f-loc-page .loc-care-body h3 {
  font: 600 40px/1.05 "Poppins", Arial, sans-serif;
  color: var(--gcid-mej54zz720, #465f57);
  margin: 0 0 16px;
  padding: 0;
}
.d5f-loc-page .loc-care-body p {
  font: 400 18px/27.9px "Poppins", Arial, sans-serif;
  color: #3c3c3b;
  margin: 0 0 16px;
  padding: 0;
}
.d5f-loc-page .loc-care-body .loc-care-where {
  font-weight: 600;
  color: var(--gcid-xw113lu7lx, #425339);
  margin-bottom: 12px;
}
.d5f-loc-page .loc-home-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin: 0 0 20px;
  padding: 0;
  list-style: none;
}
.d5f-loc-page .loc-home-tags li {
  padding: 0;
}
.d5f-loc-page .loc-home-tags a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid #e2e6df;
  background: #fff;
  border-radius: 999px;
  padding: 8px 14px;
  color: var(--gcid-xw113lu7lx, #425339);
  font: 600 15px/1.3 "Poppins", sans-serif;
  text-decoration: none;
}
.d5f-loc-page .loc-home-tags a::before {
  content: "";
  width: 15px;
  height: 15px;
  flex: none;
  border-radius: 50%;
  background: var(--gcid-0c954fbe-679d-42e9-84b7-a563185ae948, #768f68)
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 15 15'%3E%3Cpath d='M4.3 7.6l2.1 2 4.3-4.3' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 15px no-repeat;
}
.d5f-loc-page .loc-home-tags a:hover {
  border-color: var(--gcid-0c954fbe-679d-42e9-84b7-a563185ae948, #768f68);
  background: var(--gcid-9tb02gjr2s, #f9f8f4);
}
.d5f-loc-page .loc-care-body .loc-text-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--gcid-link-color, #058063);
  font: 600 16px/1.5 "Poppins", Arial, sans-serif;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}
.d5f-loc-page .loc-care-body .loc-text-link::after {
  content: "\2192";
  text-decoration: none;
}
.d5f-loc-page .loc-care-note {
  margin-top: 24px;
}

/* ---------- buttons: Divi's hover arrow sits in the right padding, so no button changes
 * size on hover. As on the Key Information pages. The filter pills have no arrow (their
 * preset turns the icon off). ---------- */
/* v3 reserves the arrow's room at rest (label, 8px gap, chevron, 28px), so the label sits
 * 44px from the right edge; the preset's !important padding is overridden here. */
.d5f-loc-page .et_pb_button.et_pb_module:not(.loc-filter),
.d5f-loc-page .et_pb_button.et_pb_module:not(.loc-filter):hover {
  padding-right: 44px !important;
}
.d5f-loc-page .et_pb_button.et_pb_module:not(.loc-filter)::after {
  position: absolute;
  left: auto;
  right: 18px;
  top: 50%;
  margin: -4px 0 0;
}
.d5f-loc-page .et_pb_button.et_pb_module:not(.loc-filter):hover::after,
.d5f-loc-page .et_pb_button.et_pb_module:not(.loc-filter):focus-visible::after {
  margin: -4px 0 0;
}

/* ---------- home cards: an empty highlight takes no space (Divi omits its text element), and
 * a home with none loses the list and its "What makes it distinctive" label too ---------- */
.d5f-loc-page .loc-highlights .et_pb_icon_list_item:not(:has(.et_pb_icon_list_text)),
.d5f-loc-page .loc-highlights:not(:has(.et_pb_icon_list_text)),
.d5f-loc-page .loc-home-card:not(:has(.et_pb_icon_list_text)) .loc-highlights-label {
  display: none;
}
/* The photo fills the card's 4:3 frame (v3) even where the card is wider than the image file,
 * and the button keeps v3's 24px from the list above it. */
.d5f-loc-page .loc-home-card .et_pb_image .et_pb_image_wrap,
.d5f-loc-page .loc-home-card .et_pb_image img {
  width: 100%;
}
.d5f-loc-page .loc-home-card .et_pb_button_module_wrapper {
  margin-top: 24px;
}
/* Card links (loc-card-link) sit at their card's foot with v3's gap above the text: 20px in
 * the fee cards, 18px in the guidance cards (with the card's own 9px gap) and 14px under the
 * contact card's button, which goes to the foot with its link. Padding, not margin: the
 * margin is the auto that pushes the link down. */
.d5f-loc-page .loc-card-link {
  margin-top: auto;
}
.d5f-loc-page .loc-fees .loc-card-link {
  padding-top: 20px;
}
.d5f-loc-page .loc-guidance .loc-card-link {
  padding-top: 9px;
}
.d5f-loc-page .loc-contact-card .et_pb_button_module_wrapper {
  margin-top: auto;
}
.d5f-loc-page .loc-contact .loc-card-link {
  margin-top: 0;
  padding-top: 14px;
}
/* The map list reads "Name, Town"; the comma comes only with a town (:has cannot nest, and
 * Divi prints a token's "before" text even for an empty value). */
.d5f-loc-page .loc-map-town:not(:empty)::before {
  content: ", ";
}

/* ---------- Home for Life ---------- */
.d5f-loc-page .loc-hfl {
  padding: 54px 0 0;
}
.d5f-loc-page .loc-hfl-copy {
  display: flex;
  flex-direction: column;
  gap: 30px;
  padding: 10%;
  position: relative;
  z-index: 2;
}
.d5f-loc-page .loc-hfl-media {
  position: relative;
  min-width: 0;
  min-height: 100%;
}
.d5f-loc-page .loc-hfl-photo {
  position: absolute;
  inset: 0;
  margin: 0 !important;
  border-radius: 0 10px 10px 0;
  overflow: hidden;
}
.d5f-loc-page .loc-hfl-photo .et_pb_image_wrap,
.d5f-loc-page .loc-hfl-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.d5f-loc-page .loc-hfl-ribbon {
  position: absolute;
  z-index: 2;
  right: 0;
  bottom: -46px;
  width: 117.7%;
  max-width: none;
  margin: 0 !important;
  pointer-events: none;
}

/* ---------- FAQs: the intro column stays in view beside the questions ---------- */
.d5f-loc-page .loc-faq-layout {
  align-items: flex-start;
}
.d5f-loc-page .loc-faq-intro {
  position: sticky;
  top: 180px;
}

/* The button location.js puts inside each FAQ heading for keyboard access: it takes the
 * heading's look, so nothing changes visually except the focus ring. */
.d5f-loc-page .loc-faq-button {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  color: inherit;
  text-align: inherit;
  cursor: pointer;
}
.d5f-loc-page .loc-faq-button:focus-visible {
  outline: 3px solid var(--gcid-1bkrrn0b5w, #173542);
  outline-offset: 4px;
}

/* v3's chevron instead of Divi's toggle glyph: down when closed, up when open. */
.d5f-loc-page .loc-faqs .et_pb_toggle_title::before {
  content: "" !important;
  display: block !important;
  width: 11px;
  height: 11px;
  margin-top: -9px;
  right: 6px;
  top: 50%;
  font-size: 0;
  border-right: 2px solid var(--gcid-0c954fbe-679d-42e9-84b7-a563185ae948, #768f68);
  border-bottom: 2px solid var(--gcid-0c954fbe-679d-42e9-84b7-a563185ae948, #768f68);
  background: none;
  transform: rotate(45deg);
  transition: transform .2s ease;
}
.d5f-loc-page .loc-faqs .et_pb_toggle_open .et_pb_toggle_title::before {
  margin-top: -3px;
  transform: rotate(-135deg);
}

/* ---------- contact: the deep-teal band ---------- */
.d5f-loc-page .loc-contact {
  background: var(--gcid-36b08ff1-d223-407a-9e72-038dc2509203, #083848);
  padding: 70px 0;
}
.d5f-loc-page .loc-contact-card .et_pb_button_module_wrapper,
.d5f-loc-page .loc-contact-card .et_pb_button {
  width: 100%;
  text-align: center;
}
/* v3's contact button at every width: 17px, 20px each side (the preset holds 18px and the
 * arrow room with !important), so "Enquire about this home" fits a three-across card. */
body.d5f-loc-page #page-container .et_pb_section .loc-contact-card .et_pb_button.et_pb_module {
  padding: 12px 20px !important;
  font-size: 17px !important;
}
.d5f-loc-page .loc-county-contact a {
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* ---------- v3 breakpoints ---------- */
@media (max-width: 1100px) {
  /* v3 pairs the home cards and the four "why" cards from here; Divi's tablet columns only
   * start at 980px. */
  .d5f-loc-page .loc-home-grid.et_pb_group,
  .d5f-loc-page .loc-usp-grid.et_pb_group {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .d5f-loc-page .loc-care-tabs .et_pb_tab_nav_item_link {
    font-size: 17px;
    padding: 14px 18px;
  }
  .d5f-loc-page .loc-care-tabs .et_pb_tabs_controls {
    gap: 10px;
  }
}
@media (max-width: 980px) {
  /* v3 stacks the three-card rows here (three cannot pair), guidance and contact centred at
   * 620px; Divi's tablet setting would show two across. */
  .d5f-loc-page .loc-map-list.et_pb_group,
  .d5f-loc-page .loc-fee-grid.et_pb_group,
  .d5f-loc-page .loc-guidance-grid.et_pb_group,
  .d5f-loc-page .loc-contact-grid.et_pb_group {
    grid-template-columns: minmax(0, 1fr);
  }
  .d5f-loc-page .loc-guidance-grid.et_pb_group,
  .d5f-loc-page .loc-contact-grid.et_pb_group {
    max-width: 620px;
    margin-left: auto;
    margin-right: auto;
  }
  /* v3 stacks its two-column hero and FAQ rows here; Divi would keep them side by side. */
  .d5f-loc-page .loc-hero-grid,
  .d5f-loc-page .loc-faq-layout {
    flex-direction: column;
  }
  .d5f-loc-page .loc-hero-grid > .et_pb_column,
  .d5f-loc-page .loc-faq-layout > .et_pb_column {
    width: 100%;
    max-width: 100%;
  }
  .d5f-loc-page .loc-hero-copy {
    padding: 50px 9vw;
  }
  .d5f-loc-page .loc-hero-media {
    min-height: 600px;
  }
  .d5f-loc-page .loc-care-panel {
    grid-template-columns: 1fr;
    gap: 28px;
    align-items: start;
  }
  .d5f-loc-page .loc-care-tabs .et_pb_all_tabs {
    padding: 92px 40px 46px;
  }
  .d5f-loc-page .loc-faq-intro {
    position: static;
  }
}
@media (max-width: 767px) {
  .d5f-loc-page .loc-section {
    padding: 48px 0; /* not the hero: .loc-hero.et_pb_section outranks it */
  }
  .d5f-loc-page .loc-fees {
    padding: 60px 0;
  }
  .d5f-loc-page .et_pb_module.loc-intro {
    margin-bottom: 26px;
  }
  .d5f-loc-page .loc-filter-bar.et_pb_group {
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    gap: 8px;
    padding: 10px;
    border-radius: 16px;
    margin-bottom: 24px;
  }
  .d5f-loc-page .loc-filter-bar .et_pb_button_module_wrapper,
  .d5f-loc-page .loc-filter-bar .et_pb_button {
    width: 100%;
    text-align: left;
  }
  .d5f-loc-page .loc-filter-bar .et_pb_button {
    padding: 14px 18px !important;
    font-size: 16px !important;
  }
  .d5f-loc-page .loc-hero-actions {
    display: grid;
    grid-template-columns: 1fr;
  }
  .d5f-loc-page .loc-hero-actions .et_pb_button_module_wrapper,
  .d5f-loc-page .loc-hero-actions .et_pb_button {
    width: 100%;
    text-align: center;
  }
  .d5f-loc-page .loc-hero-media {
    min-height: auto;
    padding: 190px 18px 34px;
    display: flex;
    align-items: flex-end;
  }
  .d5f-loc-page .loc-fact-card {
    position: relative;
    inset: auto;
    width: 100%;
    max-width: none;
  }
  .d5f-loc-page .loc-reviews {
    padding: 44px 0 56px;
  }
  .d5f-loc-page .loc-reviews .loc-reviews-swoop {
    width: 60%;
    opacity: .85;
  }
  .d5f-loc-page .loc-reviews .et_pb_group_carousel {
    padding-bottom: 84px;
  }
  .d5f-loc-page .d5f-loc-map {
    height: 360px;
  }
  .d5f-loc-page .leaflet-popup-content {
    width: 210px !important;
  }
  .d5f-loc-page .loc-care-tabs .et_pb_tabs_controls {
    flex-direction: column;
    width: 100%;
    border-radius: 16px;
    gap: 8px;
    padding: 10px !important;
    margin-bottom: 16px;
  }
  .d5f-loc-page .loc-care-tabs .et_pb_tab_nav_item_link {
    text-align: left;
    padding: 14px 18px;
  }
  .d5f-loc-page .loc-care-tabs .et_pb_all_tabs {
    padding: 26px 22px 30px;
    border-radius: 10px;
  }
  .d5f-loc-page .loc-care-body h3 {
    font-size: 28px;
    line-height: 1.2;
  }
  .d5f-loc-page .loc-care-body p {
    font-size: 17px;
  }
  .d5f-loc-page .loc-hfl {
    padding-top: 50px;
  }
  .d5f-loc-page .loc-hfl-media {
    grid-row: 1;
    min-height: 0;
    aspect-ratio: 1.185 / 1;
  }
  .d5f-loc-page .loc-hfl-photo {
    border-radius: 10px 10px 0 0;
  }
  .d5f-loc-page .loc-hfl-copy {
    grid-row: 2;
    padding: 5%;
  }
  .d5f-loc-page .loc-hfl-ribbon {
    width: 100%;
    bottom: -18px;
  }
  .d5f-loc-page .loc-contact {
    padding: 48px 0;
  }
  /* v3 stacks the Home for Life panel: photo above copy, one column. */
  .d5f-loc-page .loc-hfl .et_pb_group:has(> .loc-hfl-copy) {
    grid-template-columns: 1fr;
    gap: 40px;
    min-height: 0;
  }
  /* v3's phone contact card, so "Enquire about this home" stays on one line; the preset holds
   * the desktop padding with !important. */
  .d5f-loc-page .loc-contact .loc-contact-card.et_pb_group {
    padding: 24px 22px 26px !important;
  }
  .d5f-loc-page .loc-home-grid.et_pb_group,
  .d5f-loc-page .loc-usp-grid.et_pb_group {
    grid-template-columns: minmax(0, 1fr);
  }
  /* v3's 16px Home for Life button on phones, on one line. */
  body.d5f-loc-page #page-container .loc-hfl.et_pb_section .et_pb_button.et_pb_module {
    padding: 12px 22px !important;
    font-size: 16px !important;
  }
}
