.ofqd-territory-page{max-width:1500px;margin:0 auto;padding:28px 24px 60px;color:#0b214f}.ofqd-territory-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:20px}.ofqd-territory-head span{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:#1769d2;font-weight:900}.ofqd-territory-head h1{font-size:clamp(2rem,4vw,3.2rem);margin:5px 0}.ofqd-territory-head p{margin:0;color:#596983}.ofqd-territory-head>a{padding:11px 15px;border-radius:12px;background:#1267d6;color:#fff;text-decoration:none;font-weight:850}.ofqd-territory-shell{background:#fff;border:1px solid #e2e8f4;border-radius:22px;box-shadow:0 18px 48px rgba(15,44,100,.1);padding:18px}.ofqd-territory-levels,.ofqd-territory-filters{display:flex;gap:8px;flex-wrap:wrap}.ofqd-territory-levels button,.ofqd-territory-filters button{border:1px solid #d7dfec;background:#fff;color:#263b63;border-radius:12px;padding:10px 13px;font-weight:800;cursor:pointer}.ofqd-territory-levels button.is-active,.ofqd-territory-filters button.is-active{background:#1267d6;color:#fff;border-color:#1267d6}.ofqd-territory-tools{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid #e6ebf4}.ofqd-territory-search{display:flex;gap:8px;min-width:min(100%,430px)}.ofqd-territory-search input{flex:1;border:1px solid #d6deeb;border-radius:12px;padding:11px 13px}.ofqd-territory-search button{border:0;background:#1267d6;color:#fff;border-radius:12px;padding:0 15px;font-weight:850}.ofqd-territory-summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 2px 12px}.ofqd-territory-summary strong{font-size:1.25rem}.ofqd-territory-summary span{color:#64728a}.ofqd-territory-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;align-items:start}.ofqd-territory-card{display:block;border:1px solid #e1e7f0;border-radius:15px;overflow:hidden;background:#fff;text-decoration:none;color:#0b214f;box-shadow:0 7px 20px rgba(15,44,100,.07)}.ofqd-territory-card img{display:block;width:100%;aspect-ratio:16/8.6;object-fit:cover;background:#eef2f7}.ofqd-territory-card-body{padding:8px 9px 9px}.ofqd-territory-card em{display:inline-block;font-style:normal;font-size:.67rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em;color:#1769d2}.ofqd-territory-card h2{font-size:.96rem;line-height:1.15;margin:3px 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ofqd-territory-card p{font-size:.79rem;line-height:1.2;margin:2px 0;color:#53627c}.ofqd-territory-pagination{padding-top:18px;text-align:center}.ofqd-territory-pagination>div:first-child{font-weight:750;color:#596983;margin-bottom:10px}.ofqd-territory-pages{display:flex;justify-content:center;align-items:center;gap:6px;flex-wrap:wrap}.ofqd-territory-pages button{border:1px solid #d6deeb;background:#fff;border-radius:10px;padding:8px 11px;font-weight:800;color:#23416d}.ofqd-territory-pages button.is-active{background:#1267d6;color:#fff;border-color:#1267d6}.ofqd-territory-pages button:disabled{opacity:.42}.ofqd-territory-empty{grid-column:1/-1;padding:50px;text-align:center;color:#64728a}@media(max-width:1200px){.ofqd-territory-grid{grid-template-columns:repeat(4,1fr)}}@media(max-width:900px){.ofqd-territory-head,.ofqd-territory-tools{align-items:stretch;flex-direction:column}.ofqd-territory-levels{overflow-x:auto;flex-wrap:nowrap}.ofqd-territory-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.ofqd-territory-page{padding:18px 10px 42px}.ofqd-territory-shell{padding:11px}.ofqd-territory-grid{grid-template-columns:1fr}.ofqd-territory-summary{align-items:flex-start;flex-direction:column}}
/* V31.46 — Communes : artisans/commerçants et diffusion active */
.ofqd-territory-media{position:relative}.ofqd-territory-premium{position:absolute;top:7px;left:7px;padding:4px 8px;border-radius:999px;background:#f4b400;color:#17233f;font-size:.62rem;font-weight:950;text-transform:uppercase;box-shadow:0 3px 10px rgba(0,0,0,.18)}.ofqd-territory-card.kind-commerce{border-top:3px solid #f59e0b}.ofqd-territory-card.kind-artisan{border-top:3px solid #2563eb}.ofqd-territory-card.kind-event{border-top:3px solid transparent}.ofqd-territory-card.kind-commerce em{color:#b76300}.ofqd-territory-card.kind-artisan em{color:#1d5ec8}.ofqd-territory-business{font-weight:800;color:#283d64!important}.ofqd-territory-card p:last-child{margin-top:4px;font-size:.75rem}.ofqd-territory-filters button[data-territory-filter="commerce"],.ofqd-territory-filters button[data-territory-filter="artisan"]{background:#f8fbff}.ofqd-territory-filters button[data-territory-filter="commerce"].is-active,.ofqd-territory-filters button[data-territory-filter="artisan"].is-active{background:#1267d6}

/* V31.49 — onglet Professionnels dédié aux annonces artisans/commerçants */
.ofqd-professional-actions{display:flex;gap:9px;flex-wrap:wrap}.ofqd-professional-actions a{padding:11px 15px;border-radius:12px;background:#1267d6;color:#fff;text-decoration:none;font-weight:850}.ofqd-professional-actions a.secondary{background:#fff;color:#1267d6;border:1px solid #bcd2ef}.ofqd-professional-page .ofqd-territory-card.kind-commerce{border-top-color:#f59e0b}.ofqd-professional-page .ofqd-territory-card.kind-artisan{border-top-color:#2563eb}.ofqd-professional-page .ofqd-territory-business{font-size:.82rem}.ofqd-professional-page .ofqd-territory-card p:last-child{color:#325b93;font-weight:750}

/* V31.50 — onglet Associations dédié aux annonces associations/clubs/comités */
.ofqd-association-actions{display:flex;gap:9px;flex-wrap:wrap}.ofqd-association-actions a{padding:11px 15px;border-radius:12px;background:#1267d6;color:#fff;text-decoration:none;font-weight:850}.ofqd-association-actions a.secondary{background:#fff;color:#1267d6;border:1px solid #bcd2ef}.ofqd-association-page .ofqd-territory-card.kind-association{border-top:3px solid #7c3aed}.ofqd-association-page .ofqd-territory-card.subtype-club{border-top-color:#16803a}.ofqd-association-page .ofqd-territory-card.subtype-comite{border-top-color:#d97706}.ofqd-association-page .ofqd-territory-card.kind-association em{color:#6d28d9}.ofqd-association-page .ofqd-territory-card.subtype-club em{color:#147a37}.ofqd-association-page .ofqd-territory-card.subtype-comite em{color:#b45309}.ofqd-association-page .ofqd-territory-card p:last-child{color:#325b93;font-weight:750}

/* V31.51 — Associations : état vide et badge démo */
.ofqd-territory-demo{position:absolute;right:8px;top:8px;background:#fff;color:#0b3b7c;border:1px solid rgba(11,59,124,.18);border-radius:999px;padding:3px 7px;font-size:.68rem;font-weight:800;box-shadow:0 2px 8px rgba(15,42,90,.15)}
.ofqd-association-empty{grid-column:1/-1;text-align:center;padding:42px 20px!important}
.ofqd-association-empty strong{display:block;color:#092d67;font-size:1.1rem;margin-bottom:8px}
.ofqd-association-empty p{margin:0 0 18px;color:#62708a}
.ofqd-association-empty>div{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}
.ofqd-association-empty a{display:inline-flex;align-items:center;justify-content:center;background:#1671d9;color:#fff!important;text-decoration:none;border-radius:10px;padding:10px 14px;font-weight:800}
.ofqd-association-empty a.secondary{background:#fff;color:#1671d9!important;border:1px solid #b9d1ee}

/* V31.52 — Communes : annuaire territorial distinct de la page Événements */
.ofqd-communes-directory .ofqd-territory-shell{padding:22px}
.ofqd-communes-search{padding:18px;border:1px solid #dce6f3;border-radius:18px;background:linear-gradient(135deg,#f7fbff,#fffdf4)}
.ofqd-communes-search label{display:block;margin-bottom:8px;font-size:1.05rem;font-weight:900;color:#0b214f}
.ofqd-communes-search>div{display:flex;gap:9px;max-width:720px}
.ofqd-communes-search input{flex:1;min-width:0;border:1px solid #cad7e8;border-radius:12px;padding:12px 14px;font-size:1rem;background:#fff;color:#0b214f}
.ofqd-communes-search button{border:0;border-radius:12px;padding:0 18px;background:#1267d6;color:#fff;font-weight:900;cursor:pointer}
.ofqd-communes-search p{margin:10px 0 0;color:#61718a;font-size:.88rem}
.ofqd-commune-directory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.ofqd-commune-directory-card{display:flex;align-items:center;gap:12px;min-width:0;padding:14px;border:1px solid #dfe7f2;border-radius:15px;background:#fff;color:#0b214f;text-decoration:none;box-shadow:0 7px 20px rgba(15,44,100,.06);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
.ofqd-commune-directory-card:hover{transform:translateY(-2px);border-color:#9ec3ef;box-shadow:0 12px 28px rgba(15,44,100,.12)}
.ofqd-commune-directory-icon{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border-radius:12px;background:#eaf4ff;font-size:1.25rem}
.ofqd-commune-directory-copy{display:block;min-width:0;flex:1}
.ofqd-commune-directory-copy strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:1rem}
.ofqd-commune-directory-copy small{display:block;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#63738c}
.ofqd-commune-directory-card>b{font-size:1.5rem;color:#1267d6}
@media(max-width:950px){.ofqd-commune-directory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.ofqd-communes-search>div{flex-direction:column}.ofqd-communes-search button{min-height:44px}.ofqd-commune-directory-grid{grid-template-columns:1fr}.ofqd-communes-directory .ofqd-territory-shell{padding:12px}}

/* OFQD V163 — BusinessEngine */
.ofqd-professional-live-summary{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.75rem}
.ofqd-professional-live-summary strong,.ofqd-professional-live-summary span{display:inline-flex;align-items:center;min-height:30px;padding:.3rem .7rem;border-radius:999px;background:rgba(255,255,255,.16);color:#fff;font-size:.84rem;line-height:1.15}
.ofqd-professional-live-summary strong{background:#fff;color:#0b5fa5}
.ofqd-business-engine-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-bottom:1rem}
.ofqd-business-engine-block{min-width:0}
.ofqd-business-engine-block>strong{display:block;margin-bottom:.55rem;color:#123b5d;font-size:.95rem}
.ofqd-business-engine-chips{display:flex;flex-wrap:wrap;gap:.42rem}
.ofqd-business-engine-chips button{display:inline-flex;align-items:center;gap:.35rem;min-height:34px;padding:.38rem .68rem;border:1px solid #cfe0ee;border-radius:999px;background:#fff;color:#164a70;font:inherit;font-size:.82rem;font-weight:700;cursor:pointer}
.ofqd-business-engine-chips button:hover,.ofqd-business-engine-chips button:focus-visible{border-color:#1778bd;background:#edf7ff;outline:none}
.ofqd-business-engine-chips small{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 .3rem;border-radius:999px;background:#e8f2f9;color:#0b5fa5;font-size:.72rem}
@media (max-width:760px){.ofqd-business-engine-panel{grid-template-columns:1fr}.ofqd-professional-live-summary{gap:.35rem}.ofqd-professional-live-summary strong,.ofqd-professional-live-summary span{font-size:.77rem;min-height:28px}}

/* OFQD V164 — Rodyn connecté aux moteurs Horizon */
.ofqd-rodyn-context-v164{margin-top:22px;margin-bottom:18px;padding:18px 20px;border:1px solid #d9e7fb;border-radius:22px;background:linear-gradient(135deg,#f4f8ff 0%,#fffaf0 100%);box-shadow:0 10px 28px rgba(10,54,120,.07)}
.ofqd-rodyn-context-copy h2{margin:2px 0 5px;color:#08245f;font-size:clamp(22px,2.2vw,31px);line-height:1.08}
.ofqd-rodyn-context-copy p{margin:0;color:#49617f;line-height:1.4}
.ofqd-rodyn-context-links{display:flex;gap:8px;overflow-x:auto;padding-top:14px;padding-bottom:2px;scrollbar-width:thin}
.ofqd-rodyn-context-links a{display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;min-height:39px;padding:8px 12px;border:1px solid #cdddf4;border-radius:999px;background:#fff;color:#173a73;text-decoration:none;font-size:14px;font-weight:800;transition:transform .16s ease,border-color .16s ease,background .16s ease}
.ofqd-rodyn-context-links a:hover{transform:translateY(-1px);border-color:#80a9ea}
.ofqd-rodyn-context-links a.is-active{border-color:#0b5cff;background:#0b5cff;color:#fff}
.ofqd-rodyn-context-links svg{width:17px;height:17px}
@media(max-width:720px){.ofqd-rodyn-context-v164{margin-top:14px;padding:15px;border-radius:18px}.ofqd-rodyn-context-copy h2{font-size:23px}.ofqd-rodyn-context-links{margin-right:-15px;padding-right:15px}.ofqd-rodyn-context-links a{min-height:36px;padding:7px 11px;font-size:13px}}

/* V31.53 — Associations : images fiables et finition visuelle */
.ofqd-association-themes{margin-top:9px;color:#476080;font-size:.9rem;font-weight:750}.ofqd-association-themes span{margin:0 5px;color:#9ab0cc}
.ofqd-association-actions-card{padding:12px;border:1px solid #dfe8f5;border-radius:16px;background:rgba(255,255,255,.84);box-shadow:0 8px 24px rgba(15,44,100,.08)}
.ofqd-association-actions{flex-direction:column;align-items:stretch}.ofqd-association-actions a{text-align:center;white-space:nowrap}
.ofqd-association-page .ofqd-territory-card{transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.ofqd-association-page .ofqd-territory-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(15,44,100,.13);border-color:#bfd0e8}
.ofqd-association-page .ofqd-territory-media{background:linear-gradient(135deg,#edf3fa,#f8fbff)}.ofqd-association-page .ofqd-territory-media img{min-height:104px}
.ofqd-association-page .ofqd-territory-filters button{min-height:38px;transition:transform .14s ease,background .14s ease,border-color .14s ease}.ofqd-association-page .ofqd-territory-filters button:hover{transform:translateY(-1px);border-color:#9fbce2}
@media(max-width:900px){.ofqd-association-actions-card{align-self:flex-start}.ofqd-association-actions{flex-direction:row}.ofqd-association-actions a{white-space:normal}.ofqd-association-page .ofqd-territory-media img{min-height:120px}}
@media(max-width:560px){.ofqd-association-actions-card{width:100%;box-sizing:border-box}.ofqd-association-actions{flex-direction:column}.ofqd-association-themes{font-size:.82rem}.ofqd-association-page .ofqd-territory-media img{min-height:150px}}
