/**
 * Trouver Artisans : CSS front.
 * Les variables lisent d'abord celles du kit Elementor (:root --tar-*),
 * avec valeurs de repli sur la charte du site (bleu nuit / vert / terracotta,
 * Poppins pour les titres, Roboto pour le corps).
 *
 * Regle absolue : aucun max-width ni centrage (margin auto) sur les conteneurs.
 * Toujours 100% de largeur : Elementor gere les largeurs et colonnes.
 * Les selecteurs de formulaires / boutons sont durcis avec !important pour
 * eviter que les styles globaux du kit Elementor ne les ecrasent.
 */

/* ============ TOKENS (repli si le kit ne les definit pas) ============ */
.tar-search, .tar-map, .tar-fiches, .tar-fiche, .tar-auth, .tar-dash,
.tar-panel, .tar-empty, .tar-metiers, .tar-depts, .tar-seo-blocks,
.tar-single, .tar-more-grid, .tar-upsell, .tar-photos, .tar-minimap {
    --blu:  var(--tar-blue,    #002E57);
    --grn:  var(--tar-green,   #00E0A0);
    --ter:  var(--tar-terra,   #D46F4D);
    --ink:  var(--tar-ink,     #16163F);
    --mut:  var(--tar-muted,   #5C6470);
    --lin:  var(--tar-line,    #DDE3EA);
    --srf:  var(--tar-surface, #F9FAFD);
    --ok:   var(--tar-success, #0B8A5C);
    --disp: var(--tar-font-display, "Poppins", sans-serif);
    --body: var(--tar-font-body,    "Roboto", sans-serif);
    font-family: var(--body);
    width: 100%;
    box-sizing: border-box;
}

/* ============ PRIMITIVES ============ */
.tar-btn{font-family:var(--disp)!important;font-weight:600!important;font-size:.95rem!important;
    border:0!important;cursor:pointer!important;padding:12px 24px!important;border-radius:9999px!important;
    display:inline-flex!important;align-items:center;gap:8px;line-height:1!important;text-decoration:none!important;
    transition:background .15s ease,color .15s ease,transform .12s ease}
.tar-btn:active{transform:translateY(1px)}
.tar-btn--primary{background:var(--blu,#002E57)!important;color:#fff!important}
.tar-btn--primary:hover{background:#01427C!important;color:#fff!important}
.tar-btn--ghost{background:transparent!important;color:var(--blu,#002E57)!important;box-shadow:inset 0 0 0 1.5px currentColor!important}
.tar-btn--ghost:hover{background:var(--blu,#002E57)!important;color:#fff!important}
.tar-btn--sm{padding:9px 16px!important;font-size:.82rem!important}
.tar-btn--block{width:100%!important;justify-content:center}

.tar-input{width:100%!important;font-family:var(--body,sans-serif)!important;font-size:1rem!important;color:var(--ink,#16163F)!important;
    background:#fff!important;border:1.5px solid var(--lin,#DDE3EA)!important;border-radius:8px!important;
    padding:11px 13px!important;transition:border-color .15s ease,box-shadow .15s ease;box-sizing:border-box!important}
.tar-input:focus{outline:none!important;border-color:var(--blu,#002E57)!important;box-shadow:0 0 0 3px rgba(0,46,87,.14)!important}
.tar-label{font-family:var(--disp,sans-serif);font-size:.72rem;font-weight:600;letter-spacing:.06em;
    text-transform:uppercase;color:var(--mut,#5C6470);display:block;margin-bottom:6px}

.tar-h3{font-family:var(--disp,sans-serif);font-weight:600;font-size:1.35rem;margin:0 0 12px;color:var(--ink,#16163F)}
.tar-h3--name{text-transform:none}
.tar-h4{font-family:var(--disp,sans-serif);font-weight:600;font-size:1rem;margin:22px 0 10px;color:var(--ink,#16163F)}
.tar-meta{font-size:.82rem;color:var(--mut,#5C6470)}
.tar-ok{color:var(--ok,#0B8A5C);font-weight:600} .tar-warn{color:#c85a1c;font-weight:600}
.tar-empty{color:var(--mut,#5C6470);font-style:italic}
.tar-verified{color:var(--grn,#00E0A0);font-size:.85em;margin-left:4px}

/* Cases stylees */
.tar-check{display:inline-flex;align-items:center;gap:8px;font-size:.92rem;cursor:pointer;margin:0 12px 6px 0;color:inherit}
.tar-check input{width:15px;height:15px;accent-color:var(--blu,#002E57)}
.tar-checkgrid{display:flex;flex-wrap:wrap;gap:2px 6px}

/* Panneaux */
.tar-panel{background:#fff;border:1px solid var(--lin,#DDE3EA);border-radius:12px;padding:22px;box-sizing:border-box;width:100%}
.tar-panel--center{text-align:center}

/* ============ BARRE DE RECHERCHE (hero) ============ */
.tar-search{display:flex;align-items:stretch;gap:0;background:#fff;border:1.5px solid var(--lin,#DDE3EA);
    border-radius:9999px;padding:6px;box-shadow:0 8px 28px rgba(0,46,87,.10);width:100%;box-sizing:border-box}
.tar-search__seg{display:flex;align-items:center;gap:8px;flex:1;padding:4px 14px;min-width:0}
.tar-search__seg--geo{border-left:1.5px solid var(--lin,#DDE3EA)}
.tar-search__ico{color:var(--blu,#002E57);flex:none}
.tar-search__seg input,.tar-search__seg select{border:0!important;background:transparent!important;outline:none!important;
    width:100%!important;font-size:1rem!important;font-family:var(--body)!important;color:var(--ink,#16163F)!important;
    box-shadow:none!important;padding:8px 0!important;cursor:pointer}
.tar-search__seg input{cursor:text}
.tar-search__btn{flex:none}
@media (max-width:700px){
    .tar-search{flex-direction:column;border-radius:18px;gap:4px}
    .tar-search__seg--geo{border-left:0;border-top:1.5px solid var(--lin,#DDE3EA)}
    .tar-search__btn{width:100%!important;justify-content:center}
}

/* ============ CARTE ============ */
.tar-map{width:100%}
.tar-map__filters{margin-bottom:12px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.tar-map__filters .tar-label{margin:0}
.tar-map__filters .tar-input{max-width:320px!important;width:auto!important;min-width:220px}
.tar-map__inner{display:flex;gap:0;border:1px solid var(--lin,#DDE3EA);border-radius:12px;overflow:hidden;background:#fff}
.tar-map__side{width:320px;flex:none;display:flex;flex-direction:column;border-right:1px solid var(--lin,#DDE3EA)}
.tar-map__side .tar-map__search{border:0!important;border-bottom:1.5px solid var(--lin,#DDE3EA)!important;border-radius:0!important}
.tar-map__results{flex:1;overflow-y:auto;max-height:calc(var(--tar-map-h,520px) - 50px)}
.tar-map__canvas{flex:1;height:var(--tar-map-h,520px);min-height:240px;z-index:1}
.tar-map:not(.tar-map--sidebar) .tar-map__canvas{width:100%}
@media (max-width:820px){
    .tar-map__inner{flex-direction:column}
    .tar-map__side{width:100%;border-right:0;border-bottom:1px solid var(--lin,#DDE3EA)}
    .tar-map__results{max-height:220px}
}

/* Tuiles adoucies (fond clair, coherent avec la charte) */
.tar-tiles{filter:saturate(.72) contrast(.94) brightness(1.02)}

/* Marqueurs */
.tar-pin{background:transparent;border:0}
.tar-marker{width:100%;height:100%;border-radius:50%;border:2.5px solid #fff}
.tar-marker--spo{display:flex;align-items:center;justify-content:center;background:var(--tar-green,#00E0A0);
    color:#00311F;font-size:15px;line-height:1;border-radius:50%;border:2.5px solid #fff;
    box-shadow:0 0 10px rgba(0,224,160,.8);width:100%;height:100%}

/* Resultats sidebar */
.tar-map-result{display:flex;align-items:center;gap:10px;padding:11px 14px;border-bottom:1px solid var(--tar-line,#DDE3EA);
    text-decoration:none;color:inherit;transition:background .12s ease}
.tar-map-result:hover{background:var(--tar-surface,#F9FAFD)}
.tar-map-result__dot{width:9px;height:9px;border-radius:50%;background:var(--tar-blue,#002E57);flex:none}
.tar-map-result__main{min-width:0;display:flex;flex-direction:column;gap:2px}
.tar-map-result__main b{font-size:.92rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tar-map-result__main small{font-size:.76rem;color:var(--tar-muted,#5C6470);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tar-map-result__spo{margin-left:auto;color:var(--tar-green,#00E0A0)}
.tar-map-empty{padding:18px 14px;color:var(--tar-muted,#5C6470);font-style:italic;font-size:.9rem}

/* Popup */
.tar-map-popup{display:flex;flex-direction:column;gap:6px;min-width:190px;font-family:var(--tar-font-body,"Roboto",sans-serif)}
.tar-map-popup__type{font-size:.68rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:#01427C}
.tar-map-popup__title{font-size:.98rem;color:#16163F}
.tar-map-popup__addr{font-size:.8rem;color:#5C6470}
.tar-map-popup__cta{display:inline-block;margin-top:4px;background:#002E57;color:#fff!important;text-decoration:none;
    padding:8px 14px;border-radius:9999px;font-size:.82rem;font-weight:600;text-align:center}
.tar-map-popup__cta:hover{background:#01427C}

/* Mini-carte de fiche */
.tar-minimap{width:100%;border-radius:12px;overflow:hidden;border:1px solid var(--lin,#DDE3EA);z-index:1}

/* ============ GRILLE DE FICHES ============ */
.tar-fiches{display:grid;gap:22px;width:100%}
.tar-fiches--c1{grid-template-columns:1fr}
.tar-fiches--c2{grid-template-columns:repeat(2,1fr)}
.tar-fiches--c3{grid-template-columns:repeat(3,1fr)}
.tar-fiches--c4{grid-template-columns:repeat(4,1fr)}
@media (max-width:980px){.tar-fiches--c3,.tar-fiches--c4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.tar-fiches--c2,.tar-fiches--c3,.tar-fiches--c4{grid-template-columns:1fr}}

.tar-fiche{background:#fff;border:1px solid var(--lin,#DDE3EA);border-radius:12px;overflow:hidden;
    display:flex;flex-direction:column;transition:box-shadow .15s ease,transform .15s ease}
.tar-fiche:hover{box-shadow:0 10px 30px rgba(0,46,87,.12);transform:translateY(-2px)}
.tar-fiche--premium{border-color:var(--grn,#00E0A0)}
.tar-fiche__ph{height:150px;background:linear-gradient(135deg,#002E57 0%,#01427C 100%);background-size:cover;background-position:center;position:relative}
.tar-ttag{position:absolute;left:12px;bottom:12px;background:rgba(255,255,255,.94);color:var(--blu,#002E57);
    font-family:var(--disp);font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;
    padding:5px 10px;border-radius:9999px;max-width:calc(100% - 24px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tar-fiche__spo{position:absolute;right:12px;top:12px;background:var(--grn,#00E0A0);color:#00311F;
    font-family:var(--disp);font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
    padding:5px 10px;border-radius:9999px}
.tar-fiche__bd{padding:16px;display:flex;flex-direction:column;gap:9px;flex:1}
.tar-fiche__title{margin:0;font-family:var(--disp);font-size:1.05rem;font-weight:600;line-height:1.3}
.tar-fiche__title a{color:var(--ink,#16163F);text-decoration:none}
.tar-fiche__title a:hover{color:var(--blu,#002E57)}
.tar-fiche__loc{font-size:.84rem;color:var(--mut,#5C6470)}
.tar-fiche__tags{display:flex;flex-wrap:wrap;gap:6px}
.tar-ftag{background:var(--srf,#F9FAFD);border:1px solid var(--lin,#DDE3EA);color:var(--ink,#16163F);
    font-size:.74rem;padding:4px 9px;border-radius:9999px;text-decoration:none}
a.tar-ftag:hover{border-color:var(--blu,#002E57);color:var(--blu,#002E57)}
.tar-ftag--ok{border-color:rgba(11,138,92,.4);color:var(--ok,#0B8A5C)}
.tar-fiche__foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:8px;border-top:1px solid var(--lin,#DDE3EA)}
.tar-fiche__zone{font-size:.8rem;color:var(--mut,#5C6470)}

/* « Voir plus » sans JS */
.tar-more-grid__toggle{position:absolute;opacity:0;pointer-events:none}
.tar-more-grid__extra{display:none!important;margin-top:22px}
.tar-more-grid__toggle:checked ~ .tar-more-grid__extra{display:grid!important}
.tar-more-grid__toggle:checked ~ .tar-more-grid__morewrap{display:none}
.tar-more-grid__morewrap{text-align:center;margin-top:22px}

/* ============ BANDEAUX METIERS / DEPARTEMENTS ============ */
.tar-metiers,.tar-depts{display:flex;flex-wrap:wrap;gap:10px}
.tar-metiers__item,.tar-depts__item{display:inline-flex;align-items:center;gap:9px;background:#fff;
    border:1.5px solid var(--lin,#DDE3EA);border-radius:9999px;padding:9px 16px;text-decoration:none;
    color:var(--ink,#16163F);transition:border-color .12s ease,color .12s ease}
.tar-metiers__item:hover,.tar-depts__item:hover{border-color:var(--blu,#002E57);color:var(--blu,#002E57)}
.tar-metiers__name,.tar-depts__name{font-family:var(--disp);font-weight:600;font-size:.9rem}
.tar-depts__code{font-family:var(--disp);font-weight:700;font-size:.8rem;color:var(--blu,#002E57)}
.tar-metiers__count,.tar-depts__count{background:var(--srf,#F9FAFD);border-radius:9999px;font-size:.72rem;
    padding:2px 8px;color:var(--mut,#5C6470)}

/* ============ BLOCS SEO ============ */
.tar-seo-blocks{display:flex;flex-direction:column;gap:18px;width:100%}
.tar-seo-blocks__block{line-height:1.7}

/* ============ FICHE SINGLE ============ */
.tar-single{display:flex;gap:28px;align-items:flex-start;width:100%}
.tar-single__main{flex:1;min-width:0;display:flex;flex-direction:column;gap:22px}
.tar-single__side{width:360px;flex:none;position:sticky;top:90px;display:flex;flex-direction:column;gap:18px}
@media (max-width:920px){
    .tar-single{flex-direction:column}
    .tar-single__side{width:100%;position:static}
}
.tar-infos .tar-h4:first-of-type{margin-top:0}
.tar-infos__verified{background:rgba(0,224,160,.12);color:var(--ok,#0B8A5C);font-weight:600;font-size:.86rem;
    padding:9px 13px;border-radius:8px;margin-bottom:14px}
.tar-infos__table{width:100%;border-collapse:collapse;font-size:.9rem}
.tar-infos__table td{padding:6px 0;vertical-align:top;border-bottom:1px solid var(--lin,#DDE3EA)}
.tar-infos__table td:first-child{color:var(--mut,#5C6470);width:44%;padding-right:10px}
.tar-infos__contact{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:.92rem}
.tar-infos__contact a{color:var(--blu,#002E57)}
.tar-infos__ico{display:inline-block;width:20px;color:var(--blu,#002E57)}
.tar-infos__hours{font-size:.88rem;color:var(--mut,#5C6470);margin:0}
.tar-desc{line-height:1.75}

/* Encart upsell (freemium) */
.tar-upsell{background:var(--srf,#F9FAFD);border:1.5px dashed var(--lin,#DDE3EA);border-radius:12px;
    padding:16px;margin-top:14px;display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.tar-upsell--wide{margin:0 0 22px}
.tar-upsell__t{margin:0;font-family:var(--disp);font-weight:600;color:var(--ink,#16163F)}
.tar-upsell__d{margin:0;font-size:.86rem;color:var(--mut,#5C6470)}

/* Galerie */
.tar-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;width:100%}
.tar-gallery__item{display:block;border-radius:10px;overflow:hidden;aspect-ratio:4/3}
.tar-gallery__item--main{grid-column:span 2;grid-row:span 2}
.tar-gallery__item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .2s ease}
.tar-gallery__item:hover img{transform:scale(1.04)}
@media (max-width:640px){.tar-gallery{grid-template-columns:repeat(2,1fr)}}

/* ============ AUTH / DASHBOARD PRO ============ */
.tar-auth{display:grid;grid-template-columns:1fr 1fr;gap:22px;width:100%;margin-top:18px}
@media (max-width:820px){.tar-auth{grid-template-columns:1fr}}
.tar-auth__col{background:#fff;border:1px solid var(--lin,#DDE3EA);border-radius:12px;padding:24px}
.tar-auth__col--alt{background:var(--blu,#002E57);border-color:var(--blu,#002E57)}
.tar-auth__col--alt .tar-h3{color:#fff}
.tar-auth__col--alt .tar-meta{color:#B9C7D6}
.tar-auth__col--alt .tar-label{color:#B9C7D6}

.tar-form__row{margin:0 0 14px}
.tar-form__cols{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
@media (max-width:560px){.tar-form__cols{grid-template-columns:1fr}}
.tar-form__msg{min-height:1.2em;margin:10px 0 0;font-size:.88rem}
.tar-form__msg--ok{color:var(--ok,#0B8A5C)}
.tar-form__msg--err{color:#C0392B}
.tar-form__group{background:#fff;border:1px solid var(--lin,#DDE3EA);border-radius:12px;padding:18px;margin-bottom:18px}
.tar-form__group .tar-h4{margin-top:0}

.tar-dash{width:100%}
.tar-dash__switch{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.tar-dash__head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:18px}
.tar-dash__headactions{display:flex;gap:8px;flex-wrap:wrap}

.tar-tabs{display:flex;gap:6px;border-bottom:1.5px solid var(--lin,#DDE3EA);margin-bottom:20px}
.tar-tabs__btn{background:transparent;border:0;cursor:pointer;font-family:var(--disp);font-weight:600;
    font-size:.94rem;color:var(--mut,#5C6470);padding:11px 16px;border-bottom:2.5px solid transparent;margin-bottom:-1.5px}
.tar-tabs__btn--on{color:var(--blu,#002E57);border-bottom-color:var(--blu,#002E57)}
.tar-tab{display:none}
.tar-tab--on{display:block}

/* Photos dashboard */
.tar-photos__block{margin-bottom:22px}
.tar-photos__grid,.tar-photos__featured{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:10px}
.tar-photos__item{position:relative;margin:0;width:96px;height:96px;border-radius:10px;overflow:hidden;border:1px solid var(--lin,#DDE3EA)}
.tar-photos__item img{width:100%;height:100%;object-fit:cover;display:block}
.tar-photos__del{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;border:0;
    background:rgba(22,22,63,.82);color:#fff;font-size:14px;line-height:1;cursor:pointer}
.tar-photos__del:hover{background:#C0392B}

/* Tuile metier sans page associee : affichee sans lien, aspect neutre */
.tar-metiers__item--nolink{cursor:default;opacity:.7}
.tar-metiers__item--nolink:hover{border-color:var(--lin,#DDE3EA);color:var(--ink,#16163F)}
