/* Shared consumer rhythm. CMS colours, artwork, crops and feature geometry remain authoritative. */
.product-ui {
  --product-line: #dce7e8;
  --product-shadow: 0 4px 16px rgba(16,42,67,.07);
  background: #f6f9f9;
  line-height: 1.55;
}
.product-ui .page-shell { padding-top: 24px; }
.product-ui .page-shell :is(.primary-button,.secondary-button,.ghost-button,.icon-text-button) {
  min-height: 44px;
  border-radius: 12px;
  font-weight: 650;
  text-shadow: none;
  box-shadow: none;
  transition: background-color .15s ease, border-color .15s ease;
}
.product-ui .page-shell :is(.secondary-button,.ghost-button) {
  border: 1px solid #cddddd;
  background: #fff;
  color: #135964;
}
.product-ui .page-shell :is(.secondary-button,.ghost-button):hover { background: #eef6f5; border-color: #92b8b6; }
.product-ui :is(a,button,summary,input,select,textarea):focus-visible { outline: 3px solid #178389; outline-offset: 3px; }
.product-ui :is(.premium-spot-card,.premium-event-card,.activity-discovery-card,.profile-card,.profile-dashboard-card,.trip-card,.content-band,.empty-state) {
  border-radius: 16px;
  box-shadow: var(--product-shadow);
}
.product-ui :is(.premium-card-body h3,.event-card-body h2) { font-weight: 750; line-height: 1.3; }
.product-ui :is(.premium-card-body h3 a,.event-card-body h2 a) { color: #153b44; }
.product-ui :is(.place-town,.place-distance,.travel-summary) { font-weight: 450; }
.product-ui .premium-card-body { padding: 16px; gap: 9px; }
.product-ui .premium-card-actions { gap: 8px; }
.product-ui .premium-card-actions a { min-height: 44px; }
.product-ui .section-heading { align-items: center; margin-bottom: 20px; }
.product-ui .section-heading h2 { font-size: clamp(1.25rem,2.4vw,1.6rem); line-height: 1.25; letter-spacing: -.025em; }
.product-ui :is(.visual-discovery-section,.home-community-band) { margin-block: 40px; }
.product-ui .footer { border-top: 1px solid var(--product-line); box-shadow: none; }

/* One compact header with a complete secondary menu at every size. */
.product-ui .top-shell { box-shadow: 0 2px 10px rgba(16,42,67,.05); border-bottom: 1px solid var(--product-line); }
.product-ui .desktop-nav-row { min-width: 0; }
.product-ui .desktop-nav-row > .navbar-nav { display: flex; flex-direction: row; align-items: center; justify-content: flex-end; flex-wrap: nowrap; gap: 8px; }
.product-ui .desktop-nav .nav-link { padding: 10px 9px; white-space: nowrap; font-size: .94rem; font-weight: 600; border-radius: 10px; }
.product-ui .desktop-nav .nav-link[aria-current="page"] { background: #e4f2f1; color: #125b60 !important; }
.product-ui .header-avatar-link { width: 44px; height: 44px; flex: 0 0 44px; box-shadow: none; }
.product-ui .header-account-icon { color: #14535c; }
.product-ui .header-avatar-link:has(.header-account-icon) { background: #edf6f5; border: 1px solid #cde0df; }
.site-menu { position: relative; color: #153b44; text-shadow: none; }
.site-menu > summary { display: flex; align-items: center; justify-content: center; gap: 7px; min-height: 44px; padding: 8px 12px; border: 1px solid #d6e2e3; border-radius: 10px; background: #fff; cursor: pointer; list-style: none; font-size: .9rem; font-weight: 650; }
.site-menu > summary::-webkit-details-marker { display:none; }
.site-menu[open] > summary { background: #e4f2f1; border-color: #7fb2ae; }
.site-menu-panel { position: absolute; right: 0; top: calc(100% + 10px); z-index: 1300; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); width: 370px; max-width: calc(100vw - 24px); max-height: min(600px,calc(100dvh - 180px)); overflow-y: auto; overscroll-behavior: contain; gap: 3px; padding: 12px; border: 1px solid #d6e2e3; border-radius: 16px; background: #fff; box-shadow: 0 16px 40px rgba(16,42,67,.17); }
.product-ui .site-menu-panel a { display: flex; align-items: center; min-height: 46px; padding: 9px 12px; border-radius: 9px; color: #153b44; text-decoration: none; font-size: .92rem; font-weight: 550; line-height: 1.35; }
.site-menu-panel a:hover, .site-menu-panel a:focus-visible { background: #eaf5f3; color: #104e55; }
.desktop-nav .site-menu-primary { display: none; }

/* Home leads with the outing; optional weather follows the discovery actions. */
.product-ui .cms-hero { min-height: 0; padding: clamp(28px,5vw,64px); margin-bottom: 16px; overflow: hidden; border-radius: 0 0 24px 24px; box-shadow: none; }
.product-ui .cms-hero-content { gap: 16px; padding: 0; max-width: 680px; }
.product-ui .cms-hero h1 { font-size: clamp(2.55rem,5.5vw,4.6rem); line-height: 1.04; letter-spacing: -.045em; max-width: 14ch; text-wrap: balance; }
.product-ui .cms-hero .eyebrow { margin: 0; font-size: .75rem; letter-spacing: .15em; font-weight: 650; }
.product-ui .cms-hero .hero-subtitle { font-size: 1.05rem; line-height: 1.55; max-width: 45ch; margin: 0; }
.product-ui .cms-hero .hero-support { font-size: .9rem; line-height: 1.55; max-width: 58ch; opacity: .9; margin: 0; }
.product-ui .cms-hero-overlay { background: linear-gradient(100deg,rgba(5,27,35,.78),rgba(5,27,35,.28)); }
.product-ui .cms-hero .home-hero-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; width: min(100%,430px); padding: 0; margin-block: 5px 0; }
.product-ui .home-hero-actions > .primary-button { grid-column: 1 / -1; min-height: 50px; font-size: 1rem; }
.product-ui .cms-hero .home-hero-actions > :is(.home-bored-button,.home-surprise-button,.secondary-button) { width: auto; min-height: 46px; padding: 10px 12px; border: 1px solid rgba(255,255,255,.65); border-radius: 12px; background: rgba(5,27,35,.48); color: #fff; font-size: .9rem; font-weight: 650; box-shadow: none; text-shadow: none; }
.product-ui .home-hero-weather { margin: 10px 0 0; }
.product-ui .home-weather-card { width: min(100%,430px); grid-template-columns: 30px minmax(0,1fr); gap: 5px 9px; padding: 12px 48px 12px 12px; border-radius: 12px; background: rgba(5,27,35,.5); border-color: rgba(255,255,255,.25); box-shadow: none; backdrop-filter: blur(6px); }
.product-ui .home-weather-main strong { font-size: 1rem; line-height: 1.25; font-weight: 650; text-shadow: none; }
.product-ui .home-weather-main span { font-size: .75rem; font-weight: 450; }
.product-ui .home-weather-card .weather-symbol { width: 30px; height: 30px; min-width: 0; transform: scale(.7); transform-origin: center; }
.product-ui .home-weather-refresh { width: 44px; height: 44px; min-height: 44px; top: 4px; right: 2px; border: 0; background: transparent; }
.product-ui .home-weather-enable { min-height: 44px; padding-inline: 14px; font-weight: 650; }
.product-ui .home-weather-meta { gap: 6px; margin: 0; }
.product-ui .visual-shortcuts { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; margin-block: 20px 32px; }
.product-ui .visual-shortcut.home-category-walks { grid-column: span 2; }
.product-ui .visual-shortcut { min-height: 128px; border-radius: 16px; box-shadow: none; }
.product-ui .visual-shortcut strong { font-size: .95rem; line-height: 1.3; font-weight: 650; }
.product-ui .destination-tile { box-shadow: none; border-radius: 16px; }

/* Compact repeated controls leave more room for the place or event itself. */
.product-ui .events-filter-stack { gap: 8px; margin-block: 16px; }
.product-ui .events-period-row { gap: 6px; }
.product-ui .events-period-row .filter-chip { box-shadow: none; border-radius: 10px; font-weight: 650; min-height: 44px; }
.product-ui .events-period-row .filter-chip.is-selected { background: #164d58; color: #fff; border-color: #164d58; }
.product-ui .events-location-bar { background: #fff; border: 1px solid var(--product-line); border-radius: 14px; box-shadow: none; padding: 8px; }
.product-ui .events-result-heading { margin-block: 20px 12px; }
.product-ui .public-event-card .card-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.product-ui .public-event-card .card-actions > * { flex: 1 1 auto; width: auto; min-height: 44px; padding: 7px 10px; font-size: .85rem; }
.product-ui .public-event-card .card-actions > .primary-button { flex-basis: 100%; }
.product-ui .event-card-body { padding: 16px; }
.product-ui .event-card-body h2 { font-size: 1.12rem; margin-bottom: 8px; }
.product-ui .event-card-body > p { line-height: 1.5; }
.product-ui .activity-discovery-card .activity-card-media { min-height: 170px; }
.product-ui .activity-discovery-card .activity-media-fallback { min-height: 170px; }
.product-ui .activity-card-body { padding: 20px; }
.product-ui .activity-card-body h2 { font-size: 1.3rem; line-height: 1.25; }
.product-ui .spot-detail-gallery { box-shadow: none; border-radius: 16px; }
.product-ui .place-actions { gap: 8px; }
.product-ui .place-actions > * { min-height: 44px; }
.product-ui .place-detail-header h1 { line-height: 1.16; letter-spacing: -.03em; }
.product-ui .empty-state { padding: 24px; border: 1px solid var(--product-line); background: #edf6f4; box-shadow: none; }
.product-ui .empty-state::before { display: none; }

@media(min-width:1000px) {
  .product-ui .desktop-nav > .container-fluid { gap: 24px; }
  .product-ui .desktop-nav-row { flex: 1; }
}
@media(max-width:999px) {
  .product-ui .desktop-nav { display:none !important; }
  .product-ui .mobile-top-bar { display:grid !important; grid-template-columns:minmax(0,1fr) auto auto auto; align-items:center; gap:8px; padding-inline:max(68px,calc(env(safe-area-inset-left,0px) + 68px)) max(12px,env(safe-area-inset-right,0px)); }
  .product-ui .mobile-top-bar .brand { min-width:0; }
  .product-ui .mobile-top-bar .language-selector-form { margin:0; }
  .product-ui .mobile-top-bar .site-menu > summary { width:44px; padding:8px; }
  .product-ui .mobile-top-bar .site-menu > summary span:last-child { display:none; }
  .product-ui .mobile-top-bar .site-menu > summary span:first-child { font-size:1.2rem; }
  .product-ui .mobile-top-bar .site-menu-panel { position:fixed; top:calc(var(--header-top-band-height,0px) + 86px); right:12px; }
}
@media(max-width:760px) {
  .product-ui .page-shell { padding-top:20px; }
  .product-ui .bottom-nav { border-radius:18px; padding:6px; box-shadow:0 4px 22px rgba(16,42,67,.12); min-height:64px; gap:2px; }
  .product-ui .bottom-nav :is(a,button) { min-height:48px; border-radius:12px; font-size:.75rem; font-weight:650; }
  .product-ui .bottom-nav .add-tab { position:static; inset:auto; transform:none; width:auto; height:auto; min-height:48px; margin:0; border:0; outline:0; background:#fce9e4; color:#8c3d29; box-shadow:none; font-size:.8rem; }
  .product-ui .bottom-nav .add-tab::before, .product-ui .bottom-nav .add-tab::after { display:none; }
  .product-ui .bottom-nav a.active { background:#e5f3f1; color:#165d62; border-color:transparent; box-shadow:none; }
  .product-ui .cms-hero { padding:24px 20px 20px; border-radius:0 0 20px 20px; }
  .product-ui .cms-hero-content { gap:14px; }
  .product-ui .cms-hero h1 { font-size:2.15rem; line-height:1.08; max-width:13ch; }
  .product-ui .cms-hero .hero-subtitle { font-size:.98rem; line-height:1.5; }
  .product-ui .cms-hero .hero-support { display:none; }
  .product-ui .home-weather-card { gap:3px 8px; }
  .product-ui .home-weather-meta { grid-column:2; }
  .product-ui .home-weather-card .weather-symbol { align-self:start; }
  .product-ui .visual-shortcuts { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .product-ui .visual-shortcut { min-height:104px; padding:10px; gap:8px; }
  .product-ui .visual-shortcut strong { font-size:.82rem; }
  .product-ui .premium-card-actions { grid-template-columns:1fr 1fr; }
  .product-ui .place-actions { display:grid; grid-template-columns:1fr 1fr; }
  .product-ui .place-actions > * { width:auto; }
  .product-ui .activity-discovery-card .activity-card-media,
  .product-ui .activity-discovery-card .activity-media-fallback { min-height:150px; max-height:190px; }
  .product-ui .public-event-card .event-card-media { min-width:0; }
  .product-ui .event-card-body { padding:12px; }
}
@media(prefers-reduced-motion:reduce) { .product-ui *, .product-ui *::before, .product-ui *::after { scroll-behavior:auto; } }

.product-ui .profile-member-card { border-radius:16px; border:1px solid var(--product-line); box-shadow:var(--product-shadow); }
.product-ui .profile-dashboard-section { border:0; border-radius:0; box-shadow:none; }
.product-ui .profile-action-row { border-radius:0; box-shadow:none; }
.product-ui .profile-action-copy strong { color:#173f49; font-weight:650; }
.product-ui .profile-action-icon { background:#eaf5f2; color:#1a665f; border-radius:10px; }

/* Keep the route action after its inputs instead of covering them on short screens. */
.product-ui .trip-planner-shell > .trip-planner-form { padding-bottom:16px; }
.product-ui .trip-planner-shell > .trip-planner-form > .trip-plan-cta {
  position:static; inset:auto; width:100%; z-index:auto; min-height:50px;
  box-shadow:none; scroll-margin-block:24px calc(var(--gd-bottom-nav-space,104px) + 24px);
}

.product-ui .trip-road-compliance-type { display:none; }

/* Keep an empty live share status from taking a cell in the action grid. */
.product-ui .place-actions .share-status { grid-column:1 / -1; }
.product-ui .place-actions .share-status:empty { position:absolute; }

.product-ui [data-nearby-more] { margin:0; }
.product-ui .useful-results-page { width:min(100% - 2rem, 56rem); margin:1.5rem auto 3rem; }
.product-ui .useful-results-page h1 { margin:1.5rem 0 .5rem; }
.product-ui .useful-results-intro { color:var(--text-secondary, #526773); max-width:46rem; }
.product-ui .useful-results-group { margin-top:1.5rem; padding:1rem; border:1px solid #d9e4e7; border-radius:18px; background:#fff; }
.product-ui .google-maps-attribution { color:#5e5e5e; font:400 14px/1.4 Arial,sans-serif; letter-spacing:normal; white-space:nowrap; margin:0 0 1rem; }
.product-ui .useful-results-source { margin:0 0 1rem; font-weight:600; }
.product-ui .useful-results-list { display:grid; gap:.75rem; }
.product-ui .useful-result-card { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem 0; border-top:1px solid #e6ecee; }
.product-ui .useful-result-card h2 { font-size:1.05rem; margin:0 0 .3rem; }
.product-ui .useful-result-card p { font-size:.9rem; color:#526773; margin:0; }
.product-ui .useful-result-card a { flex-shrink:0; }
@media (max-width:600px) {
 .product-ui .useful-result-card { align-items:flex-start; flex-direction:column; }
 .product-ui .useful-result-card a { width:100%; justify-content:center; }
}

.product-ui .map-control-zone-nearby:has([data-nearby-more]:not([hidden])) { display:flex; align-items:center; gap:6px; max-width:calc(100% - 130px); }
.product-ui .map-control-zone-nearby [data-nearby-more] { min-width:0; }
.product-ui .map-control-zone-nearby [data-nearby-more] button { max-width:100%; font-size:13px; line-height:1.2; font-weight:600; white-space:normal; }
.product-ui .map-control-zone-nearby:has([data-nearby-more]:not([hidden])) [data-nearby-open] { min-width:44px; width:44px; padding:0; flex-shrink:0; font-size:22px; }
.product-ui .useful-results-retry { margin:1rem 0; }

/* One icon language for quick discovery and the persistent mobile navigation. */
.ui-icon { display:inline-block; width:22px; height:22px; flex:0 0 22px; vertical-align:middle; }
.product-ui .visual-shortcut > .ui-icon { width:22px; height:22px; filter:drop-shadow(0 1px 3px #0008); }
.product-ui .visual-shortcut:active { transform:scale(.98); }
.product-ui .bottom-nav :is(a,button) { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; line-height:1.2; }
.product-ui .bottom-nav .ui-icon { width:21px; height:21px; flex-basis:21px; }
.product-ui .feature-tile-grid { display:flex; gap:8px; overflow-x:auto; padding-bottom:6px; scroll-snap-type:x proximity; }
.product-ui .feature-tile { flex:0 0 auto; min-height:48px; display:flex; align-items:center; gap:8px; padding:8px 12px; border-radius:14px; box-shadow:none; scroll-snap-align:start; }
.product-ui .feature-tile strong { font-size:.85rem; }
.product-ui .feature-tile .gd-icon { width:28px; height:28px; font-size:12px; }
@media(max-width:760px) {
 .product-ui .home-hero-actions > .primary-button { min-height:48px; }
 .product-ui .cms-hero .home-hero-actions > :is(.home-bored-button,.home-surprise-button) { min-height:44px; padding:8px; }
 .product-ui .home-hero-weather { margin-top:2px; }
 .product-ui .home-weather-card { padding-block:8px; }
 .product-ui .section-heading { text-align:left; align-items:center; flex-direction:row; gap:12px; margin-bottom:14px; }
 .product-ui .section-heading > a { flex-shrink:0; font-size:.85rem; }
 .product-ui :is(.visual-discovery-section,.home-community-band) { margin-block:28px; }
}

.product-ui .home-weather-card { display:block; padding:0; }
.product-ui .home-weather-summary { display:flex; align-items:center; gap:10px; min-height:56px; padding:10px 14px; cursor:pointer; list-style:none; }
.product-ui .home-weather-summary::-webkit-details-marker { display:none; }
.product-ui .home-weather-summary::after { content:'⌄'; margin-left:auto; color:#d9f0f1; }
.product-ui .home-weather-card[open] .home-weather-summary::after { transform:rotate(180deg); }
.product-ui .home-weather-card[open] .home-weather-summary { padding-right:48px; }
.product-ui .home-weather-card .home-weather-meta { margin:0 12px 10px; }
.product-ui .home-weather-card .home-weather-status:not(:empty) { margin:0 12px 10px; }
.product-ui .cms-hero .eyebrow { display:none; }

.product-ui .trip-planner-header h1{letter-spacing:-.035em}.product-ui .trip-location-actions{gap:8px;margin-top:7px}.product-ui .trip-location-actions button{min-height:44px;border-radius:22px;font-size:.85rem;font-weight:550;padding:8px 12px}.product-ui .trip-location-actions [data-focus-location-search]{display:none}.product-ui .trip-location-status{font-size:.82rem;margin-top:7px}.product-ui .trip-planner-header{margin-bottom:0}.product-ui .trip-planner-header>p:last-child{margin-bottom:0}.product-ui .profile-action-icon .ui-icon{width:22px;height:22px}.product-ui .premium-card-actions .primary-button{font-size:.86rem;padding:8px 12px;box-shadow:none}@media(max-width:600px){.product-ui .trip-location-actions{display:flex;flex-wrap:wrap}.product-ui .trip-location-actions [data-use-current-location]{grid-column:auto}.product-ui .trip-planner-header h1{font-size:1.9rem}.product-ui .trip-route-point{padding-bottom:12px}.product-ui .trip-planner-header p{line-height:1.5}}

@media(max-width:600px){.product-ui .place-actions{grid-auto-flow:row dense}.product-ui .place-actions .directions-action{order:-1;grid-column:1 / -1}.product-ui .place-actions .share-status:empty{display:none}.product-ui .place-actions .compact-action{min-width:0;width:auto}}

.product-ui .event-stay-disclosure>summary{cursor:pointer;min-height:52px;font-weight:650;line-height:1.4}.product-ui .event-stay-disclosure>summary small{display:block;font-weight:400;color:var(--gd-muted);margin:4px 0 0 18px}.product-ui .event-stay-disclosure[open]>summary{margin-bottom:14px}
@media(max-width:600px){.product-ui .event-detail-content .hero-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.product-ui .event-detail-content .hero-actions>*{min-height:44px;min-width:0;margin:0;padding:8px 10px;font-size:.84rem}.product-ui .event-detail-content .hero-actions>.primary-button{grid-column:1 / -1;order:-1}.product-ui .event-detail-content .hero-actions>.secondary-button{box-shadow:none}.product-ui .event-detail-content .hero-actions>a[target=_blank]:not(.primary-button),.product-ui .event-detail-content .hero-actions>[data-share-feedback]{background:rgba(16,42,67,.85);border-color:rgba(255,255,255,.55);color:#fff!important}}

.product-ui .save-icon.is-saved{color:#9f4650;background:#fff1f1;border-color:#e9c9cb}

/* Local discovery: one clear area and distance, with an honest outdoors/route choice. */
.explore-area-control { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:6px 2px; }
.explore-area-control > span { min-width:0; font-weight:650; font-size:.88rem; overflow-wrap:anywhere; }
.explore-area-control select { min-height:44px; width:auto; max-width:160px; padding:6px 30px 6px 12px; border:1px solid var(--border-color, #b8bec6); border-radius:10px; background:var(--surface, #fff); color:var(--text-color, #17212d); font:inherit; font-size:.86rem; }
.explore-outdoors-control { margin:4px 0 8px; }
.explore-outdoors-control > div { display:flex; gap:4px; border-bottom:1px solid #b8bec655; }
.explore-outdoors-control button { min-height:44px; flex:1; padding:7px 8px; background:transparent; color:inherit; border:0; border-bottom:3px solid transparent; border-radius:0; font:inherit; font-size:.86rem; }
.explore-outdoors-control button[aria-pressed="true"] { border-bottom-color:#8757d4; font-weight:750; }
.explore-outdoors-control p { margin:8px 2px; font-size:.8rem; line-height:1.45; opacity:.8; }

/* Text actions need room for labels; arrows keep a consistent touch target. */
[data-trip-planner] .route-node-actions { flex-wrap:wrap; }
[data-trip-planner] .route-node-actions button { width:auto; min-width:44px; height:auto; min-height:44px; border-radius:10px; font-weight:550; }
[data-trip-planner] .route-node-actions [data-remove-stop],
[data-trip-planner] .route-node-actions [data-replace-stop] { padding:8px 12px; }
.trip-break-candidate { margin-top:12px; padding:14px; border:1px solid var(--gd-border); border-radius:14px; background:var(--card-bg,#fff); }
.trip-break-candidate > strong { display:block; font-size:1.05rem; }
.trip-break-candidate p { color:var(--gd-muted); line-height:1.5; }
.trip-break-actions button { min-height:44px; }

/* Home's four facility shortcuts stay fully visible at phone widths. */
.product-ui [data-home-popular-features] .feature-tile { min-width:0; }
.product-ui [data-home-popular-features] .feature-tile strong { line-height:1.3; overflow-wrap:anywhere; }
@media(max-width:760px) {
 .product-ui [data-home-popular-features] .feature-tile-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); overflow:visible; }
}
