:root{
  --tsg-primary:#3B1E7B;
  --tsg-secondary:#8FAF74;
  --tsg-accent-orange:#DA4816;
  --tsg-surface:#F3F3F3;
  --tsg-max:1640px;
  --tsg-text:#2d2250;
  --tsg-muted:#6e687d;
  --tsg-white:#fff;
  --tsg-shadow:0 24px 70px rgba(32,14,76,.10);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body.tsg-site-shell{margin:0;background:#fff;color:var(--tsg-text);font-family:Poppins,Arial,sans-serif;overflow-x:hidden}
.tsg-site-shell a{color:inherit}
.tsg-site-shell img{max-width:100%;height:auto}
.tsg-container{width:min(var(--tsg-max),calc(100% - 64px));margin-inline:auto}
.tsg-main{min-height:50vh}
.tsg-skip-link{position:fixed;left:12px;top:-60px;z-index:10000;background:#fff;color:#111;padding:12px 16px;border-radius:8px}.tsg-skip-link:focus{top:12px}
.tsg-header{position:relative;z-index:100;background:#fff;border-bottom:1px solid rgba(59,30,123,.05)}
.tsg-header__inner{height:130px;display:flex;align-items:center;gap:44px}
.tsg-brand{display:flex;align-items:center;gap:14px;text-decoration:none;flex:0 0 auto}
.tsg-brand img{width:62px;max-height:88px;object-fit:contain;display:block}
.tsg-brand__text{display:flex;flex-direction:column;line-height:1;font-family:Montserrat,Arial,sans-serif;color:#777}
.tsg-brand__text small{font-size:11px;font-weight:600;letter-spacing:.07em}
.tsg-brand__text strong{font-size:19px;color:var(--tsg-primary);margin-top:5px;letter-spacing:.02em}
.tsg-nav{display:flex;align-items:center;justify-content:center;gap:30px;flex:1;min-width:0}
.tsg-nav__item{position:relative;display:flex;align-items:center;min-height:130px}
.tsg-nav__link{font-size:13px;font-weight:600;text-decoration:none;color:var(--tsg-primary);white-space:nowrap;transition:.2s ease;display:inline-flex;align-items:center}
.tsg-nav__link:hover,.tsg-nav__item:focus-within>.tsg-nav__link{color:var(--tsg-secondary)}
.tsg-nav__link.is-accent{border:2px solid var(--tsg-secondary);color:var(--tsg-secondary);padding:11px 18px;border-radius:999px}
.tsg-nav__link.is-accent:hover{background:var(--map-b);color:#fff}
.tsg-submenu{position:absolute;left:50%;top:calc(100% - 12px);transform:translate(-50%,10px);width:310px;background:#fff;border-top:4px solid var(--tsg-secondary);box-shadow:0 22px 58px rgba(31,16,70,.16);padding:12px;opacity:0;visibility:hidden;pointer-events:none;transition:.18s ease;z-index:120}
.tsg-nav__item:hover>.tsg-submenu,.tsg-nav__item:focus-within>.tsg-submenu{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0)}
.tsg-submenu a{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 14px;border-radius:8px;color:var(--tsg-primary);text-decoration:none;font-size:12px;font-weight:600;white-space:normal;line-height:1.35}
.tsg-submenu a:hover{background:#f6f3fb;color:var(--tsg-secondary)}
.tsg-submenu b{font-size:17px;color:var(--tsg-secondary);font-weight:500}
.tsg-header__tools{display:flex;align-items:center;gap:12px;flex:0 0 auto;margin-left:auto}
.tsg-icon-btn,.tsg-menu-btn{appearance:none;border:0;background:transparent;color:var(--tsg-primary);width:38px;height:38px;display:grid;place-items:center;padding:8px;cursor:pointer;text-decoration:none}
.tsg-icon-btn svg,.tsg-menu-btn svg,.tsg-contact-line svg,.tsg-newsletter h2 svg,.tsg-quicklinks svg,.tsg-civil-card svg,.tsg-elected-card__placeholder svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.tsg-menu-btn{display:none}
.tsg-mobile-nav{background:#fff;border-top:1px solid #eee;border-bottom:1px solid #eee;box-shadow:0 18px 40px rgba(0,0,0,.08)}
.tsg-mobile-nav__inner{display:grid;padding:16px 0 24px;max-height:calc(100vh - 98px);overflow:auto}
.tsg-mobile-nav__group{padding:8px 0;border-bottom:1px solid #ece9f2}
.tsg-mobile-nav a{text-decoration:none;color:var(--tsg-primary)}
.tsg-mobile-nav__parent{display:flex;font-weight:800;padding:11px 0;font-size:14px;letter-spacing:.015em}
.tsg-mobile-nav__children{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px;padding:2px 0 8px}
.tsg-mobile-nav__children a{padding:9px 0;font-size:12px;font-weight:500;line-height:1.35;color:#5c536c}
.tsg-mobile-nav__children a:hover{color:var(--tsg-secondary)}
.tsg-search-panel{position:absolute;left:0;right:0;top:100%;background:#fff;box-shadow:0 18px 40px rgba(0,0,0,.10);border-top:1px solid #eee;padding:24px 0}
.tsg-search-panel label{display:block;color:var(--tsg-primary);font-weight:700;margin-bottom:8px}
.tsg-search-row{display:grid;grid-template-columns:1fr auto auto;gap:10px}
.tsg-search-row input{border:1px solid #d8d4e2;padding:14px 16px;border-radius:8px;font:inherit}
.tsg-search-row button{border:0;background:var(--map-a);color:#fff;padding:0 22px;border-radius:8px;font-weight:700;cursor:pointer}
.tsg-search-row .tsg-search-close{background:#eee;color:#333;font-size:22px;width:48px;padding:0}

/* Adobe XD home */
.tsg-hero{padding:72px 0 46px}
.tsg-hero__grid{display:grid;grid-template-columns:minmax(0,1.26fr) minmax(500px,.94fr);gap:66px;align-items:start}
.tsg-hero__copy{padding-top:72px}
.tsg-hero h1{margin:0;color:var(--tsg-secondary);font-family:"Kannada MN",Georgia,"Times New Roman",serif;font-size:clamp(52px,4.15vw,78px);line-height:1.02;font-weight:700;letter-spacing:.02em;max-width:880px}
.tsg-hero__copy>p{margin:34px 0 0;max-width:860px;color:var(--tsg-primary);font-size:16px;line-height:1.72;font-weight:400}
.tsg-hero__visual{height:666px;background:linear-gradient(145deg,var(--tsg-primary) 4%,#6c285c 52%,var(--tsg-secondary) 100%);overflow:hidden;display:flex;align-items:flex-end;justify-content:center;position:relative}
.tsg-hero__visual:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 68% 14%,rgba(255,255,255,.08),transparent 35%);pointer-events:none}
.tsg-hero__visual img{display:block;max-height:650px;width:auto;max-width:88%;object-fit:contain;object-position:center bottom;transform:translateY(4px)}
.tsg-quicklinks{margin-top:86px;display:grid;grid-template-columns:repeat(4,1fr);border-radius:12px;overflow:hidden;background:linear-gradient(90deg,var(--tsg-secondary) 0%,#be3c2c 45%,var(--tsg-primary) 100%);box-shadow:0 16px 34px rgba(58,30,123,.09)}
.tsg-quicklinks a{min-height:92px;display:flex;align-items:center;justify-content:center;gap:12px;text-align:center;color:#fff;text-decoration:none;font-size:13px;font-weight:600;padding:16px 14px;position:relative}
.tsg-quicklinks a:not(:last-child):after{content:"";position:absolute;right:0;top:24%;width:1px;height:52%;background:rgba(255,255,255,.8)}
.tsg-quicklinks svg{width:26px;height:26px;flex:0 0 26px}

.tsg-services{padding:0 0 48px}
.tsg-services__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.tsg-service-card{min-height:448px;background:var(--tsg-surface);text-decoration:none;display:flex;flex-direction:column;align-items:stretch;overflow:hidden;color:var(--tsg-primary);transition:transform .2s ease,box-shadow .2s ease}
.tsg-service-card:hover{transform:translateY(-4px);box-shadow:var(--tsg-shadow)}
.tsg-service-card__copy{text-align:center;padding:28px 22px 8px;min-height:154px}
.tsg-service-card h2{margin:0 0 12px;font-size:23px;line-height:1.12;font-weight:700;color:var(--tsg-primary)}
.tsg-service-card p{margin:0 auto;max-width:270px;font-size:11px;line-height:1.5;color:var(--tsg-primary)}
.tsg-service-card>img{display:block;margin-top:auto;width:100%;height:290px;object-fit:cover;object-position:center bottom}

.tsg-news-feature{padding:0 0 50px}
.tsg-news-feature__inner{min-height:458px;background:linear-gradient(102deg,var(--tsg-primary) 0%,#793052 51%,var(--tsg-secondary) 100%);display:grid;grid-template-columns:1fr 1.02fr;align-items:center;overflow:hidden;color:#fff}
.tsg-news-feature__art{height:100%;min-height:458px;position:relative;display:flex;align-items:center;justify-content:center}
.tsg-blob{position:absolute;width:330px;height:300px;overflow:hidden;border:6px solid #fff;border-radius:48% 52% 44% 56% / 54% 43% 57% 46%;box-shadow:0 18px 40px rgba(0,0,0,.18)}
.tsg-blob img{width:100%;height:100%;object-fit:cover}
.tsg-blob--one{transform:rotate(-8deg) translateX(-85px);z-index:1}
.tsg-blob--two{transform:rotate(-2deg);z-index:3}
.tsg-blob--three{transform:rotate(8deg) translateX(82px);z-index:2}
.tsg-news-feature__copy{padding:60px 70px 60px 24px}
.tsg-news-feature h2{font-size:50px;line-height:1.05;margin:0 0 20px;font-weight:700;color:#fff}
.tsg-news-feature p{font-size:18px;line-height:1.52;max-width:650px;margin:0 0 34px}
.tsg-pill-button{display:inline-flex;align-items:center;justify-content:center;min-width:215px;min-height:58px;background:#fff;color:var(--tsg-primary)!important;text-decoration:none;border-radius:999px;font-size:15px;font-weight:600;padding:15px 28px;transition:.2s ease}
.tsg-pill-button:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(0,0,0,.16)}

.tsg-home-agenda{padding:0 0 78px}
.tsg-home-agenda__grid{display:grid;grid-template-columns:300px 1fr;gap:72px;align-items:start}
.tsg-home-agenda__intro{padding-top:16px}
.tsg-home-agenda__intro h2{margin:0 0 28px;color:var(--tsg-secondary);font-size:46px;line-height:1;font-weight:700}
.tsg-home-agenda__intro p{margin:0;color:var(--tsg-primary);font-size:18px;line-height:1.48}
.tsg-event-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:34px}
.tsg-event-card{position:relative;min-width:0}
.tsg-event-card__image{height:190px;overflow:hidden;background:#eee}
.tsg-event-card__image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s ease}
.tsg-event-card:hover .tsg-event-card__image img{transform:scale(1.025)}
.tsg-event-tag{display:inline-block;background:var(--tsg-secondary);color:#fff;font-size:10px;font-weight:600;padding:5px 9px;margin-top:-23px;position:relative;z-index:2}
.tsg-event-dates{display:flex;align-items:center;gap:10px;margin-top:10px;color:#202020;font-size:12px;line-height:1.2}
.tsg-event-dates b{color:var(--tsg-secondary);font-size:16px}
.tsg-event-card h3{font-size:19px;line-height:1.22;color:var(--tsg-primary);margin:8px 0 0;font-weight:700}

/* Generic pages */
.tsg-page-hero{padding:82px 0 62px;background:#fff}
.tsg-page-hero__line{display:block;width:72px;height:6px;background:rgba(218,72,22,.14);margin-bottom:22px}
.tsg-page-hero h1{font-family:Poppins,Arial,sans-serif;margin:0;color:#191919;font-size:clamp(44px,4vw,72px);line-height:1.05;font-weight:700;letter-spacing:-.025em;max-width:1200px}
.tsg-page-hero p{max-width:980px;color:var(--tsg-primary);font-size:17px;line-height:1.65;margin:25px 0 0}
.tsg-section{padding:60px 0 90px}
.tsg-editor-content{font-size:17px;line-height:1.75;color:#3a3743;max-width:1080px}
.tsg-editor-content--wide{max-width:none}
.tsg-page-extra{margin-bottom:52px}
.tsg-editor-content h2,.tsg-editor-content h3{color:var(--tsg-primary);font-family:Poppins,Arial,sans-serif;line-height:1.2}
.tsg-editor-content h2{font-size:38px}.tsg-editor-content h3{font-size:28px}
.tsg-editor-content a{color:var(--tsg-secondary)}
.tsg-editor-content .wp-block-image img{border-radius:4px}
.tsg-eyebrow{display:inline-block;color:var(--tsg-secondary);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.09em}
.tsg-eyebrow--light{color:#fff}

/* Rich editable content pages */
.tsg-content-hero{padding:54px 0 24px;background:#fff}
.tsg-content-hero__grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(420px,1.05fr);min-height:430px;background:#f6f4f8;overflow:hidden}
.tsg-content-hero__copy{padding:66px 68px;display:flex;flex-direction:column;justify-content:center}
.tsg-content-hero__copy h1{font-family:Poppins,Arial,sans-serif;margin:0;color:#17131f;font-size:clamp(44px,4vw,70px);line-height:1.03;font-weight:700;letter-spacing:-.025em}
.tsg-content-hero__copy>p{margin:24px 0 0;color:var(--tsg-primary);font-size:17px;line-height:1.65;max-width:720px}
.tsg-content-hero__media{min-height:430px;overflow:hidden;background:linear-gradient(135deg,var(--tsg-primary),var(--tsg-secondary))}
.tsg-content-hero__media img{width:100%;height:100%;min-height:430px;object-fit:cover;display:block}
.tsg-content-hero--article .tsg-content-hero__copy{padding-top:54px;padding-bottom:54px}
.tsg-article__meta{font-size:12px!important;font-weight:700!important;color:var(--tsg-secondary)!important;text-transform:uppercase;letter-spacing:.08em;margin:0 0 16px!important}
.tsg-article__content{margin-inline:auto}
.tsg-back-link{max-width:1080px;margin:38px auto 0;font-weight:700}.tsg-back-link a{color:var(--tsg-secondary);text-decoration:none}
.tsg-content-intro{max-width:980px!important;margin:0 0 44px!important}
.tsg-content-intro h2{font-size:clamp(34px,3vw,48px)!important;margin:8px 0 16px!important;color:var(--tsg-primary)!important}
.tsg-content-intro>p:not(.tsg-block-eyebrow){font-size:18px;line-height:1.72;color:#514a5d;margin-bottom:0}
.tsg-block-eyebrow{margin:0!important;color:var(--tsg-secondary)!important;font-size:12px!important;font-weight:800!important;text-transform:uppercase;letter-spacing:.12em}
.tsg-info-columns{gap:22px!important;margin:0 0 28px!important;align-items:stretch!important}
.tsg-info-columns>.wp-block-column{display:flex}
.tsg-info-card{width:100%;min-height:220px;background:var(--tsg-surface);padding:30px!important;border-top:4px solid var(--tsg-secondary);display:flex;flex-direction:column;box-shadow:0 10px 34px rgba(39,20,79,.045)}
.tsg-info-card h3{font-size:24px!important;margin:0 0 13px!important;color:var(--tsg-primary)!important}
.tsg-info-card p{font-size:14px;line-height:1.65;color:#625b6e;margin-top:0}
.tsg-info-card .tsg-card-link{margin-top:auto!important;padding-top:10px}.tsg-info-card .tsg-card-link a{font-weight:700;text-decoration:none;color:var(--tsg-secondary)}
.tsg-editable-note{margin:32px 0!important;background:#fff8ec;padding:22px 26px!important;border-left:5px solid var(--tsg-secondary);max-width:1100px!important}
.tsg-editable-note p{margin:0!important;font-size:14px;line-height:1.65;color:#5d4e45}
.tsg-block-button .wp-block-button__link{background:var(--tsg-primary)!important;color:#fff!important;border-radius:999px!important;padding:14px 24px!important;font-weight:700!important;text-decoration:none!important}
.tsg-block-button .wp-block-button__link:hover{background:var(--tsg-secondary)!important}

/* Elected */
.tsg-elected-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:80px;align-items:start}
.tsg-summary{position:sticky;top:22px;display:flex;flex-direction:column;gap:14px;font-size:15px}
.tsg-summary strong{font-size:14px;margin-bottom:8px;color:#222}
.tsg-summary a{text-decoration:none;color:#26242b;padding-left:17px;position:relative}
.tsg-summary a:before{content:"";position:absolute;left:0;top:.6em;width:5px;height:5px;background:#f19a7c;border-radius:50%}
.tsg-elected-search{margin-bottom:70px}
.tsg-elected-search h2,.tsg-elected-group h2{color:var(--tsg-secondary);font-size:44px;line-height:1.1;margin:0 0 26px}
.tsg-elected-search__grid{display:grid;grid-template-columns:repeat(3,1fr) auto;gap:18px;align-items:end}
.tsg-elected-search label{display:grid;gap:8px;font-weight:700;font-size:13px;color:#222}
.tsg-elected-search input{min-height:54px;border:1px solid #ddd;padding:0 16px;font:inherit;font-weight:400}
.tsg-elected-search button{min-height:54px;border:1px solid var(--tsg-secondary);background:#fff;color:#222;font-weight:700;padding:0 24px;cursor:pointer}
.tsg-elected-group{padding:20px 0 68px;scroll-margin-top:40px}
.tsg-elected-group__intro{max-width:900px;color:#555;line-height:1.7;margin-top:-8px;margin-bottom:30px}
.tsg-elected-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}
.tsg-elected-card{border:1px solid #eceaf1;background:#fff;display:grid;grid-template-columns:150px 1fr;grid-column:span 2;min-height:230px;transition:.2s ease}
.tsg-elected-card:hover{box-shadow:var(--tsg-shadow);transform:translateY(-2px)}
.tsg-elected-card img{width:150px;height:100%;object-fit:cover}
.tsg-elected-card__placeholder{width:150px;min-height:230px;display:grid;place-items:center;background:linear-gradient(145deg,#eee9f7,#f8f5fb);color:var(--tsg-primary)}
.tsg-elected-card__placeholder svg{width:60px;height:60px}
.tsg-elected-card__body{padding:22px}
.tsg-elected-card h3{font-size:22px;margin:0 0 5px;color:#222}
.tsg-elected-card__role{font-weight:700;color:var(--tsg-secondary);margin:0 0 12px}
.tsg-elected-card p{font-size:13px;line-height:1.55;margin:5px 0}
.tsg-elected-card__text{font-size:13px;line-height:1.6;color:#555;margin-top:10px}
.tsg-elected-card__text p{margin:0}.tsg-elected-card[hidden]{display:none!important}

/* Civil */
.tsg-civil__intro{max-width:1040px;margin-bottom:60px}
.tsg-civil__intro h2{font-size:50px;color:var(--tsg-primary);margin:8px 0 20px}
.tsg-civil__intro p{font-size:17px;line-height:1.7;color:#48434f;max-width:930px}
.tsg-civil__cards{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-bottom:60px}
.tsg-civil-card{min-height:330px;text-decoration:none;background:linear-gradient(145deg,#fff7b8 0%,#f1b64a 56%,#a44b2a 100%);padding:34px;border-radius:2px;color:#3a1809;display:flex;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden;transition:.2s ease}
.tsg-civil-card:nth-child(2){background:linear-gradient(145deg,#fff7b8,#e5b94a 58%,#7c3d26)}
.tsg-civil-card:nth-child(3){background:linear-gradient(145deg,#f7e1a5,#c77c3f 58%,#3b1e7b)}
.tsg-civil-card:hover{transform:translateY(-5px);box-shadow:var(--tsg-shadow)}
.tsg-civil-card__icon{position:absolute;right:26px;top:24px;width:90px;height:90px;color:rgba(59,30,123,.75)}
.tsg-civil-card h3{font-size:30px;line-height:1.08;margin:0 0 18px}
.tsg-civil-card>span:last-child{font-size:13px;font-weight:700}

/* News */
.tsg-news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.tsg-news-card{border:1px solid #eceaf1;background:#fff;overflow:hidden}
.tsg-news-card__image{display:block;height:240px;overflow:hidden;background:#eee}
.tsg-news-card__image img{width:100%;height:100%;object-fit:cover;transition:.25s ease}
.tsg-news-card:hover .tsg-news-card__image img{transform:scale(1.03)}
.tsg-news-card__body{padding:26px}
.tsg-news-card time{font-size:12px;color:var(--tsg-secondary);font-weight:700}
.tsg-news-card h2{font-size:23px;line-height:1.25;margin:10px 0 12px}.tsg-news-card h2 a{text-decoration:none;color:var(--tsg-primary)}
.tsg-news-card p{color:#666;line-height:1.6;font-size:14px;margin:0}
.tsg-empty-panel{grid-column:1/-1;padding:50px;background:#f7f6f9;text-align:center}
.tsg-event-grid--page{grid-template-columns:repeat(4,1fr)}

/* Démarches */
.tsg-demarches-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px}
.tsg-demarche-card{display:grid;grid-template-columns:250px 1fr;background:var(--tsg-surface);text-decoration:none;min-height:300px;overflow:hidden;transition:.2s ease}
.tsg-demarche-card:hover{transform:translateY(-4px);box-shadow:var(--tsg-shadow)}
.tsg-demarche-card>img{width:100%;height:100%;object-fit:cover;object-position:center bottom}
.tsg-demarche-card>div{padding:34px;align-self:center}
.tsg-demarche-card h2{font-size:28px;color:var(--tsg-primary);margin:0 0 14px}
.tsg-demarche-card p{font-size:14px;line-height:1.6;color:#615b6d;margin:0 0 24px}
.tsg-demarche-card span{font-weight:700;color:var(--tsg-secondary);font-size:13px}

/* Vivre / contact */
.tsg-vivre-hero{min-height:540px;background-size:cover;background-position:center;display:flex;align-items:flex-end;color:#fff;padding:80px 0}
.tsg-vivre-hero h1{font-size:clamp(50px,5vw,82px);margin:8px 0 18px;line-height:1}.tsg-vivre-hero p{font-size:20px;max-width:700px;margin:0}
.tsg-contact-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:30px}
.tsg-contact-card{padding:38px;background:#f7f6f9;border-left:5px solid var(--tsg-secondary)}
.tsg-contact-card h2{color:var(--tsg-primary);font-size:28px;margin:0 0 18px}.tsg-contact-card p{line-height:1.7}.tsg-contact-card a{color:var(--tsg-primary);font-weight:700}
.tsg-empty{color:#777;font-size:14px}

/* Footer */
.tsg-footer{background:var(--tsg-primary);color:#fff;padding-top:64px}
.tsg-footer__main{display:grid;grid-template-columns:1.25fr 1fr .65fr;gap:72px;align-items:center;padding-bottom:54px}
.tsg-footer__identity{display:grid;grid-template-columns:170px 1fr;gap:32px;align-items:start}
.tsg-footer__crest{width:150px;max-height:190px;object-fit:contain}
.tsg-footer h2{color:#fff;font-size:23px;margin:0 0 14px;line-height:1.2}
.tsg-footer p{font-size:12px;line-height:1.55;margin:5px 0;color:#fff}
.tsg-footer__address{margin-top:20px!important}
.tsg-contact-line{display:flex;align-items:center;gap:10px}.tsg-contact-line svg{width:20px;height:20px}.tsg-contact-line a{color:#fff;text-decoration:none}
.tsg-newsletter h2{display:flex;align-items:center;gap:15px;font-size:36px;font-weight:400}.tsg-newsletter h2 svg{width:42px;height:42px}
.tsg-newsletter__field{display:grid;grid-template-columns:1fr 46px;background:#fff;border-radius:999px;overflow:hidden;margin-top:10px;max-width:430px}
.tsg-newsletter__field input{min-height:52px;border:0;padding:0 24px;font:inherit;font-size:13px;color:var(--tsg-secondary);outline:0}.tsg-newsletter__field button{border:0;background:#fff;color:var(--tsg-secondary);font-size:24px;cursor:pointer}
.tsg-form-message{margin-top:10px!important;color:#fff7b8!important}
.tsg-footer__social{justify-self:end;display:flex;flex-direction:column;align-items:flex-end;gap:12px}
.tsg-social-row{display:flex;gap:16px;margin-bottom:18px}.tsg-social-row a{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#fff;color:var(--tsg-secondary);text-decoration:none;font-weight:800;font-size:19px}
.tsg-footer-link{font-size:13px;color:#fff!important;text-decoration:none}
.tsg-footer__bottom{background:#fff;color:var(--tsg-secondary)}
.tsg-footer__bottom-inner{min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.tsg-footer__bottom a{color:var(--tsg-secondary)!important;text-decoration:none;font-size:10px;font-weight:600}

@media(max-width:1400px){
  .tsg-nav{gap:20px}.tsg-nav__link{font-size:11px}.tsg-submenu a{font-size:12px}
  .tsg-hero__grid{grid-template-columns:minmax(0,1.1fr) minmax(430px,.9fr);gap:42px}.tsg-hero__visual{height:610px}.tsg-hero__copy{padding-top:58px}.tsg-quicklinks{margin-top:68px}
  .tsg-event-grid{gap:22px}.tsg-event-card__image{height:165px}
  .tsg-footer__main{gap:40px}.tsg-footer__identity{grid-template-columns:130px 1fr}.tsg-footer__crest{width:120px}
}
@media(max-width:1120px){
  .tsg-container{width:min(var(--tsg-max),calc(100% - 40px))}
  .tsg-header__inner{height:98px;gap:18px}.tsg-brand img{width:52px}.tsg-brand__text{display:none}.tsg-nav{display:none}.tsg-header__tools{margin-left:auto}.tsg-menu-btn{display:grid;margin-left:2px}
  .tsg-content-hero__grid{grid-template-columns:1fr minmax(340px,.85fr);min-height:360px}.tsg-content-hero__copy{padding:48px 42px}.tsg-content-hero__media,.tsg-content-hero__media img{min-height:360px}
  .tsg-hero{padding-top:40px}.tsg-hero__grid{grid-template-columns:1fr;gap:34px}.tsg-hero__copy{padding-top:20px}.tsg-hero h1{font-size:64px;max-width:900px}.tsg-hero__visual{height:560px}.tsg-quicklinks{margin-top:45px}
  .tsg-services__grid{grid-template-columns:repeat(2,1fr)}
  .tsg-news-feature__inner{grid-template-columns:1fr 1fr}.tsg-blob{width:245px;height:235px}.tsg-news-feature h2{font-size:42px}.tsg-news-feature__copy{padding-right:40px}
  .tsg-home-agenda__grid{grid-template-columns:1fr;gap:30px}.tsg-home-agenda__intro p{max-width:400px}.tsg-event-grid{grid-template-columns:repeat(2,1fr)}.tsg-event-card__image{height:240px}
  .tsg-elected-layout{grid-template-columns:1fr}.tsg-summary{position:static;display:none}.tsg-elected-search__grid{grid-template-columns:1fr 1fr}.tsg-elected-grid{grid-template-columns:1fr}.tsg-elected-card{grid-column:auto}
  .tsg-news-grid{grid-template-columns:repeat(2,1fr)}.tsg-event-grid--page{grid-template-columns:repeat(2,1fr)}
  .tsg-demarches-grid{grid-template-columns:1fr}
  .tsg-footer__main{grid-template-columns:1fr 1fr}.tsg-footer__social{grid-column:1/-1;justify-self:start;align-items:flex-start}
}
@media(max-width:720px){
  .tsg-container{width:calc(100% - 28px)}
  .tsg-header__inner{height:82px;gap:12px}.tsg-brand img{width:46px}.tsg-header__tools{gap:6px;margin-left:auto;justify-content:flex-end}.tsg-icon-btn,.tsg-menu-btn{width:36px;height:36px}
  .tsg-mobile-nav__inner{max-height:calc(100vh - 82px)}.tsg-mobile-nav__children{grid-template-columns:1fr}
  .tsg-content-hero{padding:18px 0 8px}.tsg-content-hero__grid{grid-template-columns:1fr}.tsg-content-hero__copy{padding:36px 24px}.tsg-content-hero__copy h1{font-size:40px}.tsg-content-hero__copy>p{font-size:15px;margin-top:18px}.tsg-content-hero__media{min-height:250px;max-height:300px}.tsg-content-hero__media img{min-height:250px;height:280px}.tsg-info-columns{display:grid!important;grid-template-columns:1fr}.tsg-info-card{min-height:0;padding:24px!important}.tsg-content-intro>p:not(.tsg-block-eyebrow){font-size:16px}
  .tsg-search-row{grid-template-columns:1fr 48px}.tsg-search-row button[type=submit]{grid-column:1/-1;min-height:46px;grid-row:2}.tsg-search-row .tsg-search-close{grid-column:2;grid-row:1}
  .tsg-hero{padding:28px 0 30px}.tsg-hero__copy{padding-top:8px}.tsg-hero h1{font-size:45px;line-height:1.04}.tsg-hero__copy>p{font-size:14px;line-height:1.62;margin-top:24px}.tsg-hero__visual{height:430px}.tsg-hero__visual img{max-height:420px;max-width:95%}
  .tsg-quicklinks{grid-template-columns:1fr 1fr;margin-top:32px}.tsg-quicklinks a{min-height:84px;font-size:12px}.tsg-quicklinks a:nth-child(2):after{display:none}
  .tsg-services{padding-bottom:28px}.tsg-services__grid{grid-template-columns:1fr;gap:10px}.tsg-service-card{min-height:420px}.tsg-service-card>img{height:275px}
  .tsg-news-feature{padding-bottom:34px}.tsg-news-feature__inner{grid-template-columns:1fr}.tsg-news-feature__art{min-height:330px}.tsg-blob{width:190px;height:180px}.tsg-blob--one{transform:rotate(-8deg) translateX(-55px)}.tsg-blob--three{transform:rotate(8deg) translateX(55px)}.tsg-news-feature__copy{padding:34px 26px 42px}.tsg-news-feature h2{font-size:38px}.tsg-news-feature p{font-size:15px}.tsg-pill-button{min-height:52px}
  .tsg-home-agenda{padding-bottom:50px}.tsg-home-agenda__intro h2{font-size:40px}.tsg-home-agenda__intro p{font-size:16px}.tsg-event-grid{grid-template-columns:1fr}.tsg-event-card__image{height:245px}
  .tsg-page-hero{padding:48px 0 36px}.tsg-page-hero h1{font-size:40px}.tsg-page-hero p{font-size:15px}.tsg-section{padding:42px 0 62px}
  .tsg-elected-search h2,.tsg-elected-group h2{font-size:34px}.tsg-elected-search__grid{grid-template-columns:1fr}.tsg-elected-card{grid-template-columns:1fr}.tsg-elected-card img,.tsg-elected-card__placeholder{width:100%;height:260px;min-height:260px}.tsg-elected-card__placeholder svg{width:75px;height:75px}
  .tsg-civil__intro h2{font-size:38px}.tsg-civil__cards{grid-template-columns:1fr}.tsg-civil-card{min-height:260px}
  .tsg-news-grid,.tsg-event-grid--page{grid-template-columns:1fr}.tsg-news-card__image{height:220px}
  .tsg-demarche-card{grid-template-columns:1fr}.tsg-demarche-card>img{height:230px}.tsg-demarche-card>div{padding:26px}
  .tsg-vivre-hero{min-height:430px;padding:50px 0}.tsg-vivre-hero h1{font-size:48px}.tsg-vivre-hero p{font-size:16px}
  .tsg-contact-grid{grid-template-columns:1fr}
  .tsg-footer{padding-top:46px}.tsg-footer__main{grid-template-columns:1fr;gap:42px}.tsg-footer__identity{grid-template-columns:100px 1fr;gap:22px}.tsg-footer__crest{width:95px}.tsg-newsletter h2{font-size:30px}.tsg-footer__social{grid-column:auto}.tsg-footer__bottom-inner{justify-content:flex-start;padding:14px 0}
}

/* Illustration assets from the original Adobe XD file keep their proportions in interior heroes. */
.tsg-content-hero__media.is-illustration{background:linear-gradient(145deg,#f5f2f8,#eee9f3);display:flex;align-items:center;justify-content:center;padding:34px}
.tsg-content-hero__media.is-illustration img{object-fit:contain;min-height:0;height:auto;max-height:360px;width:100%}

/* =========================================================
   V1.3 — Modern refresh, green identity & editable layout
   ========================================================= */
body.tsg-site-shell{background:#fdfcfe}

/* Header: contemporary glass effect when enabled. */
body.tsg-sticky-header .tsg-header{position:sticky;top:0;background:rgba(255,255,255,.94);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);transition:box-shadow .25s ease,background .25s ease;border-bottom:0}
body.admin-bar.tsg-sticky-header .tsg-header{top:32px}
.tsg-header:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,transparent,var(--tsg-secondary) 20%,var(--tsg-green) 50%,var(--tsg-primary) 80%,transparent);opacity:.22;pointer-events:none}
.tsg-header.is-scrolled{box-shadow:0 14px 42px rgba(40,22,72,.09)}
.tsg-icon-btn,.tsg-menu-btn{border-radius:12px;transition:background .2s ease,color .2s ease,transform .2s ease}
.tsg-icon-btn:hover,.tsg-menu-btn:hover{background:rgba(143,175,116,.14);color:var(--tsg-green-dark);transform:translateY(-1px)}

/* Hero: the quick-action rail now shares the same bottom baseline as the image. */
.tsg-hero{padding-top:64px;padding-bottom:var(--tsg-section-space)}
.tsg-hero__grid{grid-template-columns:minmax(0,1fr) minmax(500px,var(--tsg-hero-media-width));gap:var(--tsg-hero-gap);align-items:stretch}
.tsg-hero__copy{height:var(--tsg-hero-height);padding-top:72px;display:flex;flex-direction:column;min-width:0}
body.tsg-quicklinks-bottom .tsg-quicklinks{margin-top:auto}
.tsg-hero__visual{height:var(--tsg-hero-height);border-radius:var(--tsg-image-radius);background:linear-gradient(145deg,var(--tsg-primary) 0%,var(--tsg-green-dark) 51%,var(--tsg-secondary) 100%);box-shadow:0 28px 70px rgba(44,22,80,.13);isolation:isolate}
.tsg-hero__visual:before{content:"";position:absolute;width:64%;aspect-ratio:1;right:-20%;top:-20%;border-radius:50%;background:radial-gradient(circle,rgba(143,175,116,.48) 0%,rgba(143,175,116,.14) 43%,transparent 71%);filter:blur(2px);z-index:-1;pointer-events:none}
.tsg-hero__visual:after{background:radial-gradient(circle at 67% 15%,rgba(255,255,255,.13),transparent 34%),linear-gradient(180deg,rgba(255,255,255,.02),rgba(0,0,0,.05))}
.tsg-hero__visual img{max-width:var(--tsg-hero-image-scale);max-height:calc(var(--tsg-hero-height) - 12px);filter:drop-shadow(0 24px 28px rgba(0,0,0,.16))}
.tsg-quicklinks{margin-top:54px;border-radius:var(--tsg-card-radius);background:linear-gradient(100deg,var(--tsg-secondary) 0%,#9d493a 35%,var(--tsg-green-dark) 66%,var(--tsg-primary) 100%);box-shadow:0 20px 50px rgba(49,25,86,.13);border:1px solid rgba(255,255,255,.22)}
.tsg-quicklinks a{transition:background .2s ease,transform .2s ease}
.tsg-quicklinks a:hover{background:rgba(255,255,255,.10);transform:translateY(-2px)}

/* Consistent premium rounding across photographic surfaces. */
.tsg-service-card,.tsg-news-feature__inner,.tsg-content-hero__grid,.tsg-demarche-card,.tsg-news-card,.tsg-elected-card,.tsg-contact-card{border-radius:var(--tsg-card-radius)}
.tsg-event-card__image,.tsg-news-card__image,.tsg-content-hero__media,.tsg-demarche-card>img,.tsg-editor-content img,.tsg-media-rounded{border-radius:var(--tsg-image-radius)}
.tsg-service-card{overflow:hidden;border:1px solid rgba(59,30,123,.07);box-shadow:0 10px 34px rgba(45,24,75,.045);position:relative}
.tsg-service-card:before{content:"";position:absolute;left:0;top:0;width:100%;height:4px;background:var(--tsg-secondary);z-index:2}
.tsg-service-card:nth-child(even):before{background:var(--tsg-green)}
.tsg-service-card>img{border-radius:0 0 var(--tsg-card-radius) var(--tsg-card-radius)}
.tsg-service-card:hover{transform:translateY(-6px);box-shadow:0 24px 62px rgba(42,20,79,.11)}
.tsg-event-card__image,.tsg-news-card__image{box-shadow:0 12px 34px rgba(42,24,70,.07)}
.tsg-content-hero__grid{box-shadow:0 18px 58px rgba(42,23,73,.07)}
.tsg-editor-content .wp-block-image img{border-radius:var(--tsg-image-radius)}

/* Green from the minaret becomes a real secondary identity color. */
.tsg-page-hero__line{width:92px;height:7px;border-radius:999px;background:linear-gradient(90deg,var(--tsg-secondary),var(--tsg-green))}
.tsg-eyebrow,.tsg-block-eyebrow{color:var(--tsg-green-dark)!important}
.tsg-info-card:nth-child(even){border-top-color:var(--tsg-green)}
.tsg-contact-card:nth-child(even){border-left-color:var(--tsg-green)}
.tsg-pill-button{box-shadow:inset 0 0 0 1px rgba(82,110,65,.18)}
.tsg-pill-button:hover{color:var(--tsg-green-dark)!important}
.tsg-news-feature__inner{background:linear-gradient(110deg,var(--tsg-primary) 0%,var(--tsg-green-dark) 50%,var(--tsg-secondary) 100%)}
.tsg-footer{background:linear-gradient(118deg,var(--tsg-primary) 0%,#45265f 42%,var(--tsg-green-dark) 100%)}
.tsg-footer__bottom{border-top:4px solid var(--tsg-green)}

/* Section rhythm is managed in WordPress. */
.tsg-services{padding-bottom:var(--tsg-section-space)}
.tsg-news-feature{padding-bottom:var(--tsg-section-space)}
.tsg-home-agenda{padding-bottom:calc(var(--tsg-section-space) + 28px)}

/* Light entrance motion. JS adds .is-visible only when the module enters the viewport. */
body.tsg-motion-enabled .tsg-reveal{opacity:0;transform:translateY(var(--tsg-motion-distance));transition:opacity var(--tsg-motion-speed) cubic-bezier(.2,.75,.25,1),transform var(--tsg-motion-speed) cubic-bezier(.2,.75,.25,1)}
body.tsg-motion-enabled .tsg-reveal.is-visible{opacity:1;transform:none}
body.tsg-motion-enabled .tsg-hero__visual{background-size:150% 150%;animation:tsgHeroGradient 11s ease-in-out infinite alternate}
body.tsg-motion-enabled .tsg-hero__visual img{animation:tsgMinaretEnter 850ms cubic-bezier(.2,.75,.25,1) both}
body.tsg-motion-enabled .tsg-hero__visual:before{animation:tsgGreenGlow 8s ease-in-out infinite alternate}
@keyframes tsgMinaretEnter{from{opacity:0;transform:translateY(28px) scale(.985)}to{opacity:1;transform:translateY(4px) scale(1)}}
@keyframes tsgHeroGradient{0%{background-position:0% 30%}100%{background-position:100% 70%}}
@keyframes tsgGreenGlow{0%{transform:translate3d(-10px,-5px,0) scale(.94);opacity:.68}100%{transform:translate3d(12px,12px,0) scale(1.07);opacity:1}}

/* Small progressive delays, kept deliberately subtle. */
body.tsg-motion-enabled .tsg-service-card:nth-child(2),body.tsg-motion-enabled .tsg-event-card:nth-child(2){transition-delay:70ms}
body.tsg-motion-enabled .tsg-service-card:nth-child(3),body.tsg-motion-enabled .tsg-event-card:nth-child(3){transition-delay:140ms}
body.tsg-motion-enabled .tsg-service-card:nth-child(4),body.tsg-motion-enabled .tsg-event-card:nth-child(4){transition-delay:210ms}

@media(max-width:1120px){
  .tsg-hero__grid{grid-template-columns:1fr;gap:34px}
  .tsg-hero__copy{height:auto;padding-top:20px}
  body.tsg-quicklinks-bottom .tsg-quicklinks{margin-top:45px}
  .tsg-hero__visual{height:min(var(--tsg-hero-height),560px)}
  .tsg-hero__visual img{max-height:548px}
}
@media(max-width:782px){body.admin-bar.tsg-sticky-header .tsg-header{top:46px}}
@media(max-width:720px){
  .tsg-hero{padding-top:28px}
  .tsg-hero__copy{padding-top:8px}
  .tsg-hero__visual{height:430px;border-radius:min(var(--tsg-image-radius),24px)}
  .tsg-hero__visual img{max-height:420px;max-width:95%}
  .tsg-quicklinks{margin-top:32px;border-radius:min(var(--tsg-card-radius),22px)}
  .tsg-service-card,.tsg-news-feature__inner,.tsg-content-hero__grid,.tsg-demarche-card,.tsg-news-card,.tsg-elected-card,.tsg-contact-card{border-radius:min(var(--tsg-card-radius),22px)}
}
@media(prefers-reduced-motion:reduce){
  body.tsg-motion-enabled .tsg-reveal{opacity:1!important;transform:none!important;transition:none!important}
  body.tsg-motion-enabled .tsg-hero__visual,body.tsg-motion-enabled .tsg-hero__visual img,body.tsg-motion-enabled .tsg-hero__visual:before{animation:none!important}
  .tsg-site-shell *{scroll-behavior:auto!important}
}

/* V1.3.1 — hard visual refresh / cache-safe overrides */
.tsg-hero__grid{align-items:stretch!important}
.tsg-hero__copy{height:var(--tsg-hero-height)!important;display:grid!important;grid-template-rows:auto auto 1fr auto!important;align-content:stretch!important;padding-top:72px!important}
.tsg-hero__copy>p{margin-bottom:0!important}
body.tsg-quicklinks-bottom .tsg-quicklinks{margin-top:0!important;align-self:end!important;width:100%!important}
.tsg-hero__visual{position:relative!important;overflow:hidden!important;border-radius:var(--tsg-image-radius)!important;background:linear-gradient(145deg,var(--tsg-primary) 0%,#4d396c 28%,var(--tsg-green-dark) 58%,var(--tsg-secondary) 100%)!important}
.tsg-hero__visual:before{z-index:0!important;right:-8%!important;top:-10%!important;width:72%!important;background:radial-gradient(circle,rgba(143,175,116,.68) 0%,rgba(143,175,116,.24) 42%,transparent 72%)!important}
.tsg-hero__visual:after{z-index:0!important;content:""!important;position:absolute!important;inset:0!important;background:linear-gradient(125deg,rgba(255,255,255,.09),transparent 32%),radial-gradient(circle at 68% 15%,rgba(255,255,255,.18),transparent 30%)!important}
.tsg-hero__visual img{position:relative!important;z-index:2!important}
.tsg-quicklinks{overflow:hidden!important;border-radius:var(--tsg-card-radius)!important;background:linear-gradient(100deg,var(--tsg-secondary) 0%,#b54931 33%,var(--tsg-green-dark) 68%,var(--tsg-primary) 100%)!important}
.tsg-service-card img,.tsg-event-card__image,.tsg-news-card__image,.tsg-content-hero__media img,.tsg-editor-content img,.tsg-demarche-card img{border-radius:var(--tsg-image-radius)!important}
.tsg-service-card,.tsg-event-card,.tsg-news-card,.tsg-info-card,.tsg-demarche-card,.tsg-contact-card,.tsg-elected-card{border-radius:var(--tsg-card-radius)!important}
.tsg-service-card:nth-child(2n){box-shadow:inset 0 4px 0 var(--tsg-green),0 14px 34px rgba(42,23,73,.06)!important}
.tsg-page-hero__line{background:linear-gradient(90deg,var(--tsg-secondary),var(--tsg-green),var(--tsg-primary))!important}
@media(max-width:1120px){.tsg-hero__copy{height:auto!important;display:flex!important;padding-top:20px!important}body.tsg-quicklinks-bottom .tsg-quicklinks{margin-top:45px!important;align-self:auto!important}}


/* V1.3.2 — cartes démarches illustrées */
.tsg-demarche-card{
  background:linear-gradient(145deg,rgba(59,30,123,.055),rgba(255,255,255,.98) 64%)!important;
  border:1px solid rgba(59,30,123,.09);
}
.tsg-demarches-grid .tsg-demarche-card:nth-child(even),
.tsg-demarche-card.is-green{
  background:linear-gradient(145deg,rgba(143,175,116,.13),rgba(255,255,255,.98) 66%)!important;
  border-color:rgba(82,110,65,.14);
}


/* =========================================================
   V1.3.3 — Service cards premium, palette Adobe XD d'origine
   =========================================================
   Fond pastel violet / vert comme la maquette validée.
   Violet #3B1E7B + orange #DA4816 restent les couleurs de marque.
*/
.tsg-services__grid{gap:22px!important;align-items:stretch}
.tsg-service-card{
  min-height:590px!important;
  display:flex!important;
  flex-direction:column!important;
  position:relative!important;
  overflow:hidden!important;
  isolation:isolate;
  border:1px solid rgba(82,110,65,.18)!important;
  border-top:5px solid var(--tsg-green)!important;
  background:
    radial-gradient(circle at 86% 16%,rgba(143,175,116,.16),transparent 31%),
    linear-gradient(145deg,#fbfff9 0%,#eff8eb 52%,#fff 100%)!important;
  box-shadow:0 16px 44px rgba(54,30,94,.075)!important;
  transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease!important;
}
/* Cartes 2 et 4 : pastel violet — Signaler une anomalie reste violet. */
.tsg-service-card:nth-child(even){
  box-shadow:0 16px 44px rgba(54,30,94,.075)!important;
  border-color:rgba(59,30,123,.13)!important;
  border-top-color:#8764d8!important;
  background:
    radial-gradient(circle at 84% 17%,rgba(104,72,190,.11),transparent 31%),
    linear-gradient(145deg,#fcfaff 0%,#f2edff 52%,#fff 100%)!important;
}
.tsg-service-card:before{display:none!important}
.tsg-service-card:after{
  content:"";position:absolute;inset:auto -18% 86px -18%;height:46%;z-index:-1;
  border-radius:50% 50% 0 0/48% 48% 0 0;
  background:rgba(143,175,116,.075);pointer-events:none;
}
.tsg-service-card:nth-child(even):after{background:rgba(91,57,177,.055)}
.tsg-service-card:hover{transform:translateY(-7px)!important;box-shadow:0 26px 70px rgba(48,24,88,.13)!important}
.tsg-service-card__copy{padding:38px 34px 10px!important;min-height:185px!important;text-align:center!important}
.tsg-service-card h2{font-size:clamp(24px,1.55vw,31px)!important;line-height:1.12!important;margin-bottom:16px!important;color:var(--tsg-primary)!important;letter-spacing:-.02em}
.tsg-service-card p{max-width:330px!important;font-size:14px!important;line-height:1.62!important;color:#493c69!important}
.tsg-service-card__art{display:flex;align-items:flex-end;justify-content:center;flex:1;min-height:275px;padding:0 20px 6px;overflow:hidden}
.tsg-service-card__art img{
  width:100%!important;height:auto!important;max-height:310px!important;object-fit:contain!important;object-position:center bottom!important;
  display:block!important;margin:0 auto!important;border-radius:0!important;
  filter:drop-shadow(0 14px 20px rgba(49,28,76,.08));
  transform:translateZ(0);image-rendering:auto;
}
/* CTA : couleurs fortes de la maquette Adobe d'origine, violet + orange. */
.tsg-service-card__cta{
  margin:8px 22px 22px;min-height:62px;padding:11px 13px 11px 24px;border-radius:18px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  background:linear-gradient(105deg,var(--tsg-secondary),#c63c2c);color:#fff!important;
  font-size:14px;font-weight:700;box-shadow:0 12px 28px rgba(218,72,22,.17);
}
.tsg-service-card:nth-child(even) .tsg-service-card__cta{
  background:linear-gradient(105deg,var(--tsg-primary),#5f2fc0);
  box-shadow:0 12px 28px rgba(59,30,123,.18)
}
.tsg-service-card__cta b{width:38px;height:38px;flex:0 0 38px;border-radius:50%;display:grid;place-items:center;background:#fff;font-size:23px;font-weight:500}
.tsg-service-card .tsg-service-card__cta b{color:var(--tsg-secondary)}
.tsg-service-card:nth-child(even) .tsg-service-card__cta b{color:var(--tsg-primary)}

/* Palette globale recentrée sur les couleurs de la première maquette XD. */
.tsg-news-feature__inner{background:linear-gradient(108deg,var(--tsg-primary) 0%,#6a2b61 54%,var(--tsg-secondary) 100%)!important}
.tsg-footer{background:linear-gradient(118deg,var(--tsg-primary) 0%,#4f256d 72%,#3a245d 100%)!important}
.tsg-quicklinks{background:linear-gradient(100deg,var(--tsg-secondary) 0%,#b43c2d 42%,var(--tsg-primary) 100%)!important}
.tsg-hero__visual{background:linear-gradient(145deg,var(--tsg-primary) 0%,#5b2b69 52%,var(--tsg-secondary) 100%)!important}
.tsg-hero__visual:before{background:radial-gradient(circle,rgba(143,175,116,.48) 0%,rgba(143,175,116,.12) 42%,transparent 72%)!important}

@media(max-width:1120px){
  .tsg-services__grid{gap:18px!important}
  .tsg-service-card{min-height:560px!important}
  .tsg-service-card__art img{max-height:300px!important}
}
@media(max-width:720px){
  .tsg-services__grid{gap:22px!important}
  .tsg-service-card{min-height:0!important;border-radius:28px!important}
  .tsg-service-card__copy{padding:34px 24px 10px!important;min-height:0!important}
  .tsg-service-card h2{font-size:31px!important;line-height:1.12!important}
  .tsg-service-card p{font-size:15px!important;line-height:1.55!important;max-width:430px!important}
  .tsg-service-card__art{min-height:330px;padding:12px 18px 0!important}
  .tsg-service-card__art img{max-height:340px!important;width:100%!important}
  .tsg-service-card__cta{margin:14px 18px 18px;min-height:60px;border-radius:17px;padding-left:20px;font-size:14px}
}

/* =========================================================
   V1.5.0 — RETOUR STRICT À LA MAQUETTE ADOBE XD
   Référence : artboard 89410fb2-605e-486d-b214-76b608798790
   Palette source : violet #3B1E7B / orange #DA4816
   ========================================================= */
body.tsg-xd-reference{--tsg-primary:#3B1E7B;--tsg-secondary:#DA4816;--tsg-surface:#F3F3F3;--tsg-text:#1C0C3A;background:#fff;color:#1C0C3A}
body.tsg-xd-reference .tsg-container{width:min(1640px,calc(100% - 64px))}

/* Header source XD : blason seul, navigation légère et aérée. */
body.tsg-xd-reference .tsg-header{background:#fff;border-bottom:0;box-shadow:none}
body.tsg-xd-reference .tsg-header__inner{height:118px;gap:58px}
body.tsg-xd-reference .tsg-brand img{width:58px;max-height:88px}
body.tsg-xd-reference .tsg-brand__text{display:none!important}
body.tsg-xd-reference .tsg-nav{justify-content:flex-start;gap:42px}
body.tsg-xd-reference .tsg-nav__item{min-height:118px}
body.tsg-xd-reference .tsg-nav__link{font-size:13px;font-weight:500;color:#3B1E7B}
body.tsg-xd-reference .tsg-nav__link.is-accent{padding:8px 17px;border:2px solid #DA4816;border-radius:999px;color:#DA4816;background:#fff}
body.tsg-xd-reference .tsg-header__tools{gap:10px}
body.tsg-xd-reference .tsg-icon-btn,body.tsg-xd-reference .tsg-menu-btn{color:#3B1E7B}

/* Accueil : proportions et alignements de l'artboard Adobe XD. */
body.tsg-layout-home .tsg-hero{padding:20px 0 46px!important}
body.tsg-layout-home .tsg-hero__grid{grid-template-columns:minmax(0,1.23fr) minmax(520px,.95fr)!important;gap:70px!important;align-items:stretch!important}
body.tsg-layout-home .tsg-hero__copy{height:666px!important;padding-top:105px!important;display:grid!important;grid-template-rows:auto auto 1fr auto!important;align-content:stretch!important}
body.tsg-layout-home .tsg-hero h1{max-width:850px!important;margin:0!important;color:#DA4816!important;font-family:"Kannada MN",Georgia,"Times New Roman",serif!important;font-size:clamp(58px,4.1vw,79px)!important;line-height:1.00!important;letter-spacing:.018em!important;font-weight:700!important}
body.tsg-layout-home .tsg-hero__copy>p{max-width:850px!important;margin:36px 0 0!important;color:#3B1E7B!important;font-size:16px!important;line-height:1.72!important;font-weight:400!important}
body.tsg-layout-home .tsg-hero__visual{height:666px!important;border-radius:0!important;background:linear-gradient(135deg,#3B1E7B 0%,#733153 54%,#DA4816 100%)!important;box-shadow:none!important;overflow:hidden!important;display:flex!important;align-items:flex-end!important;justify-content:center!important}
body.tsg-layout-home .tsg-hero__visual:before{display:none!important}
body.tsg-layout-home .tsg-hero__visual:after{display:none!important}
body.tsg-layout-home .tsg-hero__visual img{position:relative!important;z-index:1!important;width:auto!important;height:auto!important;max-width:99%!important;max-height:660px!important;object-fit:contain!important;object-position:center bottom!important;padding:0!important;transform:translateY(2px)!important;filter:none!important}
body.tsg-layout-home .tsg-quicklinks{margin-top:0!important;align-self:end!important;width:100%!important;min-height:92px!important;border-radius:11px!important;border:0!important;overflow:hidden!important;background:linear-gradient(90deg,#DA4816 0%,#B63D2F 44%,#3B1E7B 100%)!important;box-shadow:none!important}
body.tsg-layout-home .tsg-quicklinks a{min-height:92px!important;padding:16px 14px!important;gap:12px!important;color:#fff!important;font-size:13px!important;font-weight:600!important;transform:none!important;background:transparent!important}
body.tsg-layout-home .tsg-quicklinks a:not(:last-child):after{top:24%!important;height:52%!important;background:rgba(255,255,255,.88)!important}
body.tsg-layout-home .tsg-quicklinks svg{width:27px!important;height:27px!important}

/* Les quatre cartes sont volontairement fidèles à la maquette : gris clair, sans pastels ni CTA. */
body.tsg-layout-home .tsg-services{padding:0 0 44px!important}
body.tsg-layout-home .tsg-services__grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:12px!important;align-items:stretch!important}
body.tsg-layout-home .tsg-service-card{min-height:448px!important;border:0!important;border-radius:0!important;background:#F3F3F3!important;box-shadow:none!important;color:#3B1E7B!important;overflow:hidden!important;transform:none!important;display:flex!important;flex-direction:column!important}
body.tsg-layout-home .tsg-service-card:before,body.tsg-layout-home .tsg-service-card:after{display:none!important}
body.tsg-layout-home .tsg-service-card:hover{transform:translateY(-2px)!important;box-shadow:0 10px 28px rgba(59,30,123,.06)!important}
body.tsg-layout-home .tsg-service-card__copy{padding:28px 20px 6px!important;min-height:156px!important;text-align:center!important}
body.tsg-layout-home .tsg-service-card h2{margin:0 0 12px!important;color:#3B1E7B!important;font-size:23px!important;line-height:1.12!important;font-weight:700!important;letter-spacing:0!important}
body.tsg-layout-home .tsg-service-card p{margin:0 auto!important;max-width:280px!important;color:#3B1E7B!important;font-size:11px!important;line-height:1.5!important}
body.tsg-layout-home .tsg-service-card__art{display:flex!important;align-items:flex-end!important;justify-content:center!important;flex:1!important;min-height:286px!important;padding:0 8px!important;overflow:hidden!important}
body.tsg-layout-home .tsg-service-card__art img{display:block!important;width:100%!important;height:auto!important;max-height:292px!important;object-fit:contain!important;object-position:center bottom!important;margin:0 auto!important;border-radius:0!important;filter:none!important}
body.tsg-layout-home .tsg-service-card__cta{display:none!important}

/* Bloc actualités : gradient et géométrie de la maquette source. */
body.tsg-layout-home .tsg-news-feature{padding:0 0 46px!important}
body.tsg-layout-home .tsg-news-feature__inner{min-height:458px!important;border-radius:0!important;box-shadow:none!important;background:linear-gradient(102deg,#3B1E7B 0%,#7B3151 51%,#DA4816 100%)!important;grid-template-columns:1fr 1.02fr!important;color:#fff!important}
body.tsg-layout-home .tsg-news-feature__art{min-height:458px!important}
body.tsg-layout-home .tsg-news-feature__copy{padding:60px 70px 60px 24px!important}
body.tsg-layout-home .tsg-news-feature h2{font-size:50px!important;color:#fff!important}
body.tsg-layout-home .tsg-news-feature p{font-size:18px!important;color:#fff!important;max-width:650px!important}
body.tsg-layout-home .tsg-pill-button{min-width:215px!important;min-height:58px!important;background:#fff!important;color:#3B1E7B!important;border-radius:999px!important;box-shadow:none!important}

/* Agenda source : titre à gauche, quatre cartes à droite. */
body.tsg-layout-home .tsg-home-agenda{padding:0 0 78px!important}
body.tsg-layout-home .tsg-home-agenda__grid{grid-template-columns:300px 1fr!important;gap:72px!important;align-items:start!important}
body.tsg-layout-home .tsg-home-agenda__intro h2{color:#DA4816!important;font-size:46px!important}
body.tsg-layout-home .tsg-home-agenda__intro p{color:#3B1E7B!important;font-size:18px!important}
body.tsg-layout-home .tsg-event-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:34px!important}
body.tsg-layout-home .tsg-event-card__image{height:190px!important;border-radius:0!important;box-shadow:none!important}
body.tsg-layout-home .tsg-event-card h3{color:#3B1E7B!important}
body.tsg-layout-home .tsg-event-tag{background:#DA4816!important}

/* Footer de l'artboard : violet plein, barre blanche légale. */
body.tsg-xd-reference .tsg-footer{background:#3B1E7B!important;color:#fff!important}
body.tsg-xd-reference .tsg-footer__bottom{background:#fff!important;border-top:0!important;color:#DA4816!important}
body.tsg-xd-reference .tsg-footer__bottom a{color:#DA4816!important}

/* Légère animation d'entrée : elle ne change ni les couleurs ni la disposition source. */
body.tsg-layout-home.tsg-motion-enabled .tsg-hero__visual{animation:none!important;background-size:auto!important}
body.tsg-layout-home.tsg-motion-enabled .tsg-hero__visual:before{animation:none!important}
body.tsg-layout-home.tsg-motion-enabled .tsg-hero__visual img{animation:tsgXDMinaret .7s cubic-bezier(.2,.75,.25,1) both!important}
@keyframes tsgXDMinaret{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(2px)}}

@media(max-width:1120px){
  body.tsg-xd-reference .tsg-header__inner{height:98px;gap:24px}
  body.tsg-xd-reference .tsg-brand img{width:54px}
  body.tsg-layout-home .tsg-hero__grid{grid-template-columns:1fr!important;gap:28px!important}
  body.tsg-layout-home .tsg-hero__copy{height:auto!important;padding-top:28px!important;display:flex!important}
  body.tsg-layout-home .tsg-quicklinks{margin-top:42px!important;align-self:auto!important}
  body.tsg-layout-home .tsg-hero__visual{height:560px!important}
  body.tsg-layout-home .tsg-hero__visual img{max-height:554px!important}
  body.tsg-layout-home .tsg-services__grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  body.tsg-layout-home .tsg-home-agenda__grid{grid-template-columns:1fr!important;gap:30px!important}
  body.tsg-layout-home .tsg-event-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:720px){
  body.tsg-xd-reference .tsg-container{width:calc(100% - 32px)}
  body.tsg-xd-reference .tsg-header__inner{height:104px;gap:12px}
  body.tsg-xd-reference .tsg-brand img{width:55px}
  body.tsg-layout-home .tsg-hero{padding-top:14px!important}
  body.tsg-layout-home .tsg-hero__copy{padding-top:8px!important}
  body.tsg-layout-home .tsg-hero h1{font-size:47px!important;line-height:1.02!important}
  body.tsg-layout-home .tsg-hero__copy>p{font-size:15px!important;line-height:1.6!important;margin-top:24px!important}
  body.tsg-layout-home .tsg-quicklinks{grid-template-columns:repeat(2,1fr)!important;border-radius:10px!important}
  body.tsg-layout-home .tsg-quicklinks a{min-height:70px!important;justify-content:flex-start!important;padding:14px 16px!important}
  body.tsg-layout-home .tsg-quicklinks a:nth-child(2):after{display:none!important}
  body.tsg-layout-home .tsg-hero__visual{height:430px!important}
  body.tsg-layout-home .tsg-hero__visual img{max-height:426px!important;max-width:100%!important}
  body.tsg-layout-home .tsg-services__grid{grid-template-columns:1fr!important;gap:14px!important}
  body.tsg-layout-home .tsg-service-card{min-height:430px!important}
  body.tsg-layout-home .tsg-service-card__copy{padding:28px 22px 8px!important}
  body.tsg-layout-home .tsg-service-card h2{font-size:27px!important}
  body.tsg-layout-home .tsg-service-card p{font-size:13px!important;max-width:340px!important}
  body.tsg-layout-home .tsg-service-card__art img{max-height:300px!important}
  body.tsg-layout-home .tsg-news-feature__inner{grid-template-columns:1fr!important}
  body.tsg-layout-home .tsg-news-feature__copy{padding:34px 28px 42px!important}
  body.tsg-layout-home .tsg-news-feature h2{font-size:38px!important}
  body.tsg-layout-home .tsg-event-grid{grid-template-columns:1fr!important;gap:28px!important}
}


/* V1.5.1 — arrondis globaux + couleurs pilotées depuis WordPress */
body.tsg-xd-reference .tsg-hero__visual,
body.tsg-xd-reference .tsg-content-hero__grid,
body.tsg-xd-reference .tsg-content-hero__media,
body.tsg-xd-reference .tsg-news-feature__inner,
body.tsg-xd-reference .tsg-news-card,
body.tsg-xd-reference .tsg-demarche-card,
body.tsg-xd-reference .tsg-info-card,
body.tsg-xd-reference .tsg-elected-card,
body.tsg-xd-reference .tsg-contact-card,
body.tsg-xd-reference .tsg-civil-card,
body.tsg-xd-reference .tsg-event-card,
body.tsg-xd-reference .tsg-procedure-card,
body.tsg-xd-reference .tsg-portal-table,
body.tsg-xd-reference .tsg-admin-panel{border-radius:var(--tsg-card-radius,28px)!important;overflow:hidden}
body.tsg-xd-reference .tsg-quicklinks{border-radius:var(--tsg-card-radius,28px)!important;background:linear-gradient(90deg,var(--tsg-quickbar-start,#DA4816) 0%,var(--tsg-quickbar-end,#3B1E7B) 100%)!important}
body.tsg-xd-reference .tsg-news-feature__inner{background:linear-gradient(102deg,var(--tsg-newsbar-start,#3B1E7B) 0%,var(--tsg-newsbar-end,#DA4816) 100%)!important}
body.tsg-xd-reference .tsg-footer{background:var(--tsg-footer-bg,#3B1E7B)!important}
body.tsg-layout-home .tsg-service-card{border-radius:var(--tsg-card-radius,28px)!important;overflow:hidden!important}
body.tsg-layout-home .tsg-service-card:nth-child(1){background:var(--tsg-service-card-1,#F3F3F3)!important}
body.tsg-layout-home .tsg-service-card:nth-child(2){background:var(--tsg-service-card-2,#F3F3F3)!important}
body.tsg-layout-home .tsg-service-card:nth-child(3){background:var(--tsg-service-card-3,#F3F3F3)!important}
body.tsg-layout-home .tsg-service-card:nth-child(4){background:var(--tsg-service-card-4,#F3F3F3)!important}
body.tsg-layout-home .tsg-service-card__art img,
body.tsg-xd-reference .tsg-news-card__image,
body.tsg-xd-reference .tsg-news-card__image img,
body.tsg-xd-reference .tsg-event-card__image,
body.tsg-xd-reference .tsg-event-card__image img,
body.tsg-xd-reference .tsg-content-hero__media img,
body.tsg-xd-reference .tsg-editor-content .wp-block-image img{border-radius:var(--tsg-image-radius,28px)!important}
body.tsg-xd-reference .tsg-procedure-catalog .tsg-procedure-card{background:var(--tsg-procedure-card-a,#F7F4FC)!important}
body.tsg-xd-reference .tsg-procedure-catalog .tsg-procedure-card:nth-child(even){background:var(--tsg-procedure-card-b,#F4F8F1)!important}
body.tsg-xd-reference .tsg-page-hero__line{border-radius:999px!important}
@media(max-width:760px){body.tsg-xd-reference .tsg-quicklinks,body.tsg-layout-home .tsg-service-card,body.tsg-xd-reference .tsg-news-feature__inner{border-radius:calc(var(--tsg-card-radius,28px) * .82)!important}}

/* V1.5.2 — Carte interactive de Tsingoni */
.tsg-explore-map{padding:var(--tsg-section-space,50px) 0 72px;background:linear-gradient(180deg,#fff 0%,#fcfbfe 100%)}
.tsg-explore-map__heading{display:flex;align-items:flex-end;justify-content:space-between;gap:36px;margin-bottom:28px}
.tsg-explore-map__heading>div:first-child{max-width:720px}
.tsg-explore-map__eyebrow{display:inline-block;margin-bottom:10px;font-size:12px;font-weight:700;letter-spacing:.14em;color:var(--tsg-secondary)}
.tsg-explore-map__heading h2{margin:0;color:var(--tsg-primary);font-family:Poppins,Montserrat,sans-serif;font-size:clamp(34px,3vw,54px);line-height:1.05;font-weight:700}
.tsg-explore-map__heading p{margin:14px 0 0;color:#665d73;font-size:16px;line-height:1.7;max-width:670px}
.tsg-map-filters{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.tsg-map-filters button{appearance:none;border:1px solid rgba(59,30,123,.14);background:#fff;color:var(--tsg-primary);border-radius:999px;padding:10px 15px;font:600 13px Poppins,sans-serif;cursor:pointer;transition:.2s ease;min-height:42px}
.tsg-map-filters button:hover,.tsg-map-filters button.is-active{background:var(--tsg-primary);border-color:var(--tsg-primary);color:#fff;transform:translateY(-1px)}
.tsg-map-shell{display:grid;grid-template-columns:minmax(300px,.78fr) minmax(0,1.5fr);gap:18px;align-items:stretch}
.tsg-map-detail,.tsg-map-canvas{border-radius:var(--tsg-card-radius,28px);overflow:hidden;min-width:0}
.tsg-map-detail{position:relative;display:flex;flex-direction:column;background:linear-gradient(155deg,var(--tsg-map-panel-start,#3B1E7B) 0%,#71305d 54%,var(--tsg-map-panel-end,#DA4816) 100%);color:#fff;box-shadow:0 20px 54px rgba(59,30,123,.12)}
.tsg-map-detail:after{content:"";position:absolute;width:210px;height:210px;border-radius:50%;right:-80px;bottom:-90px;background:rgba(255,255,255,.08);pointer-events:none}
.tsg-map-detail__media{height:190px;overflow:hidden;background:rgba(255,255,255,.08)}
.tsg-map-detail__media img{width:100%;height:100%;object-fit:cover;display:block}
.tsg-map-detail__body{position:relative;z-index:1;display:flex;flex-direction:column;flex:1;padding:32px 34px 28px}
.tsg-map-detail__category{align-self:flex-start;border:1px solid rgba(255,255,255,.55);border-radius:999px;padding:8px 13px;font-size:12px;font-weight:600;background:rgba(255,255,255,.08)}
.tsg-map-detail h3{margin:22px 0 12px;color:#fff;font:700 clamp(27px,2.3vw,38px)/1.08 Poppins,sans-serif}
.tsg-map-detail p{margin:0;color:rgba(255,255,255,.82);font-size:15px;line-height:1.7}
.tsg-map-detail__link{display:inline-flex;align-items:center;justify-content:space-between;gap:16px;margin-top:24px;width:max-content;max-width:100%;padding:12px 12px 12px 17px;border-radius:999px;background:#fff;color:var(--tsg-primary);font-weight:700;text-decoration:none}
.tsg-map-detail__link span{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--tsg-secondary);color:#fff}
.tsg-map-detail__nav{display:flex;align-items:center;gap:10px;margin-top:auto;padding-top:30px;color:rgba(255,255,255,.75);font-size:12px}
.tsg-map-detail__nav button{width:38px;height:38px;border:1px solid rgba(255,255,255,.38);border-radius:50%;background:rgba(255,255,255,.08);color:#fff;cursor:pointer;font-size:17px}
.tsg-map-detail__nav button:hover{background:#fff;color:var(--tsg-primary)}
.tsg-map-detail__nav span{margin:0 2px}
.tsg-map-canvas{position:relative;background:#fff;border:1px solid rgba(59,30,123,.08);box-shadow:0 20px 54px rgba(30,20,50,.07);min-height:520px;padding:20px}
.tsg-map-canvas:after{content:"";position:absolute;width:290px;height:290px;border-radius:50%;right:-65px;top:-72px;background:rgba(218,72,22,.045);pointer-events:none}
.tsg-map-canvas__label{position:absolute;z-index:4;left:26px;top:22px;background:rgba(255,255,255,.9);backdrop-filter:blur(7px);border:1px solid rgba(59,30,123,.08);box-shadow:0 8px 25px rgba(59,30,123,.07);padding:9px 12px;border-radius:10px;color:var(--tsg-primary);font-size:12px;font-weight:700}
.tsg-map-canvas__label small{font-weight:500;color:var(--tsg-secondary);margin-left:4px}
.tsg-map-controls{position:absolute;z-index:5;right:24px;top:20px;display:flex;flex-direction:column;gap:7px}
.tsg-map-controls button{width:38px;height:38px;border-radius:50%;border:1px solid rgba(59,30,123,.14);background:#fff;color:var(--tsg-primary);font-size:20px;font-weight:600;cursor:pointer;box-shadow:0 6px 16px rgba(59,30,123,.08)}
.tsg-map-controls button:hover{background:var(--tsg-primary);color:#fff}
.tsg-map-viewport{height:455px;overflow:hidden;border-radius:calc(var(--tsg-card-radius,28px) - 8px);display:grid;place-items:center;background:radial-gradient(circle at 88% 18%,rgba(218,72,22,.055),transparent 32%),#fff}
.tsg-map-stage{position:relative;width:min(100%,900px);transform-origin:center center;transition:transform .28s cubic-bezier(.2,.75,.25,1)}
.tsg-map-shape{display:block;width:100%;height:auto;filter:drop-shadow(0 12px 24px rgba(59,30,123,.05))}
.tsg-map-shape path{fill:var(--tsg-map-fill,#F9E9E3);stroke:rgba(218,72,22,.08);stroke-width:2}
.tsg-map-marker{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:5px;border:0;background:transparent;color:var(--tsg-primary);cursor:pointer;z-index:3;padding:3px;min-width:88px}
.tsg-map-marker span{position:relative;width:26px;height:26px;border:8px solid var(--marker-accent,var(--tsg-map-marker,#3B1E7B));background:#fff;border-radius:50%;box-shadow:0 6px 16px rgba(59,30,123,.2);transition:.2s ease}
.tsg-map-marker span:after{content:"";position:absolute;inset:-13px;border:2px solid var(--marker-accent,var(--tsg-map-marker,#3B1E7B));border-radius:50%;opacity:0;transform:scale(.65)}
.tsg-map-marker b{padding:3px 7px;border-radius:7px;background:rgba(255,255,255,.84);box-shadow:0 3px 8px rgba(255,255,255,.5);font-size:12px;line-height:1.2;text-align:center;white-space:nowrap;color:var(--marker-accent,var(--tsg-primary))}
.tsg-map-marker:hover span,.tsg-map-marker.is-active span{transform:scale(1.14)}
.tsg-map-marker.is-active span:after{opacity:.42;animation:tsgMapPulse 1.65s ease-out infinite}
@keyframes tsgMapPulse{0%{transform:scale(.7);opacity:.5}75%,100%{transform:scale(1.45);opacity:0}}
.tsg-map-legend{position:absolute;left:26px;right:26px;bottom:18px;z-index:4;display:flex;justify-content:space-between;align-items:center;gap:15px;color:#6e6676;font-size:11px}
.tsg-map-legend span{display:flex;align-items:center;gap:7px}.tsg-map-legend i{width:9px;height:9px;border-radius:50%;background:var(--tsg-map-marker)}
.tsg-map-place-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:14px}
.tsg-map-place{appearance:none;text-align:left;border:1px solid rgba(59,30,123,.1);background:#fff;border-radius:18px;padding:16px 17px;cursor:pointer;min-width:0;transition:.2s ease;box-shadow:0 7px 24px rgba(59,30,123,.04)}
.tsg-map-place:before{content:"";display:block;width:34px;height:3px;border-radius:999px;background:var(--place-accent,var(--tsg-primary));margin-bottom:12px}
.tsg-map-place span{display:block;color:#8a8190;font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:700}
.tsg-map-place strong{display:block;color:var(--tsg-primary);font-size:14px;line-height:1.35;margin:4px 0 8px}
.tsg-map-place small{color:var(--tsg-secondary);font-size:11px;font-weight:600}
.tsg-map-place:hover,.tsg-map-place.is-active{border-color:var(--place-accent,var(--tsg-primary));transform:translateY(-2px);box-shadow:0 12px 28px rgba(59,30,123,.08)}
.tsg-map-marker[hidden],.tsg-map-place[hidden]{display:none!important}
@media(max-width:1050px){.tsg-explore-map__heading{align-items:flex-start;flex-direction:column}.tsg-map-filters{justify-content:flex-start}.tsg-map-shell{grid-template-columns:1fr}.tsg-map-detail{min-height:330px}.tsg-map-detail__media{height:230px}.tsg-map-canvas{min-height:500px}.tsg-map-place-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.tsg-explore-map{padding:38px 0 52px}.tsg-explore-map__heading{margin-bottom:18px}.tsg-map-filters{gap:6px;overflow-x:auto;flex-wrap:nowrap;width:100%;padding-bottom:4px}.tsg-map-filters button{white-space:nowrap}.tsg-map-detail__body{padding:26px 23px 22px}.tsg-map-detail__media{height:190px}.tsg-map-canvas{padding:12px;min-height:410px}.tsg-map-viewport{height:380px}.tsg-map-canvas__label{left:16px;top:15px}.tsg-map-controls{right:16px;top:14px}.tsg-map-marker b{font-size:9px;max-width:105px;white-space:normal}.tsg-map-marker span{width:22px;height:22px;border-width:7px}.tsg-map-legend{left:16px;right:16px;bottom:12px}.tsg-map-legend small{display:none}.tsg-map-place-list{grid-template-columns:1fr 1fr;gap:8px}.tsg-map-place{padding:13px}.tsg-map-place strong{font-size:12px}}
@media(prefers-reduced-motion:reduce){.tsg-map-marker.is-active span:after{animation:none}.tsg-map-stage,.tsg-map-place,.tsg-map-marker span{transition:none}}

/* ==========================================================
   V1.6.0 — Carte immersive / navigation municipale
   Nouveau design indépendant de l'ancienne carte illustrative
   ========================================================== */
.tsg-map360{--map-a:var(--tsg-map-panel-start,#3B1E7B);--map-b:var(--tsg-map-panel-end,#DA4816);--map-pin:var(--tsg-map-marker,#3B1E7B);padding:calc(var(--tsg-section-space,50px) + 14px) 0 82px;background:linear-gradient(180deg,#fff 0%,#fbfafc 52%,#fff 100%)}
.tsg-map360__heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,420px);gap:32px;align-items:end;margin-bottom:26px}
.tsg-map360__heading>div:first-child{max-width:790px}
.tsg-map360__eyebrow{display:inline-flex;align-items:center;gap:8px;color:var(--tsg-secondary);font:700 12px/1 Poppins,sans-serif;letter-spacing:.15em;text-transform:uppercase;margin-bottom:12px}
.tsg-map360__eyebrow:before{content:"";width:30px;height:2px;border-radius:99px;background:linear-gradient(90deg,var(--map-b),var(--map-a))}
.tsg-map360__heading h2{margin:0;color:var(--tsg-primary);font:700 clamp(36px,3.5vw,58px)/1.04 Poppins,sans-serif;letter-spacing:-.035em}
.tsg-map360__heading p{max-width:760px;margin:14px 0 0;color:#665d73;font-size:16px;line-height:1.72}
.tsg-map360__hint{justify-self:end;align-self:end;display:flex;gap:10px;align-items:center;padding:12px 14px;border:1px solid rgba(59,30,123,.10);border-radius:16px;background:#fff;color:#71687c;font-size:12px;line-height:1.45;box-shadow:0 12px 34px rgba(59,30,123,.05)}
.tsg-map360__hint span{width:10px;height:10px;border-radius:50%;background:var(--tsg-green,#8FAF74);box-shadow:0 0 0 6px rgba(143,175,116,.14);flex:0 0 auto}
.tsg-map360__frame{position:relative;isolation:isolate;height:clamp(590px,63vw,760px);min-height:590px;border-radius:34px;overflow:hidden;background:#e9ecef;border:1px solid rgba(59,30,123,.10);box-shadow:0 30px 90px rgba(35,25,55,.12)}
.tsg-map360__frame:before{content:"";position:absolute;inset:0;z-index:20;pointer-events:none;border:1px solid rgba(255,255,255,.55);border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}
.tsg-map360__map{position:absolute;inset:0;z-index:1;background:#e7ece4}
.tsg-map360 .leaflet-container{font-family:Poppins,Montserrat,sans-serif;background:#e7ece4}
.tsg-map360 .leaflet-control-container .leaflet-top,.tsg-map360 .leaflet-control-container .leaflet-bottom{z-index:450}
.tsg-map360 .leaflet-control-zoom{display:none}
.tsg-map360 .leaflet-control-attribution{display:none}
.tsg-map360 .leaflet-tile-pane{filter:saturate(.9) contrast(.98)}
.tsg-map360__topbar{position:absolute;z-index:550;left:22px;right:22px;top:20px;display:flex;align-items:center;justify-content:space-between;gap:14px;pointer-events:none}
.tsg-map360__search,.tsg-map360__view{pointer-events:auto}
.tsg-map360__search{position:relative;display:grid;grid-template-columns:24px minmax(0,1fr) 34px;align-items:center;width:min(520px,64%);height:54px;padding:0 10px 0 15px;border-radius:18px;background:rgba(255,255,255,.92);border:1px solid rgba(59,30,123,.10);box-shadow:0 15px 42px rgba(31,21,46,.12);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.tsg-map360__search>span{font-size:22px;color:var(--map-a);transform:translateY(-1px)}
.tsg-map360__search input{min-width:0;width:100%;height:100%;border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;color:#281f38;font:500 14px/1 Poppins,sans-serif;padding:0 10px!important}
.tsg-map360__search input::placeholder{color:#928a9d}
.tsg-map360__search>button{width:32px;height:32px;border:0;border-radius:50%;background:rgba(59,30,123,.07);color:var(--map-a);font-size:20px;cursor:pointer}
.tsg-map360__results{position:absolute;left:0;right:0;top:62px;padding:8px;border-radius:18px;background:rgba(255,255,255,.97);border:1px solid rgba(59,30,123,.08);box-shadow:0 20px 52px rgba(31,21,46,.15);backdrop-filter:blur(18px);max-height:300px;overflow:auto}
.tsg-map360__results button{width:100%;display:grid;grid-template-columns:36px 1fr;gap:10px;align-items:center;text-align:left;border:0;background:transparent;border-radius:12px;padding:10px;cursor:pointer;color:#30253f}
.tsg-map360__results button:hover,.tsg-map360__results button:focus-visible{background:#f6f2fb;outline:none}
.tsg-map360__results i{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:color-mix(in srgb,var(--result-accent,#3B1E7B) 12%,white);color:var(--result-accent,#3B1E7B);font-style:normal;font-weight:800}
.tsg-map360__results strong{display:block;font-size:13px}.tsg-map360__results small{display:block;margin-top:2px;color:#8b8294;font-size:11px}
.tsg-map360__view{display:flex;align-items:center;gap:4px;padding:5px;border-radius:16px;background:rgba(28,24,34,.78);border:1px solid rgba(255,255,255,.16);box-shadow:0 15px 42px rgba(19,14,26,.18);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.tsg-map360__view button{border:0;background:transparent;color:rgba(255,255,255,.78);padding:10px 13px;border-radius:11px;font:600 11px/1 Poppins,sans-serif;cursor:pointer;transition:.18s ease}
.tsg-map360__view button.is-active{background:#fff;color:#2c223b;box-shadow:0 5px 14px rgba(0,0,0,.12)}
.tsg-map360__controls{position:absolute;z-index:550;right:22px;top:92px;display:flex;flex-direction:column;gap:8px}
.tsg-map360__controls button{width:46px;height:46px;border:1px solid rgba(59,30,123,.10);border-radius:15px;background:rgba(255,255,255,.94);color:var(--tsg-primary);display:grid;place-items:center;font:700 20px/1 Poppins,sans-serif;cursor:pointer;box-shadow:0 12px 28px rgba(31,21,46,.11);backdrop-filter:blur(14px);transition:.18s ease}
.tsg-map360__controls button:hover{transform:translateY(-2px);background:var(--tsg-primary);color:#fff}
.tsg-map360__controls button.is-active{background:var(--tsg-secondary);color:#fff}
.tsg-map360__legend{position:absolute;z-index:550;left:22px;bottom:22px;display:flex;gap:7px;align-items:center;max-width:calc(100% - 44px);padding:7px;border-radius:18px;background:rgba(255,255,255,.91);border:1px solid rgba(59,30,123,.09);box-shadow:0 14px 40px rgba(31,21,46,.13);backdrop-filter:blur(18px);overflow-x:auto;scrollbar-width:none}
.tsg-map360__legend::-webkit-scrollbar{display:none}
.tsg-map360__legend button{display:flex;align-items:center;gap:7px;white-space:nowrap;border:0;background:transparent;color:#665c71;border-radius:12px;padding:7px 10px;font:600 11px/1 Poppins,sans-serif;cursor:pointer;transition:.18s ease}
.tsg-map360__legend button:hover{background:#f5f1f9;color:var(--tsg-primary)}
.tsg-map360__legend button.is-active{background:#241a32;color:#fff}
.tsg-map360__legend i{width:26px;height:26px;border-radius:9px;display:grid;place-items:center;background:color-mix(in srgb,var(--legend,#3B1E7B) 12%,white);border:1px solid color-mix(in srgb,var(--legend,#3B1E7B) 18%,white);color:var(--legend,#3B1E7B);font-style:normal;font-weight:800;transition:.18s ease}
.tsg-map360__legend button.is-active i{background:var(--legend,#3B1E7B);color:#fff;border-color:transparent}
.tsg-map360__zoom-status{position:absolute;z-index:540;left:50%;bottom:88px;transform:translateX(-50%);padding:8px 12px;border-radius:999px;background:rgba(28,24,34,.78);color:#fff;font-size:10px;letter-spacing:.01em;backdrop-filter:blur(12px);opacity:.92;pointer-events:none;transition:.2s ease}
.tsg-map360__spotlight{position:absolute;z-index:560;left:22px;top:92px;width:min(370px,calc(100% - 100px));max-height:calc(100% - 190px);overflow:auto;border-radius:26px;background:rgba(255,255,255,.94);border:1px solid rgba(255,255,255,.64);box-shadow:0 24px 65px rgba(31,21,46,.18);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);animation:tsgSpotIn .28s ease both}
@keyframes tsgSpotIn{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}
.tsg-map360__spotlight[hidden]{display:none}
.tsg-map360__close{position:absolute;right:12px;top:12px;z-index:2;width:34px;height:34px;border:0;border-radius:50%;background:rgba(24,18,32,.72);color:#fff;font-size:19px;cursor:pointer}
.tsg-map360__photo{height:160px;overflow:hidden;background:#ece8f1}.tsg-map360__photo img{width:100%;height:100%;object-fit:cover;display:block}
.tsg-map360__content{padding:22px 22px 20px}
.tsg-map360__category{display:inline-flex;padding:7px 10px;border-radius:999px;background:color-mix(in srgb,var(--spot-accent,#3B1E7B) 10%,white);color:var(--spot-accent,#3B1E7B);font:700 10px/1 Poppins,sans-serif;text-transform:uppercase;letter-spacing:.08em}
.tsg-map360__spotlight h3{margin:12px 0 8px;color:#21182e;font:700 24px/1.1 Poppins,sans-serif;letter-spacing:-.025em}
.tsg-map360__spotlight p{margin:0;color:#6c6375;font-size:13px;line-height:1.65}
.tsg-map360__meta{display:flex;align-items:flex-start;gap:8px;margin-top:12px;color:#5f566a;font-size:12px;line-height:1.45}.tsg-map360__meta>span:first-child{color:var(--spot-accent,#3B1E7B);font-weight:700}.tsg-map360__meta a{color:inherit;text-decoration:none}
.tsg-map360__actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:18px}
.tsg-map360__action{min-height:42px;display:flex;align-items:center;justify-content:center;border-radius:13px;text-decoration:none!important;font:700 11px/1 Poppins,sans-serif;transition:.18s ease}
.tsg-map360__action.is-google{background:#23202a;color:#fff}.tsg-map360__action.is-waze{background:#eaf9ff;color:#117a9f;border:1px solid #d2eef8}.tsg-map360__action.is-more{grid-column:1/-1;background:linear-gradient(90deg,var(--map-a),var(--map-b));color:#fff}
.tsg-map360__action:hover{transform:translateY(-1px);filter:saturate(1.08)}
.tsg-map360__attribution{position:absolute;z-index:530;right:20px;bottom:6px;font-size:8px;color:rgba(44,34,55,.58);background:rgba(255,255,255,.72);padding:3px 6px;border-radius:5px;pointer-events:none}
.tsg-map-pin{position:relative;width:36px;height:36px;border-radius:13px 13px 13px 5px;transform:rotate(-45deg);background:var(--pin,var(--map-pin,#3B1E7B));border:3px solid #fff;box-shadow:0 9px 22px rgba(30,20,45,.24);display:grid;place-items:center;transition:.2s ease}
.tsg-map-pin>span{transform:rotate(45deg);color:#fff;font:800 13px/1 Poppins,sans-serif}
.tsg-map-pin.is-service{width:30px;height:30px;border-radius:50%;transform:none;border-width:2px}.tsg-map-pin.is-service>span{transform:none;font-size:11px}
.tsg-map-marker-wrap{background:transparent!important;border:0!important}
.tsg-map-marker-wrap.is-selected .tsg-map-pin{transform:rotate(-45deg) scale(1.16);box-shadow:0 0 0 8px color-mix(in srgb,var(--pin,var(--map-pin,#3B1E7B)) 18%,transparent),0 12px 28px rgba(30,20,45,.28)}
.tsg-map-marker-wrap.is-service.is-selected .tsg-map-pin{transform:scale(1.18)}
.tsg-map360 .leaflet-tooltip.tsg-map-tooltip{border:0;border-radius:10px;background:rgba(31,24,41,.88);color:#fff;box-shadow:0 8px 24px rgba(0,0,0,.18);padding:7px 9px;font:600 10px/1.2 Poppins,sans-serif}
.tsg-map360 .leaflet-tooltip-top:before{border-top-color:rgba(31,24,41,.88)}
.tsg-map360__frame.is-focus{position:fixed;inset:14px;z-index:999999;height:auto;border-radius:28px}
body.tsg-map-focus-open{overflow:hidden}
@media (max-width:980px){
 .tsg-map360__heading{grid-template-columns:1fr}.tsg-map360__hint{justify-self:start}
 .tsg-map360__frame{height:680px}.tsg-map360__view{display:none}.tsg-map360__search{width:min(620px,calc(100% - 70px))}
}
@media (max-width:720px){
 .tsg-map360{padding:38px 0 58px}.tsg-map360__heading{gap:18px;margin-bottom:20px}.tsg-map360__heading h2{font-size:34px}.tsg-map360__hint{font-size:11px}
 .tsg-map360__frame{height:690px;min-height:690px;border-radius:26px}
 .tsg-map360__topbar{left:12px;right:12px;top:12px}.tsg-map360__search{width:100%;height:50px;border-radius:16px}.tsg-map360__controls{right:12px;top:76px;gap:6px}.tsg-map360__controls button{width:42px;height:42px;border-radius:13px}
 .tsg-map360__spotlight{left:12px;right:12px;top:auto;bottom:76px;width:auto;max-height:330px;border-radius:22px}.tsg-map360__photo{height:110px}.tsg-map360__content{padding:18px}.tsg-map360__spotlight h3{font-size:21px}
 .tsg-map360__legend{left:12px;right:12px;bottom:12px;max-width:none;border-radius:15px}.tsg-map360__legend button{padding:6px 8px}.tsg-map360__legend button span{display:none}.tsg-map360__legend button:first-child span{display:inline}
 .tsg-map360__zoom-status{bottom:70px;font-size:9px}.tsg-map360__attribution{display:none}
 .tsg-map360__actions{grid-template-columns:1fr 1fr}
}
@media (prefers-reduced-motion:reduce){.tsg-map360 *{animation:none!important;transition:none!important}}

/* =========================================================
   V1.6.1 — Carrousel premium de l'accueil
   ========================================================= */
.tsg-showcase{position:relative;overflow:hidden;margin-top:var(--tsg-section-space);background:linear-gradient(135deg,var(--tsg-showcase-start,#2B155C) 0%,#22104e 48%,var(--tsg-showcase-end,#3B1E7B) 100%);color:#fff;padding:78px 0 66px;isolation:isolate}
.tsg-showcase:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 44%,rgba(255,255,255,.095),transparent 34%),linear-gradient(120deg,transparent 0 48%,rgba(255,255,255,.025) 48% 49%,transparent 49% 100%);pointer-events:none;z-index:-1}
.tsg-showcase__glow{position:absolute;border-radius:999px;filter:blur(2px);opacity:.6;z-index:-1;pointer-events:none}
.tsg-showcase__glow--one{width:430px;height:430px;right:-150px;top:-170px;background:radial-gradient(circle,rgba(218,72,22,.34),rgba(218,72,22,0) 68%)}
.tsg-showcase__glow--two{width:380px;height:380px;left:-160px;bottom:-190px;background:radial-gradient(circle,rgba(143,175,116,.25),rgba(143,175,116,0) 68%)}
.tsg-showcase__inner{position:relative}
.tsg-showcase__heading{text-align:center;max-width:850px;margin:0 auto 34px;padding:0 20px}
.tsg-showcase__eyebrow{display:inline-flex;align-items:center;gap:9px;font:600 12px/1 Poppins,sans-serif;letter-spacing:.17em;color:#fff;text-transform:uppercase;margin-bottom:14px}
.tsg-showcase__eyebrow:before{content:"";width:28px;height:2px;border-radius:10px;background:var(--tsg-showcase-accent,#DA4816)}
.tsg-showcase__heading h2{margin:0;font:700 clamp(36px,4.5vw,68px)/.98 Montserrat,Poppins,sans-serif;letter-spacing:-.04em;color:#fff}
.tsg-showcase__heading p{max-width:690px;margin:18px auto 0;font:400 clamp(15px,1.35vw,19px)/1.6 Poppins,sans-serif;color:rgba(255,255,255,.75)}
.tsg-showcase__stage{position:relative;height:610px;outline:none}
.tsg-showcase__stage:focus-visible{outline:2px solid rgba(255,255,255,.7);outline-offset:6px;border-radius:28px}
.tsg-showcase__viewport{position:absolute;inset:0;overflow:hidden;perspective:1400px}
.tsg-showcase-card{--slot:0;--card-scale:.58;--card-opacity:0;position:absolute;left:50%;top:50%;width:clamp(220px,20.5vw,336px);text-decoration:none;color:#fff;transform:translate(calc(-50% + (var(--slot) * clamp(238px,23vw,392px))),-50%) scale(var(--card-scale));transform-origin:center center;opacity:var(--card-opacity);transition:transform .64s cubic-bezier(.2,.75,.2,1),opacity .5s ease,filter .5s ease;filter:saturate(.72) brightness(.72);z-index:1;pointer-events:none;will-change:transform,opacity}
.tsg-showcase-card.is-active{--card-scale:1;--card-opacity:1;filter:none;z-index:5;pointer-events:auto}
.tsg-showcase-card.is-near{--card-scale:.82;--card-opacity:.62;filter:saturate(.72) brightness(.76);z-index:3;pointer-events:auto}
.tsg-showcase-card.is-far{--card-scale:.68;--card-opacity:.28;filter:saturate(.55) brightness(.62);z-index:2;pointer-events:auto}
.tsg-showcase-card.is-hidden{--card-opacity:0;pointer-events:none}
.tsg-showcase-card__media{position:relative;aspect-ratio:3/4.15;border-radius:calc(var(--tsg-card-radius) + 2px);overflow:hidden;background:#f3f3f3;box-shadow:0 22px 55px rgba(8,3,25,.38);border:1px solid rgba(255,255,255,.16);transition:box-shadow .35s ease,border-color .35s ease,transform .35s ease}
.tsg-showcase-card.is-active .tsg-showcase-card__media{border:4px solid rgba(255,255,255,.9);box-shadow:0 30px 70px rgba(8,3,25,.48),0 0 0 2px color-mix(in srgb,var(--tsg-showcase-accent,#DA4816) 68%,transparent)}
.tsg-showcase-card__media:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.02) 50%,rgba(13,5,34,.58) 100%);pointer-events:none}
.tsg-showcase-card__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .55s ease}
.tsg-showcase-card:hover .tsg-showcase-card__media img{transform:scale(1.035)}
.tsg-showcase-card__tag{position:absolute;left:16px;top:16px;z-index:2;display:inline-flex;align-items:center;min-height:29px;padding:0 12px;border-radius:999px;background:rgba(255,255,255,.9);color:var(--tsg-primary);font:700 10px/1 Poppins,sans-serif;letter-spacing:.09em;box-shadow:0 8px 20px rgba(0,0,0,.1)}
.tsg-showcase-card__open{position:absolute;right:15px;bottom:15px;z-index:2;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--tsg-showcase-accent,#DA4816);color:#fff;font:600 22px/1 Poppins,sans-serif;box-shadow:0 10px 26px rgba(0,0,0,.24);transform:translateY(5px);opacity:0;transition:opacity .3s ease,transform .3s ease}
.tsg-showcase-card.is-active .tsg-showcase-card__open{opacity:1;transform:none}
.tsg-showcase-card__meta{text-align:center;padding:18px 12px 0;transition:opacity .35s ease}
.tsg-showcase-card__meta h3{margin:0;color:#fff;font:700 clamp(20px,2vw,31px)/1.05 Montserrat,Poppins,sans-serif;letter-spacing:-.03em;text-wrap:balance}
.tsg-showcase-card__meta p{margin:10px 0 0;color:rgba(255,255,255,.67);font:400 13px/1.5 Poppins,sans-serif;min-height:40px}
.tsg-showcase-card:not(.is-active) .tsg-showcase-card__meta h3{font-size:20px;color:rgba(255,255,255,.74)}
.tsg-showcase-card:not(.is-active) .tsg-showcase-card__meta p{color:rgba(255,255,255,.38)}
.tsg-showcase__arrow{position:absolute;top:48%;z-index:9;width:54px;height:54px;border:1px solid rgba(255,255,255,.18);border-radius:50%;background:rgba(20,8,54,.75);backdrop-filter:blur(10px);color:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:0 16px 30px rgba(6,2,20,.25);transition:background .25s ease,transform .25s ease,border-color .25s ease}
.tsg-showcase__arrow span{font:300 40px/1 Montserrat,sans-serif;transform:translateY(-2px)}
.tsg-showcase__arrow.is-prev{left:calc(50% - clamp(230px,20vw,370px))}
.tsg-showcase__arrow.is-next{right:calc(50% - clamp(230px,20vw,370px))}
.tsg-showcase__arrow:hover{background:var(--tsg-showcase-accent,#DA4816);border-color:transparent;transform:scale(1.06)}
.tsg-showcase__arrow:focus-visible,.tsg-showcase__dots button:focus-visible{outline:2px solid #fff;outline-offset:3px}
.tsg-showcase__footer{display:flex;align-items:center;justify-content:center;gap:28px;margin-top:-4px;position:relative;z-index:10}
.tsg-showcase__dots{display:flex;align-items:center;gap:8px}
.tsg-showcase__dots button{width:8px;height:8px;padding:0;border:0;border-radius:999px;background:rgba(255,255,255,.32);cursor:pointer;transition:width .25s ease,background .25s ease}
.tsg-showcase__dots button.is-active{width:28px;background:var(--tsg-showcase-accent,#DA4816)}
.tsg-showcase__hint{font:500 11px/1.2 Poppins,sans-serif;color:rgba(255,255,255,.5);letter-spacing:.03em}.tsg-showcase__hint span{color:#fff}
@media(max-width:1100px){.tsg-showcase__stage{height:560px}.tsg-showcase-card{width:clamp(215px,30vw,310px);transform:translate(calc(-50% + (var(--slot) * clamp(205px,31vw,330px))),-50%) scale(var(--card-scale))}.tsg-showcase__arrow.is-prev{left:8%}.tsg-showcase__arrow.is-next{right:8%}}
@media(max-width:767px){.tsg-showcase{padding:58px 0 48px}.tsg-showcase__heading{margin-bottom:16px;padding:0 18px}.tsg-showcase__heading h2{font-size:38px}.tsg-showcase__heading p{font-size:14px}.tsg-showcase__stage{height:520px}.tsg-showcase-card{width:min(72vw,290px);transform:translate(calc(-50% + (var(--slot) * 71vw)),-50%) scale(var(--card-scale))}.tsg-showcase-card.is-near{--card-scale:.72;--card-opacity:.34}.tsg-showcase-card.is-far{--card-opacity:0;pointer-events:none}.tsg-showcase__arrow{width:46px;height:46px;top:46%}.tsg-showcase__arrow.is-prev{left:12px}.tsg-showcase__arrow.is-next{right:12px}.tsg-showcase-card__meta h3{font-size:23px}.tsg-showcase-card__meta p{font-size:12px;min-height:36px}.tsg-showcase__footer{margin-top:-8px;flex-direction:column;gap:12px}.tsg-showcase__hint{display:none}}
@media(prefers-reduced-motion:reduce){.tsg-showcase-card,.tsg-showcase-card__media img,.tsg-showcase__arrow,.tsg-showcase-card__open{transition:none!important}}

/* ============================================================
   V1.6.2 — Actualités arrondies + carte annuaire premium Tsingoni
   ============================================================ */
/* Actualités : le conteneur complet est désormais arrondi, pas seulement les images. */
.tsg-news-feature__inner{
  border-radius:36px!important;
  overflow:hidden!important;
  box-shadow:0 24px 70px rgba(48,25,76,.13);
}
.tsg-news-feature__art{overflow:hidden}
.tsg-news-grid{align-items:stretch}
.tsg-news-card{
  border-radius:30px!important;
  overflow:hidden!important;
  box-shadow:0 16px 44px rgba(41,26,64,.08);
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}
.tsg-news-card:hover{transform:translateY(-4px);box-shadow:0 24px 58px rgba(41,26,64,.13);border-color:rgba(59,30,123,.14)}
.tsg-news-card__image{border-radius:0!important}
.tsg-news-card__body{border-radius:0 0 30px 30px}
.tsg-content-hero--article .tsg-content-hero__grid{border-radius:34px!important;overflow:hidden}

/* Carte : grand panneau type dashboard, inspiré de la référence fournie. */
.tsg-map360{padding:calc(var(--tsg-section-space,50px) + 14px) 0 82px;background:#fff}
.tsg-map360__heading{margin-bottom:24px}
.tsg-map360__board{
  padding:14px 14px 18px;
  border-radius:40px;
  background:linear-gradient(145deg,#17151b 0%,#201a28 56%,#18151d 100%);
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 30px 90px rgba(34,22,51,.16);
  color:#fff;
}
.tsg-map360__frame{
  height:clamp(430px,46vw,560px);
  min-height:430px;
  border-radius:27px;
  border:1px solid rgba(255,255,255,.08);
  box-shadow:none;
  background:#242c35;
}
.tsg-map360__frame:before{border-color:rgba(255,255,255,.12);box-shadow:inset 0 0 0 1px rgba(255,255,255,.05)}
.tsg-map360__topbar{
  display:grid;
  grid-template-columns:auto minmax(260px,480px) auto;
  align-items:center;
  gap:10px;
}
.tsg-map360__map-brand{
  pointer-events:none;
  display:flex;align-items:center;gap:10px;
  min-height:48px;padding:7px 12px;
  border-radius:15px;
  background:rgba(24,20,30,.76);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 12px 30px rgba(0,0,0,.16);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)
}
.tsg-map360__map-brand>i{width:9px;height:9px;border-radius:50%;background:var(--tsg-secondary);box-shadow:0 0 0 5px rgba(218,72,22,.15)}
.tsg-map360__map-brand span{display:flex;flex-direction:column;gap:2px;min-width:0}
.tsg-map360__map-brand strong{font:700 10px/1.1 Poppins,sans-serif;color:#fff;letter-spacing:.01em;white-space:nowrap}
.tsg-map360__map-brand small{font:500 8px/1.1 Poppins,sans-serif;color:rgba(255,255,255,.58);white-space:nowrap}
.tsg-map360__search{width:auto;background:rgba(255,255,255,.94)}
.tsg-map360__view{justify-self:end}
.tsg-map360__controls button{background:rgba(27,23,33,.90);color:#fff;border-color:rgba(255,255,255,.12);box-shadow:0 10px 26px rgba(0,0,0,.16)}
.tsg-map360__controls button:hover{background:var(--tsg-secondary)}
.tsg-map360__legend{background:rgba(25,21,31,.88);border-color:rgba(255,255,255,.10)}
.tsg-map360__legend button{color:rgba(255,255,255,.72)}
.tsg-map360__legend button:hover{background:rgba(255,255,255,.09);color:#fff}
.tsg-map360__legend button.is-active{background:linear-gradient(90deg,var(--tsg-primary),#5a2d8d);color:#fff}
.tsg-map360__zoom-status{background:rgba(18,15,22,.84)}
.tsg-map360__attribution{background:rgba(20,17,25,.72);color:rgba(255,255,255,.55)}

/* Répertoire sous la carte */
.tsg-map360__directory{padding:18px 0 2px}
.tsg-map360__directory-head{
  display:grid;
  grid-template-columns:minmax(180px,250px) minmax(180px,250px) 1fr;
  gap:14px;
  align-items:end;
  padding:0 0 12px;
}
.tsg-map360__directory-head label{display:flex;flex-direction:column;gap:7px}
.tsg-map360__directory-head label>span{font:700 9px/1 Poppins,sans-serif;letter-spacing:.09em;color:rgba(255,255,255,.55)}
.tsg-map360__directory-head select{
  min-height:42px;padding:0 38px 0 13px;
  border-radius:12px;border:1px solid rgba(255,255,255,.10);
  background:#201c24;color:#fff;
  font:500 11px/1 Poppins,sans-serif;
  outline:none
}
.tsg-map360__directory-count{justify-self:end;align-self:center;color:rgba(255,255,255,.52);font:600 10px/1 Poppins,sans-serif}
.tsg-map360__place-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.tsg-map360__place-card{
  min-width:0;min-height:94px;
  display:grid;grid-template-columns:42px minmax(0,1fr) 30px;align-items:center;gap:11px;
  text-align:left;padding:15px 16px;
  border:1px solid rgba(255,255,255,.10);border-radius:18px;
  background:rgba(255,255,255,.025);color:#fff;
  cursor:pointer;transition:transform .18s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.tsg-map360__place-card:hover,.tsg-map360__place-card:focus-visible{
  transform:translateY(-2px);outline:none;background:rgba(255,255,255,.065);border-color:rgba(255,255,255,.18);box-shadow:0 12px 30px rgba(0,0,0,.13)
}
.tsg-map360__place-card.is-selected{border-color:color-mix(in srgb,var(--tsg-secondary) 65%,white);background:linear-gradient(135deg,rgba(59,30,123,.25),rgba(218,72,22,.13))}
.tsg-map360__place-dot{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;background:color-mix(in srgb,var(--place-accent,#3B1E7B) 24%,#201c24);color:#fff;font:800 13px/1 Poppins,sans-serif;border:1px solid color-mix(in srgb,var(--place-accent,#3B1E7B) 50%,transparent)}
.tsg-map360__place-copy{min-width:0;display:block}
.tsg-map360__place-copy strong{display:block;color:#fff;font:700 12px/1.25 Poppins,sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tsg-map360__place-copy small{display:block;margin-top:5px;color:rgba(255,255,255,.48);font:500 9px/1.35 Poppins,sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tsg-map360__place-arrow{justify-self:end;color:rgba(255,255,255,.35);font-size:18px;transition:.18s ease}
.tsg-map360__place-card:hover .tsg-map360__place-arrow,.tsg-map360__place-card.is-selected .tsg-map360__place-arrow{color:var(--tsg-secondary);transform:translateX(2px)}
.tsg-map360__place-card[hidden]{display:none!important}

@media (max-width:1100px){
  .tsg-map360__topbar{grid-template-columns:auto minmax(220px,1fr)}
  .tsg-map360__view{display:none}
  .tsg-map360__place-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:720px){
  .tsg-news-feature__inner{border-radius:26px!important}
  .tsg-news-card{border-radius:24px!important}
  .tsg-map360__board{padding:9px 9px 14px;border-radius:28px}
  .tsg-map360__frame{height:510px;min-height:510px;border-radius:21px}
  .tsg-map360__topbar{grid-template-columns:1fr;left:11px;right:11px;top:11px}
  .tsg-map360__map-brand{width:max-content;max-width:calc(100% - 60px)}
  .tsg-map360__search{width:100%;height:48px}
  .tsg-map360__controls{top:74px;right:11px}
  .tsg-map360__directory{padding-top:15px}
  .tsg-map360__directory-head{grid-template-columns:1fr 1fr;gap:9px}
  .tsg-map360__directory-count{grid-column:1/-1;justify-self:start;padding-left:2px}
  .tsg-map360__directory-head select{width:100%;min-height:44px}
  .tsg-map360__place-grid{grid-template-columns:1fr;gap:9px}
  .tsg-map360__place-card{min-height:80px;border-radius:16px;padding:12px 13px}
}
@media (prefers-reduced-motion:reduce){.tsg-news-card,.tsg-map360__place-card,.tsg-map360__place-arrow{transition:none!important}}

/* V1.6.4 — état actif plus lisible pour la légende cartographique */
.tsg-map360__legend button[aria-pressed="true"]{box-shadow:0 0 0 3px rgba(255,255,255,.12),0 8px 22px rgba(0,0,0,.12)}
.tsg-map360__legend button.is-active{transform:translateY(-1px)}

/* V1.6.5 — build interne 20260914-165 : cohérence de version et cache assets. */

/* V1.6.7 — correction ciblée : conteneur "Tsingoni à la une" uniquement.
   Le bloc est désormais aligné sur la largeur des autres grands conteneurs de l'accueil,
   plus compact verticalement, sans modifier le fonctionnement du carrousel ni le contenu des cartes. */
body.tsg-layout-home .tsg-showcase,
.tsg-elementor-page .tsg-showcase{
  width:min(var(--tsg-max,1640px),calc(100% - 64px));
  margin:var(--tsg-section-space,50px) auto 0!important;
  border-radius:36px;
  padding:54px 0 44px;
}
body.tsg-layout-home .tsg-showcase__heading,
.tsg-elementor-page .tsg-showcase__heading{
  margin-bottom:22px;
}
body.tsg-layout-home .tsg-showcase__heading h2,
.tsg-elementor-page .tsg-showcase__heading h2{
  font-size:clamp(34px,3.8vw,58px);
}
body.tsg-layout-home .tsg-showcase__stage,
.tsg-elementor-page .tsg-showcase__stage{
  height:520px;
}
body.tsg-layout-home .tsg-showcase-card,
.tsg-elementor-page .tsg-showcase-card{
  width:clamp(215px,18.5vw,300px);
  transform:translate(calc(-50% + (var(--slot) * clamp(220px,20.5vw,350px))),-50%) scale(var(--card-scale));
}
body.tsg-layout-home .tsg-showcase__arrow.is-prev,
.tsg-elementor-page .tsg-showcase__arrow.is-prev{left:calc(50% - clamp(215px,19vw,330px))}
body.tsg-layout-home .tsg-showcase__arrow.is-next,
.tsg-elementor-page .tsg-showcase__arrow.is-next{right:calc(50% - clamp(215px,19vw,330px))}
@media(max-width:1100px){
  body.tsg-layout-home .tsg-showcase,
  .tsg-elementor-page .tsg-showcase{width:calc(100% - 40px);border-radius:30px;padding:48px 0 40px}
  body.tsg-layout-home .tsg-showcase__stage,
  .tsg-elementor-page .tsg-showcase__stage{height:500px}
  body.tsg-layout-home .tsg-showcase-card,
  .tsg-elementor-page .tsg-showcase-card{width:clamp(210px,28vw,285px);transform:translate(calc(-50% + (var(--slot) * clamp(205px,29vw,305px))),-50%) scale(var(--card-scale))}
}
@media(max-width:767px){
  body.tsg-layout-home .tsg-showcase,
  .tsg-elementor-page .tsg-showcase{width:calc(100% - 28px);border-radius:26px;padding:42px 0 34px}
  body.tsg-layout-home .tsg-showcase__stage,
  .tsg-elementor-page .tsg-showcase__stage{height:500px}
  body.tsg-layout-home .tsg-showcase-card,
  .tsg-elementor-page .tsg-showcase-card{width:min(72vw,276px);transform:translate(calc(-50% + (var(--slot) * 71vw)),-50%) scale(var(--card-scale))}
}

/* V1.6.8 — Animation douce des cercles Actualités */
.tsg-news-feature__art{perspective:1000px}
.tsg-blob{will-change:transform,filter;animation:tsgBlobFloat 8.2s ease-in-out infinite;transform-origin:center center}
.tsg-blob::after{content:'';position:absolute;inset:-8px;border-radius:inherit;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.22),transparent 55%);opacity:.7;pointer-events:none;mix-blend-mode:screen;animation:tsgBlobGlow 5.4s ease-in-out infinite}
.tsg-blob--one{animation-delay:0s}.tsg-blob--two{animation-delay:-1.9s}.tsg-blob--three{animation-delay:-3.7s}
body.tsg-layout-home .tsg-blob--one{animation-name:tsgBlobOne!important}
body.tsg-layout-home .tsg-blob--two{animation-name:tsgBlobTwo!important}
body.tsg-layout-home .tsg-blob--three{animation-name:tsgBlobThree!important}
.tsg-news-feature__art:hover .tsg-blob{animation-play-state:paused}
@keyframes tsgBlobFloat{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-8px) scale(1.015)}}
@keyframes tsgBlobOne{0%,100%{transform:rotate(-8deg) translateX(-85px) translateY(0) scale(1)}50%{transform:rotate(-6deg) translateX(-92px) translateY(-10px) scale(1.02)}}
@keyframes tsgBlobTwo{0%,100%{transform:rotate(-2deg) translateY(0) scale(1)}50%{transform:rotate(1deg) translateY(-12px) scale(1.03)}}
@keyframes tsgBlobThree{0%,100%{transform:rotate(8deg) translateX(82px) translateY(0) scale(1)}50%{transform:rotate(6deg) translateX(88px) translateY(-8px) scale(1.018)}}
@keyframes tsgBlobGlow{0%,100%{opacity:.45;transform:scale(.98)}50%{opacity:.85;transform:scale(1.03)}}
/* V1.6.8 — Etiquette interactive de catégorie sur la carte */
.tsg-map360__selection{position:absolute;z-index:555;right:22px;bottom:22px;display:flex;align-items:center;gap:12px;max-width:min(360px,calc(100% - 44px));padding:12px 14px;border-radius:18px;background:rgba(20,16,27,.82);border:1px solid rgba(255,255,255,.10);box-shadow:0 18px 46px rgba(12,9,18,.26);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);color:#fff;animation:tsgSelectionIn .24s ease both}
.tsg-map360__selection[hidden]{display:none!important}
.tsg-map360__selection-icon{width:42px;height:42px;flex:0 0 42px;display:grid;place-items:center;border-radius:14px;background:linear-gradient(135deg,var(--selection-accent,#3B1E7B),color-mix(in srgb,var(--selection-accent,#3B1E7B) 52%,#fff));font-size:22px;box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 10px 20px rgba(0,0,0,.18)}
.tsg-map360__selection-copy{display:flex;flex-direction:column;gap:3px;min-width:0}
.tsg-map360__selection-copy strong{font:700 14px/1.15 Poppins,sans-serif;color:#fff}
.tsg-map360__selection-copy small{font:500 12px/1.4 Poppins,sans-serif;color:rgba(255,255,255,.72)}
@keyframes tsgSelectionIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:760px){.tsg-map360__selection{left:12px;right:12px;bottom:66px;max-width:none;padding:10px 12px;border-radius:16px}.tsg-map360__selection-icon{width:38px;height:38px;flex-basis:38px;font-size:20px}}
@media (prefers-reduced-motion:reduce){.tsg-blob,.tsg-blob::after,.tsg-map360__selection{animation:none!important}}

/* V1.6.10 — micro-animations uniquement, sans changement de disposition */
.tsg-news-feature__art .tsg-blob img{transition:opacity .34s ease,transform .48s ease}
.tsg-news-feature__art .tsg-blob img.is-tsg-switching{opacity:.12;transform:scale(1.025)}
.tsg-map360__photo{position:relative;cursor:default}
.tsg-map360__photo.has-gallery{cursor:pointer}
.tsg-map360__photo img{transition:opacity .28s ease,transform .45s ease}
.tsg-map360__photo img.is-tsg-switching{opacity:.08;transform:scale(1.025)}
.tsg-map360__photo-count{position:absolute;right:10px;bottom:10px;z-index:2;min-width:38px;height:26px;padding:0 9px;border-radius:999px;background:rgba(24,18,32,.68);color:#fff;display:flex;align-items:center;justify-content:center;font:700 10px/1 Poppins,sans-serif;backdrop-filter:blur(8px);pointer-events:none}
@media (prefers-reduced-motion:reduce){.tsg-news-feature__art .tsg-blob img,.tsg-map360__photo img{transition:none!important}}


/* V1.6.11 — Ajustements ciblés uniquement : image carte, boutons et carrousel À la une. */
/* 1) Fiche de lieu : image plus compacte, sans modifier la structure de la carte. */
.tsg-map360__photo{height:124px!important;border-bottom:1px solid rgba(59,30,123,.08)}
.tsg-map360__photo img{object-position:center center}
@media(max-width:720px){.tsg-map360__photo{height:104px!important}}

/* 2) Alignement cohérent des boutons textuels sur l'ensemble de l'interface Tsingoni. */
.tsg-pill-button,
.tsg-service-card__cta,
.tsg-map360__action,
.tsg-block-button .wp-block-button__link,
.tsg-search-row button,
.tsg-elected-search button,
.tsg-map-filters button{
  box-sizing:border-box;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  line-height:1.2;
  vertical-align:middle;
}
.tsg-map360__actions{align-items:stretch}
.tsg-map360__action{padding:0 14px;min-height:44px}
.tsg-pill-button{padding-top:0!important;padding-bottom:0!important}

/* 3) À la une : cartes un peu plus petites, tout en gardant la même disposition. */
body.tsg-layout-home .tsg-showcase__stage,
.tsg-elementor-page .tsg-showcase__stage{height:490px!important}
body.tsg-layout-home .tsg-showcase-card,
.tsg-elementor-page .tsg-showcase-card{
  width:clamp(205px,17vw,276px)!important;
  transform:translate3d(calc(-50% + (var(--slot) * clamp(205px,19vw,326px))),-50%,0) scale(var(--card-scale)) rotateY(calc(var(--slot) * -3deg))!important;
  transition:transform .78s cubic-bezier(.18,.82,.22,1),opacity .55s ease,filter .62s ease!important;
}
body.tsg-layout-home .tsg-showcase-card.is-near,
.tsg-elementor-page .tsg-showcase-card.is-near{--card-scale:.79!important}
body.tsg-layout-home .tsg-showcase-card.is-far,
.tsg-elementor-page .tsg-showcase-card.is-far{--card-scale:.64!important}
body.tsg-layout-home .tsg-showcase__arrow.is-prev,
.tsg-elementor-page .tsg-showcase__arrow.is-prev{left:calc(50% - clamp(205px,18vw,310px))!important}
body.tsg-layout-home .tsg-showcase__arrow.is-next,
.tsg-elementor-page .tsg-showcase__arrow.is-next{right:calc(50% - clamp(205px,18vw,310px))!important}

/* Le petit bouton orange ↗ de la carte active est retiré : la carte entière reste cliquable. */
.tsg-showcase-card__open{display:none!important}

/* 4) Transition plus premium : profondeur, lumière et focus de la carte centrale. */
.tsg-showcase-card__media{transform:translateZ(0);transition:box-shadow .72s ease,border-color .55s ease,transform .72s cubic-bezier(.18,.82,.22,1),filter .55s ease!important}
.tsg-showcase-card:not(.is-active) .tsg-showcase-card__media{transform:scale(.985);filter:saturate(.86)}
.tsg-showcase-card.is-active .tsg-showcase-card__media{
  transform:scale(1)!important;
  animation:tsgShowcaseFocus 820ms cubic-bezier(.18,.82,.22,1) both;
}
.tsg-showcase-card__media:before{
  content:"";
  position:absolute;
  z-index:3;
  inset:-35% -70%;
  background:linear-gradient(110deg,transparent 38%,rgba(255,255,255,.22) 50%,transparent 62%);
  transform:translateX(-45%) rotate(5deg);
  opacity:0;
  pointer-events:none;
}
.tsg-showcase-card.is-active .tsg-showcase-card__media:before{animation:tsgShowcaseShine 900ms 90ms ease-out both}
.tsg-showcase-card__media img{transition:transform .9s cubic-bezier(.18,.82,.22,1),filter .6s ease!important}
.tsg-showcase-card:not(.is-active) .tsg-showcase-card__media img{transform:scale(1.055)}
.tsg-showcase-card.is-active .tsg-showcase-card__media img{transform:scale(1)}
@keyframes tsgShowcaseFocus{
  0%{box-shadow:0 18px 45px rgba(8,3,25,.30);filter:brightness(.9)}
  55%{box-shadow:0 34px 82px rgba(8,3,25,.58),0 0 0 6px color-mix(in srgb,var(--tsg-showcase-accent,#DA4816) 14%,transparent);filter:brightness(1.05)}
  100%{box-shadow:0 28px 68px rgba(8,3,25,.48),0 0 0 2px color-mix(in srgb,var(--tsg-showcase-accent,#DA4816) 68%,transparent);filter:none}
}
@keyframes tsgShowcaseShine{
  0%{opacity:0;transform:translateX(-42%) rotate(5deg)}
  28%{opacity:.7}
  100%{opacity:0;transform:translateX(42%) rotate(5deg)}
}

@media(max-width:1100px){
  body.tsg-layout-home .tsg-showcase__stage,.tsg-elementor-page .tsg-showcase__stage{height:470px!important}
  body.tsg-layout-home .tsg-showcase-card,.tsg-elementor-page .tsg-showcase-card{width:clamp(195px,27vw,262px)!important;transform:translate3d(calc(-50% + (var(--slot) * clamp(190px,28vw,285px))),-50%,0) scale(var(--card-scale)) rotateY(calc(var(--slot) * -3deg))!important}
}
@media(max-width:767px){
  body.tsg-layout-home .tsg-showcase__stage,.tsg-elementor-page .tsg-showcase__stage{height:465px!important}
  body.tsg-layout-home .tsg-showcase-card,.tsg-elementor-page .tsg-showcase-card{width:min(68vw,258px)!important;transform:translate3d(calc(-50% + (var(--slot) * 69vw)),-50%,0) scale(var(--card-scale))!important}
}
@media(prefers-reduced-motion:reduce){
  .tsg-showcase-card,.tsg-showcase-card__media,.tsg-showcase-card__media:before,.tsg-showcase-card__media img{animation:none!important;transition:none!important}
}


/* V1.6.12 — Ajustements fins carte + À la une */
/* Carte : boutons/contrôles plus harmonieux, mieux placés et plus arrondis */
.tsg-map360__topbar{left:20px;right:20px;top:20px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.tsg-map360__search{width:min(560px,56vw);height:56px;border-radius:22px;padding:0 12px 0 16px}
.tsg-map360__search>button{border-radius:12px;width:34px;height:34px}
.tsg-map360__view{border-radius:20px;padding:4px;background:rgba(22,17,31,.86);border:1px solid rgba(255,255,255,.10);box-shadow:0 16px 34px rgba(0,0,0,.20)}
.tsg-map360__view button{min-width:72px;height:40px;border-radius:15px;padding:0 16px}
.tsg-map360__controls{right:18px;top:128px;gap:10px}
.tsg-map360__controls button{width:50px;height:50px;border-radius:18px;box-shadow:0 14px 30px rgba(0,0,0,.20)}
.tsg-map360__legend{left:18px;right:290px;bottom:18px;max-width:none;padding:8px 10px;border-radius:22px;gap:8px}
.tsg-map360__legend button{min-height:42px;padding:8px 12px;border-radius:14px}
.tsg-map360__selection{right:18px;bottom:18px;border-radius:22px;min-height:74px}
.tsg-map360__selection-icon{border-radius:16px}
.tsg-map360__spotlight{border-radius:28px;left:18px;top:108px;width:min(368px,calc(100% - 120px));box-shadow:0 22px 54px rgba(0,0,0,.28)}
.tsg-map360__photo{border-top-left-radius:28px;border-top-right-radius:28px;overflow:hidden}
.tsg-map360__photo-count{right:12px;bottom:12px}
.tsg-map360__action{border-radius:16px;min-height:44px}
.tsg-map360__places-grid .tsg-map360__place-card{border-radius:20px}
@media (max-width:1200px){
  .tsg-map360__legend{right:18px;bottom:96px}
  .tsg-map360__selection{left:auto;right:18px;bottom:18px;max-width:min(320px,calc(100% - 36px))}
}
@media (max-width:760px){
  .tsg-map360__topbar{left:12px;right:12px;top:12px;gap:10px}
  .tsg-map360__search{width:100%;height:50px;border-radius:18px}
  .tsg-map360__view{border-radius:16px;padding:3px}
  .tsg-map360__view button{min-width:62px;height:36px;border-radius:12px;padding:0 12px}
  .tsg-map360__spotlight{left:12px;right:12px;top:auto;bottom:88px;width:auto;max-height:336px;border-radius:24px}
  .tsg-map360__controls{right:12px;top:74px;gap:8px}
  .tsg-map360__controls button{width:44px;height:44px;border-radius:15px}
  .tsg-map360__legend{left:12px;right:12px;bottom:12px;border-radius:18px;padding:7px}
  .tsg-map360__selection{left:12px;right:12px;bottom:70px;max-width:none;border-radius:18px;min-height:auto}
}

/* À la une : cartes un peu moins hautes pour éviter qu'elles soient coupées */
body.tsg-layout-home .tsg-showcase,
.tsg-elementor-page .tsg-showcase{padding-top:58px!important;padding-bottom:48px!important}
body.tsg-layout-home .tsg-showcase__heading,
.tsg-elementor-page .tsg-showcase__heading{margin-bottom:24px!important}
body.tsg-layout-home .tsg-showcase__stage,
.tsg-elementor-page .tsg-showcase__stage{height:452px!important}
body.tsg-layout-home .tsg-showcase-card,
.tsg-elementor-page .tsg-showcase-card{width:clamp(186px,18.8vw,248px)!important;transform:translate3d(calc(-50% + (var(--slot) * clamp(182px,18.6vw,280px))),-50%,0) scale(var(--card-scale)) rotateY(calc(var(--slot) * -3deg))!important}
.tsg-showcase-card__media{aspect-ratio:3 / 3.58!important;border-radius:28px!important}
.tsg-showcase-card__tag{left:14px;top:14px;min-height:27px;padding:0 11px}
.tsg-showcase-card__meta{padding:14px 10px 0!important}
.tsg-showcase-card__meta h3{font-size:clamp(18px,1.7vw,26px)!important;line-height:1.02!important}
.tsg-showcase-card__meta p{margin-top:8px!important;font-size:12px!important;min-height:32px!important}
.tsg-showcase-card:not(.is-active) .tsg-showcase-card__meta h3{font-size:18px!important}
.tsg-showcase__arrow{top:44%!important}
.tsg-showcase__arrow.is-prev{left:calc(50% - clamp(196px,16.5vw,286px))!important}
.tsg-showcase__arrow.is-next{right:calc(50% - clamp(196px,16.5vw,286px))!important}
.tsg-showcase__footer{margin-top:8px!important;gap:18px!important}
.tsg-showcase__dots{min-height:14px}
.tsg-showcase__hint{line-height:1.3!important}
@media (max-width:1100px){
  body.tsg-layout-home .tsg-showcase__stage,.tsg-elementor-page .tsg-showcase__stage{height:440px!important}
  body.tsg-layout-home .tsg-showcase-card,.tsg-elementor-page .tsg-showcase-card{width:clamp(182px,25vw,238px)!important;transform:translate3d(calc(-50% + (var(--slot) * clamp(178px,25vw,260px))),-50%,0) scale(var(--card-scale)) rotateY(calc(var(--slot) * -2deg))!important}
  .tsg-showcase__arrow.is-prev{left:calc(50% - clamp(180px,16vw,250px))!important}
  .tsg-showcase__arrow.is-next{right:calc(50% - clamp(180px,16vw,250px))!important}
}
@media (max-width:767px){
  body.tsg-layout-home .tsg-showcase,.tsg-elementor-page .tsg-showcase{padding-top:44px!important;padding-bottom:36px!important}
  body.tsg-layout-home .tsg-showcase__stage,.tsg-elementor-page .tsg-showcase__stage{height:452px!important}
  body.tsg-layout-home .tsg-showcase-card,.tsg-elementor-page .tsg-showcase-card{width:min(64vw,236px)!important;transform:translate3d(calc(-50% + (var(--slot) * 65vw)),-50%,0) scale(var(--card-scale))!important}
  .tsg-showcase-card__media{aspect-ratio:3 / 3.68!important}
  .tsg-showcase__footer{margin-top:2px!important}
}


/* V1.6.13 — Retrait des boutons coulissants du bloc À la une */
body.tsg-layout-home .tsg-showcase__arrow,
.tsg-elementor-page .tsg-showcase__arrow{display:none!important}
body.tsg-layout-home .tsg-showcase__hint,
.tsg-elementor-page .tsg-showcase__hint{display:none!important}
body.tsg-layout-home .tsg-showcase__footer,
.tsg-elementor-page .tsg-showcase__footer{margin-top:2px!important}


/* V1.6.14 — Carte : zoom gestuel bloqué + commandes premium */
.tsg-map360__map{touch-action:pan-x pan-y}
.tsg-map360__controls{
  right:18px!important;top:126px!important;gap:7px!important;padding:8px!important;
  border-radius:24px!important;background:rgba(20,16,28,.80)!important;
  border:1px solid rgba(255,255,255,.10)!important;
  box-shadow:0 20px 44px rgba(0,0,0,.28)!important;
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)
}
.tsg-map360__controls button{
  position:relative;width:48px!important;height:48px!important;border-radius:16px!important;
  border:1px solid rgba(255,255,255,.09)!important;background:rgba(255,255,255,.075)!important;
  color:#fff!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.07)!important;
  transition:transform .2s ease,background .2s ease,border-color .2s ease,box-shadow .2s ease!important
}
.tsg-map360__controls button svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.tsg-map360__controls button.is-zoom{background:linear-gradient(145deg,rgba(59,30,123,.95),rgba(82,45,139,.9))!important;border-color:rgba(255,255,255,.12)!important}
.tsg-map360__controls button:hover,.tsg-map360__controls button:focus-visible{
  transform:translateY(-2px) scale(1.025)!important;background:linear-gradient(145deg,var(--tsg-secondary),#b43c18)!important;
  border-color:rgba(255,255,255,.25)!important;box-shadow:0 12px 24px rgba(0,0,0,.28)!important;outline:none
}
.tsg-map360__controls button:active{transform:scale(.96)!important}
.tsg-map360__controls button.is-active{background:linear-gradient(145deg,var(--tsg-secondary),#b43c18)!important}
.tsg-map360__controls-separator{display:block;height:1px;margin:2px 6px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent)}
@media (hover:hover) and (pointer:fine){
 .tsg-map360__controls button::after{content:attr(aria-label);position:absolute;right:calc(100% + 10px);top:50%;transform:translateY(-50%) translateX(5px);padding:7px 10px;border-radius:10px;background:rgba(17,13,24,.94);border:1px solid rgba(255,255,255,.10);color:#fff;font:600 10px/1 Poppins,sans-serif;white-space:nowrap;opacity:0;pointer-events:none;transition:.18s ease;box-shadow:0 10px 24px rgba(0,0,0,.20)}
 .tsg-map360__controls button:hover::after,.tsg-map360__controls button:focus-visible::after{opacity:1;transform:translateY(-50%) translateX(0)}
}
@media(max-width:760px){
 .tsg-map360__controls{right:10px!important;top:72px!important;padding:6px!important;border-radius:20px!important;gap:6px!important}
 .tsg-map360__controls button{width:43px!important;height:43px!important;border-radius:14px!important}
 .tsg-map360__controls button svg{width:19px;height:19px}
}


/* V1.6.15 — Frise d’actualités horizontale, compacte et interactive */
.tsg-news-timeline{padding:0 0 58px;position:relative}
.tsg-news-timeline__head{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin:0 0 18px;padding:0 2px}
.tsg-news-timeline__head>div{max-width:760px}
.tsg-news-timeline__eyebrow{display:inline-flex;align-items:center;gap:9px;margin-bottom:8px;color:var(--tsg-secondary);font:700 10px/1 Poppins,sans-serif;letter-spacing:.16em}
.tsg-news-timeline__eyebrow:before{content:"";width:24px;height:2px;border-radius:99px;background:var(--tsg-secondary)}
.tsg-news-timeline__head h2{margin:0;color:var(--tsg-primary);font:700 clamp(28px,3vw,42px)/1.05 Montserrat,Poppins,sans-serif;letter-spacing:-.035em}
.tsg-news-timeline__head p{margin:9px 0 0;color:#6e6478;font:400 13px/1.55 Poppins,sans-serif}
.tsg-news-timeline__all{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:0 18px;border-radius:15px;background:#f5f1f8;border:1px solid rgba(59,30,123,.08);color:var(--tsg-primary);text-decoration:none!important;font:700 11px/1 Poppins,sans-serif;white-space:nowrap;transition:.2s ease}
.tsg-news-timeline__all:hover{background:var(--tsg-primary);color:#fff;transform:translateY(-1px)}
.tsg-news-timeline__shell{border-radius:28px;background:linear-gradient(135deg,#fff 0%,#fbf8fd 56%,#f4f8f1 100%);border:1px solid rgba(59,30,123,.08);box-shadow:0 18px 46px rgba(44,30,70,.07);overflow:hidden}
.tsg-news-timeline__panels{position:relative;height:176px;border-bottom:1px solid rgba(59,30,123,.07)}
.tsg-news-timeline__panel{position:absolute;inset:0;display:grid;grid-template-columns:210px minmax(0,1fr) 72px;gap:22px;align-items:center;padding:20px 24px;opacity:0;visibility:hidden;transform:translateY(7px);transition:opacity .42s ease,transform .42s ease,visibility .42s}
.tsg-news-timeline__panel.is-active{opacity:1;visibility:visible;transform:none;z-index:2}
.tsg-news-timeline__image{display:block;width:210px;height:136px;border-radius:20px;overflow:hidden;background:#ece7f1;box-shadow:0 12px 30px rgba(38,24,61,.10)}
.tsg-news-timeline__image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.1s cubic-bezier(.2,.8,.2,1)}
.tsg-news-timeline__panel.is-active .tsg-news-timeline__image img{transform:scale(1.025)}
.tsg-news-timeline__copy{min-width:0}
.tsg-news-timeline__meta{display:flex;align-items:center;gap:9px;margin-bottom:7px}
.tsg-news-timeline__meta span{display:inline-flex;align-items:center;min-height:24px;padding:0 9px;border-radius:999px;background:rgba(59,30,123,.08);color:var(--tsg-primary);font:700 9px/1 Poppins,sans-serif;text-transform:uppercase;letter-spacing:.08em}
.tsg-news-timeline__meta time{color:#867b90;font:600 10px/1 Poppins,sans-serif}
.tsg-news-timeline__copy h3{margin:0;font:700 clamp(18px,1.8vw,27px)/1.1 Montserrat,Poppins,sans-serif;letter-spacing:-.025em}
.tsg-news-timeline__copy h3 a{color:#21172d;text-decoration:none!important}
.tsg-news-timeline__copy p{margin:8px 0 0;max-width:760px;color:#6b6174;font:400 12px/1.55 Poppins,sans-serif}
.tsg-news-timeline__read{width:54px;height:54px;border-radius:18px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--tsg-primary),#60319c);color:#fff;text-decoration:none!important;box-shadow:0 12px 26px rgba(59,30,123,.18);transition:.2s ease}
.tsg-news-timeline__read span{position:absolute;clip:rect(0 0 0 0);width:1px;height:1px;overflow:hidden}
.tsg-news-timeline__read b{font:500 22px/1 Poppins,sans-serif}
.tsg-news-timeline__read:hover{background:linear-gradient(135deg,var(--tsg-secondary),#ef744c);transform:translateY(-2px)}
.tsg-news-timeline__rail{position:relative;padding:16px 14px 18px;background:rgba(255,255,255,.72)}
.tsg-news-timeline__line{position:absolute;left:28px;right:28px;top:35px;height:2px;border-radius:99px;background:linear-gradient(90deg,rgba(59,30,123,.12),rgba(218,72,22,.24),rgba(143,175,116,.22))}
.tsg-news-timeline__track{position:relative;z-index:2;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(145px,190px);gap:8px;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x proximity;scrollbar-width:none;padding:0 6px 2px}
.tsg-news-timeline__track::-webkit-scrollbar{display:none}
.tsg-news-timeline__point{min-width:0;border:0;background:transparent;padding:0 9px 7px;display:grid;grid-template-rows:38px auto auto;align-items:start;text-align:left;cursor:pointer;color:#81778b;scroll-snap-align:center;border-radius:14px;transition:background .2s ease,transform .2s ease,color .2s ease}
.tsg-news-timeline__point:hover,.tsg-news-timeline__point:focus-visible{background:rgba(59,30,123,.055);outline:none}
.tsg-news-timeline__dot{width:24px;height:38px;display:flex;align-items:center;justify-content:center;position:relative}
.tsg-news-timeline__dot i{width:11px;height:11px;border-radius:50%;background:#fff;border:3px solid #b8adbf;box-shadow:0 0 0 4px #fff;transition:.25s ease}
.tsg-news-timeline__point.is-active{color:var(--tsg-primary);transform:translateY(-1px)}
.tsg-news-timeline__point.is-active .tsg-news-timeline__dot i{width:14px;height:14px;border-color:var(--tsg-secondary);background:var(--tsg-secondary);box-shadow:0 0 0 5px rgba(218,72,22,.12)}
.tsg-news-timeline__point time{font:700 9px/1.25 Poppins,sans-serif;text-transform:uppercase;letter-spacing:.06em;color:inherit}
.tsg-news-timeline__point strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:5px;font:600 10px/1.35 Poppins,sans-serif;color:inherit}
@media(max-width:900px){.tsg-news-timeline__head{align-items:flex-start;flex-direction:column;gap:14px}.tsg-news-timeline__panel{grid-template-columns:160px minmax(0,1fr) 54px;padding:18px;gap:16px}.tsg-news-timeline__image{width:160px;height:118px}.tsg-news-timeline__read{width:48px;height:48px;border-radius:15px}}
@media(max-width:640px){.tsg-news-timeline{padding-bottom:44px}.tsg-news-timeline__shell{border-radius:24px}.tsg-news-timeline__panels{height:310px}.tsg-news-timeline__panel{grid-template-columns:1fr 48px;grid-template-rows:132px 1fr;gap:12px;padding:14px}.tsg-news-timeline__image{grid-column:1/-1;width:100%;height:132px;border-radius:18px}.tsg-news-timeline__copy{align-self:start}.tsg-news-timeline__copy p{-webkit-line-clamp:2;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.tsg-news-timeline__read{grid-column:2;grid-row:2;align-self:center}.tsg-news-timeline__track{grid-auto-columns:minmax(132px,158px)}.tsg-news-timeline__all{min-height:42px}.tsg-news-timeline__head h2{font-size:30px}}
@media(prefers-reduced-motion:reduce){.tsg-news-timeline__panel,.tsg-news-timeline__point,.tsg-news-timeline__read,.tsg-news-timeline__image img{transition:none!important}}


/* V1.6.16 — Gestion front-office Actualités / Agenda */
.tsg-front-add{appearance:none;border:1px solid rgba(255,255,255,.18);min-height:44px;padding:0 17px;border-radius:15px;display:inline-flex;align-items:center;justify-content:center;gap:9px;background:rgba(255,255,255,.11);color:inherit;font:700 11px/1 Poppins,sans-serif;cursor:pointer;box-shadow:0 10px 26px rgba(14,7,30,.12);backdrop-filter:blur(12px);transition:.2s ease}
.tsg-front-add span{width:22px;height:22px;border-radius:8px;display:grid;place-items:center;background:var(--tsg-secondary);color:#fff;font-size:17px;line-height:1}
.tsg-front-add:hover{transform:translateY(-2px);background:rgba(255,255,255,.18)}
.tsg-showcase__heading .tsg-front-add{margin-top:18px;color:#fff}
.tsg-news-timeline__head-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.tsg-news-timeline__head .tsg-front-add,.tsg-front-page-actions .tsg-front-add{background:#fff;color:var(--tsg-primary);border-color:rgba(59,30,123,.10);box-shadow:0 10px 26px rgba(43,29,69,.08)}
.tsg-news-timeline__head .tsg-front-add:hover,.tsg-front-page-actions .tsg-front-add:hover{background:#f8f4fb}
.tsg-front-page-actions{display:flex;justify-content:flex-end;margin:0 0 20px}
.tsg-news-timeline__empty{border:1px dashed rgba(59,30,123,.18);border-radius:24px;padding:30px;background:#faf8fc;display:flex;flex-direction:column;gap:6px;color:#6d6375}.tsg-news-timeline__empty strong{color:var(--tsg-primary);font:700 20px/1.2 Montserrat,Poppins,sans-serif}
.tsg-front-modal[hidden]{display:none!important}.tsg-front-modal{position:fixed;inset:0;z-index:9999999;display:grid;place-items:center;padding:22px}.tsg-front-modal__backdrop{position:absolute;inset:0;background:rgba(20,14,30,.64);backdrop-filter:blur(12px)}
.tsg-front-modal__panel{position:relative;z-index:2;width:min(760px,100%);max-height:min(88vh,820px);overflow:auto;border-radius:30px;background:#fff;padding:34px;box-shadow:0 32px 100px rgba(16,9,29,.34);border:1px solid rgba(255,255,255,.55)}
.tsg-front-modal__close{position:absolute;right:18px;top:18px;width:40px;height:40px;border:0;border-radius:14px;background:#f2edf6;color:var(--tsg-primary);font-size:23px;cursor:pointer}.tsg-front-modal__eyebrow{display:block;color:var(--tsg-secondary);font:800 10px/1 Poppins,sans-serif;letter-spacing:.15em;margin-bottom:9px}.tsg-front-modal__panel h2{margin:0;color:#251834;font:700 clamp(28px,4vw,42px)/1 Montserrat,Poppins,sans-serif;letter-spacing:-.035em}.tsg-front-modal__panel>p{margin:10px 0 24px;color:#766d7e;font:400 13px/1.55 Poppins,sans-serif}
.tsg-front-form{display:grid;grid-template-columns:1fr 1fr;gap:15px}.tsg-front-form label{display:flex;flex-direction:column;gap:7px;color:#4c4257;font:700 11px/1.2 Poppins,sans-serif}.tsg-front-form label.is-wide,.tsg-front-form__actions.is-wide{grid-column:1/-1}.tsg-front-form input,.tsg-front-form textarea{width:100%;border:1px solid #e4dfe8!important;border-radius:14px!important;background:#fbfafc!important;color:#271c31!important;padding:12px 14px!important;box-shadow:none!important;outline:none!important;font:500 13px/1.45 Poppins,sans-serif}.tsg-front-form input{min-height:48px}.tsg-front-form input:focus,.tsg-front-form textarea:focus{border-color:rgba(59,30,123,.48)!important;box-shadow:0 0 0 4px rgba(59,30,123,.08)!important}.tsg-front-form input[type=file]{padding:10px!important}
.tsg-front-form__actions{display:flex;justify-content:flex-end;gap:10px;padding-top:5px}.tsg-front-form__actions button{min-height:46px;border-radius:14px;padding:0 19px;font:700 11px/1 Poppins,sans-serif;cursor:pointer}.tsg-front-form__actions .is-secondary{border:1px solid #e2dce7;background:#fff;color:#61566b}.tsg-front-form__actions .is-primary{border:0;background:linear-gradient(90deg,var(--tsg-primary),#63329f);color:#fff;box-shadow:0 12px 28px rgba(59,30,123,.18)}
body.tsg-front-modal-open{overflow:hidden}.tsg-front-toast{position:fixed;right:22px;top:22px;z-index:10000000;width:min(390px,calc(100% - 44px));padding:15px 52px 15px 16px;border-radius:18px;background:#fff;box-shadow:0 18px 55px rgba(24,14,38,.2);display:flex;flex-direction:column;gap:3px;border:1px solid rgba(59,30,123,.10);animation:tsgToastIn .3s ease both}.tsg-front-toast strong{color:#2b1b3c;font:800 12px/1 Poppins,sans-serif}.tsg-front-toast span{color:#6c6275;font:500 12px/1.45 Poppins,sans-serif}.tsg-front-toast button{position:absolute;right:12px;top:12px;width:30px;height:30px;border:0;border-radius:10px;background:#f2edf6;color:#4a3562;cursor:pointer}.tsg-front-toast.is-success{border-left:4px solid #4D8F63}.tsg-front-toast.is-error{border-left:4px solid #DA4816}@keyframes tsgToastIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@media(max-width:720px){.tsg-news-timeline__head-actions{justify-content:flex-start}.tsg-front-modal{padding:10px}.tsg-front-modal__panel{border-radius:24px;padding:26px 18px 20px}.tsg-front-form{grid-template-columns:1fr}.tsg-front-form label.is-wide,.tsg-front-form__actions.is-wide{grid-column:1}.tsg-front-form__actions{flex-direction:column-reverse}.tsg-front-form__actions button{width:100%}.tsg-front-page-actions{justify-content:flex-start}}


/* V1.6.17 — accès visible à l'espace interne pour les comptes autorisés */
.tsg-internal-access{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 14px;border-radius:14px;background:rgba(59,30,123,.075);border:1px solid rgba(59,30,123,.09);color:var(--tsg-primary);text-decoration:none;font:700 11px/1 Poppins,sans-serif;white-space:nowrap;transition:.2s ease}
.tsg-internal-access svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.tsg-internal-access:hover{background:var(--tsg-primary);color:#fff;transform:translateY(-1px);box-shadow:0 10px 24px rgba(59,30,123,.16)}
@media(max-width:1180px){.tsg-internal-access{width:38px;height:38px;padding:8px}.tsg-internal-access span{display:none}.tsg-internal-access svg{width:100%;height:100%}}


/* V1.6.20 — Structures d’articles configurables */
.tsg-article-layout-field{border:0;padding:0;margin:4px 0}.tsg-article-layout-field legend{font:700 12px Poppins;color:#2d2535;margin-bottom:10px}.tsg-article-layout-picker{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.tsg-article-layout-choice{position:relative;display:flex!important;flex-direction:column;gap:5px;padding:9px!important;border:1px solid #e7e2ed;border-radius:15px;background:#fff;cursor:pointer}.tsg-article-layout-choice input{position:absolute;opacity:0;pointer-events:none}.tsg-article-layout-choice:has(input:checked){border-color:#3B1E7B;box-shadow:0 0 0 2px rgba(59,30,123,.09);background:#faf8fd}.tsg-article-layout-choice strong{font:700 10px Poppins;color:#332b3b}.tsg-article-layout-choice small{font:500 8px/1.35 Poppins;color:#8a8290}.tsg-article-layout-choice__preview{height:54px;border-radius:10px;background:#f0ecf5;position:relative;overflow:hidden;display:block}.tsg-article-layout-choice__preview i,.tsg-article-layout-choice__preview b{position:absolute;display:block;border-radius:5px}.tsg-article-layout-choice__preview i{background:#3B1E7B}.tsg-article-layout-choice__preview b{background:#d9cedf}.tsg-article-layout-choice__preview.is-classic i{left:8px;top:12px;width:42%;height:30px}.tsg-article-layout-choice__preview.is-classic b{right:8px;top:8px;width:40%;height:38px}.tsg-article-layout-choice__preview.is-image-left i{right:8px;top:12px;width:42%;height:30px}.tsg-article-layout-choice__preview.is-image-left b{left:8px;top:8px;width:40%;height:38px}.tsg-article-layout-choice__preview.is-cover b{inset:5px;background:#7c6c88}.tsg-article-layout-choice__preview.is-cover i{left:15px;bottom:12px;width:55%;height:9px;background:#fff;z-index:2}.tsg-article-layout-choice__preview.is-editorial i{left:20%;right:20%;top:7px;height:11px}.tsg-article-layout-choice__preview.is-editorial b{left:8px;right:8px;bottom:6px;height:28px}.tsg-article-layout-choice__preview.is-minimal i{left:18%;right:18%;top:12px;height:10px}.tsg-article-layout-choice__preview.is-minimal b{left:25%;right:25%;top:29px;height:15px;background:#ded5e4}.tsg-article-structure-checks{display:flex;flex-direction:column;justify-content:center;gap:7px;padding-top:19px}.tsg-article-structure-checks label{display:flex!important;align-items:center;gap:7px;font-size:10px!important}.tsg-article-structure-checks input{width:auto!important}
.tsg-article--image-left .tsg-content-hero__media{order:-1}.tsg-article--image-left .tsg-content-hero__grid{grid-template-columns:1.02fr 1fr}
.tsg-article--editorial .tsg-content-hero__grid{display:flex!important;flex-direction:column;text-align:center}.tsg-article--editorial .tsg-content-hero__copy{max-width:900px;margin:0 auto;padding-bottom:32px!important}.tsg-article--editorial .tsg-content-hero__media{width:100%;height:min(48vw,520px);border-radius:34px;overflow:hidden}.tsg-article--editorial .tsg-content-hero__media img{width:100%;height:100%;object-fit:cover}.tsg-article--editorial .tsg-page-hero__line{margin-inline:auto}
.tsg-article--minimal .tsg-content-hero__grid{display:block!important;text-align:center}.tsg-article--minimal .tsg-content-hero__copy{max-width:900px;margin:0 auto;padding-block:80px!important}.tsg-article--minimal .tsg-page-hero__line{margin-inline:auto}
.tsg-article-cover{position:relative;min-height:min(70vh,720px);display:flex;align-items:flex-end;overflow:hidden;background:#211532;color:#fff}.tsg-article-cover__image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.tsg-article-cover__overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,9,34,.14) 10%,rgba(18,9,34,.84) 100%)}.tsg-article-cover__copy{position:relative;z-index:2;padding-top:180px;padding-bottom:72px}.tsg-article-cover__copy h1{max-width:960px;margin:12px 0 16px;color:#fff;font:700 clamp(42px,5.4vw,78px)/.98 Montserrat,Poppins,sans-serif;letter-spacing:-.045em}.tsg-article-cover__copy .tsg-article__meta{color:#fff!important}.tsg-article__lead{max-width:760px;font-size:18px;line-height:1.6;color:rgba(255,255,255,.84)}
.tsg-article-width--compact .tsg-article__content,.tsg-article-width--compact .tsg-back-link{max-width:760px}.tsg-article-width--normal .tsg-article__content,.tsg-article-width--normal .tsg-back-link{max-width:980px}.tsg-article-width--wide .tsg-article__content,.tsg-article-width--wide .tsg-back-link{max-width:1240px}.tsg-article__content,.tsg-back-link{margin-left:auto;margin-right:auto}
@media(max-width:900px){.tsg-article-layout-picker{grid-template-columns:1fr 1fr}.tsg-article--image-left .tsg-content-hero__media{order:0}.tsg-article-cover{min-height:560px}.tsg-article-cover__copy{padding-top:130px;padding-bottom:48px}}
@media(max-width:560px){.tsg-article-layout-picker{grid-template-columns:1fr}.tsg-article-cover{min-height:500px}.tsg-article-cover__copy h1{font-size:38px}.tsg-article--minimal .tsg-content-hero__copy{padding-block:54px!important}}


/* V1.6.22 — Composition libre des articles + réglages d’image explicites */
.tsg-article-layout-choice__preview.is-custom{background:linear-gradient(135deg,#f1ecf6,#e9e0ef)}
.tsg-article-layout-choice__preview.is-custom i{left:9px;top:9px;width:34%;height:36px;background:#3B1E7B}
.tsg-article-layout-choice__preview.is-custom b{right:9px;top:9px;width:48%;height:15px;background:#cbbdd6}
.tsg-article-layout-choice__preview.is-custom:after{content:"";position:absolute;right:9px;top:30px;width:48%;height:15px;border-radius:5px;background:#dfd5e6}
.tsg-article-advanced{padding:15px;border:1px solid #e8e3ed;border-radius:18px;background:linear-gradient(180deg,#fcfbfd,#f8f6fa)}
.tsg-article-advanced__head{margin-bottom:12px}.tsg-article-advanced__head strong{display:block;color:#31293a;font:700 12px Poppins}.tsg-article-advanced__head small{display:block;margin-top:4px;color:#817987;font:500 9px/1.5 Poppins}
.tsg-article-advanced__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.tsg-article-advanced__grid label{display:block!important;padding:11px;border:1px solid #e7e3eb;border-radius:14px;background:#fff}.tsg-article-advanced__grid label>span{display:block;margin-bottom:6px;color:#595061;font:700 8px Poppins;text-transform:uppercase;letter-spacing:.06em}.tsg-article-advanced__grid label>small{display:block;margin-top:5px;color:#918994;font:500 8px/1.4 Poppins}.tsg-article-advanced__grid select,.tsg-article-advanced__grid input{width:100%;min-height:40px;border:1px solid #ded9e4!important;border-radius:11px!important;background:#fbfafc!important;color:#302837;font:600 10px Poppins!important;padding:0 10px!important;box-sizing:border-box}.tsg-input-unit{display:grid;grid-template-columns:minmax(0,1fr) 42px;align-items:center;border:1px solid #ded9e4;border-radius:11px;background:#fbfafc;overflow:hidden}.tsg-input-unit input{border:0!important;border-radius:0!important;background:transparent!important}.tsg-input-unit b{display:grid;place-items:center;height:100%;border-left:1px solid #e7e1ea;color:#7f7585;font:700 9px Poppins;background:#f4f1f6}
/* Réglages appliqués sans modifier les anciens articles tant qu'ils ne sont pas enregistrés avec ces contrôles. */
.tsg-article.has-design-controls .tsg-content-hero__media{height:var(--tsg-article-image-height);min-height:var(--tsg-article-image-height);border-radius:var(--tsg-article-image-radius)!important;background:#f2eff5}
.tsg-article.has-design-controls .tsg-content-hero__media img{height:100%;min-height:0!important;object-fit:var(--tsg-article-image-fit);border-radius:var(--tsg-article-image-radius)!important}
.tsg-article.has-design-controls .tsg-content-hero__copy{text-align:var(--tsg-article-title-align)}
.tsg-article.has-design-controls .tsg-content-hero__copy .tsg-page-hero__line{margin-left:0;margin-right:0}
.tsg-article.has-design-controls[style*="--tsg-article-title-align:center"] .tsg-content-hero__copy .tsg-page-hero__line{margin-left:auto;margin-right:auto}
.tsg-article.has-design-controls[style*="--tsg-article-title-align:right"] .tsg-content-hero__copy .tsg-page-hero__line{margin-left:auto;margin-right:0}
.tsg-article.has-design-controls.tsg-article--classic .tsg-content-hero__grid,.tsg-article.has-design-controls.tsg-article--image-left .tsg-content-hero__grid{grid-template-columns:minmax(0,calc(100% - var(--tsg-article-image-width) - var(--tsg-article-gap))) var(--tsg-article-image-width);gap:var(--tsg-article-gap);min-height:var(--tsg-article-image-height)}
.tsg-article.has-design-controls.tsg-article--image-left .tsg-content-hero__grid{grid-template-columns:var(--tsg-article-image-width) minmax(0,calc(100% - var(--tsg-article-image-width) - var(--tsg-article-gap)))}
.tsg-article.has-design-controls.tsg-article--editorial .tsg-content-hero__media{height:var(--tsg-article-image-height);width:100%;border-radius:var(--tsg-article-image-radius)!important}
.tsg-article.has-design-controls .tsg-article-cover{min-height:var(--tsg-article-image-height)}
.tsg-article.has-design-controls .tsg-article-cover__image{object-fit:var(--tsg-article-image-fit)}
.tsg-article.has-design-controls .tsg-article-cover__copy{text-align:var(--tsg-article-title-align)}
.tsg-article.has-design-controls .tsg-article-cover__copy .tsg-page-hero__line{margin-left:0;margin-right:0}
.tsg-article--custom .tsg-content-hero__grid{min-height:0!important;align-items:stretch;gap:var(--tsg-article-gap);grid-template-columns:minmax(0,calc(100% - var(--tsg-article-image-width) - var(--tsg-article-gap))) var(--tsg-article-image-width)}
.tsg-article--custom.tsg-article-image-position--left .tsg-content-hero__grid{grid-template-columns:var(--tsg-article-image-width) minmax(0,calc(100% - var(--tsg-article-image-width) - var(--tsg-article-gap)))}
.tsg-article--custom.tsg-article-image-position--left .tsg-content-hero__media{order:-1}
.tsg-article--custom.tsg-article-image-position--top .tsg-content-hero__grid,.tsg-article--custom.tsg-article-image-position--bottom .tsg-content-hero__grid{display:flex!important;flex-direction:column;gap:var(--tsg-article-gap)}
.tsg-article--custom.tsg-article-image-position--top .tsg-content-hero__media{order:-1}
.tsg-article--custom.tsg-article-image-position--top .tsg-content-hero__media,.tsg-article--custom.tsg-article-image-position--bottom .tsg-content-hero__media{width:100%}
@media(max-width:900px){.tsg-article-advanced__grid{grid-template-columns:1fr 1fr}.tsg-article.has-design-controls.tsg-article--classic .tsg-content-hero__grid,.tsg-article.has-design-controls.tsg-article--image-left .tsg-content-hero__grid,.tsg-article--custom .tsg-content-hero__grid{grid-template-columns:1fr!important;gap:0}.tsg-article.has-design-controls .tsg-content-hero__media{height:min(var(--tsg-article-image-height),420px);min-height:260px}.tsg-article--custom.tsg-article-image-position--top .tsg-content-hero__media{order:-1}.tsg-article--custom.tsg-article-image-position--left .tsg-content-hero__media{order:0}}
@media(max-width:560px){.tsg-article-advanced__grid{grid-template-columns:1fr}.tsg-article-advanced{padding:11px}.tsg-article.has-design-controls .tsg-content-hero__media{height:min(var(--tsg-article-image-height),320px);min-height:220px}}


/* V1.6.23 — Bibliothèque de dispositions maîtrisées */
.tsg-article-layout-picker{grid-template-columns:repeat(5,minmax(0,1fr))}
.tsg-article-layout-note{grid-column:1/-1;margin:8px 0 0;color:#817987;font:500 9px/1.5 Poppins,sans-serif}
/* anciennes commandes libres neutralisées : les modèles définissent désormais les proportions */
.tsg-article-advanced{display:none!important}
/* aperçus supplémentaires */
.tsg-article-layout-choice__preview.is-banner i{left:16%;right:16%;top:7px;height:9px}.tsg-article-layout-choice__preview.is-banner b{left:7px;right:7px;bottom:6px;height:30px}
.tsg-article-layout-choice__preview.is-magazine b{left:6px;top:6px;bottom:6px;width:55%}.tsg-article-layout-choice__preview.is-magazine i{right:8px;top:12px;width:32%;height:9px}.tsg-article-layout-choice__preview.is-magazine:after{content:"";position:absolute;right:8px;top:29px;width:32%;height:18px;border-radius:4px;background:#d9cedf}
.tsg-article-layout-choice__preview.is-accent i{left:6px;top:6px;bottom:6px;width:45%;height:auto;background:#3B1E7B}.tsg-article-layout-choice__preview.is-accent b{right:6px;top:6px;bottom:6px;width:45%;height:auto}
.tsg-article-layout-choice__preview.is-compact i{left:22%;right:22%;top:8px;height:9px}.tsg-article-layout-choice__preview.is-compact b{left:18%;right:18%;bottom:6px;height:28px}
/* Bannière */
.tsg-article--banner .tsg-content-hero__grid{display:flex!important;flex-direction:column;gap:26px;padding-top:42px;padding-bottom:42px}
.tsg-article--banner .tsg-content-hero__copy{max-width:980px;padding:0!important}
.tsg-article--banner .tsg-content-hero__media{width:100%;height:360px;border-radius:30px;overflow:hidden}
.tsg-article--banner .tsg-content-hero__media img{width:100%;height:100%;object-fit:cover}
/* Magazine */
.tsg-article--magazine .tsg-content-hero__grid{grid-template-columns:minmax(0,1.18fr) minmax(360px,.82fr);gap:44px;align-items:center;padding-top:48px;padding-bottom:48px}
.tsg-article--magazine .tsg-content-hero__media{order:-1;height:500px;border-radius:34px;overflow:hidden}
.tsg-article--magazine .tsg-content-hero__media img{width:100%;height:100%;object-fit:cover}
.tsg-article--magazine .tsg-content-hero__copy{padding:36px 0!important}
/* Encadré couleur */
.tsg-article--accent .tsg-content-hero{padding:50px 0}
.tsg-article--accent .tsg-content-hero__grid{grid-template-columns:1fr 1fr;gap:0!important;overflow:hidden;border-radius:34px;background:#fff;box-shadow:0 22px 60px rgba(34,22,49,.10)}
.tsg-article--accent .tsg-content-hero__copy{height:100%;padding:64px!important;background:linear-gradient(135deg,#3B1E7B,#5b3092);color:#fff}
.tsg-article--accent .tsg-content-hero__copy h1,.tsg-article--accent .tsg-content-hero__copy p,.tsg-article--accent .tsg-content-hero__copy .tsg-article__meta{color:#fff!important}
.tsg-article--accent .tsg-page-hero__line{background:#DA4816!important}
.tsg-article--accent .tsg-content-hero__media{height:100%;min-height:460px;border-radius:0!important;overflow:hidden}
.tsg-article--accent .tsg-content-hero__media img{width:100%;height:100%;object-fit:cover;border-radius:0!important}
/* Compacte */
.tsg-article--compact .tsg-content-hero{padding:46px 0 24px}
.tsg-article--compact .tsg-content-hero__grid{display:flex!important;flex-direction:column;max-width:980px;text-align:center;border:1px solid rgba(59,30,123,.08);border-radius:34px;overflow:hidden;background:#fff;box-shadow:0 18px 48px rgba(35,22,51,.08)}
.tsg-article--compact .tsg-content-hero__copy{max-width:760px;margin:0 auto;padding:46px 34px 30px!important}
.tsg-article--compact .tsg-page-hero__line{margin-inline:auto}
.tsg-article--compact .tsg-content-hero__media{width:calc(100% - 48px);height:310px;margin:0 24px 24px;border-radius:24px;overflow:hidden}
.tsg-article--compact .tsg-content-hero__media img{width:100%;height:100%;object-fit:cover}
@media(max-width:980px){
  .tsg-article--magazine .tsg-content-hero__grid,.tsg-article--accent .tsg-content-hero__grid{grid-template-columns:1fr!important}
  .tsg-article--magazine .tsg-content-hero__media{order:0;height:380px}
  .tsg-article--accent .tsg-content-hero__media{min-height:340px;order:-1}
  .tsg-article--accent .tsg-content-hero__copy{padding:42px 32px!important}
}
@media(max-width:620px){
  .tsg-article-layout-picker{grid-template-columns:1fr 1fr}
  .tsg-article--banner .tsg-content-hero__media{height:260px;border-radius:22px}
  .tsg-article--magazine .tsg-content-hero__media{height:300px;border-radius:24px}
  .tsg-article--compact .tsg-content-hero__grid{border-radius:24px}
  .tsg-article--compact .tsg-content-hero__copy{padding:34px 22px 24px!important}
  .tsg-article--compact .tsg-content-hero__media{width:calc(100% - 28px);height:240px;margin:0 14px 14px;border-radius:18px}
}


/* V1.6.24 — Couverture immersive réglable + carte aux couleurs Tsingoni */
.tsg-article-cover{min-height:min(var(--tsg-article-cover-height,520px),78vh)!important}
@media(max-width:900px){.tsg-article-cover{min-height:min(var(--tsg-article-cover-height,520px),68vh)!important}}
@media(max-width:560px){.tsg-article-cover{min-height:min(var(--tsg-article-cover-height,520px),62vh)!important}}

/* Charte Tsingoni sur les commandes de la carte : violet #3B1E7B, orange #DA4816, vert #8FAF74. */
.tsg-map360__board{border-color:rgba(59,30,123,.16)!important;box-shadow:0 26px 70px rgba(59,30,123,.10),0 8px 28px rgba(218,72,22,.07)!important}
.tsg-map360__map-brand{background:linear-gradient(110deg,rgba(59,30,123,.96),rgba(59,30,123,.90) 68%,rgba(218,72,22,.92))!important;border-color:rgba(255,255,255,.16)!important}
.tsg-map360__map-brand>i{background:#DA4816!important;box-shadow:0 0 0 5px rgba(218,72,22,.18)!important}
.tsg-map360__view{background:rgba(255,255,255,.96)!important;border:1px solid rgba(59,30,123,.16)!important;box-shadow:0 14px 34px rgba(59,30,123,.14)!important}
.tsg-map360__view button{color:#5d5269!important}
.tsg-map360__view button:hover{background:rgba(59,30,123,.07)!important;color:#3B1E7B!important}
.tsg-map360__view button.is-active{background:linear-gradient(100deg,#3B1E7B,#5B2E87 62%,#DA4816)!important;color:#fff!important;box-shadow:0 8px 18px rgba(59,30,123,.24)!important}
.tsg-map360__controls{background:linear-gradient(160deg,rgba(59,30,123,.96),rgba(47,23,97,.96))!important;border-color:rgba(255,255,255,.15)!important;box-shadow:0 20px 44px rgba(59,30,123,.25)!important}
.tsg-map360__controls button{background:rgba(255,255,255,.10)!important;border-color:rgba(255,255,255,.13)!important;color:#fff!important}
.tsg-map360__controls button.is-zoom{background:linear-gradient(145deg,#4B278A,#3B1E7B)!important}
.tsg-map360__controls button:hover,.tsg-map360__controls button:focus-visible,.tsg-map360__controls button.is-active{background:linear-gradient(145deg,#DA4816,#B83A14)!important}
.tsg-map360__controls-separator{background:linear-gradient(90deg,transparent,rgba(218,72,22,.75),transparent)!important}
.tsg-map360__legend{background:rgba(255,255,255,.96)!important;border-color:rgba(59,30,123,.13)!important;box-shadow:0 16px 40px rgba(59,30,123,.14)!important}
.tsg-map360__legend button{color:#63586e!important}
.tsg-map360__legend button:hover{background:rgba(143,175,116,.16)!important;color:#3B1E7B!important}
.tsg-map360__legend button.is-active{background:linear-gradient(100deg,#3B1E7B,#5A2C83 62%,#DA4816)!important;color:#fff!important}
.tsg-map360__legend button.is-active i{background:rgba(255,255,255,.16)!important;color:#fff!important;border-color:rgba(255,255,255,.18)!important}
.tsg-map360__selection{background:linear-gradient(125deg,rgba(59,30,123,.96),rgba(82,110,65,.94))!important;border-color:rgba(255,255,255,.14)!important;box-shadow:0 18px 46px rgba(59,30,123,.22)!important}
.tsg-map360__zoom-status{background:rgba(59,30,123,.90)!important}
.tsg-map360__category{background:rgba(59,30,123,.08)!important}


/* V1.6.25 — Largeur réglable et centrage de la carte */
.tsg-map360__container{margin-left:auto!important;margin-right:auto!important}
.tsg-map360--width-compact .tsg-map360__container{width:min(1180px,calc(100% - 64px))!important;max-width:1180px!important}
.tsg-map360--width-standard .tsg-map360__container{width:min(1380px,calc(100% - 64px))!important;max-width:1380px!important}
.tsg-map360--width-large .tsg-map360__container{width:min(1640px,calc(100% - 64px))!important;max-width:1640px!important}
.tsg-map360--width-full .tsg-map360__container{width:calc(100% - 32px)!important;max-width:none!important}
.tsg-map360__board,.tsg-map360__frame{margin-left:auto!important;margin-right:auto!important}
@media(max-width:760px){
  .tsg-map360--width-compact .tsg-map360__container,
  .tsg-map360--width-standard .tsg-map360__container,
  .tsg-map360--width-large .tsg-map360__container,
  .tsg-map360--width-full .tsg-map360__container{width:calc(100% - 24px)!important;max-width:none!important}
}


/* V1.6.26 — Charte dominante violet + vert */
/* L'orange reste disponible comme accent ponctuel via --tsg-accent-orange. */
:root{--tsg-accent-orange:#DA4816}

/* Carte : hiérarchie visuelle violet / vert */
.tsg-map360__board{border-color:rgba(59,30,123,.16)!important;box-shadow:0 26px 70px rgba(59,30,123,.11),0 8px 28px rgba(143,175,116,.10)!important}
.tsg-map360__map-brand{background:linear-gradient(112deg,#3B1E7B 0%,#4A287E 58%,#526E41 100%)!important}
.tsg-map360__map-brand>i{background:#8FAF74!important;box-shadow:0 0 0 5px rgba(143,175,116,.20)!important}
.tsg-map360__view button:hover{background:rgba(143,175,116,.13)!important;color:#3B1E7B!important}
.tsg-map360__view button.is-active{background:linear-gradient(100deg,#3B1E7B 0%,#4E2A82 58%,#8FAF74 100%)!important;color:#fff!important;box-shadow:0 8px 18px rgba(59,30,123,.23)!important}
.tsg-map360__controls{background:linear-gradient(160deg,#3B1E7B 0%,#48267D 60%,#526E41 100%)!important;border-color:rgba(255,255,255,.15)!important}
.tsg-map360__controls button.is-zoom{background:linear-gradient(145deg,#4B278A,#3B1E7B)!important}
.tsg-map360__controls button:hover,.tsg-map360__controls button:focus-visible,.tsg-map360__controls button.is-active{background:linear-gradient(145deg,#8FAF74,#526E41)!important;color:#fff!important}
.tsg-map360__controls-separator{background:linear-gradient(90deg,transparent,rgba(143,175,116,.78),transparent)!important}
.tsg-map360__legend button:hover{background:rgba(143,175,116,.17)!important;color:#3B1E7B!important}
.tsg-map360__legend button.is-active{background:linear-gradient(100deg,#3B1E7B 0%,#4E2A82 62%,#8FAF74 100%)!important;color:#fff!important}
.tsg-map360__selection{background:linear-gradient(125deg,#3B1E7B 0%,#526E41 100%)!important}
.tsg-map360__action.is-more{background:linear-gradient(90deg,#3B1E7B,#8FAF74)!important}

/* Les zones fortes de la plateforme utilisent maintenant la même paire de marque. */
.tsg-quicklinks{background:linear-gradient(90deg,#8FAF74 0%,#526E41 38%,#3B1E7B 100%)!important}
body.tsg-xd-reference .tsg-news-feature__inner{background:linear-gradient(102deg,#3B1E7B 0%,#526E41 100%)!important}
.tsg-showcase__eyebrow:before,.tsg-showcase__dots button.is-active{background:#8FAF74!important}
.tsg-front-form__actions .is-primary{background:linear-gradient(90deg,#3B1E7B,#526E41)!important}
.tsg-front-add span{background:#8FAF74!important}


/* V1.6.27 — Carte centrée comme la vue de référence */
.tsg-map360__container{margin-left:auto!important;margin-right:auto!important}
.tsg-map360__board,.tsg-map360__frame{margin-inline:auto!important}


/* V1.6.28 — Plan/Sombre uniquement + CTA Newsletter avant footer */
.tsg-map360__view{display:grid!important;grid-template-columns:1fr 1fr!important;min-width:210px!important}
.tsg-map360__view button{min-width:96px!important}

.tsg-newsletter-cta{padding:20px 0 34px;background:#fff}
.tsg-newsletter-cta__shell{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);gap:48px;align-items:center;min-height:250px;padding:44px 54px;border-radius:34px;background:linear-gradient(118deg,#3B1E7B 0%,#47267b 52%,#526E41 100%);color:#fff;box-shadow:0 22px 58px rgba(59,30,123,.14)}
.tsg-newsletter-cta__shell:before{content:"";position:absolute;width:330px;height:330px;border-radius:50%;right:-120px;top:-170px;background:radial-gradient(circle,rgba(143,175,116,.36),rgba(143,175,116,0) 68%);pointer-events:none}
.tsg-newsletter-cta__shell:after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;left:38%;bottom:-215px;border:42px solid rgba(255,255,255,.045);pointer-events:none}
.tsg-newsletter-cta__copy,.tsg-newsletter-cta__form{position:relative;z-index:1;min-width:0}
.tsg-newsletter-cta__eyebrow{display:flex;align-items:center;gap:10px;margin-bottom:12px;color:#dce9d5;font:800 10px/1 Poppins,sans-serif;letter-spacing:.16em}
.tsg-newsletter-cta__eyebrow:before{content:"";width:28px;height:3px;border-radius:99px;background:#8FAF74}
.tsg-newsletter-cta__copy h2{margin:0;color:#fff;font:700 clamp(30px,3.2vw,50px)/1.02 Montserrat,Poppins,sans-serif;letter-spacing:-.035em}
.tsg-newsletter-cta__copy p{max-width:650px;margin:15px 0 0;color:rgba(255,255,255,.78);font:400 14px/1.65 Poppins,sans-serif}
.tsg-newsletter-cta__form{padding:20px;border:1px solid rgba(255,255,255,.12);border-radius:24px;background:rgba(255,255,255,.085);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.tsg-newsletter-cta__form>label{display:block;margin:0 0 9px;color:#fff;font:700 11px/1.2 Poppins,sans-serif}
.tsg-newsletter-cta__field{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:7px;border-radius:18px;background:#fff;box-shadow:0 12px 30px rgba(18,8,38,.16)}
.tsg-newsletter-cta__field input{width:100%;min-width:0;min-height:48px;border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;padding:0 13px!important;color:#2b2035!important;font:500 13px/1 Poppins,sans-serif}
.tsg-newsletter-cta__field input::placeholder{color:#958b9e}
.tsg-newsletter-cta__field button{min-height:48px;padding:0 18px;border:0;border-radius:13px;background:linear-gradient(100deg,#3B1E7B,#526E41);color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:10px;font:800 11px/1 Poppins,sans-serif;cursor:pointer;transition:transform .2s ease,filter .2s ease}
.tsg-newsletter-cta__field button b{font-size:18px;font-weight:500}
.tsg-newsletter-cta__field button:hover{transform:translateY(-1px);filter:brightness(1.07)}
.tsg-newsletter-cta__form>small{display:block;margin:9px 3px 0;color:rgba(255,255,255,.62);font:500 9px/1.4 Poppins,sans-serif}
.tsg-newsletter-cta__message{margin:10px 3px 0!important;font:700 11px/1.4 Poppins,sans-serif!important}
.tsg-newsletter-cta__message.is-success{color:#dff0d7!important}.tsg-newsletter-cta__message.is-error{color:#ffd9cf!important}
/* Le formulaire Newsletter est désormais au-dessus du footer : le footer retrouve une structure plus légère. */
.tsg-footer__main{grid-template-columns:1.35fr .65fr!important}
.tsg-footer__social{grid-column:auto!important;align-self:center}
@media(max-width:980px){
  .tsg-newsletter-cta__shell{grid-template-columns:1fr;gap:26px;padding:38px;border-radius:28px}
  .tsg-footer__main{grid-template-columns:1fr 1fr!important}
}
@media(max-width:640px){
  .tsg-newsletter-cta{padding:10px 0 24px}
  .tsg-newsletter-cta__shell{width:calc(100% - 24px)!important;padding:30px 20px;border-radius:24px;gap:22px}
  .tsg-newsletter-cta__copy h2{font-size:31px}
  .tsg-newsletter-cta__form{padding:13px;border-radius:19px}
  .tsg-newsletter-cta__field{grid-template-columns:1fr;gap:7px;border-radius:15px}
  .tsg-newsletter-cta__field button{width:100%}
  .tsg-footer__main{grid-template-columns:1fr!important}
  .tsg-footer__social{justify-self:start!important;align-items:flex-start!important}
  .tsg-map360__view{min-width:172px!important}
  .tsg-map360__view button{min-width:80px!important;padding-inline:10px!important}
}


/* V1.6.29 — Conseil municipal interactif, équitable et catégories dynamiques */
.tsg-elected-wall{position:relative;padding-top:42px!important}
.tsg-elected-wall__top{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,390px);gap:44px;align-items:end;margin-bottom:28px}
.tsg-elected-wall__eyebrow{display:inline-flex;align-items:center;gap:9px;margin-bottom:10px;color:var(--tsg-green-dark,#526E41);font:700 11px/1 Poppins,sans-serif;letter-spacing:.15em}
.tsg-elected-wall__eyebrow:before{content:"";width:26px;height:3px;border-radius:99px;background:linear-gradient(90deg,var(--tsg-primary,#3B1E7B),var(--tsg-green,#8FAF74))}
.tsg-elected-wall__top h2{margin:0;color:#21182e;font:700 clamp(32px,3vw,48px)/1.03 Montserrat,Poppins,sans-serif;letter-spacing:-.035em}
.tsg-elected-wall__top>div>p{max-width:760px;margin:14px 0 0;color:#6e6578;font-size:14px;line-height:1.65}
.tsg-elected-wall__search{display:grid;gap:8px;color:#5e546a;font:700 10px/1 Poppins,sans-serif;letter-spacing:.09em;text-transform:uppercase}
.tsg-elected-wall__search input{width:100%;height:52px;border:1px solid rgba(59,30,123,.12)!important;border-radius:17px!important;background:#fff!important;box-shadow:0 10px 28px rgba(40,24,65,.06)!important;padding:0 17px!important;color:#241a32;font:500 14px/1 Poppins,sans-serif;outline:none}
.tsg-elected-wall__search input:focus{border-color:rgba(59,30,123,.36)!important;box-shadow:0 0 0 4px rgba(59,30,123,.08)!important}
.tsg-elected-wall__filters{display:flex;align-items:center;gap:8px;overflow-x:auto;padding:5px 2px 10px;scrollbar-width:none;margin-bottom:8px}
.tsg-elected-wall__filters::-webkit-scrollbar{display:none}
.tsg-elected-wall__filters button{flex:0 0 auto;min-height:42px;border:1px solid rgba(59,30,123,.10);border-radius:999px;background:#fff;color:#5e546a;padding:0 14px;font:700 11px/1 Poppins,sans-serif;cursor:pointer;transition:.2s ease;display:flex;align-items:center;gap:8px}
.tsg-elected-wall__filters button span{display:grid;place-items:center;min-width:23px;height:23px;padding:0 6px;border-radius:999px;background:#f2eef7;color:var(--tsg-primary,#3B1E7B);font-size:9px}
.tsg-elected-wall__filters button:hover{transform:translateY(-1px);border-color:rgba(59,30,123,.22)}
.tsg-elected-wall__filters button.is-active{background:linear-gradient(135deg,var(--tsg-primary,#3B1E7B),#54338b);color:#fff;border-color:transparent;box-shadow:0 9px 24px rgba(59,30,123,.18)}
.tsg-elected-wall__filters button.is-active span{background:rgba(143,175,116,.22);color:#fff}
.tsg-elected-wall__status{margin:2px 0 18px;color:#8b8293;font:600 11px/1.4 Poppins,sans-serif}
.tsg-elected-wall__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;align-items:stretch}
.tsg-elected-person{position:relative;min-width:0;display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(59,30,123,.09);border-radius:24px;background:#fff;box-shadow:0 12px 35px rgba(38,24,57,.065);transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease}
.tsg-elected-person:hover{transform:translateY(-4px);box-shadow:0 22px 48px rgba(38,24,57,.12);border-color:rgba(59,30,123,.18)}
.tsg-elected-person[hidden]{display:none!important}
.tsg-elected-person.is-mayor{border-color:color-mix(in srgb,var(--tsg-primary,#3B1E7B) 34%,var(--tsg-green,#8FAF74));box-shadow:0 17px 44px rgba(59,30,123,.13),0 0 0 3px rgba(143,175,116,.08)}
.tsg-elected-person.is-mayor:before{content:"";position:absolute;z-index:4;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,var(--tsg-primary,#3B1E7B),var(--tsg-green,#8FAF74))}
.tsg-elected-person__media{position:relative;height:220px;background:linear-gradient(145deg,#ece7f4,#eef4ea);overflow:hidden}
.tsg-elected-person__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .55s ease}
.tsg-elected-person:hover .tsg-elected-person__media img{transform:scale(1.025)}
.tsg-elected-person__placeholder{width:100%;height:100%;display:grid;place-items:center;color:var(--tsg-primary,#3B1E7B)}
.tsg-elected-person__placeholder svg{width:68px;height:68px;fill:none;stroke:currentColor;stroke-width:1.45}
.tsg-elected-person__category{position:absolute;left:13px;bottom:13px;max-width:calc(100% - 26px);padding:8px 11px;border-radius:999px;background:rgba(255,255,255,.92);color:var(--tsg-primary,#3B1E7B);font:700 9px/1 Poppins,sans-serif;text-transform:uppercase;letter-spacing:.07em;box-shadow:0 8px 22px rgba(25,15,38,.11);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tsg-elected-person.is-mayor .tsg-elected-person__category{background:linear-gradient(90deg,var(--tsg-primary,#3B1E7B),#4f317f);color:#fff}
.tsg-elected-person__body{display:flex;flex:1;flex-direction:column;padding:20px 19px 18px}
.tsg-elected-person__body h3{margin:0;color:#21182e;font:700 20px/1.12 Montserrat,Poppins,sans-serif;letter-spacing:-.025em}
.tsg-elected-person__role{margin:7px 0 0;color:var(--tsg-green-dark,#526E41);font:700 11px/1.35 Poppins,sans-serif}
.tsg-elected-person__desc{margin:13px 0 0;color:#706778;font-size:12px;line-height:1.62;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;min-height:77px}
.tsg-elected-person__delegation{margin:14px 0 0;padding-top:12px;border-top:1px solid #eeeaf2;color:#564d61;font-size:11px;line-height:1.45}
.tsg-elected-person__delegation span{display:block;margin-bottom:3px;color:#9b91a3;font:700 8px/1 Poppins,sans-serif;text-transform:uppercase;letter-spacing:.1em}
.tsg-elected-person__open{margin-top:auto;align-self:flex-start;min-height:38px;border:0;background:transparent;color:var(--tsg-primary,#3B1E7B);padding:13px 0 0;font:700 11px/1 Poppins,sans-serif;cursor:pointer;display:inline-flex;align-items:center;gap:8px}
.tsg-elected-person__open span{transition:transform .18s ease}.tsg-elected-person__open:hover span{transform:translateX(3px)}
.tsg-elected-profile{position:fixed;inset:0;z-index:999999;display:grid;place-items:center;padding:24px}
.tsg-elected-profile[hidden]{display:none!important}
.tsg-elected-profile__backdrop{position:absolute;inset:0;border:0;background:rgba(20,14,30,.66);backdrop-filter:blur(8px);cursor:pointer}
.tsg-elected-profile__panel{position:relative;z-index:1;width:min(860px,100%);max-height:min(720px,calc(100vh - 48px));overflow:auto;display:grid;grid-template-columns:minmax(240px,38%) 1fr;border-radius:30px;background:#fff;box-shadow:0 35px 100px rgba(20,12,31,.35)}
.tsg-elected-profile__close{position:absolute;z-index:4;right:15px;top:15px;width:40px;height:40px;border:0;border-radius:50%;background:rgba(30,22,42,.82);color:#fff;font-size:22px;cursor:pointer}
.tsg-elected-profile__photo{min-height:430px;background:#eee8f4}.tsg-elected-profile__photo img{width:100%;height:100%;object-fit:cover;display:block}
.tsg-elected-profile__content{padding:42px 38px}
.tsg-elected-profile__category{display:inline-flex;padding:8px 11px;border-radius:999px;background:#f1edf7;color:var(--tsg-primary,#3B1E7B);font:700 9px/1 Poppins,sans-serif;text-transform:uppercase;letter-spacing:.08em}
.tsg-elected-profile__content h2{margin:15px 0 5px;color:#21182e;font:700 clamp(30px,3vw,44px)/1 Montserrat,Poppins,sans-serif;letter-spacing:-.04em}
.tsg-elected-profile__role{margin:0;color:var(--tsg-green-dark,#526E41);font-weight:700}
.tsg-elected-profile__facts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:23px 0}.tsg-elected-profile__facts p{margin:0;padding:12px;border-radius:14px;background:#f8f6fa;color:#5d5465;font-size:12px}.tsg-elected-profile__facts strong{display:block;margin-bottom:4px;color:#918799;font-size:9px;text-transform:uppercase;letter-spacing:.08em}
.tsg-elected-profile__bio{color:#605766;font-size:13px;line-height:1.75}.tsg-elected-profile__bio p:first-child{margin-top:0}.tsg-elected-profile__bio p:last-child{margin-bottom:0}
body.tsg-elected-modal-open{overflow:hidden}
@media(max-width:1180px){.tsg-elected-wall__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:880px){.tsg-elected-wall__top{grid-template-columns:1fr;gap:22px}.tsg-elected-wall__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tsg-elected-profile__panel{grid-template-columns:1fr;max-width:620px}.tsg-elected-profile__photo{height:250px;min-height:250px}.tsg-elected-profile__content{padding:30px}}
@media(max-width:560px){.tsg-elected-wall__grid{grid-template-columns:1fr}.tsg-elected-person__media{height:270px}.tsg-elected-profile{padding:12px}.tsg-elected-profile__panel{border-radius:24px}.tsg-elected-profile__content{padding:25px 20px}.tsg-elected-profile__facts{grid-template-columns:1fr}.tsg-elected-profile__photo{height:220px;min-height:220px}}
@media(prefers-reduced-motion:reduce){.tsg-elected-person,.tsg-elected-person__media img,.tsg-elected-person__open span{transition:none!important}}


/* V1.6.31 — Page élus reconstruite : cartes immédiates + rails horizontaux */
.tsg-elected-wall{padding-top:34px!important;padding-bottom:68px!important;background:linear-gradient(180deg,#fff 0%,#fbfafc 62%,#f5f7f2 100%)}
.tsg-elected-wall__top.is-compact{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,390px);gap:38px;align-items:end;margin:0 0 24px;padding:0}
.tsg-elected-wall__top.is-compact h1{margin:0;color:#21182e;font:700 clamp(36px,4vw,58px)/.98 Montserrat,Poppins,sans-serif;letter-spacing:-.045em}
.tsg-elected-wall__top.is-compact>div>p{max-width:760px;margin:14px 0 0;color:#6e6578;font-size:14px;line-height:1.65}
.tsg-elected-wall__status{margin:4px 0 24px;padding:0;color:#8b8293;font:600 11px/1.4 Poppins,sans-serif}
.tsg-elected-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:15px}
.tsg-elected-section-head h2{margin:4px 0 0;color:#21182e;font:700 clamp(26px,2.5vw,38px)/1 Montserrat,Poppins,sans-serif;letter-spacing:-.035em}
.tsg-elected-section-head p{margin:7px 0 0;color:#8b8293;font:600 11px/1.35 Poppins,sans-serif}
.tsg-elected-section-kicker{color:var(--tsg-green-dark,#526E41);font:700 9px/1 Poppins,sans-serif;letter-spacing:.14em;text-transform:uppercase}
.tsg-elected-mayor-block{margin-bottom:38px}
.tsg-elected-mayor-grid{display:grid;grid-template-columns:minmax(0,360px);gap:18px}
.tsg-elected-person.is-featured{width:100%;border-color:color-mix(in srgb,var(--tsg-primary,#3B1E7B) 34%,var(--tsg-green,#8FAF74));box-shadow:0 20px 54px rgba(59,30,123,.13),0 0 0 4px rgba(143,175,116,.07)}
.tsg-elected-person.is-featured .tsg-elected-person__media{height:238px}
.tsg-elected-person.is-featured .tsg-elected-person__body h3{font-size:23px}
.tsg-elected-rail-section{position:relative;margin-top:34px}
.tsg-elected-rail-actions{display:flex;align-items:center;gap:8px}
.tsg-elected-rail-actions button{width:44px;height:44px;border:1px solid rgba(59,30,123,.12);border-radius:15px;background:#fff;color:var(--tsg-primary,#3B1E7B);display:grid;place-items:center;font:500 27px/1 Montserrat,sans-serif;cursor:pointer;box-shadow:0 8px 20px rgba(35,20,55,.06);transition:.2s ease}
.tsg-elected-rail-actions button:hover{background:linear-gradient(135deg,var(--tsg-primary,#3B1E7B),#54338b);color:#fff;border-color:transparent;transform:translateY(-1px)}
.tsg-elected-rail{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(238px,22vw,278px);gap:16px;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:4px 4px 18px 2px;scrollbar-width:thin;scrollbar-color:rgba(59,30,123,.18) transparent}
.tsg-elected-rail::-webkit-scrollbar{height:5px}.tsg-elected-rail::-webkit-scrollbar-track{background:transparent}.tsg-elected-rail::-webkit-scrollbar-thumb{background:rgba(59,30,123,.18);border-radius:99px}
.tsg-elected-rail .tsg-elected-person{scroll-snap-align:start;min-width:0;height:100%}
.tsg-elected-rail .tsg-elected-person__media{height:178px}
.tsg-elected-rail .tsg-elected-person__body{padding:17px 16px 16px}
.tsg-elected-rail .tsg-elected-person__body h3{font-size:18px}
.tsg-elected-rail .tsg-elected-person__desc{font-size:11px;line-height:1.55;min-height:69px;-webkit-line-clamp:4}
.tsg-elected-person__placeholder{background:linear-gradient(145deg,#eee8f5 0%,#eef4ea 100%)}
.tsg-elected-person__placeholder>span{width:78px;height:78px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--tsg-primary,#3B1E7B),var(--tsg-green-dark,#526E41));color:#fff;font:700 23px/1 Montserrat,Poppins,sans-serif;letter-spacing:-.04em;box-shadow:0 15px 35px rgba(59,30,123,.18)}
.tsg-elected-person__demo{position:absolute;right:12px;top:12px;z-index:3;padding:7px 9px;border-radius:999px;background:rgba(255,255,255,.9);color:#756a80;font:800 8px/1 Poppins,sans-serif;letter-spacing:.1em;box-shadow:0 7px 18px rgba(20,12,31,.09)}
.tsg-elected-rail .tsg-elected-person:hover{transform:translateY(-3px)}
.tsg-elected-rail-section[hidden],.tsg-elected-mayor-block[hidden]{display:none!important}
@media(max-width:880px){
 .tsg-elected-wall__top.is-compact{grid-template-columns:1fr;gap:20px}
 .tsg-elected-mayor-grid{grid-template-columns:minmax(0,330px)}
 .tsg-elected-rail{grid-auto-columns:min(72vw,260px)}
}
@media(max-width:560px){
 .tsg-elected-wall{padding-top:24px!important}
 .tsg-elected-wall__top.is-compact h1{font-size:38px}
 .tsg-elected-mayor-grid{grid-template-columns:1fr}
 .tsg-elected-person.is-featured .tsg-elected-person__media{height:230px}
 .tsg-elected-rail{grid-auto-columns:min(82vw,248px);gap:13px;padding-bottom:14px}
 .tsg-elected-rail .tsg-elected-person__media{height:172px}
 .tsg-elected-rail-actions button{width:40px;height:40px;border-radius:14px}
}
@media(prefers-reduced-motion:reduce){.tsg-elected-rail{scroll-behavior:auto}}


/* V1.6.33 — Conseil municipal : défilement naturel + panneau institutionnel */
.tsg-elected-mayor-grid{grid-template-columns:minmax(280px,360px) minmax(0,1fr)!important;gap:22px!important;align-items:stretch}
.tsg-elected-mayor-grid__card{min-width:0}
.tsg-elected-mayor-grid__card>.tsg-elected-person{height:100%}
.tsg-elected-council-panel{position:relative;min-height:100%;overflow:hidden;border:1px solid rgba(59,30,123,.10);border-radius:28px;background:linear-gradient(135deg,#2f1766 0%,#3b1e7b 46%,#526e41 122%);box-shadow:0 20px 55px rgba(45,27,74,.13);color:#fff;isolation:isolate}
.tsg-elected-council-panel:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 75% 24%,rgba(143,175,116,.22),transparent 35%),radial-gradient(circle at 10% 100%,rgba(255,255,255,.08),transparent 38%);z-index:-1;pointer-events:none}
.tsg-elected-council-panel__content{position:relative;z-index:2;min-height:100%;display:flex;flex-direction:column;justify-content:center;padding:clamp(28px,4vw,52px);max-width:64%}
.tsg-elected-council-panel__eyebrow{display:inline-flex;align-items:center;gap:8px;color:#dce7d4;font:700 10px/1 Poppins,sans-serif;letter-spacing:.16em;text-transform:uppercase;margin-bottom:14px}
.tsg-elected-council-panel__eyebrow:before{content:"";width:24px;height:3px;border-radius:99px;background:var(--tsg-green,#8FAF74)}
.tsg-elected-council-panel h3{margin:0;color:#fff;font:700 clamp(26px,2.7vw,42px)/1.03 Montserrat,Poppins,sans-serif;letter-spacing:-.04em;text-wrap:balance}
.tsg-elected-council-panel p{margin:15px 0 0;color:rgba(255,255,255,.74);font-size:13px;line-height:1.65;max-width:520px}
.tsg-elected-council-panel__stats{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.tsg-elected-council-panel__stats>div{min-width:122px;padding:14px 16px;border-radius:17px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.10);backdrop-filter:blur(7px)}
.tsg-elected-council-panel__stats strong{display:block;color:#fff;font:700 24px/1 Montserrat,Poppins,sans-serif}
.tsg-elected-council-panel__stats span{display:block;margin-top:5px;color:rgba(255,255,255,.62);font:600 9px/1.25 Poppins,sans-serif;text-transform:uppercase;letter-spacing:.07em}
.tsg-elected-council-panel__pulse{display:flex;align-items:flex-start;gap:9px;margin-top:22px;max-width:440px;color:rgba(255,255,255,.62)}
.tsg-elected-council-panel__pulse>span{position:relative;flex:0 0 9px;width:9px;height:9px;margin-top:3px;border-radius:50%;background:var(--tsg-green,#8FAF74);box-shadow:0 0 0 0 rgba(143,175,116,.35);animation:tsgCouncilPulse 2.8s ease-out infinite}
.tsg-elected-council-panel__pulse small{font:500 10px/1.5 Poppins,sans-serif}
.tsg-elected-council-panel__motion{position:absolute;right:-4%;top:50%;width:min(38vw,390px);aspect-ratio:1;transform:translateY(-50%);opacity:.96;pointer-events:none}
.tsg-elected-orbit{position:absolute;inset:50%;border:1px solid rgba(255,255,255,.15);border-radius:50%;transform:translate(-50%,-50%);animation:tsgCouncilOrbit 24s linear infinite}
.tsg-elected-orbit--one{width:82%;height:82%}
.tsg-elected-orbit--two{width:60%;height:60%;animation-duration:18s;animation-direction:reverse;border-color:rgba(143,175,116,.28)}
.tsg-elected-orbit--three{width:38%;height:38%;animation-duration:13s}
.tsg-elected-orbit i{position:absolute;left:50%;top:-5px;width:10px;height:10px;margin-left:-5px;border-radius:50%;background:#fff;box-shadow:0 0 20px rgba(255,255,255,.65)}
.tsg-elected-orbit--two i{background:var(--tsg-green,#8FAF74);box-shadow:0 0 22px rgba(143,175,116,.55)}
.tsg-elected-orbit--three i{background:#d9e7cf}
.tsg-elected-orbit__core{position:absolute;left:50%;top:50%;width:84px;height:84px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.34),rgba(143,175,116,.23) 32%,rgba(59,30,123,.78) 72%);box-shadow:0 0 0 13px rgba(255,255,255,.035),0 22px 55px rgba(8,3,25,.25);animation:tsgCouncilCore 5.2s ease-in-out infinite}
@keyframes tsgCouncilOrbit{to{transform:translate(-50%,-50%) rotate(360deg)}}
@keyframes tsgCouncilCore{0%,100%{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.06)}}
@keyframes tsgCouncilPulse{0%{box-shadow:0 0 0 0 rgba(143,175,116,.38)}70%,100%{box-shadow:0 0 0 10px rgba(143,175,116,0)}}

/* Les élus défilent lentement et en continu ; plus de commandes latérales. */
.tsg-elected-rail-actions{display:none!important}
.tsg-elected-rail{scroll-snap-type:none!important;scroll-behavior:auto!important;scrollbar-width:none!important;padding-bottom:12px!important}
.tsg-elected-rail::-webkit-scrollbar{display:none!important}
.tsg-elected-rail .tsg-elected-person{scroll-snap-align:none!important}
.tsg-elected-rail-section{overflow:hidden}
.tsg-elected-rail-section:after{content:"";position:absolute;z-index:3;right:0;bottom:10px;width:46px;height:calc(100% - 76px);background:linear-gradient(90deg,rgba(251,250,252,0),rgba(251,250,252,.9));pointer-events:none;border-radius:0 18px 18px 0}
@media(max-width:980px){
 .tsg-elected-mayor-grid{grid-template-columns:minmax(250px,330px) minmax(0,1fr)!important}
 .tsg-elected-council-panel__content{max-width:72%;padding:28px}
 .tsg-elected-council-panel__motion{right:-12%;width:360px;opacity:.72}
}
@media(max-width:760px){
 .tsg-elected-mayor-grid{grid-template-columns:1fr!important}
 .tsg-elected-council-panel{min-height:330px}
 .tsg-elected-council-panel__content{max-width:78%;padding:26px 22px}
 .tsg-elected-council-panel__motion{right:-22%;width:330px;opacity:.58}
 .tsg-elected-council-panel h3{font-size:29px}
 .tsg-elected-rail-section:after{display:none}
}
@media(prefers-reduced-motion:reduce){
 .tsg-elected-orbit,.tsg-elected-orbit__core,.tsg-elected-council-panel__pulse>span{animation:none!important}
}


/* V1.6.34 — Accueil : transition Agenda sous la carte + gradients de charte très doux */
body.tsg-layout-home .tsg-map360__directory,
.tsg-elementor-page .tsg-map360__directory{
  position:relative;
  margin-top:14px;
  padding:20px 20px 18px!important;
  border-radius:28px;
  background:linear-gradient(135deg,#fff 0%,#fbf8fd 56%,#f4f8f1 100%);
  border:1px solid rgba(59,30,123,.07);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.88),0 14px 36px rgba(45,29,68,.055);
  overflow:hidden;
}
body.tsg-layout-home .tsg-map360__directory:before,
.tsg-elementor-page .tsg-map360__directory:before{
  content:"";
  position:absolute;
  left:20px;right:20px;top:0;height:2px;
  border-radius:99px;
  background:linear-gradient(90deg,rgba(59,30,123,.28),rgba(143,175,116,.28));
  pointer-events:none;
}
body.tsg-layout-home .tsg-map360__directory-head label>span,
.tsg-elementor-page .tsg-map360__directory-head label>span{color:#776d80!important}
body.tsg-layout-home .tsg-map360__directory-count,
.tsg-elementor-page .tsg-map360__directory-count{color:#807687!important}
body.tsg-layout-home .tsg-map360__directory-head select,
.tsg-elementor-page .tsg-map360__directory-head select{
  background:rgba(255,255,255,.82)!important;
  color:#30253c!important;
  border-color:rgba(59,30,123,.10)!important;
  box-shadow:0 7px 18px rgba(47,30,70,.045);
}
body.tsg-layout-home .tsg-map360__place-card,
.tsg-elementor-page .tsg-map360__place-card{
  background:linear-gradient(135deg,rgba(59,30,123,.042) 0%,rgba(255,255,255,.92) 48%,rgba(143,175,116,.065) 100%)!important;
  border-color:rgba(59,30,123,.085)!important;
  color:#2b2135!important;
  box-shadow:0 8px 22px rgba(46,30,66,.035);
}
body.tsg-layout-home .tsg-map360__place-card:nth-child(3n+2),
.tsg-elementor-page .tsg-map360__place-card:nth-child(3n+2){
  background:linear-gradient(135deg,rgba(143,175,116,.075) 0%,rgba(255,255,255,.94) 52%,rgba(59,30,123,.038) 100%)!important;
}
body.tsg-layout-home .tsg-map360__place-card:nth-child(3n+3),
.tsg-elementor-page .tsg-map360__place-card:nth-child(3n+3){
  background:linear-gradient(135deg,rgba(59,30,123,.055),rgba(143,175,116,.048))!important;
}
body.tsg-layout-home .tsg-map360__place-card:hover,
body.tsg-layout-home .tsg-map360__place-card:focus-visible,
.tsg-elementor-page .tsg-map360__place-card:hover,
.tsg-elementor-page .tsg-map360__place-card:focus-visible{
  background:linear-gradient(135deg,rgba(59,30,123,.075),rgba(255,255,255,.96) 48%,rgba(143,175,116,.10))!important;
  border-color:rgba(59,30,123,.16)!important;
  box-shadow:0 14px 30px rgba(47,30,70,.075)!important;
}
body.tsg-layout-home .tsg-map360__place-card.is-selected,
.tsg-elementor-page .tsg-map360__place-card.is-selected{
  background:linear-gradient(135deg,rgba(59,30,123,.105),rgba(255,255,255,.95) 48%,rgba(143,175,116,.15))!important;
  border-color:rgba(82,110,65,.28)!important;
  box-shadow:0 12px 30px rgba(59,30,123,.08),inset 0 0 0 1px rgba(143,175,116,.08)!important;
}
body.tsg-layout-home .tsg-map360__place-copy strong,
.tsg-elementor-page .tsg-map360__place-copy strong{color:#2b2135!important}
body.tsg-layout-home .tsg-map360__place-copy small,
.tsg-elementor-page .tsg-map360__place-copy small{color:#817688!important}
body.tsg-layout-home .tsg-map360__place-arrow,
.tsg-elementor-page .tsg-map360__place-arrow{color:rgba(82,110,65,.62)!important}
body.tsg-layout-home .tsg-map360__place-dot,
.tsg-elementor-page .tsg-map360__place-dot{
  background:color-mix(in srgb,var(--place-accent,#3B1E7B) 12%,white)!important;
  color:color-mix(in srgb,var(--place-accent,#3B1E7B) 78%,#2b2135)!important;
  border-color:color-mix(in srgb,var(--place-accent,#3B1E7B) 22%,transparent)!important;
}

/* Cartes de services : même charte, volontairement très légère. */
body.tsg-layout-home .tsg-service-card{
  background:linear-gradient(145deg,rgba(59,30,123,.035) 0%,#fff 45%,rgba(143,175,116,.055) 100%)!important;
  border-color:rgba(59,30,123,.075)!important;
}
body.tsg-layout-home .tsg-service-card:nth-child(even){
  background:linear-gradient(145deg,rgba(143,175,116,.065) 0%,#fff 48%,rgba(59,30,123,.032) 100%)!important;
}
body.tsg-layout-home .tsg-service-card:before{
  height:3px!important;
  background:linear-gradient(90deg,rgba(59,30,123,.72),rgba(143,175,116,.72))!important;
}

@media(max-width:760px){
  body.tsg-layout-home .tsg-map360__directory,
  .tsg-elementor-page .tsg-map360__directory{padding:16px 14px 14px!important;border-radius:22px}
  body.tsg-layout-home .tsg-map360__directory:before,
  .tsg-elementor-page .tsg-map360__directory:before{left:14px;right:14px}
}


/* V1.6.35 — Élus : boucle continue réelle + photographie davantage mise en valeur */
.tsg-elected-rail{grid-auto-columns:clamp(246px,22vw,286px)!important;touch-action:pan-x pan-y}
.tsg-elected-rail .tsg-elected-person__media{height:224px!important}
.tsg-elected-rail .tsg-elected-person__body{padding:15px 16px 14px!important}
.tsg-elected-rail .tsg-elected-person__body h3{font-size:18px!important}
.tsg-elected-rail .tsg-elected-person__role{margin-top:6px!important}
.tsg-elected-rail .tsg-elected-person__desc{margin-top:10px!important;min-height:50px!important;font-size:11px!important;line-height:1.5!important;-webkit-line-clamp:3!important}
.tsg-elected-rail .tsg-elected-person__delegation{margin-top:10px!important;padding-top:9px!important}
.tsg-elected-rail .tsg-elected-person__open{padding-top:9px!important;min-height:34px!important}
.tsg-elected-person.is-featured .tsg-elected-person__media{height:278px!important}
.tsg-elected-person.is-featured .tsg-elected-person__body{padding-top:18px!important}
.tsg-elected-rail [data-elected-clone]{pointer-events:auto}
@media(max-width:760px){
 .tsg-elected-rail{grid-auto-columns:min(78vw,258px)!important}
 .tsg-elected-rail .tsg-elected-person__media{height:208px!important}
 .tsg-elected-person.is-featured .tsg-elected-person__media{height:258px!important}
}
@media(prefers-reduced-motion:reduce){.tsg-elected-rail [data-elected-clone]{display:none!important}}


/* V1.6.36 — Accueil : panneau carte clair, dégradé violet/vert très doux */
body.tsg-layout-home .tsg-map360__board,
.tsg-elementor-page .tsg-map360__board{
  background:
    radial-gradient(circle at 12% 8%,rgba(59,30,123,.055),transparent 28%),
    radial-gradient(circle at 92% 92%,rgba(143,175,116,.085),transparent 34%),
    linear-gradient(135deg,#fefdfd 0%,#faf8fc 48%,#f4f8f1 100%)!important;
  border:1px solid rgba(59,30,123,.10)!important;
  box-shadow:0 24px 62px rgba(59,30,123,.085),0 10px 26px rgba(143,175,116,.065)!important;
  color:#2d2436!important;
}
body.tsg-layout-home .tsg-map360__frame,
.tsg-elementor-page .tsg-map360__frame{
  border-color:rgba(59,30,123,.10)!important;
  box-shadow:0 10px 28px rgba(42,28,61,.055)!important;
}
body.tsg-layout-home .tsg-map360__board:before,
.tsg-elementor-page .tsg-map360__board:before{
  content:"";
  position:absolute;
  inset:10px;
  border-radius:30px;
  border:1px solid rgba(255,255,255,.78);
  pointer-events:none;
}
body.tsg-layout-home .tsg-map360__board,
.tsg-elementor-page .tsg-map360__board{position:relative}
@media(max-width:760px){
  body.tsg-layout-home .tsg-map360__board:before,
  .tsg-elementor-page .tsg-map360__board:before{inset:7px;border-radius:23px}
}


/* V1.6.37 — Titre de la page des élus plus discret */
.tsg-elected-wall__top.is-compact h1{
  font-size:clamp(24px,2.15vw,36px)!important;
  line-height:1.08!important;
  letter-spacing:-.025em!important;
  font-weight:700!important;
  margin-bottom:4px!important;
}
.tsg-elected-wall__eyebrow{margin-bottom:8px!important}
.tsg-elected-wall__top.is-compact>div>p{margin-top:10px!important;max-width:680px!important}
@media(max-width:560px){
  .tsg-elected-wall__top.is-compact h1{font-size:28px!important}
}


/* V1.6.38 — Hiérarchie typographique plus compacte sur toutes les pages */
/* Titres principaux de pages */
.tsg-page-hero h1,
.tsg-content-hero__copy h1,
.tsg-vivre-hero h1,
.tsg-article-cover__copy h1,
.tsg-elected-wall__top.is-compact h1{
  font-size:clamp(30px,2.75vw,46px)!important;
  line-height:1.02!important;
  letter-spacing:-.03em!important;
}

/* Grands titres de sections, sans toucher aux cartes */
.tsg-content-intro h2,
.tsg-explore-map__heading h2,
.tsg-map360__heading h2,
.tsg-showcase__heading h2,
.tsg-news-feature h2,
.tsg-home-agenda__intro h2,
.tsg-civil__intro h2,
.tsg-elected-section-head h2,
.tsg-elected-search h2,
.tsg-elected-group h2,
.tsg-newsletter-cta__copy h2,
.tsg-elected-profile__content h2{
  font-size:clamp(26px,2.25vw,38px)!important;
  line-height:1.06!important;
  letter-spacing:-.025em!important;
}

/* Espacements resserrés autour des titres */
.tsg-page-hero{padding-top:42px!important;padding-bottom:30px!important}
.tsg-content-hero__copy{padding-top:52px!important;padding-bottom:52px!important}
.tsg-content-intro h2{margin-bottom:13px!important}
.tsg-map360__heading,.tsg-showcase__heading{margin-bottom:22px!important}
.tsg-elected-section-head{margin-bottom:18px!important}

/* Accueil : réduction mesurée du grand titre, sans changer sa personnalité */
body.tsg-layout-home .tsg-hero h1{
  font-size:clamp(46px,3.5vw,64px)!important;
  line-height:1.01!important;
}

@media(max-width:760px){
  .tsg-page-hero h1,
  .tsg-content-hero__copy h1,
  .tsg-vivre-hero h1,
  .tsg-article-cover__copy h1,
  .tsg-elected-wall__top.is-compact h1{
    font-size:30px!important;
  }
  .tsg-content-intro h2,
  .tsg-explore-map__heading h2,
  .tsg-map360__heading h2,
  .tsg-showcase__heading h2,
  .tsg-news-feature h2,
  .tsg-home-agenda__intro h2,
  .tsg-civil__intro h2,
  .tsg-elected-section-head h2,
  .tsg-elected-search h2,
  .tsg-elected-group h2,
  .tsg-newsletter-cta__copy h2,
  .tsg-elected-profile__content h2{
    font-size:27px!important;
  }
  body.tsg-layout-home .tsg-hero h1{font-size:40px!important}
  .tsg-page-hero{padding-top:34px!important;padding-bottom:24px!important}
  .tsg-content-hero__copy{padding-top:34px!important;padding-bottom:34px!important}
}


/* V1.6.40 — Alignement des commandes de carte + accents orange de charte */
:root{--tsg-accent-orange:#DA4816}

/* Carte : centrage optique et mécanique de tous les boutons */
.tsg-map360__controls{
  align-items:center!important;
}
.tsg-map360__controls button{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0!important;
  line-height:0!important;
  box-sizing:border-box!important;
  overflow:visible!important;
}
.tsg-map360__controls button svg{
  display:block!important;
  flex:0 0 auto!important;
  width:21px!important;
  height:21px!important;
  margin:0!important;
  padding:0!important;
  transform:none!important;
  vertical-align:middle!important;
  stroke-width:1.9!important;
}
.tsg-map360__controls button[data-tsg-map-home] svg{width:20px!important;height:20px!important}
.tsg-map360__controls button[data-tsg-map-locate] svg{width:22px!important;height:22px!important}
.tsg-map360__controls button[data-tsg-map-fullscreen] svg{width:20px!important;height:20px!important}

.tsg-map360__view{
  align-items:stretch!important;
}
.tsg-map360__view button{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  height:44px!important;
  min-height:44px!important;
  padding:0 16px!important;
  line-height:1!important;
  box-sizing:border-box!important;
}
.tsg-map360__view button.is-active{
  position:relative;
}
.tsg-map360__view button.is-active:after{
  content:"";
  position:absolute;
  left:24%;
  right:24%;
  bottom:4px;
  height:2px;
  border-radius:999px;
  background:rgba(218,72,22,.88);
}

.tsg-map360__search>button{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0!important;
  line-height:1!important;
}
.tsg-map360__legend button{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:44px!important;
  line-height:1!important;
  box-sizing:border-box!important;
}
.tsg-map360__legend i{
  flex:0 0 26px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  line-height:1!important;
}
.tsg-map360__legend button.is-active{
  box-shadow:inset 0 -3px 0 rgba(218,72,22,.78),0 7px 18px rgba(59,30,123,.14)!important;
}
.tsg-map360__controls{
  position:absolute;
}
.tsg-map360__controls:before{
  content:"";
  position:absolute;
  top:8px;
  left:50%;
  width:18px;
  height:3px;
  transform:translateX(-50%);
  border-radius:999px;
  background:rgba(218,72,22,.82);
  pointer-events:none;
}
.tsg-map360__controls button:first-of-type{margin-top:5px!important}

/* Orange discret sur la charte globale — violet et vert restent dominants */
.tsg-page-hero h1:after,
.tsg-content-hero__copy h1:after{
  content:"";
  display:block;
  width:42px;
  height:3px;
  margin-top:14px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--tsg-primary,#3B1E7B) 0 42%,var(--tsg-accent-orange,#DA4816) 42% 64%,var(--tsg-green,#8FAF74) 64% 100%);
}
.tsg-eyebrow,
.tsg-block-eyebrow{
  border-left:3px solid rgba(218,72,22,.82);
  padding-left:9px;
}

.tsg-pill-button{
  position:relative;
  border:1px solid rgba(218,72,22,.22)!important;
  box-shadow:inset 0 -3px 0 rgba(218,72,22,.18),0 8px 24px rgba(59,30,123,.07)!important;
}
.tsg-pill-button:hover{
  border-color:rgba(218,72,22,.48)!important;
  box-shadow:inset 0 -3px 0 rgba(218,72,22,.62),0 12px 30px rgba(59,30,123,.12)!important;
}

.tsg-block-button .wp-block-button__link{
  box-shadow:inset 0 -3px 0 rgba(218,72,22,.76),0 8px 20px rgba(59,30,123,.10)!important;
}
.tsg-block-button .wp-block-button__link:hover{
  background:linear-gradient(110deg,var(--tsg-primary,#3B1E7B),var(--tsg-green-dark,#526E41))!important;
  box-shadow:inset 0 -3px 0 var(--tsg-accent-orange,#DA4816),0 10px 24px rgba(59,30,123,.14)!important;
}

.tsg-newsletter-cta__field button{
  box-shadow:inset 0 -3px 0 rgba(218,72,22,.72),0 8px 22px rgba(59,30,123,.14)!important;
}
.tsg-newsletter-cta__field button:hover{
  box-shadow:inset 0 -3px 0 var(--tsg-accent-orange,#DA4816),0 11px 26px rgba(59,30,123,.18)!important;
}

.tsg-elected-wall__filters button.is-active{
  box-shadow:inset 0 -3px 0 rgba(218,72,22,.72),0 9px 24px rgba(59,30,123,.18)!important;
}
.tsg-back-link a{
  display:inline-flex;
  align-items:center;
  gap:7px;
}
.tsg-back-link a:before{
  content:"";
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--tsg-accent-orange,#DA4816);
  box-shadow:0 0 0 4px rgba(218,72,22,.10);
}

/* Accueil : trait des cartes services avec une pointe d'orange, sans saturation */
body.tsg-layout-home .tsg-service-card:before{
  background:linear-gradient(90deg,rgba(59,30,123,.72) 0%,rgba(59,30,123,.72) 42%,rgba(218,72,22,.66) 50%,rgba(143,175,116,.72) 58%,rgba(143,175,116,.72) 100%)!important;
}

/* Petits accents orange sur les cartes de contenu, au survol seulement */
.tsg-info-card,
.tsg-news-card,
.tsg-demarche-card,
.tsg-contact-card{
  position:relative;
}
.tsg-info-card:after,
.tsg-news-card:after,
.tsg-demarche-card:after,
.tsg-contact-card:after{
  content:"";
  position:absolute;
  left:18px;
  bottom:0;
  width:34px;
  height:3px;
  border-radius:999px 999px 0 0;
  background:rgba(218,72,22,.52);
  opacity:.55;
  transition:width .22s ease,opacity .22s ease;
}
.tsg-info-card:hover:after,
.tsg-news-card:hover:after,
.tsg-demarche-card:hover:after,
.tsg-contact-card:hover:after{
  width:58px;
  opacity:.9;
}

@media(max-width:760px){
  .tsg-map360__controls button svg{width:19px!important;height:19px!important}
  .tsg-map360__view button{height:40px!important;min-height:40px!important;padding:0 12px!important}
  .tsg-map360__legend button{min-height:40px!important}
  .tsg-page-hero h1:after,.tsg-content-hero__copy h1:after{width:34px;margin-top:11px}
}


/* V1.6.41 — Gestion des super administrateurs dans l'espace interne */
.tsg-internal-notice.is-error{
  border-color:rgba(190,44,44,.22)!important;
  background:rgba(190,44,44,.07)!important;
  color:#8a2020!important;
}
.tsg-super-admin-help{
  margin:12px 0 0!important;
  padding:12px 14px;
  border-radius:14px;
  background:linear-gradient(135deg,rgba(59,30,123,.06),rgba(143,175,116,.10));
  color:#5d5369;
  font-size:12px;
  line-height:1.55;
}
.tsg-internal-agent-row.is-super-admin{
  border-color:rgba(59,30,123,.18)!important;
  background:linear-gradient(110deg,rgba(59,30,123,.06),rgba(143,175,116,.08))!important;
}
.tsg-internal-agent-row strong em{
  display:inline-flex;
  margin-left:8px;
  padding:4px 7px;
  border-radius:999px;
  background:#3B1E7B;
  color:#fff;
  font:700 8px/1 Poppins,sans-serif;
  letter-spacing:.08em;
  vertical-align:middle;
}
.tsg-super-admin-panel{
  margin-top:24px;
  padding:24px;
  border:1px solid rgba(59,30,123,.10);
  border-radius:24px;
  background:
    radial-gradient(circle at 100% 0,rgba(143,175,116,.12),transparent 30%),
    linear-gradient(135deg,#fff 0%,rgba(59,30,123,.025) 55%,rgba(143,175,116,.05) 100%);
  box-shadow:0 18px 45px rgba(38,24,55,.06);
}
.tsg-super-admin-panel__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  margin-bottom:18px;
}
.tsg-super-admin-panel__head>div>span{
  display:block;
  margin-bottom:7px;
  color:#DA4816;
  font:700 10px/1 Poppins,sans-serif;
  letter-spacing:.15em;
}
.tsg-super-admin-panel__head h2{
  margin:0 0 8px;
  color:#2a1c3d;
  font-size:22px;
}
.tsg-super-admin-panel__head p{
  max-width:760px;
  margin:0;
  color:#71677a;
  font-size:13px;
  line-height:1.55;
}
.tsg-super-admin-count{
  min-width:48px;
  height:48px;
  padding:0 12px;
  border-radius:16px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg,#3B1E7B,#526E41);
  color:#fff;
  font:700 18px/1 Poppins,sans-serif;
}
.tsg-super-admin-list{
  display:grid;
  gap:9px;
}
.tsg-super-admin-row{
  display:flex;
  align-items:center;
  gap:12px;
  min-height:64px;
  padding:10px 12px;
  border:1px solid rgba(59,30,123,.08);
  border-radius:17px;
  background:rgba(255,255,255,.82);
}
.tsg-super-admin-avatar{
  width:40px;height:40px;flex:0 0 40px;
  border-radius:13px;
  display:grid;place-items:center;
  background:rgba(59,30,123,.09);
  color:#3B1E7B;
  font-weight:800;
}
.tsg-super-admin-row>div{min-width:0;display:flex;flex-direction:column;gap:3px;flex:1}
.tsg-super-admin-row strong{color:#2a2134;font-size:13px}
.tsg-super-admin-row small{color:#7a7083;font-size:11px;overflow:hidden;text-overflow:ellipsis}
.tsg-super-admin-protected{
  padding:7px 9px;
  border-radius:999px;
  background:rgba(143,175,116,.14);
  color:#526E41;
  font:700 10px/1 Poppins,sans-serif;
  white-space:nowrap;
}
.tsg-super-admin-remove{
  border:1px solid rgba(190,44,44,.15);
  border-radius:11px;
  background:rgba(190,44,44,.06);
  color:#a12c2c;
  min-height:36px;
  padding:0 12px;
  font-weight:700;
  cursor:pointer;
}
.tsg-super-admin-add{
  margin-top:16px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:end;
  gap:12px;
}
.tsg-super-admin-add label{display:grid;gap:7px;color:#61576b;font-size:11px;font-weight:700}
.tsg-super-admin-add select{
  width:100%;
  min-height:46px;
  border:1px solid rgba(59,30,123,.12);
  border-radius:14px;
  padding:0 13px;
  background:#fff;
  color:#31253f;
}
.tsg-super-admin-add button{
  min-height:46px;
  border:0;
  border-radius:14px;
  padding:0 17px;
  background:linear-gradient(100deg,#3B1E7B,#526E41);
  color:#fff;
  font-weight:700;
  cursor:pointer;
  box-shadow:inset 0 -3px 0 rgba(218,72,22,.58);
}
@media(max-width:720px){
  .tsg-super-admin-panel{padding:18px;border-radius:20px}
  .tsg-super-admin-panel__head{gap:12px}
  .tsg-super-admin-panel__head h2{font-size:19px}
  .tsg-super-admin-row{align-items:flex-start;flex-wrap:wrap}
  .tsg-super-admin-protected,.tsg-super-admin-row form{margin-left:52px}
  .tsg-super-admin-add{grid-template-columns:1fr}
}

/* V1.6.43 — Carte : descriptions compactes + bibliothèque des actes */
.tsg-map360__place-copy{min-width:0}
.tsg-map360__place-desc{display:-webkit-box;margin-top:5px;color:rgba(255,255,255,.62);font:500 10px/1.45 Poppins,sans-serif;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}
.tsg-map360__place-card{align-items:flex-start!important}
.tsg-map360__place-arrow{align-self:center}

/* Délibérations & arrêtés — page publique */
.tsg-actes{padding:18px 0 76px;background:linear-gradient(180deg,#fff 0%,rgba(59,30,123,.025) 48%,rgba(143,175,116,.055) 100%)}
.tsg-actes__intro{display:flex;justify-content:space-between;align-items:flex-end;gap:28px;margin-bottom:24px;padding:24px 28px;border:1px solid rgba(59,30,123,.08);border-radius:26px;background:linear-gradient(120deg,rgba(59,30,123,.045),rgba(255,255,255,.96) 48%,rgba(143,175,116,.085));box-shadow:0 15px 38px rgba(40,25,58,.05)}
.tsg-actes__intro h2{margin:8px 0 7px;color:#2b1e3c;font-size:clamp(26px,2.3vw,38px);letter-spacing:-.035em}.tsg-actes__intro p{margin:0;color:#716878;font-size:14px}
.tsg-actes__stats{display:flex;gap:9px;flex-wrap:wrap}.tsg-actes__stats span{min-width:88px;padding:12px 14px;border-radius:17px;background:rgba(255,255,255,.85);border:1px solid rgba(59,30,123,.08);text-align:center}.tsg-actes__stats strong{display:block;color:#3B1E7B;font:800 22px/1 Montserrat,Poppins,sans-serif}.tsg-actes__stats small{display:block;margin-top:6px;color:#7a7182;font-size:9px;text-transform:uppercase;letter-spacing:.09em}
.tsg-actes__toolbar{display:grid;grid-template-columns:minmax(300px,1fr) 190px 190px;gap:12px;align-items:end;margin-bottom:14px}.tsg-actes__toolbar label{display:grid;gap:7px}.tsg-actes__toolbar label>span{font:700 9px/1 Poppins,sans-serif;color:#726879;letter-spacing:.1em;text-transform:uppercase}.tsg-actes__toolbar input,.tsg-actes__toolbar select{height:48px;border:1px solid rgba(59,30,123,.11);border-radius:15px;background:#fff;color:#322640;padding:0 14px;font:500 13px/1 Poppins,sans-serif;outline:none;box-shadow:0 7px 20px rgba(41,25,61,.035)}.tsg-actes__search{position:relative}.tsg-actes__search>span{position:absolute;left:15px;bottom:15px;color:#3B1E7B;font-size:20px;line-height:1}.tsg-actes__search input{padding-left:43px}
.tsg-actes__types{display:flex;gap:8px;overflow-x:auto;padding:4px 0 12px;scrollbar-width:none}.tsg-actes__types::-webkit-scrollbar{display:none}.tsg-actes__types button{flex:0 0 auto;min-height:40px;padding:0 14px;border:1px solid rgba(59,30,123,.10);border-radius:13px;background:#fff;color:#62586c;font:700 10px/1 Poppins,sans-serif;cursor:pointer;transition:.22s ease}.tsg-actes__types button:hover{transform:translateY(-1px);border-color:rgba(218,72,22,.26);color:#3B1E7B}.tsg-actes__types button.is-active{background:linear-gradient(105deg,#3B1E7B,#526E41);color:#fff;border-color:transparent;box-shadow:inset 0 -3px 0 rgba(218,72,22,.75),0 9px 22px rgba(59,30,123,.14)}
.tsg-actes__resultbar{display:flex;justify-content:space-between;align-items:center;margin:3px 0 13px;color:#7c7384;font-size:11px}.tsg-actes__resultbar strong{color:#39294b}
.tsg-actes__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.tsg-acte-card{position:relative;display:grid;grid-template-columns:58px minmax(0,1fr);min-height:176px;border:1px solid rgba(59,30,123,.08);border-radius:22px;background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(59,30,123,.025) 58%,rgba(143,175,116,.055));overflow:hidden;box-shadow:0 12px 34px rgba(43,27,60,.045);transition:transform .26s cubic-bezier(.2,.8,.2,1),box-shadow .26s ease,border-color .26s ease}.tsg-acte-card:before{content:"";position:absolute;left:0;bottom:0;width:0;height:3px;background:linear-gradient(90deg,#3B1E7B,#DA4816,#8FAF74);transition:width .34s ease}.tsg-acte-card:hover{transform:translateY(-4px);border-color:rgba(59,30,123,.15);box-shadow:0 22px 48px rgba(43,27,60,.09)}.tsg-acte-card:hover:before{width:100%}.tsg-acte-card__mark{display:flex;align-items:flex-start;justify-content:center;padding-top:20px;background:linear-gradient(180deg,rgba(59,30,123,.08),rgba(143,175,116,.10))}.tsg-acte-card__mark span{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;background:#fff;color:#3B1E7B;font-size:18px;box-shadow:0 7px 18px rgba(59,30,123,.09);border-bottom:2px solid rgba(218,72,22,.65)}.tsg-acte-card__body{padding:19px 20px 17px}.tsg-acte-card__meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.tsg-acte-card__meta>span,.tsg-acte-card__meta time{font-size:9px}.tsg-acte-card__type{display:inline-flex;padding:6px 8px;border-radius:999px;background:rgba(59,30,123,.07);color:#3B1E7B;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.tsg-acte-card__meta time{color:#756b7d}.tsg-acte-card__ref{color:#526E41;font-weight:700}.tsg-acte-card h3{margin:10px 0 7px;color:#2d2239;font-size:17px;line-height:1.22;letter-spacing:-.015em}.tsg-acte-card p{display:-webkit-box;margin:0;color:#746b7a;font-size:12px;line-height:1.55;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tsg-acte-card__actions{margin-top:13px}.tsg-acte-card__actions a{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:0 12px;border-radius:11px;background:linear-gradient(105deg,#3B1E7B,#526E41);color:#fff;text-decoration:none;font:700 10px/1 Poppins,sans-serif;box-shadow:inset 0 -2px 0 rgba(218,72,22,.74)}.tsg-acte-card__actions a:hover{filter:brightness(1.05);transform:translateY(-1px)}.tsg-acte-card__actions .is-unavailable{font-size:10px;color:#8a808f}.tsg-actes__empty,.tsg-actes__noresult{grid-column:1/-1;padding:52px 24px;text-align:center;border:1px dashed rgba(59,30,123,.16);border-radius:22px;background:rgba(255,255,255,.7)}.tsg-actes__empty>span,.tsg-actes__noresult>span{width:48px;height:48px;margin:0 auto 10px;display:grid;place-items:center;border-radius:15px;background:rgba(59,30,123,.07);color:#3B1E7B;font-size:22px}.tsg-actes__empty h3,.tsg-actes__noresult h3{margin:0 0 6px}.tsg-actes__empty p,.tsg-actes__noresult p{margin:0;color:#7c7383}

/* Espace interne — gestion des actes */
.tsg-acte-admin-layout{display:grid;grid-template-columns:minmax(330px,.78fr) minmax(0,1.22fr);gap:18px;align-items:start}.tsg-acte-admin-form{position:sticky;top:18px}.tsg-acte-admin-form__head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:17px}.tsg-acte-admin-form__head>div>span{color:#DA4816;font:800 9px/1 Poppins,sans-serif;letter-spacing:.12em}.tsg-acte-admin-form__head h2{margin:7px 0 0}.tsg-acte-admin-form__head>a{font-size:11px;color:#3B1E7B;text-decoration:none}.tsg-acte-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.tsg-acte-form-grid label{display:grid;gap:7px;color:#605568;font-size:10px;font-weight:700}.tsg-acte-form-grid label.is-wide{grid-column:1/-1}.tsg-acte-form-grid input,.tsg-acte-form-grid select,.tsg-acte-form-grid textarea{width:100%;border:1px solid rgba(59,30,123,.11);border-radius:13px;background:#fff;color:#2e2338;padding:11px 12px;font:500 12px/1.4 Poppins,sans-serif;box-sizing:border-box}.tsg-acte-form-grid input,.tsg-acte-form-grid select{min-height:43px}.tsg-acte-file-field{padding:13px;border-radius:15px;background:linear-gradient(120deg,rgba(59,30,123,.045),rgba(143,175,116,.07));border:1px dashed rgba(59,30,123,.14)}.tsg-acte-file-field small{color:#81778a;font-weight:500;line-height:1.45}.tsg-acte-admin-list{min-width:0}.tsg-acte-admin-items{display:grid;gap:9px}.tsg-acte-admin-item{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 13px;border:1px solid rgba(59,30,123,.08);border-radius:17px;background:linear-gradient(120deg,#fff,rgba(143,175,116,.055));transition:.2s ease}.tsg-acte-admin-item:hover{transform:translateY(-1px);border-color:rgba(59,30,123,.14);box-shadow:0 9px 25px rgba(49,31,67,.055)}.tsg-acte-admin-item__icon{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(135deg,rgba(59,30,123,.10),rgba(143,175,116,.15));color:#3B1E7B;border-bottom:2px solid rgba(218,72,22,.65)}.tsg-acte-admin-item>div:nth-child(2){min-width:0}.tsg-acte-admin-item span{color:#7b7182;font-size:9px;text-transform:uppercase;letter-spacing:.05em}.tsg-acte-admin-item h3{margin:4px 0;color:#2d2238;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tsg-acte-admin-item small{color:#526E41;font-size:10px}.tsg-acte-admin-item__actions{display:flex;gap:7px;align-items:center}.tsg-acte-admin-item__actions a,.tsg-acte-admin-item__actions button{min-height:34px;padding:0 10px;border-radius:10px;border:1px solid rgba(59,30,123,.10);background:#fff;color:#3B1E7B;font:700 9px/1 Poppins,sans-serif;text-decoration:none;cursor:pointer}.tsg-acte-admin-item__actions button{color:#a33a2a;border-color:rgba(218,72,22,.17);background:rgba(218,72,22,.035)}

@media(max-width:980px){.tsg-actes__toolbar{grid-template-columns:1fr 1fr}.tsg-actes__search{grid-column:1/-1}.tsg-actes__grid{grid-template-columns:1fr}.tsg-acte-admin-layout{grid-template-columns:1fr}.tsg-acte-admin-form{position:static}}
@media(max-width:640px){.tsg-actes{padding-bottom:50px}.tsg-actes__intro{align-items:flex-start;flex-direction:column;padding:20px;border-radius:21px}.tsg-actes__stats{width:100%}.tsg-actes__stats span{flex:1;min-width:72px}.tsg-actes__toolbar{grid-template-columns:1fr}.tsg-actes__search{grid-column:auto}.tsg-acte-card{grid-template-columns:46px minmax(0,1fr);border-radius:18px}.tsg-acte-card__mark{padding-top:17px}.tsg-acte-card__mark span{width:30px;height:30px}.tsg-acte-card__body{padding:16px 15px}.tsg-acte-form-grid{grid-template-columns:1fr}.tsg-acte-form-grid label.is-wide{grid-column:auto}.tsg-acte-admin-item{grid-template-columns:40px minmax(0,1fr)}.tsg-acte-admin-item__actions{grid-column:2;justify-content:flex-start}}
.tsg-map360__place-desc{color:rgba(255,255,255,.62)} body.tsg-layout-home .tsg-map360__place-desc,.tsg-elementor-page .tsg-map360__place-desc{color:#7c7184!important}


/* V1.6.44 — Délibérations en vraie grille de cartes */
.tsg-actes__grid{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:18px!important;
  align-items:stretch!important;
}
.tsg-acte-card{
  display:flex!important;
  flex-direction:column!important;
  min-height:250px!important;
  border-radius:22px!important;
  overflow:hidden!important;
}
.tsg-acte-card__mark{
  min-height:64px!important;
  padding:14px 16px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  background:linear-gradient(110deg,rgba(59,30,123,.085),rgba(143,175,116,.12))!important;
}
.tsg-acte-card__mark span{
  width:38px!important;
  height:38px!important;
  border-radius:12px!important;
}
.tsg-acte-card__body{
  display:flex!important;
  flex-direction:column!important;
  flex:1!important;
  padding:18px 18px 16px!important;
}
.tsg-acte-card__meta{min-height:27px!important}
.tsg-acte-card h3{
  margin:12px 0 8px!important;
  font-size:16px!important;
  line-height:1.28!important;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.tsg-acte-card p{
  -webkit-line-clamp:3!important;
  min-height:56px!important;
}
.tsg-acte-card__actions{
  margin-top:auto!important;
  padding-top:14px!important;
}
.tsg-acte-card__actions a{
  width:100%!important;
  justify-content:center!important;
  min-height:42px!important;
  border-radius:13px!important;
  box-sizing:border-box!important;
}
@media(max-width:1180px){
  .tsg-actes__grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:700px){
  .tsg-actes__grid{grid-template-columns:1fr!important;gap:13px!important}
  .tsg-acte-card{min-height:0!important}
  .tsg-acte-card p{min-height:0!important}
}


/* V1.6.46 — Header commun éditable, inspiré de la composition fournie */
.tsg-common-header{
  padding:18px 0 8px;
  background:linear-gradient(180deg,rgba(59,30,123,.025),rgba(255,255,255,0));
}
.tsg-common-header__shell{
  position:relative;
  display:grid;
  grid-template-columns:minmax(330px,.78fr) minmax(0,1.52fr);
  min-height:355px;
  overflow:hidden;
  border:1px solid rgba(59,30,123,.10);
  border-radius:32px;
  background:#0f1728;
  box-shadow:0 22px 56px rgba(37,24,55,.10);
}
.tsg-common-header__copy{
  position:relative;
  z-index:2;
  min-width:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:34px 34px 30px;
  overflow:hidden;
  background:
    radial-gradient(circle at 4% 100%,rgba(143,175,116,.22),transparent 35%),
    radial-gradient(circle at 95% 4%,rgba(218,72,22,.13),transparent 24%),
    linear-gradient(145deg,#26134d 0%,#3B1E7B 56%,#314c39 130%);
  color:#fff;
}
.tsg-common-header__copy:before{
  content:"";
  position:absolute;
  width:190px;height:190px;
  left:-95px;top:-95px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:50%;
  box-shadow:0 0 0 32px rgba(255,255,255,.025),0 0 0 64px rgba(143,175,116,.025);
  pointer-events:none;
}
.tsg-common-header__brandline{display:flex;align-items:center;gap:10px;margin-bottom:15px;color:rgba(255,255,255,.76);font:700 10px/1.2 Poppins,sans-serif;letter-spacing:.15em}
.tsg-common-header__brandline>span{width:9px;height:9px;border-radius:50%;background:var(--tsg-green);box-shadow:0 0 0 6px rgba(143,175,116,.13)}
.tsg-common-header__copy h2{max-width:450px;margin:0;color:#fff;font:700 clamp(27px,2vw,36px)/1.08 Poppins,sans-serif;letter-spacing:-.035em}
.tsg-common-header__copy>p{max-width:460px;margin:15px 0 20px;color:rgba(255,255,255,.78);font-size:13px;line-height:1.62}
.tsg-common-header__marquee{position:relative;width:100%;height:128px;overflow:hidden;margin:2px 0 22px;padding:3px 0;mask-image:linear-gradient(180deg,transparent,#000 9%,#000 91%,transparent);-webkit-mask-image:linear-gradient(180deg,transparent,#000 9%,#000 91%,transparent)}
.tsg-common-header__marquee-track{display:flex;flex-direction:column;width:100%;will-change:transform}
.tsg-common-header__marquee-set{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding-bottom:8px}
.tsg-common-header__pill{min-height:34px;display:inline-flex;align-items:center;gap:8px;flex:none;max-width:94%;padding:0 14px;border:1px solid rgba(255,255,255,.14);border-radius:999px;background:rgba(255,255,255,.94);box-shadow:0 7px 16px rgba(0,0,0,.10);color:#342547;font:600 11px/1.15 Poppins,sans-serif;white-space:nowrap}
.tsg-common-header__pill:nth-child(3n+2){margin-left:18px}
.tsg-common-header__pill:nth-child(3n){margin-left:7px}
.tsg-common-header__pill i{display:grid;place-items:center;width:18px;height:18px;border-radius:6px;background:rgba(59,30,123,.07);color:#DA4816;font-style:normal;font-size:8px}
body.tsg-motion-enabled .tsg-common-header__marquee-track{animation:tsgCommonHeaderMarquee 20s linear infinite}
.tsg-common-header__marquee:hover .tsg-common-header__marquee-track{animation-play-state:paused!important}
@keyframes tsgCommonHeaderMarquee{from{transform:translate3d(0,0,0)}to{transform:translate3d(0,-50%,0)}}
.tsg-common-header__button{align-self:flex-start;display:inline-flex;align-items:center;gap:13px;min-height:44px;padding:0 18px;border:1px solid rgba(255,255,255,.13);border-radius:14px;background:linear-gradient(105deg,#fff,#f4f7f1);box-shadow:inset 0 -3px 0 rgba(218,72,22,.68),0 10px 22px rgba(0,0,0,.12);color:#3B1E7B!important;font:700 11px/1 Poppins,sans-serif;text-decoration:none!important;transition:transform .2s ease,box-shadow .2s ease}
.tsg-common-header__button b{display:grid;place-items:center;width:25px;height:25px;border-radius:9px;background:#3B1E7B;color:#fff;font-size:14px}
.tsg-common-header__button:hover{transform:translateY(-2px);box-shadow:inset 0 -3px 0 #DA4816,0 14px 28px rgba(0,0,0,.16)}
.tsg-common-header__media{position:relative;min-width:0;overflow:hidden;background:linear-gradient(135deg,#eae5d9,#d7e1ce)}
.tsg-common-header__media:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(59,30,123,.13),transparent 23%),linear-gradient(180deg,transparent 65%,rgba(21,28,24,.18));pointer-events:none}
.tsg-common-header__media img{display:block;width:100%;height:100%;min-height:355px;object-fit:cover;object-position:center;transition:transform .9s cubic-bezier(.2,.7,.2,1)}
body.tsg-motion-enabled .tsg-common-header__shell:hover .tsg-common-header__media img{transform:scale(1.025)}
.tsg-common-header__image-accent{position:absolute;z-index:2;right:22px;top:22px;width:13px;height:13px;border-radius:50%;background:#DA4816;box-shadow:0 0 0 8px rgba(218,72,22,.13)}
.tsg-common-header__caption{position:absolute;z-index:3;right:18px;bottom:18px;display:flex;align-items:center;gap:8px;padding:9px 11px;border-radius:12px;background:rgba(27,21,36,.70);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);color:#fff}
.tsg-common-header__caption span{width:7px;height:7px;border-radius:50%;background:var(--tsg-green)}
.tsg-common-header__caption small{font:600 9px/1 Poppins,sans-serif;letter-spacing:.06em}
@media(max-width:1050px){
  .tsg-common-header__shell{grid-template-columns:minmax(300px,.9fr) minmax(0,1.1fr);min-height:320px}
  .tsg-common-header__copy{padding:28px 26px}
  .tsg-common-header__media img{min-height:320px}
}
@media(max-width:760px){
  .tsg-common-header{padding:10px 0 4px}
  .tsg-common-header__shell{grid-template-columns:1fr;border-radius:24px}
  .tsg-common-header__copy{padding:25px 20px 23px;order:2}
  .tsg-common-header__media{order:1;height:205px}
  .tsg-common-header__media img{min-height:205px;height:205px}
  .tsg-common-header__copy h2{font-size:26px}
  .tsg-common-header__copy>p{margin:12px 0 17px}
  .tsg-common-header__marquee{height:116px;margin-bottom:18px}
  .tsg-common-header__pill{min-height:32px;padding:0 12px;font-size:10px}
  .tsg-common-header__caption{right:12px;bottom:12px}
}
@media(prefers-reduced-motion:reduce){
  .tsg-common-header__marquee{height:auto;max-height:128px;overflow-y:auto;overflow-x:hidden;mask-image:none;-webkit-mask-image:none}
  .tsg-common-header__marquee-track{animation:none!important;transform:none!important}
  .tsg-common-header__marquee-set[aria-hidden="true"]{display:none}
  .tsg-common-header__media img{transform:none!important;transition:none!important}
}


/* V1.6.50 — Actes en grille renforcée + suivi des demandes */
.tsg-acte-card__demo{display:inline-flex!important;align-items:center!important;min-height:22px!important;padding:0 7px!important;border-radius:999px!important;background:rgba(218,72,22,.10)!important;color:#b4421b!important;border:1px solid rgba(218,72,22,.18)!important;font:800 8px/1 Poppins,sans-serif!important;letter-spacing:.07em!important}
.tsg-acte-page-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}
.tsg-demo-actes-remove{min-height:40px;padding:0 13px;border:1px solid rgba(218,72,22,.20);border-radius:12px;background:rgba(218,72,22,.055);color:#a33d1d;font:700 10px/1 Poppins,sans-serif;cursor:pointer}
.tsg-demo-actes-remove:hover{background:rgba(218,72,22,.10)}

/* Les documents publiés restent en colonnes dans l'espace interne également. */
.tsg-acte-admin-items{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important;align-items:stretch}
.tsg-acte-admin-item{grid-template-columns:42px minmax(0,1fr)!important;align-content:start!important;min-height:155px!important;padding:14px!important}
.tsg-acte-admin-item__actions{grid-column:1/-1!important;justify-content:flex-end!important;margin-top:auto!important;padding-top:8px!important;border-top:1px solid rgba(59,30,123,.06)}
.tsg-acte-admin-item.is-demo{border-color:rgba(218,72,22,.17)!important;background:linear-gradient(135deg,#fff,rgba(218,72,22,.035),rgba(143,175,116,.05))!important}
.tsg-acte-admin-item span b{color:#b4421b;font-size:8px}

/* Dossiers & suivi — badge dans le menu */
.tsg-internal-nav a{position:relative}
.tsg-internal-nav__badge{margin-left:auto;min-width:23px;height:23px;padding:0 6px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#DA4816;color:#fff;font:800 9px/1 Poppins,sans-serif;font-style:normal;box-shadow:0 5px 12px rgba(218,72,22,.22)}
.tsg-internal-nav a.is-active .tsg-internal-nav__badge{background:#fff;color:#DA4816}

/* Communication demandeur */
.tsg-request-detail.is-portal{position:relative}
.tsg-request-communication-notice{grid-column:1/-1;margin-bottom:12px;padding:13px 15px;border-radius:14px;font:600 11px/1.5 Poppins,sans-serif}
.tsg-request-communication-notice.is-success{background:rgba(82,110,65,.09);border:1px solid rgba(82,110,65,.16);color:#456035}
.tsg-request-communication-notice.is-error{background:rgba(218,72,22,.07);border:1px solid rgba(218,72,22,.16);color:#9f3c1d}
.tsg-request-communication-panel{border-top:3px solid rgba(218,72,22,.55)!important}
.tsg-request-panel-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:14px}
.tsg-request-panel-heading>div>span{display:block;color:#DA4816;font:800 8px/1 Poppins,sans-serif;letter-spacing:.12em;margin-bottom:7px}
.tsg-request-panel-heading h2{margin:0 0 5px!important}
.tsg-request-panel-heading p{margin:0!important;color:#7a7080;font-size:11px;line-height:1.55}
.tsg-request-panel-heading>strong{max-width:260px;padding:7px 9px;border-radius:10px;background:rgba(59,30,123,.055);color:#3B1E7B;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tsg-request-communication-choices{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
.tsg-request-communication-choices button{min-height:42px;border:1px solid rgba(59,30,123,.10);border-radius:12px;background:#fff;color:#61556c;font:700 10px/1 Poppins,sans-serif;cursor:pointer;transition:.2s ease}
.tsg-request-communication-choices button:hover{border-color:rgba(218,72,22,.28);transform:translateY(-1px)}
.tsg-request-communication-choices button.is-active{background:linear-gradient(105deg,#3B1E7B,#526E41);color:#fff;border-color:transparent;box-shadow:inset 0 -3px 0 rgba(218,72,22,.72),0 8px 18px rgba(59,30,123,.10)}
.tsg-request-communication-form{display:grid;gap:11px}
.tsg-request-communication-form>label{display:grid;gap:6px;color:#62566d;font:700 9px/1.3 Poppins,sans-serif}
.tsg-request-communication-form input[type=text],.tsg-request-communication-form textarea{width:100%;box-sizing:border-box;border:1px solid rgba(59,30,123,.11);border-radius:13px;background:#fff;padding:11px 12px;color:#332640;font:500 12px/1.55 Poppins,sans-serif;outline:none}
.tsg-request-communication-form textarea{resize:vertical;min-height:125px}
.tsg-request-followup-check{display:flex!important;grid-template-columns:none!important;flex-direction:row!important;align-items:flex-start;gap:9px!important;padding:10px 11px;border-radius:12px;background:rgba(143,175,116,.075);font-weight:600!important;line-height:1.45!important}
.tsg-request-followup-check input{margin-top:2px}
.tsg-request-communication-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:3px}
.tsg-request-communication-actions small{color:#81778a;font-size:9px}
.tsg-request-communication-actions button{min-height:43px;padding:0 16px;border:0;border-radius:12px;background:linear-gradient(105deg,#3B1E7B,#526E41);color:#fff;font:700 10px/1 Poppins,sans-serif;box-shadow:inset 0 -3px 0 rgba(218,72,22,.72);cursor:pointer}
.tsg-request-no-email{padding:14px;border-radius:14px;background:rgba(218,72,22,.06);border:1px dashed rgba(218,72,22,.18)}
.tsg-request-no-email strong{color:#a43e1d}.tsg-request-no-email p{margin:4px 0 0;color:#7d6c70;font-size:11px}
.tsg-request-note-form{display:grid;gap:8px;margin-bottom:16px}.tsg-request-note-form textarea{width:100%;box-sizing:border-box;border-radius:12px;border:1px solid rgba(59,30,123,.11);padding:10px 11px;font:500 11px/1.5 Poppins,sans-serif}
.tsg-request-note-form button{justify-self:start}
.tsg-request-timeline{display:grid;gap:9px}
.tsg-request-timeline article{position:relative;margin:0!important;padding:13px 14px 13px 17px!important;border:1px solid rgba(59,30,123,.08)!important;border-radius:14px!important;background:linear-gradient(120deg,#fff,rgba(59,30,123,.022))!important}
.tsg-request-timeline article:before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:3px;border-radius:0 3px 3px 0;background:#8FAF74}
.tsg-request-timeline article.is-message:before{background:#3B1E7B}.tsg-request-timeline article.is-reminder:before{background:#DA4816}
.tsg-request-timeline__top{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.tsg-request-timeline__top strong{font-size:10px}.tsg-request-timeline__top small{margin-left:auto;font-size:9px;color:#8a808f}
.tsg-request-timeline__kind{padding:5px 7px!important;border-radius:999px;background:rgba(143,175,116,.10);color:#526E41!important;font:800 8px/1 Poppins,sans-serif!important;text-transform:uppercase;letter-spacing:.05em}
.is-message .tsg-request-timeline__kind{background:rgba(59,30,123,.07);color:#3B1E7B!important}.is-reminder .tsg-request-timeline__kind{background:rgba(218,72,22,.08);color:#b4421b!important}
.tsg-request-timeline h3{margin:8px 0 4px!important;font-size:11px!important;color:#39294b}.tsg-request-timeline p{margin:5px 0!important;color:#665d6d!important;font-size:10px!important;line-height:1.55!important}
.tsg-request-timeline__recipient{display:block;margin-top:7px!important;color:#756b7d!important;font-size:9px!important}

@media(max-width:1180px){.tsg-acte-admin-items{grid-template-columns:1fr!important}}
@media(max-width:720px){.tsg-acte-page-actions{width:100%;justify-content:flex-start}.tsg-request-panel-heading{flex-direction:column}.tsg-request-panel-heading>strong{max-width:100%}.tsg-request-communication-choices{grid-template-columns:1fr}.tsg-request-communication-actions{align-items:stretch;flex-direction:column}.tsg-request-communication-actions button{width:100%}.tsg-request-timeline__top small{width:100%;margin-left:0}}


/* V1.6.51 — Header commun : composition fidèle à la référence, actions multiples */
.tsg-common-header{
  padding:18px 0 10px!important;
  background:linear-gradient(180deg,rgba(7,19,36,.035),rgba(255,255,255,0))!important;
}
.tsg-common-header__shell{
  display:grid!important;
  grid-template-columns:minmax(330px,.56fr) minmax(0,1.44fr)!important;
  gap:18px!important;
  min-height:500px!important;
  padding:16px!important;
  overflow:hidden!important;
  border:1px solid rgba(23,34,55,.08)!important;
  border-radius:32px!important;
  background:
    radial-gradient(circle at 20% 0,rgba(59,30,123,.16),transparent 31%),
    linear-gradient(145deg,#081527 0%,#0b1830 100%)!important;
  box-shadow:0 25px 68px rgba(23,28,42,.14)!important;
}
.tsg-common-header__copy{
  justify-content:flex-start!important;
  padding:28px 24px 22px!important;
  border-radius:25px!important;
  background:
    radial-gradient(circle at 11% 86%,rgba(45,105,211,.35),transparent 42%),
    radial-gradient(circle at 92% 4%,rgba(143,175,116,.13),transparent 25%),
    linear-gradient(165deg,#0e1e3b 0%,#17356d 58%,#245ebd 140%)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035)!important;
}
.tsg-common-header__copy:before{
  width:240px!important;height:240px!important;
  left:-120px!important;top:-145px!important;
  border-color:rgba(255,255,255,.045)!important;
  box-shadow:0 0 0 36px rgba(255,255,255,.018),0 0 0 72px rgba(255,255,255,.012)!important;
}
.tsg-common-header__top{position:relative;z-index:2}
.tsg-common-header__brandline{margin-bottom:10px!important}
.tsg-common-header__copy h2{
  max-width:390px!important;
  font-size:clamp(24px,1.55vw,31px)!important;
  line-height:1.08!important;
}
.tsg-common-header__copy>p,
.tsg-common-header__top>p{
  max-width:390px!important;
  margin:10px 0 12px!important;
  color:rgba(255,255,255,.72)!important;
  font-size:11px!important;
  line-height:1.5!important;
}
.tsg-common-header__marquee{
  height:126px!important;
  margin:0 0 14px!important;
  padding:2px 0!important;
  mask-image:linear-gradient(180deg,transparent,#000 10%,#000 90%,transparent)!important;
  -webkit-mask-image:linear-gradient(180deg,transparent,#000 10%,#000 90%,transparent)!important;
}
.tsg-common-header__marquee-set{gap:8px!important;padding-bottom:8px!important}
.tsg-common-header__pill{
  min-height:34px!important;
  padding:0 14px!important;
  border:1px solid rgba(255,255,255,.88)!important;
  background:linear-gradient(180deg,#fff,#f6f8fb)!important;
  box-shadow:0 8px 18px rgba(0,0,0,.13)!important;
  color:#273145!important;
  font-size:11px!important;
}
.tsg-common-header__pill:nth-child(3n+2){margin-left:28px!important}
.tsg-common-header__pill:nth-child(3n){margin-left:8px!important}
body.tsg-motion-enabled .tsg-common-header__marquee-track{animation-duration:17s!important}

.tsg-common-header__action-card{
  position:relative;
  z-index:3;
  margin-top:auto;
  padding:16px 16px 14px;
  border-radius:20px;
  background:#fff;
  box-shadow:0 16px 32px rgba(1,11,27,.19);
  color:#243047;
}
.tsg-common-header__action-heading{display:flex;align-items:end;justify-content:space-between;gap:10px;margin-bottom:12px}
.tsg-common-header__action-heading span{color:#8a8292;font:700 8px/1 Poppins,sans-serif;letter-spacing:.11em}
.tsg-common-header__action-heading strong{color:#17243c;font:700 12px/1.2 Poppins,sans-serif;text-align:right}
.tsg-common-header__actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.tsg-common-header__action{
  min-width:0;
  min-height:62px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:8px;
  padding:9px;
  border:1px solid rgba(59,30,123,.08);
  border-radius:13px;
  background:linear-gradient(150deg,#fbfbfd,#f4f6fa);
  color:#312741!important;
  text-decoration:none!important;
  transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.tsg-common-header__action i{
  width:24px;height:24px;
  display:grid;place-items:center;
  border-radius:8px;
  background:rgba(59,30,123,.08);
  color:#DA4816;
  font:800 11px/1 Poppins,sans-serif;
  font-style:normal;
}
.tsg-common-header__action span{
  overflow:hidden;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  color:#2e2840;
  font:700 9px/1.25 Poppins,sans-serif;
}
.tsg-common-header__action:hover{
  transform:translateY(-2px);
  border-color:rgba(218,72,22,.24);
  box-shadow:0 8px 16px rgba(59,30,123,.08);
}
.tsg-common-header__progress{
  display:block;
  height:5px;
  margin-top:12px;
  overflow:hidden;
  border-radius:999px;
  background:#e9ebef;
}
.tsg-common-header__progress i{
  display:block;
  width:64%;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,#3B1E7B 0%,#3967c7 55%,#8FAF74 82%,#DA4816 100%);
}
.tsg-common-header__media{
  border-radius:25px!important;
  overflow:hidden!important;
  background:#ded8cb!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.20)!important;
}
.tsg-common-header__media:after{
  background:
    linear-gradient(90deg,rgba(7,20,39,.12),transparent 24%),
    linear-gradient(180deg,transparent 60%,rgba(7,20,39,.18))!important;
}
.tsg-common-header__media img{
  min-height:468px!important;
  height:100%!important;
  object-position:center!important;
}
.tsg-common-header__image-accent{
  right:20px!important;
  top:20px!important;
  width:10px!important;height:10px!important;
  background:#DA4816!important;
  box-shadow:0 0 0 7px rgba(218,72,22,.12)!important;
}
.tsg-common-header__media-actions{
  position:absolute;
  z-index:4;
  left:50%;
  bottom:22px;
  transform:translateX(-50%);
  display:flex;
  align-items:center;
  gap:7px;
}
.tsg-common-header__media-actions a{
  width:54px;height:42px;
  display:grid;place-items:center;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.28);
  border-radius:12px;
  background:rgba(17,29,47,.58);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  color:#fff!important;
  text-decoration:none!important;
  box-shadow:0 9px 19px rgba(0,0,0,.18);
  transition:transform .2s ease,background .2s ease;
}
.tsg-common-header__media-actions a span{
  width:28px;height:28px;
  display:grid;place-items:center;
  border-radius:9px;
  background:rgba(255,255,255,.90);
  color:#3B1E7B;
  font:800 12px/1 Poppins,sans-serif;
}
.tsg-common-header__media-actions a:nth-child(2) span{color:#DA4816}
.tsg-common-header__media-actions a:nth-child(3) span{color:#526E41}
.tsg-common-header__media-actions a:hover{transform:translateY(-3px);background:rgba(59,30,123,.72)}
.tsg-common-header__caption{left:18px!important;right:auto!important;bottom:18px!important}

@media(max-width:1050px){
  .tsg-common-header__shell{
    grid-template-columns:minmax(300px,.72fr) minmax(0,1.28fr)!important;
    min-height:430px!important;
    gap:14px!important;
    padding:14px!important;
  }
  .tsg-common-header__copy{padding:23px 20px 18px!important}
  .tsg-common-header__media img{min-height:402px!important}
  .tsg-common-header__actions{grid-template-columns:1fr!important}
  .tsg-common-header__action{min-height:42px!important;flex-direction:row!important;align-items:center!important;justify-content:flex-start!important}
  .tsg-common-header__action span{-webkit-line-clamp:1!important}
}
@media(max-width:760px){
  .tsg-common-header__shell{
    grid-template-columns:1fr!important;
    gap:12px!important;
    min-height:0!important;
    padding:12px!important;
    border-radius:25px!important;
  }
  .tsg-common-header__copy{order:2!important;border-radius:20px!important;padding:21px 17px 17px!important}
  .tsg-common-header__media{order:1!important;height:245px!important;border-radius:20px!important}
  .tsg-common-header__media img{height:245px!important;min-height:245px!important}
  .tsg-common-header__copy h2{font-size:23px!important}
  .tsg-common-header__marquee{height:112px!important;margin-bottom:12px!important}
  .tsg-common-header__actions{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .tsg-common-header__action{min-height:60px!important;flex-direction:column!important;align-items:flex-start!important}
  .tsg-common-header__action span{-webkit-line-clamp:2!important}
  .tsg-common-header__media-actions{bottom:14px!important}
  .tsg-common-header__caption{left:12px!important;bottom:12px!important}
}
@media(max-width:430px){
  .tsg-common-header__actions{grid-template-columns:1fr!important}
  .tsg-common-header__action{min-height:44px!important;flex-direction:row!important;align-items:center!important}
  .tsg-common-header__action span{-webkit-line-clamp:1!important}
  .tsg-common-header__media-actions a{width:48px!important;height:38px!important}
}
@media(prefers-reduced-motion:reduce){
  .tsg-common-header__action,.tsg-common-header__media-actions a{transition:none!important}
}


/* V1.6.52 — Informations du header cliquables + personnalisation par page */
a.tsg-common-header__pill{
  text-decoration:none!important;
  cursor:pointer;
}
.tsg-common-header__pill>span{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
a.tsg-common-header__pill:hover,
a.tsg-common-header__pill:focus-visible{
  border-color:rgba(218,72,22,.48)!important;
  box-shadow:0 9px 20px rgba(0,0,0,.16),inset 0 -2px 0 rgba(218,72,22,.46)!important;
  transform:translateX(3px);
}
a.tsg-common-header__pill:focus-visible{
  outline:2px solid rgba(255,255,255,.95);
  outline-offset:2px;
}

/* Administration du header par page */
.tsg-header-item-editor{
  display:grid!important;
  gap:10px!important;
}
.tsg-header-item-editor label{
  display:grid;
  gap:6px;
}
.tsg-header-item-editor label span{
  color:#6d6475;
  font-size:11px;
  font-weight:700;
}
.tsg-page-header-personalization{
  margin-top:22px!important;
  border-top:4px solid rgba(59,30,123,.12)!important;
}
.tsg-page-header-picker{
  display:grid;
  grid-template-columns:minmax(240px,1fr) auto;
  align-items:end;
  gap:12px;
  margin:16px 0 8px;
  padding:16px;
  border-radius:18px;
  background:linear-gradient(135deg,rgba(59,30,123,.045),rgba(143,175,116,.08));
}
.tsg-page-header-picker label{
  display:grid;
  gap:7px;
  color:#554b61;
  font-size:11px;
  font-weight:700;
}
.tsg-page-header-picker select{
  width:100%;
  min-height:44px;
  border:1px solid rgba(59,30,123,.13);
  border-radius:13px;
  padding:0 12px;
  background:#fff;
}
.tsg-page-header-custom-form{
  margin-top:18px;
  padding:18px;
  border:1px solid rgba(59,30,123,.09);
  border-radius:20px;
  background:#fff;
}
.tsg-page-header-custom-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-bottom:16px;
  padding-bottom:14px;
  border-bottom:1px solid rgba(59,30,123,.08);
}
.tsg-page-header-custom-head>div{
  display:grid;
  gap:5px;
}
.tsg-page-header-custom-head>div span{
  color:#DA4816;
  font:700 9px/1 Poppins,sans-serif;
  letter-spacing:.12em;
}
.tsg-page-header-custom-head>div strong{
  color:#2f2440;
  font-size:16px;
}
.tsg-page-header-custom-actions{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin-top:16px;
}
.tsg-page-header-custom-actions span{
  color:#796f83;
  font-size:11px;
}
.tsg-page-header-empty{
  margin-top:16px;
  padding:18px;
  border:1px dashed rgba(59,30,123,.18);
  border-radius:16px;
  background:rgba(59,30,123,.025);
  color:#746b7c;
  font-size:12px;
}
@media(max-width:720px){
  .tsg-page-header-picker{grid-template-columns:1fr}
  .tsg-page-header-custom-head{align-items:flex-start;flex-direction:column}
}


/* V1.6.53 — Header commun : palette verte douce inspirée du logo */
.tsg-common-header__shell{
  background:
    radial-gradient(circle at 16% 0,rgba(255,255,255,.10),transparent 30%),
    radial-gradient(circle at 92% 90%,rgba(143,175,116,.13),transparent 34%),
    linear-gradient(145deg,#43533f 0%,#52684b 48%,#607457 100%)!important;
  border-color:rgba(82,110,65,.20)!important;
  box-shadow:0 25px 68px rgba(56,75,48,.14)!important;
}

.tsg-common-header__copy{
  background:
    radial-gradient(circle at 12% 86%,rgba(255,255,255,.10),transparent 42%),
    radial-gradient(circle at 92% 4%,rgba(255,255,255,.08),transparent 28%),
    linear-gradient(160deg,#536b49 0%,#69815d 58%,#7f9870 118%)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.10),
    0 12px 28px rgba(60,78,52,.10)!important;
}

.tsg-common-header__copy:before{
  border-color:rgba(255,255,255,.055)!important;
  box-shadow:
    0 0 0 36px rgba(255,255,255,.020),
    0 0 0 72px rgba(255,255,255,.012)!important;
}

.tsg-common-header__brandline span{
  background:#DA4816!important;
  box-shadow:0 0 0 5px rgba(218,72,22,.12)!important;
}

.tsg-common-header__pill{
  border-color:rgba(255,255,255,.80)!important;
  background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(247,249,245,.96))!important;
}

.tsg-common-header__progress i{
  background:linear-gradient(90deg,#3B1E7B 0%,#526E41 40%,#8FAF74 76%,#DA4816 100%)!important;
}

.tsg-common-header__media-actions a:hover{
  background:rgba(82,110,65,.80)!important;
}

@media(max-width:760px){
  .tsg-common-header__shell{
    background:
      radial-gradient(circle at 16% 0,rgba(255,255,255,.09),transparent 30%),
      linear-gradient(145deg,#465942,#5f7555)!important;
  }
}


/* V1.6.54 — Bloc de défilement beige, fond général du header inchangé */
.tsg-common-header__marquee{
  padding:10px 10px!important;
  border:1px solid rgba(126,104,72,.14)!important;
  border-radius:18px!important;
  background:
    radial-gradient(circle at 12% 12%,rgba(255,255,255,.52),transparent 34%),
    linear-gradient(145deg,#eee4d3 0%,#f4ecdf 52%,#e9ddca 100%)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.58),
    0 8px 20px rgba(84,70,48,.08)!important;
}

.tsg-common-header__pill{
  border-color:rgba(126,104,72,.12)!important;
  background:rgba(255,255,255,.94)!important;
  color:#3a342c!important;
  box-shadow:0 6px 14px rgba(84,70,48,.10)!important;
}

a.tsg-common-header__pill:hover,
a.tsg-common-header__pill:focus-visible{
  border-color:rgba(218,72,22,.38)!important;
  box-shadow:
    0 8px 18px rgba(84,70,48,.13),
    inset 0 -2px 0 rgba(218,72,22,.40)!important;
}

@media(max-width:760px){
  .tsg-common-header__marquee{
    padding:9px!important;
    border-radius:16px!important;
  }
}


/* V1.6.55 — Tout le panneau gauche du header passe en beige */
.tsg-common-header__copy{
  background:
    radial-gradient(circle at 10% 8%,rgba(255,255,255,.66),transparent 30%),
    radial-gradient(circle at 94% 94%,rgba(143,175,116,.12),transparent 32%),
    linear-gradient(150deg,#efe5d5 0%,#f5ede1 48%,#e9ddca 100%)!important;
  border:1px solid rgba(126,104,72,.14)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.72),
    0 12px 28px rgba(84,70,48,.10)!important;
  color:#2f2a24!important;
}

.tsg-common-header__copy:before{
  border-color:rgba(126,104,72,.055)!important;
  box-shadow:
    0 0 0 36px rgba(126,104,72,.018),
    0 0 0 72px rgba(126,104,72,.010)!important;
}

.tsg-common-header__brandline strong{
  color:#5f584f!important;
}

.tsg-common-header__copy h2{
  color:#28241f!important;
}

.tsg-common-header__copy>p,
.tsg-common-header__top>p{
  color:#6f675d!important;
}

.tsg-common-header__marquee{
  background:
    radial-gradient(circle at 12% 12%,rgba(255,255,255,.60),transparent 34%),
    linear-gradient(145deg,#e9decb 0%,#f0e6d7 52%,#e4d6c2 100%)!important;
  border-color:rgba(126,104,72,.13)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.66),
    0 7px 17px rgba(84,70,48,.07)!important;
}

.tsg-common-header__pill{
  background:rgba(255,255,255,.96)!important;
  color:#342f29!important;
  border-color:rgba(126,104,72,.11)!important;
}

.tsg-common-header__action-card{
  background:rgba(255,255,255,.96)!important;
  border:1px solid rgba(126,104,72,.10)!important;
  box-shadow:0 14px 30px rgba(84,70,48,.10)!important;
}

.tsg-common-header__action-heading span{
  color:#8b8072!important;
}

.tsg-common-header__action-heading strong{
  color:#292521!important;
}

.tsg-common-header__action{
  background:linear-gradient(150deg,#fff,#f8f5ef)!important;
  border-color:rgba(126,104,72,.10)!important;
}

.tsg-common-header__action span{
  color:#322d27!important;
}

@media(max-width:760px){
  .tsg-common-header__copy{
    background:
      radial-gradient(circle at 10% 8%,rgba(255,255,255,.62),transparent 30%),
      linear-gradient(150deg,#eee4d4,#f4ecdf)!important;
  }
}


/* V1.6.56 — Beige très léger, presque blanc cassé */
.tsg-common-header__copy{
  background:
    radial-gradient(circle at 10% 8%,rgba(255,255,255,.90),transparent 32%),
    radial-gradient(circle at 94% 94%,rgba(143,175,116,.055),transparent 34%),
    linear-gradient(150deg,#fbf8f2 0%,#fdfbf7 48%,#f6f1e8 100%)!important;
  border-color:rgba(126,104,72,.085)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.90),
    0 12px 28px rgba(84,70,48,.055)!important;
}

.tsg-common-header__marquee{
  background:
    radial-gradient(circle at 12% 12%,rgba(255,255,255,.88),transparent 34%),
    linear-gradient(145deg,#f7f2e9 0%,#fbf8f2 52%,#f3ede3 100%)!important;
  border-color:rgba(126,104,72,.085)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.85),
    0 7px 17px rgba(84,70,48,.045)!important;
}

.tsg-common-header__action-card{
  background:rgba(255,255,255,.985)!important;
  border-color:rgba(126,104,72,.075)!important;
  box-shadow:0 12px 28px rgba(84,70,48,.055)!important;
}

.tsg-common-header__action{
  background:linear-gradient(150deg,#fff,#fbfaf7)!important;
  border-color:rgba(126,104,72,.075)!important;
}

@media(max-width:760px){
  .tsg-common-header__copy{
    background:
      radial-gradient(circle at 10% 8%,rgba(255,255,255,.88),transparent 30%),
      linear-gradient(150deg,#faf7f1,#fdfbf7)!important;
  }
}


/* V1.6.57 — Panneau gauche blanc cassé très léger */
.tsg-common-header__copy{
  background:
    radial-gradient(circle at 10% 8%,rgba(255,255,255,.96),transparent 34%),
    radial-gradient(circle at 94% 94%,rgba(143,175,116,.028),transparent 36%),
    linear-gradient(150deg,#fdfcf9 0%,#fffefa 52%,#faf8f2 100%)!important;
  border-color:rgba(126,104,72,.060)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.96),
    0 12px 28px rgba(84,70,48,.040)!important;
}

.tsg-common-header__marquee{
  background:
    radial-gradient(circle at 12% 12%,rgba(255,255,255,.94),transparent 34%),
    linear-gradient(145deg,#fbfaf6 0%,#fffefa 52%,#f8f5ee 100%)!important;
  border-color:rgba(126,104,72,.060)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.92),
    0 7px 17px rgba(84,70,48,.032)!important;
}

.tsg-common-header__action-card{
  background:rgba(255,255,255,.995)!important;
  border-color:rgba(126,104,72,.055)!important;
  box-shadow:0 12px 28px rgba(84,70,48,.040)!important;
}

.tsg-common-header__action{
  background:linear-gradient(150deg,#ffffff,#fdfcf9)!important;
  border-color:rgba(126,104,72,.055)!important;
}

@media(max-width:760px){
  .tsg-common-header__copy{
    background:
      radial-gradient(circle at 10% 8%,rgba(255,255,255,.95),transparent 30%),
      linear-gradient(150deg,#fdfcf9,#fffefa)!important;
  }
}


/* V1.6.58 — Contour violet du défilement + pause orange + dégradé vert premium */
.tsg-common-header__shell{
  background:
    radial-gradient(circle at 12% 6%,rgba(255,255,255,.12),transparent 27%),
    radial-gradient(circle at 88% 92%,rgba(143,175,116,.18),transparent 34%),
    radial-gradient(circle at 64% 18%,rgba(255,255,255,.055),transparent 25%),
    linear-gradient(135deg,#455c40 0%,#526e49 35%,#66805a 68%,#738d64 100%)!important;
  border-color:rgba(82,110,65,.18)!important;
  box-shadow:
    0 26px 70px rgba(55,76,49,.15),
    inset 0 1px 0 rgba(255,255,255,.07)!important;
}

/* Zone de défilement : violet discret au repos */
.tsg-common-header__marquee{
  border:1px solid rgba(59,30,123,.18)!important;
  transition:
    border-color .22s ease,
    box-shadow .22s ease,
    background .22s ease!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.92),
    0 7px 17px rgba(59,30,123,.045)!important;
}

/* Survol / clavier : pause + passage orange */
.tsg-common-header__marquee:hover,
.tsg-common-header__marquee:focus-within{
  border-color:rgba(218,72,22,.52)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.95),
    0 9px 22px rgba(218,72,22,.09)!important;
}

.tsg-common-header__marquee:hover .tsg-common-header__marquee-track,
.tsg-common-header__marquee:focus-within .tsg-common-header__marquee-track{
  animation-play-state:paused!important;
}

/* Le contour des capsules reste très léger pour ne pas doubler visuellement le cadre */
.tsg-common-header__pill{
  border-color:rgba(59,30,123,.10)!important;
}

a.tsg-common-header__pill:hover,
a.tsg-common-header__pill:focus-visible{
  border-color:rgba(218,72,22,.42)!important;
}

/* Mobile : le même dégradé vert, légèrement simplifié */
@media(max-width:760px){
  .tsg-common-header__shell{
    background:
      radial-gradient(circle at 12% 5%,rgba(255,255,255,.10),transparent 28%),
      radial-gradient(circle at 92% 94%,rgba(143,175,116,.15),transparent 34%),
      linear-gradient(145deg,#485f43 0%,#5b7451 52%,#708862 100%)!important;
  }
}

@media(prefers-reduced-motion:reduce){
  .tsg-common-header__marquee{transition:none!important}
}


/* V1.6.59 — Contour violet sur chaque capsule défilante */
.tsg-common-header__pill{
  border:1px solid rgba(59,30,123,.24)!important;
  box-shadow:
    0 6px 14px rgba(84,70,48,.08),
    0 0 0 1px rgba(59,30,123,.025)!important;
  transition:
    border-color .20s ease,
    box-shadow .20s ease,
    transform .20s ease!important;
}

a.tsg-common-header__pill:hover,
a.tsg-common-header__pill:focus-visible{
  border-color:rgba(218,72,22,.62)!important;
  box-shadow:
    0 8px 18px rgba(84,70,48,.10),
    0 0 0 2px rgba(218,72,22,.07),
    inset 0 -2px 0 rgba(218,72,22,.28)!important;
}

/* Le cadre général de la zone reste discret : l'accent violet porte surtout sur les capsules. */
.tsg-common-header__marquee{
  border-color:rgba(59,30,123,.10)!important;
}
.tsg-common-header__marquee:hover,
.tsg-common-header__marquee:focus-within{
  border-color:rgba(218,72,22,.26)!important;
}


/* V1.6.60 — Suppression des traits verticaux du grand bloc de défilement */
.tsg-common-header__marquee{
  border-left-color:transparent!important;
  border-right-color:transparent!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.92),
    0 6px 16px rgba(59,30,123,.025)!important;
}

.tsg-common-header__marquee:hover,
.tsg-common-header__marquee:focus-within{
  border-left-color:transparent!important;
  border-right-color:transparent!important;
}


/* V1.6.61 — Personnalisation de l'image du header page par page */
.tsg-page-header-image-override{
  display:grid;
  grid-template-columns:minmax(220px,.65fr) minmax(280px,1.35fr);
  gap:18px;
  align-items:start;
  margin:0 0 18px;
  padding:16px;
  border:1px solid rgba(59,30,123,.09);
  border-radius:18px;
  background:linear-gradient(135deg,rgba(59,30,123,.028),rgba(143,175,116,.055));
}
.tsg-page-header-image-override>div:first-child{
  display:grid;
  gap:6px;
  padding:6px 2px;
}
.tsg-page-header-image-override>div:first-child>span{
  color:#DA4816;
  font:700 9px/1 Poppins,sans-serif;
  letter-spacing:.12em;
}
.tsg-page-header-image-override>div:first-child>strong{
  color:#2f2440;
  font-size:15px;
}
.tsg-page-header-image-override>div:first-child>p{
  margin:0;
  color:#786f82;
  font-size:11px;
  line-height:1.5;
}
.tsg-page-header-image-override .tsg-media-field{
  margin:0!important;
}
@media(max-width:760px){
  .tsg-page-header-image-override{grid-template-columns:1fr}
}


/* V1.6.63 — Services municipaux : page ludique harmonisée Accueil / Délibérations */
.tsg-municipal-services{
  padding:20px 0 78px;
  background:
    radial-gradient(circle at 92% 8%,rgba(143,175,116,.09),transparent 25%),
    linear-gradient(180deg,#fff 0%,rgba(59,30,123,.022) 46%,rgba(143,175,116,.055) 100%);
}
.tsg-municipal-services__intro{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:28px;
  margin-bottom:18px;
  padding:25px 28px;
  border:1px solid rgba(59,30,123,.08);
  border-radius:27px;
  background:
    radial-gradient(circle at 90% 15%,rgba(143,175,116,.12),transparent 28%),
    linear-gradient(120deg,rgba(59,30,123,.045),rgba(255,255,255,.97) 47%,rgba(143,175,116,.07));
  box-shadow:0 15px 38px rgba(40,25,58,.05);
}
.tsg-municipal-services__intro-copy{max-width:760px}
.tsg-municipal-services__intro h1{
  margin:8px 0 8px;
  color:#2b1e3c;
  font-size:clamp(28px,2.65vw,42px);
  line-height:1.06;
  letter-spacing:-.038em;
}
.tsg-municipal-services__intro p{margin:0;color:#716878;font-size:14px;line-height:1.6}
.tsg-municipal-services__intro-stats{display:flex;gap:9px;flex-wrap:wrap}
.tsg-municipal-services__intro-stats span{
  min-width:88px;
  padding:12px 14px;
  border:1px solid rgba(59,30,123,.08);
  border-radius:17px;
  background:rgba(255,255,255,.88);
  text-align:center;
}
.tsg-municipal-services__intro-stats strong{display:block;color:#3B1E7B;font:800 22px/1 Montserrat,Poppins,sans-serif}
.tsg-municipal-services__intro-stats small{display:block;margin-top:6px;color:#7a7182;font-size:9px;text-transform:uppercase;letter-spacing:.09em}

.tsg-municipal-services__quick{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:11px;
  margin-bottom:18px;
}
.tsg-municipal-quick{
  min-width:0;
  display:grid;
  grid-template-columns:42px minmax(0,1fr) 28px;
  align-items:center;
  gap:11px;
  min-height:82px;
  padding:13px 15px;
  border:1px solid rgba(59,30,123,.075);
  border-radius:20px;
  background:linear-gradient(135deg,#fff,rgba(59,30,123,.025) 62%,rgba(143,175,116,.065));
  color:#2c2337!important;
  text-decoration:none!important;
  box-shadow:0 10px 27px rgba(43,27,60,.04);
  transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease;
}
.tsg-municipal-quick:hover{transform:translateY(-3px);border-color:rgba(218,72,22,.24);box-shadow:0 18px 36px rgba(43,27,60,.075)}
.tsg-municipal-quick__icon{
  width:42px;height:42px;
  display:grid;place-items:center;
  border-radius:13px;
  background:linear-gradient(145deg,rgba(59,30,123,.09),rgba(143,175,116,.13));
  color:#3B1E7B;
  border-bottom:2px solid rgba(218,72,22,.68);
  font-weight:800;
}
.tsg-municipal-quick>span:nth-child(2){display:grid;gap:4px;min-width:0}
.tsg-municipal-quick strong{font-size:12px}
.tsg-municipal-quick small{color:#7a7180;font-size:10px;line-height:1.35}
.tsg-municipal-quick>b{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:#fff;color:#DA4816;font-size:14px}

.tsg-municipal-services__toolbar{
  display:grid;
  grid-template-columns:minmax(300px,.86fr) minmax(0,1.14fr);
  gap:14px;
  align-items:end;
  margin:6px 0 14px;
}
.tsg-municipal-services__search{position:relative;display:block}
.tsg-municipal-services__search>span{
  position:absolute;z-index:2;left:16px;top:50%;transform:translateY(-50%);
  color:#3B1E7B;font-size:20px;pointer-events:none
}
.tsg-municipal-services__search input{
  width:100%;height:50px;
  border:1px solid rgba(59,30,123,.11);
  border-radius:16px;
  background:#fff;
  padding:0 16px 0 44px;
  color:#312640;
  font:500 12px/1 Poppins,sans-serif;
  outline:none;
  box-shadow:0 7px 20px rgba(41,25,61,.035);
}
.tsg-municipal-services__search input:focus{
  border-color:rgba(59,30,123,.28);
  box-shadow:0 0 0 3px rgba(59,30,123,.055),0 8px 22px rgba(41,25,61,.045)
}
.tsg-municipal-services__filters{
  display:flex;
  justify-content:flex-end;
  gap:7px;
  overflow-x:auto;
  padding:3px 0 4px;
  scrollbar-width:none;
}
.tsg-municipal-services__filters::-webkit-scrollbar{display:none}
.tsg-municipal-services__filters button{
  flex:0 0 auto;
  min-height:42px;
  padding:0 13px;
  border:1px solid rgba(59,30,123,.10);
  border-radius:13px;
  background:#fff;
  color:#675d70;
  font:700 9px/1 Poppins,sans-serif;
  cursor:pointer;
  transition:.2s ease;
}
.tsg-municipal-services__filters button:hover{transform:translateY(-1px);border-color:rgba(218,72,22,.28);color:#3B1E7B}
.tsg-municipal-services__filters button.is-active{
  background:linear-gradient(105deg,#3B1E7B,#526E41);
  color:#fff;
  border-color:transparent;
  box-shadow:inset 0 -3px 0 rgba(218,72,22,.78),0 8px 20px rgba(59,30,123,.13)
}
.tsg-municipal-services__resultbar{
  display:flex;justify-content:space-between;align-items:center;
  margin:4px 0 12px;color:#7c7384;font-size:10px
}
.tsg-municipal-services__resultbar strong{color:#39294b;font-size:11px}

.tsg-municipal-services__grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:13px;
}
.tsg-municipal-card{
  position:relative;
  min-width:0;
  min-height:260px;
  display:flex;
  flex-direction:column;
  padding:19px 19px 17px;
  border:1px solid rgba(59,30,123,.085);
  border-radius:23px;
  background:
    radial-gradient(circle at 92% 8%,rgba(143,175,116,.09),transparent 27%),
    linear-gradient(140deg,rgba(255,255,255,.99),rgba(59,30,123,.022) 60%,rgba(143,175,116,.052));
  overflow:hidden;
  box-shadow:0 12px 34px rgba(43,27,60,.045);
  transition:transform .26s cubic-bezier(.2,.8,.2,1),box-shadow .26s ease,border-color .26s ease;
}
.tsg-municipal-card:before{
  content:"";
  position:absolute;
  left:0;bottom:0;
  width:0;height:3px;
  background:linear-gradient(90deg,#3B1E7B,#DA4816,#8FAF74);
  transition:width .35s ease
}
.tsg-municipal-card:hover{transform:translateY(-5px);border-color:rgba(59,30,123,.16);box-shadow:0 22px 48px rgba(43,27,60,.09)}
.tsg-municipal-card:hover:before{width:100%}
.tsg-municipal-card__top{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}
.tsg-municipal-card__icon{
  width:42px;height:42px;
  display:grid;place-items:center;
  border-radius:13px;
  background:linear-gradient(145deg,rgba(59,30,123,.10),rgba(143,175,116,.15));
  color:#3B1E7B;
  font-size:17px;
  box-shadow:0 7px 18px rgba(59,30,123,.06);
  border-bottom:2px solid rgba(218,72,22,.68)
}
.tsg-municipal-card__number{color:rgba(59,30,123,.23);font:800 24px/1 Montserrat,Poppins,sans-serif}
.tsg-municipal-card__eyebrow{color:#526E41;font:800 8px/1 Poppins,sans-serif;letter-spacing:.11em}
.tsg-municipal-card h2{margin:8px 0 8px;color:#2d2239;font-size:18px;line-height:1.18;letter-spacing:-.02em}
.tsg-municipal-card p{margin:0;color:#746b7a;font-size:11px;line-height:1.58}
.tsg-municipal-card>a{
  margin-top:auto;
  align-self:flex-start;
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:38px;
  padding:0 12px;
  border-radius:11px;
  background:linear-gradient(105deg,#3B1E7B,#526E41);
  color:#fff!important;
  text-decoration:none!important;
  font:700 9px/1 Poppins,sans-serif;
  box-shadow:inset 0 -2px 0 rgba(218,72,22,.76);
  transition:transform .18s ease,filter .18s ease
}
.tsg-municipal-card>a:hover{transform:translateY(-1px);filter:brightness(1.06)}
.tsg-municipal-card>a b{font-size:12px}

.tsg-municipal-services__noresult{
  padding:50px 24px;
  text-align:center;
  border:1px dashed rgba(59,30,123,.16);
  border-radius:22px;
  background:rgba(255,255,255,.74)
}
.tsg-municipal-services__noresult>span{
  width:48px;height:48px;margin:0 auto 10px;
  display:grid;place-items:center;border-radius:15px;
  background:rgba(59,30,123,.07);color:#3B1E7B;font-size:22px
}
.tsg-municipal-services__noresult h2{margin:0 0 6px;color:#342744;font-size:20px}
.tsg-municipal-services__noresult p{margin:0;color:#7c7383;font-size:12px}

.tsg-municipal-services__help{
  margin-top:22px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:24px 27px;
  border:1px solid rgba(59,30,123,.08);
  border-radius:25px;
  background:
    radial-gradient(circle at 95% 12%,rgba(218,72,22,.06),transparent 25%),
    linear-gradient(115deg,rgba(59,30,123,.055),#fff 48%,rgba(143,175,116,.10));
  box-shadow:0 13px 35px rgba(45,28,61,.045)
}
.tsg-municipal-services__help h2{margin:7px 0 6px;color:#2b2137;font-size:22px;letter-spacing:-.025em}
.tsg-municipal-services__help p{max-width:760px;margin:0;color:#766d7c;font-size:12px;line-height:1.55}
.tsg-municipal-services__help-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.tsg-municipal-services__help-actions a{
  min-height:43px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:0 14px;
  border-radius:12px;
  background:linear-gradient(105deg,#3B1E7B,#526E41);
  color:#fff!important;
  text-decoration:none!important;
  font:700 9px/1 Poppins,sans-serif;
  box-shadow:inset 0 -3px 0 rgba(218,72,22,.72)
}
.tsg-municipal-services__help-actions a.is-secondary{
  background:#fff;
  color:#3B1E7B!important;
  border:1px solid rgba(59,30,123,.12);
  box-shadow:inset 0 -3px 0 rgba(218,72,22,.22)
}

body.tsg-motion-enabled .tsg-municipal-card{animation:tsgServiceCardIn .5s both ease}
body.tsg-motion-enabled .tsg-municipal-card:nth-child(2){animation-delay:.04s}
body.tsg-motion-enabled .tsg-municipal-card:nth-child(3){animation-delay:.08s}
body.tsg-motion-enabled .tsg-municipal-card:nth-child(4){animation-delay:.12s}
body.tsg-motion-enabled .tsg-municipal-card:nth-child(5){animation-delay:.16s}
body.tsg-motion-enabled .tsg-municipal-card:nth-child(6){animation-delay:.20s}
body.tsg-motion-enabled .tsg-municipal-card:nth-child(7){animation-delay:.24s}
body.tsg-motion-enabled .tsg-municipal-card:nth-child(8){animation-delay:.28s}
@keyframes tsgServiceCardIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}

@media(max-width:1050px){
  .tsg-municipal-services__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tsg-municipal-services__toolbar{grid-template-columns:1fr}
  .tsg-municipal-services__filters{justify-content:flex-start}
}
@media(max-width:780px){
  .tsg-municipal-services{padding-bottom:54px}
  .tsg-municipal-services__intro{align-items:flex-start;flex-direction:column;padding:21px;border-radius:22px}
  .tsg-municipal-services__intro-stats{width:100%}
  .tsg-municipal-services__intro-stats span{flex:1;min-width:72px}
  .tsg-municipal-services__quick{grid-template-columns:1fr}
  .tsg-municipal-services__grid{grid-template-columns:1fr}
  .tsg-municipal-card{min-height:230px;border-radius:20px}
  .tsg-municipal-services__help{align-items:flex-start;flex-direction:column;padding:21px;border-radius:22px}
  .tsg-municipal-services__help-actions{justify-content:flex-start}
}
@media(prefers-reduced-motion:reduce){
  body.tsg-motion-enabled .tsg-municipal-card{animation:none!important}
  .tsg-municipal-card,.tsg-municipal-quick{transition:none!important}
}


/* V1.6.64 — Services municipaux rebuilt from supplied screenshots */
.tsg-vie-municipale{
  --vm-purple:#3f218d;
  --vm-purple-dark:#28115f;
  --vm-orange:#e84717;
  --vm-lime:#b8e33c;
  --vm-ink:#38207f;
  --vm-soft:#f8f7fb;
  background:#fbfafc;
  color:#38207f;
}
.tsg-vm-hero{
  position:relative;
  min-height:735px;
  overflow:hidden;
  background:
    linear-gradient(180deg,rgba(63,33,141,.04) 0%,rgba(63,33,141,.18) 38%,rgba(51,23,122,.96) 82%,rgba(51,23,122,1) 100%),
    var(--tsg-vm-hero) center top / 100% auto no-repeat,
    #3d2188;
}
.tsg-vm-hero__shade{
  position:absolute;inset:0;
  background:
    linear-gradient(90deg,rgba(59,30,123,.10),rgba(59,30,123,.02) 60%),
    linear-gradient(180deg,transparent 34%,rgba(61,31,137,.35) 57%,rgba(61,31,137,.96) 86%);
  pointer-events:none;
}
.tsg-vm-hero__content{position:relative;z-index:2;min-height:650px;display:flex;align-items:flex-end;padding-bottom:112px}
.tsg-vm-hero__copy{max-width:690px}
.tsg-vm-hero h1{
  margin:0 0 25px;
  color:#fff;
  font:800 clamp(39px,3.5vw,56px)/1.05 Montserrat,Poppins,sans-serif;
  letter-spacing:-.035em;
}
.tsg-vm-hero p{
  margin:0;
  color:rgba(255,255,255,.96);
  font:500 18px/1.48 Poppins,sans-serif;
}
.tsg-vm-jump{
  position:absolute;left:0;right:0;bottom:0;z-index:4;
  border-top:1px solid rgba(255,255,255,.19);
  background:#41218f;
}
.tsg-vm-jump__inner{
  min-height:88px;
  display:flex;
  align-items:center;
  gap:44px;
  overflow-x:auto;
  scrollbar-width:none;
}
.tsg-vm-jump__inner::-webkit-scrollbar{display:none}
.tsg-vm-jump span{flex:0 0 auto;color:#fff;font-size:15px}
.tsg-vm-jump a{
  flex:0 0 auto;
  color:#fff!important;
  text-decoration:none!important;
  font:700 13px/1 Poppins,sans-serif;
  padding:15px 18px;
  border-radius:999px;
}
.tsg-vm-jump a.is-active{background:#16043e;padding-inline:26px}

.tsg-vm-section{padding:78px 0}
.tsg-vm-section--mayor{background:#f8f7fb}
.tsg-vm-mayor-card{
  display:grid;
  grid-template-columns:minmax(360px,.82fr) minmax(0,1.18fr);
  gap:90px;
  align-items:center;
  padding:80px 100px;
  border-radius:24px;
  background:#fff;
  box-shadow:0 9px 42px rgba(56,32,127,.055);
}
.tsg-vm-mayor-card__media img{
  width:100%;aspect-ratio:1.04/1;
  object-fit:cover;
  border-radius:30px;
  display:block
}
.tsg-vm-mayor-card__content h2{
  margin:0 0 18px;color:var(--vm-purple);
  font:800 clamp(32px,2.9vw,48px)/1.08 Montserrat,Poppins,sans-serif;
  letter-spacing:-.025em;
}
.tsg-vm-mayor-card__lead{margin:0;color:#7858c0;font-size:16px;line-height:1.52}
.tsg-vm-mayor-tabs{
  margin:40px 0 44px;
  min-height:62px;
  padding:6px 8px;
  border-radius:999px;
  background:#e8ddfb;
  display:grid;
  grid-template-columns:54px repeat(3,1fr) 54px;
  align-items:center;
  gap:8px;
  color:#321272;
  font-weight:700;
  text-align:center;
}
.tsg-vm-mayor-tabs>span{padding:14px 10px;border-radius:999px}
.tsg-vm-mayor-tabs>span.is-active{background:var(--vm-lime)}
.tsg-vm-mayor-tabs__arrow{
  width:50px;height:50px!important;
  display:grid!important;place-items:center!important;
  padding:0!important;
  border-radius:50%!important;
  background:var(--vm-purple)!important;
  color:#fff!important;
  font-size:26px!important;
  font-weight:400!important
}
.tsg-vm-mayor-card__role{
  margin:0;
  color:#7858c0;
  font-size:16px;
  font-style:italic;
  line-height:1.7
}

.tsg-vm-section--functioning{background:#fbfafc;padding-top:20px}
.tsg-vm-heading{text-align:center;max-width:760px;margin:0 auto 80px}
.tsg-vm-heading h2{
  margin:0 0 34px;
  color:var(--vm-purple);
  font:800 clamp(35px,3vw,50px)/1.05 Montserrat,Poppins,sans-serif;
  letter-spacing:-.03em
}
.tsg-vm-heading p{margin:0;color:#765bb7;font-size:16px;line-height:1.75}
.tsg-vm-functions{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:28px 28px
}
.tsg-vm-function-card{
  min-height:118px;
  display:grid;
  grid-template-columns:226px minmax(0,1fr) 30px;
  align-items:center;
  gap:20px;
  padding:17px 24px;
  border:1.5px solid #4b269a;
  border-radius:16px;
  background:#fff;
  box-shadow:5px 6px 0 #4b269a;
}
.tsg-vm-function-card img{width:226px;height:72px;object-fit:cover;border-radius:12px;display:block}
.tsg-vm-function-card strong{
  color:#44218f;
  font:700 18px/1.45 Poppins,sans-serif
}
.tsg-vm-function-card>span{color:#2f3848;font-size:28px;text-align:center}

.tsg-vm-section--team-intro{background:#fbfafc;padding-top:80px}
.tsg-vm-team-intro{text-align:center;max-width:800px;margin:0 auto 140px}
.tsg-vm-orbit-title{position:relative;padding:52px 28px;margin:0 auto 32px}
.tsg-vm-orbit-title:before{
  content:"";position:absolute;inset:25px 35px;
  border:2px solid var(--vm-orange);border-radius:50%;transform:rotate(-4deg)
}
.tsg-vm-orbit-title i,.tsg-vm-orbit-title b{
  position:absolute;height:2px;background:var(--vm-orange);border-radius:999px
}
.tsg-vm-orbit-title i{width:210px;left:65px;top:24px;transform:rotate(-10deg)}
.tsg-vm-orbit-title b{width:160px;right:100px;top:52px;transform:rotate(-7deg)}
.tsg-vm-orbit-title h2{
  position:relative;z-index:2;margin:0;color:var(--vm-purple);
  font:800 clamp(34px,3vw,49px)/1.1 Montserrat,Poppins,sans-serif
}
.tsg-vm-team-intro>p{margin:0 auto 40px;max-width:690px;color:#765bb7;font-size:16px;line-height:1.55}
.tsg-vm-team-intro>a{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:64px;padding:0 30px;border-radius:32px;
  background:var(--vm-purple);color:#fff!important;text-decoration:none!important;
  font-weight:700
}
.tsg-vm-team-bar{
  display:flex;align-items:flex-end;justify-content:space-between;gap:20px;
  padding-bottom:20px;border-bottom:2px solid #4b269a;margin-bottom:38px
}
.tsg-vm-team-bar h3{margin:0;color:#44218f;font-size:23px}
.tsg-vm-team-bar>div{display:flex;gap:20px}
.tsg-vm-team-bar span,.tsg-vm-team-bar a{
  min-height:54px;display:inline-flex;align-items:center;justify-content:center;
  padding:0 28px;border-radius:10px;text-decoration:none!important;
  font-weight:700
}
.tsg-vm-team-bar span.is-active{background:var(--vm-orange);color:#fff}
.tsg-vm-team-bar a{border:1.5px solid var(--vm-orange);color:#3f218d!important;background:#fff}

.tsg-vm-elected-grid{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px
}
.tsg-vm-elected-card{min-width:0}
.tsg-vm-elected-card img{
  width:100%;aspect-ratio:.98/1;object-fit:cover;display:block;
  border-radius:22px 22px 0 0;
  background:linear-gradient(180deg,#4b218c,#e74717)
}
.tsg-vm-elected-card>div{
  min-height:88px;padding:25px 0 0;background:#fbfafc
}
.tsg-vm-elected-card h4{margin:0 0 4px;color:#3f218d;font-size:19px}
.tsg-vm-elected-card p{margin:0;color:var(--vm-orange);font-size:15px}

.tsg-vm-section--history-intro{background:#fbfafc;padding:145px 0 105px}
.tsg-vm-history-heading{text-align:center;max-width:790px;margin:0 auto}
.tsg-vm-history-orbit{position:relative;padding:42px 25px;margin-bottom:38px}
.tsg-vm-history-orbit:before{
  content:"";position:absolute;inset:12px 42px;
  border:2px solid #c8aa65;border-radius:50%;transform:rotate(-4deg)
}
.tsg-vm-history-orbit i,.tsg-vm-history-orbit b{
  position:absolute;height:2px;background:#c8aa65;border-radius:999px
}
.tsg-vm-history-orbit i{width:190px;left:110px;top:10px;transform:rotate(-10deg)}
.tsg-vm-history-orbit b{width:150px;right:110px;top:42px;transform:rotate(-7deg)}
.tsg-vm-history-orbit h2{
  position:relative;z-index:2;margin:0;color:#3f218d;
  font:800 clamp(34px,2.8vw,47px)/1.15 Montserrat,Poppins,sans-serif
}
.tsg-vm-history-heading>p{margin:0 auto;max-width:590px;color:#44218f;font-size:16px;line-height:1.5}

.tsg-vm-section--timeline{padding:0 0 90px;background:#fbfafc}
.tsg-vm-timeline{
  min-height:760px;
  display:grid;grid-template-columns:.95fr 1.05fr;gap:70px;
  padding:60px 80px;
  border-radius:0;
  background:
    radial-gradient(circle at 20% 10%,rgba(255,255,255,.65),transparent 34%),
    #f5f0e4;
  box-shadow:inset 0 0 55px rgba(179,152,94,.07);
}
.tsg-vm-timeline__story{display:flex;flex-direction:column}
.tsg-vm-timeline__story h2{
  margin:0 0 25px;color:#c1a66c;
  font:800 34px/1.3 Montserrat,Poppins,sans-serif
}
.tsg-vm-timeline__story p{
  margin:0;color:#c8ae78;font-size:16px;line-height:1.55;max-width:520px
}
.tsg-vm-timeline__story img{
  width:410px;max-width:90%;height:auto;margin-top:auto;display:block
}
.tsg-vm-timeline__rail{position:relative;min-height:650px}
.tsg-vm-timeline__rail svg{position:absolute;inset:0;width:100%;height:100%}
.tsg-vm-date{
  position:absolute;
  min-width:118px;min-height:70px;padding:12px 17px;
  display:flex;align-items:center;justify-content:center;
  border:1.5px solid #c4a864;border-radius:13px;
  background:#fffdf8;color:#b79958;
  font:800 15px/1.35 Poppins,sans-serif;text-align:center;
  box-shadow:0 6px 0 rgba(184,153,86,.5);
  transform:rotate(8deg)
}
.tsg-vm-date.is-primary{background:#3f218d;color:#fff;border-color:#3f218d}
.tsg-vm-date--1{left:10%;top:2%;transform:rotate(-12deg)}
.tsg-vm-date--2{right:15%;top:2%;transform:rotate(14deg)}
.tsg-vm-date--3{right:18%;top:28%;transform:rotate(-10deg)}
.tsg-vm-date--4{left:3%;top:30%;transform:rotate(10deg)}
.tsg-vm-date--5{right:10%;top:51%;transform:rotate(-11deg)}
.tsg-vm-date--6{right:30%;top:72%;transform:rotate(12deg)}
.tsg-vm-date--7{left:17%;bottom:0;transform:rotate(-13deg)}
.tsg-vm-date--8{right:5%;bottom:0;transform:rotate(13deg)}

@media(max-width:1100px){
  .tsg-vm-mayor-card{gap:45px;padding:55px}
  .tsg-vm-function-card{grid-template-columns:160px minmax(0,1fr) 24px}
  .tsg-vm-function-card img{width:160px}
  .tsg-vm-elected-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tsg-vm-timeline{gap:30px;padding:50px 40px}
}
@media(max-width:800px){
  .tsg-vm-hero{min-height:680px;background-size:auto 390px}
  .tsg-vm-hero__content{min-height:590px;padding-bottom:120px;align-items:flex-end}
  .tsg-vm-hero h1{font-size:36px}
  .tsg-vm-hero p{font-size:14px}
  .tsg-vm-jump__inner{gap:12px;min-height:84px}
  .tsg-vm-jump__inner>span{display:none}
  .tsg-vm-jump a{font-size:11px;padding:12px 14px}
  .tsg-vm-mayor-card{grid-template-columns:1fr;gap:30px;padding:25px;border-radius:20px}
  .tsg-vm-mayor-card__content h2{font-size:30px}
  .tsg-vm-mayor-tabs{grid-template-columns:42px repeat(3,1fr) 42px;margin:28px 0}
  .tsg-vm-mayor-tabs>span{font-size:10px;padding:10px 5px}
  .tsg-vm-mayor-tabs__arrow{width:38px;height:38px!important}
  .tsg-vm-heading{margin-bottom:45px}
  .tsg-vm-functions{grid-template-columns:1fr}
  .tsg-vm-function-card{grid-template-columns:110px minmax(0,1fr) 22px;min-height:95px;padding:13px}
  .tsg-vm-function-card img{width:110px;height:62px}
  .tsg-vm-function-card strong{font-size:13px}
  .tsg-vm-team-intro{margin-bottom:70px}
  .tsg-vm-team-bar{align-items:flex-start;flex-direction:column}
  .tsg-vm-team-bar>div{width:100%;overflow-x:auto}
  .tsg-vm-team-bar span,.tsg-vm-team-bar a{font-size:11px;white-space:nowrap}
  .tsg-vm-elected-grid{grid-template-columns:1fr 1fr}
  .tsg-vm-section--history-intro{padding-top:85px}
  .tsg-vm-timeline{grid-template-columns:1fr;padding:35px 24px;min-height:auto}
  .tsg-vm-timeline__story img{margin:35px auto 0}
  .tsg-vm-timeline__rail{min-height:600px}
}
@media(max-width:500px){
  .tsg-vm-elected-grid{grid-template-columns:1fr}
  .tsg-vm-orbit-title,.tsg-vm-history-orbit{padding-inline:6px}
  .tsg-vm-orbit-title:before,.tsg-vm-history-orbit:before{left:0;right:0}
  .tsg-vm-timeline__rail{transform:scale(.92);transform-origin:top center}
}
@media(prefers-reduced-motion:reduce){
  .tsg-vie-municipale *{scroll-behavior:auto!important}
}


/* V1.6.65 — Services municipaux : retour au header commun */
.tsg-vie-municipale .tsg-vm-section--mayor{
  padding-top:46px!important;
}
@media(max-width:800px){
  .tsg-vie-municipale .tsg-vm-section--mayor{
    padding-top:28px!important;
  }
}


/* V1.6.66 — Vie municipale : interactions + animations de défilement */
.tsg-vm-mayor-tabs button{
  appearance:none;
  border:0;
  font:inherit;
  cursor:pointer;
  color:#321272;
}
.tsg-vm-mayor-tabs>button:not(.tsg-vm-mayor-tabs__arrow){
  padding:14px 10px;
  border-radius:999px;
  background:transparent;
  transition:background .2s ease,transform .2s ease,color .2s ease;
}
.tsg-vm-mayor-tabs>button:not(.tsg-vm-mayor-tabs__arrow):hover{transform:translateY(-1px)}
.tsg-vm-mayor-tabs>button.is-active{background:var(--vm-lime)}
.tsg-vm-mayor-panel{min-height:135px}
.tsg-vm-mayor-panel p{
  margin:0;
  color:#7858c0;
  font-size:16px;
  font-style:italic;
  line-height:1.7
}
.tsg-vm-mayor-panel p.is-empty{opacity:.65}

.tsg-vm-function-item{min-width:0}
.tsg-vm-function-card{
  width:100%;
  text-align:left;
  cursor:pointer;
  font-family:inherit;
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease
}
.tsg-vm-function-card:hover{
  transform:translateY(-2px);
  border-color:#e84717;
  box-shadow:5px 6px 0 rgba(232,71,23,.85)
}
.tsg-vm-function-card__chevron{
  transition:transform .22s ease;
}
.tsg-vm-function-card[aria-expanded="true"] .tsg-vm-function-card__chevron{
  transform:rotate(180deg)
}
.tsg-vm-function-panel{
  margin:10px 8px 0;
  padding:17px 19px;
  border:1px solid rgba(75,38,154,.12);
  border-radius:15px;
  background:linear-gradient(135deg,#fff,rgba(75,38,154,.025),rgba(143,175,116,.05));
  box-shadow:0 10px 25px rgba(63,33,141,.05);
}
.tsg-vm-function-panel p{margin:0;color:#7159a8;font-size:13px;line-height:1.6}
.tsg-vm-function-panel a{
  margin-top:12px;
  display:inline-flex;align-items:center;gap:7px;
  color:#3f218d!important;text-decoration:none!important;font-weight:700;font-size:11px
}

.tsg-vm-team-bar button{
  min-height:54px;
  padding:0 28px;
  border-radius:10px;
  border:1.5px solid var(--vm-orange);
  background:#fff;
  color:#3f218d;
  font:700 13px/1 Poppins,sans-serif;
  cursor:pointer;
  transition:background .2s ease,color .2s ease,transform .2s ease
}
.tsg-vm-team-bar button:hover{transform:translateY(-1px)}
.tsg-vm-team-bar button.is-active{background:var(--vm-orange);color:#fff}
.tsg-vm-team-empty{
  padding:28px;
  border:1px dashed rgba(63,33,141,.18);
  border-radius:18px;
  color:#765bb7;
  text-align:center
}

.tsg-vm-date{
  cursor:pointer;
  appearance:none;
  transition:transform .25s ease,background .25s ease,color .25s ease,box-shadow .25s ease
}
.tsg-vm-date:hover{
  z-index:4;
  box-shadow:0 8px 0 rgba(184,153,86,.45),0 12px 26px rgba(63,33,141,.10)
}
.tsg-vm-date.is-primary{
  background:#3f218d!important;color:#fff!important;border-color:#3f218d!important;
  box-shadow:0 7px 0 rgba(63,33,141,.28),0 12px 28px rgba(63,33,141,.12)
}
.tsg-vm-timeline__story{
  transition:opacity .18s ease,transform .18s ease
}
.tsg-vm-timeline__story.is-switching{
  opacity:.25;transform:translateY(5px)
}

/* Reveal on scroll is enabled by JS only: no hidden content if JS fails. */
.tsg-vie-municipale.is-motion-ready [data-vm-reveal]{
  opacity:0;
  transform:translateY(26px);
  transition:
    opacity .68s cubic-bezier(.2,.7,.2,1),
    transform .68s cubic-bezier(.2,.7,.2,1);
}
.tsg-vie-municipale.is-motion-ready [data-vm-reveal].is-visible{
  opacity:1;
  transform:none
}
.tsg-vie-municipale.is-motion-ready .tsg-vm-elected-card:nth-child(2){transition-delay:.06s}
.tsg-vie-municipale.is-motion-ready .tsg-vm-elected-card:nth-child(3){transition-delay:.12s}
.tsg-vie-municipale.is-motion-ready .tsg-vm-elected-card:nth-child(4){transition-delay:.18s}
.tsg-vie-municipale.is-motion-ready .tsg-vm-function-item:nth-child(2){transition-delay:.05s}
.tsg-vie-municipale.is-motion-ready .tsg-vm-function-item:nth-child(3){transition-delay:.10s}
.tsg-vie-municipale.is-motion-ready .tsg-vm-function-item:nth-child(4){transition-delay:.15s}
.tsg-vie-municipale.is-motion-ready .tsg-vm-function-item:nth-child(5){transition-delay:.20s}
.tsg-vie-municipale.is-motion-ready .tsg-vm-function-item:nth-child(6){transition-delay:.25s}

@media(max-width:800px){
  .tsg-vm-team-bar button{font-size:11px;white-space:nowrap;padding:0 18px}
  .tsg-vm-mayor-panel{min-height:0}
}
@media(prefers-reduced-motion:reduce){
  .tsg-vie-municipale.is-motion-ready [data-vm-reveal]{opacity:1!important;transform:none!important;transition:none!important}
  .tsg-vm-function-card,.tsg-vm-date,.tsg-vm-team-bar button,.tsg-vm-timeline__story{transition:none!important}
}


/* V1.6.67 — Remplacement de l'équipe municipale par un lien vers la page Élus */
.tsg-vm-section--elected-link{
  background:#fbfafc;
  padding:86px 0 108px;
}
.tsg-vm-elected-link-card{
  position:relative;
  min-height:300px;
  display:grid;
  grid-template-columns:minmax(240px,.68fr) minmax(0,1.32fr);
  gap:50px;
  align-items:center;
  padding:42px 50px;
  border:1px solid rgba(63,33,141,.10);
  border-radius:28px;
  background:
    radial-gradient(circle at 12% 18%,rgba(63,33,141,.07),transparent 26%),
    radial-gradient(circle at 88% 84%,rgba(143,175,116,.10),transparent 30%),
    linear-gradient(135deg,#fff 0%,#fbfafc 52%,rgba(143,175,116,.05) 100%);
  box-shadow:0 18px 46px rgba(63,33,141,.06);
  overflow:hidden;
}
.tsg-vm-elected-link-card__visual{
  position:relative;
  min-height:210px;
}
.tsg-vm-elected-link-card__visual:before{
  content:"";
  position:absolute;
  left:50%;top:50%;
  width:150px;height:150px;
  transform:translate(-50%,-50%);
  border-radius:50%;
  background:linear-gradient(145deg,#3f218d,#526E41);
  box-shadow:
    0 0 0 20px rgba(63,33,141,.045),
    0 0 0 40px rgba(143,175,116,.045);
}
.tsg-vm-elected-link-card__visual span,
.tsg-vm-elected-link-card__visual i,
.tsg-vm-elected-link-card__visual b{
  position:absolute;
  border:1.5px solid rgba(232,71,23,.42);
  border-radius:50%;
}
.tsg-vm-elected-link-card__visual span{
  width:220px;height:120px;left:50%;top:50%;
  transform:translate(-50%,-50%) rotate(-14deg);
}
.tsg-vm-elected-link-card__visual i{
  width:180px;height:245px;left:50%;top:50%;
  transform:translate(-50%,-50%) rotate(22deg);
}
.tsg-vm-elected-link-card__visual b{
  width:260px;height:80px;left:50%;top:50%;
  transform:translate(-50%,-50%) rotate(6deg);
}
.tsg-vm-elected-link-card__content{
  max-width:700px;
}
.tsg-vm-elected-link-card__content h2{
  margin:8px 0 12px;
  color:#3f218d;
  font:800 clamp(31px,2.8vw,46px)/1.08 Montserrat,Poppins,sans-serif;
  letter-spacing:-.03em;
}
.tsg-vm-elected-link-card__content p{
  margin:0 0 24px;
  color:#7259aa;
  font-size:15px;
  line-height:1.65;
}
.tsg-vm-elected-link-card__content a{
  display:inline-flex;
  align-items:center;
  gap:10px;
  min-height:52px;
  padding:0 20px;
  border-radius:15px;
  background:linear-gradient(105deg,#3f218d,#526E41);
  color:#fff!important;
  text-decoration:none!important;
  font:700 11px/1 Poppins,sans-serif;
  box-shadow:
    inset 0 -3px 0 rgba(232,71,23,.72),
    0 10px 24px rgba(63,33,141,.11);
  transition:transform .2s ease,box-shadow .2s ease;
}
.tsg-vm-elected-link-card__content a:hover{
  transform:translateY(-2px);
  box-shadow:
    inset 0 -3px 0 rgba(232,71,23,.95),
    0 14px 30px rgba(63,33,141,.15);
}
.tsg-vm-elected-link-card__content a b{
  font-size:15px;
}

@media(max-width:800px){
  .tsg-vm-section--elected-link{
    padding:55px 0 72px;
  }
  .tsg-vm-elected-link-card{
    grid-template-columns:1fr;
    gap:20px;
    padding:28px 24px;
    border-radius:22px;
  }
  .tsg-vm-elected-link-card__visual{
    min-height:150px;
  }
  .tsg-vm-elected-link-card__visual:before{
    width:110px;height:110px;
  }
  .tsg-vm-elected-link-card__visual span{
    width:170px;height:90px;
  }
  .tsg-vm-elected-link-card__visual i{
    width:140px;height:180px;
  }
  .tsg-vm-elected-link-card__visual b{
    width:200px;height:60px;
  }
}


/* V1.6.68 — Projets & grands travaux : carrousel premium */
.tsg-projects-page{
  padding:30px 0 82px;
  background:
    radial-gradient(circle at 92% 8%,rgba(143,175,116,.08),transparent 26%),
    linear-gradient(180deg,#fff 0%,#fcfbfd 46%,rgba(59,30,123,.025) 100%);
}
.tsg-projects-heading{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(320px,1.1fr);
  gap:50px;
  align-items:end;
  margin-bottom:26px;
  padding:0 6px;
}
.tsg-projects-heading h1{
  margin:8px 0 0;
  color:#31156f;
  font:800 clamp(31px,3vw,48px)/1.04 Montserrat,Poppins,sans-serif;
  letter-spacing:-.035em
}
.tsg-projects-heading>p{
  margin:0;
  color:#75659d;
  font-size:14px;
  line-height:1.65;
  max-width:720px
}

.tsg-projects-stage{
  position:relative;
  overflow:hidden;
  border:1px solid rgba(59,30,123,.08);
  border-radius:30px;
  background:
    radial-gradient(circle at 8% 12%,rgba(59,30,123,.035),transparent 24%),
    radial-gradient(circle at 92% 86%,rgba(143,175,116,.08),transparent 30%),
    #fff;
  box-shadow:0 22px 58px rgba(44,29,65,.065);
}
.tsg-project-slide{
  display:grid;
  grid-template-columns:minmax(390px,.92fr) minmax(0,1.08fr);
  gap:78px;
  align-items:center;
  min-height:650px;
  padding:34px 78px 34px 92px;
}
.tsg-project-slide[hidden]{display:none!important}

.tsg-project-slide__media{
  position:relative;
  min-height:555px;
  display:flex;
  align-items:center;
  justify-content:center
}
.tsg-project-slide__main-image,
.tsg-project-slide__peek{
  position:absolute;
  overflow:hidden;
  border-radius:28px;
  background:#eee;
  box-shadow:0 18px 38px rgba(32,20,47,.12)
}
.tsg-project-slide__main-image{
  z-index:4;
  left:48px;right:22px;top:0;bottom:0
}
.tsg-project-slide__peek{
  top:28px;bottom:28px;width:76%;
  opacity:.72
}
.tsg-project-slide__peek.is-back-one{z-index:3;left:18px;transform:scale(.95)}
.tsg-project-slide__peek.is-back-two{z-index:2;left:-8px;transform:scale(.88);opacity:.50}
.tsg-project-slide__media img{
  width:100%;height:100%;object-fit:cover;display:block
}
.tsg-project-slide__main-image:after{
  content:"";position:absolute;inset:0;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.3);
  border-radius:inherit;
  pointer-events:none
}

.tsg-project-slide__content{
  max-width:720px;
  padding-right:20px
}
.tsg-project-slide__meta{
  display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:15px
}
.tsg-project-slide__category,
.tsg-project-slide__status{
  min-height:38px;
  display:inline-flex;align-items:center;
  padding:0 15px;
  border-radius:999px;
  font:700 9px/1 Poppins,sans-serif;
  letter-spacing:.055em
}
.tsg-project-slide__category{
  color:#3B1E7B;
  border:1px solid rgba(59,30,123,.22);
  background:#fff
}
.tsg-project-slide__status{
  color:#526E41;
  border:1px solid rgba(82,110,65,.18);
  background:rgba(143,175,116,.09)
}
.tsg-project-slide h2{
  margin:0 0 13px;
  color:#38207f;
  font:800 clamp(30px,3vw,48px)/1.08 Montserrat,Poppins,sans-serif;
  letter-spacing:-.035em
}
.tsg-project-slide__subtitle{
  margin:0 0 36px;
  color:rgba(59,30,123,.26);
  font:600 16px/1.5 Poppins,sans-serif;
  font-style:italic
}
.tsg-project-slide__description{
  margin:0;
  max-width:720px;
  color:#745fad;
  font-size:16px;
  line-height:1.75
}
.tsg-project-slide__cta{
  margin-top:36px;
  display:inline-flex;
  align-items:center;
  gap:11px;
  min-height:48px;
  padding:0 5px 0 0;
  color:#3B1E7B!important;
  text-decoration:none!important;
  font:800 12px/1 Poppins,sans-serif
}
.tsg-project-slide__cta b{
  width:32px;height:32px;
  display:grid;place-items:center;
  border:2px solid #3B1E7B;
  border-radius:50%;
  font-size:15px;
  transition:transform .2s ease,background .2s ease,color .2s ease
}
.tsg-project-slide__cta:not(.is-disabled):hover b{
  transform:translateX(3px);
  background:#3B1E7B;color:#fff
}
.tsg-project-slide__cta.is-disabled{opacity:.38;cursor:default}

.tsg-projects-controls{
  min-height:90px;
  display:grid;
  grid-template-columns:auto minmax(160px,1fr) auto;
  align-items:center;
  gap:24px;
  padding:15px 90px;
  border-top:1px solid rgba(59,30,123,.08);
  background:rgba(255,255,255,.93)
}
.tsg-projects-controls__arrows{display:flex;gap:12px}
.tsg-projects-controls__arrows button{
  width:54px;height:54px;
  display:grid;place-items:center;
  border:1px solid rgba(59,30,123,.13);
  border-radius:50%;
  background:#e9e2f7;
  color:#fff;
  font-size:29px;
  cursor:pointer;
  transition:transform .2s ease,background .2s ease,box-shadow .2s ease
}
.tsg-projects-controls__arrows button:last-child{
  background:#3B1E7B;
  box-shadow:0 8px 20px rgba(59,30,123,.14)
}
.tsg-projects-controls__arrows button:hover{
  transform:translateY(-2px);
  background:#DA4816;
  box-shadow:0 9px 22px rgba(218,72,22,.16)
}
.tsg-projects-progress>span{
  display:block;height:5px;border-radius:999px;background:#eeebf2;overflow:hidden
}
.tsg-projects-progress i{
  display:block;width:0;height:100%;border-radius:inherit;
  background:linear-gradient(90deg,#3B1E7B,#8FAF74,#DA4816)
}
.tsg-projects-page.is-playing .tsg-projects-progress i{
  animation:tsgProjectProgress var(--tsg-project-duration,5200ms) linear forwards
}
.tsg-projects-page.is-paused .tsg-projects-progress i{animation-play-state:paused}
@keyframes tsgProjectProgress{from{width:0}to{width:100%}}
.tsg-projects-count{
  display:flex;align-items:baseline;gap:5px;color:#8a7d9f
}
.tsg-projects-count strong{color:#3B1E7B;font:800 22px/1 Montserrat,Poppins,sans-serif}
.tsg-projects-count small{font:700 11px/1 Poppins,sans-serif}

.tsg-projects-rail{
  margin-top:15px;
  display:flex;
  gap:10px;
  overflow-x:auto;
  padding:4px 3px 12px;
  scroll-snap-type:x proximity;
  scrollbar-width:thin;
  scrollbar-color:rgba(59,30,123,.18) transparent
}
.tsg-project-thumb{
  flex:0 0 min(310px,78vw);
  min-height:92px;
  display:grid;
  grid-template-columns:72px minmax(0,1fr) 30px;
  align-items:center;
  gap:12px;
  padding:9px 11px;
  border:1px solid rgba(59,30,123,.075);
  border-radius:18px;
  background:#fff;
  color:#332440;
  text-align:left;
  cursor:pointer;
  scroll-snap-align:center;
  box-shadow:0 8px 22px rgba(43,27,60,.035);
  transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease
}
.tsg-project-thumb:hover{
  transform:translateY(-2px);
  border-color:rgba(218,72,22,.25)
}
.tsg-project-thumb.is-active{
  border-color:rgba(59,30,123,.24);
  box-shadow:inset 0 -3px 0 rgba(218,72,22,.62),0 11px 27px rgba(59,30,123,.07)
}
.tsg-project-thumb img{
  width:72px;height:68px;object-fit:cover;border-radius:12px;display:block
}
.tsg-project-thumb>span{
  min-width:0;display:grid;gap:5px
}
.tsg-project-thumb small{
  color:#8FAF74;
  font:800 8px/1 Poppins,sans-serif;
  letter-spacing:.08em
}
.tsg-project-thumb strong{
  overflow:hidden;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  color:#3d2b50;
  font:700 11px/1.35 Poppins,sans-serif
}
.tsg-project-thumb>b{
  color:rgba(59,30,123,.22);
  font:800 16px/1 Montserrat,Poppins,sans-serif
}
.tsg-projects-empty{
  margin:20px 0 60px;
  padding:42px;
  border:1px dashed rgba(59,30,123,.16);
  border-radius:24px;
  background:#fff;
  color:#75659d;
  text-align:center
}

/* Project reveal effects */
.tsg-projects-page.is-motion-ready [data-project-reveal],
.tsg-projects-page.is-motion-ready .tsg-projects-stage,
.tsg-projects-page.is-motion-ready .tsg-projects-rail{
  opacity:0;transform:translateY(22px);
  transition:opacity .65s ease,transform .65s ease
}
.tsg-projects-page.is-motion-ready .is-project-visible{
  opacity:1;transform:none
}
.tsg-project-slide.is-entering .tsg-project-slide__main-image{
  animation:tsgProjectImageIn .48s cubic-bezier(.2,.8,.2,1)
}
.tsg-project-slide.is-entering .tsg-project-slide__content{
  animation:tsgProjectCopyIn .48s cubic-bezier(.2,.8,.2,1)
}
@keyframes tsgProjectImageIn{from{opacity:.2;transform:translateX(-12px) scale(.985)}to{opacity:1;transform:none}}
@keyframes tsgProjectCopyIn{from{opacity:0;transform:translateX(12px)}to{opacity:1;transform:none}}

@media(max-width:1100px){
  .tsg-project-slide{grid-template-columns:minmax(330px,.95fr) minmax(0,1.05fr);gap:42px;padding:30px 44px 30px 54px}
  .tsg-project-slide__media{min-height:500px}
  .tsg-projects-controls{padding-inline:55px}
}
@media(max-width:820px){
  .tsg-projects-page{padding-top:18px}
  .tsg-projects-heading{grid-template-columns:1fr;gap:12px}
  .tsg-project-slide{grid-template-columns:1fr;gap:25px;min-height:0;padding:22px}
  .tsg-project-slide__media{min-height:380px}
  .tsg-project-slide__main-image{left:34px;right:8px}
  .tsg-project-slide__peek.is-back-one{left:12px}
  .tsg-project-slide__peek.is-back-two{left:-8px}
  .tsg-project-slide__content{padding:0 5px 12px}
  .tsg-project-slide h2{font-size:30px}
  .tsg-project-slide__subtitle{margin-bottom:22px}
  .tsg-project-slide__description{font-size:13px;line-height:1.65}
  .tsg-projects-controls{grid-template-columns:auto 1fr auto;padding:13px 22px}
}
@media(max-width:520px){
  .tsg-project-slide__media{min-height:320px}
  .tsg-projects-controls{grid-template-columns:auto auto;justify-content:space-between}
  .tsg-projects-progress{grid-column:1/-1;grid-row:2}
  .tsg-projects-controls__arrows button{width:48px;height:48px}
}
@media(prefers-reduced-motion:reduce){
  .tsg-projects-page.is-playing .tsg-projects-progress i{animation:none!important;width:100%}
  .tsg-projects-page.is-motion-ready [data-project-reveal],
  .tsg-projects-page.is-motion-ready .tsg-projects-stage,
  .tsg-projects-page.is-motion-ready .tsg-projects-rail{opacity:1!important;transform:none!important;transition:none!important}
  .tsg-project-slide.is-entering .tsg-project-slide__main-image,
  .tsg-project-slide.is-entering .tsg-project-slide__content{animation:none!important}
}


/* V1.6.70 — Projets : navigation premium */
.tsg-projects-controls{
  grid-template-columns:auto minmax(180px,1fr) auto!important;
  gap:28px!important;
}

.tsg-projects-controls__arrows{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  padding:5px!important;
  border:1px solid rgba(59,30,123,.08)!important;
  border-radius:999px!important;
  background:linear-gradient(180deg,#ffffff,#faf8fc)!important;
  box-shadow:
    0 8px 22px rgba(45,27,67,.055),
    inset 0 1px 0 rgba(255,255,255,.95)!important;
}

.tsg-projects-controls__arrows button{
  position:relative!important;
  width:58px!important;
  height:46px!important;
  display:grid!important;
  place-items:center!important;
  border:0!important;
  border-radius:999px!important;
  background:transparent!important;
  color:#3B1E7B!important;
  font-size:0!important;
  cursor:pointer!important;
  box-shadow:none!important;
  transition:
    transform .2s ease,
    background .2s ease,
    color .2s ease,
    box-shadow .2s ease!important;
}

.tsg-projects-controls__arrows button::before{
  content:""!important;
  width:16px!important;
  height:16px!important;
  border-top:2px solid currentColor!important;
  border-right:2px solid currentColor!important;
  display:block!important;
}

.tsg-projects-controls__arrows button[data-project-prev]::before{
  transform:rotate(-135deg)!important;
  margin-left:5px!important;
}

.tsg-projects-controls__arrows button[data-project-next]::before{
  transform:rotate(45deg)!important;
  margin-right:5px!important;
}

.tsg-projects-controls__arrows button[data-project-prev]{
  background:rgba(59,30,123,.045)!important;
  color:rgba(59,30,123,.58)!important;
}

.tsg-projects-controls__arrows button[data-project-next]{
  background:linear-gradient(105deg,#3B1E7B 0%,#4b2a91 58%,#526E41 145%)!important;
  color:#fff!important;
  box-shadow:
    0 8px 20px rgba(59,30,123,.18),
    inset 0 -2px 0 rgba(218,72,22,.60)!important;
}

.tsg-projects-controls__arrows button:hover{
  transform:translateY(-2px)!important;
}

.tsg-projects-controls__arrows button[data-project-prev]:hover{
  background:rgba(218,72,22,.08)!important;
  color:#DA4816!important;
}

.tsg-projects-controls__arrows button[data-project-next]:hover{
  background:linear-gradient(105deg,#DA4816,#3B1E7B)!important;
  color:#fff!important;
  box-shadow:
    0 10px 24px rgba(218,72,22,.18),
    inset 0 -2px 0 rgba(255,255,255,.18)!important;
}

.tsg-projects-controls__arrows button:focus-visible{
  outline:3px solid rgba(218,72,22,.18)!important;
  outline-offset:3px!important;
}

.tsg-projects-progress{
  align-self:center!important;
}
.tsg-projects-progress>span{
  height:4px!important;
  background:linear-gradient(90deg,#f0edf4,#ebe8ef)!important;
}
.tsg-projects-progress i{
  background:linear-gradient(90deg,#3B1E7B 0%,#8FAF74 68%,#DA4816 100%)!important;
}

.tsg-projects-count{
  min-width:72px!important;
  justify-content:flex-end!important;
  gap:4px!important;
}
.tsg-projects-count strong{
  font-size:24px!important;
  letter-spacing:-.03em!important;
}
.tsg-projects-count small{
  color:#9d94a7!important;
}

@media(max-width:820px){
  .tsg-projects-controls{
    gap:14px!important;
    padding-inline:18px!important;
  }
  .tsg-projects-controls__arrows button{
    width:52px!important;
    height:44px!important;
  }
}
@media(max-width:520px){
  .tsg-projects-controls__arrows{
    padding:4px!important;
    gap:6px!important;
  }
  .tsg-projects-controls__arrows button{
    width:48px!important;
    height:42px!important;
  }
}


/* V1.6.71 — Header universel planète / image */
.tsg-universal-header{
  padding:16px 0 24px;
  background:transparent;
}
.tsg-universal-header__panel{
  position:relative;
  min-height:430px;
  overflow:hidden;
  border:1px solid rgba(59,30,123,.08);
  border-radius:34px;
  background:
    radial-gradient(circle at 72% 30%,rgba(255,255,255,.07),transparent 31%),
    radial-gradient(circle at 90% 90%,rgba(143,175,116,.15),transparent 33%),
    linear-gradient(118deg,#301568 0%,#44277f 48%,#4d5361 100%);
  box-shadow:0 24px 62px rgba(45,27,74,.12);
  color:#fff;
  isolation:isolate;
}
.tsg-universal-header__panel:before{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(255,255,255,.02),transparent 52%);
  pointer-events:none;
}
.tsg-universal-header__content{
  position:relative;z-index:3;
  width:min(63%,820px);
  min-height:430px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:54px 64px;
}
.tsg-universal-header__eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  color:#f3f4ee;
  font:800 10px/1 Poppins,sans-serif;
  letter-spacing:.14em;text-transform:uppercase;
  margin-bottom:18px;
}
.tsg-universal-header__eyebrow:before{
  content:"";width:28px;height:3px;border-radius:99px;background:#8FAF74;
}
.tsg-universal-header h1{
  margin:0;
  max-width:780px;
  color:#fff;
  font:800 clamp(34px,4vw,58px)/1.02 Montserrat,Poppins,sans-serif;
  letter-spacing:-.045em;
  text-wrap:balance;
}
.tsg-universal-header__content>p{
  max-width:700px;
  margin:20px 0 0;
  color:rgba(255,255,255,.76);
  font-size:14px;
  line-height:1.65;
}
.tsg-universal-header__stats{
  display:flex;flex-wrap:wrap;gap:12px;margin-top:30px;
}
.tsg-universal-header__stats>div{
  min-width:142px;
  padding:16px 18px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:18px;
  background:rgba(255,255,255,.08);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
.tsg-universal-header__stats strong{display:block;color:#fff;font:800 25px/1 Montserrat,Poppins,sans-serif}
.tsg-universal-header__stats span{display:block;margin-top:7px;color:rgba(255,255,255,.60);font:700 9px/1.3 Poppins,sans-serif;letter-spacing:.07em;text-transform:uppercase}
.tsg-universal-header__note{
  display:flex;align-items:flex-start;gap:10px;max-width:600px;margin-top:26px;color:rgba(255,255,255,.63)
}
.tsg-universal-header__note>span{
  position:relative;flex:0 0 10px;width:10px;height:10px;margin-top:3px;border-radius:50%;background:#8FAF74;box-shadow:0 0 0 0 rgba(143,175,116,.35);animation:tsgUniversalPulse 2.8s ease-out infinite
}
.tsg-universal-header__note small{font:500 10px/1.55 Poppins,sans-serif}
.tsg-universal-header__visual{
  position:absolute;z-index:2;
  right:3%;top:50%;
  width:min(39vw,440px);
  aspect-ratio:1;
  transform:translateY(-50%);
  pointer-events:none;
}
.tsg-universal-orbit{
  position:absolute;left:50%;top:50%;
  border:1px solid rgba(255,255,255,.15);
  border-radius:50%;
  transform:translate(-50%,-50%);
}
.tsg-universal-orbit--one{width:88%;height:88%}
.tsg-universal-orbit--two{width:64%;height:64%;border-color:rgba(143,175,116,.28)}
.tsg-universal-orbit--three{width:40%;height:40%}
.tsg-universal-orbit i{position:absolute;left:50%;top:-5px;width:10px;height:10px;margin-left:-5px;border-radius:50%;background:#fff;box-shadow:0 0 20px rgba(255,255,255,.55)}
.tsg-universal-orbit--two i{background:#8FAF74;box-shadow:0 0 22px rgba(143,175,116,.45)}
.tsg-universal-orbit--three i{background:#dce9d3}
.tsg-universal-header__core,
.tsg-universal-header__image{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:112px;height:112px;border-radius:50%;
}
.tsg-universal-header__core{
  background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.37),rgba(143,175,116,.26) 32%,rgba(59,30,123,.84) 72%);
  box-shadow:0 0 0 15px rgba(255,255,255,.035),0 22px 60px rgba(8,3,25,.28)
}
.tsg-universal-header__image{
  overflow:hidden;
  width:230px;height:230px;
  border:1px solid rgba(255,255,255,.18);
  box-shadow:0 0 0 13px rgba(255,255,255,.035),0 25px 60px rgba(8,3,25,.25)
}
.tsg-universal-header__image img{width:100%;height:100%;object-fit:cover;display:block}
.tsg-universal-header.is-visual-image .tsg-universal-header__visual{width:min(34vw,390px)}
.tsg-universal-header.is-visual-image .tsg-universal-header__image{width:310px;height:310px;border-radius:28px}

/* Animation modes */
.tsg-universal-header.is-animation-rotate .tsg-universal-orbit--one{animation:tsgUniversalOrbit var(--tsg-uh-speed,22s) linear infinite}
.tsg-universal-header.is-animation-rotate .tsg-universal-orbit--two{animation:tsgUniversalOrbit calc(var(--tsg-uh-speed,22s) * .76) linear infinite reverse}
.tsg-universal-header.is-animation-rotate .tsg-universal-orbit--three{animation:tsgUniversalOrbit calc(var(--tsg-uh-speed,22s) * .56) linear infinite}
.tsg-universal-header.is-animation-rotate .tsg-universal-header__core,
.tsg-universal-header.is-animation-rotate .tsg-universal-header__image{animation:tsgUniversalCore 5.2s ease-in-out infinite}
.tsg-universal-header.is-animation-float .tsg-universal-header__visual{animation:tsgUniversalFloat var(--tsg-uh-speed,22s) ease-in-out infinite}
.tsg-universal-header.is-animation-pulse .tsg-universal-header__core,
.tsg-universal-header.is-animation-pulse .tsg-universal-header__image{animation:tsgUniversalPulseCore calc(var(--tsg-uh-speed,22s) * .35) ease-in-out infinite}
.tsg-universal-header.is-animation-static .tsg-universal-orbit,
.tsg-universal-header.is-animation-static .tsg-universal-header__core,
.tsg-universal-header.is-animation-static .tsg-universal-header__image,
.tsg-universal-header.is-animation-static .tsg-universal-header__note>span{animation:none!important}
@keyframes tsgUniversalOrbit{to{transform:translate(-50%,-50%) rotate(360deg)}}
@keyframes tsgUniversalCore{0%,100%{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.055)}}
@keyframes tsgUniversalFloat{0%,100%{transform:translateY(-50%) translateY(-7px)}50%{transform:translateY(-50%) translateY(9px)}}
@keyframes tsgUniversalPulseCore{0%,100%{transform:translate(-50%,-50%) scale(.96)}50%{transform:translate(-50%,-50%) scale(1.07)}}
@keyframes tsgUniversalPulse{0%{box-shadow:0 0 0 0 rgba(143,175,116,.38)}70%,100%{box-shadow:0 0 0 10px rgba(143,175,116,0)}}

/* Elected page: the old secondary planet panel is replaced by the common header. */
.tsg-elected-mayor-grid{grid-template-columns:minmax(260px,430px)!important;justify-content:start!important}
.tsg-elected-mayor-grid__card{max-width:430px}

@media(max-width:980px){
  .tsg-universal-header__content{width:70%;padding:42px 38px;min-height:390px}
  .tsg-universal-header__panel{min-height:390px}
  .tsg-universal-header__visual{right:-5%;width:380px;opacity:.78}
}
@media(max-width:760px){
  .tsg-universal-header{padding:10px 0 18px}
  .tsg-universal-header__panel{min-height:0;border-radius:26px}
  .tsg-universal-header__content{width:100%;min-height:360px;padding:34px 24px 190px}
  .tsg-universal-header h1{font-size:35px;max-width:100%}
  .tsg-universal-header__content>p{font-size:12px;max-width:92%}
  .tsg-universal-header__visual{right:50%;top:auto;bottom:-55px;width:250px;transform:translateX(50%);opacity:.58}
  .tsg-universal-header.is-animation-float .tsg-universal-header__visual{animation:tsgUniversalFloatMobile var(--tsg-uh-speed,22s) ease-in-out infinite}
  .tsg-universal-header__image{width:155px;height:155px}
  .tsg-universal-header.is-visual-image .tsg-universal-header__visual{width:250px}
  .tsg-universal-header.is-visual-image .tsg-universal-header__image{width:210px;height:150px;border-radius:20px}
  .tsg-universal-header__stats>div{min-width:110px;padding:12px 14px}
  .tsg-universal-header__stats strong{font-size:21px}
  @keyframes tsgUniversalFloatMobile{0%,100%{transform:translateX(50%) translateY(-5px)}50%{transform:translateX(50%) translateY(8px)}}
}
@media(prefers-reduced-motion:reduce){
  .tsg-universal-header *{animation:none!important;transition:none!important}
}


/* V1.6.73 — Élus : nouveau bloc animé à côté du maire, sans dupliquer la planète du header */
.tsg-elected-mayor-grid{
  grid-template-columns:minmax(280px,430px) minmax(0,1fr)!important;
  gap:22px!important;
  align-items:stretch!important;
  justify-content:stretch!important;
}
.tsg-elected-mayor-grid__card{
  max-width:none!important;
  min-width:0;
}
.tsg-elected-mayor-grid__card>.tsg-elected-person{
  height:100%;
}

.tsg-elected-flow-panel{
  position:relative;
  min-height:100%;
  overflow:hidden;
  border:1px solid rgba(59,30,123,.10);
  border-radius:28px;
  background:
    radial-gradient(circle at 89% 15%,rgba(143,175,116,.13),transparent 28%),
    radial-gradient(circle at 78% 82%,rgba(218,72,22,.055),transparent 30%),
    linear-gradient(135deg,#fdfcf9 0%,#fbfafc 48%,#f4f8f1 100%);
  box-shadow:
    0 20px 50px rgba(46,28,69,.075),
    inset 0 1px 0 rgba(255,255,255,.9);
  isolation:isolate;
}

.tsg-elected-flow-panel__content{
  position:relative;
  z-index:3;
  min-height:100%;
  max-width:66%;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(28px,4vw,48px);
}

.tsg-elected-flow-panel__eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-bottom:13px;
  color:#526E41;
  font:800 9px/1 Poppins,sans-serif;
  letter-spacing:.15em;
}
.tsg-elected-flow-panel__eyebrow:before{
  content:"";
  width:24px;
  height:3px;
  border-radius:999px;
  background:linear-gradient(90deg,#8FAF74,#DA4816);
}

.tsg-elected-flow-panel h3{
  margin:0;
  color:#3B1E7B;
  font:800 clamp(27px,2.6vw,41px)/1.06 Montserrat,Poppins,sans-serif;
  letter-spacing:-.04em;
  text-wrap:balance;
}
.tsg-elected-flow-panel__content>p{
  margin:14px 0 0;
  max-width:540px;
  color:#766987;
  font-size:12px;
  line-height:1.65;
}

.tsg-elected-flow-panel__metrics{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin-top:23px;
}
.tsg-elected-flow-panel__metrics>div{
  min-width:116px;
  padding:13px 15px;
  border:1px solid rgba(59,30,123,.08);
  border-radius:16px;
  background:rgba(255,255,255,.82);
  box-shadow:0 8px 20px rgba(59,30,123,.035);
}
.tsg-elected-flow-panel__metrics strong{
  display:block;
  color:#3B1E7B;
  font:800 22px/1 Montserrat,Poppins,sans-serif;
}
.tsg-elected-flow-panel__metrics span{
  display:block;
  margin-top:5px;
  color:#897d91;
  font:700 8px/1.25 Poppins,sans-serif;
  text-transform:uppercase;
  letter-spacing:.075em;
}

.tsg-elected-flow-panel__links{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:20px;
}
.tsg-elected-flow-panel__links a{
  min-height:35px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:0 11px;
  border:1px solid rgba(59,30,123,.09);
  border-radius:999px;
  background:#fff;
  color:#3B1E7B!important;
  text-decoration:none!important;
  font:700 8px/1 Poppins,sans-serif;
  box-shadow:0 6px 14px rgba(59,30,123,.035);
  transition:transform .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease;
}
.tsg-elected-flow-panel__links a b{
  color:#DA4816;
  font-size:11px;
}
.tsg-elected-flow-panel__links a:hover{
  transform:translateY(-2px);
  border-color:rgba(218,72,22,.26);
  color:#DA4816!important;
  box-shadow:0 9px 20px rgba(59,30,123,.06);
}

.tsg-elected-flow-panel__live{
  display:flex;
  align-items:flex-start;
  gap:9px;
  margin-top:20px;
  color:#81758b;
  max-width:470px;
}
.tsg-elected-flow-panel__live i{
  flex:0 0 9px;
  width:9px;
  height:9px;
  margin-top:3px;
  border-radius:50%;
  background:#8FAF74;
  box-shadow:0 0 0 0 rgba(143,175,116,.30);
  animation:tsgElectedFlowPulse 2.7s ease-out infinite;
}
.tsg-elected-flow-panel__live span{
  font:600 9px/1.5 Poppins,sans-serif;
}

/* Animated "constellation" artwork — deliberately different from the header planet */
.tsg-elected-flow-panel__art{
  position:absolute;
  z-index:1;
  right:-20px;
  top:50%;
  width:min(43%,390px);
  height:82%;
  transform:translateY(-50%);
  pointer-events:none;
  opacity:.96;
}
.tsg-elected-flow-glow{
  position:absolute;
  right:8%;
  top:50%;
  width:138px;
  height:138px;
  transform:translateY(-50%);
  border-radius:42% 58% 54% 46%;
  background:
    radial-gradient(circle at 38% 34%,rgba(255,255,255,.92) 0%,rgba(143,175,116,.26) 18%,rgba(59,30,123,.20) 54%,rgba(59,30,123,0) 72%);
  filter:blur(.1px);
  animation:tsgElectedFlowMorph 8.5s ease-in-out infinite;
}

.tsg-elected-flow-line{
  position:absolute;
  right:3%;
  border:1px solid rgba(59,30,123,.13);
  border-left-color:rgba(143,175,116,.27);
  border-radius:50%;
  transform-origin:center;
}
.tsg-elected-flow-line--one{
  width:270px;
  height:120px;
  top:18%;
  transform:rotate(-14deg);
  animation:tsgElectedFlowLineOne 10s ease-in-out infinite alternate;
}
.tsg-elected-flow-line--two{
  width:310px;
  height:165px;
  top:37%;
  transform:rotate(9deg);
  border-color:rgba(143,175,116,.23);
  animation:tsgElectedFlowLineTwo 12s ease-in-out infinite alternate;
}
.tsg-elected-flow-line--three{
  width:240px;
  height:102px;
  top:62%;
  transform:rotate(-7deg);
  border-color:rgba(218,72,22,.13);
  animation:tsgElectedFlowLineThree 9s ease-in-out infinite alternate;
}

.tsg-elected-flow-dot{
  position:absolute;
  width:12px;
  height:12px;
  border-radius:50%;
  box-shadow:0 0 0 7px rgba(59,30,123,.035);
}
.tsg-elected-flow-dot--one{
  right:67%;
  top:25%;
  background:#3B1E7B;
  animation:tsgElectedDotOne 7s ease-in-out infinite;
}
.tsg-elected-flow-dot--two{
  right:24%;
  top:34%;
  background:#8FAF74;
  animation:tsgElectedDotTwo 8.5s ease-in-out infinite;
}
.tsg-elected-flow-dot--three{
  right:73%;
  top:62%;
  background:#DA4816;
  animation:tsgElectedDotThree 9.5s ease-in-out infinite;
}
.tsg-elected-flow-dot--four{
  right:31%;
  top:74%;
  width:9px;
  height:9px;
  background:#3B1E7B;
  animation:tsgElectedDotFour 6.8s ease-in-out infinite;
}

@keyframes tsgElectedFlowPulse{
  0%{box-shadow:0 0 0 0 rgba(143,175,116,.32)}
  70%,100%{box-shadow:0 0 0 10px rgba(143,175,116,0)}
}
@keyframes tsgElectedFlowMorph{
  0%,100%{transform:translateY(-50%) rotate(0deg) scale(1);border-radius:42% 58% 54% 46%}
  50%{transform:translateY(-50%) rotate(12deg) scale(1.06);border-radius:55% 45% 42% 58%}
}
@keyframes tsgElectedFlowLineOne{
  from{transform:rotate(-14deg) translateX(0)}
  to{transform:rotate(-8deg) translateX(14px)}
}
@keyframes tsgElectedFlowLineTwo{
  from{transform:rotate(9deg) translateY(0)}
  to{transform:rotate(3deg) translateY(-12px)}
}
@keyframes tsgElectedFlowLineThree{
  from{transform:rotate(-7deg) translateX(0)}
  to{transform:rotate(-13deg) translateX(-12px)}
}
@keyframes tsgElectedDotOne{
  0%,100%{transform:translate(0,0)}
  50%{transform:translate(34px,15px)}
}
@keyframes tsgElectedDotTwo{
  0%,100%{transform:translate(0,0)}
  50%{transform:translate(-26px,28px)}
}
@keyframes tsgElectedDotThree{
  0%,100%{transform:translate(0,0)}
  50%{transform:translate(38px,-20px)}
}
@keyframes tsgElectedDotFour{
  0%,100%{transform:translate(0,0)}
  50%{transform:translate(-22px,-24px)}
}

/* Targets from the animated panel should land comfortably below the sticky navigation */
.tsg-elected-rail-section{
  scroll-margin-top:120px;
}

@media(max-width:980px){
  .tsg-elected-mayor-grid{
    grid-template-columns:minmax(250px,350px) minmax(0,1fr)!important;
  }
  .tsg-elected-flow-panel__content{
    max-width:72%;
    padding:28px 24px;
  }
  .tsg-elected-flow-panel__art{
    right:-55px;
    width:360px;
    opacity:.72;
  }
  .tsg-elected-flow-panel h3{font-size:29px}
}
@media(max-width:760px){
  .tsg-elected-mayor-grid{
    grid-template-columns:1fr!important;
  }
  .tsg-elected-flow-panel{
    min-height:380px;
  }
  .tsg-elected-flow-panel__content{
    max-width:78%;
    padding:28px 22px;
  }
  .tsg-elected-flow-panel__art{
    right:-100px;
    width:340px;
    opacity:.48;
  }
  .tsg-elected-flow-panel__links{
    max-width:100%;
  }
}
@media(max-width:480px){
  .tsg-elected-flow-panel{
    min-height:410px;
  }
  .tsg-elected-flow-panel__content{
    max-width:92%;
  }
  .tsg-elected-flow-panel__art{
    opacity:.25;
  }
}
@media(prefers-reduced-motion:reduce){
  .tsg-elected-flow-panel__live i,
  .tsg-elected-flow-glow,
  .tsg-elected-flow-line,
  .tsg-elected-flow-dot{
    animation:none!important;
  }
}
\n\n/* V1.6.74 — Délibérations : restauration du module dynamique sous le header commun */\n.tsg-actes{\n  padding-top:30px!important;\n}\n@media(min-width:1280px){\n  .tsg-actes__grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;}\n}\n@media(max-width:1279px) and (min-width:760px){\n  .tsg-actes__grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}\n}\n@media(max-width:759px){\n  .tsg-actes__grid{grid-template-columns:1fr!important;}\n}\n

/* V1.6.76 — Accueil : scène nocturne animée fournie par l'utilisateur */
body.tsg-layout-home .tsg-hero__visual.tsg-hero__visual--night{
  position:relative!important;
  overflow:hidden!important;
  display:block!important;
  background:#07143f!important;
  border-radius:26px!important;
  isolation:isolate;
  box-shadow:
    0 24px 54px rgba(10,20,52,.18),
    inset 0 0 0 1px rgba(255,255,255,.10)!important;
}

body.tsg-layout-home .tsg-night-scene{
  position:absolute;
  inset:0;
  overflow:hidden;
  border-radius:inherit;
  background:#07143f;
}

body.tsg-layout-home .tsg-night-scene__base{
  position:absolute!important;
  inset:0!important;
  z-index:1!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  padding:0!important;
  object-fit:cover!important;
  object-position:center 50%!important;
  transform:none!important;
  filter:saturate(1.03) contrast(1.015)!important;
}

/* Subtle animated stars are layered above the original sky. */
body.tsg-layout-home .tsg-night-scene__stars{
  position:absolute;
  z-index:3;
  inset:-18%;
  pointer-events:none;
  mix-blend-mode:screen;
  opacity:.55;
  will-change:transform,opacity;
}

body.tsg-layout-home .tsg-night-scene__stars:before,
body.tsg-layout-home .tsg-night-scene__stars:after{
  content:"";
  position:absolute;
  inset:0;
  background-repeat:repeat;
}

body.tsg-layout-home .tsg-night-scene__stars--far:before{
  background-image:
    radial-gradient(circle,rgba(255,255,255,.95) 0 1px,transparent 1.5px),
    radial-gradient(circle,rgba(183,213,255,.78) 0 1px,transparent 1.7px),
    radial-gradient(circle,rgba(255,255,255,.52) 0 .8px,transparent 1.3px);
  background-size:96px 112px,137px 149px,73px 91px;
  background-position:12px 8px,31px 47px,55px 23px;
}

body.tsg-layout-home .tsg-night-scene__stars--near:before{
  background-image:
    radial-gradient(circle,rgba(255,255,255,.98) 0 1.4px,transparent 2px),
    radial-gradient(circle,rgba(146,190,255,.80) 0 1px,transparent 1.8px);
  background-size:184px 162px,223px 207px;
  background-position:18px 28px,89px 71px;
  filter:drop-shadow(0 0 3px rgba(161,203,255,.72));
}

body.tsg-layout-home .tsg-night-scene__stars--near:after{
  background-image:
    radial-gradient(circle,rgba(255,255,255,.94) 0 1.1px,transparent 1.9px);
  background-size:265px 218px;
  background-position:105px 14px;
  filter:drop-shadow(0 0 5px rgba(255,255,255,.60));
}

/* Trees are duplicated from the supplied photograph and softly animated.
   The masks keep the movement limited to foreground vegetation. */
body.tsg-layout-home .tsg-night-scene__tree{
  position:absolute;
  inset:0;
  z-index:5;
  pointer-events:none;
  overflow:hidden;
  will-change:transform;
}

body.tsg-layout-home .tsg-night-scene__tree img{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  padding:0!important;
  object-fit:cover!important;
  object-position:center 50%!important;
  transform:none!important;
  filter:none!important;
}

body.tsg-layout-home .tsg-night-scene__tree--right{
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,transparent 67%,rgba(0,0,0,.35) 73%,#000 80%,#000 100%);
  mask-image:linear-gradient(90deg,transparent 0%,transparent 67%,rgba(0,0,0,.35) 73%,#000 80%,#000 100%);
  transform-origin:96% 92%;
}

body.tsg-layout-home .tsg-night-scene__tree--bottom{
  -webkit-mask-image:linear-gradient(180deg,transparent 0%,transparent 75%,rgba(0,0,0,.25) 82%,#000 90%,#000 100%);
  mask-image:linear-gradient(180deg,transparent 0%,transparent 75%,rgba(0,0,0,.25) 82%,#000 90%,#000 100%);
  transform-origin:50% 100%;
  opacity:.94;
}

body.tsg-layout-home .tsg-night-scene__atmosphere{
  position:absolute;
  z-index:6;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 54% 41%,rgba(255,198,87,.08),transparent 18%),
    linear-gradient(180deg,rgba(7,20,63,.02),rgba(7,20,63,0) 58%,rgba(3,10,28,.09) 100%);
  box-shadow:inset 0 0 72px rgba(4,12,35,.10);
}

/* Motion */
body.tsg-layout-home .tsg-hero__visual--night.is-animated .tsg-night-scene__stars--far{
  animation:tsgNightStarsFar var(--tsg-night-speed,18s) linear infinite alternate;
}
body.tsg-layout-home .tsg-hero__visual--night.is-animated .tsg-night-scene__stars--near{
  animation:tsgNightStarsNear calc(var(--tsg-night-speed,18s) * .72) ease-in-out infinite alternate;
}
body.tsg-layout-home .tsg-hero__visual--night.is-animated .tsg-night-scene__stars--near:after{
  animation:tsgNightTwinkle 3.8s ease-in-out infinite;
}
body.tsg-layout-home .tsg-hero__visual--night.is-animated .tsg-night-scene__tree--right{
  animation:tsgNightTreeRight calc(var(--tsg-night-speed,18s) * .56) ease-in-out infinite alternate;
}
body.tsg-layout-home .tsg-hero__visual--night.is-animated .tsg-night-scene__tree--bottom{
  animation:tsgNightTreeBottom calc(var(--tsg-night-speed,18s) * .68) ease-in-out infinite alternate;
}

@keyframes tsgNightStarsFar{
  from{transform:translate3d(-5px,-3px,0) scale(1);opacity:.40}
  to{transform:translate3d(15px,9px,0) scale(1.008);opacity:.63}
}
@keyframes tsgNightStarsNear{
  from{transform:translate3d(6px,2px,0) scale(1);opacity:.38}
  to{transform:translate3d(-16px,-8px,0) scale(1.012);opacity:.68}
}
@keyframes tsgNightTwinkle{
  0%,100%{opacity:.35}
  45%{opacity:.85}
  60%{opacity:.48}
}
@keyframes tsgNightTreeRight{
  0%{transform:rotate(-.18deg) translate3d(0,0,0)}
  45%{transform:rotate(.30deg) translate3d(-1px,1px,0)}
  100%{transform:rotate(-.08deg) translate3d(1px,0,0)}
}
@keyframes tsgNightTreeBottom{
  from{transform:skewX(-.12deg) translate3d(-1px,0,0)}
  to{transform:skewX(.15deg) translate3d(1px,-1px,0)}
}

/* Small depth response on hover, while preserving touch behavior. */
@media(hover:hover) and (pointer:fine){
  body.tsg-layout-home .tsg-hero__visual--night:hover .tsg-night-scene__stars--near{
    opacity:.78;
  }
}

@media(max-width:900px){
  body.tsg-layout-home .tsg-hero__visual.tsg-hero__visual--night{
    min-height:480px!important;
    height:480px!important;
  }
  body.tsg-layout-home .tsg-night-scene__base,
  body.tsg-layout-home .tsg-night-scene__tree img{
    object-position:center 48%!important;
  }
}

@media(max-width:620px){
  body.tsg-layout-home .tsg-hero__visual.tsg-hero__visual--night{
    min-height:390px!important;
    height:390px!important;
    border-radius:21px!important;
  }
  body.tsg-layout-home .tsg-night-scene__base,
  body.tsg-layout-home .tsg-night-scene__tree img{
    object-position:center 46%!important;
  }
}

@media(prefers-reduced-motion:reduce){
  body.tsg-layout-home .tsg-hero__visual--night .tsg-night-scene__stars,
  body.tsg-layout-home .tsg-hero__visual--night .tsg-night-scene__stars:after,
  body.tsg-layout-home .tsg-hero__visual--night .tsg-night-scene__tree{
    animation:none!important;
  }
}


/* V1.6.77 — Accueil : cadrage du minaret conforme à la maquette validée */
body.tsg-layout-home .tsg-hero{
  align-items:stretch!important;
}

body.tsg-layout-home .tsg-hero__visual.tsg-hero__visual--night{
  position:relative!important;
  width:100%!important;
  min-height:560px!important;
  height:100%!important;
  aspect-ratio:auto!important;
  overflow:hidden!important;
  border-radius:28px!important;
  background:#081746!important;
  box-shadow:
    0 20px 50px rgba(23,19,44,.12),
    inset 0 0 0 1px rgba(255,255,255,.12)!important;
}

body.tsg-layout-home .tsg-night-scene{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  border-radius:inherit!important;
}

/* Exact visual treatment: full-bleed photo, no padding or gradient placeholder. */
body.tsg-layout-home .tsg-night-scene__base,
body.tsg-layout-home .tsg-night-scene__tree img{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  min-width:100%!important;
  min-height:100%!important;
  max-width:none!important;
  max-height:none!important;
  padding:0!important;
  margin:0!important;
  object-fit:cover!important;
  object-position:50% 48%!important;
  border-radius:0!important;
}

/* Slight crop/zoom gives the same dominant minaret framing as the approved mockup. */
body.tsg-layout-home .tsg-night-scene__base{
  transform:scale(1.045)!important;
  transform-origin:50% 50%!important;
}

/* Keep the minaret itself visually stable while animated layers move above it. */
body.tsg-layout-home .tsg-night-scene__atmosphere{
  background:
    radial-gradient(circle at 51% 37%,rgba(255,203,109,.07),transparent 17%),
    linear-gradient(180deg,rgba(3,10,35,.025),rgba(3,10,35,0) 62%,rgba(3,8,23,.08) 100%)!important;
}

/* Softer, more premium star field. */
body.tsg-layout-home .tsg-night-scene__stars--far{
  opacity:.42!important;
}
body.tsg-layout-home .tsg-night-scene__stars--near{
  opacity:.50!important;
}

/* Tree movement must be barely perceptible. */
body.tsg-layout-home .tsg-hero__visual--night.is-animated .tsg-night-scene__tree--right{
  animation-name:tsgNightTreeRightPremium!important;
}
body.tsg-layout-home .tsg-hero__visual--night.is-animated .tsg-night-scene__tree--bottom{
  animation-name:tsgNightTreeBottomPremium!important;
}

@keyframes tsgNightTreeRightPremium{
  0%{transform:rotate(-.10deg) translate3d(0,0,0)}
  50%{transform:rotate(.16deg) translate3d(-.5px,.5px,0)}
  100%{transform:rotate(-.06deg) translate3d(.5px,0,0)}
}
@keyframes tsgNightTreeBottomPremium{
  from{transform:translate3d(-.5px,0,0)}
  to{transform:translate3d(.5px,-.5px,0)}
}

/* Small breathing depth in sky only, never on the minaret base image. */
body.tsg-layout-home .tsg-hero__visual--night.is-animated .tsg-night-scene__atmosphere{
  animation:tsgNightAtmospherePremium calc(var(--tsg-night-speed,18s) * .72) ease-in-out infinite alternate;
}
@keyframes tsgNightAtmospherePremium{
  from{opacity:.80;transform:scale(1)}
  to{opacity:1;transform:scale(1.012)}
}

@media(min-width:1100px){
  body.tsg-layout-home .tsg-hero__visual.tsg-hero__visual--night{
    min-height:590px!important;
  }
}

@media(max-width:900px){
  body.tsg-layout-home .tsg-hero__visual.tsg-hero__visual--night{
    min-height:500px!important;
    height:500px!important;
  }
  body.tsg-layout-home .tsg-night-scene__base,
  body.tsg-layout-home .tsg-night-scene__tree img{
    object-position:50% 46%!important;
  }
}

@media(max-width:620px){
  body.tsg-layout-home .tsg-hero__visual.tsg-hero__visual--night{
    min-height:430px!important;
    height:430px!important;
    border-radius:22px!important;
  }
  body.tsg-layout-home .tsg-night-scene__base,
  body.tsg-layout-home .tsg-night-scene__tree img{
    object-position:50% 45%!important;
  }
}


/* V1.6.78 — Accueil : l'image remplit réellement tout le grand bloc de droite */
body.tsg-layout-home .tsg-hero__visual.tsg-hero__visual--night{
  padding:0!important;
  margin:0!important;
  background:#07143f!important;
  overflow:hidden!important;
}

/* Neutraliser définitivement les anciens décors du hero générique. */
body.tsg-layout-home .tsg-hero__visual.tsg-hero__visual--night::before,
body.tsg-layout-home .tsg-hero__visual.tsg-hero__visual--night::after{
  content:none!important;
  display:none!important;
  background:none!important;
}

/* La scène doit couvrir le bloc du bord supérieur au bord inférieur. */
body.tsg-layout-home .tsg-hero__visual--night > .tsg-night-scene{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  min-height:100%!important;
  display:block!important;
  padding:0!important;
  margin:0!important;
  overflow:hidden!important;
  border-radius:inherit!important;
}

/* Image principale plein cadre. */
body.tsg-layout-home .tsg-hero__visual--night .tsg-night-scene__base{
  position:absolute!important;
  top:-1%!important;
  right:-1%!important;
  bottom:-1%!important;
  left:-1%!important;
  width:102%!important;
  height:102%!important;
  min-width:102%!important;
  min-height:102%!important;
  max-width:none!important;
  max-height:none!important;
  display:block!important;
  padding:0!important;
  margin:0!important;
  object-fit:cover!important;
  object-position:50% 49%!important;
  transform:scale(1.018)!important;
  transform-origin:center center!important;
  border:0!important;
  border-radius:0!important;
}

/* Les copies servant aux arbres ont exactement le même cadrage que l'image de base. */
body.tsg-layout-home .tsg-night-scene__tree img{
  top:-1%!important;
  right:-1%!important;
  bottom:-1%!important;
  left:-1%!important;
  width:102%!important;
  height:102%!important;
  min-width:102%!important;
  min-height:102%!important;
  object-position:50% 49%!important;
  transform:scale(1.018)!important;
  transform-origin:center center!important;
}

/* Mouvement d'étoiles un peu plus visible sans toucher au minaret. */
body.tsg-layout-home .tsg-hero__visual--night.is-animated .tsg-night-scene__stars--far{
  animation:tsgHomeStarsFull var(--tsg-night-speed,18s) linear infinite alternate!important;
}
body.tsg-layout-home .tsg-hero__visual--night.is-animated .tsg-night-scene__stars--near{
  animation:tsgHomeStarsFullNear calc(var(--tsg-night-speed,18s) * .72) ease-in-out infinite alternate!important;
}

@keyframes tsgHomeStarsFull{
  from{transform:translate3d(-8px,-4px,0) scale(1);opacity:.38}
  to{transform:translate3d(18px,10px,0) scale(1.012);opacity:.68}
}
@keyframes tsgHomeStarsFullNear{
  from{transform:translate3d(7px,4px,0) scale(1.002);opacity:.42}
  to{transform:translate3d(-19px,-10px,0) scale(1.018);opacity:.76}
}

/* Mouvement végétal doux et indépendant. */
body.tsg-layout-home .tsg-hero__visual--night.is-animated .tsg-night-scene__tree--right{
  animation:tsgHomeTreeRight calc(var(--tsg-night-speed,18s) * .62) ease-in-out infinite alternate!important;
}
body.tsg-layout-home .tsg-hero__visual--night.is-animated .tsg-night-scene__tree--bottom{
  animation:tsgHomeTreeBottom calc(var(--tsg-night-speed,18s) * .74) ease-in-out infinite alternate!important;
}
@keyframes tsgHomeTreeRight{
  from{transform:rotate(-.11deg) translate3d(0,0,0)}
  to{transform:rotate(.20deg) translate3d(-1px,.5px,0)}
}
@keyframes tsgHomeTreeBottom{
  from{transform:translate3d(-.6px,0,0) skewX(-.06deg)}
  to{transform:translate3d(.7px,-.4px,0) skewX(.08deg)}
}

@media(max-width:900px){
  body.tsg-layout-home .tsg-hero__visual--night .tsg-night-scene__base,
  body.tsg-layout-home .tsg-night-scene__tree img{
    object-position:50% 47%!important;
  }
}
@media(max-width:620px){
  body.tsg-layout-home .tsg-hero__visual--night .tsg-night-scene__base,
  body.tsg-layout-home .tsg-night-scene__tree img{
    object-position:50% 45%!important;
  }
}


/* V1.6.79 — Accueil : cartes services uniformisées + illustrations nettoyées */
body.tsg-layout-home .tsg-services__grid{
  gap:22px!important;
}

/* Toutes les cartes reprennent maintenant le même fond clair que
   la carte "Inscriptions scolaires". */
body.tsg-layout-home .tsg-service-card,
body.tsg-layout-home .tsg-service-card:nth-child(even),
body.tsg-layout-home .tsg-service-card:nth-child(odd){
  border:1px solid rgba(59,30,123,.075)!important;
  border-top:1px solid rgba(59,30,123,.075)!important;
  background:
    radial-gradient(circle at 92% 8%,rgba(143,175,116,.045),transparent 29%),
    linear-gradient(145deg,#fff 0%,#fdfcfe 58%,#fbfbfa 100%)!important;
  box-shadow:0 14px 38px rgba(47,29,67,.055)!important;
}

body.tsg-layout-home .tsg-service-card:after,
body.tsg-layout-home .tsg-service-card:nth-child(even):after{
  display:none!important;
  content:none!important;
}

/* La couleur de marque est maintenant concentrée derrière l'illustration,
   pour garder les cartes légères et institutionnelles. */
body.tsg-layout-home .tsg-service-card__art{
  position:relative!important;
  isolation:isolate!important;
  min-height:285px!important;
  padding:14px 22px 8px!important;
  overflow:hidden!important;
}

body.tsg-layout-home .tsg-service-card__art::before{
  content:"";
  position:absolute;
  z-index:0;
  left:50%;
  bottom:8px;
  width:88%;
  height:83%;
  transform:translateX(-50%) rotate(-1.5deg);
  border-radius:47% 53% 48% 52% / 43% 47% 53% 57%;
  opacity:.88;
  filter:saturate(.95);
}

/* Couleurs du logo : violet, vert, orange — très douces. */
body.tsg-layout-home .tsg-service-card--1 .tsg-service-card__art::before{
  background:
    radial-gradient(circle at 74% 22%,rgba(218,72,22,.18),transparent 37%),
    linear-gradient(135deg,rgba(59,30,123,.10),rgba(218,72,22,.10) 58%,rgba(143,175,116,.07));
}
body.tsg-layout-home .tsg-service-card--2 .tsg-service-card__art::before{
  background:
    radial-gradient(circle at 24% 22%,rgba(143,175,116,.15),transparent 34%),
    linear-gradient(135deg,rgba(59,30,123,.12),rgba(143,175,116,.09));
}
body.tsg-layout-home .tsg-service-card--3 .tsg-service-card__art::before{
  background:
    radial-gradient(circle at 78% 25%,rgba(218,72,22,.15),transparent 34%),
    linear-gradient(135deg,rgba(143,175,116,.10),rgba(59,30,123,.09));
}
body.tsg-layout-home .tsg-service-card--4 .tsg-service-card__art::before{
  background:
    radial-gradient(circle at 28% 22%,rgba(59,30,123,.13),transparent 35%),
    linear-gradient(135deg,rgba(143,175,116,.12),rgba(218,72,22,.075));
}

/* Les PNG ont désormais un vrai fond transparent : aucune plaque grise
   ne doit apparaître autour de l'illustration. */
body.tsg-layout-home .tsg-service-card__art img{
  position:relative!important;
  z-index:2!important;
  width:100%!important;
  height:100%!important;
  max-width:100%!important;
  max-height:310px!important;
  object-fit:contain!important;
  object-position:center bottom!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  filter:drop-shadow(0 10px 14px rgba(49,28,76,.045))!important;
  image-rendering:auto!important;
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
}

/* Même traitement de texte/espacement sur les 4 cartes. */
body.tsg-layout-home .tsg-service-card__copy{
  min-height:178px!important;
  padding:34px 30px 7px!important;
}
body.tsg-layout-home .tsg-service-card h2{
  color:#3B1E7B!important;
}
body.tsg-layout-home .tsg-service-card p{
  color:#4f406a!important;
}

/* Petit accent de marque sur le bord inférieur au survol uniquement. */
body.tsg-layout-home .tsg-service-card{
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease!important;
}
body.tsg-layout-home .tsg-service-card:hover{
  transform:translateY(-5px)!important;
  border-color:rgba(59,30,123,.15)!important;
  box-shadow:
    inset 0 -3px 0 rgba(218,72,22,.42),
    0 20px 48px rgba(47,29,67,.085)!important;
}

@media(max-width:760px){
  body.tsg-layout-home .tsg-service-card__art{
    min-height:250px!important;
  }
  body.tsg-layout-home .tsg-service-card__art::before{
    width:92%;
    height:80%;
  }
}


/* V1.6.83 — Accueil : animation cinématique du minaret
   Le visuel principal respire très légèrement en profondeur pendant que
   les étoiles et la végétation conservent leurs mouvements indépendants. */
body.tsg-layout-home .tsg-hero__visual--night.is-animated .tsg-night-scene__base{
  will-change:scale,translate,filter;
  animation:tsgMinaretCinematic calc(var(--tsg-night-speed,18s) * 1.15) cubic-bezier(.45,.02,.55,.98) infinite alternate!important;
}

@keyframes tsgMinaretCinematic{
  0%{
    scale:1;
    translate:0 0;
    filter:saturate(1.03) contrast(1.015) brightness(1)!important;
  }
  38%{
    scale:1.008;
    translate:-.18% -.12%;
    filter:saturate(1.045) contrast(1.02) brightness(1.015)!important;
  }
  72%{
    scale:1.016;
    translate:.20% -.28%;
    filter:saturate(1.05) contrast(1.022) brightness(1.025)!important;
  }
  100%{
    scale:1.011;
    translate:.10% .05%;
    filter:saturate(1.04) contrast(1.018) brightness(1.01)!important;
  }
}

/* Un halo très discret fait vivre l'éclairage sans masquer la photo. */
body.tsg-layout-home .tsg-hero__visual--night.is-animated .tsg-night-scene__atmosphere{
  animation:
    tsgNightAtmospherePremium calc(var(--tsg-night-speed,18s) * .72) ease-in-out infinite alternate,
    tsgMinaretLightPulse calc(var(--tsg-night-speed,18s) * .48) ease-in-out infinite alternate!important;
}

@keyframes tsgMinaretLightPulse{
  from{
    box-shadow:inset 0 0 72px rgba(4,12,35,.10), inset 0 0 0 rgba(255,204,112,0);
  }
  to{
    box-shadow:inset 0 0 72px rgba(4,12,35,.06), inset 0 0 90px rgba(255,204,112,.055);
  }
}

@media(hover:hover) and (pointer:fine){
  body.tsg-layout-home .tsg-hero__visual--night.is-animated:hover .tsg-night-scene__base{
    scale:1.012;
  }
}

@media(prefers-reduced-motion:reduce){
  body.tsg-layout-home .tsg-hero__visual--night .tsg-night-scene__base,
  body.tsg-layout-home .tsg-hero__visual--night .tsg-night-scene__atmosphere{
    animation:none!important;
    scale:1!important;
    translate:0 0!important;
  }
}


/* V1.6.84 — Accueil : étoiles et nuages réellement animés
   Deux copies masquées de la photo isolent les bancs de nuages à gauche et à droite.
   Le déplacement reste lent pour conserver un rendu institutionnel et naturel. */
body.tsg-layout-home .tsg-night-scene__cloud{
  position:absolute;
  inset:-1%;
  z-index:2;
  width:102%;
  height:102%;
  overflow:hidden;
  pointer-events:none;
  opacity:.72;
  will-change:transform,opacity;
  transform:translate3d(0,0,0);
}

body.tsg-layout-home .tsg-night-scene__cloud img{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  min-width:100%!important;
  min-height:100%!important;
  max-width:none!important;
  max-height:none!important;
  padding:0!important;
  margin:0!important;
  object-fit:cover!important;
  object-position:50% 49%!important;
  transform:scale(1.018)!important;
  transform-origin:center center!important;
  border:0!important;
  border-radius:0!important;
  filter:saturate(1.06) contrast(1.02) brightness(1.015)!important;
}

/* Zones nuageuses de la photo : le masque évite de déplacer le minaret. */
body.tsg-layout-home .tsg-night-scene__cloud--left{
  -webkit-mask-image:radial-gradient(ellipse 47% 31% at 18% 54%,#000 0 50%,rgba(0,0,0,.94) 61%,rgba(0,0,0,.46) 77%,transparent 100%);
  mask-image:radial-gradient(ellipse 47% 31% at 18% 54%,#000 0 50%,rgba(0,0,0,.94) 61%,rgba(0,0,0,.46) 77%,transparent 100%);
}
body.tsg-layout-home .tsg-night-scene__cloud--right{
  -webkit-mask-image:radial-gradient(ellipse 45% 28% at 82% 57%,#000 0 48%,rgba(0,0,0,.92) 61%,rgba(0,0,0,.42) 78%,transparent 100%);
  mask-image:radial-gradient(ellipse 45% 28% at 82% 57%,#000 0 48%,rgba(0,0,0,.92) 61%,rgba(0,0,0,.42) 78%,transparent 100%);
}

body.tsg-layout-home .tsg-hero__visual--night.is-animated .tsg-night-scene__cloud--left{
  animation:tsgCloudDriftLeft calc(var(--tsg-night-speed,18s) * 1.25) ease-in-out infinite alternate!important;
}
body.tsg-layout-home .tsg-hero__visual--night.is-animated .tsg-night-scene__cloud--right{
  animation:tsgCloudDriftRight calc(var(--tsg-night-speed,18s) * 1.48) ease-in-out infinite alternate!important;
}

@keyframes tsgCloudDriftLeft{
  0%{transform:translate3d(-10px,1px,0) scale(1.006);opacity:.55}
  45%{transform:translate3d(4px,-2px,0) scale(1.012);opacity:.74}
  100%{transform:translate3d(22px,1px,0) scale(1.018);opacity:.63}
}
@keyframes tsgCloudDriftRight{
  0%{transform:translate3d(14px,0,0) scale(1.01);opacity:.54}
  55%{transform:translate3d(-2px,-2px,0) scale(1.016);opacity:.72}
  100%{transform:translate3d(-24px,1px,0) scale(1.01);opacity:.60}
}

/* Les étoiles se déplacent davantage et scintillent à des rythmes différents. */
body.tsg-layout-home .tsg-hero__visual--night.is-animated .tsg-night-scene__stars--far{
  animation:tsgStarsDriftVisible calc(var(--tsg-night-speed,18s) * .92) linear infinite alternate!important;
}
body.tsg-layout-home .tsg-hero__visual--night.is-animated .tsg-night-scene__stars--near{
  animation:tsgStarsDriftVisibleNear calc(var(--tsg-night-speed,18s) * .68) ease-in-out infinite alternate!important;
}
body.tsg-layout-home .tsg-hero__visual--night.is-animated .tsg-night-scene__stars--far:before{
  animation:tsgStarsTwinkleSoft 4.6s ease-in-out infinite alternate!important;
}
body.tsg-layout-home .tsg-hero__visual--night.is-animated .tsg-night-scene__stars--near:before{
  animation:tsgStarsTwinkleSoft 3.2s ease-in-out .4s infinite alternate!important;
}
body.tsg-layout-home .tsg-hero__visual--night.is-animated .tsg-night-scene__stars--near:after{
  animation:tsgStarsTwinkleBright 2.7s ease-in-out .15s infinite!important;
}

@keyframes tsgStarsDriftVisible{
  from{transform:translate3d(-14px,-7px,0) scale(1);opacity:.40}
  to{transform:translate3d(30px,14px,0) scale(1.018);opacity:.72}
}
@keyframes tsgStarsDriftVisibleNear{
  from{transform:translate3d(12px,7px,0) scale(1.003);opacity:.44}
  to{transform:translate3d(-28px,-15px,0) scale(1.024);opacity:.82}
}
@keyframes tsgStarsTwinkleSoft{
  0%{opacity:.58;filter:brightness(.92)}
  42%{opacity:1;filter:brightness(1.18)}
  100%{opacity:.72;filter:brightness(1.02)}
}
@keyframes tsgStarsTwinkleBright{
  0%,100%{opacity:.30;filter:brightness(.9)}
  38%{opacity:.96;filter:brightness(1.35)}
  62%{opacity:.52;filter:brightness(1.08)}
}

@media(max-width:900px){
  body.tsg-layout-home .tsg-night-scene__cloud img{object-position:50% 47%!important}
  body.tsg-layout-home .tsg-night-scene__cloud{opacity:.64}
}
@media(max-width:620px){
  body.tsg-layout-home .tsg-night-scene__cloud img{object-position:50% 45%!important}
  body.tsg-layout-home .tsg-night-scene__cloud{opacity:.58}
}

@media(prefers-reduced-motion:reduce){
  body.tsg-layout-home .tsg-night-scene__cloud,
  body.tsg-layout-home .tsg-night-scene__stars,
  body.tsg-layout-home .tsg-night-scene__stars:before,
  body.tsg-layout-home .tsg-night-scene__stars:after{
    animation:none!important;
    transform:none!important;
  }
}


/* V1.6.85 — Accueil statique + respiration du menu desktop
   L'illustration du minaret n'utilise plus aucun calque animé. */
body.tsg-layout-home .tsg-hero__visual--night,
body.tsg-layout-home .tsg-hero__visual--night .tsg-night-scene,
body.tsg-layout-home .tsg-hero__visual--night .tsg-night-scene__base{
  animation:none!important;
  transform:none!important;
  translate:none!important;
  scale:1!important;
}

/* Sépare visuellement « Historique des points » et « Gestion des absences »
   sans modifier le reste du menu. La classe est posée par le JS après lecture
   du libellé afin de rester compatible avec les menus WordPress/Elementor. */
@media(min-width:901px){
  header a.tsg-nav-space-before-absences,
  nav a.tsg-nav-space-before-absences,
  .site-header a.tsg-nav-space-before-absences,
  .elementor-location-header a.tsg-nav-space-before-absences{
    margin-left:24px!important;
  }
}

/* V1.6.87 — Accueil : largeur harmonisée sur la carte interactive
   Tous les grands blocs de l'accueil utilisent désormais la même largeur
   visuelle que la carte (1640 px maximum), avec les mêmes gouttières responsive. */
body.tsg-layout-home .tsg-hero > .tsg-container,
body.tsg-layout-home .tsg-services > .tsg-container,
body.tsg-layout-home .tsg-news-feature > .tsg-container,
body.tsg-layout-home .tsg-news-timeline > .tsg-container,
body.tsg-layout-home .tsg-newsletter-cta > .tsg-container,
body.tsg-layout-home .tsg-map360__container{
  width:min(1640px,calc(100% - 64px))!important;
  max-width:1640px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* Le carrousel Actualités est lui-même un grand panneau coloré :
   on contraint donc le panneau complet, pas seulement son contenu interne. */
body.tsg-layout-home .tsg-showcase{
  width:min(1640px,calc(100% - 64px))!important;
  max-width:1640px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* L'intérieur du carrousel garde une respiration régulière sans recréer
   un second conteneur trop étroit. */
body.tsg-layout-home .tsg-showcase > .tsg-showcase__inner{
  width:100%!important;
  max-width:none!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-left:32px!important;
  padding-right:32px!important;
}

@media(max-width:1100px){
  body.tsg-layout-home .tsg-hero > .tsg-container,
  body.tsg-layout-home .tsg-services > .tsg-container,
  body.tsg-layout-home .tsg-news-feature > .tsg-container,
  body.tsg-layout-home .tsg-news-timeline > .tsg-container,
  body.tsg-layout-home .tsg-newsletter-cta > .tsg-container,
  body.tsg-layout-home .tsg-map360__container,
  body.tsg-layout-home .tsg-showcase{
    width:calc(100% - 40px)!important;
    max-width:none!important;
  }
  body.tsg-layout-home .tsg-showcase > .tsg-showcase__inner{
    padding-left:20px!important;
    padding-right:20px!important;
  }
}

@media(max-width:760px){
  body.tsg-layout-home .tsg-hero > .tsg-container,
  body.tsg-layout-home .tsg-services > .tsg-container,
  body.tsg-layout-home .tsg-news-feature > .tsg-container,
  body.tsg-layout-home .tsg-news-timeline > .tsg-container,
  body.tsg-layout-home .tsg-newsletter-cta > .tsg-container,
  body.tsg-layout-home .tsg-map360__container,
  body.tsg-layout-home .tsg-showcase{
    width:calc(100% - 24px)!important;
    max-width:none!important;
  }
  body.tsg-layout-home .tsg-showcase > .tsg-showcase__inner{
    padding-left:12px!important;
    padding-right:12px!important;
  }
}

/* =========================================================
   V1.6.89 — Illustrations services sans formes de fond
   Retire les cercles / blobs décoratifs derrière les personnages.
   ========================================================= */
body.tsg-layout-home .tsg-service-card__art::before,
body.tsg-layout-home .tsg-service-card--1 .tsg-service-card__art::before,
body.tsg-layout-home .tsg-service-card--2 .tsg-service-card__art::before,
body.tsg-layout-home .tsg-service-card--3 .tsg-service-card__art::before,
body.tsg-layout-home .tsg-service-card--4 .tsg-service-card__art::before{
  display:none!important;
  content:none!important;
  background:none!important;
  opacity:0!important;
}

/* V1.6.91 — Fond violet du bloc Actualités à ~25 % d'opacité.
   L'opacité est appliquée uniquement au fond afin de conserver textes,
   boutons et cartes à 100 % de lisibilité. */
body.tsg-layout-home .tsg-showcase,
.tsg-elementor-page .tsg-showcase{
  background:linear-gradient(135deg,
    rgba(43,21,92,.25) 0%,
    rgba(34,16,78,.25) 48%,
    rgba(59,30,123,.25) 100%)!important;
}


/* V1.6.92 — Bloc Actualités : titre violet et textes secondaires noirs. */
body.tsg-layout-home .tsg-showcase__heading h2,
.tsg-elementor-page .tsg-showcase__heading h2{
  color:var(--tsg-primary,#3B1E7B)!important;
}
body.tsg-layout-home .tsg-showcase__eyebrow,
.tsg-elementor-page .tsg-showcase__eyebrow,
body.tsg-layout-home .tsg-showcase__heading p,
.tsg-elementor-page .tsg-showcase__heading p{
  color:#17151e!important;
}
body.tsg-layout-home .tsg-showcase-card__meta h3,
.tsg-elementor-page .tsg-showcase-card__meta h3{
  color:var(--tsg-primary,#3B1E7B)!important;
}
body.tsg-layout-home .tsg-showcase-card__meta p,
.tsg-elementor-page .tsg-showcase-card__meta p{
  color:#17151e!important;
}
body.tsg-layout-home .tsg-showcase-card:not(.is-active) .tsg-showcase-card__meta h3,
.tsg-elementor-page .tsg-showcase-card:not(.is-active) .tsg-showcase-card__meta h3{
  color:rgba(59,30,123,.72)!important;
}
body.tsg-layout-home .tsg-showcase-card:not(.is-active) .tsg-showcase-card__meta p,
.tsg-elementor-page .tsg-showcase-card:not(.is-active) .tsg-showcase-card__meta p{
  color:rgba(23,21,30,.58)!important;
}

/* V1.6.93 — Bloc Actualités : fond très clair et discret.
   Le violet reste réservé aux titres ; le panneau utilise un lavande presque blanc
   pour garder une séparation élégante avec le fond général sans assombrir l'accueil. */
body.tsg-layout-home .tsg-showcase,
.tsg-elementor-page .tsg-showcase{
  background:linear-gradient(135deg,
    #fcfbfd 0%,
    #f7f3fa 48%,
    #fbf9fc 100%)!important;
}


/* V1.6.94 — Barres de défilement plus visibles sur fond clair. */
html{
  scrollbar-color:#111 #ecebf0;
  scrollbar-width:auto;
}
body.tsg-site-shell::-webkit-scrollbar{
  width:12px;
}
body.tsg-site-shell::-webkit-scrollbar-track{
  background:#ecebf0;
}
body.tsg-site-shell::-webkit-scrollbar-thumb{
  background:#111;
  border:3px solid #ecebf0;
  border-radius:999px;
}
body.tsg-site-shell::-webkit-scrollbar-thumb:hover{
  background:#000;
}
.tsg-projects-rail{
  scrollbar-color:#111 transparent!important;
}
.tsg-projects-rail::-webkit-scrollbar{height:7px;}
.tsg-projects-rail::-webkit-scrollbar-track{background:transparent;}
.tsg-projects-rail::-webkit-scrollbar-thumb{background:#111;border-radius:999px;}


/* =========================================================
   V1.6.95 — Lisibilité générale et navigation du carrousel
   ========================================================= */

/* Les indicateurs du carrousel Actualités passent en noir pour rester
   nettement visibles sur le fond lavande très clair. */
body.tsg-layout-home .tsg-showcase__dots button,
.tsg-elementor-page .tsg-showcase__dots button{
  background:rgba(17,17,17,.38)!important;
  border:0!important;
}
body.tsg-layout-home .tsg-showcase__dots button.is-active,
.tsg-elementor-page .tsg-showcase__dots button.is-active{
  background:#111!important;
}
body.tsg-layout-home .tsg-showcase__dots button:focus-visible,
.tsg-elementor-page .tsg-showcase__dots button:focus-visible{
  outline:2px solid #111!important;
  outline-offset:3px!important;
}

/* Justification homogène des contenus éditoriaux de la plateforme publique.
   Les titres, menus, boutons, badges et contrôles restent volontairement
   alignés selon leur composant pour ne pas dégrader l'interface. */
body.tsg-site-shell p,
body.tsg-site-shell li,
body.tsg-site-shell .tsg-editor-content,
body.tsg-site-shell .tsg-editor-content p,
body.tsg-site-shell .tsg-editor-content li,
.tsg-elementor-page p,
.tsg-elementor-page li{
  text-align:justify!important;
  text-justify:inter-word;
  hyphens:auto;
  -webkit-hyphens:auto;
}

/* Les textes très courts et purement fonctionnels ne sont pas étirés. */
body.tsg-site-shell nav p,
body.tsg-site-shell button p,
body.tsg-site-shell a.tsg-pill-button p,
body.tsg-site-shell .tsg-showcase__hint,
body.tsg-site-shell .tsg-showcase-card__tag,
body.tsg-site-shell .tsg-map360__category{
  text-align:inherit!important;
  hyphens:none;
}

/* L'introduction Actualités bénéficie d'une largeur confortable pour que
   le nouveau texte reste aéré malgré la justification. */
body.tsg-layout-home .tsg-showcase__heading p,
.tsg-elementor-page .tsg-showcase__heading p{
  max-width:820px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  line-height:1.7!important;
}

/* =========================================================
   V1.6.96 — Carrousel Actualités : mise au premier plan renforcée
   + suppression des derniers accents orange au profit d'un violet doux.
   ========================================================= */

/* Accent global du bloc Actualités : violet doux uniquement. */
body.tsg-layout-home .tsg-showcase,
.tsg-elementor-page .tsg-showcase{
  --tsg-showcase-accent:#7a63a8!important;
}

/* Le petit trait de l'accroche n'est plus orange. */
body.tsg-layout-home .tsg-showcase__eyebrow::before,
.tsg-elementor-page .tsg-showcase__eyebrow::before{
  background:#8f7ab9!important;
  opacity:.72!important;
}

/* Mise en avant beaucoup plus lisible de la carte qui arrive au premier plan. */
body.tsg-layout-home .tsg-showcase-card,
.tsg-elementor-page .tsg-showcase-card{
  transition:
    transform .74s cubic-bezier(.18,.82,.22,1),
    opacity .52s ease,
    filter .58s ease!important;
}

body.tsg-layout-home .tsg-showcase-card.is-active,
.tsg-elementor-page .tsg-showcase-card.is-active{
  --card-scale:1.08!important;
  filter:brightness(1.035) saturate(1.04)!important;
  z-index:8!important;
}

body.tsg-layout-home .tsg-showcase-card.is-near,
.tsg-elementor-page .tsg-showcase-card.is-near{
  --card-scale:.76!important;
  --card-opacity:.52!important;
  filter:saturate(.72) brightness(.82)!important;
}

body.tsg-layout-home .tsg-showcase-card.is-far,
.tsg-elementor-page .tsg-showcase-card.is-far{
  --card-scale:.62!important;
  --card-opacity:.22!important;
  filter:saturate(.52) brightness(.78)!important;
}

body.tsg-layout-home .tsg-showcase-card.is-active .tsg-showcase-card__media,
.tsg-elementor-page .tsg-showcase-card.is-active .tsg-showcase-card__media{
  transform:translateY(-10px) scale(1.035)!important;
  border-color:rgba(122,99,168,.78)!important;
  box-shadow:
    0 34px 78px rgba(49,31,84,.24),
    0 0 0 3px rgba(122,99,168,.18)!important;
  animation:tsgShowcaseFrontFocus .72s cubic-bezier(.18,.82,.22,1) both!important;
}

body.tsg-layout-home .tsg-showcase-card.is-active .tsg-showcase-card__media img,
.tsg-elementor-page .tsg-showcase-card.is-active .tsg-showcase-card__media img{
  transform:scale(1.018)!important;
  filter:brightness(1.035) contrast(1.015)!important;
}

/* Le reflet au passage devient lui aussi violet très léger. */
body.tsg-layout-home .tsg-showcase-card__media::before,
.tsg-elementor-page .tsg-showcase-card__media::before{
  background:linear-gradient(110deg,transparent 38%,rgba(139,116,188,.18) 50%,transparent 62%)!important;
}

@keyframes tsgShowcaseFrontFocus{
  0%{
    transform:translateY(2px) scale(.98);
    box-shadow:0 18px 38px rgba(49,31,84,.12),0 0 0 1px rgba(122,99,168,.08);
  }
  55%{
    transform:translateY(-13px) scale(1.05);
    box-shadow:0 38px 86px rgba(49,31,84,.28),0 0 0 5px rgba(122,99,168,.14);
  }
  100%{
    transform:translateY(-10px) scale(1.035);
    box-shadow:0 34px 78px rgba(49,31,84,.24),0 0 0 3px rgba(122,99,168,.18);
  }
}

/* Aucun élément orange ne doit réapparaître dans le carrousel Actualités. */
body.tsg-layout-home .tsg-showcase__arrow:hover,
.tsg-elementor-page .tsg-showcase__arrow:hover{
  background:#6f579f!important;
}
body.tsg-layout-home .tsg-showcase__dots button.is-active,
.tsg-elementor-page .tsg-showcase__dots button.is-active{
  background:#111!important;
}

@media(max-width:767px){
  body.tsg-layout-home .tsg-showcase-card.is-active,
  .tsg-elementor-page .tsg-showcase-card.is-active{
    --card-scale:1.03!important;
  }
  body.tsg-layout-home .tsg-showcase-card.is-active .tsg-showcase-card__media,
  .tsg-elementor-page .tsg-showcase-card.is-active .tsg-showcase-card__media{
    transform:translateY(-6px) scale(1.018)!important;
  }
}

@media(prefers-reduced-motion:reduce){
  body.tsg-layout-home .tsg-showcase-card.is-active .tsg-showcase-card__media,
  .tsg-elementor-page .tsg-showcase-card.is-active .tsg-showcase-card__media{
    animation:none!important;
  }
}

/* =========================================================
   V1.6.97 — Actualités : bloc plus ample et fond violet clair uniforme
   Le carrousel gagne en hauteur et en respiration pour éviter l'effet écrasé.
   ========================================================= */
body.tsg-layout-home .tsg-showcase,
.tsg-elementor-page .tsg-showcase{
  background:#f6f1fa!important;
  padding-top:74px!important;
  padding-bottom:72px!important;
}

/* Fond totalement uniforme : suppression des halos / diagonales décoratives. */
body.tsg-layout-home .tsg-showcase::before,
.tsg-elementor-page .tsg-showcase::before{
  background:none!important;
  display:none!important;
}
body.tsg-layout-home .tsg-showcase__glow,
.tsg-elementor-page .tsg-showcase__glow{
  display:none!important;
}

/* Plus d'espace entre l'introduction et le carrousel. */
body.tsg-layout-home .tsg-showcase__heading,
.tsg-elementor-page .tsg-showcase__heading{
  margin-bottom:38px!important;
}

/* La scène est agrandie afin que les cartes et leurs textes ne soient plus tassés/coupés. */
body.tsg-layout-home .tsg-showcase__stage,
.tsg-elementor-page .tsg-showcase__stage{
  height:610px!important;
}

/* Cartes légèrement plus grandes, mais avec davantage d'espace entre elles. */
body.tsg-layout-home .tsg-showcase-card,
.tsg-elementor-page .tsg-showcase-card{
  width:clamp(220px,20vw,302px)!important;
  transform:translate3d(
    calc(-50% + (var(--slot) * clamp(225px,20vw,338px))),
    -50%,0
  ) scale(var(--card-scale)) rotateY(calc(var(--slot) * -2deg))!important;
}

/* Le focus central reste net sans écraser la composition. */
body.tsg-layout-home .tsg-showcase-card.is-active,
.tsg-elementor-page .tsg-showcase-card.is-active{
  --card-scale:1.06!important;
}
body.tsg-layout-home .tsg-showcase-card.is-near,
.tsg-elementor-page .tsg-showcase-card.is-near{
  --card-scale:.82!important;
  --card-opacity:.58!important;
}
body.tsg-layout-home .tsg-showcase-card.is-far,
.tsg-elementor-page .tsg-showcase-card.is-far{
  --card-scale:.68!important;
  --card-opacity:.28!important;
}

/* Le texte sous la carte active dispose de plus de respiration. */
body.tsg-layout-home .tsg-showcase-card__meta,
.tsg-elementor-page .tsg-showcase-card__meta{
  padding-top:20px!important;
}
body.tsg-layout-home .tsg-showcase-card__meta p,
.tsg-elementor-page .tsg-showcase-card__meta p{
  min-height:46px!important;
}
body.tsg-layout-home .tsg-showcase__footer,
.tsg-elementor-page .tsg-showcase__footer{
  margin-top:14px!important;
}

@media(max-width:1100px){
  body.tsg-layout-home .tsg-showcase,
  .tsg-elementor-page .tsg-showcase{
    padding-top:62px!important;
    padding-bottom:58px!important;
  }
  body.tsg-layout-home .tsg-showcase__stage,
  .tsg-elementor-page .tsg-showcase__stage{
    height:560px!important;
  }
  body.tsg-layout-home .tsg-showcase-card,
  .tsg-elementor-page .tsg-showcase-card{
    width:clamp(205px,27vw,270px)!important;
    transform:translate3d(calc(-50% + (var(--slot) * clamp(205px,27vw,292px))),-50%,0) scale(var(--card-scale))!important;
  }
}

@media(max-width:767px){
  body.tsg-layout-home .tsg-showcase,
  .tsg-elementor-page .tsg-showcase{
    padding-top:48px!important;
    padding-bottom:44px!important;
  }
  body.tsg-layout-home .tsg-showcase__heading,
  .tsg-elementor-page .tsg-showcase__heading{
    margin-bottom:28px!important;
  }
  body.tsg-layout-home .tsg-showcase__stage,
  .tsg-elementor-page .tsg-showcase__stage{
    height:520px!important;
  }
  body.tsg-layout-home .tsg-showcase-card,
  .tsg-elementor-page .tsg-showcase-card{
    width:min(70vw,252px)!important;
    transform:translate3d(calc(-50% + (var(--slot) * 71vw)),-50%,0) scale(var(--card-scale))!important;
  }
  body.tsg-layout-home .tsg-showcase-card.is-active,
  .tsg-elementor-page .tsg-showcase-card.is-active{
    --card-scale:1.02!important;
  }
}

/* =========================================================
   V1.6.98 — Actualités : contour vert léger sur la carte mise en avant
   ========================================================= */
body.tsg-layout-home .tsg-showcase-card.is-active .tsg-showcase-card__media,
.tsg-elementor-page .tsg-showcase-card.is-active .tsg-showcase-card__media{
  border:4px solid rgba(143,183,108,.82)!important;
  box-shadow:
    0 34px 78px rgba(49,31,84,.20),
    0 0 0 3px rgba(143,183,108,.16)!important;
}

@keyframes tsgShowcaseFrontFocus{
  0%{
    transform:translateY(2px) scale(.98);
    box-shadow:0 18px 38px rgba(49,31,84,.10),0 0 0 1px rgba(143,183,108,.08);
  }
  55%{
    transform:translateY(-13px) scale(1.05);
    box-shadow:0 38px 86px rgba(49,31,84,.24),0 0 0 5px rgba(143,183,108,.13);
  }
  100%{
    transform:translateY(-10px) scale(1.035);
    box-shadow:0 34px 78px rgba(49,31,84,.20),0 0 0 3px rgba(143,183,108,.16);
  }
}

/* =========================================================
   V1.7.00 — Vert doux réservé aux images du carrousel Actualités
   Aucun contour vert n'est appliqué au reste de la plateforme.
   ========================================================= */
:root{
  --tsg-news-image-outline:#99A98E;
}

/* Uniquement l'image mise en avant dans le carrousel Actualités. */
body.tsg-layout-home .tsg-showcase-card.is-active .tsg-showcase-card__media,
.tsg-elementor-page .tsg-showcase-card.is-active .tsg-showcase-card__media{
  border-color:var(--tsg-news-image-outline)!important;
  box-shadow:
    0 34px 78px rgba(49,31,84,.18),
    0 0 0 3px rgba(153,169,142,.14)!important;
}

/* Les autres images du carrousel conservent leur contour neutre d'origine. */
body.tsg-layout-home .tsg-showcase-card:not(.is-active) .tsg-showcase-card__media,
.tsg-elementor-page .tsg-showcase-card:not(.is-active) .tsg-showcase-card__media{
  border-color:rgba(59,30,123,.10)!important;
}

/* V1.7.01 — Hero jour/nuit automatique (heure locale de Mayotte)
   La seconde proposition visuelle est utilisée en deux cadrages complémentaires.
   Le premier plan reste intégralement visible ; un fond flouté remplit les côtés
   sans couper le minaret ni la lune. */
body.tsg-layout-home .tsg-time-scene{
  position:absolute!important;
  inset:0!important;
  overflow:hidden!important;
  isolation:isolate;
  background:#eef4fb!important;
}
body.tsg-layout-home .tsg-time-scene__backdrop{
  position:absolute;
  inset:-24px;
  z-index:0;
  background-position:center!important;
  background-size:cover!important;
  filter:blur(18px) saturate(1.06) brightness(.94);
  transform:scale(1.08)!important;
  opacity:0;
  transition:opacity 1.2s ease;
}
body.tsg-layout-home .tsg-time-scene__image{
  position:absolute!important;
  inset:0!important;
  z-index:1!important;
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  max-width:100%!important;
  max-height:100%!important;
  object-fit:contain!important;
  object-position:center center!important;
  transform:none!important;
  scale:1!important;
  translate:0 0!important;
  opacity:0;
  transition:opacity 1.2s ease!important;
  background:transparent!important;
}
body.tsg-layout-home .tsg-time-scene.is-day .tsg-time-scene__image--day,
body.tsg-layout-home .tsg-time-scene.is-day .tsg-time-scene__backdrop--day,
body.tsg-layout-home .tsg-time-scene.is-night .tsg-time-scene__image--night,
body.tsg-layout-home .tsg-time-scene.is-night .tsg-time-scene__backdrop--night{
  opacity:1!important;
}
body.tsg-layout-home .tsg-time-scene.is-day{
  background:#dff1ff!important;
}
body.tsg-layout-home .tsg-time-scene.is-night{
  background:#07143f!important;
}

/* Survol : les illustrations des cartes gagnent une petite profondeur.
   La 3e illustration (identité / passeport / permis) est légèrement plus vivante. */
body.tsg-layout-home .tsg-service-card__art img{
  transition:transform .42s cubic-bezier(.2,.75,.25,1),filter .42s ease!important;
  transform-origin:50% 82%!important;
  will-change:transform;
}
@media(hover:hover) and (pointer:fine){
  body.tsg-layout-home .tsg-service-card:hover .tsg-service-card__art img{
    transform:translate3d(0,-6px,0) scale(1.018)!important;
  }
  body.tsg-layout-home .tsg-service-card--3:hover .tsg-service-card__art img{
    transform:translate3d(0,-10px,0) rotate(-.7deg) scale(1.03)!important;
  }
  .tsg-civil-card .tsg-civil-card__icon{
    transition:transform .42s cubic-bezier(.2,.75,.25,1)!important;
    transform-origin:center!important;
  }
  .tsg-civil-card:hover .tsg-civil-card__icon{
    transform:translate3d(-4px,-5px,0) rotate(-2deg) scale(1.04)!important;
  }
  .tsg-civil-card:nth-child(3):hover .tsg-civil-card__icon{
    transform:translate3d(-7px,-8px,0) rotate(2deg) scale(1.08)!important;
  }
}
@media(prefers-reduced-motion:reduce){
  body.tsg-layout-home .tsg-time-scene__image,
  body.tsg-layout-home .tsg-time-scene__backdrop,
  body.tsg-layout-home .tsg-service-card__art img,
  .tsg-civil-card .tsg-civil-card__icon{
    transition:none!important;
    transform:none!important;
  }
}

/* =========================================================
   V1.7.02 — Les documents de la 3e carte bougent dans la main.
   Le mouvement est limité au passeport / permis / carte d'identité
   afin que la main et le reste de l'illustration restent stables.
   ========================================================= */
body.tsg-layout-home .tsg-service-card--3 .tsg-service-card__art--documents{
  position:relative!important;
}
body.tsg-layout-home .tsg-service-card--3 .tsg-service-card__main-image{
  transform:none!important;
  transition:filter .4s ease!important;
}
body.tsg-layout-home .tsg-service-card--3:hover .tsg-service-card__main-image{
  transform:none!important;
}
body.tsg-layout-home .tsg-service-docs{
  position:absolute!important;
  z-index:4!important;
  inset:14px 22px 8px!important;
  pointer-events:none!important;
  overflow:visible!important;
}
body.tsg-layout-home .tsg-service-docs .tsg-service-doc{
  position:absolute!important;
  inset:0!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  object-fit:contain!important;
  object-position:center bottom!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  filter:none!important;
  transform:none!important;
  transform-origin:50% 50%!important;
  will-change:transform;
  opacity:1!important;
}
/* Découpage visuel des trois documents à partir du PNG d'origine. */
body.tsg-layout-home .tsg-service-doc--passport{
  clip-path:polygon(17% 0%,60% 0%,61% 33%,17% 33%)!important;
  transform-origin:43% 22%!important;
}
body.tsg-layout-home .tsg-service-doc--permit{
  clip-path:polygon(53% 8%,96% 8%,96% 61%,53% 61%)!important;
  transform-origin:71% 32%!important;
}
body.tsg-layout-home .tsg-service-doc--id{
  clip-path:polygon(13% 27%,64% 27%,64% 67%,13% 67%)!important;
  transform-origin:40% 49%!important;
}
@media(hover:hover) and (pointer:fine){
  body.tsg-layout-home .tsg-service-card--3:hover .tsg-service-doc--passport{
    animation:tsg-doc-passport-hover 1.65s ease-in-out infinite alternate!important;
  }
  body.tsg-layout-home .tsg-service-card--3:hover .tsg-service-doc--permit{
    animation:tsg-doc-permit-hover 1.85s ease-in-out .08s infinite alternate!important;
  }
  body.tsg-layout-home .tsg-service-card--3:hover .tsg-service-doc--id{
    animation:tsg-doc-id-hover 1.5s ease-in-out .04s infinite alternate!important;
  }
}
@keyframes tsg-doc-passport-hover{
  0%{transform:translate3d(-1px,0,0) rotate(-.15deg) scale(1.001)}
  100%{transform:translate3d(-5px,-5px,0) rotate(-1.35deg) scale(1.008)}
}
@keyframes tsg-doc-permit-hover{
  0%{transform:translate3d(0,0,0) rotate(.1deg) scale(1.001)}
  100%{transform:translate3d(5px,-4px,0) rotate(1.25deg) scale(1.008)}
}
@keyframes tsg-doc-id-hover{
  0%{transform:translate3d(0,0,0) rotate(0deg) scale(1.001)}
  100%{transform:translate3d(-3px,-3px,0) rotate(-.55deg) scale(1.006)}
}
@media(max-width:780px){
  body.tsg-layout-home .tsg-service-docs{
    inset:12px 18px 0!important;
  }
}
@media(prefers-reduced-motion:reduce){
  body.tsg-layout-home .tsg-service-card--3:hover .tsg-service-doc{
    animation:none!important;
    transform:none!important;
  }
}

/* =========================================================
   V1.7.03 — Indicateurs du carrousel Actualités
   Actif en vert doux, inactifs en gris.
   ========================================================= */
body.tsg-layout-home .tsg-showcase__dots button,
.tsg-elementor-page .tsg-showcase__dots button{
  background:#aaa7ad!important;
  opacity:1!important;
}
body.tsg-layout-home .tsg-showcase__dots button.is-active,
.tsg-elementor-page .tsg-showcase__dots button.is-active{
  background:#99A98E!important;
}
body.tsg-layout-home .tsg-showcase__dots button:focus-visible,
.tsg-elementor-page .tsg-showcase__dots button:focus-visible{
  outline:2px solid #99A98E!important;
  outline-offset:3px!important;
}
\n\n/* =========================================================
   V1.7.06 — Actualités : contour vert très clair et allégé
   Le vert doux reste perceptible sur la carte active sans
   encadrer fortement l'image ni créer de halo marqué.
   ========================================================= */
body.tsg-layout-home .tsg-showcase-card.is-active .tsg-showcase-card__media,
.tsg-elementor-page .tsg-showcase-card.is-active .tsg-showcase-card__media{
  border:1px solid rgba(153,169,142,.30)!important;
  box-shadow:
    0 20px 46px rgba(49,31,84,.09),
    0 0 0 1px rgba(153,169,142,.025)!important;
}

@keyframes tsgShowcaseFrontFocus{
  0%{
    transform:translateY(2px) scale(.98);
    box-shadow:0 14px 30px rgba(49,31,84,.06),0 0 0 1px rgba(153,169,142,.015);
  }
  55%{
    transform:translateY(-13px) scale(1.05);
    box-shadow:0 26px 58px rgba(49,31,84,.11),0 0 0 1px rgba(153,169,142,.035);
  }
  100%{
    transform:translateY(-10px) scale(1.035);
    box-shadow:0 20px 46px rgba(49,31,84,.09),0 0 0 1px rgba(153,169,142,.025);
  }
}

/* =========================================================
   V1.7.07 — Actualités : contour des CARTES réellement allégé
   Correction d'un conflit CSS : d'anciennes règles de bordure
   étaient déclarées plus bas et reprenaient la priorité.
   Cette règle finale est volontairement placée en fin de fichier.
   ========================================================= */
body.tsg-layout-home .tsg-showcase-card .tsg-showcase-card__media,
.tsg-elementor-page .tsg-showcase-card .tsg-showcase-card__media{
  border:1px solid rgba(92,88,102,.10)!important;
  outline:0!important;
  box-shadow:0 12px 28px rgba(49,31,84,.055)!important;
}

body.tsg-layout-home .tsg-showcase-card.is-active .tsg-showcase-card__media,
.tsg-elementor-page .tsg-showcase-card.is-active .tsg-showcase-card__media{
  border:1px solid rgba(153,169,142,.20)!important;
  outline:0!important;
  box-shadow:0 14px 32px rgba(49,31,84,.065)!important;
}

body.tsg-layout-home .tsg-showcase-card.is-near .tsg-showcase-card__media,
body.tsg-layout-home .tsg-showcase-card.is-far .tsg-showcase-card__media,
.tsg-elementor-page .tsg-showcase-card.is-near .tsg-showcase-card__media,
.tsg-elementor-page .tsg-showcase-card.is-far .tsg-showcase-card__media{
  border-color:rgba(92,88,102,.08)!important;
  box-shadow:0 9px 20px rgba(49,31,84,.035)!important;
}


/* =========================================================
   V1.7.08 — Actualités : halo vert très léger sur la carte active
   Halo volontairement subtil pour garder un rendu clair et propre.
   ========================================================= */
body.tsg-layout-home .tsg-showcase-card.is-active .tsg-showcase-card__media,
.tsg-elementor-page .tsg-showcase-card.is-active .tsg-showcase-card__media{
  border:1px solid rgba(153,169,142,.20)!important;
  outline:0!important;
  box-shadow:
    0 14px 32px rgba(49,31,84,.055),
    0 0 18px rgba(153,169,142,.11)!important;
}

/* =========================================================
   V1.7.09 — Carte interactive : boutons violet très clair
   Palette inspirée du fond Actualités (#f6f1fa), légère et propre.
   ========================================================= */
:root{
  --tsg-map-lavender:#f6f1fa;
  --tsg-map-lavender-hover:#f0e8f7;
  --tsg-map-lavender-active:#e9def3;
  --tsg-map-lavender-border:rgba(59,30,123,.10);
  --tsg-map-lavender-text:#4a3766;
}

/* Sélecteur Plan / Sombre */
.tsg-map360__view{
  background:rgba(255,255,255,.95)!important;
  border:1px solid var(--tsg-map-lavender-border)!important;
  box-shadow:0 10px 26px rgba(59,30,123,.08)!important;
}
.tsg-map360__view button{
  background:var(--tsg-map-lavender)!important;
  color:var(--tsg-map-lavender-text)!important;
  border:1px solid rgba(59,30,123,.055)!important;
  box-shadow:none!important;
}
.tsg-map360__view button:hover,
.tsg-map360__view button:focus-visible{
  background:var(--tsg-map-lavender-hover)!important;
  color:#3B1E7B!important;
}
.tsg-map360__view button.is-active{
  background:var(--tsg-map-lavender-active)!important;
  color:#3B1E7B!important;
  box-shadow:0 5px 14px rgba(59,30,123,.08)!important;
}
.tsg-map360__view button.is-active:after{
  background:rgba(59,30,123,.24)!important;
}

/* Colonne de commandes à droite */
.tsg-map360__controls{
  background:rgba(246,241,250,.94)!important;
  border:1px solid rgba(59,30,123,.09)!important;
  box-shadow:0 14px 34px rgba(59,30,123,.10)!important;
}
.tsg-map360__controls:before{
  background:rgba(59,30,123,.16)!important;
}
.tsg-map360__controls button,
.tsg-map360__controls button.is-zoom{
  background:rgba(255,255,255,.54)!important;
  border-color:rgba(59,30,123,.09)!important;
  color:#3B1E7B!important;
  box-shadow:0 6px 16px rgba(59,30,123,.055)!important;
}
.tsg-map360__controls button:hover,
.tsg-map360__controls button:focus-visible{
  background:var(--tsg-map-lavender-hover)!important;
  color:#3B1E7B!important;
  box-shadow:0 7px 18px rgba(59,30,123,.08)!important;
}
.tsg-map360__controls button.is-active{
  background:var(--tsg-map-lavender-active)!important;
  color:#3B1E7B!important;
}
.tsg-map360__controls-separator{
  background:linear-gradient(90deg,transparent,rgba(59,30,123,.13),transparent)!important;
}

/* Filtres de catégories au bas de la carte */
.tsg-map360__legend{
  background:rgba(255,255,255,.95)!important;
  border-color:rgba(59,30,123,.08)!important;
  box-shadow:0 12px 32px rgba(59,30,123,.085)!important;
}
.tsg-map360__legend button{
  background:var(--tsg-map-lavender)!important;
  color:#625672!important;
  border:1px solid rgba(59,30,123,.045)!important;
  box-shadow:none!important;
}
.tsg-map360__legend button:hover,
.tsg-map360__legend button:focus-visible{
  background:var(--tsg-map-lavender-hover)!important;
  color:#3B1E7B!important;
}
.tsg-map360__legend button.is-active,
.tsg-map360__legend button[aria-pressed="true"]{
  background:var(--tsg-map-lavender-active)!important;
  color:#3B1E7B!important;
  box-shadow:0 6px 16px rgba(59,30,123,.07)!important;
}
.tsg-map360__legend button.is-active i{
  background:rgba(59,30,123,.08)!important;
  color:var(--legend,#3B1E7B)!important;
  border-color:rgba(59,30,123,.07)!important;
}

/* Petit bouton d'effacement de la recherche */
.tsg-map360__search>button{
  background:var(--tsg-map-lavender)!important;
  color:#3B1E7B!important;
}
.tsg-map360__search>button:hover,
.tsg-map360__search>button:focus-visible{
  background:var(--tsg-map-lavender-hover)!important;
}

/* =========================================================
   V1.7.10 — Carte interactive : badges harmonisés en violet très clair
   Applique la même palette légère que les autres boutons de la carte.
   ========================================================= */
.tsg-map360__map-brand{
  background:rgba(246,241,250,.95)!important;
  border:1px solid rgba(59,30,123,.09)!important;
  box-shadow:0 10px 24px rgba(59,30,123,.07)!important;
  backdrop-filter:blur(12px)!important;
}
.tsg-map360__map-brand strong{
  color:#3B1E7B!important;
}
.tsg-map360__map-brand small{
  color:#6f647a!important;
}
.tsg-map360__map-brand>i{
  background:#99A98E!important;
  box-shadow:0 0 0 5px rgba(153,169,142,.14)!important;
}
.tsg-map360__zoom-status{
  background:rgba(246,241,250,.96)!important;
  color:#4a3766!important;
  border:1px solid rgba(59,30,123,.08)!important;
  box-shadow:0 8px 22px rgba(59,30,123,.06)!important;
  backdrop-filter:blur(12px)!important;
  opacity:1!important;
}

/* =========================================================
   V1.7.11 — Carte interactive : filtres centrés dans la barre
   Centre horizontalement les catégories dans le bandeau blanc.
   ========================================================= */
@media (min-width:761px){
  .tsg-map360__legend{
    justify-content:center!important;
  }
}
@media (max-width:760px){
  .tsg-map360__legend{
    justify-content:flex-start!important;
  }
}

/* =========================================================
   V1.7.12 — Carte interactive : barre de filtres plus compacte
   Réduit légèrement le bandeau blanc et répartit les boutons
   sur toute sa largeur pour éviter l'espace vide à droite.
   ========================================================= */
@media (min-width:1101px){
  .tsg-map360__legend{
    left:50%!important;
    right:auto!important;
    width:min(1220px,calc(100% - 330px))!important;
    max-width:none!important;
    transform:translateX(-50%)!important;
    justify-content:space-between!important;
    gap:10px!important;
    padding:7px 10px!important;
  }
  .tsg-map360__legend button{
    flex:1 1 0!important;
    justify-content:center!important;
    min-width:0!important;
    padding-inline:10px!important;
  }
}
@media (min-width:761px) and (max-width:1100px){
  .tsg-map360__legend{
    left:18px!important;
    right:18px!important;
    width:auto!important;
    transform:none!important;
    justify-content:space-between!important;
    gap:7px!important;
  }
  .tsg-map360__legend button{
    flex:1 1 0!important;
    justify-content:center!important;
    min-width:0!important;
  }
}
\n\n/* =========================================================\n   V1.7.14 — Accueil : encart « Nos actualités » plus léger\n   Refonte inspirée de la proposition validée : fond clair,\n   texte à gauche et trois visuels superposés à droite.\n   ========================================================= */\nbody .tsg-news-feature.tsg-news-feature--airy{\n  padding:24px 0 46px!important;\n}\nbody .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__inner{\n  position:relative!important;\n  min-height:390px!important;\n  display:grid!important;\n  grid-template-columns:minmax(0,.78fr) minmax(520px,1.22fr)!important;\n  align-items:center!important;\n  gap:38px!important;\n  padding:52px 62px!important;\n  overflow:hidden!important;\n  border-radius:32px!important;\n  border:1px solid rgba(59,30,123,.075)!important;\n  background:\n    radial-gradient(circle at 72% 44%,rgba(237,229,249,.62) 0,rgba(246,243,251,.32) 28%,transparent 52%),\n    linear-gradient(112deg,#fff 0%,#fbfbfd 52%,#f8f7fb 100%)!important;\n  color:#282337!important;\n  box-shadow:0 14px 34px rgba(43,30,74,.055)!important;\n}\nbody .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__inner:before{\n  content:\"\";\n  position:absolute;\n  width:360px;\n  height:360px;\n  right:26%;\n  bottom:-220px;\n  border-radius:50%;\n  background:rgba(153,169,142,.05);\n  pointer-events:none;\n}\nbody .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__copy{\n  position:relative!important;\n  z-index:4!important;\n  padding:0!important;\n  max-width:600px!important;\n}\nbody .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__eyebrow{\n  display:flex;\n  align-items:center;\n  gap:13px;\n  margin:0 0 20px;\n  color:#5d5570;\n  font-size:13px;\n  font-weight:700;\n  letter-spacing:.18em;\n  text-transform:uppercase;\n}\nbody .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__eyebrow span{\n  width:34px;\n  height:2px;\n  border-radius:999px;\n  background:#3B1E7B;\n}\nbody .tsg-news-feature.tsg-news-feature--airy h2{\n  margin:0 0 22px!important;\n  max-width:620px!important;\n  font-size:clamp(38px,3.05vw,58px)!important;\n  line-height:1.02!important;\n  font-weight:700!important;\n  letter-spacing:-.035em!important;\n  color:#3B1E7B!important;\n  background:linear-gradient(92deg,#3B1E7B 0%,#3B1E7B 48%,#526E41 100%);\n  -webkit-background-clip:text;\n  background-clip:text;\n  -webkit-text-fill-color:transparent;\n}\nbody .tsg-news-feature.tsg-news-feature--airy p{\n  margin:0 0 30px!important;\n  max-width:590px!important;\n  color:#5d5669!important;\n  font-size:16px!important;\n  line-height:1.72!important;\n  text-align:left!important;\n}\nbody .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__button{\n  display:inline-flex!important;\n  align-items:center!important;\n  justify-content:center!important;\n  gap:24px!important;\n  min-width:220px!important;\n  min-height:54px!important;\n  padding:0 24px!important;\n  border:0!important;\n  border-radius:999px!important;\n  background:linear-gradient(100deg,#3B1E7B 0%,#6844aa 100%)!important;\n  color:#fff!important;\n  box-shadow:0 10px 22px rgba(59,30,123,.13)!important;\n  transition:transform .22s ease,box-shadow .22s ease!important;\n}\nbody .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__button b{\n  font-size:21px;\n  line-height:1;\n  font-weight:400;\n  transition:transform .22s ease;\n}\n@media (hover:hover) and (pointer:fine){\n  body .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__button:hover{\n    transform:translateY(-2px);\n    box-shadow:0 13px 28px rgba(59,30,123,.17)!important;\n  }\n  body .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__button:hover b{transform:translateX(4px)}\n}\nbody .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__art{\n  position:relative!important;\n  min-height:300px!important;\n  height:100%!important;\n  overflow:visible!important;\n  display:block!important;\n  isolation:isolate;\n}\nbody .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo{\n  position:absolute;\n  display:block;\n  overflow:hidden;\n  border-radius:28px;\n  border:5px solid rgba(255,255,255,.96);\n  background:#eef0f3;\n  box-shadow:0 16px 34px rgba(34,24,57,.12);\n  transform-origin:center;\n  transition:transform .35s ease,box-shadow .35s ease;\n}\nbody .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo img{\n  width:100%;\n  height:100%;\n  display:block;\n  object-fit:cover;\n}\nbody .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--left{\n  z-index:2;\n  width:235px;\n  height:208px;\n  left:2%;\n  top:54px;\n  transform:rotate(-1.5deg);\n}\nbody .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--main{\n  z-index:4;\n  width:330px;\n  height:278px;\n  left:29%;\n  top:8px;\n  transform:translateZ(0);\n  box-shadow:0 20px 42px rgba(34,24,57,.15);\n}\nbody .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--right{\n  z-index:2;\n  width:220px;\n  height:205px;\n  right:0;\n  top:58px;\n  transform:rotate(2deg);\n}\n@media (hover:hover) and (pointer:fine){\n  body .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__art:hover .tsg-news-photo--left{transform:translate(-5px,-3px) rotate(-2.2deg)}\n  body .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__art:hover .tsg-news-photo--main{transform:translateY(-6px) scale(1.015);box-shadow:0 24px 48px rgba(34,24,57,.17)}\n  body .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__art:hover .tsg-news-photo--right{transform:translate(5px,-2px) rotate(2.5deg)}\n}\nbody .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__decor{\n  position:absolute;\n  z-index:0;\n  display:block;\n  border-radius:50%;\n  pointer-events:none;\n}\nbody .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__decor--purple{\n  width:130px;\n  height:130px;\n  top:-4px;\n  right:14%;\n  background:rgba(172,137,232,.18);\n}\nbody .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__decor--green{\n  width:34px;\n  height:34px;\n  right:1.5%;\n  bottom:44px;\n  background:rgba(82,110,65,.26);\n}\nbody .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__dots{\n  position:absolute;\n  z-index:1;\n  width:116px;\n  height:52px;\n  right:0;\n  top:24px;\n  opacity:.42;\n  background-image:radial-gradient(circle,#8e6fd0 2px,transparent 2.5px);\n  background-size:20px 20px;\n}\n\n@media (max-width:1180px){\n  body .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__inner{\n    grid-template-columns:minmax(0,.9fr) minmax(430px,1.1fr)!important;\n    padding:44px 42px!important;\n    gap:24px!important;\n  }\n  body .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--left{width:190px;height:180px;left:0}\n  body .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--main{width:285px;height:250px;left:25%}\n  body .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--right{width:185px;height:178px}\n}\n@media (max-width:900px){\n  body .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__inner{\n    grid-template-columns:1fr!important;\n    gap:22px!important;\n    padding:38px 34px 34px!important;\n  }\n  body .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__copy{max-width:100%!important}\n  body .tsg-news-feature.tsg-news-feature--airy p{max-width:680px!important}\n  body .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__art{min-height:300px!important}\n  body .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--left{width:31%;height:190px;left:9%;top:60px}\n  body .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--main{width:40%;height:260px;left:30%;top:10px}\n  body .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--right{width:30%;height:186px;right:8%;top:64px}\n}\n@media (max-width:620px){\n  body .tsg-news-feature.tsg-news-feature--airy{padding:14px 0 30px!important}\n  body .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__inner{\n    padding:30px 20px 24px!important;\n    border-radius:24px!important;\n  }\n  body .tsg-news-feature.tsg-news-feature--airy h2{font-size:36px!important}\n  body .tsg-news-feature.tsg-news-feature--airy p{font-size:15px!important;line-height:1.62!important}\n  body .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__button{width:100%!important;min-width:0!important}\n  body .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__art{min-height:240px!important}\n  body .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo{border-width:4px;border-radius:20px}\n  body .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--left{width:36%;height:150px;left:1%;top:55px}\n  body .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--main{width:48%;height:205px;left:26%;top:12px}\n  body .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--right{width:34%;height:145px;right:0;top:60px}\n  body .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__decor--purple{width:90px;height:90px}\n}\n@media (prefers-reduced-motion:reduce){\n  body .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo,\n  body .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__button,\n  body .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__button b{transition:none!important}\n}\n
/* =========================================================
   V1.7.15 — Accueil / encart « Nos actualités »
   Fidélité renforcée à la maquette blanche validée.
   ========================================================= */
body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy{
  padding:28px 0 48px!important;
  background:#fff!important;
}
body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__inner{
  position:relative!important;
  min-height:455px!important;
  display:grid!important;
  grid-template-columns:minmax(0,.78fr) minmax(620px,1.22fr)!important;
  align-items:center!important;
  gap:38px!important;
  padding:48px 58px 48px 74px!important;
  overflow:hidden!important;
  border-radius:32px!important;
  border:1px solid #ece8f1!important;
  background:linear-gradient(105deg,#ffffff 0%,#fdfdff 58%,#fbfaff 100%)!important;
  color:#342d42!important;
  box-shadow:0 14px 36px rgba(45,29,78,.055)!important;
}
body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__copy{
  position:relative!important;
  z-index:3!important;
  padding:0!important;
  max-width:590px!important;
}
body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__eyebrow{
  display:flex!important;
  align-items:center!important;
  gap:15px!important;
  margin:0 0 20px!important;
  color:#675e78!important;
  font-size:12px!important;
  line-height:1!important;
  font-weight:600!important;
  letter-spacing:.18em!important;
  text-transform:uppercase!important;
}
body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__eyebrow span{
  display:block!important;
  width:34px!important;
  height:2px!important;
  border-radius:99px!important;
  background:#4a258f!important;
}
body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy h2{
  margin:0 0 22px!important;
  max-width:600px!important;
  font-size:clamp(44px,3.2vw,62px)!important;
  line-height:1.02!important;
  font-weight:700!important;
  letter-spacing:-.035em!important;
  color:#3B1E7B!important;
  background:linear-gradient(92deg,#3B1E7B 0%,#3B1E7B 53%,#5d7c4e 88%,#5d7c4e 100%)!important;
  -webkit-background-clip:text!important;
  background-clip:text!important;
  -webkit-text-fill-color:transparent!important;
}
body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy p{
  margin:0 0 32px!important;
  max-width:550px!important;
  color:#686173!important;
  font-size:17px!important;
  line-height:1.55!important;
  font-weight:400!important;
  text-align:left!important;
}
body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__button{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:26px!important;
  min-width:245px!important;
  min-height:58px!important;
  padding:0 26px!important;
  border:0!important;
  border-radius:999px!important;
  background:linear-gradient(100deg,#3B1E7B 0%,#6740a8 100%)!important;
  color:#fff!important;
  box-shadow:0 11px 24px rgba(59,30,123,.13)!important;
  font-size:15px!important;
  font-weight:600!important;
  text-decoration:none!important;
}
body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__button b{
  font-size:24px!important;
  line-height:1!important;
  font-weight:300!important;
}
body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__art{
  position:relative!important;
  z-index:2!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:350px!important;
  height:100%!important;
  overflow:visible!important;
  isolation:isolate!important;
}
body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__reference-art{
  display:block!important;
  width:100%!important;
  max-width:960px!important;
  height:auto!important;
  object-fit:contain!important;
  object-position:center!important;
  filter:none!important;
  transform:none!important;
  opacity:1!important;
}
@media (hover:hover) and (pointer:fine){
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__button:hover{
    transform:translateY(-2px)!important;
    box-shadow:0 15px 30px rgba(59,30,123,.17)!important;
  }
}
@media (max-width:1240px){
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__inner{
    grid-template-columns:minmax(0,.85fr) minmax(500px,1.15fr)!important;
    padding:44px 42px 44px 52px!important;
    gap:22px!important;
  }
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy h2{font-size:clamp(40px,4vw,54px)!important}
}
@media (max-width:960px){
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__inner{
    grid-template-columns:1fr!important;
    gap:24px!important;
    padding:40px 38px 34px!important;
  }
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__copy{max-width:100%!important}
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy p{max-width:700px!important}
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__art{min-height:300px!important}
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__reference-art{max-width:880px!important}
}
@media (max-width:620px){
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy{padding:18px 0 32px!important}
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__inner{
    min-height:0!important;
    padding:30px 20px 22px!important;
    border-radius:24px!important;
  }
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy h2{font-size:38px!important}
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy p{font-size:15px!important;line-height:1.6!important}
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__button{width:100%!important;min-width:0!important}
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__art{min-height:210px!important}
}


/* =========================================================
   V1.7.16 — Encart « Nos actualités » : mini-carrousel actif
   Les trois cartes sont maintenant de vrais éléments interactifs.
   ========================================================= */
body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__art[data-tsg-news-mini-carousel],
body .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__art[data-tsg-news-mini-carousel]{
  min-height:350px!important;
  display:block!important;
  position:relative!important;
  padding:0 68px 20px 0!important;
}
body .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo[data-news-mini-slide]{
  appearance:none!important;
  -webkit-appearance:none!important;
  padding:0!important;
  margin:0!important;
  font:inherit!important;
  color:inherit!important;
  cursor:pointer!important;
  outline:none!important;
  overflow:hidden!important;
  border:5px solid rgba(255,255,255,.98)!important;
  box-shadow:0 14px 34px rgba(34,24,57,.11)!important;
  transition:left .5s cubic-bezier(.2,.75,.25,1),right .5s cubic-bezier(.2,.75,.25,1),top .5s cubic-bezier(.2,.75,.25,1),width .5s cubic-bezier(.2,.75,.25,1),height .5s cubic-bezier(.2,.75,.25,1),transform .5s cubic-bezier(.2,.75,.25,1),box-shadow .35s ease,opacity .35s ease!important;
}
body .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo[data-news-mini-slide]:focus-visible{
  box-shadow:0 0 0 4px rgba(97,66,157,.16),0 18px 38px rgba(34,24,57,.14)!important;
}
body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--left{
  z-index:2!important;width:235px!important;height:205px!important;left:0!important;right:auto!important;top:72px!important;transform:rotate(-2deg) scale(.97)!important;opacity:.94!important;
}
body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--main{
  z-index:4!important;width:330px!important;height:280px!important;left:28%!important;right:auto!important;top:18px!important;transform:translateY(-2px) scale(1)!important;opacity:1!important;box-shadow:0 22px 44px rgba(34,24,57,.15)!important;
}
body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--right{
  z-index:2!important;width:220px!important;height:205px!important;left:auto!important;right:70px!important;top:73px!important;transform:rotate(2deg) scale(.97)!important;opacity:.94!important;
}
body .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo[data-news-mini-slide] img{
  pointer-events:none!important;
  user-select:none!important;
}
body .tsg-news-mini-carousel__controls{
  position:absolute!important;
  z-index:8!important;
  right:0!important;
  bottom:24px!important;
  display:flex!important;
  align-items:center!important;
  gap:12px!important;
}
body .tsg-news-mini-carousel__controls button{
  width:48px!important;
  height:48px!important;
  display:grid!important;
  place-items:center!important;
  padding:0!important;
  margin:0!important;
  border:1px solid rgba(89,58,150,.16)!important;
  border-radius:50%!important;
  background:rgba(255,255,255,.92)!important;
  color:#3B1E7B!important;
  box-shadow:0 8px 18px rgba(43,30,74,.055)!important;
  font-size:32px!important;
  line-height:1!important;
  font-weight:300!important;
  cursor:pointer!important;
  transition:transform .2s ease,background .2s ease,border-color .2s ease,box-shadow .2s ease!important;
}
body .tsg-news-mini-carousel__controls button:last-child{
  background:#f2ecfb!important;
  border-color:rgba(106,70,174,.34)!important;
}
@media (hover:hover) and (pointer:fine){
  body .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo[data-news-mini-slide]:hover{box-shadow:0 20px 42px rgba(34,24,57,.15)!important}
  body .tsg-news-mini-carousel__controls button:hover{transform:translateY(-2px)!important;background:#f7f3fc!important;box-shadow:0 11px 22px rgba(43,30,74,.09)!important}
  body .tsg-news-mini-carousel__controls button:last-child:hover{background:#eae0f8!important}
}
@media (max-width:1240px){
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--left{width:190px!important;height:176px!important;top:82px!important}
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--main{width:280px!important;height:246px!important;left:26%!important;top:30px!important}
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--right{width:185px!important;height:174px!important;right:66px!important;top:84px!important}
}
@media (max-width:960px){
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__art[data-tsg-news-mini-carousel]{min-height:310px!important;padding-right:64px!important}
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--left{width:31%!important;height:185px!important;left:7%!important;top:72px!important}
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--main{width:40%!important;height:260px!important;left:30%!important;top:14px!important}
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--right{width:30%!important;height:182px!important;right:7%!important;top:76px!important}
}
@media (max-width:620px){
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__art[data-tsg-news-mini-carousel]{min-height:250px!important;padding:0 0 58px!important}
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo[data-news-mini-slide]{border-width:3px!important;border-radius:18px!important}
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--left{width:38%!important;height:142px!important;left:0!important;top:60px!important}
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--main{width:49%!important;height:198px!important;left:25.5%!important;top:20px!important}
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--right{width:37%!important;height:140px!important;right:0!important;top:62px!important}
  body .tsg-news-mini-carousel__controls{right:50%!important;bottom:0!important;transform:translateX(50%)!important}
  body .tsg-news-mini-carousel__controls button{width:44px!important;height:44px!important;font-size:28px!important}
}
@media (prefers-reduced-motion:reduce){
  body .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo[data-news-mini-slide],
  body .tsg-news-mini-carousel__controls button{transition:none!important}
}


/* =========================================================
   V1.7.17 — « Nos actualités » : correction fidèle du carrousel
   Garde exactement la composition validée tout en restant interactif.
   ========================================================= */
body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__art[data-tsg-news-mini-carousel]{
  position:relative!important;
  display:block!important;
  min-height:350px!important;
  height:350px!important;
  padding:0 74px 18px 0!important;
  overflow:visible!important;
  isolation:isolate!important;
  box-sizing:border-box!important;
}
body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo[data-news-mini-slide]{
  position:absolute!important;
  display:block!important;
  box-sizing:border-box!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  border:4px solid rgba(255,255,255,.98)!important;
  border-radius:28px!important;
  background:#fff!important;
  cursor:pointer!important;
  line-height:0!important;
  box-shadow:0 16px 36px rgba(42,30,67,.12)!important;
  transform-origin:center center!important;
  transition:left .48s cubic-bezier(.22,.72,.24,1),right .48s cubic-bezier(.22,.72,.24,1),top .48s cubic-bezier(.22,.72,.24,1),width .48s cubic-bezier(.22,.72,.24,1),height .48s cubic-bezier(.22,.72,.24,1),transform .48s cubic-bezier(.22,.72,.24,1),box-shadow .32s ease,opacity .32s ease!important;
}
body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo[data-news-mini-slide] img{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  display:block!important;
  margin:0!important;
  padding:0!important;
  object-fit:cover!important;
  object-position:center center!important;
  border:0!important;
  border-radius:inherit!important;
  pointer-events:none!important;
  user-select:none!important;
}
body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--left{
  z-index:2!important;
  width:244px!important;
  height:206px!important;
  left:4%!important;
  right:auto!important;
  top:78px!important;
  opacity:1!important;
  transform:rotate(-1.8deg) translateZ(0)!important;
}
body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--main{
  z-index:5!important;
  width:348px!important;
  height:286px!important;
  left:30%!important;
  right:auto!important;
  top:20px!important;
  opacity:1!important;
  transform:translateY(-2px) scale(1)!important;
  box-shadow:0 22px 48px rgba(42,30,67,.16)!important;
}
body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--right{
  z-index:2!important;
  width:236px!important;
  height:204px!important;
  left:auto!important;
  right:76px!important;
  top:80px!important;
  opacity:1!important;
  transform:rotate(1.8deg) translateZ(0)!important;
}
body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__decor--purple{
  z-index:0!important;
  width:118px!important;
  height:118px!important;
  top:14px!important;
  right:18%!important;
  background:rgba(170,132,229,.18)!important;
}
body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__decor--green{
  z-index:0!important;
  width:32px!important;
  height:32px!important;
  right:5%!important;
  bottom:66px!important;
  background:rgba(132,171,111,.34)!important;
}
body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__dots{
  z-index:0!important;
  width:122px!important;
  height:58px!important;
  right:3%!important;
  top:34px!important;
  opacity:.34!important;
}
body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-mini-carousel__controls{
  position:absolute!important;
  z-index:9!important;
  right:6px!important;
  bottom:22px!important;
  display:flex!important;
  gap:12px!important;
  align-items:center!important;
  transform:none!important;
}
body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-mini-carousel__controls button{
  appearance:none!important;
  -webkit-appearance:none!important;
  width:48px!important;
  height:48px!important;
  min-width:48px!important;
  min-height:48px!important;
  padding:0!important;
  margin:0!important;
  display:grid!important;
  place-items:center!important;
  border:1px solid rgba(79,49,137,.13)!important;
  border-radius:50%!important;
  background:rgba(255,255,255,.96)!important;
  color:#3B1E7B!important;
  box-shadow:0 8px 20px rgba(43,30,74,.055)!important;
  font:300 31px/1 Arial,sans-serif!important;
  cursor:pointer!important;
}
body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-mini-carousel__controls button:last-child{
  background:#f3edfc!important;
  border-color:rgba(106,70,174,.24)!important;
}
body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo[data-news-mini-slide]:focus-visible{
  outline:none!important;
  box-shadow:0 0 0 4px rgba(116,79,183,.12),0 20px 42px rgba(42,30,67,.15)!important;
}
@media (hover:hover) and (pointer:fine){
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--left:hover{transform:translate(-3px,-3px) rotate(-2deg)!important}
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--main:hover{transform:translateY(-7px) scale(1.012)!important;box-shadow:0 26px 52px rgba(42,30,67,.18)!important}
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--right:hover{transform:translate(3px,-3px) rotate(2deg)!important}
}
@media (max-width:1240px){
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__art[data-tsg-news-mini-carousel]{min-height:320px!important;height:320px!important;padding-right:62px!important}
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--left{width:202px!important;height:176px!important;left:2%!important;top:76px!important}
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--main{width:292px!important;height:246px!important;left:28%!important;top:24px!important}
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--right{width:194px!important;height:174px!important;right:62px!important;top:78px!important}
}
@media (max-width:960px){
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__art[data-tsg-news-mini-carousel]{min-height:305px!important;height:305px!important;padding:0 56px 0 0!important}
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--left{width:31%!important;height:180px!important;left:7%!important;top:72px!important}
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--main{width:41%!important;height:250px!important;left:29.5%!important;top:14px!important}
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--right{width:30%!important;height:176px!important;right:7%!important;top:74px!important}
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-mini-carousel__controls{right:0!important;bottom:6px!important}
}
@media (max-width:620px){
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__art[data-tsg-news-mini-carousel]{min-height:255px!important;height:255px!important;padding:0 0 52px!important}
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo[data-news-mini-slide]{border-width:3px!important;border-radius:18px!important}
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--left{width:37%!important;height:138px!important;left:0!important;top:64px!important}
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--main{width:50%!important;height:194px!important;left:25%!important;top:18px!important}
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--right{width:36%!important;height:136px!important;right:0!important;top:66px!important}
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-mini-carousel__controls{right:50%!important;bottom:0!important;transform:translateX(50%)!important}
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-mini-carousel__controls button{width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important}
}
@media (prefers-reduced-motion:reduce){
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo[data-news-mini-slide],body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-mini-carousel__controls button{transition:none!important}
}

/* =========================================================
   V1.7.18 — Navigation du mini-carrousel sous les cartes
   Les flèches sont centrées juste sous le groupe d'images.
   ========================================================= */
body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__art[data-tsg-news-mini-carousel]{
  min-height:380px!important;
  height:380px!important;
  padding:0 32px 66px 0!important;
}
body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-mini-carousel__controls{
  left:50%!important;
  right:auto!important;
  bottom:2px!important;
  transform:translateX(-50%)!important;
  justify-content:center!important;
}
@media (max-width:1240px){
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__art[data-tsg-news-mini-carousel]{
    min-height:358px!important;
    height:358px!important;
    padding:0 28px 62px 0!important;
  }
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-mini-carousel__controls{
    left:50%!important;
    right:auto!important;
    bottom:2px!important;
    transform:translateX(-50%)!important;
  }
}
@media (max-width:960px){
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__art[data-tsg-news-mini-carousel]{
    min-height:340px!important;
    height:340px!important;
    padding:0 0 62px!important;
  }
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-mini-carousel__controls{
    left:50%!important;
    right:auto!important;
    bottom:0!important;
    transform:translateX(-50%)!important;
  }
}
@media (max-width:620px){
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-feature__art[data-tsg-news-mini-carousel]{
    min-height:272px!important;
    height:272px!important;
    padding:0 0 58px!important;
  }
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-mini-carousel__controls{
    left:50%!important;
    right:auto!important;
    bottom:0!important;
    transform:translateX(-50%)!important;
  }
}

/* =========================================================
   V1.7.19 — Accueil : fusion Actualités + Agenda
   Un seul encart « Les rendez-vous de la commune ».
   ========================================================= */
body .tsg-home-agenda{padding:30px 0 62px!important}
body .tsg-home-agenda .tsg-container{max-width:1640px}
body .tsg-home-agenda__card{position:relative;overflow:hidden;border:1px solid rgba(59,30,123,.075);border-radius:32px;background:linear-gradient(112deg,#fff 0%,#fcfbfe 54%,#f8f7fb 100%);box-shadow:0 16px 42px rgba(43,30,74,.055)}
body .tsg-home-agenda__hero{position:relative;display:grid;grid-template-columns:minmax(0,.84fr) minmax(520px,1.16fr);align-items:center;gap:38px;min-height:390px;padding:48px 58px 28px}
body .tsg-home-agenda__hero:before{content:"";position:absolute;width:330px;height:330px;right:23%;bottom:-210px;border-radius:50%;background:rgba(153,169,142,.045);pointer-events:none}
body .tsg-home-agenda__copy{position:relative;z-index:4;max-width:610px}
body .tsg-home-agenda__eyebrow{display:flex;align-items:center;gap:13px;margin:0 0 18px;color:#5d5570;font-size:13px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}
body .tsg-home-agenda__eyebrow span{width:34px;height:2px;border-radius:999px;background:#3B1E7B}
body .tsg-home-agenda__copy h2{margin:0 0 22px!important;max-width:650px!important;color:#3B1E7B!important;font-size:clamp(38px,3.15vw,60px)!important;line-height:1.03!important;font-weight:700!important;letter-spacing:-.04em!important;background:linear-gradient(92deg,#3B1E7B 0%,#3B1E7B 54%,#526E41 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
body .tsg-home-agenda__copy>p{margin:0 0 28px!important;max-width:590px!important;color:#61596d!important;font-size:16px!important;line-height:1.72!important;text-align:left!important}
body .tsg-home-agenda__actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
body .tsg-home-agenda__actions .tsg-front-add,body .tsg-home-agenda__all{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:50px;padding:0 20px;border-radius:999px;text-decoration:none!important;font:700 12px/1 Poppins,sans-serif;transition:transform .22s ease,box-shadow .22s ease,background .22s ease}
body .tsg-home-agenda__actions .tsg-front-add{background:#fff!important;color:#3B1E7B!important;border:1px solid rgba(59,30,123,.10)!important;box-shadow:0 8px 20px rgba(43,30,69,.06)!important}
body .tsg-home-agenda__all{background:linear-gradient(100deg,#3B1E7B 0%,#6844aa 100%);color:#fff!important;box-shadow:0 10px 22px rgba(59,30,123,.13)}
body .tsg-home-agenda__all span{font-size:18px;line-height:1;font-weight:400}
@media (hover:hover) and (pointer:fine){body .tsg-home-agenda__actions .tsg-front-add:hover,body .tsg-home-agenda__all:hover{transform:translateY(-2px)}body .tsg-home-agenda__all:hover{box-shadow:0 13px 28px rgba(59,30,123,.17)}}
body .tsg-home-agenda__visual{position:relative;z-index:2;min-height:310px;height:100%;isolation:isolate}
body .tsg-home-agenda__preview{position:absolute;display:block;padding:0;margin:0;overflow:hidden;border-radius:28px;border:4px solid rgba(255,255,255,.97);background:#eef0f3;box-shadow:0 16px 34px rgba(34,24,57,.12);cursor:pointer;transform-origin:center;transition:transform .35s ease,box-shadow .35s ease,opacity .35s ease}
body .tsg-home-agenda__preview img{width:100%;height:100%;display:block;object-fit:cover}
body .tsg-home-agenda__preview--left{z-index:2;width:33%;height:205px;left:1.5%;top:62px;transform:rotate(-1.4deg)}
body .tsg-home-agenda__preview--main{z-index:4;width:46%;height:286px;left:27%;top:4px;border-color:rgba(255,255,255,.99);box-shadow:0 20px 42px rgba(34,24,57,.15)}
body .tsg-home-agenda__preview--right{z-index:2;width:31%;height:202px;right:0;top:64px;transform:rotate(1.7deg)}
body .tsg-home-agenda__preview:focus-visible{outline:3px solid rgba(153,169,142,.48);outline-offset:3px}
@media (hover:hover) and (pointer:fine){body .tsg-home-agenda__preview--left:hover{transform:translate(-4px,-3px) rotate(-2deg)}body .tsg-home-agenda__preview--main:hover{transform:translateY(-6px) scale(1.012);box-shadow:0 24px 48px rgba(34,24,57,.17)}body .tsg-home-agenda__preview--right:hover{transform:translate(4px,-3px) rotate(2.2deg)}}
body .tsg-home-agenda__orb{position:absolute;z-index:0;display:block;border-radius:50%;pointer-events:none}
body .tsg-home-agenda__orb--purple{width:128px;height:128px;top:-5px;right:14%;background:rgba(172,137,232,.16)}
body .tsg-home-agenda__orb--green{width:34px;height:34px;right:1.5%;bottom:42px;background:rgba(82,110,65,.22)}
body .tsg-home-agenda__dots{position:absolute;z-index:1;width:116px;height:52px;right:0;top:25px;opacity:.34;background-image:radial-gradient(circle,#8e6fd0 2px,transparent 2.5px);background-size:20px 20px}
body .tsg-home-agenda__timeline{margin:0 34px 34px;border:1px solid rgba(59,30,123,.07);border-radius:24px;overflow:hidden;background:rgba(255,255,255,.82);box-shadow:0 10px 26px rgba(43,30,74,.035)}
body .tsg-home-agenda .tsg-news-timeline__panels{height:138px;border-bottom:1px solid rgba(59,30,123,.06)}
body .tsg-home-agenda .tsg-news-timeline__panel{grid-template-columns:minmax(0,1fr) 58px;gap:20px;padding:18px 22px}
body .tsg-home-agenda .tsg-news-timeline__image{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}
body .tsg-home-agenda .tsg-news-timeline__copy h3{font-size:clamp(19px,1.7vw,27px)!important}
body .tsg-home-agenda .tsg-news-timeline__copy p{max-width:980px!important}
body .tsg-home-agenda .tsg-news-timeline__read{width:50px;height:50px;border-radius:16px;background:linear-gradient(135deg,#3B1E7B,#6844aa);box-shadow:0 10px 22px rgba(59,30,123,.14)}
body .tsg-home-agenda .tsg-news-timeline__read:hover{background:linear-gradient(135deg,#526E41,#7c956d)}
body .tsg-home-agenda .tsg-news-timeline__rail{padding:15px 14px 17px;background:rgba(250,249,252,.78)}
body .tsg-home-agenda .tsg-news-timeline__line{background:linear-gradient(90deg,rgba(59,30,123,.12),rgba(153,169,142,.30),rgba(59,30,123,.10))}
body .tsg-home-agenda .tsg-news-timeline__point.is-active .tsg-news-timeline__dot i{border-color:#99A98E;background:#99A98E;box-shadow:0 0 0 5px rgba(153,169,142,.13)}
body .tsg-home-agenda__empty{margin:0 34px 34px;padding:28px;border:1px dashed rgba(59,30,123,.16);border-radius:22px;background:#faf9fc;display:flex;flex-direction:column;gap:6px;color:#6d6375}
body .tsg-home-agenda__empty strong{color:#3B1E7B;font:700 20px/1.2 Montserrat,Poppins,sans-serif}
@media (max-width:1120px){body .tsg-home-agenda__hero{grid-template-columns:minmax(0,.92fr) minmax(430px,1.08fr);gap:24px;padding:44px 42px 26px}body .tsg-home-agenda__preview--left{height:180px}body .tsg-home-agenda__preview--main{height:252px}body .tsg-home-agenda__preview--right{height:178px}}
@media (max-width:900px){body .tsg-home-agenda__hero{grid-template-columns:1fr;gap:20px;padding:38px 34px 24px}body .tsg-home-agenda__copy{max-width:100%}body .tsg-home-agenda__copy>p{max-width:680px!important}body .tsg-home-agenda__visual{min-height:300px}body .tsg-home-agenda__preview--left{width:31%;height:185px;left:9%;top:60px}body .tsg-home-agenda__preview--main{width:40%;height:258px;left:30%;top:8px}body .tsg-home-agenda__preview--right{width:30%;height:182px;right:8%;top:63px}body .tsg-home-agenda__timeline{margin:0 24px 26px}}
@media (max-width:640px){body .tsg-home-agenda{padding:14px 0 36px!important}body .tsg-home-agenda__card{border-radius:24px}body .tsg-home-agenda__hero{padding:30px 20px 20px}body .tsg-home-agenda__copy h2{font-size:35px!important}body .tsg-home-agenda__copy>p{font-size:15px!important;line-height:1.62!important}body .tsg-home-agenda__actions{align-items:stretch;flex-direction:column}body .tsg-home-agenda__actions .tsg-front-add,body .tsg-home-agenda__all{width:100%;min-height:48px}body .tsg-home-agenda__visual{min-height:235px}body .tsg-home-agenda__preview{border-width:4px;border-radius:20px}body .tsg-home-agenda__preview--left{width:36%;height:145px;left:1%;top:54px}body .tsg-home-agenda__preview--main{width:48%;height:200px;left:26%;top:10px}body .tsg-home-agenda__preview--right{width:34%;height:142px;right:0;top:59px}body .tsg-home-agenda__timeline{margin:0 14px 16px;border-radius:20px}body .tsg-home-agenda .tsg-news-timeline__panels{height:180px}body .tsg-home-agenda .tsg-news-timeline__panel{grid-template-columns:1fr 48px;gap:10px;padding:14px}body .tsg-home-agenda .tsg-news-timeline__copy p{-webkit-line-clamp:2;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}body .tsg-home-agenda .tsg-news-timeline__read{width:46px;height:46px;border-radius:14px}body .tsg-home-agenda .tsg-news-timeline__track{grid-auto-columns:minmax(132px,158px)}}
@media (prefers-reduced-motion:reduce){body .tsg-home-agenda__preview,body .tsg-home-agenda__actions .tsg-front-add,body .tsg-home-agenda__all{transition:none!important}}

/* V1.7.20 — Agenda inspiré d'une composition éditoriale légère avec visuel + liste superposée. */
body .tsg-agenda-speciality{padding:54px 0 72px!important;background:#fff}
body .tsg-agenda-speciality .tsg-container{max-width:1640px}
body .tsg-agenda-speciality__head{text-align:center;max-width:820px;margin:0 auto 34px}
body .tsg-agenda-speciality__eyebrow{display:flex;align-items:center;justify-content:center;gap:12px;color:#6f6877;font:700 12px/1 Montserrat,Poppins,sans-serif;letter-spacing:.18em;text-transform:uppercase}
body .tsg-agenda-speciality__eyebrow span{width:28px;height:1px;background:#99A98E;display:block}
body .tsg-agenda-speciality__head h2{margin:12px 0 10px!important;color:#241f2b!important;font:700 clamp(34px,3vw,52px)/1.08 Montserrat,Poppins,sans-serif!important;letter-spacing:-.035em}
body .tsg-agenda-speciality__head p{margin:0 auto!important;max-width:700px!important;color:#746e7a!important;font:400 16px/1.65 Poppins,Montserrat,sans-serif!important;text-align:center!important}
body .tsg-agenda-speciality__stage{position:relative;min-height:520px;max-width:1200px;margin:0 auto;padding:14px 0 0}
body .tsg-agenda-speciality__feature{position:absolute;left:0;top:14px;width:54%;height:470px;overflow:hidden;border-radius:30px;background:#eef1f4;box-shadow:0 24px 52px rgba(32,25,44,.12);text-decoration:none!important}
body .tsg-agenda-speciality__feature img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .6s ease,opacity .28s ease}
body .tsg-agenda-speciality__feature:hover img{transform:scale(1.018)}
body .tsg-agenda-speciality__shade{position:absolute;inset:auto 0 0;height:44%;background:linear-gradient(180deg,transparent,rgba(24,18,32,.72));pointer-events:none}
body .tsg-agenda-speciality__feature-meta{position:absolute;z-index:2;left:28px;right:28px;bottom:26px;display:flex;align-items:flex-end;gap:12px 18px;flex-wrap:wrap;color:#fff}
body .tsg-agenda-speciality__feature-category{background:rgba(255,255,255,.9);color:#3B1E7B;padding:7px 11px;border-radius:999px;font:700 11px/1 Montserrat,Poppins,sans-serif;text-transform:uppercase;letter-spacing:.06em}
body .tsg-agenda-speciality__feature-meta strong{flex:1 1 100%;font:700 clamp(22px,2.2vw,34px)/1.1 Montserrat,Poppins,sans-serif;letter-spacing:-.025em}
body .tsg-agenda-speciality__feature-meta time{font:600 13px/1.2 Poppins,Montserrat,sans-serif;color:rgba(255,255,255,.9)}
body .tsg-agenda-speciality__menu{position:absolute;z-index:4;right:0;top:72px;width:58%;padding:16px;border:1px solid rgba(59,30,123,.07);border-radius:26px;background:rgba(255,255,255,.97);box-shadow:0 22px 54px rgba(33,25,47,.11);backdrop-filter:blur(10px)}
body .tsg-agenda-speciality__item{appearance:none;width:100%;min-height:92px;border:0;border-bottom:1px solid rgba(59,30,123,.065);border-radius:18px;background:transparent;padding:10px 12px;display:grid;grid-template-columns:78px minmax(0,1fr) 42px;align-items:center;gap:15px;text-align:left;cursor:pointer;transition:background .24s ease,transform .24s ease,box-shadow .24s ease}
body .tsg-agenda-speciality__item:last-of-type{border-bottom:0}
body .tsg-agenda-speciality__item.is-active{background:#f8f4fd;box-shadow:inset 0 0 0 1px rgba(116,77,176,.07)}
body .tsg-agenda-speciality__thumb{width:78px;height:66px;border-radius:14px;overflow:hidden;background:#eee;display:block}
body .tsg-agenda-speciality__thumb img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .35s ease}
body .tsg-agenda-speciality__item:hover .tsg-agenda-speciality__thumb img{transform:scale(1.04)}
body .tsg-agenda-speciality__item-copy{min-width:0;display:block}
body .tsg-agenda-speciality__item-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:5px}
body .tsg-agenda-speciality__item-top em{font:700 10px/1 Montserrat,Poppins,sans-serif;font-style:normal;text-transform:uppercase;letter-spacing:.055em;color:#526E41;background:#edf4e9;padding:6px 9px;border-radius:999px;white-space:nowrap}
body .tsg-agenda-speciality__item:nth-child(2) .tsg-agenda-speciality__item-top em{color:#6b3ca8;background:#f2ebfb}
body .tsg-agenda-speciality__item:nth-child(3) .tsg-agenda-speciality__item-top em{color:#2e5fa0;background:#eaf2fb}
body .tsg-agenda-speciality__item:nth-child(4) .tsg-agenda-speciality__item-top em{color:#c05d24;background:#fff0e7}
body .tsg-agenda-speciality__item-top time{font:600 11px/1.2 Poppins,Montserrat,sans-serif;color:#7d7485;white-space:nowrap}
body .tsg-agenda-speciality__item-copy strong{display:block;color:#241d2c;font:700 16px/1.25 Montserrat,Poppins,sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body .tsg-agenda-speciality__item-copy small{display:block;margin-top:5px;color:#7b7481;font:400 11px/1.35 Poppins,Montserrat,sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body .tsg-agenda-speciality__arrow{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#f3eef9;color:#3B1E7B;font-size:19px;transition:transform .2s ease,background .2s ease}
body .tsg-agenda-speciality__item.is-active .tsg-agenda-speciality__arrow{background:#e8dcf7}
body .tsg-agenda-speciality__item:hover .tsg-agenda-speciality__arrow{transform:translateX(2px)}
body .tsg-agenda-speciality__footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:14px 10px 2px}
body .tsg-agenda-speciality__footer .tsg-front-add,body .tsg-agenda-speciality__footer>a{min-height:42px!important;padding:0 16px!important;border-radius:999px!important;font:700 12px/1 Montserrat,Poppins,sans-serif!important;text-decoration:none!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;box-shadow:none!important}
body .tsg-agenda-speciality__footer .tsg-front-add{border:1px solid rgba(59,30,123,.1)!important;background:#fff!important;color:#3B1E7B!important}
body .tsg-agenda-speciality__footer>a{background:#f1ecf8;color:#3B1E7B!important;border:1px solid rgba(59,30,123,.06)}
body .tsg-agenda-speciality__item:focus-visible{outline:3px solid rgba(153,169,142,.42);outline-offset:2px}
@media (hover:hover) and (pointer:fine){body .tsg-agenda-speciality__item:hover{background:#fbf9fd;transform:translateX(2px)}}
@media (max-width:1050px){body .tsg-agenda-speciality__stage{min-height:560px}body .tsg-agenda-speciality__feature{width:58%;height:430px}body .tsg-agenda-speciality__menu{width:61%;top:62px}}
@media (max-width:820px){body .tsg-agenda-speciality{padding:40px 0 54px!important}body .tsg-agenda-speciality__head{margin-bottom:24px}body .tsg-agenda-speciality__stage{min-height:0;padding:0;display:flex;flex-direction:column;gap:18px}body .tsg-agenda-speciality__feature,body .tsg-agenda-speciality__menu{position:relative;left:auto;right:auto;top:auto;width:100%}body .tsg-agenda-speciality__feature{height:370px}body .tsg-agenda-speciality__menu{padding:12px}body .tsg-agenda-speciality__footer{justify-content:center}}
@media (max-width:560px){body .tsg-agenda-speciality__head h2{font-size:34px!important}body .tsg-agenda-speciality__head p{font-size:14px!important}body .tsg-agenda-speciality__feature{height:290px;border-radius:22px}body .tsg-agenda-speciality__feature-meta{left:18px;right:18px;bottom:18px}body .tsg-agenda-speciality__item{grid-template-columns:64px minmax(0,1fr) 36px;gap:10px;padding:9px 7px;min-height:82px}body .tsg-agenda-speciality__thumb{width:64px;height:58px;border-radius:12px}body .tsg-agenda-speciality__item-top{align-items:flex-start;flex-direction:column;gap:4px}body .tsg-agenda-speciality__item-copy strong{font-size:14px}body .tsg-agenda-speciality__item-copy small{display:none}body .tsg-agenda-speciality__footer{flex-direction:column;align-items:stretch}body .tsg-agenda-speciality__footer .tsg-front-add,body .tsg-agenda-speciality__footer>a{width:100%}}
@media (prefers-reduced-motion:reduce){body .tsg-agenda-speciality__feature img,body .tsg-agenda-speciality__item,body .tsg-agenda-speciality__thumb img,body .tsg-agenda-speciality__arrow{transition:none!important}}


/* V1.7.21 — Agenda agrandi, intitulés intervertis et titres harmonisés avec « Nos actualités ». */
body .tsg-agenda-speciality{padding:66px 0 86px!important;background:#fff}
body .tsg-agenda-speciality .tsg-container{max-width:1640px!important}
body .tsg-agenda-speciality__head{max-width:980px!important;margin:0 auto 42px!important}
body .tsg-agenda-speciality__eyebrow{color:#3B1E7B!important;font-size:13px!important;letter-spacing:.15em!important}
body .tsg-agenda-speciality__eyebrow span{width:34px!important;height:2px!important;border-radius:999px;background:#3B1E7B!important}
body .tsg-agenda-speciality__head h2{
  margin:13px 0 13px!important;
  font:700 clamp(42px,3.6vw,60px)/1.03 Montserrat,Poppins,sans-serif!important;
  letter-spacing:-.04em!important;
  color:#3B1E7B!important;
  background:linear-gradient(92deg,#3B1E7B 0%,#3B1E7B 54%,#526E41 100%)!important;
  -webkit-background-clip:text!important;
  background-clip:text!important;
  -webkit-text-fill-color:transparent!important;
}
body .tsg-agenda-speciality__head p{max-width:820px!important;color:#5d5669!important;font-size:16px!important;line-height:1.7!important}
body .tsg-agenda-speciality__stage{min-height:620px!important;max-width:1520px!important;padding-top:14px!important}
body .tsg-agenda-speciality__feature{width:55%!important;height:560px!important;border-radius:32px!important}
body .tsg-agenda-speciality__menu{right:0!important;top:82px!important;width:57%!important;padding:18px!important;border-radius:28px!important}
body .tsg-agenda-speciality__item{min-height:104px!important;grid-template-columns:88px minmax(0,1fr) 44px!important;gap:17px!important;padding:11px 13px!important}
body .tsg-agenda-speciality__thumb{width:88px!important;height:76px!important;border-radius:15px!important}
body .tsg-agenda-speciality__item-copy strong{color:#3B1E7B!important;font-size:17px!important}
body .tsg-agenda-speciality__footer{padding-top:16px!important}
@media (max-width:1200px){
  body .tsg-agenda-speciality__stage{max-width:1320px!important;min-height:590px!important}
  body .tsg-agenda-speciality__feature{height:520px!important}
  body .tsg-agenda-speciality__menu{top:70px!important;width:59%!important}
}
@media (max-width:1050px){
  body .tsg-agenda-speciality__stage{min-height:570px!important}
  body .tsg-agenda-speciality__feature{width:58%!important;height:500px!important}
  body .tsg-agenda-speciality__menu{width:61%!important;top:62px!important}
}
@media (max-width:820px){
  body .tsg-agenda-speciality{padding:44px 0 58px!important}
  body .tsg-agenda-speciality__head{margin-bottom:26px!important}
  body .tsg-agenda-speciality__stage{min-height:0!important;max-width:none!important}
  body .tsg-agenda-speciality__feature{width:100%!important;height:390px!important}
  body .tsg-agenda-speciality__menu{width:100%!important;top:auto!important}
  body .tsg-agenda-speciality__item{min-height:94px!important;grid-template-columns:78px minmax(0,1fr) 42px!important}
  body .tsg-agenda-speciality__thumb{width:78px!important;height:68px!important}
}
@media (max-width:560px){
  body .tsg-agenda-speciality__eyebrow{font-size:11px!important}
  body .tsg-agenda-speciality__head h2{font-size:38px!important}
  body .tsg-agenda-speciality__feature{height:300px!important}
  body .tsg-agenda-speciality__item{grid-template-columns:64px minmax(0,1fr) 36px!important;min-height:84px!important;gap:10px!important;padding:9px 7px!important}
  body .tsg-agenda-speciality__thumb{width:64px!important;height:58px!important}
  body .tsg-agenda-speciality__item-copy strong{font-size:14px!important}
}

/* =========================================================
   V1.7.22 — Typographie unifiée + titres plus équilibrés
   Poppins devient la typographie de référence du front,
   comme sur les cartes « État civil / Services ».
   ========================================================= */
body.tsg-site-shell,
body.tsg-site-shell h1,
body.tsg-site-shell h2,
body.tsg-site-shell h3,
body.tsg-site-shell h4,
body.tsg-site-shell h5,
body.tsg-site-shell h6,
body.tsg-site-shell p,
body.tsg-site-shell a,
body.tsg-site-shell span,
body.tsg-site-shell strong,
body.tsg-site-shell em,
body.tsg-site-shell small,
body.tsg-site-shell label,
body.tsg-site-shell button,
body.tsg-site-shell input,
body.tsg-site-shell select,
body.tsg-site-shell textarea,
body.tsg-site-shell li,
body.tsg-site-shell th,
body.tsg-site-shell td {
  font-family:Poppins,Arial,sans-serif!important;
}

/* Grands titres de pages : présence conservée, taille plus sobre. */
body.tsg-site-shell .tsg-hero h1{
  font-size:clamp(38px,3.2vw,54px)!important;
  line-height:1.06!important;
  letter-spacing:-.025em!important;
}
body.tsg-site-shell .tsg-page-hero h1,
body.tsg-site-shell .tsg-content-hero__copy h1,
body.tsg-site-shell .tsg-vivre-hero h1,
body.tsg-site-shell .tsg-article-cover__copy h1,
body.tsg-site-shell .tsg-universal-header h1,
body.tsg-site-shell .tsg-elected-wall__top.is-compact h1{
  font-size:clamp(34px,3vw,50px)!important;
  line-height:1.08!important;
  letter-spacing:-.025em!important;
}

/* Titres de grandes sections de l'accueil et des pages internes. */
body.tsg-site-shell .tsg-news-feature h2,
body.tsg-site-shell .tsg-news-feature.tsg-news-feature--airy h2,
body.tsg-site-shell .tsg-home-agenda__intro h2,
body.tsg-site-shell .tsg-home-agenda__copy h2,
body.tsg-site-shell .tsg-agenda-speciality__head h2,
body.tsg-site-shell .tsg-explore-map__heading h2,
body.tsg-site-shell .tsg-map360__heading h2,
body.tsg-site-shell .tsg-showcase__heading h2,
body.tsg-site-shell .tsg-news-timeline__head h2,
body.tsg-site-shell .tsg-newsletter-cta__copy h2,
body.tsg-site-shell .tsg-elected-wall__top h2,
body.tsg-site-shell .tsg-elected-search h2,
body.tsg-site-shell .tsg-elected-group h2,
body.tsg-site-shell .tsg-elected-section-head h2,
body.tsg-site-shell .tsg-civil__intro h2,
body.tsg-site-shell .tsg-actes__intro h2,
body.tsg-site-shell .tsg-content-intro h2,
body.tsg-site-shell .tsg-municipal-services__intro h1{
  font-size:clamp(28px,2.35vw,42px)!important;
  line-height:1.10!important;
  letter-spacing:-.02em!important;
}

/* Sous-titres et titres de cartes éditoriales. */
body.tsg-site-shell .tsg-editor-content h2{
  font-size:clamp(26px,2vw,34px)!important;
  line-height:1.18!important;
}
body.tsg-site-shell .tsg-editor-content h3,
body.tsg-site-shell .tsg-info-card h3,
body.tsg-site-shell .tsg-contact-card h2,
body.tsg-site-shell .tsg-demarche-card h2,
body.tsg-site-shell .tsg-map-detail h3,
body.tsg-site-shell .tsg-showcase-card__meta h3{
  font-size:clamp(21px,1.65vw,28px)!important;
  line-height:1.2!important;
}

/* Les cartes de services gardent leur échelle validée, avec la même Poppins. */
body.tsg-site-shell .tsg-service-card h2{
  font-family:Poppins,Arial,sans-serif!important;
  font-size:clamp(22px,1.35vw,27px)!important;
  letter-spacing:-.015em!important;
}

@media (max-width:760px){
  body.tsg-site-shell .tsg-hero h1,
  body.tsg-site-shell .tsg-page-hero h1,
  body.tsg-site-shell .tsg-content-hero__copy h1,
  body.tsg-site-shell .tsg-vivre-hero h1,
  body.tsg-site-shell .tsg-article-cover__copy h1,
  body.tsg-site-shell .tsg-universal-header h1,
  body.tsg-site-shell .tsg-elected-wall__top.is-compact h1{
    font-size:clamp(32px,9vw,40px)!important;
  }
  body.tsg-site-shell .tsg-news-feature h2,
  body.tsg-site-shell .tsg-news-feature.tsg-news-feature--airy h2,
  body.tsg-site-shell .tsg-home-agenda__intro h2,
  body.tsg-site-shell .tsg-home-agenda__copy h2,
  body.tsg-site-shell .tsg-agenda-speciality__head h2,
  body.tsg-site-shell .tsg-explore-map__heading h2,
  body.tsg-site-shell .tsg-map360__heading h2,
  body.tsg-site-shell .tsg-showcase__heading h2,
  body.tsg-site-shell .tsg-news-timeline__head h2,
  body.tsg-site-shell .tsg-newsletter-cta__copy h2,
  body.tsg-site-shell .tsg-elected-wall__top h2,
  body.tsg-site-shell .tsg-civil__intro h2,
  body.tsg-site-shell .tsg-actes__intro h2,
  body.tsg-site-shell .tsg-content-intro h2{
    font-size:clamp(27px,7.5vw,34px)!important;
  }
  body.tsg-site-shell .tsg-service-card h2{
    font-size:25px!important;
  }
}

/* =========================================================
   V1.7.23 — Dates Agenda légèrement plus mises en avant
   Accent discret : capsules claires, lisibles, sans alourdir.
   ========================================================= */
body.tsg-site-shell .tsg-agenda-speciality__item-top time{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:30px!important;
  padding:6px 10px!important;
  border:1px solid rgba(59,30,123,.10)!important;
  border-radius:999px!important;
  background:#f4f0fa!important;
  color:#3B1E7B!important;
  font-family:Poppins,Arial,sans-serif!important;
  font-size:12px!important;
  font-weight:700!important;
  line-height:1!important;
  letter-spacing:.01em!important;
  box-shadow:0 4px 12px rgba(59,30,123,.035)!important;
}
body.tsg-site-shell .tsg-agenda-speciality__item.is-active .tsg-agenda-speciality__item-top time{
  background:#eef4eb!important;
  border-color:rgba(82,110,65,.12)!important;
  color:#526E41!important;
}
body.tsg-site-shell .tsg-agenda-speciality__feature-meta time{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:34px!important;
  padding:8px 12px!important;
  border:1px solid rgba(255,255,255,.34)!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.90)!important;
  color:#3B1E7B!important;
  font-family:Poppins,Arial,sans-serif!important;
  font-size:12px!important;
  font-weight:700!important;
  line-height:1!important;
  box-shadow:0 7px 18px rgba(22,16,34,.10)!important;
  backdrop-filter:blur(6px)!important;
  -webkit-backdrop-filter:blur(6px)!important;
}
@media (max-width:560px){
  body.tsg-site-shell .tsg-agenda-speciality__item-top time{
    min-height:27px!important;
    padding:5px 8px!important;
    font-size:11px!important;
  }
}

/* =========================================================
   V1.7.24 — Rendez-vous : textes structurés + dates renforcées
   Les titres/descriptions reviennent proprement à la ligne et
   chaque ligne conserve un alignement régulier et lisible.
   ========================================================= */
body.tsg-site-shell .tsg-agenda-speciality__item{
  align-items:stretch!important;
}
body.tsg-site-shell .tsg-agenda-speciality__item-copy{
  min-width:0!important;
  width:100%!important;
  max-width:560px!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  align-self:stretch!important;
  padding:2px 0!important;
}
body.tsg-site-shell .tsg-agenda-speciality__item-top{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  column-gap:14px!important;
  row-gap:8px!important;
  margin-bottom:7px!important;
  min-width:0!important;
}
body.tsg-site-shell .tsg-agenda-speciality__item-top em{
  min-width:0!important;
  max-width:100%!important;
  justify-self:start!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  line-height:1.15!important;
}
body.tsg-site-shell .tsg-agenda-speciality__item-top time{
  flex:none!important;
  min-width:118px!important;
  min-height:32px!important;
  padding:7px 11px!important;
  border-color:rgba(59,30,123,.12)!important;
  background:#f2ecf9!important;
  box-shadow:0 5px 14px rgba(59,30,123,.045)!important;
  white-space:nowrap!important;
  justify-self:end!important;
}
body.tsg-site-shell .tsg-agenda-speciality__item.is-active .tsg-agenda-speciality__item-top time{
  background:#eaf2e6!important;
  border-color:rgba(82,110,65,.15)!important;
  box-shadow:0 5px 14px rgba(82,110,65,.055)!important;
}
body.tsg-site-shell .tsg-agenda-speciality__item-copy strong{
  width:100%!important;
  max-width:520px!important;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  overflow-wrap:anywhere!important;
  display:-webkit-box!important;
  -webkit-box-orient:vertical!important;
  -webkit-line-clamp:2!important;
  line-clamp:2!important;
  line-height:1.35!important;
  min-height:2.7em!important;
}
body.tsg-site-shell .tsg-agenda-speciality__item-copy small{
  width:100%!important;
  max-width:520px!important;
  margin-top:6px!important;
  white-space:normal!important;
  overflow:hidden!important;
  text-overflow:clip!important;
  overflow-wrap:anywhere!important;
  display:-webkit-box!important;
  -webkit-box-orient:vertical!important;
  -webkit-line-clamp:2!important;
  line-clamp:2!important;
  line-height:1.45!important;
  min-height:2.9em!important;
}
body.tsg-site-shell .tsg-agenda-speciality__arrow{
  align-self:center!important;
}

@media (max-width:980px){
  body.tsg-site-shell .tsg-agenda-speciality__item-copy{max-width:none!important}
  body.tsg-site-shell .tsg-agenda-speciality__item-copy strong,
  body.tsg-site-shell .tsg-agenda-speciality__item-copy small{max-width:none!important}
}
@media (max-width:560px){
  body.tsg-site-shell .tsg-agenda-speciality__item-top{
    grid-template-columns:1fr!important;
    gap:6px!important;
    align-items:start!important;
  }
  body.tsg-site-shell .tsg-agenda-speciality__item-top time{
    min-width:0!important;
    justify-self:start!important;
  }
  body.tsg-site-shell .tsg-agenda-speciality__item-copy strong{
    -webkit-line-clamp:2!important;
    line-clamp:2!important;
    min-height:2.7em!important;
  }
  body.tsg-site-shell .tsg-agenda-speciality__item-copy small{
    display:-webkit-box!important;
    -webkit-line-clamp:2!important;
    line-clamp:2!important;
    min-height:2.8em!important;
  }
}

/* =========================================================
   V1.7.25 — Agenda : vraie colonne de date + limite texte
   Les contenus s'arrêtent avant la colonne des dates ; la date
   devient un élément dédié, lisible et parfaitement aligné.
   ========================================================= */
body.tsg-site-shell .tsg-agenda-speciality__item{
  grid-template-columns:88px minmax(0,1fr) 190px 44px!important;
  grid-template-areas:"thumb copy date arrow"!important;
  column-gap:16px!important;
  align-items:center!important;
  overflow:hidden!important;
}
body.tsg-site-shell .tsg-agenda-speciality__thumb{
  grid-area:thumb!important;
}
body.tsg-site-shell .tsg-agenda-speciality__item-copy{
  grid-area:copy!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  overflow:hidden!important;
  padding-right:8px!important;
}
body.tsg-site-shell .tsg-agenda-speciality__item-top{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  margin:0 0 7px!important;
  min-width:0!important;
}
body.tsg-site-shell .tsg-agenda-speciality__item-top em{
  max-width:100%!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
body.tsg-site-shell .tsg-agenda-speciality__item-copy strong{
  display:-webkit-box!important;
  width:100%!important;
  max-width:100%!important;
  min-height:0!important;
  white-space:normal!important;
  overflow:hidden!important;
  text-overflow:clip!important;
  overflow-wrap:break-word!important;
  word-break:normal!important;
  -webkit-box-orient:vertical!important;
  -webkit-line-clamp:2!important;
  line-clamp:2!important;
  line-height:1.28!important;
}
body.tsg-site-shell .tsg-agenda-speciality__item-copy small{
  display:-webkit-box!important;
  width:100%!important;
  max-width:100%!important;
  min-height:0!important;
  margin-top:5px!important;
  white-space:normal!important;
  overflow:hidden!important;
  text-overflow:clip!important;
  overflow-wrap:break-word!important;
  word-break:normal!important;
  -webkit-box-orient:vertical!important;
  -webkit-line-clamp:1!important;
  line-clamp:1!important;
  line-height:1.4!important;
}
body.tsg-site-shell .tsg-agenda-speciality__date{
  grid-area:date!important;
  align-self:center!important;
  justify-self:stretch!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:0!important;
  min-height:42px!important;
  padding:9px 13px!important;
  border:1px solid rgba(59,30,123,.11)!important;
  border-radius:14px!important;
  background:#f4f0fa!important;
  color:#3B1E7B!important;
  font-family:Poppins,Arial,sans-serif!important;
  font-size:12px!important;
  font-weight:700!important;
  line-height:1.25!important;
  letter-spacing:.025em!important;
  text-align:center!important;
  white-space:normal!important;
  box-shadow:0 5px 14px rgba(59,30,123,.04)!important;
}
body.tsg-site-shell .tsg-agenda-speciality__item.is-active .tsg-agenda-speciality__date{
  background:#edf4e9!important;
  border-color:rgba(82,110,65,.16)!important;
  color:#526E41!important;
  box-shadow:0 5px 14px rgba(82,110,65,.055)!important;
}
body.tsg-site-shell .tsg-agenda-speciality__arrow{
  grid-area:arrow!important;
  justify-self:end!important;
}

@media (max-width:1200px){
  body.tsg-site-shell .tsg-agenda-speciality__item{
    grid-template-columns:78px minmax(0,1fr) 165px 42px!important;
    column-gap:12px!important;
  }
  body.tsg-site-shell .tsg-agenda-speciality__date{
    font-size:11px!important;
    padding:8px 10px!important;
  }
}
@media (max-width:820px){
  body.tsg-site-shell .tsg-agenda-speciality__item{
    grid-template-columns:78px minmax(0,1fr) 170px 42px!important;
    grid-template-areas:"thumb copy date arrow"!important;
  }
}
@media (max-width:680px){
  body.tsg-site-shell .tsg-agenda-speciality__item{
    grid-template-columns:64px minmax(0,1fr) 36px!important;
    grid-template-areas:
      "thumb copy arrow"
      "thumb date arrow"!important;
    row-gap:6px!important;
    column-gap:10px!important;
  }
  body.tsg-site-shell .tsg-agenda-speciality__date{
    justify-self:start!important;
    min-height:30px!important;
    padding:6px 9px!important;
    border-radius:10px!important;
    text-align:left!important;
    font-size:10.5px!important;
  }
  body.tsg-site-shell .tsg-agenda-speciality__item-copy strong{
    -webkit-line-clamp:2!important;
    line-clamp:2!important;
  }
  body.tsg-site-shell .tsg-agenda-speciality__item-copy small{
    display:none!important;
  }
}


/* =========================================================
   V1.7.26 — Newsletter + footer fusionnés
   Clôture légère, lumineuse, avec violet lavande adouci.
   ========================================================= */
body.tsg-site-shell .tsg-footer{
  position:relative!important;
  overflow:hidden!important;
  margin-top:30px!important;
  padding-top:0!important;
  border-radius:40px 40px 0 0!important;
  border-top:1px solid rgba(59,30,123,.08)!important;
  background:linear-gradient(145deg,#fbf9fd 0%,#f6f2fa 56%,#f2f6ef 100%)!important;
  color:#34274a!important;
  box-shadow:0 -18px 52px rgba(59,30,123,.055)!important;
}
body.tsg-site-shell .tsg-footer:before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:3px;
  background:linear-gradient(90deg,rgba(59,30,123,0),rgba(120,88,171,.42),rgba(143,175,116,.38),rgba(59,30,123,0));
  background-size:220% 100%;
  animation:tsg-footer-sheen 10s linear infinite;
  pointer-events:none;
}
body.tsg-site-shell .tsg-footer:after{
  content:"";
  position:absolute;
  width:360px;
  height:360px;
  right:-145px;
  top:40px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(183,163,213,.16) 0%,rgba(183,163,213,.055) 45%,rgba(183,163,213,0) 72%);
  animation:tsg-footer-float 8s ease-in-out infinite alternate;
  pointer-events:none;
}
body.tsg-site-shell .tsg-footer--with-newsletter .tsg-newsletter-cta{
  position:relative!important;
  z-index:2!important;
  padding:28px 0 16px!important;
  background:transparent!important;
}
body.tsg-site-shell .tsg-footer--with-newsletter .tsg-newsletter-cta__shell{
  min-height:230px!important;
  padding:38px 46px!important;
  gap:40px!important;
  border:1px solid rgba(59,30,123,.085)!important;
  border-radius:30px!important;
  background:rgba(255,255,255,.68)!important;
  color:#34274a!important;
  box-shadow:0 18px 48px rgba(59,30,123,.06)!important;
  backdrop-filter:blur(12px)!important;
  -webkit-backdrop-filter:blur(12px)!important;
}
body.tsg-site-shell .tsg-footer--with-newsletter .tsg-newsletter-cta__shell:before{
  width:250px!important;
  height:250px!important;
  right:-70px!important;
  top:-110px!important;
  background:radial-gradient(circle,rgba(143,175,116,.12),rgba(143,175,116,0) 70%)!important;
  animation:tsg-footer-float 7s ease-in-out infinite alternate-reverse!important;
}
body.tsg-site-shell .tsg-footer--with-newsletter .tsg-newsletter-cta__shell:after{
  width:210px!important;
  height:210px!important;
  left:44%!important;
  bottom:-175px!important;
  border:30px solid rgba(132,101,180,.035)!important;
}
body.tsg-site-shell .tsg-footer--with-newsletter .tsg-newsletter-cta__eyebrow{
  color:#70579a!important;
}
body.tsg-site-shell .tsg-footer--with-newsletter .tsg-newsletter-cta__eyebrow:before{
  background:#8faf74!important;
}
body.tsg-site-shell .tsg-footer--with-newsletter .tsg-newsletter-cta__copy h2{
  color:#3B1E7B!important;
  font-family:Poppins,Arial,sans-serif!important;
  font-size:clamp(26px,2.65vw,40px)!important;
  font-weight:700!important;
  line-height:1.08!important;
  letter-spacing:-.025em!important;
}
body.tsg-site-shell .tsg-footer--with-newsletter .tsg-newsletter-cta__copy p{
  color:#6f687a!important;
  font-size:13px!important;
  line-height:1.65!important;
}
body.tsg-site-shell .tsg-footer--with-newsletter .tsg-newsletter-cta__form{
  border:1px solid rgba(59,30,123,.075)!important;
  background:linear-gradient(145deg,rgba(246,241,251,.9),rgba(255,255,255,.82))!important;
  box-shadow:0 12px 30px rgba(59,30,123,.04)!important;
}
body.tsg-site-shell .tsg-footer--with-newsletter .tsg-newsletter-cta__form>label{
  color:#4a3b60!important;
}
body.tsg-site-shell .tsg-footer--with-newsletter .tsg-newsletter-cta__form>small{
  color:#8a8291!important;
}
body.tsg-site-shell .tsg-footer--with-newsletter .tsg-newsletter-cta__field{
  border:1px solid rgba(59,30,123,.075)!important;
  box-shadow:0 10px 24px rgba(59,30,123,.045)!important;
}
body.tsg-site-shell .tsg-footer--with-newsletter .tsg-newsletter-cta__field button{
  background:linear-gradient(105deg,#7055a3,#8b70b8 58%,#8faf74)!important;
  box-shadow:0 7px 18px rgba(112,85,163,.14)!important;
}
body.tsg-site-shell .tsg-footer__main{
  position:relative!important;
  z-index:2!important;
  grid-template-columns:minmax(0,1.35fr) minmax(220px,.72fr) minmax(190px,.55fr)!important;
  gap:56px!important;
  padding-top:30px!important;
  padding-bottom:36px!important;
  border-top:1px solid rgba(59,30,123,.07)!important;
}
body.tsg-site-shell .tsg-footer__identity{
  grid-template-columns:118px minmax(0,1fr)!important;
  gap:26px!important;
}
body.tsg-site-shell .tsg-footer__crest{
  width:104px!important;
  max-height:132px!important;
  filter:drop-shadow(0 8px 16px rgba(59,30,123,.08));
  transition:transform .35s ease;
}
body.tsg-site-shell .tsg-footer__identity:hover .tsg-footer__crest{
  transform:translateY(-4px) rotate(-1deg);
}
body.tsg-site-shell .tsg-footer h2{
  color:#3B1E7B!important;
  font-family:Poppins,Arial,sans-serif!important;
  font-size:19px!important;
  font-weight:700!important;
}
body.tsg-site-shell .tsg-footer p,
body.tsg-site-shell .tsg-footer .tsg-contact-line,
body.tsg-site-shell .tsg-footer .tsg-contact-line a{
  color:#6f687a!important;
}
body.tsg-site-shell .tsg-footer .tsg-contact-line svg{
  color:#8faf74!important;
}
body.tsg-site-shell .tsg-footer__accessibility{
  align-self:start!important;
  display:flex!important;
  flex-direction:column!important;
  gap:8px!important;
  padding:2px 0!important;
}
body.tsg-site-shell .tsg-footer__section-kicker{
  color:#8faf74!important;
  font-family:Poppins,Arial,sans-serif!important;
  font-size:10px!important;
  font-weight:800!important;
  letter-spacing:.14em!important;
}
body.tsg-site-shell .tsg-footer__accessibility h2{
  margin:0 0 5px!important;
}
body.tsg-site-shell .tsg-footer__accessibility a{
  width:max-content!important;
  max-width:100%!important;
  color:#655a72!important;
  font-size:12px!important;
  font-weight:600!important;
  line-height:1.45!important;
  text-decoration:none!important;
  transition:color .2s ease,transform .2s ease!important;
}
body.tsg-site-shell .tsg-footer__accessibility a:hover,
body.tsg-site-shell .tsg-footer__accessibility a:focus-visible{
  color:#3B1E7B!important;
  transform:translateX(3px);
}
body.tsg-site-shell .tsg-footer__accessibility a:focus-visible{
  outline:2px solid #8faf74!important;
  outline-offset:4px!important;
  border-radius:3px!important;
}
body.tsg-site-shell .tsg-footer__social{
  justify-self:end!important;
  align-items:flex-end!important;
  gap:10px!important;
}
body.tsg-site-shell .tsg-social-row a{
  background:#f2edf8!important;
  border:1px solid rgba(59,30,123,.08)!important;
  color:#4d2d87!important;
  box-shadow:none!important;
  transition:transform .22s ease,background .22s ease,color .22s ease!important;
}
body.tsg-site-shell .tsg-social-row a:hover{
  transform:translateY(-2px)!important;
  background:#e9e0f4!important;
  color:#3B1E7B!important;
}
body.tsg-site-shell .tsg-footer-link{
  color:#5f4b79!important;
  font-weight:600!important;
}
body.tsg-site-shell .tsg-footer-link:hover{
  color:#3B1E7B!important;
}
body.tsg-site-shell .tsg-footer__bottom{
  position:relative!important;
  z-index:2!important;
  background:rgba(255,255,255,.64)!important;
  color:#6c627a!important;
  border-top:1px solid rgba(59,30,123,.065)!important;
  backdrop-filter:blur(8px)!important;
  -webkit-backdrop-filter:blur(8px)!important;
}
body.tsg-site-shell .tsg-footer__bottom a{
  color:#756987!important;
}
body.tsg-site-shell .tsg-footer__bottom a:hover{
  color:#3B1E7B!important;
}
@keyframes tsg-footer-sheen{
  0%{background-position:0 0}
  100%{background-position:220% 0}
}
@keyframes tsg-footer-float{
  from{transform:translate3d(0,0,0) scale(1)}
  to{transform:translate3d(-12px,10px,0) scale(1.035)}
}
@media (max-width:900px){
  body.tsg-site-shell .tsg-footer--with-newsletter .tsg-newsletter-cta__shell{
    grid-template-columns:1fr!important;
    padding:34px 30px!important;
  }
  body.tsg-site-shell .tsg-footer__main{
    grid-template-columns:1fr!important;
    gap:28px!important;
  }
  body.tsg-site-shell .tsg-footer__accessibility{
    max-width:520px!important;
  }
  body.tsg-site-shell .tsg-footer__social{
    justify-self:start!important;
    align-items:flex-start!important;
  }
}
@media (max-width:560px){
  body.tsg-site-shell .tsg-footer{
    margin-top:20px!important;
    border-radius:28px 28px 0 0!important;
  }
  body.tsg-site-shell .tsg-footer--with-newsletter .tsg-newsletter-cta{
    padding:18px 0 10px!important;
  }
  body.tsg-site-shell .tsg-footer--with-newsletter .tsg-newsletter-cta__shell{
    width:calc(100% - 24px)!important;
    padding:26px 18px!important;
    border-radius:22px!important;
  }
  body.tsg-site-shell .tsg-footer--with-newsletter .tsg-newsletter-cta__copy h2{
    font-size:28px!important;
  }
  body.tsg-site-shell .tsg-footer__main{
    padding:24px 18px 28px!important;
  }
  body.tsg-site-shell .tsg-footer__identity{
    grid-template-columns:82px minmax(0,1fr)!important;
    gap:18px!important;
  }
  body.tsg-site-shell .tsg-footer__crest{
    width:74px!important;
  }
}
@media (prefers-reduced-motion:reduce){
  body.tsg-site-shell .tsg-footer:before,
  body.tsg-site-shell .tsg-footer:after,
  body.tsg-site-shell .tsg-footer--with-newsletter .tsg-newsletter-cta__shell:before{
    animation:none!important;
  }
  body.tsg-site-shell .tsg-footer__identity:hover .tsg-footer__crest,
  body.tsg-site-shell .tsg-social-row a:hover{
    transform:none!important;
  }
}

/* =========================================================
   V1.7.29 — Footer fusionné conservé + esquisse aérienne de Tsingoni
   Même composition que V1.7.27, seul le Mont Choungui est remplacé.
   ========================================================= */
body.tsg-site-shell .tsg-footer{
  background:linear-gradient(145deg,#f1eaf7 0%,#ece5f3 54%,#eaf1e6 100%)!important;
  box-shadow:0 -20px 56px rgba(59,30,123,.075)!important;
}
body.tsg-site-shell .tsg-footer:after{
  content:""!important;
  position:absolute!important;
  z-index:0!important;
  left:auto!important;
  right:-2.5%!important;
  top:auto!important;
  bottom:30px!important;
  width:62%!important;
  height:430px!important;
  border-radius:0!important;
  opacity:.70!important;
  background-color:transparent!important;
  background-image:url("../images/footer-tsingoni-aerial-sketch-v2.png")!important;
  background-repeat:no-repeat!important;
  background-position:right bottom!important;
  background-size:contain!important;
  filter:none!important;
  animation:none!important;
  transform:none!important;
  pointer-events:none!important;
}
body.tsg-site-shell .tsg-footer--with-newsletter .tsg-newsletter-cta__shell{
  background:rgba(255,255,255,.60)!important;
  border-color:rgba(59,30,123,.095)!important;
}
body.tsg-site-shell .tsg-footer__main{
  background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.13))!important;
}
body.tsg-site-shell .tsg-footer__bottom{
  background:rgba(249,247,252,.72)!important;
}
@media(max-width:900px){
  body.tsg-site-shell .tsg-footer:after{
    right:-12%!important;
    width:76%!important;
    height:360px!important;
    bottom:44px!important;
    opacity:.50!important;
  }
}
@media(max-width:700px){
  body.tsg-site-shell .tsg-footer:after{
    right:-35%!important;
    width:120%!important;
    height:260px!important;
    bottom:86px!important;
    opacity:.30!important;
  }
}

/* V1.7.30 — Esquisse aérienne rendue plus visible, sans modifier la structure du footer. */


/* =========================================================
   V1.7.31 — Esquisse aérienne de Tsingoni franchement visible
   Structure du footer inchangée ; uniquement le dessin renforcé.
   ========================================================= */
body.tsg-site-shell .tsg-footer:after{
  background-image:url("../images/footer-tsingoni-aerial-sketch-v3.png")!important;
  right:-1%!important;
  bottom:20px!important;
  width:67%!important;
  height:470px!important;
  opacity:.96!important;
  background-position:right bottom!important;
  background-size:contain!important;
}
@media(max-width:900px){
  body.tsg-site-shell .tsg-footer:after{
    right:-9%!important;
    width:80%!important;
    height:390px!important;
    bottom:40px!important;
    opacity:.82!important;
  }
}
@media(max-width:700px){
  body.tsg-site-shell .tsg-footer:after{
    right:-30%!important;
    width:125%!important;
    height:285px!important;
    bottom:82px!important;
    opacity:.58!important;
  }
}


/* =========================================================
   V1.7.34 — Header réellement fixe + bouton retour en haut
   ========================================================= */
body.tsg-site-shell{
  padding-top:var(--tsg-fixed-header-height,130px)!important;
}
body.tsg-site-shell .tsg-header{
  position:fixed!important;
  top:0!important;
  left:0!important;
  right:0!important;
  width:100%!important;
  z-index:10050!important;
  background:rgba(255,255,255,.96)!important;
  -webkit-backdrop-filter:blur(16px);
  backdrop-filter:blur(16px);
}
body.admin-bar.tsg-site-shell .tsg-header{top:32px!important}
@media(max-width:782px){body.admin-bar.tsg-site-shell .tsg-header{top:46px!important}}

.tsg-back-to-top{
  position:fixed;
  right:22px;
  bottom:calc(22px + env(safe-area-inset-bottom,0px));
  width:48px;
  height:48px;
  border:1px solid rgba(64,35,138,.10);
  border-radius:50%;
  background:rgba(249,247,253,.96);
  color:#40238a;
  display:grid;
  place-items:center;
  box-shadow:0 12px 34px rgba(55,34,96,.14);
  z-index:10020;
  cursor:pointer;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(10px) scale(.96);
  transition:opacity .22s ease,transform .22s ease,box-shadow .22s ease,background .22s ease;
}
.tsg-back-to-top svg{width:20px;height:20px;stroke:currentColor;stroke-width:2;fill:none}
.tsg-back-to-top.is-visible{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateY(0) scale(1);
}
@media(hover:hover) and (pointer:fine){
  .tsg-back-to-top:hover{background:#fff;box-shadow:0 15px 38px rgba(55,34,96,.20);transform:translateY(-2px)}
}
@media(max-width:700px){
  .tsg-back-to-top{right:14px;bottom:calc(16px + env(safe-area-inset-bottom,0px));width:44px;height:44px}
}
@media(prefers-reduced-motion:reduce){.tsg-back-to-top{transition:none}}


/* =========================================================
   V1.7.35 — uniquement le bouton "retour en haut"
   Le header fixe de la V1.7.34 est conservé sans modification.
   ========================================================= */
html body button.tsg-back-to-top[data-tsg-back-to-top]{
  -webkit-appearance:none!important;
  appearance:none!important;
  position:fixed!important;
  right:14px!important;
  bottom:calc(14px + env(safe-area-inset-bottom,0px))!important;

  width:40px!important;
  min-width:40px!important;
  max-width:40px!important;
  height:40px!important;
  min-height:40px!important;
  max-height:40px!important;

  padding:0!important;
  margin:0!important;
  border:1px solid rgba(64,35,138,.12)!important;
  border-radius:999px!important;
  box-sizing:border-box!important;

  background:rgba(255,255,255,.94)!important;
  color:#40238a!important;
  box-shadow:0 6px 18px rgba(43,27,74,.13)!important;

  display:grid!important;
  place-items:center!important;
  line-height:1!important;
  font-size:0!important;
  letter-spacing:0!important;
  text-indent:0!important;

  z-index:10020!important;
  overflow:hidden!important;
  cursor:pointer!important;
  transition:opacity .2s ease,transform .2s ease,box-shadow .2s ease,background .2s ease!important;
}

html body button.tsg-back-to-top[data-tsg-back-to-top] svg{
  display:block!important;
  width:16px!important;
  min-width:16px!important;
  max-width:16px!important;
  height:16px!important;
  min-height:16px!important;
  max-height:16px!important;
  margin:0!important;
  padding:0!important;
  stroke:currentColor!important;
  stroke-width:2!important;
  fill:none!important;
}

html body button.tsg-back-to-top[data-tsg-back-to-top]:not(.is-visible){
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
  transform:translateY(8px) scale(.92)!important;
}

html body button.tsg-back-to-top[data-tsg-back-to-top].is-visible{
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
  transform:none!important;
}

@media(hover:hover) and (pointer:fine){
  html body button.tsg-back-to-top[data-tsg-back-to-top]:hover{
    background:#f6f2fb!important;
    box-shadow:0 8px 22px rgba(43,27,74,.17)!important;
    transform:translateY(-2px)!important;
  }
}

@media(min-width:701px){
  html body button.tsg-back-to-top[data-tsg-back-to-top]{
    right:18px!important;
    bottom:18px!important;
    width:42px!important;
    min-width:42px!important;
    max-width:42px!important;
    height:42px!important;
    min-height:42px!important;
    max-height:42px!important;
  }
}

/* =========================================================
   V1.7.36 — Footer simplifié : suppression de l'image de fond
   ========================================================= */
body.tsg-site-shell .tsg-footer:after{
  content:none!important;
  display:none!important;
  background-image:none!important;
}


/* =========================================================
   V1.7.39 — Footer : accès rapides harmonisés avec Accessibilité
   ========================================================= */
body.tsg-site-shell .tsg-footer__essentials{
  position:relative!important;
  z-index:2!important;
  padding:0 0 26px!important;
}
body.tsg-site-shell .tsg-footer__essentials-shell{
  display:flex!important;
  flex-direction:column!important;
  gap:8px!important;
  padding:0 22px!important;
}
body.tsg-site-shell .tsg-footer__essentials h2{
  margin:0 0 5px!important;
}
body.tsg-site-shell .tsg-footer__essentials-links{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,max-content))!important;
  column-gap:26px!important;
  row-gap:8px!important;
  align-items:start!important;
}
body.tsg-site-shell .tsg-footer__essentials-links a{
  width:max-content!important;
  max-width:100%!important;
  color:#655a72!important;
  font-size:12px!important;
  font-weight:600!important;
  line-height:1.45!important;
  text-decoration:none!important;
  transition:color .2s ease,transform .2s ease!important;
}
body.tsg-site-shell .tsg-footer__essentials-links a:hover,
body.tsg-site-shell .tsg-footer__essentials-links a:focus-visible{
  color:#3B1E7B!important;
  transform:translateX(3px)!important;
}
body.tsg-site-shell .tsg-footer__essentials-links a:focus-visible{
  outline:2px solid #8faf74!important;
  outline-offset:4px!important;
  border-radius:3px!important;
}
@media(max-width:900px){
  body.tsg-site-shell .tsg-footer__essentials-shell{
    padding:0 22px!important;
  }
}
@media(max-width:560px){
  body.tsg-site-shell .tsg-footer__essentials{
    padding:0 0 20px!important;
  }
  body.tsg-site-shell .tsg-footer__essentials-shell{
    padding:0 18px!important;
  }
  body.tsg-site-shell .tsg-footer__essentials-links{
    grid-template-columns:1fr!important;
    row-gap:7px!important;
  }
  body.tsg-site-shell .tsg-footer__essentials-links a{
    width:max-content!important;
  }
}
@media(prefers-reduced-motion:reduce){
  body.tsg-site-shell .tsg-footer__essentials-links a{
    transition:none!important;
  }
}


/* =========================================================
   V1.7.40 — Footer : Accès rapides remonté sur la ligne principale
   Logo/informations + Accès rapides + Accessibilité + social/contact
   ========================================================= */
body.tsg-site-shell .tsg-footer__main{
  grid-template-columns:minmax(330px,1.45fr) minmax(150px,.72fr) minmax(165px,.78fr) minmax(135px,.55fr)!important;
  gap:34px!important;
  align-items:start!important;
}
body.tsg-site-shell .tsg-footer__essentials{
  position:relative!important;
  z-index:2!important;
  align-self:start!important;
  display:flex!important;
  flex-direction:column!important;
  gap:8px!important;
  padding:2px 0!important;
  margin:0!important;
}
body.tsg-site-shell .tsg-footer__essentials h2{
  margin:0 0 5px!important;
}
body.tsg-site-shell .tsg-footer__essentials-links{
  display:flex!important;
  flex-direction:column!important;
  gap:8px!important;
}
body.tsg-site-shell .tsg-footer__essentials-links a{
  width:max-content!important;
  max-width:100%!important;
  color:#655a72!important;
  font-size:12px!important;
  font-weight:600!important;
  line-height:1.45!important;
  text-decoration:none!important;
  transition:color .2s ease,transform .2s ease!important;
}
body.tsg-site-shell .tsg-footer__essentials-links a:hover,
body.tsg-site-shell .tsg-footer__essentials-links a:focus-visible{
  color:#3B1E7B!important;
  transform:translateX(3px)!important;
}
body.tsg-site-shell .tsg-footer__social{
  align-self:start!important;
  padding-top:2px!important;
}
@media(max-width:1120px){
  body.tsg-site-shell .tsg-footer__main{
    grid-template-columns:minmax(300px,1.25fr) minmax(145px,.75fr) minmax(160px,.8fr)!important;
    gap:30px!important;
  }
  body.tsg-site-shell .tsg-footer__social{
    grid-column:2 / 4!important;
    justify-self:start!important;
    align-items:flex-start!important;
  }
}
@media(max-width:820px){
  body.tsg-site-shell .tsg-footer__main{
    grid-template-columns:1fr 1fr!important;
    gap:30px 34px!important;
  }
  body.tsg-site-shell .tsg-footer__identity{
    grid-column:1 / -1!important;
  }
  body.tsg-site-shell .tsg-footer__social{
    grid-column:auto!important;
  }
}
@media(max-width:560px){
  body.tsg-site-shell .tsg-footer__main{
    grid-template-columns:1fr!important;
    gap:26px!important;
  }
  body.tsg-site-shell .tsg-footer__identity,
  body.tsg-site-shell .tsg-footer__essentials,
  body.tsg-site-shell .tsg-footer__accessibility,
  body.tsg-site-shell .tsg-footer__social{
    grid-column:auto!important;
  }
}

/* =========================================================
   V1.7.41 — Footer : rythmes de lignes alignés
   Accès rapides = 2 colonnes x 3 lignes pour correspondre à Accessibilité.
   ========================================================= */
@media(min-width:1121px){
  body.tsg-site-shell .tsg-footer__main{
    grid-template-columns:minmax(330px,1.42fr) minmax(270px,1.05fr) minmax(175px,.78fr) minmax(140px,.55fr)!important;
    gap:30px!important;
  }
  body.tsg-site-shell .tsg-footer__essentials,
  body.tsg-site-shell .tsg-footer__accessibility{
    gap:8px!important;
    padding-top:2px!important;
  }
  body.tsg-site-shell .tsg-footer__essentials h2,
  body.tsg-site-shell .tsg-footer__accessibility h2{
    min-height:27px!important;
    display:flex!important;
    align-items:flex-start!important;
    margin:0 0 5px!important;
  }
  body.tsg-site-shell .tsg-footer__essentials-links{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,max-content))!important;
    grid-template-rows:repeat(3,18px)!important;
    grid-auto-flow:column!important;
    column-gap:24px!important;
    row-gap:8px!important;
    align-items:start!important;
  }
  body.tsg-site-shell .tsg-footer__essentials-links a,
  body.tsg-site-shell .tsg-footer__accessibility a{
    min-height:18px!important;
    line-height:18px!important;
    white-space:nowrap!important;
  }
  body.tsg-site-shell .tsg-footer__social{
    min-height:113px!important;
    justify-content:flex-start!important;
    gap:12px!important;
  }
}


/* =========================================================
   V1.7.42 — Footer : grille finale alignée sur les axes légaux
   Logo | Pratique | Accessibilité | Informations | Réseaux
   Les liens légaux du bas reprennent exactement les mêmes colonnes.
   ========================================================= */
@media(min-width:1121px){
  body.tsg-site-shell .tsg-footer__main,
  body.tsg-site-shell .tsg-footer__bottom-inner{
    display:grid!important;
    grid-template-columns:minmax(330px,1.48fr) minmax(155px,.66fr) minmax(180px,.78fr) minmax(145px,.62fr) minmax(120px,.46fr)!important;
    column-gap:24px!important;
  }
  body.tsg-site-shell .tsg-footer__main{
    align-items:start!important;
  }
  body.tsg-site-shell .tsg-footer__essentials,
  body.tsg-site-shell .tsg-footer__accessibility,
  body.tsg-site-shell .tsg-footer__info,
  body.tsg-site-shell .tsg-footer__social{
    align-self:start!important;
    display:flex!important;
    flex-direction:column!important;
    gap:8px!important;
    padding-top:2px!important;
    margin:0!important;
    min-width:0!important;
  }
  body.tsg-site-shell .tsg-footer__essentials h2,
  body.tsg-site-shell .tsg-footer__accessibility h2,
  body.tsg-site-shell .tsg-footer__info h2,
  body.tsg-site-shell .tsg-footer__social h2{
    min-height:27px!important;
    margin:0 0 5px!important;
    display:flex!important;
    align-items:flex-start!important;
    font-size:17px!important;
    line-height:1.25!important;
  }
  body.tsg-site-shell .tsg-footer__essentials-links{
    display:flex!important;
    flex-direction:column!important;
    gap:8px!important;
  }
  body.tsg-site-shell .tsg-footer__essentials-links a,
  body.tsg-site-shell .tsg-footer__accessibility a,
  body.tsg-site-shell .tsg-footer__info a{
    width:max-content!important;
    max-width:100%!important;
    min-height:18px!important;
    color:#655a72!important;
    font-size:12px!important;
    font-weight:600!important;
    line-height:18px!important;
    text-decoration:none!important;
    white-space:nowrap!important;
    transition:color .2s ease,transform .2s ease!important;
  }
  body.tsg-site-shell .tsg-footer__info a:hover,
  body.tsg-site-shell .tsg-footer__info a:focus-visible{
    color:#3B1E7B!important;
    transform:translateX(3px)!important;
  }
  body.tsg-site-shell .tsg-footer__info a:focus-visible{
    outline:2px solid #8faf74!important;
    outline-offset:4px!important;
    border-radius:3px!important;
  }
  body.tsg-site-shell .tsg-footer__social{
    justify-self:start!important;
    align-items:flex-start!important;
    min-height:0!important;
  }
  body.tsg-site-shell .tsg-footer__social .tsg-social-row{
    min-height:34px!important;
    align-items:center!important;
  }
  body.tsg-site-shell .tsg-footer__bottom-inner{
    min-height:66px!important;
    align-items:start!important;
    padding-top:17px!important;
    padding-bottom:15px!important;
  }
  body.tsg-site-shell .tsg-footer__bottom-inner a{
    justify-self:start!important;
    align-self:start!important;
    max-width:100%!important;
    font-size:9px!important;
    line-height:1.45!important;
    letter-spacing:.01em!important;
    text-align:left!important;
  }
  body.tsg-site-shell .tsg-footer__bottom-data{grid-column:2!important;}
  body.tsg-site-shell .tsg-footer__bottom-cookies{grid-column:3!important;}
  body.tsg-site-shell .tsg-footer__bottom-legal{grid-column:4!important;}
  body.tsg-site-shell .tsg-footer__bottom-extranet{grid-column:5!important;}
}
@media(max-width:1120px){
  body.tsg-site-shell .tsg-footer__info{
    align-self:start!important;
    display:flex!important;
    flex-direction:column!important;
    gap:8px!important;
  }
  body.tsg-site-shell .tsg-footer__info h2{
    margin:0 0 5px!important;
  }
  body.tsg-site-shell .tsg-footer__info a{
    width:max-content!important;
    max-width:100%!important;
    color:#655a72!important;
    font-size:12px!important;
    font-weight:600!important;
    line-height:1.45!important;
    text-decoration:none!important;
  }
  body.tsg-site-shell .tsg-footer__bottom-inner{
    display:flex!important;
    align-items:flex-start!important;
    justify-content:flex-start!important;
    gap:12px 22px!important;
    flex-wrap:wrap!important;
    padding:14px 0!important;
  }
}
@media(max-width:820px){
  body.tsg-site-shell .tsg-footer__main{
    grid-template-columns:1fr 1fr!important;
    gap:28px 34px!important;
  }
  body.tsg-site-shell .tsg-footer__identity{
    grid-column:1 / -1!important;
  }
  body.tsg-site-shell .tsg-footer__social{
    grid-column:auto!important;
  }
}
@media(max-width:560px){
  body.tsg-site-shell .tsg-footer__main{
    grid-template-columns:1fr!important;
    gap:25px!important;
  }
  body.tsg-site-shell .tsg-footer__identity,
  body.tsg-site-shell .tsg-footer__essentials,
  body.tsg-site-shell .tsg-footer__accessibility,
  body.tsg-site-shell .tsg-footer__info,
  body.tsg-site-shell .tsg-footer__social{
    grid-column:auto!important;
  }
  body.tsg-site-shell .tsg-footer__essentials-links a,
  body.tsg-site-shell .tsg-footer__accessibility a,
  body.tsg-site-shell .tsg-footer__info a{
    white-space:normal!important;
  }
  body.tsg-site-shell .tsg-footer__bottom-inner{
    padding:14px 18px!important;
  }
}


/* =========================================================
   V1.7.44 — Icône Instagram SVG propre dans le footer
   ========================================================= */
body.tsg-site-shell .tsg-social-row .tsg-social-instagram svg{
  width:18px!important;
  height:18px!important;
  display:block!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.8!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
}
body.tsg-site-shell .tsg-social-row .tsg-social-instagram .tsg-instagram-dot{
  fill:currentColor!important;
  stroke:none!important;
}

/* =========================================================
   V1.7.46 — Crédits compacts intégrés sur la ligne légale
   ========================================================= */
body.tsg-site-shell .tsg-footer__credits{
  color:#81778b!important;
  font-family:Poppins,Arial,sans-serif!important;
  font-size:8.1px!important;
  font-weight:500!important;
  line-height:1.4!important;
  letter-spacing:.005em!important;
}
body.tsg-site-shell .tsg-footer__credits strong{
  color:#5f4b79!important;
  font-weight:700!important;
}
body.tsg-site-shell .tsg-footer__credits > span[aria-hidden="true"]{
  color:#8faf74!important;
  font-weight:800!important;
}
@media(min-width:1121px){
  body.tsg-site-shell .tsg-footer__bottom-inner{
    min-height:62px!important;
    align-items:center!important;
    padding-top:14px!important;
    padding-bottom:14px!important;
    row-gap:0!important;
  }
  body.tsg-site-shell .tsg-footer__credits{
    grid-column:1!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:3px 5px!important;
    flex-wrap:wrap!important;
    max-width:100%!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
  }
  body.tsg-site-shell .tsg-footer__bottom-inner > a{
    align-self:center!important;
  }
}
@media(max-width:1120px){
  body.tsg-site-shell .tsg-footer__credits{
    flex:0 0 100%!important;
    display:flex!important;
    align-items:center!important;
    gap:3px 6px!important;
    flex-wrap:wrap!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
  }
}
@media(max-width:560px){
  body.tsg-site-shell .tsg-footer__credits{
    font-size:7.8px!important;
    line-height:1.45!important;
  }
}


/* =========================================================
   V1.7.47 — Délibérations : bibliothèque documentaire premium
   Header et footer globaux inchangés.
   ========================================================= */
body.tsg-site-shell .tsg-actes--library{
  padding:28px 0 72px!important;
  background:linear-gradient(180deg,#fff 0%,#fff 70%,rgba(59,30,123,.018) 100%)!important;
}
body.tsg-site-shell .tsg-actes--library .tsg-actes__category-grid{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:14px!important;
  margin:0 0 18px!important;
}
body.tsg-site-shell .tsg-actes--library .tsg-actes__category{
  appearance:none!important;
  position:relative!important;
  display:grid!important;
  grid-template-columns:60px minmax(0,1fr) 38px!important;
  align-items:center!important;
  gap:14px!important;
  min-height:112px!important;
  padding:18px 18px!important;
  border:1px solid rgba(59,30,123,.10)!important;
  border-radius:19px!important;
  background:#fff!important;
  color:#332240!important;
  text-align:left!important;
  cursor:pointer!important;
  box-shadow:0 9px 26px rgba(51,34,64,.035)!important;
  transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease,background .22s ease!important;
}
body.tsg-site-shell .tsg-actes--library .tsg-actes__category:hover,
body.tsg-site-shell .tsg-actes--library .tsg-actes__category.is-active{
  transform:translateY(-2px)!important;
  border-color:rgba(59,30,123,.25)!important;
  box-shadow:0 16px 34px rgba(59,30,123,.075)!important;
}
body.tsg-site-shell .tsg-actes--library .tsg-actes__category.is-active{
  background:linear-gradient(120deg,rgba(244,237,251,.96),rgba(255,255,255,.99))!important;
}
body.tsg-site-shell .tsg-actes--library .tsg-actes__category-icon{
  width:58px!important;height:58px!important;display:grid!important;place-items:center!important;border-radius:18px!important;background:#f2eafa!important;color:#54298e!important;
}
body.tsg-site-shell .tsg-actes--library .tsg-actes__category.is-finances .tsg-actes__category-icon{background:#edf6e9!important;color:#3c8a4f!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__category.is-arretes .tsg-actes__category-icon{background:#f4edfa!important;color:#58318b!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__category-icon svg{width:27px!important;height:27px!important;fill:none!important;stroke:currentColor!important;stroke-width:1.7!important;stroke-linecap:round!important;stroke-linejoin:round!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__category-copy{display:flex!important;min-width:0!important;flex-direction:column!important;gap:5px!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__category-copy strong{font-family:Poppins,Arial,sans-serif!important;font-size:16px!important;font-weight:750!important;color:#3B1E7B!important;line-height:1.2!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__category-copy small{font-size:11.5px!important;line-height:1.45!important;color:#786e82!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__category-arrow{width:36px!important;height:36px!important;display:grid!important;place-items:center!important;border-radius:999px!important;background:#f6f1fa!important;color:#4b2581!important;font-size:18px!important;transition:transform .2s ease!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__category:hover .tsg-actes__category-arrow{transform:translateX(2px)!important}

body.tsg-site-shell .tsg-actes--library .tsg-actes__searchbar{
  display:grid!important;grid-template-columns:minmax(0,1fr) 148px!important;gap:10px!important;padding:11px!important;margin-bottom:14px!important;border:1px solid rgba(59,30,123,.085)!important;border-radius:19px!important;background:#fff!important;box-shadow:0 12px 30px rgba(48,31,64,.035)!important;
}
body.tsg-site-shell .tsg-actes--library .tsg-actes__search{position:relative!important;display:block!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__search-icon{position:absolute!important;left:17px!important;top:50%!important;transform:translateY(-50%)!important;width:23px!important;height:23px!important;color:#513281!important;pointer-events:none!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__search-icon svg{width:100%!important;height:100%!important;fill:none!important;stroke:currentColor!important;stroke-width:1.8!important;stroke-linecap:round!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__search input{width:100%!important;height:48px!important;padding:0 18px 0 50px!important;border:0!important;border-radius:13px!important;background:#fbfafd!important;color:#33283d!important;font-family:Poppins,Arial,sans-serif!important;font-size:12.5px!important;outline:none!important;box-shadow:inset 0 0 0 1px rgba(59,30,123,.055)!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__search input:focus{box-shadow:inset 0 0 0 2px rgba(59,30,123,.18)!important;background:#fff!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__search-submit{border:0!important;border-radius:13px!important;background:#5a2e91!important;color:#fff!important;font:700 11.5px/1 Poppins,Arial,sans-serif!important;cursor:pointer!important;box-shadow:0 9px 20px rgba(74,38,119,.15)!important;transition:transform .2s ease,box-shadow .2s ease!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__search-submit:hover{transform:translateY(-1px)!important;box-shadow:0 12px 24px rgba(74,38,119,.2)!important}

body.tsg-site-shell .tsg-actes--library .tsg-actes__filters{
  display:flex!important;align-items:center!important;justify-content:space-between!important;gap:16px!important;margin-bottom:20px!important;padding:10px 12px!important;border-radius:17px!important;background:#faf9fc!important;border:1px solid rgba(59,30,123,.05)!important;
}
body.tsg-site-shell .tsg-actes--library .tsg-actes__all{display:inline-flex!important;align-items:center!important;gap:8px!important;min-height:38px!important;padding:0 13px!important;border:1px solid rgba(59,30,123,.10)!important;border-radius:999px!important;background:#fff!important;color:#5f5270!important;font:650 10.5px/1 Poppins,Arial,sans-serif!important;cursor:pointer!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__all svg{width:15px!important;height:15px!important;fill:none!important;stroke:currentColor!important;stroke-width:1.8!important;stroke-linejoin:round!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__all.is-active{border-color:#6a3aa1!important;color:#4b247d!important;background:#f6f0fb!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__filter-fields{display:flex!important;align-items:flex-end!important;justify-content:flex-end!important;gap:9px!important;flex-wrap:wrap!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__filter-fields label{display:grid!important;gap:4px!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__filter-fields label>span{font-size:8.5px!important;font-weight:750!important;letter-spacing:.075em!important;text-transform:uppercase!important;color:#8a8192!important;padding-left:3px!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__filter-fields select{height:38px!important;min-width:164px!important;padding:0 34px 0 12px!important;border:1px solid rgba(59,30,123,.08)!important;border-radius:12px!important;background:#fff!important;color:#5d5169!important;font:600 10.5px/1 Poppins,Arial,sans-serif!important;outline:none!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__reset{height:38px!important;padding:0 9px!important;border:0!important;background:transparent!important;color:#755f88!important;font:600 10px/1 Poppins,Arial,sans-serif!important;cursor:pointer!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__reset:hover{color:#3B1E7B!important}

body.tsg-site-shell .tsg-actes--library .tsg-actes__resultbar{display:flex!important;align-items:flex-end!important;justify-content:space-between!important;gap:20px!important;margin:0 0 10px!important;color:#81758a!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__resultbar>div{display:flex!important;align-items:baseline!important;gap:10px!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__result-kicker{font:800 8.5px/1 Poppins,Arial,sans-serif!important;letter-spacing:.12em!important;color:#8FAF74!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__resultbar strong{font:700 12px/1.2 Poppins,Arial,sans-serif!important;color:#3a2b48!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__resultbar>span{font-size:10.5px!important}

body.tsg-site-shell .tsg-actes--library .tsg-actes__list-shell{border:1px solid rgba(59,30,123,.08)!important;border-radius:18px!important;background:#fff!important;overflow:hidden!important;box-shadow:0 12px 35px rgba(44,29,58,.035)!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__list-head{display:grid!important;grid-template-columns:110px minmax(280px,1.8fr) 170px 165px 250px!important;align-items:center!important;gap:14px!important;min-height:46px!important;padding:0 16px!important;background:#faf9fc!important;border-bottom:1px solid rgba(59,30,123,.065)!important;color:#857a8e!important;font:800 8.5px/1 Poppins,Arial,sans-serif!important;letter-spacing:.08em!important;text-transform:uppercase!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__list{display:block!important}
body.tsg-site-shell .tsg-actes--library .tsg-acte-row{display:grid!important;grid-template-columns:110px minmax(280px,1.8fr) 170px 165px 250px!important;align-items:center!important;gap:14px!important;min-height:92px!important;padding:12px 16px!important;border:0!important;border-bottom:1px solid rgba(59,30,123,.07)!important;border-radius:0!important;background:#fff!important;box-shadow:none!important;transition:background .18s ease!important}
body.tsg-site-shell .tsg-actes--library .tsg-acte-row:last-child{border-bottom:0!important}
body.tsg-site-shell .tsg-actes--library .tsg-acte-row:hover{transform:none!important;background:#fcfbfd!important;box-shadow:none!important}
body.tsg-site-shell .tsg-actes--library .tsg-acte-row[hidden]{display:none!important}
body.tsg-site-shell .tsg-actes--library .tsg-acte-row__date{width:72px!important;min-height:60px!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;border-radius:13px!important;background:#f6f0fb!important;color:#4c287c!important;text-align:center!important}
body.tsg-site-shell .tsg-actes--library .tsg-acte-row__date strong{font:800 18px/1 Poppins,Arial,sans-serif!important}
body.tsg-site-shell .tsg-actes--library .tsg-acte-row__date span{margin-top:5px!important;font-size:8.5px!important;color:#887a95!important;text-transform:lowercase!important}
body.tsg-site-shell .tsg-actes--library .tsg-acte-row__document{min-width:0!important}
body.tsg-site-shell .tsg-actes--library .tsg-acte-row__titleline{display:flex!important;align-items:center!important;gap:8px!important;min-width:0!important}
body.tsg-site-shell .tsg-actes--library .tsg-acte-row__document h3{margin:0!important;min-width:0!important;color:#352543!important;font-family:Poppins,Arial,sans-serif!important;font-size:12.5px!important;font-weight:750!important;line-height:1.35!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
body.tsg-site-shell .tsg-actes--library .tsg-acte-row__document p{margin:5px 0 0!important;color:#8a808f!important;font-size:9.5px!important;line-height:1.4!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
body.tsg-site-shell .tsg-actes--library .tsg-acte-row__demo{flex:0 0 auto!important;padding:4px 6px!important;border-radius:999px!important;background:#fff1e9!important;color:#bd5e2f!important;font-size:7px!important;font-weight:800!important;letter-spacing:.05em!important}
body.tsg-site-shell .tsg-actes--library .tsg-acte-row__category{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:5px!important}
body.tsg-site-shell .tsg-actes--library .tsg-acte-row__category>span{display:inline-flex!important;align-items:center!important;min-height:25px!important;padding:0 10px!important;border-radius:999px!important;background:#f1e8f8!important;color:#6a379f!important;font:750 9px/1 Poppins,Arial,sans-serif!important}
body.tsg-site-shell .tsg-actes--library .tsg-acte-row.is-finances .tsg-acte-row__category>span{background:#eaf5e8!important;color:#48804f!important}
body.tsg-site-shell .tsg-actes--library .tsg-acte-row.is-arretes .tsg-acte-row__category>span{background:#f6edf8!important;color:#6b3a89!important}
body.tsg-site-shell .tsg-actes--library .tsg-acte-row__category small{max-width:155px!important;color:#9990a0!important;font-size:8.5px!important;line-height:1.25!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
body.tsg-site-shell .tsg-actes--library .tsg-acte-row__reference{color:#716578!important;font:650 9.5px/1.3 Poppins,Arial,sans-serif!important;word-break:break-word!important}
body.tsg-site-shell .tsg-actes--library .tsg-acte-row__reference span{color:#afa6b4!important}
body.tsg-site-shell .tsg-actes--library .tsg-acte-row__actions{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:7px!important;margin:0!important;padding:0!important}
body.tsg-site-shell .tsg-actes--library .tsg-acte-row__actions a{width:auto!important;min-height:36px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:6px!important;padding:0 11px!important;border-radius:10px!important;font:700 9.5px/1 Poppins,Arial,sans-serif!important;text-decoration:none!important;box-sizing:border-box!important;box-shadow:none!important}
body.tsg-site-shell .tsg-actes--library .tsg-acte-row__actions a svg{width:15px!important;height:15px!important;fill:none!important;stroke:currentColor!important;stroke-width:1.8!important;stroke-linecap:round!important;stroke-linejoin:round!important}
body.tsg-site-shell .tsg-actes--library .tsg-acte-row__actions a.is-view{border:1px solid rgba(94,50,137,.20)!important;background:#fff!important;color:#5e3289!important}
body.tsg-site-shell .tsg-actes--library .tsg-acte-row__actions a.is-download{border:1px solid #5b2d8d!important;background:#5b2d8d!important;color:#fff!important}
body.tsg-site-shell .tsg-actes--library .tsg-acte-row__actions a:hover{filter:none!important;transform:translateY(-1px)!important}
body.tsg-site-shell .tsg-actes--library .tsg-acte-row__unavailable{font-size:9px!important;color:#9990a0!important}

body.tsg-site-shell .tsg-actes--library .tsg-actes__pagination{display:flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;min-height:42px!important;margin-top:18px!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__pagination[hidden]{display:none!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__pagination button{width:34px!important;height:34px!important;display:grid!important;place-items:center!important;border:1px solid rgba(59,30,123,.10)!important;border-radius:999px!important;background:#fff!important;color:#665a70!important;font:700 10px/1 Poppins,Arial,sans-serif!important;cursor:pointer!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__pagination button.is-current{border-color:#5b2d8d!important;background:#5b2d8d!important;color:#fff!important;box-shadow:0 6px 15px rgba(91,45,141,.18)!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__pagination button:disabled{opacity:.35!important;cursor:default!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__pagination .is-ellipsis{color:#8c8392!important;font-size:11px!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__noresult{margin-top:12px!important;padding:50px 24px!important;border:1px dashed rgba(59,30,123,.14)!important;border-radius:18px!important;background:#fbfafc!important;text-align:center!important}

@media(max-width:1180px){
  body.tsg-site-shell .tsg-actes--library .tsg-actes__list-head{grid-template-columns:90px minmax(240px,1.7fr) 140px 130px 210px!important}
  body.tsg-site-shell .tsg-actes--library .tsg-acte-row{grid-template-columns:90px minmax(240px,1.7fr) 140px 130px 210px!important}
  body.tsg-site-shell .tsg-actes--library .tsg-acte-row__actions a span{display:none!important}
  body.tsg-site-shell .tsg-actes--library .tsg-acte-row__actions a{width:38px!important;padding:0!important}
}
@media(max-width:900px){
  body.tsg-site-shell .tsg-actes--library .tsg-actes__category-grid{grid-template-columns:1fr!important}
  body.tsg-site-shell .tsg-actes--library .tsg-actes__category{min-height:94px!important;grid-template-columns:52px minmax(0,1fr) 34px!important}
  body.tsg-site-shell .tsg-actes--library .tsg-actes__category-icon{width:50px!important;height:50px!important;border-radius:15px!important}
  body.tsg-site-shell .tsg-actes--library .tsg-actes__filters{align-items:stretch!important;flex-direction:column!important}
  body.tsg-site-shell .tsg-actes--library .tsg-actes__filter-fields{justify-content:flex-start!important}
  body.tsg-site-shell .tsg-actes--library .tsg-actes__list-head{display:none!important}
  body.tsg-site-shell .tsg-actes--library .tsg-acte-row{grid-template-columns:72px minmax(0,1fr) auto!important;grid-template-areas:'date doc actions' 'date category actions' 'date ref actions'!important;gap:6px 12px!important;padding:14px!important}
  body.tsg-site-shell .tsg-actes--library .tsg-acte-row__date{grid-area:date!important}
  body.tsg-site-shell .tsg-actes--library .tsg-acte-row__document{grid-area:doc!important}
  body.tsg-site-shell .tsg-actes--library .tsg-acte-row__category{grid-area:category!important;flex-direction:row!important;align-items:center!important}
  body.tsg-site-shell .tsg-actes--library .tsg-acte-row__reference{grid-area:ref!important}
  body.tsg-site-shell .tsg-actes--library .tsg-acte-row__actions{grid-area:actions!important;flex-direction:column!important}
  body.tsg-site-shell .tsg-actes--library .tsg-acte-row__category small{max-width:220px!important}
}
@media(max-width:620px){
  body.tsg-site-shell .tsg-actes--library{padding-top:18px!important;padding-bottom:50px!important}
  body.tsg-site-shell .tsg-actes--library .tsg-actes__searchbar{grid-template-columns:1fr!important;padding:8px!important}
  body.tsg-site-shell .tsg-actes--library .tsg-actes__search-submit{height:44px!important}
  body.tsg-site-shell .tsg-actes--library .tsg-actes__filter-fields{display:grid!important;grid-template-columns:1fr 1fr!important;width:100%!important}
  body.tsg-site-shell .tsg-actes--library .tsg-actes__filter-fields label{min-width:0!important}
  body.tsg-site-shell .tsg-actes--library .tsg-actes__filter-fields select{width:100%!important;min-width:0!important}
  body.tsg-site-shell .tsg-actes--library .tsg-actes__reset{grid-column:1/-1!important;justify-self:start!important}
  body.tsg-site-shell .tsg-actes--library .tsg-actes__resultbar{align-items:flex-start!important;flex-direction:column!important;gap:5px!important}
  body.tsg-site-shell .tsg-actes--library .tsg-acte-row{grid-template-columns:62px minmax(0,1fr)!important;grid-template-areas:'date doc' 'category category' 'ref ref' 'actions actions'!important;gap:8px 11px!important}
  body.tsg-site-shell .tsg-actes--library .tsg-acte-row__date{width:60px!important;min-height:56px!important}
  body.tsg-site-shell .tsg-actes--library .tsg-acte-row__document h3{white-space:normal!important;display:-webkit-box!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important}
  body.tsg-site-shell .tsg-actes--library .tsg-acte-row__document p{white-space:normal!important;display:-webkit-box!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important}
  body.tsg-site-shell .tsg-actes--library .tsg-acte-row__actions{flex-direction:row!important;justify-content:flex-start!important;padding-top:4px!important}
  body.tsg-site-shell .tsg-actes--library .tsg-acte-row__actions a{width:auto!important;min-width:42px!important;padding:0 11px!important}
  body.tsg-site-shell .tsg-actes--library .tsg-acte-row__actions a span{display:inline!important}
}
@media(prefers-reduced-motion:reduce){
  body.tsg-site-shell .tsg-actes--library .tsg-actes__category,
  body.tsg-site-shell .tsg-actes--library .tsg-actes__category-arrow,
  body.tsg-site-shell .tsg-actes--library .tsg-actes__search-submit,
  body.tsg-site-shell .tsg-actes--library .tsg-acte-row__actions a{transition:none!important;transform:none!important}
}


/* =========================================================
   V1.7.48 — Actes : autorisation de téléchargement par document
   ========================================================= */
body.tsg-site-shell .tsg-acte-download-option{
  grid-template-columns:20px minmax(0,1fr)!important;
  align-items:start!important;
  gap:10px!important;
  padding:13px 14px!important;
  border:1px solid rgba(59,30,123,.09)!important;
  border-radius:14px!important;
  background:rgba(255,255,255,.72)!important;
}
body.tsg-site-shell .tsg-acte-download-option input[type="checkbox"]{
  appearance:auto!important;
  -webkit-appearance:checkbox!important;
  width:17px!important;
  height:17px!important;
  min-height:0!important;
  margin:2px 0 0!important;
  padding:0!important;
  accent-color:#3B1E7B!important;
}
body.tsg-site-shell .tsg-acte-download-option>span{
  display:grid!important;
  gap:3px!important;
}
body.tsg-site-shell .tsg-acte-download-option strong{
  color:#3B1E7B!important;
  font-size:11px!important;
}
body.tsg-site-shell .tsg-acte-download-option small{
  color:#81778a!important;
  font-size:9.5px!important;
  font-weight:500!important;
  line-height:1.45!important;
}


/* =========================================================
   V1.7.50 — États actifs colorés des catégories d'actes
   Délibérations = violet doux · Finances = vert doux · Arrêtés = orange doux
   ========================================================= */
body.tsg-site-shell .tsg-actes--library .tsg-actes__category.is-deliberations.is-active{
  background:linear-gradient(135deg,#f5effb 0%,#fbf9fd 100%)!important;
  border-color:rgba(91,47,143,.24)!important;
  box-shadow:0 15px 34px rgba(91,47,143,.085)!important;
}
body.tsg-site-shell .tsg-actes--library .tsg-actes__category.is-deliberations.is-active .tsg-actes__category-icon{
  background:#eadcf7!important;
  color:#5a2e91!important;
}
body.tsg-site-shell .tsg-actes--library .tsg-actes__category.is-deliberations.is-active .tsg-actes__category-copy strong{
  color:#512680!important;
}
body.tsg-site-shell .tsg-actes--library .tsg-actes__category.is-deliberations.is-active .tsg-actes__category-arrow{
  background:#eadcf7!important;
  color:#5a2e91!important;
}

body.tsg-site-shell .tsg-actes--library .tsg-actes__category.is-finances.is-active{
  background:linear-gradient(135deg,#edf7ea 0%,#fbfdf9 100%)!important;
  border-color:rgba(86,139,74,.26)!important;
  box-shadow:0 15px 34px rgba(83,132,72,.085)!important;
}
body.tsg-site-shell .tsg-actes--library .tsg-actes__category.is-finances.is-active .tsg-actes__category-icon{
  background:#dcefd6!important;
  color:#3f7f45!important;
}
body.tsg-site-shell .tsg-actes--library .tsg-actes__category.is-finances.is-active .tsg-actes__category-copy strong{
  color:#3f7645!important;
}
body.tsg-site-shell .tsg-actes--library .tsg-actes__category.is-finances.is-active .tsg-actes__category-arrow{
  background:#dcefd6!important;
  color:#3f7f45!important;
}

body.tsg-site-shell .tsg-actes--library .tsg-actes__category.is-arretes.is-active{
  background:linear-gradient(135deg,#fff2e8 0%,#fffaf6 100%)!important;
  border-color:rgba(218,112,46,.27)!important;
  box-shadow:0 15px 34px rgba(218,112,46,.08)!important;
}
body.tsg-site-shell .tsg-actes--library .tsg-actes__category.is-arretes.is-active .tsg-actes__category-icon{
  background:#fde3d0!important;
  color:#c76324!important;
}
body.tsg-site-shell .tsg-actes--library .tsg-actes__category.is-arretes.is-active .tsg-actes__category-copy strong{
  color:#b65a22!important;
}
body.tsg-site-shell .tsg-actes--library .tsg-actes__category.is-arretes.is-active .tsg-actes__category-arrow{
  background:#fde3d0!important;
  color:#c76324!important;
}


/* =========================================================
   V1.7.52 — Hero animé SVG pour la page Délibérations & arrêtés
   ========================================================= */
body.tsg-site-shell .tsg-actes--library .tsg-actes__hero{
  position:relative!important;
  display:grid!important;
  grid-template-columns:minmax(0,1.08fr) minmax(280px,.92fr)!important;
  gap:18px!important;
  align-items:center!important;
  margin:0 0 22px!important;
  padding:26px 28px!important;
  border:1px solid rgba(59,30,123,.08)!important;
  border-radius:28px!important;
  background:linear-gradient(135deg,rgba(246,242,251,.98) 0%,rgba(255,255,255,.98) 46%,rgba(243,248,239,.98) 100%)!important;
  overflow:hidden!important;
  box-shadow:0 18px 44px rgba(59,30,123,.07)!important;
}
body.tsg-site-shell .tsg-actes--library .tsg-actes__hero:before,
body.tsg-site-shell .tsg-actes--library .tsg-actes__hero:after{
  content:''!important;
  position:absolute!important;
  border-radius:999px!important;
  background:radial-gradient(circle,rgba(143,175,116,.18) 0%,rgba(143,175,116,0) 72%)!important;
  pointer-events:none!important;
}
body.tsg-site-shell .tsg-actes--library .tsg-actes__hero:before{width:240px!important;height:240px!important;right:-72px!important;top:-92px!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__hero:after{width:180px!important;height:180px!important;left:-60px!important;bottom:-70px!important;background:radial-gradient(circle,rgba(91,45,141,.12) 0%,rgba(91,45,141,0) 72%)!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__hero-copy{position:relative!important;z-index:1!important;display:grid!important;gap:10px!important;max-width:640px!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__hero-kicker{display:inline-flex!important;align-items:center!important;gap:8px!important;color:#8FAF74!important;font:800 10px/1 Poppins,Arial,sans-serif!important;letter-spacing:.18em!important;text-transform:uppercase!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__hero-kicker:before{content:''!important;width:34px!important;height:2px!important;border-radius:999px!important;background:#8FAF74!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__hero-copy h1{margin:0!important;color:#3B1E7B!important;font-family:Poppins,Arial,sans-serif!important;font-size:40px!important;font-weight:800!important;line-height:1.06!important;letter-spacing:-.03em!important;text-wrap:balance!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__hero-copy p{margin:0!important;max-width:600px!important;color:#6f637c!important;font:500 14px/1.65 Poppins,Arial,sans-serif!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__hero-visual{position:relative!important;z-index:1!important;display:flex!important;justify-content:flex-end!important;align-items:center!important;min-height:250px!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__hero-svg{width:min(100%,470px)!important;height:auto!important;overflow:visible!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__hero-orb{opacity:.9!important;animation:tsgHeroFloat 7s ease-in-out infinite!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__hero-orb.is-one{fill:rgba(143,175,116,.16)!important;animation-delay:-1.3s!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__hero-orb.is-two{fill:rgba(91,45,141,.10)!important;animation-duration:8.2s!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__hero-orb.is-three{fill:rgba(218,112,46,.10)!important;animation-delay:-2.4s!important;animation-duration:6.5s!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__paper-group{transform-origin:304px 150px!important;animation:tsgPaperFloat 6.4s ease-in-out infinite!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__writing-line{fill:none!important;stroke:url(#tsgActeInk)!important;stroke-width:5!important;stroke-linecap:round!important;stroke-linejoin:round!important;stroke-dasharray:230!important;stroke-dashoffset:230!important;animation:tsgInkWrite 5.4s ease-in-out infinite!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__writing-line.line-b{animation-delay:.28s!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__writing-line.line-c{animation-delay:.56s!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__pen-trace{fill:none!important;stroke:rgba(91,45,141,.22)!important;stroke-width:3!important;stroke-linecap:round!important;stroke-dasharray:160!important;stroke-dashoffset:160!important;animation:tsgPenTrace 5.4s ease-in-out infinite!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__hand-group{transform-origin:490px 152px!important;animation:tsgHandWrite 5.4s ease-in-out infinite!important}
@keyframes tsgHeroFloat{0%,100%{transform:translateY(0px)}50%{transform:translateY(-8px)}}
@keyframes tsgPaperFloat{0%,100%{transform:rotate(-2deg) translateY(0)}50%{transform:rotate(1deg) translateY(-4px)}}
@keyframes tsgHandWrite{0%{transform:translate(0,0) rotate(0deg)}18%{transform:translate(-8px,6px) rotate(-2deg)}34%{transform:translate(12px,-2px) rotate(1.5deg)}52%{transform:translate(-6px,7px) rotate(-1deg)}70%{transform:translate(9px,0) rotate(1deg)}100%{transform:translate(0,0) rotate(0deg)}}
@keyframes tsgInkWrite{0%,10%{stroke-dashoffset:230;opacity:0}18%,78%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:.18}}
@keyframes tsgPenTrace{0%,12%{stroke-dashoffset:160;opacity:0}28%,86%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}
@media(max-width:980px){
  body.tsg-site-shell .tsg-actes--library .tsg-actes__hero{grid-template-columns:1fr!important;padding:24px 22px!important}
  body.tsg-site-shell .tsg-actes--library .tsg-actes__hero-copy h1{font-size:34px!important}
  body.tsg-site-shell .tsg-actes--library .tsg-actes__hero-visual{justify-content:center!important;min-height:210px!important}
}
@media(max-width:620px){
  body.tsg-site-shell .tsg-actes--library .tsg-actes__hero{margin-bottom:18px!important;padding:20px 16px!important;border-radius:22px!important}
  body.tsg-site-shell .tsg-actes--library .tsg-actes__hero-copy h1{font-size:28px!important;line-height:1.1!important}
  body.tsg-site-shell .tsg-actes--library .tsg-actes__hero-copy p{font-size:12.5px!important;line-height:1.6!important}
  body.tsg-site-shell .tsg-actes--library .tsg-actes__hero-visual{min-height:170px!important}
  body.tsg-site-shell .tsg-actes--library .tsg-actes__hero-svg{width:min(100%,360px)!important}
}
@media(prefers-reduced-motion:reduce){
  body.tsg-site-shell .tsg-actes--library .tsg-actes__hero-orb,
  body.tsg-site-shell .tsg-actes--library .tsg-actes__paper-group,
  body.tsg-site-shell .tsg-actes--library .tsg-actes__writing-line,
  body.tsg-site-shell .tsg-actes--library .tsg-actes__pen-trace,
  body.tsg-site-shell .tsg-actes--library .tsg-actes__hand-group{animation:none!important}
}


/* =========================================================
   V1.7.53 — Hero Délibérations : illustration main/feuille affinée
   ========================================================= */
body.tsg-site-shell .tsg-actes--library .tsg-actes__hero-svg .tsg-actes__pen{filter:drop-shadow(0 8px 14px rgba(59,30,123,.14))!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__hero-svg .tsg-actes__hand-group{filter:drop-shadow(0 12px 18px rgba(107,68,34,.10))!important}


/* =========================================================
   V1.7.54 — Hero Délibérations : remplacement du visuel planète
   et illustration emoji animée plus propre
   ========================================================= */
body.tsg-site-shell .tsg-actes--library .tsg-actes__hero-visual{position:relative!important;z-index:1!important;display:flex!important;justify-content:center!important;align-items:center!important;min-height:260px!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__emoji-scene{position:relative!important;width:min(100%,460px)!important;height:250px!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__emoji-orb{position:absolute!important;border-radius:999px!important;pointer-events:none!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__emoji-orb.is-a{width:88px!important;height:88px!important;left:30px!important;bottom:34px!important;background:rgba(143,175,116,.11)!important;animation:tsgEmojiFloat 7s ease-in-out infinite!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__emoji-orb.is-b{width:120px!important;height:120px!important;right:36px!important;top:16px!important;background:rgba(91,45,141,.10)!important;animation:tsgEmojiFloat 8s ease-in-out infinite -1.4s!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__emoji-orb.is-c{width:72px!important;height:72px!important;right:8px!important;bottom:18px!important;background:rgba(218,112,46,.10)!important;animation:tsgEmojiFloat 6.2s ease-in-out infinite -2.1s!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__emoji-card{position:absolute!important;left:112px!important;top:54px!important;width:240px!important;height:156px!important;border:1px solid rgba(188,170,214,.52)!important;border-radius:24px!important;background:linear-gradient(180deg,#ffffff 0%,#faf7fd 100%)!important;box-shadow:0 18px 34px rgba(59,30,123,.09)!important;animation:tsgEmojiCardFloat 7.4s ease-in-out infinite!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__emoji-card-top{position:absolute!important;left:28px!important;top:28px!important;width:98px!important;height:12px!important;border-radius:999px!important;background:#ecdff8!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__emoji-card-line{position:absolute!important;left:28px!important;height:7px!important;border-radius:999px!important;background:#ded0ed!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__emoji-card-line.is-1{top:56px!important;width:156px!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__emoji-card-line.is-2{top:80px!important;width:186px!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__emoji-card-line.is-3{top:104px!important;width:150px!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__emoji-stamp{position:absolute!important;right:26px!important;bottom:24px!important;width:36px!important;height:36px!important;display:grid!important;place-items:center!important;border-radius:999px!important;background:#f5fbf1!important;box-shadow:inset 0 0 0 2px rgba(143,175,116,.18)!important;font-size:19px!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__emoji-bubble{position:absolute!important;display:grid!important;place-items:center!important;border-radius:999px!important;background:#fff!important;box-shadow:0 14px 24px rgba(59,30,123,.12)!important;border:1px solid rgba(59,30,123,.08)!important;font-size:34px!important;line-height:1!important;user-select:none!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__emoji-bubble.is-doc{left:76px!important;top:18px!important;width:74px!important;height:74px!important;animation:tsgEmojiFloat 6.8s ease-in-out infinite -.6s!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__emoji-bubble.is-pen{right:56px!important;top:92px!important;width:82px!important;height:82px!important;font-size:38px!important;background:linear-gradient(180deg,#fff 0%,#faf7fd 100%)!important;animation:tsgEmojiPen 5.4s ease-in-out infinite!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__emoji-bubble.is-office{right:126px!important;bottom:10px!important;width:68px!important;height:68px!important;animation:tsgEmojiFloat 7.6s ease-in-out infinite -1.2s!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__emoji-bubble.is-folder{left:36px!important;bottom:24px!important;width:64px!important;height:64px!important;animation:tsgEmojiFloat 6.6s ease-in-out infinite -2s!important}
@keyframes tsgEmojiFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@keyframes tsgEmojiCardFloat{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-6px) rotate(.6deg)}}
@keyframes tsgEmojiPen{0%{transform:translate(0,0) rotate(-8deg)}25%{transform:translate(-6px,4px) rotate(-12deg)}50%{transform:translate(8px,-4px) rotate(-3deg)}75%{transform:translate(-3px,3px) rotate(-10deg)}100%{transform:translate(0,0) rotate(-8deg)}}
@media(max-width:980px){
  body.tsg-site-shell .tsg-actes--library .tsg-actes__emoji-scene{width:min(100%,400px)!important;height:220px!important}
  body.tsg-site-shell .tsg-actes--library .tsg-actes__emoji-card{left:90px!important;top:52px!important;width:214px!important;height:142px!important}
  body.tsg-site-shell .tsg-actes--library .tsg-actes__emoji-bubble.is-pen{right:36px!important;top:84px!important;width:74px!important;height:74px!important;font-size:34px!important}
}
@media(max-width:620px){
  body.tsg-site-shell .tsg-actes--library .tsg-actes__hero-visual{min-height:210px!important}
  body.tsg-site-shell .tsg-actes--library .tsg-actes__emoji-scene{width:min(100%,320px)!important;height:184px!important}
  body.tsg-site-shell .tsg-actes--library .tsg-actes__emoji-card{left:74px!important;top:46px!important;width:176px!important;height:116px!important;border-radius:20px!important}
  body.tsg-site-shell .tsg-actes--library .tsg-actes__emoji-card-top{left:22px!important;top:22px!important;width:72px!important;height:10px!important}
  body.tsg-site-shell .tsg-actes--library .tsg-actes__emoji-card-line.is-1{left:22px!important;top:46px!important;width:114px!important}
  body.tsg-site-shell .tsg-actes--library .tsg-actes__emoji-card-line.is-2{left:22px!important;top:66px!important;width:134px!important}
  body.tsg-site-shell .tsg-actes--library .tsg-actes__emoji-card-line.is-3{left:22px!important;top:86px!important;width:110px!important}
  body.tsg-site-shell .tsg-actes--library .tsg-actes__emoji-stamp{right:18px!important;bottom:16px!important;width:30px!important;height:30px!important;font-size:16px!important}
  body.tsg-site-shell .tsg-actes--library .tsg-actes__emoji-bubble{font-size:28px!important}
  body.tsg-site-shell .tsg-actes--library .tsg-actes__emoji-bubble.is-doc{left:30px!important;top:14px!important;width:58px!important;height:58px!important}
  body.tsg-site-shell .tsg-actes--library .tsg-actes__emoji-bubble.is-pen{right:14px!important;top:76px!important;width:62px!important;height:62px!important;font-size:30px!important}
  body.tsg-site-shell .tsg-actes--library .tsg-actes__emoji-bubble.is-office{right:88px!important;bottom:6px!important;width:54px!important;height:54px!important}
  body.tsg-site-shell .tsg-actes--library .tsg-actes__emoji-bubble.is-folder{left:8px!important;bottom:16px!important;width:52px!important;height:52px!important}
}
@media(prefers-reduced-motion:reduce){
  body.tsg-site-shell .tsg-actes--library .tsg-actes__emoji-orb,
  body.tsg-site-shell .tsg-actes--library .tsg-actes__emoji-card,
  body.tsg-site-shell .tsg-actes--library .tsg-actes__emoji-bubble{animation:none!important}
}


/* =========================================================
   V1.7.55 — Hero Délibérations : retour du fond violet type planètes
   ========================================================= */
body.tsg-site-shell .tsg-actes--library .tsg-actes__hero{
  background:
    radial-gradient(circle at 78% 18%, rgba(255,255,255,.16) 0%, rgba(255,255,255,0) 26%),
    radial-gradient(circle at 18% 82%, rgba(143,175,116,.14) 0%, rgba(143,175,116,0) 28%),
    linear-gradient(135deg,#5b2d8d 0%,#45207b 42%,#36225f 100%)!important;
  border-color:rgba(255,255,255,.10)!important;
  box-shadow:0 22px 48px rgba(42,21,76,.22)!important;
}
body.tsg-site-shell .tsg-actes--library .tsg-actes__hero:before{
  background:radial-gradient(circle,rgba(255,255,255,.10) 0%,rgba(255,255,255,0) 72%)!important;
}
body.tsg-site-shell .tsg-actes--library .tsg-actes__hero:after{
  background:radial-gradient(circle,rgba(143,175,116,.14) 0%,rgba(143,175,116,0) 72%)!important;
}
body.tsg-site-shell .tsg-actes--library .tsg-actes__hero-kicker{color:#b7d29f!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__hero-kicker:before{background:#9fbe80!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__hero-copy h1{color:#ffffff!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__hero-copy p{color:rgba(255,255,255,.86)!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__emoji-card{
  background:linear-gradient(180deg,rgba(255,255,255,.98) 0%,rgba(248,245,253,.96) 100%)!important;
  box-shadow:0 18px 34px rgba(15,8,34,.22)!important;
}
body.tsg-site-shell .tsg-actes--library .tsg-actes__emoji-bubble{
  border:1px solid rgba(255,255,255,.18)!important;
  box-shadow:0 14px 24px rgba(17,9,36,.22)!important;
}
body.tsg-site-shell .tsg-actes--library .tsg-actes__emoji-orb.is-a{background:rgba(143,175,116,.17)!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__emoji-orb.is-b{background:rgba(255,255,255,.10)!important}
body.tsg-site-shell .tsg-actes--library .tsg-actes__emoji-orb.is-c{background:rgba(255,255,255,.08)!important}


/* =========================================================
   V1.7.57 — Actualités secondaires plus discrètes
   + agenda rempli/cadré légèrement vers la gauche
   ========================================================= */
body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--left,
body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--right{
  opacity:.20!important;
  filter:saturate(.62) brightness(.96)!important;
}
body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--main{
  opacity:1!important;
  filter:none!important;
}
@media (hover:hover) and (pointer:fine){
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--left:hover,
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--right:hover{
    opacity:.34!important;
    filter:saturate(.78) brightness(.98)!important;
  }
}

/* Agenda : remplir tout l'emplacement, sans zoom supplémentaire.
   L'image est légèrement décalée vers la gauche dans son cadre. */
body .tsg-agenda-speciality__feature,
body .tsg-agenda-speciality__thumb,
body.tsg-layout-agenda .tsg-event-card__image,
body.tsg-layout-home .tsg-event-card__image{
  overflow:hidden!important;
  background:#eef1f4!important;
}
body .tsg-agenda-speciality__feature img,
body .tsg-agenda-speciality__thumb img,
body.tsg-layout-agenda .tsg-event-card__image img,
body.tsg-layout-home .tsg-event-card__image img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:58% 50%!important;
  transform:none!important;
  padding:0!important;
  margin:0!important;
}
body .tsg-agenda-speciality__feature:hover img,
body .tsg-agenda-speciality__item:hover .tsg-agenda-speciality__thumb img,
body.tsg-layout-agenda .tsg-event-card:hover .tsg-event-card__image img,
body.tsg-layout-home .tsg-event-card:hover .tsg-event-card__image img{
  transform:none!important;
}


/* =========================================================
   V1.7.63 — Base 1.7.57 : actualités plus visibles + Agenda 1:1
   ========================================================= */

/* Actualités secondaires : voile léger, image encore clairement lisible. */
body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--left,
body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--right{
  opacity:.68!important;
  filter:saturate(.92) brightness(.99)!important;
}
body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--main{
  opacity:1!important;
  filter:none!important;
}
@media (hover:hover) and (pointer:fine){
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--left:hover,
  body.tsg-layout-home .tsg-news-feature.tsg-news-feature--airy .tsg-news-photo--right:hover{
    opacity:.82!important;
    filter:saturate(.98) brightness(1)!important;
  }
}

/* Agenda principal : vrai cadre carré 1:1, image entière et lisible. */
body .tsg-agenda-speciality__stage{
  min-height:650px!important;
}
body .tsg-agenda-speciality__feature{
  width:min(50%,620px)!important;
  height:auto!important;
  aspect-ratio:1 / 1!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:linear-gradient(135deg,#f7f4fb 0%,#eef3eb 100%)!important;
  border:1px solid rgba(59,30,123,.07)!important;
}
body .tsg-agenda-speciality__feature img{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center center!important;
  padding:10px!important;
  box-sizing:border-box!important;
  transform:none!important;
  background:transparent!important;
}
body .tsg-agenda-speciality__feature:hover img{
  transform:none!important;
}

/* Miniatures Agenda : carrées 1:1 et image entière. */
body .tsg-agenda-speciality__item{
  grid-template-columns:88px minmax(0,1fr) 44px!important;
}
body .tsg-agenda-speciality__thumb{
  width:82px!important;
  height:82px!important;
  aspect-ratio:1 / 1!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:16px!important;
  background:linear-gradient(135deg,#f7f4fb 0%,#eef3eb 100%)!important;
  border:1px solid rgba(59,30,123,.06)!important;
}
body .tsg-agenda-speciality__thumb img{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center center!important;
  padding:5px!important;
  box-sizing:border-box!important;
  transform:none!important;
}
body .tsg-agenda-speciality__item:hover .tsg-agenda-speciality__thumb img{
  transform:none!important;
}

/* Page Agenda : cartes visuelles carrées 1:1 sans recadrage. */
body.tsg-layout-agenda .tsg-event-card__image,
body.tsg-layout-home .tsg-event-card__image{
  height:auto!important;
  aspect-ratio:1 / 1!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:hidden!important;
  background:linear-gradient(135deg,#f7f4fb 0%,#eef3eb 100%)!important;
}
body.tsg-layout-agenda .tsg-event-card__image img,
body.tsg-layout-home .tsg-event-card__image img{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center center!important;
  padding:8px!important;
  box-sizing:border-box!important;
  transform:none!important;
}
body.tsg-layout-agenda .tsg-event-card:hover .tsg-event-card__image img,
body.tsg-layout-home .tsg-event-card:hover .tsg-event-card__image img{
  transform:none!important;
}

@media(max-width:1050px){
  body .tsg-agenda-speciality__stage{min-height:610px!important}
  body .tsg-agenda-speciality__feature{width:min(52%,560px)!important}
  body .tsg-agenda-speciality__item{grid-template-columns:82px minmax(0,1fr) 42px!important}
  body .tsg-agenda-speciality__thumb{width:76px!important;height:76px!important}
}
@media(max-width:820px){
  body .tsg-agenda-speciality__stage{min-height:0!important}
  body .tsg-agenda-speciality__feature{width:min(100%,540px)!important;align-self:center!important;margin:0 auto!important}
  body .tsg-agenda-speciality__item{grid-template-columns:76px minmax(0,1fr) 42px!important}
  body .tsg-agenda-speciality__thumb{width:70px!important;height:70px!important}
}
@media(max-width:560px){
  body .tsg-agenda-speciality__feature{width:100%!important;max-width:420px!important}
  body .tsg-agenda-speciality__item{grid-template-columns:66px minmax(0,1fr) 36px!important}
  body .tsg-agenda-speciality__thumb{width:60px!important;height:60px!important;border-radius:13px!important}
}


/* =========================================================
   V1.7.64 — Agenda 1:1 : chevauchement léger + bords fondus
   ========================================================= */

/* Sur desktop, la liste vient légèrement recouvrir le grand visuel pour une composition plus fluide. */
@media(min-width:821px){
  body .tsg-agenda-speciality__feature{
    width:min(52%,620px)!important;
    z-index:1!important;
  }
  body .tsg-agenda-speciality__menu{
    width:57%!important;
    right:0!important;
    top:78px!important;
    z-index:4!important;
    margin-left:-4%!important;
    background:rgba(255,255,255,.94)!important;
    backdrop-filter:blur(14px)!important;
    -webkit-backdrop-filter:blur(14px)!important;
    border-color:rgba(59,30,123,.045)!important;
    box-shadow:0 20px 46px rgba(33,25,47,.085)!important;
  }
}

/* Le cadre 1:1 reste propre, mais les bords de l'affiche se fondent dans le fond. */
body .tsg-agenda-speciality__feature,
body .tsg-agenda-speciality__thumb,
body.tsg-layout-agenda .tsg-event-card__image,
body.tsg-layout-home .tsg-event-card__image{
  background:linear-gradient(135deg,#f7f4fb 0%,#f0f3ee 48%,#f8f6fb 100%)!important;
  border-color:rgba(59,30,123,.035)!important;
}

body .tsg-agenda-speciality__feature img,
body .tsg-agenda-speciality__thumb img,
body.tsg-layout-agenda .tsg-event-card__image img,
body.tsg-layout-home .tsg-event-card__image img{
  border-radius:18px!important;
  -webkit-mask-image:radial-gradient(ellipse 96% 94% at 50% 50%,#000 0%,#000 78%,rgba(0,0,0,.88) 86%,rgba(0,0,0,.42) 94%,transparent 100%)!important;
  mask-image:radial-gradient(ellipse 96% 94% at 50% 50%,#000 0%,#000 78%,rgba(0,0,0,.88) 86%,rgba(0,0,0,.42) 94%,transparent 100%)!important;
  filter:drop-shadow(0 7px 12px rgba(59,30,123,.055))!important;
}

/* Le grand document reste lisible et un peu plus présent dans son carré. */
body .tsg-agenda-speciality__feature img{
  padding:6px!important;
}
body .tsg-agenda-speciality__thumb img{
  padding:3px!important;
  border-radius:13px!important;
}
body.tsg-layout-agenda .tsg-event-card__image img,
body.tsg-layout-home .tsg-event-card__image img{
  padding:5px!important;
}

/* Sur mobile on évite le chevauchement pour conserver une lecture simple. */
@media(max-width:820px){
  body .tsg-agenda-speciality__menu{
    margin-left:0!important;
    background:rgba(255,255,255,.97)!important;
  }
}


/* =========================================================
   V1.7.65 — Articles : journal animé à la place des planètes
   + contenu enrichi multi-images / multi-textes
   ========================================================= */
body.tsg-site-shell .tsg-universal-header.is-visual-journal .tsg-universal-header__visual{
  width:min(39vw,440px)!important;
  min-height:290px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  perspective:1100px!important;
}
body.tsg-site-shell .tsg-article-journal{
  position:relative!important;
  width:390px!important;
  height:260px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  transform-style:preserve-3d!important;
}
body.tsg-site-shell .tsg-article-journal:before{
  content:""!important;
  position:absolute!important;
  width:330px!important;
  height:120px!important;
  left:34px!important;
  bottom:12px!important;
  border-radius:50%!important;
  background:radial-gradient(ellipse,rgba(16,5,32,.30),rgba(16,5,32,0) 72%)!important;
  filter:blur(7px)!important;
}
body.tsg-site-shell .tsg-article-journal__book{
  position:relative!important;
  z-index:2!important;
  width:330px!important;
  height:208px!important;
  transform:rotateX(8deg) rotateZ(-2deg)!important;
  transform-style:preserve-3d!important;
  animation:tsgJournalOpen 7.2s ease-in-out infinite!important;
}
body.tsg-site-shell .tsg-article-journal__page,
body.tsg-site-shell .tsg-article-journal__flip{
  position:absolute!important;
  top:0!important;
  width:50%!important;
  height:100%!important;
  box-sizing:border-box!important;
  background:linear-gradient(145deg,#fffefb 0%,#f4eff8 100%)!important;
  border:1px solid rgba(59,30,123,.13)!important;
  box-shadow:0 13px 30px rgba(20,7,40,.18)!important;
  overflow:hidden!important;
}
body.tsg-site-shell .tsg-article-journal__page.is-left{
  left:0!important;
  border-radius:13px 3px 3px 13px!important;
  transform-origin:right center!important;
  transform:rotateY(5deg)!important;
  padding:20px 17px!important;
}
body.tsg-site-shell .tsg-article-journal__page.is-right{
  right:0!important;
  border-radius:3px 13px 13px 3px!important;
  transform-origin:left center!important;
  transform:rotateY(-5deg)!important;
  padding:20px 17px!important;
}
body.tsg-site-shell .tsg-article-journal__page:after{
  content:""!important;
  position:absolute!important;
  top:0!important;bottom:0!important;width:20px!important;
  background:linear-gradient(90deg,rgba(50,24,86,.10),rgba(50,24,86,0))!important;
  pointer-events:none!important;
}
body.tsg-site-shell .tsg-article-journal__page.is-right:after{left:0!important}
body.tsg-site-shell .tsg-article-journal__page.is-left:after{right:0!important;transform:scaleX(-1)!important}
body.tsg-site-shell .tsg-article-journal__page .masthead{
  display:block!important;
  margin-bottom:15px!important;
  color:#3B1E7B!important;
  font:900 18px/1 Montserrat,Poppins,sans-serif!important;
  letter-spacing:.14em!important;
  border-bottom:3px solid #8FAF74!important;
  padding-bottom:8px!important;
}
body.tsg-site-shell .tsg-article-journal__page .headline{
  display:block!important;width:84%!important;height:17px!important;border-radius:3px!important;background:#3B1E7B!important;margin-bottom:16px!important;opacity:.88!important;
}
body.tsg-site-shell .tsg-article-journal__page i,
body.tsg-site-shell .tsg-article-journal__flip i{
  display:block!important;height:5px!important;border-radius:999px!important;background:rgba(59,30,123,.22)!important;margin:8px 0!important;
}
body.tsg-site-shell .tsg-article-journal__page i:nth-of-type(1){width:95%!important}
body.tsg-site-shell .tsg-article-journal__page i:nth-of-type(2){width:78%!important}
body.tsg-site-shell .tsg-article-journal__page i:nth-of-type(3){width:90%!important}
body.tsg-site-shell .tsg-article-journal__page b,
body.tsg-site-shell .tsg-article-journal__flip b{
  display:inline-block!important;width:42%!important;height:48px!important;margin:10px 4% 0 0!important;border-radius:7px!important;background:linear-gradient(135deg,rgba(143,175,116,.28),rgba(91,45,141,.12))!important;
}
body.tsg-site-shell .tsg-article-journal__flip{
  right:0!important;
  transform-origin:left center!important;
  border-radius:3px 13px 13px 3px!important;
  padding:24px 17px!important;
  backface-visibility:visible!important;
  transform-style:preserve-3d!important;
  pointer-events:none!important;
}
body.tsg-site-shell .tsg-article-journal__flip span{display:block!important;width:70%!important;height:14px!important;border-radius:3px!important;background:#8FAF74!important;margin-bottom:16px!important}
body.tsg-site-shell .tsg-article-journal__flip.is-first{z-index:6!important;animation:tsgJournalPageOne 7.2s cubic-bezier(.55,.04,.28,1) infinite!important}
body.tsg-site-shell .tsg-article-journal__flip.is-second{z-index:5!important;animation:tsgJournalPageTwo 7.2s cubic-bezier(.55,.04,.28,1) infinite!important;animation-delay:.55s!important}
body.tsg-site-shell .tsg-article-journal__pen{
  position:absolute!important;z-index:8!important;right:8px!important;bottom:19px!important;font-size:34px!important;filter:drop-shadow(0 7px 10px rgba(20,7,40,.18))!important;animation:tsgJournalPen 5s ease-in-out infinite!important;
}
@keyframes tsgJournalOpen{0%,8%,100%{transform:rotateX(8deg) rotateZ(-2deg) scale(.96)}18%,82%{transform:rotateX(8deg) rotateZ(-2deg) scale(1)}}
@keyframes tsgJournalPageOne{0%,16%{transform:rotateY(0deg);opacity:1}24%{transform:rotateY(-32deg);opacity:1}32%{transform:rotateY(-88deg);opacity:1}40%{transform:rotateY(-142deg);opacity:1}47%{transform:rotateY(-178deg);opacity:1}50%{transform:rotateY(-183deg);opacity:1}54%,63%{transform:rotateY(-180deg);opacity:1}70%,100%{transform:rotateY(-180deg);opacity:0}}
@keyframes tsgJournalPageTwo{0%,27%{transform:rotateY(0deg);opacity:0}31%{transform:rotateY(0deg);opacity:1}39%{transform:rotateY(-34deg);opacity:1}47%{transform:rotateY(-92deg);opacity:1}55%{transform:rotateY(-146deg);opacity:1}62%{transform:rotateY(-179deg);opacity:1}65%{transform:rotateY(-183deg);opacity:1}69%,79%{transform:rotateY(-180deg);opacity:1}86%,100%{transform:rotateY(-180deg);opacity:0}}
@keyframes tsgJournalPen{0%,100%{transform:translate(0,0) rotate(-7deg)}50%{transform:translate(-7px,-4px) rotate(2deg)}}

body.tsg-site-shell .tsg-article-rich-builder,
body.tsg-site-shell .tsg-internal-rich-content,
body.tsg-site-shell .tsg-internal-gallery-editor{
  border:1px solid rgba(59,30,123,.09)!important;
  border-radius:16px!important;
  padding:15px!important;
  background:#fbfafc!important;
}
body.tsg-site-shell .tsg-article-rich-builder__head{
  display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;margin-bottom:12px!important;
}
body.tsg-site-shell .tsg-article-rich-builder__head>div{display:grid!important;gap:3px!important}
body.tsg-site-shell .tsg-article-rich-builder__head span{font-size:8px!important;font-weight:800!important;letter-spacing:.12em!important;color:#8FAF74!important}
body.tsg-site-shell .tsg-article-rich-builder__head strong{font-size:12px!important;color:#3B1E7B!important}
body.tsg-site-shell [data-tsg-add-text-block],
body.tsg-site-shell .tsg-internal-add-block{
  border:0!important;border-radius:999px!important;background:#efe7f8!important;color:#54298e!important;padding:9px 13px!important;font:700 10px/1 Poppins,sans-serif!important;cursor:pointer!important;
}
body.tsg-site-shell .tsg-article-rich-builder__blocks{display:grid!important;gap:10px!important}
body.tsg-site-shell .tsg-article-rich-builder__block{position:relative!important}
body.tsg-site-shell .tsg-article-rich-builder__block textarea{width:100%!important;min-height:110px!important;padding-right:44px!important}
body.tsg-site-shell .tsg-article-rich-builder__block .is-remove{position:absolute!important;right:9px!important;top:9px!important;width:28px!important;height:28px!important;border:0!important;border-radius:999px!important;background:#f4e9ed!important;color:#a24862!important;font-size:19px!important;cursor:pointer!important}
body.tsg-site-shell .tsg-article-gallery-field small{display:block!important;margin-top:5px!important;color:#81758a!important;font-size:9px!important}
body.tsg-site-shell .tsg-internal-gallery-existing{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(110px,1fr))!important;gap:10px!important;margin-top:14px!important}
body.tsg-site-shell .tsg-internal-gallery-existing label{display:grid!important;gap:6px!important;padding:7px!important;border:1px solid rgba(59,30,123,.08)!important;border-radius:12px!important;background:#fff!important}
body.tsg-site-shell .tsg-internal-gallery-existing img{width:100%!important;aspect-ratio:1/1!important;object-fit:cover!important;border-radius:8px!important}
body.tsg-site-shell .tsg-internal-gallery-existing span{font-size:9px!important;color:#766a80!important}

body.tsg-site-shell .tsg-article-extra-texts{display:grid!important;gap:18px!important;margin-top:26px!important}
body.tsg-site-shell .tsg-article-extra-text{padding:22px 24px!important;border-left:3px solid #8FAF74!important;border-radius:0 16px 16px 0!important;background:linear-gradient(90deg,rgba(143,175,116,.08),rgba(255,255,255,0))!important}
body.tsg-site-shell .tsg-article-gallery{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px!important;margin-top:28px!important}
body.tsg-site-shell .tsg-article-gallery figure{margin:0!important;border-radius:20px!important;overflow:hidden!important;background:#f5f2f8!important;box-shadow:0 10px 28px rgba(59,30,123,.06)!important}
body.tsg-site-shell .tsg-article-gallery img{display:block!important;width:100%!important;aspect-ratio:4/3!important;object-fit:cover!important;transition:transform .35s ease!important}
@media(hover:hover) and (pointer:fine){body.tsg-site-shell .tsg-article-gallery figure:hover img{transform:scale(1.02)!important}}
@media(max-width:900px){
  body.tsg-site-shell .tsg-universal-header.is-visual-journal .tsg-universal-header__visual{width:100%!important;min-height:250px!important}
  body.tsg-site-shell .tsg-article-journal{transform:scale(.88)!important}
}
@media(max-width:620px){
  body.tsg-site-shell .tsg-article-gallery{grid-template-columns:1fr!important}
  body.tsg-site-shell .tsg-article-journal{width:310px!important;transform:scale(.75)!important}
  body.tsg-site-shell .tsg-article-rich-builder__head{align-items:flex-start!important;flex-direction:column!important}
}
@media(prefers-reduced-motion:reduce){
  body.tsg-site-shell .tsg-article-journal__book,
  body.tsg-site-shell .tsg-article-journal__flip,
  body.tsg-site-shell .tsg-article-journal__pen{animation:none!important}
  body.tsg-site-shell .tsg-article-journal__flip{display:none!important}
}

/* =========================================================
   V1.7.67 — Agenda : chevauchement maîtrisé
   + header articles : vrai journal papier
   ========================================================= */

/* Agenda desktop : seulement un léger recouvrement visuel (~4 %). */
@media (min-width:821px){
  body .tsg-agenda-speciality__feature{
    width:50.5%!important;
    z-index:1!important;
  }
  body .tsg-agenda-speciality__menu{
    width:53.5%!important;
    right:0!important;
    top:78px!important;
    margin-left:0!important;
    z-index:4!important;
    background:rgba(255,255,255,.955)!important;
    border-color:rgba(59,30,123,.045)!important;
    box-shadow:0 18px 42px rgba(33,25,47,.075)!important;
    backdrop-filter:blur(11px)!important;
    -webkit-backdrop-filter:blur(11px)!important;
  }
}
@media (min-width:821px) and (max-width:1050px){
  body .tsg-agenda-speciality__feature{width:51%!important}
  body .tsg-agenda-speciality__menu{width:54%!important}
}
@media (max-width:820px){
  body .tsg-agenda-speciality__menu{margin-left:0!important}
}

/* Le visuel d'article devient un journal papier ouvert, plus large et plus plat. */
body.tsg-site-shell .tsg-universal-header.is-visual-journal .tsg-universal-header__visual{
  width:min(42vw,470px)!important;
  min-height:286px!important;
  perspective:1400px!important;
}
body.tsg-site-shell .tsg-article-journal{
  width:430px!important;
  height:250px!important;
}
body.tsg-site-shell .tsg-article-journal:before{
  width:365px!important;
  height:92px!important;
  left:32px!important;
  bottom:8px!important;
  background:radial-gradient(ellipse,rgba(16,5,32,.24),rgba(16,5,32,0) 72%)!important;
}
body.tsg-site-shell .tsg-article-journal__book{
  width:374px!important;
  height:214px!important;
  transform:rotateX(4deg) rotateZ(-1.2deg)!important;
  animation:tsgNewspaperFloat 7.4s ease-in-out infinite!important;
}
body.tsg-site-shell .tsg-article-journal__book:before{
  content:"LE JOURNAL MUNICIPAL"!important;
  position:absolute!important;
  z-index:9!important;
  left:16px!important;
  right:16px!important;
  top:11px!important;
  height:26px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  color:#321665!important;
  font:900 12px/1 Montserrat,Poppins,sans-serif!important;
  letter-spacing:.16em!important;
  border-top:2px solid rgba(50,22,101,.76)!important;
  border-bottom:2px solid rgba(50,22,101,.76)!important;
  background:rgba(255,255,255,.72)!important;
  pointer-events:none!important;
}
body.tsg-site-shell .tsg-article-journal__book:after{
  content:""!important;
  position:absolute!important;
  z-index:10!important;
  top:0!important;
  bottom:0!important;
  left:50%!important;
  width:1px!important;
  background:linear-gradient(180deg,transparent 2%,rgba(57,39,67,.18) 12%,rgba(57,39,67,.23) 50%,rgba(57,39,67,.15) 88%,transparent 98%)!important;
  box-shadow:-3px 0 7px rgba(44,25,54,.05),3px 0 7px rgba(255,255,255,.65)!important;
  pointer-events:none!important;
}
body.tsg-site-shell .tsg-article-journal__page,
body.tsg-site-shell .tsg-article-journal__flip{
  background:
    linear-gradient(rgba(255,255,255,.15),rgba(255,255,255,.15)),
    linear-gradient(145deg,#fffdf5 0%,#f7f2e7 100%)!important;
  border:1px solid rgba(67,49,74,.09)!important;
  box-shadow:0 12px 26px rgba(20,7,40,.13)!important;
}
body.tsg-site-shell .tsg-article-journal__page.is-left,
body.tsg-site-shell .tsg-article-journal__page.is-right{
  border-radius:2px!important;
  padding:48px 14px 14px!important;
}
body.tsg-site-shell .tsg-article-journal__page.is-left{
  transform:rotateY(2.2deg)!important;
}
body.tsg-site-shell .tsg-article-journal__page.is-right{
  transform:rotateY(-2.2deg)!important;
}
body.tsg-site-shell .tsg-article-journal__page:after{
  width:12px!important;
  opacity:.55!important;
}
body.tsg-site-shell .tsg-article-journal__page .masthead{
  margin-bottom:10px!important;
  color:#321665!important;
  font-size:13px!important;
  letter-spacing:.12em!important;
  border-bottom:1px solid rgba(50,22,101,.45)!important;
  padding-bottom:5px!important;
}
body.tsg-site-shell .tsg-article-journal__page .headline{
  width:92%!important;
  height:12px!important;
  margin-bottom:10px!important;
  border-radius:1px!important;
  background:#34203f!important;
  opacity:.82!important;
}
body.tsg-site-shell .tsg-article-journal__page i,
body.tsg-site-shell .tsg-article-journal__flip i{
  height:3px!important;
  border-radius:0!important;
  background:rgba(52,39,58,.34)!important;
  margin:5px 0!important;
}
body.tsg-site-shell .tsg-article-journal__page b,
body.tsg-site-shell .tsg-article-journal__flip b{
  width:45%!important;
  height:40px!important;
  margin:8px 3% 0 0!important;
  border-radius:2px!important;
  background:
    linear-gradient(135deg,rgba(143,175,116,.28),rgba(91,45,141,.08)),
    repeating-linear-gradient(0deg,rgba(255,255,255,.20) 0 2px,transparent 2px 5px)!important;
}
body.tsg-site-shell .tsg-article-journal__flip{
  border-radius:2px!important;
  padding:49px 14px 14px!important;
  background:linear-gradient(145deg,#fffdf5 0%,#f3ecdf 100%)!important;
}
body.tsg-site-shell .tsg-article-journal__flip span{
  width:82%!important;
  height:9px!important;
  border-radius:1px!important;
  background:#7f9f67!important;
  margin-bottom:10px!important;
}
body.tsg-site-shell .tsg-article-journal__pen{
  right:13px!important;
  bottom:17px!important;
  font-size:29px!important;
  opacity:.9!important;
}
@keyframes tsgNewspaperFloat{
  0%,100%{transform:rotateX(4deg) rotateZ(-1.2deg) translateY(2px) scale(.985)}
  18%,82%{transform:rotateX(4deg) rotateZ(-1.2deg) translateY(-2px) scale(1)}
}
@media(max-width:620px){
  body.tsg-site-shell .tsg-article-journal{width:340px!important;transform:scale(.76)!important}
}

/* =========================================================
   V1.7.68 — Agenda : chevauchement réellement visible
   ========================================================= */
@media (min-width:1051px){
  body .tsg-agenda-speciality__feature{
    width:51.5%!important;
    z-index:2!important;
  }
  body .tsg-agenda-speciality__menu{
    width:55%!important;
    right:0!important;
    transform:translateX(-34px)!important;
    z-index:5!important;
  }
}
@media (min-width:821px) and (max-width:1050px){
  body .tsg-agenda-speciality__feature{
    width:52%!important;
    z-index:2!important;
  }
  body .tsg-agenda-speciality__menu{
    width:55%!important;
    right:0!important;
    transform:translateX(-22px)!important;
    z-index:5!important;
  }
}
@media (max-width:820px){
  body .tsg-agenda-speciality__menu{
    transform:none!important;
  }
}


/* =========================================================
   V1.7.70 — Base 1.7.68 : Agenda PC plus compact
   Le chevauchement de la 1.7.68 est conservé.
   ========================================================= */
@media (min-width:1051px){
  body .tsg-agenda-speciality{
    padding:50px 0 60px!important;
  }
  body .tsg-agenda-speciality__head{
    margin-bottom:26px!important;
  }
  body .tsg-agenda-speciality__stage{
    min-height:535px!important;
    max-width:1460px!important;
    padding-top:8px!important;
  }
  body .tsg-agenda-speciality__feature{
    width:min(48%,520px)!important;
    max-width:520px!important;
    height:auto!important;
    aspect-ratio:1 / 1!important;
    top:8px!important;
    z-index:2!important;
  }
  body .tsg-agenda-speciality__menu{
    width:55%!important;
    top:56px!important;
    padding:14px!important;
    transform:translateX(-34px)!important;
    z-index:5!important;
  }
  body .tsg-agenda-speciality__item{
    min-height:86px!important;
    grid-template-columns:74px minmax(0,1fr) 40px!important;
    gap:13px!important;
    padding:8px 10px!important;
  }
  body .tsg-agenda-speciality__thumb{
    width:70px!important;
    height:70px!important;
    border-radius:14px!important;
  }
  body .tsg-agenda-speciality__item-copy strong{
    font-size:16px!important;
  }
  body .tsg-agenda-speciality__footer{
    padding:10px 8px 0!important;
  }
  body .tsg-agenda-speciality__footer .tsg-front-add,
  body .tsg-agenda-speciality__footer>a{
    min-height:40px!important;
  }
}

@media (min-width:821px) and (max-width:1050px){
  body .tsg-agenda-speciality{
    padding:46px 0 56px!important;
  }
  body .tsg-agenda-speciality__head{
    margin-bottom:24px!important;
  }
  body .tsg-agenda-speciality__stage{
    min-height:500px!important;
  }
  body .tsg-agenda-speciality__feature{
    width:min(50%,465px)!important;
    max-width:465px!important;
    height:auto!important;
    aspect-ratio:1 / 1!important;
    top:8px!important;
  }
  body .tsg-agenda-speciality__menu{
    width:56%!important;
    top:48px!important;
    transform:translateX(-22px)!important;
    padding:12px!important;
  }
  body .tsg-agenda-speciality__item{
    min-height:80px!important;
    grid-template-columns:68px minmax(0,1fr) 38px!important;
    gap:11px!important;
    padding:7px 9px!important;
  }
  body .tsg-agenda-speciality__thumb{
    width:64px!important;
    height:64px!important;
  }
  body .tsg-agenda-speciality__footer{
    padding-top:8px!important;
  }
}


/* =========================================================
   V1.7.71 — Agenda compact : chevauchement léger constant
   Base visuelle conservée depuis la 1.7.70.
   ========================================================= */
@media (min-width:1051px){
  body .tsg-agenda-speciality__menu{
    left:calc(min(48%, 520px) - 28px)!important;
    right:auto!important;
    width:calc(100% - min(48%, 520px) + 28px)!important;
    transform:none!important;
    z-index:6!important;
  }
}

@media (min-width:821px) and (max-width:1050px){
  body .tsg-agenda-speciality__menu{
    left:calc(min(50%, 465px) - 18px)!important;
    right:auto!important;
    width:calc(100% - min(50%, 465px) + 18px)!important;
    transform:none!important;
    z-index:6!important;
  }
}

@media (max-width:820px){
  body .tsg-agenda-speciality__menu{
    left:auto!important;
    right:auto!important;
    width:auto!important;
    transform:none!important;
  }
}
