/* Focused mobile presentation; geometry/camera policy lives in map-viewport.js. */
.wc300-map-experience .wc300-tool-button.wc300-tools-trigger { display: none; }
.wc300-tools-menu { display: contents; }
.wc300-mobile-close { display: none; }
.wc300-save-status { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.wc300-map-experience .wc300-icon { width: 18px; height: 18px; flex: 0 0 18px; vertical-align: middle; }
.wc300-map-experience .wc300-tool-button,
.wc300-map-experience .wc300-panel-actions > * { display: inline-flex; align-items: center; justify-content: center; gap: 7px; }
.wc300-map-experience .wc300-tool-button span { margin: 0; color: inherit; font-size: inherit; }
.wc300-map-experience .wc300-panel-kicker:empty,
.wc300-map-experience .wc300-panel-lead:empty { display: none; }
/* Route paint belongs below Mapbox's place/road labels, never in an SVG above them. */
.wc300-map-experience .wc300-map-route-overlay { display: none; }
/* Theme button padding caused the provider background image to repeat twice. */
.wc300-map-experience .mapboxgl-ctrl-attrib-button {
  width: 44px !important; height: 44px !important; min-width: 44px !important;
  padding: 0 !important; border: 0 !important; border-radius: 50% !important;
  background-color: #fffdf7 !important; background-repeat: no-repeat !important;
  background-position: center !important; background-size: 26px 26px !important;
}
.wc300-map-experience .mapboxgl-ctrl-attrib.mapboxgl-compact { min-width: 44px; min-height: 44px; padding: 0 44px 0 0; border-radius: 22px; }
.wc300-map-experience .mapboxgl-ctrl-attrib-inner { padding: 4px 6px; }

@media (max-width: 767px) {
  html.wc300-mobile-map-active { overflow-y: auto !important; overflow-x: clip !important; }
  html.wc300-mobile-map-active body { height: auto !important; overflow: visible !important; }
  body.wc300-map-page .elementor-element-ade5fa3 { padding-bottom: 0 !important; }
  body.wc300-map-page .elementor-location-header .elementor-nav-menu--dropdown { max-height: calc(100dvh - 64px); overflow-y: auto; }
  body.wc300-map-page .elementor-location-header > .elementor-element {
    --min-height: 64px; min-height: 64px !important; padding-block: 6px !important;
  }
  body.wc300-map-page .elementor-location-header > .elementor-element > .e-con-inner { min-height: 52px !important; padding-block: 0 !important; }
  body.wc300-map-page .elementor-location-header .elementor-widget-theme-site-logo img { width: 48px !important; height: 48px !important; object-fit: contain; }
  body.wc300-map-page .elementor-location-header .elementor-menu-toggle { min-width: 44px; min-height: 44px; padding: 10px; }
  .wc300-map-experience { --wc300-sheet-height: min(72%, max(220px, calc(var(--wc300-mobile-height, 100dvh) - var(--wc300-controls-top, 74px) - 112px))); }
  .wc300-map-header,
  .wc300-map-experience.is-engaged .wc300-map-header { top: var(--wc300-controls-top, 74px); left: 10px; }
  .wc300-mode-switch button { font-size: 12px; padding: 7px 10px; }
  .wc300-map-experience .wc300-map-tools { top: calc(var(--wc300-controls-top, 74px) + 58px); right: 10px; gap: 6px; }
  .wc300-map-experience .wc300-tool-button { width: auto; min-height: 44px; padding: 8px 10px; font-size: 12px !important; background: rgba(255,253,247,.94) !important; color: #173b39 !important; border: 1px solid #ccd7ce !important; box-shadow: 0 2px 8px #173b3914; }
  .wc300-map-experience .wc300-tool-button:hover,
  .wc300-map-experience .wc300-tool-button[aria-expanded='true'] { background: #e7ede4 !important; border-color: #69897e !important; }
  .wc300-map-experience .wc300-tool-button::before { content: none; }
  .wc300-map-experience .wc300-tool-button span { display: inline; color: inherit; font-size: inherit; margin: 0; }
  .wc300-map-experience .wc300-layer-popover,
  .wc300-map-experience .wc300-pack-popover { top: calc(var(--wc300-controls-top, 74px) + 110px); max-height: calc(var(--wc300-mobile-height, 100dvh) - var(--wc300-controls-top, 74px) - 122px); }
  .wc300-map-experience__shade { opacity: .3; }
  .wc300-map-experience .wc300-sheet-toggle { min-height: 48px !important; padding: 16px 16px 8px !important; touch-action: pan-x; }
  .wc300-sheet-summary { font-size: 13px; }
  .wc300-sheet-affordance { display: inline-flex; gap: 4px; align-items: center; font-size: 12px; }
  .wc300-map-experience.is-sheet-collapsed .wc300-sheet-affordance .wc300-icon { transform: rotate(180deg); }
  .wc300-map-experience:not(.is-sheet-collapsed) .wc300-sheet-summary { font-weight: 500; color: #526666; }
  .wc300-map-experience.is-ahead:not(.is-sheet-collapsed) .wc300-sheet-toggle { justify-content: flex-end; }
  .wc300-map-panel .wc300-route-nav { padding: 2px; border-radius: 12px; }
  .wc300-map-panel .wc300-route-nav > button,
  .wc300-map-panel .wc300-route-picker,
  .wc300-map-panel .wc300-route-picker__trigger { min-height: 44px; }
  .wc300-map-panel .wc300-route-picker__eyebrow,
  .wc300-map-panel [data-role='section-number'] { display: none; }
  .wc300-map-panel .wc300-route-picker__value { grid-template-columns: minmax(0,1fr) 16px; }
  .wc300-map-panel .wc300-route-picker__value strong { font: 600 13px/1.3 var(--e-global-typography-text-font-family, sans-serif); }
  .wc300-map-panel [data-role='panel'] { padding: 10px 16px 24px; scroll-padding-bottom: 24px; }
  .wc300-map-experience.is-engaged:not(.is-ahead) [data-role='panel'] > .wc300-panel-kicker { display: none; }
  .wc300-map-panel h2 { font-size: 25px; overflow-wrap: anywhere; }
  .wc300-map-experience .wc300-text-button { min-height: 44px; }
  .wc300-mobile-actions:not(:empty) { padding: 8px 12px calc(8px + env(safe-area-inset-bottom, 0px)); }
  .wc300-mobile-actions .wc300-panel-actions { gap: 8px; flex-wrap: wrap; }
  .wc300-mobile-actions .wc300-primary-action { min-height: 44px; padding-inline: 10px; }
  .wc300-mobile-actions .wc300-text-action { flex: 1; line-height: 1.3; }
  .wc300-map-experience.is-cua-entry .wc300-map-panel { height: min(540px, calc(var(--wc300-mobile-height, 100dvh) - var(--wc300-controls-top, 74px) - 116px)); }
  .wc300-map-experience.is-cua-entry.is-sheet-collapsed .wc300-map-panel { height: auto; }
  .wc300-map-experience.is-cua-entry .wc300-cua-entry-choices { gap: 10px; margin: 12px 0 0; }
  .wc300-map-experience.is-cua-entry .wc300-cua-choice { padding: 12px; border-radius: 14px; }
  .wc300-map-experience.is-cua-entry .wc300-cua-choice__eyebrow { font-size: 15px; margin: 0 0 4px; }
  .wc300-map-experience.is-cua-entry .wc300-cua-choice p:not(.wc300-cua-choice__eyebrow) { font-size: 14px; line-height: 1.4; margin: 0 0 8px; }
  .wc300-map-experience.is-cua-entry .wc300-cua-choice button { min-height: 44px; margin: 0; padding-block: 8px; font-size: 14px; }
  .wc300-map-experience.is-cua-entry .wc300-cua-safety { margin: 10px 0 0; font-size: 12px; line-height: 1.4; }
  .wc300-map-experience.is-cua-entry .wc300-mobile-actions { display: none; }
  .wc300-map-experience .mapboxgl-ctrl-bottom-left,
  .wc300-map-experience.is-engaged:not(.is-ahead) .mapboxgl-ctrl-bottom-left,
  .wc300-map-experience.is-ahead .mapboxgl-ctrl-bottom-left { top: calc(var(--wc300-controls-top, 74px) + 56px); bottom: auto; }
  .wc300-map-experience:not(.is-sheet-collapsed) .mapboxgl-ctrl-bottom-left { top: calc(var(--wc300-controls-top, 74px) + 56px); bottom: auto; }
  .wc300-map-experience .mapboxgl-ctrl-bottom-right,
  .wc300-map-experience.is-cua-entry:not(.is-sheet-collapsed) .mapboxgl-ctrl-bottom-right,
  .wc300-map-experience.is-sheet-collapsed .mapboxgl-ctrl-bottom-right,
  .wc300-map-experience.is-popover-open .mapboxgl-ctrl-bottom-right { top: calc(var(--wc300-controls-top, 74px) - 8px); bottom: auto; max-width: calc(100% - 20px); z-index: 9; }
  .wc300-map-experience .mapboxgl-ctrl-attrib.mapboxgl-compact-show { max-width: 150px; padding-top: 44px; padding-right: 0; border-radius: 16px; background: #fffdf7; }
  .wc300-map-experience:has(.mapboxgl-compact-show) .wc300-map-tools { visibility: hidden; }
}

@media (max-width: 767px) and (max-height: 540px) {
  .wc300-map-experience { --wc300-sheet-height: calc(var(--wc300-mobile-height, 100dvh) - var(--wc300-controls-top, 74px) - 56px); }
  .wc300-map-experience .wc300-mobile-actions:not(:empty) { padding-block: 4px; }
  .wc300-map-experience .wc300-practical-card { margin-top: 12px; }
}

@media (min-width: 560px) and (max-width: 767px) and (orientation: landscape) {
  .wc300-map-experience .wc300-map-tools { top: var(--wc300-controls-top, 74px); right: 70px; }
  .wc300-map-experience .wc300-layer-popover,
  .wc300-map-experience .wc300-pack-popover { top: calc(var(--wc300-controls-top, 74px) + 54px); }
  .wc300-map-experience.is-cua-entry .wc300-cua-entry-choices { grid-template-columns: 1fr 1fr; }
}

/* Mobile Explore: one normal document flow, with a measured persistent action bar.
   These overrides intentionally do not affect the desktop/tablet map composition. */
@media (max-width: 767px) {
  body.wc300-map-page { padding-top: 0 !important; }
  body.wc300-map-page .elementor-location-header { position: relative !important; height: calc(68px + env(safe-area-inset-top, 0px)); }
  body.wc300-map-page .elementor-location-header > .elementor-element:not(.elementor-sticky__spacer) {
    position: absolute !important; top: 0 !important; min-height: 68px !important;
    padding: calc(8px + env(safe-area-inset-top, 0px)) 16px 8px !important;
    background: var(--wc300-ink) !important;
  }
  body.wc300-map-page .elementor-location-header .elementor-sticky__spacer { display: none !important; }
  body.wc300-map-page .elementor-location-header .elementor-widget-theme-site-logo img { width: 52px !important; height: 52px !important; }
  body.wc300-map-page .elementor-location-header .elementor-widget-nav-menu { top: auto !important; right: 0 !important; }
  body.wc300-map-page .elementor-location-header .elementor-menu-toggle {
    width: 48px; height: 48px; min-width: 48px; min-height: 48px;
    padding: 12px; border-radius: 10px; color: var(--e-global-color-secondary, #95c11f) !important;
    background: #ffffff0d !important;
  }
  .wc300-map-experience {
    --wc300-canvas-height: clamp(250px, 34svh, 360px);
    height: auto !important; min-height: 0; overflow: visible;
    padding-top: var(--wc300-canvas-height);
    padding-bottom: var(--wc300-actions-height, 88px);
    background: var(--wc300-white);
  }
  .wc300-map-experience.is-sheet-collapsed { --wc300-canvas-height: max(300px, calc(100svh - 132px - env(safe-area-inset-top, 0px))); }
  .wc300-map-experience .wc300-map-experience__map,
  .wc300-map-experience .wc300-map-experience__shade,
  .wc300-map-experience .wc300-map-endpoints { height: var(--wc300-canvas-height); bottom: auto; }
  .wc300-map-experience .wc300-map-endpoints { overflow: hidden; }
  .wc300-map-experience .wc300-map-header,
  .wc300-map-experience.is-engaged .wc300-map-header { top: 12px; left: max(12px, env(safe-area-inset-left, 0px)); }
  .wc300-map-experience .wc300-mode-switch { padding: 3px; border-radius: 14px; background: var(--wc300-ink); }
  .wc300-map-experience .wc300-mode-switch button { min-height: 44px; padding: 8px 10px; font-size: 12px; white-space: nowrap; border-radius: 11px; }
  .wc300-map-experience .wc300-map-tools { top: 72px; left: max(12px, env(safe-area-inset-left, 0px)); right: auto; }
  .wc300-map-experience .wc300-tool-button.wc300-tools-trigger { display: inline-flex; min-height: 48px; border-radius: 12px; }
  .wc300-map-experience .wc300-tools-menu { position: absolute; top: 56px; left: 0; width: 236px; display: grid; gap: 8px; padding: 8px; background: var(--wc300-white); border-radius: 12px; box-shadow: 0 4px 16px #102c2d24; }
  .wc300-map-experience .wc300-tools-menu[hidden] { display: none; }
  .wc300-map-experience .wc300-tools-menu .wc300-tool-button { min-height: 48px; width: 100%; justify-content: flex-start; font-size: 14px !important; border-radius: 8px; box-shadow: none; }
  .wc300-map-experience .wc300-layer-popover,
  .wc300-map-experience .wc300-pack-popover {
    position: fixed; z-index: 30; top: auto; bottom: max(16px, env(safe-area-inset-bottom, 0px)); left: 12px; right: 12px;
    width: auto; max-width: none; max-height: calc(100vh - 100px); max-height: calc(100dvh - 100px); overflow-y: auto;
  }
  .wc300-map-experience .wc300-layer-popover label { min-height: 48px; }
  .wc300-map-experience .wc300-map-panel,
  .wc300-map-experience.is-popover-open .wc300-map-panel,
  .wc300-map-experience.is-ahead .wc300-map-panel,
  .wc300-map-experience.is-cua-entry .wc300-map-panel {
    position: relative; inset: auto; width: 100%; max-width: none; height: auto !important;
    margin-top: -16px; border-radius: 24px 24px 0 0; overflow: visible; transform: none;
    visibility: visible; background: var(--wc300-white); box-shadow: 0 -4px 14px #102c2d12;
    backdrop-filter: none; -webkit-backdrop-filter: none;
  }
  .wc300-map-experience.is-popover-open .wc300-route-nav { visibility: visible; }
  .wc300-map-experience .wc300-mobile-close { display: block; min-height: 48px; margin: 0 0 16px auto; padding: 8px 12px; font-size: 16px; border-radius: 8px; background: #edf0e8; color: var(--wc300-ink); }
  .wc300-map-experience .wc300-sheet-toggle { touch-action: pan-x; min-height: 48px !important; padding: 16px 16px 8px !important; }
  .wc300-map-experience:not(.is-sheet-collapsed) .wc300-sheet-summary { visibility: hidden; }
  .wc300-map-experience .wc300-sheet-affordance { font-size: 12px; }
  .wc300-map-experience .wc300-route-nav { grid-template-columns: 48px minmax(0, 1fr) 48px; gap: 8px; padding: 0; background: transparent; backdrop-filter: none; -webkit-backdrop-filter: none; }
  .wc300-map-experience .wc300-route-nav > button { width: 48px; min-width: 48px; height: 56px; }
  .wc300-map-experience .wc300-route-nav > button,
  .wc300-map-experience .wc300-route-picker__trigger { color: var(--wc300-ink) !important; background: #edf0e8 !important; border-color: transparent !important; }
  .wc300-map-experience .wc300-route-picker__value strong { color: var(--wc300-ink); }
  .wc300-map-experience .wc300-route-picker__value svg { color: var(--wc300-ink); stroke: currentColor; }
  .wc300-map-experience .wc300-route-picker__eyebrow { color: #52655c; }
  .wc300-map-experience .wc300-route-picker__trigger { min-height: 56px; padding: 4px !important; }
  .wc300-map-experience .wc300-route-picker__eyebrow { display: block; font-size: 10px; line-height: 1.4; letter-spacing: .07em; }
  .wc300-map-experience .wc300-route-picker__value { grid-template-columns: minmax(0,1fr) 16px; gap: 4px; }
  .wc300-map-experience .wc300-route-picker__value strong { font-size: 14px; line-height: 1.35; white-space: normal; overflow-wrap: anywhere; }
  .wc300-map-experience .wc300-route-picker__value svg path:first-child { d: path('m7 9 5 5 5-5'); }
  .wc300-map-experience .wc300-route-picker__value svg path:last-child { display: none; }
  .wc300-map-experience .wc300-section-menu { position: fixed; inset: auto 12px calc(var(--wc300-actions-height, 73px) + 12px); width: auto; max-height: min(520px, calc(100dvh - var(--wc300-actions-height, 73px) - 100px)); z-index: 40; overflow: auto; }
  .wc300-map-experience .wc300-section-menu__option { min-height: 56px; }
  .wc300-map-experience .wc300-map-panel [data-role='panel'] { overflow: visible; padding: 16px 20px 32px; }
  .wc300-map-experience .wc300-map-panel h2 { font-size: clamp(28px, 7.8vw, 34px); line-height: 1.18; margin: 0 0 20px; text-wrap: balance; overflow-wrap: anywhere; }
  .wc300-map-experience .wc300-panel-lead,
  .wc300-map-experience .wc300-practical-list dd { font-size: 16px; line-height: 1.55; }
  .wc300-map-experience.is-cua-entry .wc300-cua-choice p:not(.wc300-cua-choice__eyebrow),
  .wc300-map-experience.is-cua-entry .wc300-cua-safety,
  .wc300-map-experience .wc300-pack-popover p:not(.wc300-popover-kicker) { font-size: 16px; line-height: 1.5; }
  .wc300-map-experience .wc300-practical-card { padding: 20px 16px; margin-top: 24px; }
  .wc300-map-experience .wc300-practical-list { gap: 24px; }
  .wc300-map-experience .wc300-practical-list dt { font-size: 12px; line-height: 1.4; }
  .wc300-map-experience .wc300-mobile-actions:not(:empty) {
    position: fixed; z-index: 15; inset: auto 0 0;
    padding: 12px max(12px, env(safe-area-inset-right, 0px)) calc(12px + env(safe-area-inset-bottom, 0px)) max(12px, env(safe-area-inset-left, 0px));
  }
  .wc300-map-experience .wc300-mobile-actions .wc300-panel-actions { display: flex; gap: 8px; flex-wrap: nowrap; }
  .wc300-map-experience .wc300-mobile-actions [data-role='section-guide'] { flex: 1; min-width: 0; min-height: 48px; padding: 12px; border-radius: 10px; background: var(--e-global-color-secondary, #95c11f); color: var(--wc300-ink); font-size: 16px; font-weight: 700; text-align: center; text-decoration: none; }
  .wc300-map-experience .wc300-mobile-actions [data-action='save-section'] { flex: 0 0 auto; min-width: 76px; min-height: 48px; padding: 10px !important; border-radius: 10px !important; background: transparent !important; color: var(--wc300-ink) !important; border: 1px solid #bbc7bd !important; font-size: 16px; }
  .wc300-map-experience .wc300-mobile-actions [aria-pressed='true'] { background: #e8f0d7 !important; }
  .wc300-map-experience .mapboxgl-ctrl-bottom-right { top: 4px !important; bottom: auto !important; right: 4px; }
  .wc300-map-experience .mapboxgl-ctrl-bottom-left { top: auto !important; bottom: 20px !important; left: 4px; }
  .wc300-map-experience .mapboxgl-ctrl-group { display: none; }
  .wc300-map-experience.is-sheet-collapsed .mapboxgl-ctrl-group { display: block; }
  .wc300-map-experience button,
  .wc300-map-experience a { transition: background-color 160ms ease, color 160ms ease, opacity 160ms ease; }
  .wc300-map-experience button:active,
  .wc300-map-experience a:active { opacity: .75; }
  .wc300-map-experience :focus-visible,
  body.wc300-map-page .elementor-location-header :focus-visible { outline: 3px solid #b67b12 !important; outline-offset: 3px; }
}
@media (max-width: 767px) and (prefers-reduced-motion: reduce) {
  .wc300-map-experience button, .wc300-map-experience a { transition: none; }
}
