/* Locations: existing Hugo Carter type, colour, buttons and containers; scoped layout only. */
.hc-locations { color:var(--charcoal); }
.hc-locations [hidden] { display:none!important; }
.hc-locations-hero { position:relative; overflow:hidden; background:var(--sage); padding:42px 0 64px; }
.hc-locations-hero.has-image { min-height:540px; display:flex; align-items:flex-end; color:var(--white); background:var(--charcoal); }
.hc-locations-hero-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hc-locations-hero.has-image:after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,rgba(41,34,27,.72),rgba(41,34,27,.38) 68%,rgba(41,34,27,.18)); }
.hc-locations-hero-copy { position:relative; z-index:1; }
.hc-locations-breadcrumb { display:flex; gap:12px; align-items:center; flex-wrap:wrap; font-size:12px; line-height:20px; margin:0 0 46px; }
.hc-locations-breadcrumb a { text-decoration:underline; text-underline-offset:4px; }
.hc-locations-hero h1 { max-width:1050px; font-size:70px; line-height:1.18; font-weight:500; margin:0 0 26px; }
.hc-locations-hero p { max-width:740px; font-size:17px; line-height:29px; margin:0 0 30px; }
.hc-locations-hero-actions,.hc-location-next-actions { display:flex; gap:16px; flex-wrap:wrap; }
.hc-locations-hero.has-image .btn-secondary { color:var(--white); border-color:var(--white); }
.hc-locations-intro-copy { max-width:960px; margin:0 auto; }
.hc-locations-directory { background:#f0f0f0; }
.hc-locations-directory-heading { max-width:760px; margin:0 auto 45px; text-align:center; }
.hc-locations-directory h2,.hc-location-next h2 { font-size:50px; line-height:1.25; font-weight:500; margin:0 0 22px; }
.hc-locations-directory-heading p { margin:0; }
.hc-locations-layout { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(300px,.8fr); gap:54px; align-items:start; }
.hc-locations-map-column { min-width:0; }
.hc-locations-map-instructions { text-align:center; margin:0 0 20px; font-size:13px; }
.hc-locations-map-shell { background:var(--white); border-radius:8px; padding:12px 18px 16px; }
.hc-locations-map { position:relative; width:100%; max-width:620px; margin:0 auto; }
.hc-locations-map-geography { display:block; width:100%; height:auto; }
.hc-locations-map-credit { font-size:10px; line-height:18px; text-align:right; margin:0; }
.hc-locations-map-credit a { text-decoration:underline; text-underline-offset:2px; }
.hc-locations-pin { position:absolute; display:flex; align-items:center; justify-content:center; width:28px; height:34px; transform:translate(-50%,-85%); color:var(--charcoal); z-index:2; transition:color .15s ease; }
.hc-locations-pin svg { flex:none; width:14px; height:18px; filter:drop-shadow(0 1px 1px rgba(0,0,0,.16)); }
.hc-locations-pin:hover,.hc-locations-pin:focus-visible { color:var(--taupe); z-index:4; }
.hc-locations-pin:focus-visible { outline:2px solid var(--charcoal); outline-offset:2px; border-radius:4px; }
.hc-locations-map-tooltip { position:absolute; z-index:6; width:250px; max-width:calc(100% - 24px); padding:18px; background:var(--white); color:var(--charcoal); border:1px solid #ddd; box-shadow:0 3px 14px rgba(0,0,0,.1); font-size:12px; line-height:21px; border-radius:5px; }
.hc-locations-map-tooltip strong { display:block; font-family:'PP Formula Extrabold'; font-size:17px; line-height:24px; margin-bottom:8px; }
.hc-locations-map-tooltip p { margin:0 0 10px; }
.hc-locations-map-tooltip > a { display:inline-flex; align-items:center; gap:8px; min-height:44px; font-family:'PP Formula Extrabold'; color:var(--taupe); text-decoration:underline; text-underline-offset:4px; }
.hc-locations-controls { margin:0 0 22px; }
.hc-locations-controls label { display:block; font-family:'PP Formula Extrabold'; font-size:13px; line-height:22px; margin-bottom:8px; }
.hc-locations-controls input,.hc-locations-controls select { display:block; width:100%; min-height:50px; border:1px solid #c5c6c0; background:var(--white); color:var(--charcoal); border-radius:5px; padding:11px 14px; font:inherit; font-size:14px; line-height:24px; }
.hc-locations-controls select { margin-bottom:22px; }
.hc-locations-controls :is(input,select):focus-visible,.hc-locations a:focus-visible { outline:2px solid var(--taupe); outline-offset:3px; }
.hc-locations-count { font-size:12px; line-height:20px; margin:10px 0 0; }
.hc-locations-list { list-style:none; margin:0; padding:0; border-top:1px solid #c5c6c0; }
.hc-locations-list[tabindex]:focus-visible { outline:2px solid var(--taupe); outline-offset:3px; }
.hc-locations-list li { margin:0; padding:0; border-bottom:1px solid #c5c6c0; }
.hc-locations-list a { display:flex; justify-content:space-between; gap:18px; align-items:center; min-height:64px; padding:15px 4px; }
.hc-locations-list a:hover { color:var(--taupe); }
.hc-locations-list strong { display:block; font-family:'PP Formula Extrabold'; font-size:15px; line-height:23px; }
.hc-locations-list small { display:block; font-size:12px; line-height:19px; margin-top:3px; }
.hc-locations-list svg { flex:none; }
.hc-locations-no-results { margin:20px 0 0; }
.hc-locations-layout-list { display:block; max-width:960px; margin:0 auto; }
.hc-locations-layout-list .hc-locations-list { columns:2; column-gap:40px; }
.hc-locations-layout-list .hc-locations-list li { break-inside:avoid; }
.hc-location-body { max-width:960px; margin:0 auto; font-size:15px; line-height:27px; }
.hc-location-body > :first-child { margin-top:0; }
.hc-location-body > :last-child { margin-bottom:0; }
.hc-location-body h2 { font-size:42px; line-height:1.28; font-weight:500; margin:64px 0 28px; }
.hc-location-body h3 { font-size:30px; line-height:1.35; font-weight:500; margin:42px 0 20px; }
.hc-location-body p { margin:0 0 24px; }
.hc-location-body :is(ul,ol) { margin:0 0 28px; padding-left:24px; list-style:disc outside; }
.hc-location-body ol { list-style-type:decimal; }
.hc-location-body li { padding-left:5px; margin-bottom:12px; }
.hc-location-body li::marker { color:var(--taupe); }
.hc-location-body a:not(.btn) { text-decoration:underline; text-underline-offset:4px; }
.hc-location-body img { border-radius:8px; max-width:100%; height:auto; }
.hc-location-body figure { margin:32px 0; }
.hc-location-body .wp-block-columns { gap:42px; margin-bottom:42px; align-items:center; }
.hc-location-body .wp-block-columns .wp-block-column { min-width:0; }
.hc-location-body .wp-block-columns figure { margin:0; }
.hc-location-body .wp-block-columns h2 { margin-top:0; }
.hc-location-body .wp-block-image img { display:block; width:100%; }
.hc-location-body figcaption { font-size:12px; line-height:20px; margin-top:10px; }
.hc-location-next { background:var(--sage); }
.hc-location-next-inner { display:flex; gap:45px; align-items:center; justify-content:space-between; }
.hc-location-next-inner > div:first-child { max-width:740px; }
.hc-location-next p { margin:0; }
.hc-location-next-actions { flex:none; flex-direction:column; align-items:stretch; }
@media (min-width:768px) {
 .hc-locations-layout:not(.hc-locations-layout-list) .hc-locations-list { max-height:560px; overflow-y:auto; padding-right:12px; scrollbar-gutter:stable; overscroll-behavior-y:contain; }
}
@media (max-width:1199px) {
 .hc-locations-hero h1 { font-size:58px; }
 .hc-locations-layout { gap:32px; grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr); }
 .hc-location-next-inner { display:block; }
 .hc-location-next-actions { flex-direction:row; margin-top:30px; }
}
@media (max-width:991px) {
 .hc-locations-hero { padding:30px 0 48px; }
 .hc-locations-hero.has-image { min-height:470px; }
 .hc-locations-hero h1 { font-size:48px; }
 .hc-locations-breadcrumb { margin-bottom:30px; }
 .hc-locations-directory h2,.hc-location-next h2 { font-size:40px; }
 .hc-locations-layout { gap:30px; grid-template-columns:minmax(0,1fr) minmax(260px,.9fr); }
 .hc-location-body h2 { font-size:36px; }
 .hc-location-body .wp-block-columns { gap:28px; }
 .hc-locations-map-shell { padding:10px 8px; }
}
@media (max-width:767px) {
 .hc-locations-hero { padding:24px 0 42px; }
 .hc-locations-hero.has-image { min-height:490px; }
 .hc-locations-hero.has-image:after { background:linear-gradient(90deg,rgba(41,34,27,.72),rgba(41,34,27,.65)); }
 .hc-locations-hero h1 { font-size:40px; line-height:1.24; margin-bottom:22px; }
 .hc-locations-hero p { font-size:15px; line-height:27px; }
 .hc-locations-breadcrumb { font-size:11px; gap:9px; margin-bottom:28px; }
 .hc-locations-hero-actions { gap:12px; flex-direction:column; align-items:flex-start; }
 .hc-locations-layout { display:flex; flex-direction:column; }
 .hc-locations-map-column,.hc-locations-directory-column { width:100%; }
 .hc-locations-directory-heading { margin-bottom:30px; }
 .hc-locations-directory h2,.hc-location-next h2 { font-size:34px; line-height:1.28; }
 .hc-locations-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:20px; }
 .hc-locations-list a { min-height:72px; gap:8px; }
 .hc-locations-list strong { font-size:13px; line-height:21px; }
 .hc-locations-list small { font-size:11px; line-height:18px; }
 .hc-locations-list svg { width:13px; height:13px; }
 .hc-locations-map { max-width:460px; }
 .hc-locations-map-shell { padding:12px; }
 .hc-locations-map-instructions { margin-top:5px; }
 .hc-locations-map-tooltip { width:220px; padding:14px; }
 .hc-locations-layout-list .hc-locations-list { columns:auto; }
 .hc-location-body { font-size:15px; line-height:27px; }
 .hc-location-body h2 { font-size:32px; line-height:1.3; margin-top:44px; margin-bottom:23px; }
 .hc-location-body h3 { font-size:25px; margin-top:32px; }
 .hc-location-body .wp-block-columns { display:block; margin-bottom:30px; }
 .hc-location-body .wp-block-columns .wp-block-column { margin-bottom:24px; }
 .hc-location-body figure { margin:25px 0; }
 .hc-location-next-actions { display:flex; flex-direction:column; }
}
@media (max-width:359px) {
 .hc-locations-hero h1 { font-size:34px; }
 .hc-locations-list { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce) { .hc-locations a { transition:none; } }
