/* Shared journey components. Route selectors below bridge existing semantic controls. */
:root { --journey-ink:#14243c; --journey-muted:#475569; --journey-blue:#003da5; --journey-border:#d5deea; --journey-bg:#f5f7fa; --journey-radius:14px; }
.journey-button, .journey-help button, [data-feedback-action="open-problem"], .saved-continuation a,
.journey-place .btn, .quick-add-modal .btn, .glasgow-finder-result-action {
 font:600 16px/1.4 Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; min-height:44px; padding:10px 16px; border-radius:8px; border:1px solid var(--journey-blue); background:var(--journey-blue); color:#fff; display:inline-flex; align-items:center; justify-content:center; gap:8px; text-decoration:none; cursor:pointer; box-shadow:none;
}
.journey-button-secondary, .journey-place .btn-secondary, .journey-place .trip-view-btn, .quick-add-modal .btn-outline,
.glasgow-finder-result-action:not(.glasgow-finder-result-action-primary) { background:#fff; color:var(--journey-blue); border-color:var(--journey-border); }
.journey-button:hover,.journey-place .btn:hover { filter:brightness(.94); }
.journey-button:disabled,.journey-place .btn:disabled { background:#e5ebf3; color:#475569; border-color:#cbd5e1; cursor:default; }
.journey-button:focus-visible,.journey-place :is(a,button,summary):focus-visible { outline:3px solid #b47500; outline-offset:3px; }
:is(#favorites-items-container,#checkins-items-container) .journey-place .remove-btn,.trip-planning-board .journey-place .trip-remove-btn,.trip-planning-board .journey-place .remove-btn { color:#a32121; background:transparent; border-color:transparent; }
.banner-hero-vector.banner-hero-vector--scottish-heritage { padding:48px 24px; min-height:0; background:#102c52; }
.banner-hero-vector .banner-container { display:block; max-width:1200px; margin:auto; }
.banner-hero-vector .banner-content-section { text-align:left; max-width:760px; }
.banner-hero-vector .banner-main-slogan { font-size:clamp(28px,3.1vw,42px); line-height:1.15; margin:0 0 16px; }
.banner-hero-vector .banner-sub-slogan { font-size:18px; line-height:1.5; margin:0; max-width:660px; }
.banner-hero-vector .banner-actions-section { display:flex; flex-flow:row wrap; justify-content:flex-start; align-items:center; gap:16px; margin-top:24px; }
.banner-hero-vector .banner-primary-actions { display:block; width:auto; }
.banner-hero-vector .banner-actions-section p { margin:0; }
.banner-hero-vector .banner-btn-primary { background:#fff; color:#003da5; border:1px solid #fff; box-shadow:none; border-radius:8px; min-height:44px; }
.banner-hero-vector .banner-finder-link { padding:8px 0; text-align:left; font-size:16px; }
#attractions { padding-top:32px; }
#attractions > .container, .journey-help { max-width:1200px; margin-inline:auto; }
.journey-discovery-toolbar { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:16px; margin:16px 0; }
.journey-view-switch { display:flex; gap:4px; padding:4px; border:1px solid var(--journey-border); border-radius:12px; background:#fff; }
.journey-view-switch button { background:transparent; border-color:transparent; color:var(--journey-blue); }
.journey-view-switch button[aria-pressed="true"] { background:var(--journey-blue); color:#fff; }
.map-and-insights-container.journey-discovery { --journey-map-height:640px; display:grid; grid-template-columns:minmax(0,2fr) minmax(0,3fr); gap:24px; align-items:start; }
.journey-discovery .travel-insights,.journey-discovery .insights-container,.journey-discovery .insights-grid { display:block; padding:0; margin:0; width:100%; min-width:0; }
.journey-discovery #matching-places-card { padding:16px; border:1px solid var(--journey-border); border-radius:14px; box-shadow:none; margin:0; }
.journey-discovery .map-container { margin:0; min-width:0; width:100%; height:var(--journey-map-height); }
.journey-discovery #map { height:100%; min-height:0; }
.journey-discovery #matching-places-list { max-height:480px; display:flex; gap:8px; padding:4px; }
.journey-discovery a.matching-place-item { flex:none; height:auto; padding:16px; min-height:0; box-shadow:none; border-radius:8px; }
.journey-discovery .matching-place-item[hidden] { display:none !important; }
.journey-discovery .popular-name { font-size:16px; line-height:1.4; }
.journey-discovery .popular-meta,.journey-discovery .matching-place-age { font-size:14px; line-height:1.5; overflow-wrap:anywhere; }
#journey-result-count { color:var(--journey-muted); font-size:14px; margin:0; flex-basis:100%; }
#journey-show-more { margin-top:12px; }
#journey-show-more[hidden] { display:none; }
.journey-help { padding:32px 16px 64px; }
.journey-help p { line-height:1.6; }
.featured-section,.guide-spotlight-section { max-width:1200px; margin:48px auto; }
.featured-section .section-title,.guide-spotlight-section .section-title { font-size:clamp(24px,3vw,32px); }
.featured-section .section-header-enhanced,.guide-spotlight-section .section-header-enhanced { text-align:left; margin-bottom:24px; }
/* Cards use the image only alongside identity; expanded information spans the full card. */
:is(#favorites-items-container,#checkins-items-container) .journey-place,.trip-planning-board .journey-place,.journey-place {
 display:grid; grid-template-columns:144px minmax(0,1fr); gap:8px 20px; align-items:start; padding:20px; border:1px solid var(--journey-border); border-radius:14px; background:white; box-shadow:none; overflow:visible;
}
:is(#favorites-items-container,#checkins-items-container) .journey-place .trip-item-image,.trip-planning-board .journey-place .trip-item-image { grid-column:1; grid-row:1/3; width:144px; height:112px; border-radius:8px; overflow:hidden; min-height:0; }
.journey-place .trip-item-image img { width:100%; height:100%; object-fit:cover; }
:is(#favorites-items-container,#checkins-items-container) .journey-place .trip-item-content,.trip-planning-board .journey-place .trip-item-content { display:contents; }
.journey-place .trip-item-category { grid-column:2; margin:0; align-self:end; font-size:14px; }
:is(#favorites-items-container,#checkins-items-container) .journey-place .trip-item-title,.trip-planning-board .journey-place .trip-item-title { grid-column:2; margin:0; font-size:20px; line-height:1.3; display:flex; gap:8px; align-items:baseline; }
.trip-planning-board .journey-place .trip-item-order { position:static; display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px; min-width:24px; border-radius:50%; background:#e8eef8; color:#003da5; font-size:14px; }
.journey-place :is(.trip-item-description,.saved-place-facts,.trip-item-planning,.journey-admission,.trip-item-parent-tip) { grid-column:1/-1; margin:8px 0 0; font-size:16px; line-height:1.5; }
.journey-place .trip-item-description { display:none; }
.journey-place .trip-item-planning { display:flex; flex-wrap:wrap; gap:8px 16px; }
.trip-planning-board .journey-place .trip-item-planning span { background:none; border:0; border-radius:0; padding:0; font-size:14px; font-weight:500; width:auto; min-height:21px; line-height:1.5; }
:is(#favorites-items-container,#checkins-items-container) .journey-place .trip-item-actions,.trip-planning-board .journey-place .trip-item-actions { grid-column:1/-1; display:flex; flex-direction:row; justify-content:flex-start; flex-wrap:wrap; gap:8px; margin-top:16px; padding:0; border:0; background:transparent; }
.journey-admission summary { min-height:44px; padding:10px 0; cursor:pointer; font-weight:600; }
.journey-admission p { margin:0 0 12px; line-height:1.5; }
#favorites-page .trip-header { padding-block:16px; margin-bottom:24px; }
#favorites-page .trip-header p { margin:8px 0; }
.trip-planning-board .trip-summary-panel { box-shadow:none; background:transparent; border:0; border-top:1px solid var(--journey-border); border-radius:0; padding:16px 0; }
.journey-trip-count { font-size:16px; margin:16px 0; }
.journey-template-disclosure { margin-top:24px; }
.journey-template-disclosure > summary { cursor:pointer; min-height:44px; padding:12px 0; font-weight:600; color:#003da5; }
.quick-add-modal .modal-footer { display:flex; justify-content:flex-end; gap:12px; padding:12px 16px; }
.quick-add-modal .modal-footer button { border-color:transparent; background:transparent; color:#003da5; }
.quick-add-modal .modal-footer .btn { width:auto; font-size:16px; }
.quick-add-item { border-radius:14px; box-shadow:none; }
.quick-add-meta { font-size:14px; line-height:1.5; }
/* The Finder retains its eligibility and ranking; only the presentation changes. */
.glasgow-finder-hero { padding:40px 0; }
.glasgow-finder-hero-grid { display:block; }
.glasgow-finder-hero-copy { max-width:760px; }
.glasgow-finder-start-link { border-radius:8px; border:1px solid #fff; }
.glasgow-finder-result-card { border-radius:14px; box-shadow:none; }
.glasgow-finder-result-image { height:160px; }
.glasgow-finder-result-content { padding:20px; gap:12px; }
.glasgow-finder-result-reason { margin:0; font-size:16px; line-height:1.5; }
.glasgow-finder-result-facts { gap:8px; }
.glasgow-finder-result-warning { margin:0; font-size:14px; }
.glasgow-finder-result-actions { display:flex; flex-wrap:wrap; gap:8px; }
.glasgow-finder-result-actions [data-action="details"],.glasgow-finder-result-actions [data-action="save"] { flex:1 1 140px; }
.glasgow-finder-result-actions [data-action="official"],.glasgow-finder-result-actions [data-action="map"] { min-height:44px; background:transparent; border-color:transparent; font-size:14px; padding:8px; }
.glasgow-finder-result-extra { font-size:14px; line-height:1.5; }
.glasgow-finder-result-extra summary { min-height:44px; padding:10px 0; cursor:pointer; color:#003da5; }
.site-feedback-dialog :is(input,textarea,button), form[name="attraction-suggestions"] :is(input,textarea,button,select) { font:inherit; }
.site-feedback-dialog [hidden] { display:none !important; }
.site-feedback-dialog :is(.site-feedback-primary,.site-feedback-secondary) { border-radius:8px; min-height:44px; }
form[name="attraction-suggestions"] .suggestion-submit { font:600 16px/1.4 Inter,system-ui,sans-serif; }
form[name="attraction-suggestions"] fieldset { padding:16px; }
form[name="attraction-suggestions"] fieldset label { display:flex; gap:12px; align-items:center; min-height:44px; }
@media(min-width:1024px) { .journey-view-switch { display:none; } }
@media(max-width:1023px) {
 .map-and-insights-container.journey-discovery { display:block; }
 #attractions .journey-discovery[data-view="list"] > .map-container,#attractions .journey-discovery[data-view="map"] > .travel-insights { display:none; }
 .journey-discovery #matching-places-list { max-height:none; overflow:visible; }
 .map-and-insights-container.journey-discovery { --journey-map-height:clamp(320px,62svh,620px); }
 .journey-discovery .map-container { height:var(--journey-map-height); min-height:0; }
}
@media(max-width:650px) {
 .banner-hero-vector.banner-hero-vector--scottish-heritage { padding:32px 16px; }
 .banner-hero-vector .banner-main-slogan { font-size:30px; }
 .banner-hero-vector .banner-sub-slogan { font-size:16px; }
 .banner-hero-vector .banner-actions-section { gap:8px; margin-top:20px; }
 :is(#favorites-items-container,#checkins-items-container) .journey-place,.trip-planning-board .journey-place { grid-template-columns:96px minmax(0,1fr); gap:8px 16px; padding:16px; }
 :is(#favorites-items-container,#checkins-items-container) .journey-place .trip-item-image,.trip-planning-board .journey-place .trip-item-image { width:96px; height:96px; }
 :is(#favorites-items-container,#checkins-items-container) .journey-place .trip-item-title,.trip-planning-board .journey-place .trip-item-title { font-size:18px; }
 .journey-place .trip-item-actions .btn { font-size:14px; padding:10px 12px; }
 .quick-add-modal .modal-footer { flex-wrap:wrap; }
 .journey-help { padding-bottom:88px; }
}
@media(prefers-reduced-motion:reduce) { .journey-discovery *, .journey-place *, .banner-hero-vector * { scroll-behavior:auto !important; transition:none !important; animation:none !important; } }
body[data-location-page] .hero-copy-panel { background:rgba(12,29,49,.83); border-radius:14px; padding:16px 24px; }
body[data-location-page] .hero-actions .btn { min-height:44px; border-radius:8px; padding:10px 16px; font-size:16px; box-shadow:none; }
body[data-location-page] .hero-actions [data-official-handoff] { background:#003da5; color:#fff; border:1px solid #fff; }
body[data-location-page] .hero-action-buttons { display:flex; flex-wrap:wrap; gap:8px; }
body[data-location-page] .hero-action-buttons :is(#add-to-trip-btn,#favorite-btn) { background:#fff; color:#003da5; border:1px solid #fff; }
body[data-location-page] .hero-action-buttons :is(.hero-primary-cta,#visited-btn) { background:transparent; color:#fff; border-color:transparent; text-decoration:underline; }
body[data-location-page] .hero-chips { gap:8px; }
body[data-location-page] .hero-chip { box-shadow:none; }
@media(max-width:650px) {
 body[data-location-page] .hero-copy-panel { padding:16px; }
 body[data-location-page] .hero-action-buttons > * { flex:1 1 140px; }
 body[data-location-page] .hero-actions .btn { font-size:14px; }
}

:is(#favorites-items-container,#checkins-items-container) .journey-place .trip-item-actions .btn,.trip-planning-board .journey-place .trip-item-actions .btn { width:auto; flex:0 1 auto; min-height:44px; font-size:14px; padding:10px 12px; }
#favorites-page .saved-continuation a:not(.btn-primary) { background:transparent; border-color:transparent; color:#003da5; }
#favorites-page .saved-continuation .btn-primary { background:#003da5; border-color:#003da5; }
.trip-planning-board .journey-place .journey-admission { margin-top:0; }
.trip-summary--planner { display:flex; flex-direction:column; }
@media(max-width:1023px) { .trip-summary--planner .trip-summary-actions { order:-1; margin:0 0 16px; padding:0 0 16px; border-bottom:1px solid #d5deea; } }
@media(max-width:650px) { #attractions > .container { padding-inline:16px; } }

body[data-location-page] .hero-copy-panel::before { display:none; }
.glasgow-finder-result-content > :is(p,h3) { margin-top:0; margin-bottom:0; }
.glasgow-finder-result-facts { margin:0; }
.glasgow-finder-result-card:first-child { transform:none; }
.glasgow-finder-result-checked { font-size:14px; }

#attractions .journey-discovery-container { padding-inline:16px; max-width:1200px; margin-inline:auto; }
.trip-summary--planner .btn { font:600 14px/1.4 Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; min-height:44px; border-radius:8px; }
.trip-summary--planner .trip-summary-secondary-actions { display:flex; flex-wrap:wrap; gap:8px; }
.trip-summary--planner .trip-summary-secondary-actions .btn { width:auto; flex:1 1 auto; }
@media(max-width:1023px) { .trip-summary--planner .trip-summary-secondary-actions .btn { flex:1 1 80px; } }

.journey-place .trip-item-heading { grid-column:2; display:flex; gap:8px; align-items:baseline; }

body[data-location-page] .hero-actions { display:flex; flex-direction:column; align-items:stretch; width:min(100%,680px); max-width:none; margin-inline:0; }
body[data-location-page] .hero-action-buttons { grid-column:1/-1; width:100%; }
body[data-location-page] .hero-action-buttons > .btn { width:auto; flex:0 1 auto; }
body[data-location-page] .hero-actions .hero-secondary-cta { width:fit-content; min-width:220px; }
@media(max-width:650px) { body[data-location-page] .hero-actions .hero-secondary-cta { width:100%; } body[data-location-page] .hero-action-buttons > .btn { flex:1 1 140px; } }

.journey-button[hidden] { display: none; }

/* One discovery control group and one committed-results status. */
#attractions .homepage-filter-shell-card { width:100%; max-width:1200px; }
#attractions .homepage-filter-shell-inner { max-width:1200px; padding-inline:16px; }
#attractions > .homepage-filter-guide-link { max-width:1200px; margin:16px auto 0; padding:0 16px; }
.journey-discovery #matching-places-card[hidden] { display:none; }
.trip-summary--planner .trip-summary-panel { border:0; padding:12px 0; margin:0; box-shadow:none; background:transparent; }
.trip-summary-travel-warning { border-left:3px solid #b45309; padding:12px; background:#fff7ed; font-size:16px; line-height:1.5; }
@media(min-width:1024px) {
 #attractions .homepage-filter-shell-card { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px 16px; }
 #attractions .homepage-filter-rail-row { grid-column:1; grid-row:1; }
 #attractions .journey-discovery-toolbar { display:contents; }
 #attractions .journey-discovery-toolbar > [data-nearby-trigger] { grid-column:2; grid-row:1; }
 #attractions :is(.homepage-active-filters-row,.homepage-applied-results,#journey-result-count) { grid-column:1/-1; }
}
