/* Hallmark · component: location explorer · genre: editorial · theme: existing Campervan Brisbane brand · states: native links · surface: absolute · v2.0.0 */
/* Hallmark · pre-emit critique: P4 H5 E4 S4 R4 V4 · weakest: V, eleven repeated rows replaced with one Brisbane feature and regional reading paths */
/* Hallmark · waive 7b · surface: absolute; original white canvas · location directory follows the user’s white and orange brand composition */
:root { --location-feature:#fff5e8; --location-focus:var(--focus); --location-clear:transparent; --location-gap:40px; }
.location-explorer .location-explorer__heading { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); align-items:end; gap:var(--location-gap); margin-bottom:32px; }
.location-explorer .location-explorer__heading h2 { margin:0; overflow-wrap:break-word; min-width:0; text-wrap:balance; }
.location-explorer .location-explorer__heading p { margin:0; max-width:43ch; color:var(--muted); }
.location-explorer .location-explorer__layout { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:var(--location-gap); align-items:start; }
.location-explorer .location-explorer__feature { background:var(--location-feature); border-radius:24px; padding-bottom:32px; }
.location-explorer .location-explorer__feature figure { margin:0; }
.location-explorer .location-explorer__feature img { display:block; width:100%; aspect-ratio:1.62; height:auto; object-fit:cover; border-radius:24px 24px 0 0; }
.location-explorer .location-explorer__feature figcaption { padding:8px 28px 0; color:var(--muted); font-family:var(--font-body); font-size:12px; line-height:1.4; letter-spacing:normal; }
.location-explorer .location-explorer__feature-copy { padding:24px 28px 0; }
.location-explorer .location-explorer__feature h3 { font-size:35px; font-family:var(--font-display); line-height:1.1; letter-spacing:-.035em; overflow-wrap:break-word; min-width:0; text-wrap:balance; margin:0; }
.location-explorer .location-explorer__feature p { margin:16px 0 0; max-width:39ch; font-size:18px; line-height:1.55; }
.location-explorer .location-explorer__feature-link { display:inline-flex; align-items:center; min-height:44px; margin-top:20px; color:var(--link); font-weight:700; font-family:var(--font-body); font-size:16px; text-underline-offset:4px; }
.location-explorer .location-explorer__regions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 32px; padding-top:4px; }
.location-explorer .location-explorer__region { min-width:0; padding:0; border:0; background:var(--location-clear); }
.location-explorer .location-explorer__region h3 { min-height:2.5em; font-family:var(--font-body); font-size:17px; line-height:1.3; font-weight:600; letter-spacing:normal; color:var(--muted); margin:0 0 8px; }
.location-explorer .location-explorer__region ul { list-style:none; margin:0; padding:0; }
.location-explorer .location-explorer__region li { border-top:1px solid var(--line); margin:0; padding:0; }
.location-explorer .location-explorer__region a { display:grid; gap:4px; min-height:76px; padding:16px 0; color:var(--ink); text-decoration:none; outline:2px solid var(--location-clear); outline-offset:4px; }
.location-explorer .location-explorer__region strong { font-family:var(--font-display); font-size:23px; line-height:1.2; font-weight:700; letter-spacing:-.025em; }
.location-explorer .location-explorer__region a span { font-family:var(--font-body); font-size:13px; line-height:1.4; color:var(--muted); }
.location-explorer a:focus-visible { outline:2px solid var(--location-focus); outline-offset:4px; }
.location-explorer a:active { color:var(--link); }
.location-explorer a[aria-disabled="true"] { opacity:.55; cursor:not-allowed; }
.location-explorer .location-explorer__note { margin:28px 0 0; color:var(--muted); font-size:14px; max-width:90ch; }
@media(hover:hover) { .location-explorer .location-explorer__region a:hover strong { color:var(--link); text-decoration:underline; text-underline-offset:4px; } }
@media(max-width:1000px) {
 .location-explorer .location-explorer__layout { grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:24px; }
 .location-explorer .location-explorer__regions { gap:24px; }
 .location-explorer .location-explorer__feature-copy { padding-inline:24px; }
 .location-explorer .location-explorer__feature figcaption { padding-inline:24px; }
 .location-explorer .location-explorer__feature h3 { font-size:31px; }
}
@media(max-width:760px) {
 .location-explorer .location-explorer__heading { grid-template-columns:minmax(0,1fr); gap:16px; margin-bottom:24px; }
 .location-explorer .location-explorer__layout { grid-template-columns:minmax(0,1fr); gap:36px; }
 .location-explorer .location-explorer__feature { padding-bottom:24px; border-radius:22px; }
 .location-explorer .location-explorer__feature img { aspect-ratio:1.9; border-radius:22px 22px 0 0; }
 .location-explorer .location-explorer__feature p { max-width:50ch; }
 .location-explorer .location-explorer__regions { gap:32px 24px; }
 .location-explorer .location-explorer__region h3 { min-height:2.5em; }
}
@media(max-width:400px) {
 .location-explorer .location-explorer__regions { grid-template-columns:minmax(0,1fr); gap:24px; }
 .location-explorer .location-explorer__region h3 { min-height:0; font-size:16px; }
 .location-explorer .location-explorer__region a { grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:12px; min-height:64px; }
 .location-explorer .location-explorer__region strong { font-size:21px; }
 .location-explorer .location-explorer__region a span { text-align:right; }
}
@media(prefers-reduced-motion:reduce) { .location-explorer * { animation:none; transition:none; } }
