.lw-locations-hub { overflow: hidden; background: var(--lw-paper); }
.lw-locations-hub :is(h1, h2, h3) { padding-top: 0; }
.lw-locations-hub h1, .lw-locations-hub h2 { text-wrap: balance; }
.lw-locations-hub .lw-eyebrow { margin: 0 0 .7rem; color: var(--lw-red); font-size: clamp(1rem, 1.25vw, 1.22rem); font-weight: 900; line-height: 1; letter-spacing: .07em; }
.lw-locations-hub__hero { position: relative; padding-block: clamp(2.75rem, 4.5vw, 5rem); background: var(--lw-paper); }
.lw-locations-hub__hero::before { content: ""; position: absolute; top: -8rem; left: -7rem; width: clamp(18rem, 30vw, 30rem); aspect-ratio: 1; border: clamp(1.4rem, 2.5vw, 2.4rem) solid rgb(237 28 36 / 7%); border-radius: 50%; }
.lw-locations-hub__hero-grid { position: relative; display: grid; grid-template-columns: minmax(0, .92fr) minmax(25rem, 1.08fr); gap: clamp(3rem, 7vw, 7rem); align-items: center; }
.lw-locations-hub__hero-copy { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: flex-start; }
.lw-locations-hub__hero-copy .lw-eyebrow { margin: 0 0 .45rem; }
.lw-locations-hub__hero-copy h1 { max-width: 12ch; margin: 0 0 1.35rem; color: var(--lw-coal); font-size: clamp(3.1rem, 4.8vw, 5.1rem); line-height: .92; }
.lw-locations-hub__hero-copy > p:not(.lw-eyebrow) { max-width: 37rem; color: var(--lw-muted); font-size: clamp(1.05rem, 1.3vw, 1.2rem); }
.lw-locations-hub__carousel { min-width: 0; padding: .55rem .55rem 0; background: var(--lw-red); border-radius: calc(var(--lw-radius) + .2rem); box-shadow: var(--lw-shadow); }
.lw-locations-hub__viewport { overflow: hidden; border-radius: var(--lw-radius) var(--lw-radius) 0 0; scroll-behavior: smooth; }
.lw-locations-hub__track { display: flex; }
.lw-locations-hub__slide { flex: 0 0 100%; height: clamp(27rem, 43vw, 38rem); margin: 0; }
.lw-locations-hub__slide > a { position: relative; display: block; width: 100%; height: 100%; overflow: hidden; }
.lw-locations-hub__picture, .lw-locations-hub__picture img, .lw-locations-hub__managed-image { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 72%; }
.lw-locations-hub__slide:first-child .lw-locations-hub__picture img { object-position: 50% 84%; }
.lw-locations-hub__fallback { display: grid; place-content: center; height: 100%; color: #fff; background: var(--lw-coal); text-align: center; text-transform: uppercase; }
.lw-locations-hub__fallback span { color: var(--lw-red); font-size: .8rem; font-weight: 900; letter-spacing: .15em; }
.lw-locations-hub__fallback strong { font-size: 3rem; }
.lw-locations-hub__slide-label { position: absolute; right: 1rem; bottom: 1rem; left: 1rem; display: grid; grid-template-columns: 1fr auto; align-items: end; padding: 1rem 1.15rem; color: #fff; background: rgb(18 28 37 / 88%); backdrop-filter: blur(8px); }
.lw-locations-hub__slide-label span { grid-column: 1 / -1; font-size: .68rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.lw-locations-hub__slide-label strong { font-size: clamp(1.45rem, 2.5vw, 2.2rem); line-height: 1; }
.lw-locations-hub__slide-label small { font-weight: 800; }
.lw-locations-hub__carousel-footer { display: flex; justify-content: space-between; align-items: center; gap: 1rem; min-height: 4.5rem; padding-inline: .75rem; color: #fff; }
.lw-locations-hub__carousel-footer p { margin: 0; font-size: .86rem; }
.lw-locations-hub__carousel-footer > div { display: flex; align-items: center; gap: .7rem; }
.lw-locations-hub__carousel-footer button { display: grid; place-items: center; width: 2.35rem; height: 2.35rem; padding: 0; color: #fff; background: transparent; border: 1px solid rgb(255 255 255 / 60%); border-radius: 50%; cursor: pointer; }
.lw-locations-hub__carousel-footer span { min-width: 2.7rem; text-align: center; font-size: .78rem; }

.lw-locations-directory { position: relative; padding-block: clamp(4.5rem, 7vw, 7.5rem); background: var(--lw-soft); }
.lw-locations-directory::before, .lw-locations-directory::after { content: ""; position: absolute; aspect-ratio: 1; border-radius: 50%; pointer-events: none; }
.lw-locations-directory::before { top: 8%; right: -7rem; width: clamp(17rem, 25vw, 25rem); border: 1.7rem solid rgb(237 28 36 / 7%); }
.lw-locations-directory::after { bottom: 4%; left: -4rem; width: 10rem; background: rgb(237 28 36 / 6%); }
.lw-locations-directory > .lw-container { position: relative; z-index: 1; }
.lw-locations-directory__heading { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(18rem, .8fr); gap: 3rem; align-items: end; margin-bottom: clamp(2.5rem, 5vw, 4.5rem); padding-left: clamp(1rem, 2vw, 1.5rem); border-left: .3rem solid var(--lw-red); }
.lw-locations-directory__heading h2 { max-width: 14ch; margin: 0; color: var(--lw-coal); font-size: clamp(2.55rem, 3.9vw, 4.05rem); line-height: .95; }
.lw-locations-directory__heading > p { max-width: 31rem; margin: 0 0 .5rem; color: var(--lw-muted); font-size: 1.05rem; }
.lw-locations-directory__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.5rem); }
.lw-directory-card { display: flex; flex-direction: column; min-width: 0; background: #fff; box-shadow: 0 12px 32px rgb(15 28 38 / 8%); transition: transform var(--lw-ease), box-shadow var(--lw-ease); }
.lw-directory-card:hover { transform: translateY(-.35rem); box-shadow: var(--lw-shadow); }
.lw-directory-card__media { display: block; height: clamp(14rem, 21vw, 18rem); overflow: hidden; background: var(--lw-coal); }
.lw-directory-card__picture, .lw-directory-card__picture img { display: block; width: 100%; height: 100%; object-fit: cover; }
.lw-directory-card--interlomas .lw-directory-card__picture img { object-position: 50% 88%; }
.lw-directory-card--metepec .lw-directory-card__picture img { object-position: 67% 55%; }
.lw-directory-card__fallback { display: grid; place-content: center; height: 100%; color: #fff; background: var(--lw-coal); text-align: center; text-transform: uppercase; }
.lw-directory-card__fallback span { color: var(--lw-red); font-size: .75rem; font-weight: 900; letter-spacing: .15em; }
.lw-directory-card__fallback strong { font-size: 2rem; }
.lw-directory-card__body { display: flex; flex: 1; flex-direction: column; padding: clamp(1.25rem, 2vw, 1.75rem); }
.lw-directory-card__region { margin-bottom: .4rem; color: var(--lw-red); font-size: .72rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.lw-directory-card h3 { margin-bottom: .8rem; color: var(--lw-coal); font-size: clamp(1.55rem, 2vw, 2rem); }
.lw-directory-card address { min-height: 4.5rem; color: var(--lw-muted); font-style: normal; font-size: .86rem; line-height: 1.45; }
.lw-directory-card ul { display: flex; flex-wrap: wrap; gap: .4rem; margin: 1rem 0; padding: 0; list-style: none; }
.lw-directory-card li { padding: .35rem .55rem; background: var(--lw-soft); font-size: .72rem; font-weight: 750; }
.lw-directory-card__price { margin-top: auto; color: var(--lw-coal); font-weight: 850; }
.lw-directory-card__actions { display: flex; justify-content: space-between; gap: 1rem; padding-top: 1rem; border-top: 1px solid var(--lw-line); }
.lw-directory-card__actions a { font-size: .78rem; font-weight: 850; }
.lw-locations-directory .lw-data-note { margin: 1.3rem 0 0; color: var(--lw-muted); font-size: .76rem; }

.lw-locations-help { position: relative; padding-block: clamp(4rem, 6vw, 6.5rem); background: var(--lw-paper); }
.lw-locations-help::after { content: ""; position: absolute; right: -5rem; bottom: -7rem; width: 19rem; aspect-ratio: 1; border: 1.5rem solid rgb(237 28 36 / 7%); border-radius: 50%; }
.lw-locations-help__inner { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(18rem, .9fr); gap: clamp(3rem, 7vw, 7rem); align-items: center; }
.lw-locations-help__inner > div:first-child { padding-left: clamp(1rem, 2vw, 1.5rem); border-left: .3rem solid var(--lw-red); }
.lw-locations-help h2 { max-width: 16ch; margin: 0; color: var(--lw-coal); font-size: clamp(2.45rem, 3.6vw, 3.7rem); line-height: .96; }
.lw-locations-help__inner > div:last-child p { max-width: 33rem; color: var(--lw-muted); }
.lw-locations-help button { border: 0; cursor: pointer; }

@media (max-width: 64rem) {
	.lw-locations-hub__hero-grid { grid-template-columns: 1fr 1fr; gap: 3rem; }
	.lw-locations-directory__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 47.99rem) {
	.lw-locations-hub__hero-grid, .lw-locations-directory__heading, .lw-locations-help__inner { grid-template-columns: 1fr; }
	.lw-locations-hub__hero { padding-top: 2.5rem; }
	.lw-locations-hub__hero-copy h1 { font-size: clamp(3rem, 13vw, 4.3rem); }
	.lw-locations-hub__slide { height: 27rem; }
	.lw-locations-hub__carousel-footer { align-items: flex-start; flex-direction: column; padding-block: .8rem; }
	.lw-locations-directory__grid { grid-template-columns: 1fr; }
	.lw-directory-card address { min-height: 0; }
}
