/* PFC Locator 2.4 â€” rÃ©glages d'intÃ©gration : modifier sur .pfc-locator.
   --pfc-search-top dÃ©cale la recherche si votre header la recouvre.
   --pfc-layer ajuste la superposition, sans modifier le header. */
body.pfc-locator-fullscreen { overflow: hidden; }
.pfc-locator {
    --pfc-search-top: 16px;
    --pfc-layer: 20;
    --pfc-header-height: 0px;
    position: fixed; inset: 0; width: 100%; height: 100vh; height: 100dvh;
    z-index: var(--pfc-layer); margin: 0; padding: 0;
    font: inherit; isolation: isolate;
}
.pfc-locator * { box-sizing: border-box; }
.pfc-locator [hidden] { display: none !important; }
.pfc-locator .pfc-locator-map { position: absolute; inset: 0; width: 100%; height: 100%; }
.pfc-locator .pfc-locator-search {
    position: absolute; z-index: 3;
    top: calc(var(--pfc-header-height) + var(--pfc-search-top) + env(safe-area-inset-top, 0px));
    left: max(12px, env(safe-area-inset-left, 0px));
    right: max(12px, env(safe-area-inset-right, 0px));
    margin: 0 auto; padding: 0; max-width: 440px;
}
.pfc-locator .pfc-locator-input {
    display: block; width: 100%; height: 48px; min-height: 48px; margin: 0; padding: 10px 16px;
    border: 1px solid var(--clb-header-border-color); border-radius: 16px; 
    background-color:#ffffff;
    font: inherit; font-size: 16px; box-shadow: 0 3px 16px #00000012;
}

:where(.pfc-locator.dark-scheme .pfc-locator-imput) {
    background-color: color-mix(in srgb, var(--clb-color-neutral) 50%, transparent) !important;
}

.pfc-locator .pfc-locator-status,
.pfc-locator .pfc-locator-choices {
    margin: 8px 0 0; border-radius: 14px;  
    box-shadow: 0 3px 16px #00000012; font-size: 14px;
}
.pfc-locator .pfc-locator-status { padding: 10px 14px; line-height: 1.5; }
.pfc-locator .pfc-locator-choices { max-height: 240px; overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; touch-action: pan-y; -webkit-overflow-scrolling: touch; }
.pfc-locator .pfc-locator-choices:empty { display: none; }
.pfc-locator .pfc-locator-option { padding: 14px 16px; min-height: 48px; cursor: pointer; border-bottom: 1px solid #eee; }
.pfc-locator .pfc-locator-option:hover,
.pfc-locator .pfc-locator-option[aria-selected=true] { background: color-mix(in srgb, currentColor 8%, transparent); }
.pfc-locator .pfc-locator-mapnotice {
    position: absolute; z-index: 2; top: 45%; left: 16px; right: 16px;
    max-width: 440px; margin: auto; padding: 16px; border-radius: 16px;
     box-shadow: 0 4px 20px #0002;
}

.pfc-locator .pfc-locator-sheet {
    position: absolute; z-index: 2;
    left: max(12px, env(safe-area-inset-left, 0px));
    right: max(12px, env(safe-area-inset-right, 0px));
    bottom: calc(32px + env(safe-area-inset-bottom, 0px));
    max-height: 52%; overflow-y: auto; overscroll-behavior: contain;
    border: 1px solid var(--clb-header-border-color); border-radius: 22px;
    box-shadow: 0 8px 36px #0002; padding: 0 16px 16px;
}
.pfc-locator .pfc-locator-grip { height: 26px; display: grid; place-items: center; touch-action: none; cursor: grab; }
.pfc-locator .pfc-locator-grip span { width: 36px; height: 4px; border-radius: 4px; background: #bbb; }
.pfc-locator .pfc-locator-close {
    position: absolute; top: 2px; right: 4px; width: 44px; height: 44px;
    border: 0; border-radius: 50%; background: transparent; color: inherit;
    font: 28px/1 sans-serif; padding: 0;
}
.pfc-locator .pfc-locator-card { overflow-wrap: anywhere; padding-top: 8px; }
.pfc-locator .pfc-locator-photo { float: left; width: 72px; height: 72px; object-fit: cover; border-radius: 12px; margin: 0 12px 10px 0; }
.pfc-locator .pfc-locator-cardtitle { font-size: 19px; line-height: 1.25; margin: 0 28px 8px 0;  color: inherit; }
.pfc-locator .pfc-locator-cardtext { margin: 5px 0; font-size: 14px; line-height: 1.45; color: inherit; }
.pfc-locator .pfc-locator-actions { clear: both; display: flex; flex-wrap: wrap; gap: 8px; padding-top: 12px; }
.pfc-locator .pfc-locator-btn { display: inline-flex; align-items: center; justify-content: center; flex: 1; min-height: 46px; margin: 0; padding: 10px 14px; border-radius: 12px; font: inherit; font-size: 14px; font-weight: 650; text-decoration: none; white-space: normal; text-align: center; cursor: pointer; }
.pfc-locator .pfc-locator-marker { width: 44px; height: 44px; padding: 0; border: 3px solid white; border-radius: 50%; background: #191919; color: #fff; font: 700 11px/1 sans-serif; box-shadow: 0 2px 8px #0004; cursor: pointer; }
.pfc-locator .pfc-locator-marker[aria-pressed=true] { background: #664590; box-shadow: 0 0 0 5px #66459033; }
.pfc-locator .pfc-locator-origin { width: 18px; height: 18px; border-radius: 50%; background: #376bd8; border: 3px solid white; box-shadow: 0 0 0 4px #376bd833; }
.pfc-locator .mapboxgl-ctrl-top-right { top: calc(var(--pfc-header-height) + var(--pfc-search-top) + env(safe-area-inset-top, 0px) + 0px); }
.pfc-locator .mapboxgl-ctrl-bottom-right { bottom: env(safe-area-inset-bottom, 0px); }
.pfc-locator .mapboxgl-ctrl-bottom-left { bottom: env(safe-area-inset-bottom, 0px); }
.pfc-locator :is(button,input,a):focus-visible { outline: 3px solid #7454ad; outline-offset: 3px; }
.pfc-locator .pfc-locator-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media(min-width: 768px) {
    .pfc-locator .pfc-locator-search { left: 24px; right: 24px; margin-inline: auto; }
    .pfc-locator .pfc-locator-sheet { left: 24px; right: 24px; width: auto; max-width: 440px; margin-inline: auto; max-height: 60%; }
}

/* Les surfaces gardent la classe Ohio clb__dark_mode_light. */
.pfc-locator .pfc-locator-cardtitle a { color: inherit; text-decoration: none; }
.pfc-locator .pfc-locator-cardtitle a:hover { text-decoration: underline; }
.pfc-locator .pfc-locator-opening[data-state="open"] { color: #15803d; }
.pfc-locator .pfc-locator-opening[data-state="closed"] { color: #b91c1c; }
.pfc-locator .pfc-locator-opening[data-state="unknown"] { color: #777; }
.pfc-locator.dark-scheme .pfc-locator-opening[data-state="open"] { color: #4ade80; }
.pfc-locator.dark-scheme .pfc-locator-opening[data-state="closed"] { color: #f87171; }
.pfc-locator .button.pfc-locator-secondary,
.pfc-locator .button.pfc-locator-secondary:hover,
.pfc-locator .button.pfc-locator-secondary:focus {
    background: transparent; color: inherit; border: 1px solid currentColor; box-shadow: none;
}
.pfc-locator .button.pfc-locator-secondary::before,
.pfc-locator .button.pfc-locator-secondary::after { background: transparent; }

/* Fond clair de secours, faible spÃ©cificitÃ© pour laisser Ohio gÃ©rer le mode sombre. */
:where(.pfc-locator .clb__dark_mode_light) { background-color: #fff; }
:where(.pfc-locator.dark-scheme .clb__dark_mode_light) {
    background-color: var(--clb-color-fill-dark-mode, #353535);
}
/* Seulement la surface du header flottant, pas un bandeau derriÃ¨re la carte. */
body.pfc-locator-fullscreen .pfc-locator-header-surface .header-wrap-inner {
    background-color: #f8f8f8 !important;
}
body.pfc-locator-fullscreen .pfc-locator-header-surface.pfc-locator-header-dark .header-wrap-inner {
    background-color: #171619 !important;
}

/* Recherche basse et panneau anime. Les variables sont mesurees par le module. */
.pfc-locator {
    --pfc-sheet-height: 0px;
    --pfc-keyboard-offset: 0px;
    --pfc-bottom-gap: calc(32px + env(safe-area-inset-bottom, 0px));
}
.pfc-locator .pfc-locator-search {
    top: auto;
    bottom: calc(var(--pfc-bottom-gap) + var(--pfc-keyboard-offset) + var(--pfc-sheet-height));
    transition: bottom 300ms ease;
    animation: pfc-locator-enter 300ms ease both;
}
.pfc-locator .pfc-locator-choices {
    position: absolute; bottom: calc(100% + 8px); left: 0; right: 0;
    margin: 0; z-index: 2;
}
.pfc-locator .pfc-locator-status {
    position: absolute; bottom: calc(100% + 8px); left: 0; right: 0;
    margin: 0;
}

.pfc-locator .pfc-locator-sheet {
    bottom: calc(var(--pfc-bottom-gap) + var(--pfc-keyboard-offset));
    max-height: min(52%, var(--pfc-sheet-max, 52dvh));
    opacity: 0; transform: translateY(calc(100% + 48px));
    transition: transform 300ms ease, opacity 300ms ease;
    pointer-events: none;
}
.pfc-locator .pfc-locator-sheet[data-open="true"] {
    opacity: 1; transform: translateY(0); pointer-events: auto;
}
@keyframes pfc-locator-enter {
    from { opacity: 0; transform: translateY(64px); }
    to { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
    .pfc-locator .pfc-locator-search { animation: none; transition: none; }
    .pfc-locator .pfc-locator-sheet { transition: none; }
}

/* Safari : fond cartographique etendu aux zones sures du viewport.
   Les controles et panneaux gardent leurs marges safe-area. */
@supports (height: 100dvh) {
    .pfc-locator { height: 100dvh; }
}
.pfc-locator-fullscreen { overscroll-behavior-y: none; }