/* Bahraoui — a quiet, local editorial identity. */
:root{--green:#245d4b;--ink:#233b34;--mist:#f5f5ef;--muted:#737d74;--line:#e4e7df;--sand:#d7ae66;--radius:18px;--header:88px;font-family:"Avenir Next",Avenir,"Segoe UI","Noto Sans Arabic",sans-serif}
body{background:var(--mist);line-height:1.55;-webkit-font-smoothing:antialiased}
button,.btn,a,input,select,textarea{transition:background-color .18s,border-color .18s,box-shadow .18s}
button:hover,.btn:hover{filter:brightness(.96)}
button,.btn{border-radius:10px;font-weight:600;font-size:14px;padding:12px 20px}
button:disabled{opacity:.5;cursor:not-allowed}
.topbar{padding:16px 32px;gap:32px;min-height:88px}
.logo{display:flex;align-items:center;gap:11px;font-size:19px;letter-spacing:-.7px}
.brand-mark{display:grid;place-items:center;flex:none;width:40px;height:44px;background:var(--green);border-radius:13px 13px 13px 4px;color:#fff}
.brand-mark svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.6}
.brand-copy small{display:block;font-size:10px;font-weight:500;letter-spacing:.25px;color:var(--muted);margin-top:1px}
.search{max-width:590px;align-items:center;background:#f4f5f0;border:1px solid var(--line);padding:3px;border-radius:12px}
.search input{background:transparent;border:0;box-shadow:none;padding:10px 15px}
.search:focus-within{border-color:var(--green);box-shadow:0 0 0 3px #245d4b0d}
.top-actions{margin-inline-start:auto;gap:12px}.top-actions .ghost,.account-link{border-color:var(--line);font-size:13px;border-radius:10px}
.panel,.fiche{border:1px solid var(--line);padding:32px;margin:36px auto;box-shadow:0 8px 32px #233b3404}
h1{font-size:30px;line-height:1.2;letter-spacing:-1px}h2{letter-spacing:-.4px}
.panel input,.panel select,.panel textarea,.inline-form input,.create-card input,.create-card select{border-radius:9px;padding:12px;margin-top:6px;min-height:48px}
input:focus,select:focus,textarea:focus{border-color:var(--green)}
input[type=checkbox],input[type=radio]{accent-color:var(--green);width:17px;height:17px;min-height:0;margin:0;flex:none}
.panel label{font-size:13px;font-weight:600;margin:18px 0}.panel .check{font-weight:400}
.auth-panel{max-width:450px;margin:64px auto;padding:38px}.auth-panel h1{margin-bottom:26px}.auth-panel>button{width:100%;margin-top:8px}.auth-panel>p:not(.eyebrow){font-size:13px;text-align:center}.auth-symbol{display:grid;place-items:center;width:48px;height:48px;background:#edf2e9;border-radius:14px;font-size:25px;color:var(--green);margin-bottom:24px}
.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.8px;color:var(--green)}
.desk{max-width:1180px;margin:36px auto}.desk-head{margin-bottom:26px}.stats{gap:16px}.stat{border-radius:14px;padding:24px;gap:10px}.stat b{font-size:32px;font-weight:600}.desk-grid{gap:16px}.desk-card{padding:25px;border-radius:14px;gap:12px}.desk-card:hover,.stat:hover{border-color:#9fb5a5;background:#fdfefa}
.admin-nav{gap:8px;margin-bottom:24px}.admin-nav a{border-radius:9px;font-size:13px;display:flex;align-items:center}
td{padding:14px 10px;font-size:13px}tr:hover td{background:#fafbf7}.panel:has(table){overflow-x:auto}.badge{display:inline-block;font-size:12px;padding:5px 12px;background:#edf3e9;color:var(--green)}
.hours{max-width:540px}.hours li{padding:12px 0;border-bottom:1px solid var(--line);font-size:14px}.fiche-head h1{font-size:36px}.fiche-head .eyebrow{letter-spacing:.6px}.cta{gap:8px;margin:24px 0}.gallery{display:flex;gap:12px;overflow:auto}.gallery img{max-width:280px;object-fit:cover}.legal a{font-size:11px;color:var(--muted)}
body.is-map{background:#f5f5ef;color:var(--ink);font-family:"Avenir Next",Avenir,"Segoe UI","Noto Sans Arabic",sans-serif}
body.is-map .topbar{position:relative;inset:auto;height:88px;min-height:88px;padding:16px 28px;background:#fff;border-bottom:1px solid var(--line);gap:30px}
body.is-map .logo{display:flex}
body.is-map .search{height:46px;flex:1 1 400px;max-width:550px;width:auto;background:#f4f5f0;border:1px solid var(--line);border-radius:10px;box-shadow:none}
body.is-map .search input{height:44px;min-height:44px;font-size:13px;padding-inline:44px 14px;color:var(--ink)}
body.is-map .search button{top:2px;width:40px;height:40px;min-height:40px}
body.is-map .top-actions a,body.is-map .top-actions .ghost{height:42px;width:auto;min-height:42px;padding:9px 12px;gap:7px;color:var(--green);font-size:12px;border:1px solid var(--line);border-radius:9px;box-shadow:none;background:white}
body.is-map .top-actions span{position:static;width:auto;height:auto;clip:auto;overflow:visible}body.is-map .top-actions .ui-ico{width:18px;height:18px;color:var(--green)}
body.is-map .chips{position:absolute;top:88px;inset-inline:88px 0;height:72px;gap:8px;background:#fff;padding:14px 22px;border-bottom:1px solid var(--line)}
body.is-map .chip{height:38px;min-height:38px;padding:0 15px;gap:8px;font-size:12px;font-weight:600;border:1px solid var(--line);box-shadow:none;border-radius:9px;background:white;color:#58665c}
body.is-map .chip:hover{background:#f5f7f0;border-color:#b4c3b5}body.is-map .chip.is-on{background:var(--green);color:white;border-color:var(--green);box-shadow:none}body.is-map .chip.is-on .gm-ico{background:white}
body.is-map .chip .gm-ico{width:16px;height:16px;flex-basis:16px}
body.is-map .stage,body.is-map .map-wrap,body.is-map #map{height:calc(100dvh - 160px);min-height:0}
body.is-map .stage{top:72px}body.is-map .map-wrap{inset:0}
body.is-map .rail{top:88px;width:88px;padding:88px 8px 20px;gap:12px;box-shadow:none;border-inline-end:1px solid var(--line)}
body.is-map .rail-btn{width:70px;min-height:64px;font-size:10px;font-weight:600;gap:7px;border-radius:12px;color:#778178}
body.is-map .rail-btn svg{width:21px;height:21px}body.is-map .rail-btn:hover,body.is-map .rail-btn[aria-expanded=true]{background:#edf2e9;color:var(--green)}
body.is-map .sheet{top:0;bottom:0;inset-inline-start:88px;width:360px;padding:25px 24px;height:100%;background:#fdfdf9;box-shadow:6px 0 25px #233b3408;border-inline-end:1px solid #dfe5da;scrollbar-width:thin;scrollbar-color:#d2dacd transparent}
body.is-map .sheet-head{position:relative;background:transparent;padding:0}
.explore-intro{padding-bottom:23px;margin-bottom:22px;border-bottom:1px solid var(--line)}
.explore-intro .eyebrow{margin:0 0 13px}.explore-intro h1{font-size:30px;line-height:1.17;font-weight:600;letter-spacing:-1px;margin:0 0 12px;max-width:290px}.intro-copy{font-size:12px;color:var(--muted);line-height:1.7;margin:0}
body.is-map .results-heading{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;justify-content:space-between}
body.is-map .count{font-size:14px;font-weight:700;color:var(--ink)}body.is-map .city-name{font-size:10px;color:#7a8379;margin:0 0 12px}
body.is-map .pill-check{background:#edf1e8;border:1px solid #e0e6da;border-radius:7px;font-size:11px;color:#51634f;min-height:32px;padding:6px 10px;margin:0 0 17px;cursor:pointer}
body.is-map .demo-note{font-size:10px;color:#8a8e80;padding:11px 0;margin:0;line-height:1.6}
.merchant-invite{display:flex;align-items:center;gap:10px;color:var(--green);padding:14px 12px;margin:0 0 2px;border:1px solid #dce6d6;border-radius:10px;background:#f0f4e9;text-decoration:none}.merchant-invite>span:last-child{margin-inline-start:auto}.merchant-invite strong{font-size:11px;font-weight:600;display:block}.merchant-invite small{font-size:9px;color:#7c8873;display:block;margin-top:2px}.merchant-invite svg{width:23px;height:23px;flex:none}
body.is-map .card{border:1px solid var(--line);border-radius:12px;margin:0 0 10px;padding:17px 14px;background:white;position:relative}
body.is-map .card:hover{border-color:#a7bba3;box-shadow:0 4px 14px #233b3406}body.is-map .card.is-selected{background:#eff4e9;border-color:#91ac89}
body.is-map .card-line{gap:12px;align-items:center}body.is-map .card-line>.gm-ico{width:22px;height:22px;flex-basis:22px;margin:5px}
body.is-map .card h2{font-size:13px;font-weight:600;line-height:1.5;margin:0 0 3px}body.is-map .card h2 a{color:var(--ink)}body.is-map .card .meta{font-size:10px;line-height:1.6;color:#7e867b}
body.is-map .open-flag{font-size:10px;margin:10px 0 0 44px;color:#86907e;gap:5px;align-items:center}body.is-map .open-flag:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}.open-flag:empty{display:none!important}body.is-map .open-flag.is-open{color:#367a4f}body.is-map .open-flag.is-closed{color:#9d6e54}
body.is-map .layers{inset-inline-start:108px;bottom:30px}body.is-map .layers-btn{height:65px;width:70px;border:1px solid var(--line);box-shadow:0 3px 15px #233b3410;border-radius:12px;color:var(--ink);font-size:10px;gap:5px}body.is-map .layers-btn svg{color:var(--green)}
body.is-map .sheet.is-open~.map-wrap .layers{inset-inline-start:470px;bottom:30px}body.is-map .city-jump{color:var(--green);font-size:11px;border:1px solid var(--line);box-shadow:0 2px 15px #233b3409;bottom:32px;inset-inline-start:190px}body.is-map .sheet.is-open~.map-wrap .city-jump{inset-inline-start:550px;bottom:32px}
body.is-map .maplibregl-ctrl-bottom-right,body.is-map .sheet.is-open~.map-wrap .maplibregl-ctrl-bottom-right{bottom:32px;right:22px}
body.is-map .maplibregl-ctrl-group button,body.is-map .locate{border-radius:10px;box-shadow:0 2px 12px #233b3412;border:1px solid #e1e6dc}
body.is-map .maplibregl-ctrl-bottom-left{bottom:4px;font-size:9px}.maplibregl-popup-content{border:1px solid var(--line);box-shadow:0 8px 25px #233b3415}body.is-map .popup-card a{color:var(--green)}
body.is-map #map-banner{top:15px;inset-inline-start:465px;max-width:calc(100vw - 490px);font-size:12px}
.tabbar a.is-on{color:var(--green)}.tabbar a.is-on svg{background:#e9f0e3;box-shadow:0 0 0 5px #e9f0e3;border-radius:5px}.tabbar a{gap:7px;padding:12px 3px 10px;color:#7d8578;font-size:10px}.tabbar svg{width:20px;height:20px}
@media(min-width:1024px){body.is-map .stage{position:fixed;inset:160px 0 0;height:auto}body.is-map .map-wrap,body.is-map #map{height:100%}body.is-map .sheet{max-height:none}body.is-map .sheet.is-open{height:100%}body.is-map .sheet-handle{display:none}}
@media(max-width:1100px) and (min-width:1024px){body.is-map .topbar{gap:20px;padding-inline:22px}body.is-map .brand-copy small{display:none}body.is-map .logo{font-size:16px}body.is-map .top-actions a span{display:none}}
@media(max-width:1023px){
 .topbar{padding:14px 18px;gap:16px}.logo{font-size:17px}.brand-copy small{font-size:9px}.brand-mark{width:34px;height:38px}.top-actions{gap:6px}.top-actions .ghost,.account-link{padding:9px;min-height:40px}.panel,.fiche{margin:24px 18px;padding:24px}.desk{margin:24px 0}.auth-panel{max-width:450px;margin:32px auto}.legal{padding-bottom:100px}body:not(.is-map){padding-bottom:70px}
 body.is-map .topbar{height:126px;min-height:126px;padding:12px 16px;display:grid;grid-template-columns:1fr auto;gap:10px;background:#fff}
 body.is-map .logo{font-size:16px;gap:8px;min-width:0}body.is-map .brand-mark{width:31px;height:34px;border-radius:10px 10px 10px 3px}body.is-map .brand-mark svg{width:21px;height:21px}body.is-map .brand-copy small{font-size:8px}
 body.is-map .top-actions{gap:6px;margin:0}body.is-map .top-actions a,body.is-map .top-actions .ghost{height:34px;min-height:34px;padding:7px;width:34px}body.is-map .top-actions span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
 body.is-map .search{grid-column:1/-1;grid-row:2;width:100%;height:44px;max-width:none}body.is-map .search input{font-size:12px}
 body.is-map .chips{top:126px;inset-inline:0;height:58px;padding:10px 16px;gap:7px}body.is-map .chip{height:34px;min-height:34px;font-size:11px;padding:0 12px}
 body.is-map .stage{top:58px}body.is-map .stage,body.is-map .map-wrap,body.is-map #map{height:calc(100dvh - 184px);min-height:0}
 body.is-map .sheet{position:fixed;inset-inline:0;top:auto;bottom:calc(65px + env(safe-area-inset-bottom));width:100%;height:105px;padding:0 20px 16px;border-radius:22px 22px 0 0;border:1px solid var(--line);box-shadow:0 -5px 25px #233b340a;transform:none;visibility:visible;pointer-events:auto;overflow:auto}
 body.is-map .sheet.is-open{height:min(43dvh,390px)}body.is-map .sheet-head{padding-top:0;background:#fdfdf9}body.is-map .sheet-handle{display:flex;min-height:24px;padding:8px 0 10px}.explore-intro{margin:0 0 13px;padding:0 0 13px}.explore-intro .eyebrow,.intro-copy{display:none}.explore-intro h1{font-size:20px;margin:0;max-width:none;letter-spacing:-.6px}
 body.is-map .results-heading{justify-content:flex-start;gap:9px}body.is-map .count{font-size:12px}body.is-map .city-name{font-size:9px;margin:0}.pill-check input{width:14px;height:14px}body.is-map .pill-check{font-size:10px;min-height:28px;margin:10px 0;padding:4px 8px}.merchant-invite{display:none}body.is-map .demo-note{font-size:9px;padding:0 0 10px}body.is-map .card{padding:13px;margin-bottom:8px}body.is-map .card h2{font-size:12px}body.is-map .sheet:not(.is-open) .explore-intro,body.is-map .sheet:not(.is-open) .pill-check{display:none}
 body.is-map .layers,body.is-map .sheet.is-open~.map-wrap .layers{inset-inline-start:14px;bottom:calc(170px + env(safe-area-inset-bottom))}body.is-map .sheet.is-open~.map-wrap .layers{bottom:calc(min(43dvh,390px) + 80px + env(safe-area-inset-bottom))}
 body.is-map .layers-btn{width:57px;height:52px;min-height:52px;font-size:9px}
 body.is-map .maplibregl-ctrl-bottom-right{bottom:calc(170px + env(safe-area-inset-bottom));right:14px}body.is-map .sheet.is-open~.map-wrap .maplibregl-ctrl-bottom-right{bottom:calc(min(43dvh,390px) + 80px + env(safe-area-inset-bottom));right:14px}
 body.is-map .maplibregl-ctrl-group{gap:5px}body.is-map .maplibregl-ctrl-group button,body.is-map .locate{height:34px;min-height:34px;width:34px}body.is-map .maplibregl-ctrl-bottom-left{bottom:calc(155px + env(safe-area-inset-bottom));max-width:65vw}body.is-map .sheet.is-open~.map-wrap .maplibregl-ctrl-bottom-left{bottom:calc(min(43dvh,390px) + 68px + env(safe-area-inset-bottom))}
 body.is-map .city-jump{display:none}body.is-map #map-banner{top:10px;inset-inline:14px;left:auto;max-width:none;transform:none;font-size:11px}
 .tabbar{min-height:65px;background:#fffffff5;backdrop-filter:blur(12px)}
}
@media(max-width:760px){body:not(.is-map) .topbar{display:grid;grid-template-columns:1fr auto;gap:12px}body:not(.is-map) .top-actions{flex-wrap:nowrap}body:not(.is-map) .search{grid-column:1/-1;grid-row:2;max-width:none}body:not(.is-map) .top-actions a span,body:not(.is-map) .top-actions .logout-btn span{display:none}.auth-panel{margin:24px 16px}.panel,.fiche{padding:22px 18px}.fiche-head h1{font-size:28px}.stats{gap:10px}.stat{padding:18px}.desk-card{min-height:130px}.hour-row{flex-wrap:wrap}.hour-row input{max-width:100%}.split{min-width:0}.panel textarea{max-width:100%}.panel input[type=checkbox]{width:17px;min-height:0}.panel input[type=file]{max-width:100%}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}
[lang=ar] body,[lang=ar] body.is-map{font-family:"Noto Sans Arabic","Avenir Next",Avenir,"Segoe UI",Tahoma,sans-serif}
[lang=ar] h1,[lang=ar] h2,[lang=ar] .eyebrow{letter-spacing:0}
[dir=rtl] body.is-map .maplibregl-ctrl-bottom-right{right:auto;left:22px}
@media(max-width:1023px){[dir=rtl] body.is-map .maplibregl-ctrl-bottom-right,[dir=rtl] body.is-map .sheet.is-open~.map-wrap .maplibregl-ctrl-bottom-right{right:auto;left:14px}}
/* Map first: floating search, compact results, unobstructed canvas. */
.sheet-toggle-label,.sheet-chevron{display:none}
@media(max-width:1023px){
 body.is-map .stage{position:fixed;inset:0;top:0;height:100dvh}
 body.is-map .stage,body.is-map .map-wrap,body.is-map #map{height:100dvh;min-height:100dvh}
 /* map-first mobile chrome superseded by mobile-ui block */
 body.is-map .sheet{bottom:calc(74px + env(safe-area-inset-bottom));inset-inline:12px;width:auto;height:80px;padding:0 16px 12px;border-radius:16px;box-shadow:0 5px 24px #20352d16;border:1px solid #e0e6da;background:#fffffff5;overflow:hidden;min-height:0}
 body.is-map .sheet.is-open{height:min(46dvh,420px);overflow:auto}
 body.is-map .sheet-head{background:transparent}
 body.is-map .sheet-handle{position:relative;display:flex;justify-content:space-between;align-items:center;width:100%;min-height:42px;padding:12px 0 5px;color:var(--ink);gap:8px}
 body.is-map .handle-bar{display:none}body.is-map .sheet-toggle-label{display:block;font-size:13px;font-weight:600}body.is-map .sheet-chevron{display:block;width:19px;height:19px;fill:none;stroke:var(--green);stroke-width:1.8;transition:transform .2s}body.is-map .sheet.is-open .sheet-chevron{transform:rotate(180deg)}
 body.is-map .explore-intro{display:none}body.is-map .results-heading{gap:8px;align-items:center}body.is-map .city-name{font-size:10px;color:#6c786c}body.is-map .count{font-size:11px;font-weight:500;color:var(--green)}
 body.is-map .sheet:not(.is-open) #result-list,body.is-map .sheet:not(.is-open) .demo-note{display:none}
 body.is-map .sheet.is-open .sheet-head{position:sticky;top:0;z-index:2;background:#fffffff5;padding-bottom:2px}
 body.is-map .sheet.is-open .pill-check{margin-block:12px 8px}
 body.is-map .layers,body.is-map .sheet.is-open~.map-wrap .layers{inset-inline-start:14px;bottom:calc(170px + env(safe-area-inset-bottom))}
 body.is-map .maplibregl-ctrl-bottom-right,body.is-map .sheet.is-open~.map-wrap .maplibregl-ctrl-bottom-right{bottom:calc(170px + env(safe-area-inset-bottom));right:14px}
 body.is-map .sheet.is-open~.map-wrap .layers,body.is-map .sheet.is-open~.map-wrap .maplibregl-ctrl-bottom-right{bottom:calc(min(46dvh,420px) + 90px + env(safe-area-inset-bottom))}
 body.is-map .layers-btn{width:54px;height:52px;border-radius:12px}
 body.is-map .maplibregl-ctrl-bottom-left,body.is-map .sheet.is-open~.map-wrap .maplibregl-ctrl-bottom-left{bottom:calc(160px + env(safe-area-inset-bottom));left:50%;max-width:55vw}
 body.is-map .maplibregl-ctrl-attrib{font-size:9px;border-radius:10px;background:#ffffffd9}
 body.is-map .tabbar{border-top:1px solid #e1e7dc;min-height:64px}body.is-map .tabbar a{min-height:60px}
 body.is-map #map-banner{top:174px}
 [dir=rtl] body.is-map .maplibregl-ctrl-bottom-right,[dir=rtl] body.is-map .sheet.is-open~.map-wrap .maplibregl-ctrl-bottom-right{right:auto;left:14px}
}
/* Legible category symbols with place names at street level. */
.pin{width:44px;height:44px;min-height:44px;display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 1px 2px #253d3428);overflow:visible}
.pin svg{width:32px;height:40px;flex:none}
.pin-caption{position:absolute;inset-inline-start:38px;top:6px;max-width:145px;font-size:11px;line-height:1.3;font-weight:600;color:#425a4e;text-align:start;white-space:normal;text-shadow:0 1px 2px white,0 -1px 2px white,1px 0 2px white,-1px 0 2px white;pointer-events:none}
.pin.is-selected .pin-caption{color:#174f3b;font-weight:700}
body.is-map .maplibregl-ctrl-scale{font-size:9px;color:#52605a;background:#ffffffa8;border:1px solid #77837b;border-top:0;border-radius:0;line-height:1.5;padding:0 4px;margin-bottom:4px}
@media(max-width:1023px){.pin-caption{font-size:10px;max-width:105px}.pin svg{width:28px;height:36px}.pin-caption{inset-inline-start:34px;top:7px}}
.pin-caption{visibility:hidden;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:130px;padding:2px 4px;border-radius:4px;background:#ffffffe0;font-size:10px;line-height:16px;top:4px;text-shadow:none;letter-spacing:0}
.pin-caption.is-visible{visibility:visible}
.pin-caption{inset-inline-start:44px;max-width:120px}
@media(max-width:1023px){.pin-caption{inset-inline-start:42px;max-width:105px}}
/* Administration workspace */
.admin-nav-brand{display:none}
body.is-admin .desk-head{align-items:center;padding-bottom:24px;border-bottom:1px solid var(--line)}
body.is-admin .desk-head .eyebrow{margin:0 0 8px}
body.is-admin .desk-head h1{font-size:30px;margin-bottom:8px}
body.is-admin .lead{font-size:13px;max-width:470px}
body.is-admin .stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:28px 0 32px}
body.is-admin .stat{position:relative;padding:20px;gap:14px;border-radius:12px;border-top:3px solid #c5d5bf;box-shadow:0 2px 8px #233b3403}
body.is-admin .stat:first-child{border-top-color:#d8ad61}body.is-admin .stat:nth-child(2){border-top-color:#98b8c3}
body.is-admin .stat b{font-size:30px;letter-spacing:-1px;font-weight:600}body.is-admin .stat span{font-size:12px}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.section-heading h2{margin:0;font-size:16px}.section-heading>span{font-size:11px;color:var(--muted)}
body.is-admin .desk-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
body.is-admin .desk-card{position:relative;min-height:160px;padding:24px;border-radius:12px;gap:10px}
body.is-admin .desk-card::after{content:'↗';position:absolute;inset-inline-end:20px;top:20px;color:#879b80}
body.is-admin .desk-card svg{background:#eef3e9;box-sizing:content-box;padding:10px;width:22px;height:22px;border-radius:11px}
body.is-admin .desk-card strong{font-size:14px}body.is-admin .desk-card>span{font-size:12px;max-width:280px;line-height:1.6}
@media(min-width:1024px){
 body.is-admin main{padding-inline-start:232px}body.is-admin .legal{padding-inline-start:232px}
 body.is-admin .desk{margin:32px auto;padding-inline:32px;max-width:1300px}body.is-admin .panel{margin:32px;max-width:none}
 .admin-nav{position:fixed;inset-inline-start:0;top:88px;bottom:0;width:232px;display:flex;flex-direction:column;flex-wrap:nowrap;gap:5px;padding:24px 16px;background:#fff;border-inline-end:1px solid var(--line);z-index:4;overflow-y:auto}
 .admin-nav-brand{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:700;margin:0 8px 24px}.admin-nav-brand .brand-mark{width:32px;height:36px;font-size:17px}.admin-nav-caption{display:block;font-size:10px;letter-spacing:.7px;font-weight:400;color:var(--muted);margin-top:2px}
 .admin-nav a{border:0;border-radius:8px;background:transparent;min-height:43px;padding:11px 14px;font-size:12px;flex:none}
 .admin-nav a.is-on{background:#eaf1e6;color:var(--green);font-weight:700}.admin-nav a:hover{background:#f3f6ef}
}
@media(max-width:1023px){
 body.is-admin .desk{padding-inline:18px;margin-top:24px}body.is-admin .desk-head{gap:18px;padding-bottom:20px;margin-bottom:18px}body.is-admin .desk-head h1{font-size:26px}body.is-admin .desk-head .btn{font-size:12px;min-height:42px;padding:10px 14px}
 .admin-nav{flex-wrap:nowrap;overflow-x:auto;gap:7px;padding:2px 0 12px;scrollbar-width:thin;margin-bottom:16px}.admin-nav a{flex:none;white-space:nowrap;border-radius:8px;min-height:38px;padding:8px 12px;font-size:11px}
 body.is-admin .stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0 26px}body.is-admin .stat{padding:16px;gap:10px}body.is-admin .stat b{font-size:27px}body.is-admin .stat span{font-size:11px}
 body.is-admin .desk-grid{grid-template-columns:1fr}.section-heading>span{display:none}body.is-admin .desk-card{min-height:130px;padding:20px}
}
/* Progressive commerce form; all sections remain available without JavaScript. */
.wizard{max-width:780px;padding:32px;scroll-margin-top:18px}.wizard h1{font-size:28px;margin-bottom:12px}.wizard-intro{font-size:12px;color:var(--muted);line-height:1.7;max-width:560px;margin-bottom:26px}
.wizard .steps{list-style:none;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:0;margin:24px 0 12px;counter-reset:step;gap:8px}.wizard .steps li{counter-increment:step;position:relative;font-size:11px;color:#84907d;text-align:center}
.wizard .steps li::before{content:counter(step);display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--line);background:#f5f7f1;border-radius:50%;margin:0 auto 7px;font-weight:600;font-size:11px}
.wizard .steps li.is-current::before{background:var(--green);color:#fff;border-color:var(--green);box-shadow:0 0 0 4px #edf3e7}.wizard .steps li.is-complete::before{content:'✓';background:#edf3e7;color:var(--green);border-color:#d4e2ce}
.wizard .steps button{padding:4px 0;min-height:30px;width:100%;background:transparent;color:inherit;font-size:10px;line-height:1.4;font-weight:500;border-radius:5px}.wizard .steps .is-current button{color:var(--green);font-weight:700}
.wizard-progress{font-size:10px;color:var(--muted);text-align:end;margin:12px 0 20px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.wizard fieldset{min-width:0;border:0;padding:0;margin:24px 0}.wizard fieldset[hidden],.wizard-controls button[hidden]{display:none!important}.wizard legend{font-size:20px;font-weight:600;padding:0;margin-bottom:8px;letter-spacing:-.5px}.wizard fieldset>p{font-size:12px;color:var(--muted)}.wizard textarea{min-height:90px;resize:vertical}.wizard fieldset .check{line-height:1.6}
.wizard-controls{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:20px;margin-top:26px}.wizard-controls button:last-child{margin-inline-start:auto;min-width:130px}.wizard fieldset:last-of-type>button{margin:16px 8px 0 0}.wizard .hour-row{display:grid;grid-template-columns:80px 1fr 1fr auto;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);font-size:11px}.wizard .hour-row input{min-width:0;padding:6px;min-height:38px;margin:0}.wizard .hour-row label{font-size:10px;display:flex;gap:5px;align-items:center;margin:0}.wizard .hour-row input[type=checkbox]{min-height:0;width:16px;height:16px}
#wizard-review{margin-top:16px;border:1px solid var(--line);border-radius:12px;padding:4px 18px;background:#f8faf4}#wizard-review>div{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--line);font-size:12px}#wizard-review>div:last-child{border:0}#wizard-review span{color:var(--muted)}#wizard-review strong{text-align:end;overflow-wrap:anywhere}
.wizard input[type=file]{padding:24px;border:1px dashed #a6baa0;background:#f7faf3;border-radius:12px;width:100%;font-size:12px}.wizard .picker{height:300px;margin-top:18px}.wizard.is-enhanced fieldset{animation:slide-arrive .2s ease-out}@keyframes slide-arrive{from{opacity:.3;transform:translateY(5px)}to{opacity:1;transform:none}}
@media(max-width:760px){.wizard{padding:24px 18px;margin:20px 14px}.wizard h1{font-size:25px}.wizard-intro{font-size:11px;margin-bottom:20px}.wizard .steps{gap:3px;margin-top:20px}.wizard .steps button{font-size:9px}.wizard .steps li::before{width:25px;height:25px}.wizard legend{font-size:18px}.wizard label{font-size:12px}.wizard .hour-row{grid-template-columns:1fr 1fr;gap:8px}.wizard .hour-row>span{grid-column:1}.wizard .hour-row>label{grid-column:2;grid-row:auto;justify-content:flex-end}.wizard .hour-row>input{grid-row:auto}.wizard .picker{height:240px}.wizard fieldset:last-of-type>button{width:100%;margin-inline:0}.wizard-controls{padding-top:16px}.wizard-controls button{font-size:12px}.wizard-progress{margin-bottom:18px}}
@media(max-width:500px){body:not(.is-map) .topbar{padding:12px 16px;gap:12px 8px}body:not(.is-map) .logo{gap:7px;font-size:14px;min-width:0}body:not(.is-map) .brand-copy small{font-size:8px}body:not(.is-map) .brand-mark{width:30px;height:34px}body:not(.is-map) .top-actions{gap:4px}body:not(.is-map) .top-actions .ghost,body:not(.is-map) .account-link{padding:7px;width:32px;min-height:34px;height:34px}body:not(.is-map) .top-actions .lang-btn span{display:none}body:not(.is-map) .search{width:100%;min-width:0}body:not(.is-map) .search button{padding-inline:13px;font-size:12px}.wizard .steps li::marker{content:''}}
@media(max-width:760px){.wizard.is-enhanced{padding-bottom:95px}.wizard.is-enhanced .wizard-controls{position:fixed;inset-inline:0;bottom:calc(65px + env(safe-area-inset-bottom));margin:0;padding:12px 20px;background:#fffffff5;backdrop-filter:blur(12px);border-top:1px solid var(--line);z-index:7;box-shadow:0 -3px 12px #233b3405;min-height:68px}.wizard-controls button{min-height:42px}}
/* Place page: map-led composition and compact, recognisable actions. */
.is-place .place-detail{max-width:1280px;margin:24px auto;padding:0;display:grid;grid-template-columns:420px minmax(0,1fr);overflow:clip;border-radius:18px;gap:0;background:#fff}
.place-map-shell{grid-column:2;grid-row:1;position:sticky;top:18px;align-self:start;height:calc(100dvh - 145px);min-height:450px;background:#eef1e9}
.place-detail .place-map{height:100%;border:0;border-radius:0;margin:0}
.place-content{grid-column:1;grid-row:1;padding:28px;min-width:0}
.place-back{position:absolute;z-index:3;top:16px;inset-inline-start:16px;display:flex;align-items:center;gap:8px;background:#fff;color:var(--ink);box-shadow:0 2px 12px #20352d16;border:1px solid #e6eade;border-radius:24px;padding:9px 13px;text-decoration:none;font-size:11px;font-weight:600}
.place-back svg{width:18px;height:18px}
.place-content .fiche-head .eyebrow{font-size:10px;letter-spacing:0;line-height:1.6;margin:0 0 10px;color:#788572}
.place-content .fiche-head h1{font-size:26px;line-height:1.2;letter-spacing:-.7px;margin:0 0 12px}
.place-status{font-size:12px;color:#966f52;margin:0;line-height:1.7}.place-status.is-open{color:#38784b}.place-status small{display:block;font-size:10px;font-weight:400;color:#8a9285}
.place-content .cta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:22px 0 26px;padding-bottom:22px;border-bottom:1px solid var(--line)}
.place-content .cta .btn{display:flex;flex-direction:column;gap:7px;min-height:65px;padding:10px 4px;border-radius:10px;font-size:10px;line-height:1.3;font-weight:500;white-space:normal;background:#f4f7f0;color:var(--green);border:1px solid #e3e9dc;text-align:center}
.place-content .cta #go-maps{background:var(--green);border-color:var(--green);color:white}.place-content .cta .ui-ico{width:20px;height:20px;flex:none}
.place-description{font-size:12px;line-height:1.8;color:#6d796b;margin:0 0 24px}.place-content h2{font-size:16px;margin:22px 0 12px}.place-content .hours li{font-size:11px;padding:10px 0;gap:10px}.place-address{font-size:12px;line-height:1.7;font-style:normal;border:1px solid var(--line);border-radius:10px;background:#f8faf5;padding:14px;margin-top:22px}.place-content>p:last-child{font-size:10px;margin-top:20px}.place-detail .pin-caption{display:none}
.place-detail .maplibregl-ctrl-group{box-shadow:0 2px 12px #20352d15;border-radius:10px;overflow:hidden}.place-detail .maplibregl-ctrl-group button{width:36px;height:36px;min-height:36px;padding:0;border-radius:0}.place-detail .maplibregl-ctrl-attrib{font-size:9px}
@media(max-width:1023px){
 .is-place .place-detail{margin:0;border:0;border-radius:0;display:flex;flex-direction:column;box-shadow:none;overflow:visible;max-width:none;background:#f5f5ef}
 .place-map-shell{position:relative;top:auto;order:0;width:100%;height:46dvh;min-height:300px;max-height:540px;align-self:auto;grid-column:auto}
 .place-content{order:1;position:relative;z-index:1;margin-top:-18px;border-radius:20px 20px 0 0;background:white;padding:24px 22px 32px;box-shadow:0 -3px 15px #233b3407}
 .place-content .fiche-head h1{font-size:24px;max-width:540px;line-height:1.2;margin-bottom:10px}
 .place-content .fiche-head .eyebrow{font-size:10px;margin-bottom:7px}.place-status{font-size:11px}.place-status small{display:inline;font-size:9px;margin-inline-start:8px}
 .place-content .cta{grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin:18px 0 22px;padding-bottom:20px}.place-content .cta .btn{min-height:60px;font-size:9px;border:0;background:transparent;gap:8px;padding:8px 0}.place-content .cta .ui-ico{width:19px;height:19px}.place-content .cta #go-maps{border-radius:10px}
 .place-back{top:12px;inset-inline-start:12px}.place-detail .maplibregl-ctrl-bottom-right{bottom:26px}.place-detail .maplibregl-ctrl-bottom-left{bottom:20px}
}
@media(max-width:430px){.place-content{padding:20px 18px 28px}.place-content .cta{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:16px}.place-content .cta .btn{flex-direction:row;min-height:38px;padding:8px 5px;font-size:10px;gap:5px;background:#f3f6ef;border:1px solid #e4e9de}.place-content .cta .ui-ico{width:16px;height:16px}.place-content .fiche-head h1{font-size:22px}.place-map-shell{height:44dvh;min-height:290px}.place-content .cta #go-maps{border-radius:9px}}
.place-expand{display:none}.place-detail:not(:has(.place-map-shell)){display:block;max-width:780px}.place-detail:not(:has(.place-map-shell)) .place-content{width:100%}
@media(max-width:1023px){.place-expand{display:block;position:absolute;top:12px;inset-inline-end:12px;z-index:3;padding:9px 13px;min-height:38px;border-radius:24px;background:#fff;color:var(--ink);box-shadow:0 2px 12px #20352d16;border:1px solid #e6eade;font-size:11px;font-weight:600}.place-map-shell.is-expanded{height:70dvh;max-height:none}.place-expand[aria-pressed=true]{background:var(--green);color:#fff}}
.account-workspace{max-width:1120px;padding:32px;margin:0 auto}.account-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.account-heading .eyebrow{margin:0 0 9px}.account-heading h1{font-size:29px;margin:0 0 8px}.account-heading>div>p:last-child{font-size:12px;color:var(--muted);margin:0}.account-return{display:flex;align-items:center;gap:12px;font-size:12px;text-decoration:none;padding:10px 14px;border:1px solid var(--line);border-radius:9px;background:#fff;white-space:nowrap}.profile-overview{display:flex;align-items:center;gap:16px;padding:24px;border:1px solid var(--line);border-radius:14px;background:white}.profile-avatar{display:grid;place-items:center;width:54px;height:54px;flex:none;border-radius:16px;background:#eaf1e3;color:var(--green);font-size:23px;font-weight:600}.profile-overview>div{display:flex;flex-direction:column;gap:4px}.profile-overview strong{font-size:16px;letter-spacing:-.3px}.profile-overview>div>span{font-size:11px;color:var(--muted)}.profile-connected{display:flex;align-items:center;gap:6px;margin-inline-start:auto;color:#477a48;background:#f0f5e9;padding:5px 10px;border-radius:20px;font-size:10px}.profile-connected i{width:5px;height:5px;border-radius:50%;background:#6a9854}.account-sections{display:flex;gap:24px;padding:20px 4px;margin-bottom:2px}.account-sections a{text-decoration:none;font-size:12px;color:#6a7966}.account-sections a:hover{color:var(--green)}.account-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}.account-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:24px;scroll-margin-top:20px}.account-card-title{display:flex;gap:12px;align-items:center;padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid var(--line)}.account-card-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#f0f4e9;color:var(--green);flex:none}.account-card-title .ui-ico{width:19px;height:19px}.account-card h2{font-size:15px;line-height:1.4;letter-spacing:-.2px;margin:0}.account-card-title p{font-size:11px;color:var(--muted);margin:4px 0 0}.account-card label{font-size:12px;font-weight:600;display:block;margin:0 0 18px}.account-card input:not([type=hidden]){display:block;width:100%;border:1px solid var(--line);border-radius:9px;min-height:46px;padding:10px 12px;margin-top:8px;background:#fdfefb;font-size:13px}.account-card button{font-size:12px;padding:10px 16px;min-height:40px}.account-wide{grid-column:1/-1}.session-list{list-style:none;margin:0;padding:0}.session-list li{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}.session-list li:last-child{border:0;padding-bottom:0}.session-list li:first-child{padding-top:0}.session-list li>div{display:flex;flex-direction:column;gap:5px}.session-list strong{font-size:12px;font-weight:500}.session-list time{font-size:10px;color:var(--muted)}.current-session{font-size:10px;color:var(--green);background:#eef4e8;border-radius:6px;padding:5px 9px}.account-sensitive{display:flex;justify-content:space-between;align-items:center;gap:16px;border-color:#eadfd7}.account-sensitive h2{color:#856553;font-size:13px}.account-sensitive button.danger{background:#fff;color:#995e4b;border:1px solid #e9d5ca;font-size:11px}.admin-welcome{display:flex;align-items:center;justify-content:space-between;gap:24px;background:#244d40;color:#fff;border-radius:14px;padding:28px;margin:24px 0}.admin-welcome>div>span{font-size:9px;letter-spacing:1.6px;color:#c0d0b2}.admin-welcome h2{font-size:24px!important;margin:8px 0!important;font-weight:500}.admin-welcome p{font-size:12px;line-height:1.7;color:#c0d0be;margin:0;max-width:400px}.admin-welcome>a{display:grid;grid-template-columns:1fr auto;gap:4px 20px;align-items:center;background:#ffffff12;color:white;text-decoration:none;padding:16px 20px;border-radius:10px;min-width:160px;border:1px solid #ffffff1a}.admin-welcome strong{font-size:30px;font-weight:500}.admin-welcome>a span:first-of-type{grid-row:2;font-size:10px;color:#c6d4bb}.admin-welcome>a span:last-child{grid-column:2;grid-row:1/3}
@media(max-width:1023px){.account-workspace{padding:22px 18px}.account-heading{align-items:flex-start;flex-direction:column;gap:14px;margin-bottom:18px}.account-heading h1{font-size:25px}.account-heading>div>p:last-child{font-size:11px}.account-return{font-size:11px;padding:8px 12px}.profile-overview{padding:18px;gap:12px}.profile-avatar{width:44px;height:44px;font-size:20px;border-radius:12px}.profile-overview strong{font-size:14px}.profile-connected{font-size:9px;padding:4px 7px}.account-grid{grid-template-columns:1fr;gap:14px}.account-card{padding:20px}.account-card-title{gap:10px;padding-bottom:16px;margin-bottom:18px}.account-card h2{font-size:14px}.account-sensitive{align-items:flex-start;flex-direction:column;gap:12px}.account-sections{gap:22px;padding-block:18px}.account-sections a{font-size:11px}.admin-welcome{padding:20px;flex-direction:column;align-items:stretch;gap:18px;margin:18px 0}.admin-welcome h2{font-size:22px!important}.admin-welcome p{font-size:11px}.admin-welcome>a{padding:12px 16px;grid-template-columns:auto 1fr auto;gap:12px;min-width:0}.admin-welcome strong{font-size:26px}.admin-welcome>a span:first-of-type{grid-row:1;grid-column:2}.admin-welcome>a span:last-child{grid-row:1;grid-column:3}.is-account .admin-nav{margin:18px 18px 0}}
.directory-source{display:flex;flex-wrap:wrap;gap:5px 12px;align-items:center;font-size:10px;margin:0 0 14px}.directory-source a{color:var(--green);text-decoration:none}.directory-source span{color:var(--muted)}
.satellite-credit{position:absolute;z-index:3;top:16px;inset-inline-start:108px;display:flex;flex-direction:column;gap:3px;padding:9px 12px;margin:0;background:#fffffff2;color:#64715f;border:1px solid #e3e9dd;border-radius:10px;font-size:10px;line-height:1.5;box-shadow:0 2px 12px #17332612;pointer-events:auto}.satellite-credit a{color:var(--green);font-weight:600;text-decoration:none}.sheet.is-open~.map-wrap .satellite-credit{inset-inline-start:470px}.satellite-settings-note{font-size:12px;line-height:1.7}.is-satellite .pin-caption{background:#fffffff0;color:#264b37}.is-satellite .pin{filter:drop-shadow(0 1px 3px #0008)}
@media(max-width:1023px){.satellite-credit,.sheet.is-open~.map-wrap .satellite-credit{top:174px;inset-inline-start:14px;max-width:230px;padding:7px 10px;font-size:9px}}
#arcgis-credit{max-width:310px}#arcgis-credit>span{font-size:9px;line-height:1.5}
@media(max-width:1023px){#arcgis-credit{max-width:230px}#arcgis-credit>span{font-size:8px}}
/* Results stay out of the way until requested, with a light glass surface. */
body.is-map .sheet{background:rgba(253,253,249,.86);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
body.is-map .sheet .card{background:rgba(255,255,255,.88)}
@media(max-width:1023px){body.is-map .sheet.is-open .sheet-head{background:rgba(253,253,249,.94)}}
.offline-city-tools{position:absolute;z-index:4;inset-inline-end:20px;top:14px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;max-width:330px;padding:8px 10px;background:#fffffff0;backdrop-filter:blur(8px);border:1px solid #e0e6da;border-radius:10px;box-shadow:0 2px 12px #20352d12}.offline-city-tools button{min-height:32px;padding:7px 10px;background:#245d4b;color:white;border:0;border-radius:7px;font-size:11px;cursor:pointer}.offline-city-tools button:disabled{opacity:.65;cursor:wait}.offline-city-tools a{font-size:10px;color:#245d4b}.offline-city-tools p{flex-basis:100%;margin:0;font-size:10px;color:#62715e}.offline-city-tools p:empty{display:none}@media(max-width:1023px){.offline-city-tools{top:166px;inset-inline:14px auto;max-width:min(340px,calc(100% - 28px));padding:6px 8px;gap:6px}.offline-city-tools button{min-height:29px;font-size:10px;padding:6px 9px;white-space:nowrap}.offline-city-tools a{white-space:nowrap}}
/* Discreet map identity; provider attribution and map interactions remain accessible. */
.map-identity{position:absolute;z-index:2;left:50%;bottom:20px;transform:translateX(-50%);width:96px;height:auto;opacity:.3;pointer-events:none;user-select:none;object-fit:contain}.place-map-shell>.map-identity{bottom:10px}@media(max-width:1023px){body.is-map .map-identity{width:88px;bottom:calc(178px + env(safe-area-inset-bottom))}body.is-map .sheet.is-open~.map-wrap .map-identity{bottom:calc(min(46dvh,420px) + 96px + env(safe-area-inset-bottom))}.place-map-shell>.map-identity{width:88px;bottom:12px}}

@media(min-width:1024px){body.is-map .maplibregl-ctrl-bottom-left{left:calc(50% - 100px)}}
@media(max-width:1023px){body.is-map .maplibregl-ctrl-bottom-left,body.is-map .sheet.is-open~.map-wrap .maplibregl-ctrl-bottom-left{left:calc(50% - 82px)}}
body.is-map #map-banner{z-index:9;inset-inline-start:auto;inset-inline-end:20px;top:100px;max-width:360px;line-height:1.6;background:#fffdf6;color:#294b3c;box-shadow:0 4px 18px #20352d20;border:1px solid #dfe5da;border-radius:10px;padding:12px 14px}@media(max-width:1023px){body.is-map #map-banner{top:240px;inset-inline:14px;max-width:none}}
/* The standalone location button sits directly in MapLibre's non-interactive control container. */
body.is-map .maplibregl-control-container .locate{pointer-events:auto;cursor:pointer}body.is-map .locate[aria-busy=true]{opacity:.6;cursor:progress}
.directory-page{max-width:1120px;margin:40px auto;padding:0 24px 60px}.directory-hero{max-width:780px;padding:28px 0}.directory-hero h1{font-size:clamp(30px,5vw,48px);line-height:1.15;letter-spacing:-1.5px;margin:18px 0}.directory-hero>p:not(.eyebrow){color:#718072;line-height:1.8;max-width:650px}.directory-hero .btn{margin-top:12px}.directory-categories{display:flex;gap:9px;flex-wrap:wrap;padding:20px 0 30px;border-bottom:1px solid #e0e6da}.directory-categories a{padding:9px 14px;border:1px solid #dfe5da;border-radius:9px;text-decoration:none;color:#315e4c;font-size:13px;background:white}.directory-section-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:30px 0 20px}.directory-section-head h2{font-size:23px}.directory-section-head>span{font-size:12px;color:#718072}.directory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.directory-card{display:flex;gap:18px;padding:22px;background:white;border:1px solid #e0e6da;border-radius:14px;align-items:flex-start}.directory-card>.gm-ico{width:26px;height:26px;flex:0 0 26px;margin-top:8px}.directory-card h3{font-size:17px;line-height:1.5;margin:4px 0}.directory-card h3 a{color:#254b3c;text-decoration:none}.directory-card p{font-size:11px;color:#7c8778;margin:0 0 5px}.directory-phone{font-size:12px;color:#315e4c}.directory-arrow{margin-inline-start:auto;text-decoration:none;color:#315e4c;font-size:22px}.directory-help{margin-top:35px;padding:28px;background:#edf2e8;border:1px solid #dde5d5;border-radius:14px}.directory-help h2{font-size:21px}.directory-help p{font-size:13px;line-height:1.9;color:#677761}.directory-help a{font-size:13px;color:#315e4c}.place-breadcrumbs{display:flex;gap:9px;flex-wrap:wrap;font-size:11px;margin-bottom:20px;color:#7e897b}.place-breadcrumbs a{color:#58745f;text-decoration:none}@media(max-width:700px){.directory-page{margin:10px auto;padding:0 16px 80px}.directory-grid{grid-template-columns:1fr}.directory-card{padding:18px}.directory-hero h1{letter-spacing:-1px}.directory-section-head h2{font-size:19px}}

[dir=rtl] .brand-mark{border-radius:13px 13px 4px 13px}
@media(max-width:1023px){[dir=rtl] body.is-map .brand-mark{border-radius:9px 9px 3px 9px}}
@media(min-width:1024px){[dir=rtl] body.is-map .sheet{box-shadow:-6px 0 25px #233b3408}}

/* Mobile + RTL: keep MapLibre LTR and pin chrome to the visual viewport. */
/* RTL: never use off-screen left:-999 hacks — they inflate scrollWidth. */
html{width:100%;max-width:100%;overflow-x:clip}
body{width:100%;max-width:100%;overflow-x:clip;position:relative}
html[dir=rtl]{direction:rtl}
.tabbar{
  left:0!important;right:0!important;width:100%!important;max-width:100%!important;
  inset-inline:0!important;box-sizing:border-box;
}

body.is-map{overflow:hidden;width:100%;max-width:100%;position:relative}
body.is-map .stage,body.is-map .map-wrap,body.is-map #map,.maplibregl-map,.maplibregl-canvas-container,.maplibregl-canvas{direction:ltr!important}
body.is-map .map-wrap{overflow:hidden;position:absolute;inset:0}
body.is-map #map{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;min-height:0!important;max-width:none!important}

@media(max-width:1023px){
  body.is-map .stage{
    position:fixed!important;top:0!important;bottom:auto!important;
    left:0!important;right:0!important;inset-inline:0!important;
    width:100%!important;max-width:100%!important;height:100dvh!important;margin:0!important;transform:none!important;
  }

  body.is-map .topbar{
    position:fixed!important;top:10px!important;inset-inline:12px!important;left:auto!important;right:auto!important;
    width:auto!important;max-width:none!important;
    height:auto!important;min-height:0!important;
    display:grid!important;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;
    gap:10px 8px!important;padding:12px 14px!important;
    border:1px solid #ffffffd9!important;border-radius:18px!important;
    background:#fffffff8!important;box-shadow:0 4px 24px #20352d14!important;z-index:10;
  }
  body.is-map .logo{display:flex!important}
  body.is-map .topbar .logo{grid-column:1;grid-row:1;align-self:center;min-width:0}
  body.is-map .topbar .top-actions{grid-column:2;grid-row:1;align-self:center;gap:8px!important;margin:0!important}
  body.is-map .topbar .search{grid-column:1/-1;grid-row:2;width:100%!important;max-width:none!important;height:44px!important;margin:0}
  body.is-map .top-actions a,body.is-map .top-actions .ghost{
    width:36px!important;height:36px!important;min-height:36px!important;border-radius:11px!important;
  }
  body.is-map .brand-copy{font-size:15px!important}
  body.is-map .brand-copy small{display:none!important}
  body.is-map .brand-mark{width:30px!important;height:33px!important}

  body.is-map .chips{
    position:fixed!important;top:136px!important;inset-inline:12px!important;left:auto!important;right:auto!important;
    width:auto!important;max-width:none!important;
    height:40px!important;padding:0 2px!important;gap:8px!important;
    overflow-x:auto!important;overflow-y:hidden;z-index:9;
    -webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;touch-action:pan-x;
    scrollbar-width:none;background:transparent!important;border:0!important;
  }
  body.is-map .chips::-webkit-scrollbar{display:none}
  body.is-map .chip{
    flex:0 0 auto;height:38px!important;min-height:38px!important;
    padding-inline:14px!important;border-radius:999px!important;font-size:12px!important;
    box-shadow:0 2px 10px #20352d14;
  }

  body.is-map .offline-city-tools{display:none!important}

  body.is-map .sheet{
    inset-inline:12px!important;left:auto!important;right:auto!important;
    width:auto!important;max-width:none!important;
  }

  body.is-map .maplibregl-ctrl-bottom-right,
  body.is-map .sheet.is-open~.map-wrap .maplibregl-ctrl-bottom-right,
  [dir=rtl] body.is-map .maplibregl-ctrl-bottom-right,
  [dir=rtl] body.is-map .sheet.is-open~.map-wrap .maplibregl-ctrl-bottom-right{
    left:12px!important;right:auto!important;inset-inline-start:12px!important;inset-inline-end:auto!important;
    bottom:calc(168px + env(safe-area-inset-bottom))!important;
    display:flex!important;flex-direction:column!important;align-items:center!important;gap:10px!important;
  }
  body.is-map .sheet.is-open~.map-wrap .maplibregl-ctrl-bottom-right{
    bottom:calc(min(46dvh,420px) + 96px + env(safe-area-inset-bottom))!important;
  }
  body.is-map .maplibregl-ctrl-group{gap:10px!important}
  body.is-map .maplibregl-ctrl-group button,body.is-map .locate{
    width:42px!important;height:42px!important;min-height:42px!important;border-radius:12px!important;
  }

  body.is-map .layers,
  body.is-map .sheet.is-open~.map-wrap .layers{
    left:auto!important;right:12px!important;
    inset-inline-start:auto!important;inset-inline-end:12px!important;
    bottom:calc(168px + env(safe-area-inset-bottom))!important;z-index:5;
  }
  body.is-map .sheet.is-open~.map-wrap .layers{
    bottom:calc(min(46dvh,420px) + 96px + env(safe-area-inset-bottom))!important;
  }
  body.is-map .layers-btn{
    width:58px!important;height:58px!important;min-height:58px!important;border-radius:14px!important;font-size:9px!important;
  }

  body.is-map .maplibregl-ctrl-bottom-left,
  body.is-map .sheet.is-open~.map-wrap .maplibregl-ctrl-bottom-left{
    left:50%!important;right:auto!important;transform:translateX(-50%);
    bottom:calc(150px + env(safe-area-inset-bottom))!important;max-width:50vw;
  }
  body.is-map #map-banner{top:186px!important;inset-inline:14px!important;transform:none!important}

  /* Non-map Arabic pages: keep chrome full-width and readable */
  body:not(.is-map) .topbar{width:100%;max-width:100%;box-sizing:border-box}
  body:not(.is-map) .panel,body:not(.is-map) .auth-panel,body:not(.is-map) .fiche{
    width:auto;max-width:100%;box-sizing:border-box;
  }
  body:not(.is-map) .search{min-width:0;max-width:100%}
  body:not(.is-map) .search input{min-width:0}
}

/* Arabic type polish sitewide */
[lang=ar] body,[lang=ar] body.is-map{font-family:"Noto Sans Arabic","Avenir Next",Avenir,"Segoe UI",Tahoma,sans-serif}
[lang=ar] h1,[lang=ar] h2,[lang=ar] .eyebrow,[lang=ar] .chip,[lang=ar] button,[lang=ar] .btn{letter-spacing:0}

/* Non-map mobile: keep search as one clean field + compact action */
@media(max-width:760px){
  body:not(.is-map) .search{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:6px;
    padding:4px;
    width:100%;
    max-width:none;
  }
  body:not(.is-map) .search input{
    border:0!important;
    background:transparent!important;
    min-width:0!important;
    width:100%!important;
  }
  body:not(.is-map) .search button{
    min-height:40px!important;
    height:40px!important;
    padding:0 14px!important;
    border-radius:10px!important;
    white-space:nowrap;
  }
}

/* Hide map provider attribution chip (i / OpenFreeMap) */
.maplibregl-ctrl-attrib,
.maplibregl-ctrl-attrib.maplibregl-compact,
.maplibregl-ctrl-attrib.maplibregl-compact-show{display:none!important}
