/* ==========================================================
   Annuaire des entreprises d'usinage — Feuille de style globale
   Style : noir & blanc.
   Modifie librement ces variables pour changer l'apparence du site.
   ========================================================== */

:root {
  --color-bg: #fff;
  --color-bg-secondary: #FCF8F5;
  --color-block-bg: #ffffff;
  --color-primary: #1F2431;
  --color-primary-hover: #1F2431;
  --color-text: #1F2431;
  --color-text-light: #797E89;
  --color-text-darker: #5E6166;
  --color-border: #E5E5E5;
  --color-accent: #414EFF;
  --color-secondary: #FBED5D;
  --color-tertiary: #FBED5D;
  --radius: 0px;
  --block-padding: 40px;
  --max-width: 1120px;
  --color-bg-admin: #F9F9F9;
  --font-main: "Google Sans", sans-serif;
}

* { box-sizing: border-box; }
.skip-link { position: absolute; left: -9999px; top: 0; z-index: 2000; background: var(--color-primary); color: #fff; padding: 12px 20px; font-size: 15px; text-decoration: none; }
.skip-link:focus { left: 0; }
.bg-secondary { background: var(--color-bg-secondary); }
body.page-admin .bg-secondary { background: var(--color-bg-admin); }

html { margin: 0; padding: 0; }
body { margin: 0; padding: 72px 0 0; background: var(--color-bg); color: var(--color-text); line-height: 1.5; overflow-x: hidden; font-family: "Google Sans", sans-serif; font-size:18px; font-optical-sizing: auto; font-weight: 400; font-style: normal; font-variation-settings: "GRAD" 0; }
.page-home { background: var(--color-bg); }
body.page-admin { background: var(--color-bg-admin); overflow-x: clip; }
.page-home .card-post { border: none; background: none; }
h1{font-family: "General Sans", sans-serif;font-optical-sizing: auto; font-size:60px;font-weight:900; line-height:1.0;margin:0 auto;text-transform:uppercase;text-align:left;}
h2{font-family: "General Sans", sans-serif;font-optical-sizing: auto; font-size:44px;font-weight:900; letter-spacing:-1px; line-height:1.1;margin:0 auto;text-transform:uppercase;text-align:left;}
h3{font-family: "Kanit", sans-serif;font-optical-sizing: auto; font-size:22px;font-weight:500; letter-spacing:0.3px; line-height:1.1;margin:0;text-transform:uppercase;text-align:left;}
h4{font-family: "General Sans", sans-serif;font-optical-sizing: auto; font-size:18px;font-weight:600; line-height:1.1;margin:0 auto;text-transform:uppercase;text-align:left;}

a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }

.container { max-width: var(--max-width); margin: 0 auto; padding: 0 20px; }
.index-title {font-size:52px;font-weight:400;line-height:1;display:block; padding:30px 0;}

.block { background: var(--color-block-bg); border-radius: var(--radius); padding: var(--block-padding); border: 1px solid var(--color-border); }

.block1 { background: var(--color-bg-secondary); border-radius:0; padding:20px; border-top: 1px solid #E5E5E5; border-left: 1px solid #E5E5E5; border-right: 1px solid #E5E5E5; }

.btn { display: inline-block; background: var(--color-primary); color: #fff; border: 1px solid var(--color-primary); padding: 15px 20px; border-radius: 0px; font-size: 14px; font-weight: 500; cursor: pointer; text-align: center; font-family: var(--font-main); }
.btn:hover { background: var(--color-primary-hover); border-color: var(--color-primary-hover); }
.btn-outline { background: transparent; color: var(--color-text); border: 1px solid var(--color-text); }
.btn-outline:hover { background: var(--color-text); color: #fff; }
.btn-outline-static:hover { background: transparent; }
.btn-sm { padding: 10px 16px; font-size: 15px; }
.btn-bo { padding: 10px 16px; font-size: 15px; background:transparent; border:0px solid #fff; color:#fff;display: flex; align-items: center; justify-content: space-between; gap:8px;}
.btn-block { display: block; width: 100%; }
.medium15 {font-size:15px; font-weight:400; line-height:1.3;}

.site-header { background: var(--color-primary); position: fixed; top: 0; left: 0; right: 0; z-index: 1100; }
.site-header .container { display: flex; align-items: center; justify-content: space-between; height: 72px; position: relative; max-width: var(--max-width); }
.logo img { transition: height .3s ease; filter: brightness(0) invert(1); height: 36px;}
.logo { font-size: 20px; font-weight: 800; color: #fff; letter-spacing: -0.02em; flex-shrink: 0; }
.logo span { color: #fff; font-weight: 500; }
.main-nav { display: flex; align-items: center; gap: 30px; flex: 1; }
.main-nav a { font-size: 14px; font-weight: 600; color: #fff; }
.main-nav a:hover, .main-nav a.active { color: #fff; }
.nav-mobile-account { display: none; }
.site-header .nav-actions { display: flex; align-items: center; gap: 12px; }
.site-header .nav-actions .btn { background: #fff; color: var(--color-primary); border: none; font-size: 14px; font-weight: 600; padding: 10px 16px; }
.site-header .nav-actions .btn:hover {  color: var(--color-primary); }
.site-header .nav-actions .btn-outline {  border-color: #fff; }
.site-header .nav-actions .btn-outline:hover { color: var(--color-primary); }
.nav-link-white{font-size:15px;font-weight:600;color:#fff;padding:10px 16px;display:inline-flex;align-items:center;transition:opacity .15s}
.nav-link-white:hover{opacity:.8}
.nav-dropdown { position: relative; }
.nav-dropdown::after { content: ''; position: absolute; top: 100%; left: 0; right: 0; height: 12px; }
.nav-dropdown-trigger { font-size: 15px; font-weight: 600; color: #fff; background: none; border: none; cursor: pointer; padding: 0; font-family: inherit; white-space: nowrap; }
.nav-dropdown-trigger:hover, .nav-dropdown-trigger.active { color: #fff; }
.nav-dropdown-menu { display: none; position: absolute; top: calc(100% + 8px); left: 65%; transform: translateX(-50%); background: #fff; padding: 10px 0; min-width: 160px; z-index: 1100; }
.nav-dropdown:hover .nav-dropdown-menu { display: block; }
.nav-dropdown-menu a { display: block; padding: 6px 16px; font-size: 15px; font-weight: 500; color: var(--color-text) !important; white-space: nowrap; }


.nav-toggle { display: none; flex-direction: column; justify-content: center; gap: 5px; width: 30px; height: 30px; background: none; border: none; cursor: pointer; padding: 0; }
.nav-toggle span { display: block; height: 2px; width: 100%; background: #fff; border-radius: 0px; transition: transform .3s ease, opacity .3s ease; }

.site-footer { background: var(--color-primary); border-top: 1px solid #333; margin-top: 60px; padding: 80px 0 40px; color: #fff; }
.site-footer .container { max-width: 1510px; }
.footer-grid { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; gap: 80px; }
.footer-grid h4 { margin: 0 0 12px; font-size: 18px; color: #fff; font-weight:500; }
.footer-grid ul { list-style: none; padding: 0; margin: 0; }
.footer-grid li { margin-bottom: 6px; }
.footer-grid a { color: #fff; font-size: 15px; }
.footer-bottom { display:flex; justify-content:space-between; align-items:center; color: #fff; font-size: 13px; margin-top: 160px; padding-top: 20px; }
.footer-bottom a { color:#fff; text-decoration:none; margin-left:15px; }
.footer-bottom a:first-child { margin-left:0; }

.search-engine { background: #fff; border-radius:0; padding: 14px; border: 0px solid var(--color-border); display: flex; gap: 8px;  margin: 0 auto; box-shadow: 0 2px 12px rgba(0,0,0,.1); }
.search-engine input { flex: 1; border: none; border-radius: 0px; padding: 12px 16px; font-size: 19px; font-weight:400; color: var(--color-text); background: #fff; font-family: var(--font-main); }
.search-engine input:focus { outline: none; }
.search-engine .btn { flex: 0 0 auto; padding: 22px 36px; }
.search-submit-btn .search-btn-icon { display: none; }

.section { padding-top: 40px; padding-bottom: 40px; font-size:17px; line-height:1.3; }
.section li{list-style: none; display:block; }
.section-title {margin: 0 0 0px; display: flex; align-items: center; justify-content: space-between; }
.section-title h2 {font-size:46px; font-weight:600; letter-spacing:-1.5px; line-height:1; }
.section-title a { font-size: 15px; color: var(--color-text); font-weight: 500; text-decoration: underline; text-underline-offset: 3px; }
.section-title .btn { text-decoration: none; color: #fff; }
.x3 {text-align:center; max-width:900px;margin:0 auto;display:block;}

.grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px; }
.grid-0 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 5px; }
.featured-text-block{ }
.featured-text-block h2{margin:0 0 12px; font-size:38px; line-height:1.1;}
.featured-text-block p{color:var(--color-text-light);font-size:15px;margin:0 0 16px;line-height:1.5}
.title-card { font-size: 22px; font-weight: 500; margin: 0; line-height: 1.2; letter-spacing:-0.2px; }
.article-title-card { font-size: 24px; font-weight: 600; margin: 0; line-height: 1.2; letter-spacing:-0.2px; }

.card-company { background: var(--color-block-bg); border-radius: var(--radius); border: 0px solid var(--color-border); display: block; position: relative; min-width: 0; overflow: hidden; }
.card-company .thumb { height: 480px; background-size: cover; background-position: center; background-color: #ececee; border-radius: var(--radius) var(--radius) 0 0; overflow: hidden; position: relative; }
.card-company .thumb .fav-btn { position: absolute; top: 10px; right: 10px; z-index: 2; }
.card-company .body { padding: 8px 0 16px 0; }
.card-company h3 { margin: 0 0 2px; }
.card-company .loc { color: var(--color-text-light); font-size: 14px; font-weight:500; margin-bottom: 10px; }
.card-company .tags { flex-wrap: nowrap; overflow: hidden; position: relative; padding-top:0px; }
.card-company-name{position:absolute;top:0;left:0;right:0;padding:20px;font-size:26px; line-height:1.2;font-weight:600;color:#fff;z-index:2;background:linear-gradient(180deg,rgba(0,0,0,.55) 0%,transparent 100%)}
.card-company-bottom{position:absolute;bottom:0;left:0;right:0;padding:20px;display:flex;align-items:center;justify-content:space-between;z-index:2;background:linear-gradient(0deg,rgba(0,0,0,.55) 0%,transparent 100%)}
.card-company-city{font-size:16px;font-weight:500;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}
.card-company-chevron{width:40px;height:40px;background:var(--color-tertiary);display:flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:2px}
.card-company-chevron svg{width:18px;height:18px;color:var(--color-primary)}
.tags { display: flex; flex-wrap: wrap; gap: 6px; }
.tag { background: #F5F4FF; color: var(--color-text); border: none; font-size: 13px; font-weight:500; padding: 3px 8px; border-radius: 0px; white-space: nowrap; }
.tag-more { display: inline-flex; align-items: center; position: relative; }
.tag-more-popup { display: none; position: fixed; background: var(--color-primary); color: #fff; padding: 10px 14px; min-width: 160px; z-index: 9999; white-space: nowrap; }
.tag-more-popup span { display: block; font-size: 14px; padding: 3px 0; }
.tag-more:hover .tag-more-popup, .tag-popup:hover .tag-more-popup { display: block; }
.tag-cert { display: inline-flex; align-items: center; position: relative; }
.tag-cert img { width: 16.5px; height: 16.5px; flex-shrink: 0; }
.tag-cert-popup { display: none; position: fixed; background: var(--color-primary); color: #fff; padding: 10px 14px; min-width: 220px; max-width: 300px; z-index: 9999; white-space: normal; font-size: 14px; line-height: 1.2; border-radius: 4px; }
.tag-cert:hover .tag-cert-popup { display: block; }

.devis-compliance-label { display: inline-flex; align-items: center; gap: 6px; position: relative; cursor: pointer; }
.devis-compliance-info { color: var(--color-primary); flex-shrink: 0; }
.devis-compliance-info:hover .tag-cert-popup,
.devis-compliance-info:focus-within .tag-cert-popup { display: block; }

.claimed-badge { display: inline-flex; align-items: center; gap: 6px; background: var(--color-text); color: #fff; font-size: 16px; font-weight: 700; padding: 5px 12px; border-radius: 100px; }
.claimed-badge svg { width: 12px; height: 12px; }

.card-post { background: var(--color-block-bg); border-radius: var(--radius); overflow: hidden; border: 1px solid var(--color-border); display: block; }
.card-post .thumb { height: 260px; background-color: #ececee; position: relative; overflow: hidden; display: flex; align-items: center; justify-content: center; }
.card-post .thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.card-post .body { padding: 16px 0; }
.card-post .kicker { text-transform: uppercase; font-size: 11px; font-weight: 700; letter-spacing: .06em; color: var(--color-text-light); margin-bottom: 8px; }
.card-post .date { color: var(--color-text-light); font-size: 12px; margin-bottom: 8px; }
.card-post h3 { margin: 0 0 8px; }
.card-post p { color: var(--color-text-light); font-size: 14px; margin: 0; }

.article-kicker { text-transform: uppercase; font-size: 12px; font-weight: 700; letter-spacing: .08em; color: var(--color-text-light); margin-bottom: 14px; }
.article-title { font-size: 60px; letter-spacing:-1.5px; line-height:1.1; margin: 30px 0 20px; font-weight: 600; }
.article-subtitle { font-size: 17px; font-weight: 400; line-height: 1.4; margin: 0 0 24px; white-space: pre-line; }
.article-byline { font-size: 13px; color: var(--color-text-darker); padding-bottom: 10px;}
.article-hero-img { border-radius: var(--radius); margin-bottom:30px; width: 100%; object-fit: cover; max-height: 480px; }
.article-caption { font-size: 13px; color: var(--color-text-light); font-style: italic; margin: 0 0 40px; }
.article-body { font-size: 17px; line-height: 1.4;}
.article-body p { margin: 0 0 22px; }
.article-body span[style*="font-size"]{line-height:inherit}




.region-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; margin-top:40px }
.region-card { background: none; border: none; padding: 0; }
.ajouter-entreprise-box { margin-top: 40px; }
.home-article-grid .thumb { position: relative; overflow: hidden; }
.home-article-grid .thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.region-card-img { display: block; width: 100%; height: 200px; background-size: cover; background-position: center; margin-bottom: 10px; }
.region-card h4 { margin: 0 0 5px; font-size: 20px; }
.region-card ul { list-style: none; margin: 0; padding: 0; }
.region-card li { font-size: 16px; margin-bottom: 0px; }
.region-card li a { color: var(--color-text); }
.region-card li a:hover { color: var(--color-text); text-decoration: underline; }

.directory-layout { display: grid; grid-template-columns: 300px 1fr; gap: 24px; align-items: start; }
.filters-block { background: none; border: none; padding: 0; }
.filters-block h3 { margin-top: 0; font-size: 16px; }
.filter-group { margin-bottom: 18px; }
.filter-group label:not(.expertise-tag) { display: block; font-size: 16px; font-weight: 500; margin-bottom: 3px; text-align: left; }
.filter-group select, .filter-group input { width: 100%; border: 1px solid var(--color-border); border-radius: 0px; padding: 10px 12px; font-size: 14px; font-family: var(--font-main); }
.expertise-tags { display: flex; flex-wrap: wrap; gap: 3px; max-height: 200px; overflow-y: auto; }
.expertise-tag { display: inline-flex; align-items: center; gap: 0; padding: 3px 8px; background:#EFEEFD; border-radius: 0px; color:var(--color-text); font-size: 12px; font-weight: 500; cursor: pointer; transition: background .15s, color .15s, border-color .15s; user-select: none; white-space: nowrap; }
.expertise-tag input[type="checkbox"] { position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none; }
.expertise-tag:hover { }
.expertise-tag.active,
.expertise-tag:has(input:checked) { background:#EFEEFD; color: var(--color-text);}

.results-count { color: var(--color-text); font-size: 15px; font-weight:500; }

.result-card {display: flex; gap: 0px; cursor: pointer; transition: border-color .15s ease; position: relative; }
.result-card .photo { flex: 0 0 240px; height: 160px; background-size: cover; background-position: center;}
.result-card .info { flex: 1; display: flex; flex-direction: column; padding: 16px 20px; }
.result-card h3 {margin:0;white-space:nowrap; overflow:hidden; text-overflow:ellipsis; width:0; min-width:100%; }
.result-card .loc { color: var(--color-text-light); font-size: 15px;margin-bottom:12px;}
.result-card .desc { color: var(--color-text); font-size:15px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.result-card .bottom-row { display: flex; align-items: center; justify-content: flex-end; }

.filter-toggle { display: flex; align-items: center; justify-content: space-between; cursor: pointer; user-select: none; }
.filter-toggle label { margin-bottom: 0; cursor: pointer; }
.filter-options-wrap { overflow: hidden; max-height: 600px; transition: max-height .35s ease, opacity .25s ease; opacity: 1; }
.filter-options-wrap.collapsed { max-height: 0; opacity: 0; }
.chevron-rotated { transform: rotate(180deg); transition: transform .3s ease; }
.chevron-rotated.rotated { transform: rotate(0deg); }

.pagination { display: flex; gap: 8px; justify-content: center; margin-top: 20px; }
.pagination a, .pagination span { display: inline-block; padding: 8px 14px; border-radius: 0px; border: 1px solid var(--color-border); font-size: 14px; }
.pagination .active { background: var(--color-primary); color: #fff; border-color: var(--color-primary); }

/* ===== Fiche breadcrumb ===== */
.fiche-breadcrumb{display:flex;align-items:center;gap:8px;padding:20px 0 0 0;font-size:14px;}
.fiche-breadcrumb a{text-decoration:none;transition:color .15s;display:inline-flex;align-items:center}
.fiche-breadcrumb svg{width:14px;height:14px;flex-shrink:0}
.fiche-breadcrumb span{color:var(--color-text);font-weight:500}
.fiche-breadcrumb-home{width:16px;height:16px}

/* ===== Fiche info ===== */
.fiche-info{display:flex;align-items:center;gap:20px;padding:24px 0;min-width:0}
.fiche-info-logo{width:100px;height:100px;object-fit:contain;border-radius:0;flex-shrink:0;background:#fff;padding:0px;}
.fiche-info-text{flex:1;min-width:0}
.fiche-info-name{font-family: "Google Sans", sans-serif;font-size:30px;font-weight:700;margin:0 0 4px;line-height:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fiche-info-meta{display:flex;align-items:center;flex-wrap:wrap;gap:0;font-size:15px;min-width:0;overflow:hidden; padding-bottom:1px;}
.fiche-info-address{margin:0}
.fiche-info-dot{margin:0 10px;font-weight:600}
.fiche-info-employees{margin:0}
.fiche-score-wrap{position:relative;display:inline-flex}
.fiche-score-dots{display:flex;align-items:center;gap:3px;margin-top:3px}
.fiche-score-dot{width:14px;height:14px;border-radius:50%;background:#DAE0E8;flex-shrink:0}
.fiche-score-dot.filled{background:var(--color-accent)}
.fiche-score-label{margin-left:4px;font-size:14px;font-weight:500;color:var(--color-text)}
.fiche-score-tooltip{display:none;position:absolute;bottom:calc(100% + 10px);left:50%;transform:translateX(-50%);background:var(--color-primary);color:#fff;padding:10px 14px;font-size:14px;line-height:1.2;z-index:20;pointer-events:none;white-space:nowrap;border-radius:4px}
.fiche-score-wrap:hover .fiche-score-tooltip{display:block}

#description p { font-size: 16px; line-height:1.3; }
.fiche-desc-wrap{position:relative}
.fiche-desc-content{overflow:hidden;max-height:calc(10 * 1.5em);transition:max-height .4s ease; font-size:17px; line-height:1.5;}
.fiche-desc-content.expanded{max-height:2000px}
.fiche-desc-toggle{display:inline-flex;align-items:center;gap:4px;background:none;border:none;padding:10px 0 0;font-size:15px;font-weight:500;font-family:var(--font-main);color:var(--color-accent);cursor:pointer}
.fiche-desc-toggle:hover{text-decoration:underline}
.fiche-desc-toggle svg{transform:rotate(0deg)}
.fiche-desc-toggle.expanded svg{transform:rotate(-180deg)}
.equip-table-wrap{overflow:hidden;max-height:380px;transition:max-height .4s ease}
.equip-table-wrap.expanded{max-height:2000px}

.fiche-expertises-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;padding-top:5px}
.fiche-expertise-item{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:500;color:var(--color-text)}
.fiche-expertise-item.is-unchecked{color:#B7B7B7}
.fiche-expertise-icon{width:14px;height:14px;flex-shrink:0}
.fiche-secteur-icon{width:31px;height:31px;flex-shrink:0}

/* ===== Fiche nav (fixed submenu) ===== */
.fiche-nav{background:#fff;border-bottom:0px solid var(--color-border);position:sticky;top:72px;z-index:1000;padding:10px;transition:border-color .2s}
.fiche-nav.is-stuck{border-bottom:1px solid var(--color-border)}
.fiche-nav-inner{display:flex;align-items:center;justify-content:space-between;gap:10px;height:52px}
#machines, [id^="machine-"] { scroll-margin-top: 160px; }
.fiche-nav-links{display:flex;gap:24px;overflow-x:auto;flex:1;min-width:0}
.fiche-nav-links a{font-size:15px;font-weight:500;color:var(--color-text);white-space:nowrap;transition:color .15s}
.fiche-nav-links a:hover,.fiche-nav-links a.active{color:var(--color-text)}
.fiche-nav-company-name{display:none}
.fiche-nav-badge{background:var(--color-text);color:#fff;font-size:11px;font-weight:600;width:18px;height:18px;border-radius:50%;margin-left:6px;display:inline-flex;align-items:center;justify-content:center;line-height:1}
.fiche-nav-actions{display:flex;align-items:center;flex-shrink:0; gap:10px;}
.fiche-fav-btn{width:40px;height:40px;min-width:40px;text-decoration:none}

/* ===== Fiche gallery (2 columns) ===== */
.fiche-gallery{display:flex;gap:8px;margin-top:0;align-items:stretch}
.fiche-gallery-left{flex:1;min-width:0;position:relative}
.fiche-gallery-main{width:100%;height:440px;object-fit:cover;display:block;cursor:pointer}
.fiche-gallery-placeholder{width:100%;height:440px;background:var(--color-bg-secondary);display:flex;align-items:center;justify-content:center}
.fiche-gallery-right{flex:0 0 380px;display:flex;flex-direction:column;gap:8px}
.fiche-gallery-item{width:100%;height:calc((440px - 8px) / 2);flex-shrink:0;object-fit:cover;display:block;cursor:pointer}
.fiche-gallery-right .fiche-map{flex-shrink:0;height:calc((440px - 8px) / 2)}
.fiche-gallery-right--single .fiche-map{height:440px}
.fiche-gallery-video{width:100%;height:calc((440px - 8px) / 2);flex-shrink:0;object-fit:cover;background:#000;display:block}
.fiche-gallery-right--single .fiche-gallery-video{height:440px}
.fiche-photos-btn{position:absolute;bottom:15px;left:15px;display:inline-flex;align-items:center;gap:6px;background:#fff;border:none;padding:10px;font-size:13px;font-weight:500;font-family:var(--font-main);cursor:pointer;color:var(--color-text);transition:background .15s}
.fiche-photos-btn:hover{background:#f5f5f5}

.fiche-layout { display: grid; grid-template-columns: 1fr 380px; gap: 100px; align-items: start; padding:20px 0; }
.fiche-main .block { margin-bottom: 0; padding: 40px 0 40px 0; border-bottom: 1px solid var(--color-border); background: none; border-radius: 0; border-left: none; border-right: none; border-top: none; }
.fiche-main .block:last-child { border-bottom: none; }
.fiche-main h2 { font-size: 24px; font-weight:500; letter-spacing:-0.5px; line-height:0.8;}
.fiche-side .info-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 8px 0; border-bottom: 0px solid var(--color-border); font-size: 15px; font-weight:400; min-width: 0; }
.fiche-side .info-row span:first-child { flex-shrink: 0; }
.fiche-side .info-row span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.fiche-side .info-row strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; text-align: right; }
.fiche-side .info-row:last-of-type { border-bottom: none; }
.fiche-side .btn { margin-top: 14px; }
.fichedesc {margin-top:-20px}

/* Claimed box below contact */
.fiche-side > .block + .fiche-claimed-box{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}
.fiche-side > .block{border-bottom-left-radius:0;border-bottom-right-radius:0;background:var(--color-bg-secondary);border-color:var(--color-bg-secondary)}
.fiche-claimed-box{background:var(--color-primary);border-top:1px solid #3A4253;padding:16px 20px;display:flex;align-items:center;justify-content:space-between;font-size:14px;font-weight:500;color:var(--color-bg);position:relative;border-bottom-left-radius:var(--radius);border-bottom-right-radius:var(--radius)}
.fiche-claimed-box--unclaimed{cursor:pointer}
.fiche-claimed-box--unclaimed:hover{background:var(--color-primary)}
.fiche-claimed-word{text-decoration:underline;cursor:pointer}
.fiche-claimed-icon{width:24px;height:24px;flex-shrink:0}
.fiche-claimed-popup{display:none;position:absolute;bottom:calc(100% + 10px);left:0;right:0;background:var(--color-primary);color:#fff;padding:10px 14px;font-size:14px;line-height:1.2;z-index:10;pointer-events:none;border-radius:4px}
.fiche-claimed-box:hover .fiche-claimed-popup{display:block}

/* Claim button between description and expertises */
.fiche-claim-btn{display:block;text-align:center;margin-bottom:50px;padding:14px 24px;font-size:16px;font-weight:500;color:#fff;background:var(--color-text);text-decoration:none;transition:background .15s}
.fiche-claim-btn:hover{background:#333}
.fiche-map { width: 100%; height: 218px; border-radius: var(--radius); position: relative; z-index: 0; overflow: hidden; }
.fiche-map .maplibregl-map { z-index: 0 !important; }
.fiche-logo { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.maplibregl-popup-content-wrapper { border-radius: var(--radius) !important; box-shadow: none !important; background: transparent !important; }
.maplibregl-popup-tip { display: none !important; }
.fiche-map-popup .maplibregl-popup-content { max-width: 200px !important; width: auto !important; white-space: normal !important; }

.form-page { max-width: 480px; margin: 60px auto; }
.form-wide { max-width: 760px; margin: 40px auto; }
.form-group { margin-bottom: 16px; }
.form-group label { display: block; font-size: 14px; font-weight: 500; margin-bottom: 6px; }
.form-group input:not([type="checkbox"]):not([type="radio"]), .form-group select, .form-group textarea { width: 100%; border: 1px solid var(--color-border); padding: 11px 14px; font-size: 14px; line-height:1.3; font-family: var(--font-main); }
.field-invalid, .field-invalid:focus { border-color: #dc2626 !important; outline: none !important; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.form-note { font-size: 15px; color: var(--color-text-light); margin-top: 14px; text-align: center; }
.alert {margin:15px 0; padding:20px; border:1px solid var(--color-border); background:#fff; font-size: 15px; font-weight: 500; line-height:1.1; }
/* Icône avant le texte : couleur = background-color (var(--color-primary)), forme = SVG via mask */
.alert-success::before{content:'';display:inline-block;width:16px;height:16px;margin-right:8px;vertical-align:middle;flex-shrink:0;background-color:var(--color-primary);-webkit-mask:var(--alert-icon) no-repeat center/contain;mask:var(--alert-icon) no-repeat center/contain}
.alert-success {color: var(--color-text); --alert-icon:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");}
.alert-error {color: var(--color-text);}

.expertise-checks { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; }
.expertise-checks label { display: flex; align-items: center; gap: 8px; padding: 2px 0; font-size: 14px; color: var(--color-text); cursor: pointer; }
.expertise-checks input[type="checkbox"] { margin: 0; }

/* Custom checkbox — excludes toggle switches */
input[type="checkbox"] { -webkit-appearance:none; appearance:none; width:20px; height:20px; min-width:20px; min-height:20px; border:1px solid var(--color-border); border-radius:0; cursor:pointer; position:relative; vertical-align:middle; flex-shrink:0; transition:background .15s,border-color .15s }
input[type="checkbox"]:checked { background:var(--color-primary); border-color:var(--color-primary) }
input[type="checkbox"]:checked::after { content:""; position:absolute; left:6px; top:4px; width:4px; height:7px; border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg) }
input[type="checkbox"]:focus-visible { outline:2px solid var(--color-accent); outline-offset:2px }
/* Radio stylée des dropdowns : cercle bleu visible à l'état coché */
.dropdown-option input[type="radio"] { -webkit-appearance:none; appearance:none; width:16px; height:16px; min-width:16px; min-height:16px; border:1px solid var(--color-border); border-radius:50%; background:#fff; cursor:pointer; position:relative; vertical-align:middle; flex-shrink:0; transition:background .15s,border-color .15s }
.dropdown-option input[type="radio"]:checked { border-color: var(--color-accent) }
.dropdown-option input[type="radio"]:checked::after { content:""; position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:8px; height:8px; border-radius:50%; background:var(--color-accent) }
.dropdown-option input[type="radio"]:focus-visible { outline:2px solid var(--color-accent); outline-offset:2px }
.expertise-tag input[type="checkbox"] { position:absolute; opacity:0; width:0; height:0; min-width:0; min-height:0; pointer-events:none; border:none }

.dashboard-layout { display: grid; grid-template-columns: 240px 1fr; gap: 60px; padding: 45px 0 60px; align-items: start; }
.dashboard-layout > div:last-child { padding: 0px; min-width: 0; }
.dashboard-section-title { font-size: 19px; font-weight: 600; margin: 0 0 16px;display:block; }
.dashboard-page-title { font-size: 26px; font-weight: 500; margin: 0 0 24px; }

/* File upload */
.file-upload-zone{border:2px dashed var(--color-border);border-radius:var(--radius);padding:32px 20px;display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;transition:border-color .15s,background .15s;text-align:center}
.file-upload-zone:hover,.file-upload-zone.dragover{border-color:var(--color-accent);background:#f8f8ff}
.file-upload-previews{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px}
.file-upload-existing-grid{display:flex;flex-direction:column;gap:12px;margin-top:12px}
.file-upload-card{position:relative}
.file-upload-card.dragging{opacity:.4}
.file-upload-card.drag-over{border-color:var(--color-accent)}
.drag-handle{cursor:grab;display:flex;align-items:center;justify-content:center;color:var(--color-text-light);flex-shrink:0;padding:4px}
.drag-handle:active{cursor:grabbing}
.file-upload-card{display:flex;align-items:center;gap:12px;border:1px solid var(--color-border);border-radius:var(--radius);padding:8px 12px 8px 8px;background:#fff}
.file-upload-thumb{width:80px;height:80px;object-fit:cover;border-radius:4px;flex-shrink:0;background:#f5f5f5}
.file-upload-info{flex:1;min-width:0}
.file-upload-name{font-size:14px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.file-upload-size{font-size:12px;color:var(--color-text-light);margin-top:2px}
.file-upload-remove{width:28px;height:28px;border:none;background:transparent;border-radius:50%;font-size:18px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--color-text)}
.file-upload-remove:hover{opacity:.6}
.file-upload-existing{margin-top:12px}
.dashboard-nav { background: none; border-radius: 0; padding: 0; position: sticky; top: 115px; border: none; }
.dashboard-nav a { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border-radius: 0px; font-size: 14px; font-weight: 500; margin-bottom: 4px; position: relative; }
.dashboard-nav .nav-logout { margin-top: auto; }
.dashboard-nav a.active { background: #fff; }
.nav-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 18px; padding: 3px 6px; margin-left: -3px; background: var(--color-accent); color: #fff; font-size: 11px; font-weight: 600; line-height: 1; border-radius: 100px; }
.nav-count { white-space: nowrap; }

/* Notifications header (Mon compte) */
.nav-notif { position: relative; display: inline-flex; align-items: center; }
.nav-notif-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 22px; height: 22px; padding: 0 6px; margin-left:-5px; margin-right:10px; border-radius: 50%; background: var(--color-tertiary); border: none; color: var(--color-primary); font-size: 11px; font-weight: 700; line-height: 1; cursor: pointer; transition: opacity .15s; }
.nav-notif-badge:hover { opacity: .85; }
.nav-notif-panel { display: none; position: fixed; top: 72px; right: 40px; width: 360px; max-width: calc(100vw - 32px); background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius); z-index: 1200; overflow: hidden; }
.nav-notif-item { display: flex; align-items: center; gap: 12px; padding: 12px 16px; text-decoration: none; color: var(--color-text); border-bottom: 1px solid var(--color-border); transition: background .15s; }
.nav-notif-item:last-of-type { border-bottom: none; }
.nav-notif-item:hover { background: #f6f6f8; }
.nav-notif-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.nav-notif-text { font-size: 14px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.nav-notif-date { font-size: 12px; color: var(--color-text-light); }
.nav-notif-dot { flex-shrink: 0; width: 6.3px; height: 6.3px; border-radius: 50%; background: var(--color-accent); }
.nav-notif-empty { padding: 24px 16px; text-align: center; font-size: 14px; color: var(--color-text-light); }
.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid var(--color-border);background:#eee;color:#111;border-radius:0;cursor:pointer;padding:0;flex-shrink:0}
.icon-btn svg{width:16px;height:16px}
.icon-btn:hover{opacity:.8}
.icon-btn-accent{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}
.icon-btn-warning{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}
.icon-btn-danger{background:#dc2626;color:#fff;border-color:#dc2626}
.admin-table { width: 100%; border-collapse: collapse; background: #fff; border-radius: var(--radius); overflow: hidden; border: 1px solid var(--color-border); }
.admin-table th, .admin-table td { padding: 12px 14px; border-bottom: 1px solid var(--color-border); text-align: left; font-size: 16px; }
.admin-table th { background: #fafafa; font-size: 14px; text-transform: uppercase; color: var(--color-text-light); }
.badge { padding: 3px 10px; border-radius: 100px; font-size: 14px; font-weight: 600; border: 1px solid var(--color-border); }
.badge-yes { background: var(--color-text); color: #fff; border-color: var(--color-text); }
.badge-no { background: #f5f5f5; color: var(--color-text-light); }
.actions-row { display: flex; gap: 8px; flex-wrap: wrap; }

.site-header .container { max-width: 100%; padding: 0 40px; }
.equipments-table{width:100%;border-collapse:collapse;font-size:15px;margin-top:20px}
.guides-layout{display:flex;gap:40px;align-items:flex-start}
.guides-sidebar{flex:0 0 220px;position:sticky;top:100px}
.guides-content{flex:1;min-width:0}
.guides-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.guides-grid-time {padding-top:60px;}

/* Blog list */
.blog-list{display:flex;flex-direction:column}
.blog-list-item{display:flex;gap:24px;padding:24px 0;border-bottom:1px solid var(--color-border);text-decoration:none;color:var(--color-text);align-items:center}
.blog-list-item:first-child{padding-top:0}
.blog-list-item:last-child{border-bottom:none}
.blog-list-thumb{flex:0 0 220px}
.blog-list-thumb img{width:220px;height:150px;object-fit:cover;border-radius:var(--radius);display:block;background-color:#F0F0F0}
.blog-list-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px;padding-top:2px}
.blog-list-title{font-size:22px;font-weight:600;line-height:1.3;color:var(--color-text)}
.blog-list-item:hover .blog-list-title{text-decoration:underline}
.blog-list-extrait{font-size:15px;color:var(--color-text-light);line-height:1.5;white-space:pre-line;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.blog-list-meta{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--color-text-light)}
.equipments-table th{text-align:left;padding:10px 5px;border-bottom:1px solid var(--color-border);font-weight:600;font-size:15px;white-space:nowrap}
.equipments-table td{padding:10px 5px;border-bottom:1px solid var(--color-border)}
.equipments-table tbody tr:last-child td{border-bottom:none}

/* ===== Annuaire sticky header (search + filter bar) ===== */
.annuaire-sticky-header{position:static}
.annuaire-sticky-placeholder{display:none}

/* ===== Annuaire filter bar ===== */
.annuaire-filter-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:30px; padding:0 20px;}
.filter-bar-left{display:flex;flex-wrap:wrap;gap:20px;position:relative}
.filter-bar-item{position:relative}
.filter-btn{display:inline-flex;align-items:center;gap:6px;padding:0;background:transparent;border:none;font-size:15px;font-weight:500;font-family:var(--font-main);color:var(--color-text);cursor:pointer;white-space:nowrap;transition:color .15s}
.filter-btn:hover{color:var(--color-accent)}
.filter-btn.active .filter-badge{background:var(--color-accent);color:#fff}
.filter-btn svg{transition:transform .2s;flex-shrink:0}
.filter-btn.open svg{transform:rotate(180deg)}
.filter-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 0;background:var(--color-accent);color:#fff;border-radius:100px;font-size:11px;font-weight:500;line-height:18px;margin-top:-1px}.filter-modal-trigger .filter-badge{display:none}
.filter-dropdown-panel{display:none;position:absolute;top:calc(100% + 6px);left:0;min-width:240px;max-width:350px;background:#fff;border:1px solid var(--color-border);z-index:100}
.filter-dropdown-panel.open{display:block}
.dropdown-search{width:100%;padding:12px 14px;border:none;border-bottom:1px solid var(--color-border);font-size:14px;font-family:var(--font-main);outline:none;box-sizing:border-box}
.dropdown-search:focus{outline:none}
.dropdown-options{max-height:380px;overflow-y:auto;padding:5px}
.dropdown-option{display:flex;align-items:center;gap:8px;padding:5px 5px;font-size:15px;cursor:pointer;transition:background .1s}
.dropdown-option:hover{background:#}
.dropdown-option input{flex-shrink:0}
.dropdown-option-single{padding:10px 10px;font-size:14px;cursor:pointer;display:block;transition:background .1s}
.dropdown-option-single:hover{background:#}
.dropdown-page-link{margin-left:auto;font-size:12px;font-weight:600;color:var(--color-accent);text-decoration:none;flex-shrink:0;white-space:nowrap}
.dropdown-page-link:hover{text-decoration:underline}
.results-list{display:flex;flex-direction:column;gap:20px}
.results-list .result-card{background:#fff;border:1px solid var(--color-border);padding:0;align-items:center}
.results-list .result-card:hover{border-color:#}

.mini-editor{border:1px solid var(--color-border);border-radius:0 0 var(--radius) var(--radius);overflow:hidden}
.mini-editor-toolbar{display:flex;gap:0;background:#f9f9f9;border-bottom:1px solid var(--color-border);padding:4px 6px}
.me-btn{border:none;background:none;padding:6px 10px;cursor:pointer;font-size:14px;color:var(--color-text);border-radius:4px;line-height:1}
.me-btn:hover{background:#e8e8e8}
.me-btn.active{background:var(--color-primary);color:#fff}
.mini-editor-content{min-height:180px;padding:12px 14px;font-family:var(--font-main);font-size:15px;line-height:1.6;color:var(--color-text);outline:none}
.mini-editor-content span[style*="font-size"]{line-height:1}
.mini-editor-content:focus{box-shadow:inset 0 0 0 2px rgba(71,84,255,.15)}
.mini-editor-content ul,.mini-editor-content ol{margin:8px 0;padding-left:24px}
.mini-editor-content .me-uploading{display:inline-block;padding:4px 12px;background:#f0f0f0;color:#888;font-size:13px;border-radius:4px;font-style:italic}
.mini-editor-content li{margin:4px 0}
.mini-editor-content p{margin:4px 0}

.results-list .result-card .photo{flex:0 0 260px;height:180px;margin:0;border-radius:var(--radius);background-size:cover;background-position:center;background-repeat:no-repeat;padding:0;display:block;position:relative}
.machines-results .results-list .result-card .photo{background-size:contain;}
.results-list .result-card .photo .fav-btn{position:absolute;top:10px;left:10px;z-index:2}
.results-list .result-card .info{flex:1;display:flex;flex-direction:column;justify-content:center}
.results-list .result-card .details{padding:16px;flex:1}
.annuaire-columns{display:flex;gap:20px}
.annuaire-col-left{flex:0 0 340px}
.annuaire-col-right{flex:1;min-width:0}
.job-detail{display:flex;gap:80px}
.job-detail-sidebar{flex:0 0 380px;order:2;align-self:start;position:sticky;top:90px}
.job-detail-main{flex:1;min-width:0;order:1}
.job-detail-main ul,.job-detail-main ol{margin:8px 0;padding-left:24px}
.job-detail-main li{list-style:circle;margin-bottom:4px}
.job-detail-main ol li{list-style:decimal}
.job-detail-main b,.job-detail-main strong{font-weight:600}
.job-detail-main i,.job-detail-main em{font-style:italic}
.filter-bar-right{display:flex;align-items:center;gap:10px;flex-shrink:0}
.view-toggle{display:flex;gap:16px}
.view-toggle a{padding:0;text-decoration:none;display:flex;align-items:center;justify-content:center;transition:background .15s}
.page-annuaire-footer .site-footer{margin-top:0}

/* ===== Gallery overlay ===== */
.gallery-overlay{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.9);display:none;flex-direction:column;align-items:center;justify-content:center}
.gallery-overlay.open{display:flex}
.gallery-close{position:absolute;top:16px;right:16px;width:40px;height:40px;background:none;border:none;cursor:pointer;z-index:10;padding:0}
.gallery-close svg{width:28px;height:28px;stroke:#fff;stroke-width:2}
.gallery-main{flex:1;display:flex;align-items:center;justify-content:center;width:100%;padding:60px 80px 0;position:relative}
.gallery-main img{max-width:100%;max-height:calc(100vh - 160px);object-fit:contain}
.gallery-arrow{position:fixed;top:50%;transform:translateY(-50%);width:44px;height:44px;background:rgba(255,255,255,.12);border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s;z-index:10}
.gallery-arrow:hover{background:rgba(255,255,255,.25)}
.gallery-arrow svg{width:22px;height:22px;stroke:#fff;stroke-width:2;fill:none}
.gallery-prev{left:16px}
.gallery-next{right:16px}
.gallery-thumbs{display:flex;gap:8px;padding:16px 20px;overflow-x:auto;justify-content:center;max-width:100%}
.gallery-thumbs img{width:64px;height:48px;min-height:48px;max-height:48px;object-fit:cover;cursor:pointer;opacity:.5;transition:opacity .15s;flex-shrink:0;border:1px solid transparent}
.gallery-thumbs img:hover,.gallery-thumbs img.active{opacity:1;border:1px solid #fff}

/* ===== Fiche page extras ===== */
.fav-btn,.fiche-fav-btn{height:36px;width:36px;padding:0;min-width:36px;display:inline-flex;align-items:center;background:#fff;justify-content:center;color:var(--color-text);border:none;border-radius:0;cursor:pointer;box-shadow:none}
.fav-btn svg,.fiche-fav-btn svg{width:18px;height:18px}
.fav-btn.is-fav,.fiche-fav-btn.is-fav{color:var(--color-primary); background:var(--color-tertiary);}
.fiche-fav-btn{background:var(--color-bg-secondary)}
.compare-check{position:absolute;top:10px;right:10px;z-index:3;display:none;cursor:pointer}
.results-list .result-card .photo{position:relative}
.results-list .result-card:hover .compare-check,
.result-card:has(.compare-input:checked) .compare-check{display:flex}
.compare-check input[type="checkbox"]{width:24px;height:24px;cursor:pointer;background:transparent;border:2px solid #fff;border-radius:50%;appearance:none;-webkit-appearance:none;position:relative;box-sizing:border-box;flex-shrink:0}
.compare-check input[type="checkbox"]:checked{background:var(--color-accent);border-color:var(--color-accent)}
.compare-check input[type="checkbox"]:checked::after{content:'';position:absolute;top:5px;left:5px;width:8px;height:8px;background:#fff;border-radius:50%}
.compare-bar{position:fixed;bottom:0;left:0;right:0;z-index:9000;background:#fff;border-top:1px solid var(--color-border);box-shadow:0 -4px 20px rgba(0,0,0,.1);padding:16px 24px}
.compare-bar-inner{max-width:var(--max-width);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px}
.compare-bar-slots{display:flex;align-items:center;gap:12px;flex:1}
.compare-slot{flex:1;max-width:280px;background:var(--color-bg-admin);border:1px solid var(--color-border);padding:10px 14px;display:flex;align-items:center;justify-content:space-between;min-height:44px}
.compare-slot-empty{color:var(--color-text-light);font-size:14px}
.compare-slot-name{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.compare-slot-remove{background:none;border:none;cursor:pointer;font-size:18px;color:var(--color-text-light);padding:0 0 0 8px;line-height:1}
.compare-slot-remove:hover{color:var(--color-text)}
.compare-bar-vs{font-weight:700;font-size:14px;color:var(--color-text-light);flex-shrink:0}
.compare-bar-actions{display:flex;gap:8px;flex-shrink:0}
.compare-bar-actions .btn[disabled]{opacity:.4;cursor:not-allowed}
.fiche-fav-btn.is-fav{background:var(--color-tertiary);color:var(--color-primary)}
.fiche-share-wrap{position:relative}
.fiche-share-btn{height:36px;width:36px;min-width:36px;padding:0;display:inline-flex;align-items:center;justify-content:center;background:var(--color-bg-secondary);color:var(--color-text);border:none;border-radius:0;cursor:pointer;box-shadow:none}
.fiche-share-btn svg{width:18px;height:18px}
.fiche-share-popup{display:none;position:absolute;top:calc(100% + 8px);right:0;background:#fff;border:1px solid var(--color-border);min-width:180px;z-index:1100; }
.fiche-share-popup.open{display:block}
.fiche-share-option{display:flex;align-items:center;gap:10px;width:100%;padding:12px 16px;font-size:14px;font-weight:500;color:var(--color-text);background:none;border:none;border-bottom:1px solid var(--color-border);cursor:pointer;text-decoration:none;font-family:var(--font-main);text-align:left}
.fiche-share-option:last-child{border-bottom:none}
.fiche-share-option svg{color:var(--color-text);flex-shrink:0}
.claimed-badge{height:36px;border-radius:100px;display:inline-flex;align-items:center;gap:6px;padding:0 16px;font-size:14px;font-weight:500;background:var(--color-text);color:var(--color-text)}
.fiche-email-btn{background:var(--color-accent);color:#fff;border-color:var(--color-accent);}
.fiche-email-btn:hover{background:var(--color-accent);color:#fff}

/* ============================================================
   HOMEPAGE FULL-SCREEN HERO
   ============================================================ */

/* Remove body padding on homepage */
.page-home { padding-top: 0; }

/* Header: transparent on homepage, full-width with 40px padding */
.page-home .site-header { background: transparent; will-change: background; transition: background .4s ease; }
.page-home .site-header .logo img { filter: brightness(0) invert(1); transition: filter .4s ease; }
.page-home .site-header .main-nav a,
.page-home .site-header .main-nav .nav-dropdown-trigger { color: #fff; transition: color .4s ease; }
.page-home .site-header .main-nav a:hover,
.page-home .site-header .main-nav .nav-dropdown-trigger:hover,
.page-home .site-header .nav-dropdown-trigger.active { color: #fff; }
.page-home .site-header .nav-toggle span { background: #fff; transition: background .4s ease; }
.page-home .site-header .nav-actions .btn-outline { background: #fff; color: var(--color-primary); border-color: #fff; transition: background .4s ease; }
.page-home .site-header .nav-actions .btn-outline:hover {  color: var(--color-primary); }

/* Header scrolled state on homepage: primary bg, white text */
.page-home .site-header.scrolled { background: var(--color-primary); }
.page-home .site-header.scrolled .logo img { filter: brightness(0) invert(1); }
.page-home .site-header.scrolled .main-nav a,
.page-home .site-header.scrolled .main-nav .nav-dropdown-trigger { color: #fff; }
.page-home .site-header.scrolled .main-nav a:hover,
.page-home .site-header.scrolled .main-nav .nav-dropdown-trigger:hover,
.page-home .site-header.scrolled .nav-dropdown-trigger.active { color: #fff; }
.page-home .site-header.scrolled .nav-toggle span { background: #fff; }
.page-home .site-header.scrolled .nav-actions .btn { background: #fff; color: var(--color-primary); }
.page-home .site-header.scrolled .nav-actions .btn:hover { color: var(--color-primary); }
.page-home .site-header.scrolled .nav-actions .btn-outline { background: #fff; color: var(--color-primary); border-color: #fff; }
.page-home .site-header.scrolled .nav-actions .btn-outline:hover {  color: var(--color-primary); }

/* Hero: full viewport height, image as background */
.page-home .hero { height: 100vh; padding: 0; background: #111; overflow: visible; position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; isolation: isolate; }
.page-home .hero-bg { position: absolute; inset: 0; z-index: 0; }
.page-home .hero-bg img, .page-home .hero-bg video { width: 100%; height: 100%; object-fit: cover; display: block; }
.page-home .hero-overlay { position: absolute; inset: 0; background: rgba(0,0,0,.1); z-index: 1; }
.page-home .hero-slider, .page-home .hero-slot { display: none; }
.page-home .hero-content { position: relative; z-index: 2; display: flex; align-items: center; justify-content: center; padding-top: 7vh; }
.page-home .hero-content h1 {font-size:80px;}
.page-home .hero-content .hero-sector-line {font-size:80px;}
.page-home .hero-content p {margin-bottom:30px;}
.page-home .hero .container { max-width:900px;}
.page-home .hero .search-engine {padding:0px; height:100px; background-color:var(--color-primary); width:100%; margin: 20px auto 0;}
.page-home .hero .search-engine .btn {font-size: 16px;}
.page-home .hero .search-engine input { color: #fff; background: transparent; }
.page-home .hero .search-engine input::placeholder { color: rgba(255,255,255,.6); }
.hero-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .8s ease}
.hero-slide.active{opacity:1}
.hero-sector-line{position:relative;font-family:"General Sans",sans-serif;font-optical-sizing:auto;font-size:80px;font-weight:900;line-height:1.0;margin:0 auto;text-transform:uppercase;text-align:left}
.hero-sector-wrap{display:inline-block;position:relative;height:1.15em;vertical-align:bottom;overflow:hidden}
.hero-sector-text{display:inline-block;transition:transform .35s cubic-bezier(.4,0,.2,1),opacity .35s ease}
.hero-sector-exit{transform:translateY(-100%);opacity:0}
.hero-sector-enter{transform:translateY(100%);opacity:0}
.hero-progress-bar{display:block;width:100%;height:3px;background:rgba(255,255,255,.10);border-radius:2px;overflow:hidden;position:absolute;bottom:2px;left:0}
.hero-progress-fill{display:block;width:0;height:100%;background:var(--color-bg);border-radius:2px; opacity:0.8;}
.hero-progress-fill.animating{animation:heroProgress 4s linear forwards}
@keyframes heroProgress{from{width:0}to{width:100%}}
.sector-num{display:inline-flex;align-items:center;justify-content:center;background:var(--color-secondary);color:var(--color-primary);font-size:11px;font-weight:700;border-radius:3px;vertical-align:top;margin-left:6px;line-height:1;padding:6px 6px 3px 6px}

.page-home .hero-intro {background:var(--color-tertiary); color:var(--color-primary); padding:3px 5px; font-size:12px; font-weight:600;}
.hero-new {background:var(--color-tertiary);color:var(--color-primary);padding:7px 12px;font-size:13px;font-weight:500; margin-bottom:15px;}

/* ============================================================
   END HOMEPAGE FULL-SCREEN HERO
   ============================================================ */
.hero-content-wrapper{position:relative;z-index:1;background:var(--color-bg);margin-top:0;padding-top:0}

/* Filters modal trigger (hidden on desktop) */
.filter-modal-trigger{display:none;align-items:center;gap:8px;cursor:pointer;font-size:15px;font-weight:500;white-space:nowrap}

/* Filters modal (hidden on desktop) */
.filters-modal { display: none; }
.filters-modal.open { display: flex; flex-direction: column; position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 12000; background: #fff; }
.filters-modal-header { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px; border-bottom: 1px solid var(--color-border); font-size: 17px; font-weight: 600; }
.filters-modal-header span { flex: 1; text-align: center; }
.filters-modal-header > div:last-child { flex: 0 0 44px; }
.filters-modal-close { background: none; border: none; font-size: 28px; cursor: pointer; padding: 0 8px; color: var(--color-text); flex-shrink: 0; }
.filters-modal-body { flex: 1; overflow-y: auto; padding: 20px; }
.filters-modal-section { margin-bottom: 0; border-bottom: 1px solid var(--color-border); }
.filters-modal-section-header { display: flex; align-items: center; justify-content: space-between; padding: 14px 0; cursor: pointer; user-select: none; }
.filters-modal-section-header h4 { font-size: 15px; font-weight: 600; margin: 0; }
.filters-modal-section-header svg { width: 16px; height: 16px; transition: transform .2s; flex-shrink: 0; color: var(--color-text); }
.filters-modal-section.open .filters-modal-section-header svg { transform: rotate(180deg); }
.filters-modal-options { display: none; flex-direction: column; gap: 10px; padding-bottom: 14px; }
.filters-modal-section.open .filters-modal-options { display: flex; }
.filters-modal-options label { display: flex; align-items: center; gap: 10px; font-size: 15px; cursor: pointer; }
.filters-modal-options input[type="radio"] { accent-color: var(--color-primary); margin: 0; }
.filters-modal-footer { padding: 16px 20px; border-top: 1px solid var(--color-border); }

/* ============================================================
   DEVIS MODAL — fullscreen two-column
   ============================================================ */
.devis-modal{display:none;position:fixed;inset:0;z-index:12000;flex-direction:row;align-items:stretch;background:#fff}
.devis-modal.open{display:flex}
.devis-modal-left{flex:0 0 45%;position:relative;overflow:hidden;background:#111}
.devis-modal-bg{position:absolute;inset:0;background-size:cover;background-position:center;z-index:0}
.devis-modal-logo{position:absolute;top:40px;left:40px;height:72px;filter:brightness(0) invert(1);z-index:1}
.devis-modal-right{flex:1;background:#fff;position:relative;z-index:1;overflow-y:auto;display:flex;align-items:center;justify-content:center}
.devis-modal-close{position:absolute;top:20px;right:20px;background:none;border:none;cursor:pointer;padding:8px;color:var(--color-text);z-index:10;transition:opacity .15s}
.devis-modal-close:hover{opacity:.6}
body.devis-open .site-header{display:none!important}
.devis-modal-form{width:100%;max-width:640px;padding:40px}
.devis-step-actions{display:flex;gap:12px}
.devis-summary-row{padding:8px 0;font-size:14px}
.devis-summary-2col{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.devis-summary-row:last-child{border-bottom:none}
.devis-summary-label{font-weight:600;color:var(--color-text-light);margin-bottom:2px}
.devis-summary-textarea{width:100%;border:1px solid var(--color-border);padding:10px;font-size:14px;font-family:var(--font-main);resize:none;overflow-y:auto;line-height:1.4}

/* ============================================================
   MOBILE — @media (max-width: 900px)
   ============================================================ */
@media (max-width: 900px) {
  /* Text */
  h1{font-size:40px;}
  h2{font-size:30px;}
  h3{font-size:24px;}
  h4{font-size:18px;}

  /* Header */
  .site-header .container { padding: 0 20px; }
  .page-home .site-header { transform: none !important; will-change: auto !important; }
  .nav-toggle { display: flex; }
  .site-header .nav-actions { display: none; }
  .main-nav { display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: #fff; flex-direction: column; align-items: stretch; gap: 0; padding: 72px 0 20px; flex: none; z-index: 1050; overflow-y: auto; }
  .main-nav.open { display: flex; }
  .main-nav a, .main-nav .nav-dropdown-trigger { width: 100%; padding: 12px 20px; border-bottom: 1px solid var(--color-border); color: var(--color-text) !important; text-align: left; font-size: 16px; box-sizing: border-box; }
  .main-nav .nav-dropdown { position: static; }
  .main-nav .nav-dropdown::after { display: none; }
  .main-nav .nav-dropdown-trigger { display: none; }
  .main-nav .nav-dropdown-menu { display: flex !important; position: static; transform: none; background: none; min-width: 0; padding: 0; flex-direction: column; border-bottom: none; }
  .main-nav .nav-dropdown-menu a { padding-left: 20px; border-bottom: 1px solid var(--color-border); width: 100%; box-sizing: border-box; }
  .main-nav .nav-mobile-account { display: block; width: 100%; padding: 12px 20px; border-bottom: 1px solid var(--color-border); color: var(--color-text) !important; font-size: 16px; font-weight: 600; text-align: left; box-sizing: border-box; }

  /* Hamburger → X */
  .nav-open .nav-toggle span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .nav-open .nav-toggle span:nth-child(2) { opacity: 0; }
  .nav-open .nav-toggle span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

  /* All pages: white header + dark logo & X when menu open */
  .site-header.nav-open { background: #fff !important; }
  .site-header.nav-open .logo img { filter: brightness(0) invert(0) !important; }
  .site-header.nav-open .nav-toggle span { background: var(--color-primary) !important; }

  /* Grids */
  .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; }
  .form-row { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr; gap: 32px; }
  .footer-bottom { flex-direction: column; align-items: flex-start; gap: 5px; margin-top: 40px;font-size:15px; }
  .footer-bottom span:last-child { display: flex; flex-direction: column; gap: 8px; }
  .footer-bottom a { color:#fff; text-decoration:none;font-size:15px;margin-left:0;}
  .fiche-photos { grid-template-columns: 1fr; }

  /* Dashboard */
  .directory-layout, .dashboard-layout { grid-template-columns: 1fr; padding-top: 0; gap: 30px; }
  .page-admin .dashboard-layout > div:last-child { overflow-x: clip; min-width: 0; }
  .fiche-layout { grid-template-columns: 1fr; padding-top: 0; gap: 0px; padding-bottom: 0; }
  .fiche-breadcrumb { white-space: nowrap; overflow: visible; }
  .fiche-breadcrumb > * { flex-shrink: 0; }
  .fiche-info-logo { width: 68px !important; height: 68px !important; }
  .fiche-top-bar { padding: 15px 0 !important; }
  .fiche-top-bar .fiche-breadcrumb { padding: 0 !important; margin-bottom: 15px !important; }
  .fiche-top-bar .fiche-info { padding: 0 !important; }
  #ficheMapModal > div > button { width: 40px !important; height: 40px !important; font-size: 22px !important; background: #fff !important; border: none !important; box-shadow: 0 2px 8px rgba(0,0,0,.3); position: fixed !important; top: 16px !important; right: 16px !important; }
  .fiche-side { order: -1; position: static; }
  .machines-card { grid-template-columns: 1fr !important; gap: 20px !important; }
  .machines-card > div:last-child { padding-top: 0 !important; }
  .fiche-top-bar .fiche-site-btn { display: none !important; }
  .machine-meta-grid { grid-template-columns: 1fr !important; gap: 12px !important; }
  .fiche-nav-links a { display: none; }
  .fiche-nav-company-name { display: block; font-size: 18px; font-weight: 600; color: var(--color-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
  .dashboard-nav { display: flex; position: sticky; top: 72px; left: 0; right: 0; background: #fff; border-bottom: 1px solid var(--color-border); flex-direction: row; justify-content: space-between; padding: 0; margin: 0 -20px; z-index: 1000; gap: 0; height: 60px; overflow-x: auto; -ms-overflow-style: none; scrollbar-width: none; }
  .dashboard-nav::-webkit-scrollbar { display: none; }
  .dashboard-nav .nav-label { display: none; }
  .dashboard-nav a { flex: 0 0 auto; display: flex; flex-direction: row; align-items: center; justify-content: center; padding: 0 14px; margin: 0 !important; border-bottom: none; gap: 0; position: relative; }
  .dashboard-nav .nav-logout { margin: 0 !important; }
  .dashboard-nav a.active { border-bottom: none; }
  .dashboard-nav a.active::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 2px; background: var(--color-accent); }
  .dashboard-nav .nav-badge { display: none; }
  .dashboard-nav .nav-count { display: none; }
  .expertise-checks { grid-template-columns: repeat(2, 1fr); }

  /* Annuaire sticky header */
  .annuaire-sticky-header { position: fixed; top: 72px; left: 0; right: 0; z-index: 999; background: #fff !important; padding: 0; }
  #annuaireStickyPlaceholder { display: block; }
  #annuaireSearchBar { padding: 0 !important; border: none !important; margin: 0; }
  #annuaireSearchBar > div { background: #fff; border: none !important; border-radius: 0; padding: 12px !important; }
  #annuaireSearchBar .search-icon-input { left: 8px !important; }
  #machinesSearchBar, #fabricantsSearchBar { padding: 0 !important; border: none !important; margin: 0; }
  #machinesSearchBar > div, #fabricantsSearchBar > div { background: #fff; border: none !important; border-radius: 0; padding: 12px !important; }
  #machinesSearchBar .search-icon-input, #fabricantsSearchBar .search-icon-input { left: 8px !important; }
  .annuaire-filter-bar { flex-direction: row; align-items: center; justify-content: space-between; padding: 15px 20px; background: #fff; gap: 10px; border-top: 1px solid var(--color-border); border-bottom: 1px solid var(--color-border); margin: 0; }
  .filter-bar-left { order: 2; flex-wrap: nowrap; gap: 12px; }
  .filter-bar-left .filter-bar-item { display: none; }
  .filter-modal-trigger { font-size: 15px; font-weight: 500; display: flex; }
  .filter-modal-trigger .filter-badge { display: inline-flex; }
  .filter-bar-right { order: 1; width: auto; margin-left: 0; justify-content: flex-start; }
  .filters-block { position: static; }
  .annuaire-columns { flex-direction: column; margin-top:0; padding: 0 0 40px 0 !important; }
  .page-annuaire .annuaire-columns { padding-top: 20px !important; }
  .fabricants-list .annuaire-columns { padding-top: 20px !important; }
  .page-offres-emploi .annuaire-columns { padding-top: 20px !important; }
  .annuaire-col-left { flex: none; width: 100%; }
  .results-list .result-card { flex-direction: column; }
  .results-list .result-card .photo { flex: none; width: 100%; height: 180px; margin: 0; padding: 0; }
  .results-list .result-card .info { justify-content: flex-start; padding: 12px; width: 100%; }
  .results-list .result-card h3 { margin: 0; }
  .machines-results .result-card .loc { margin-bottom: 0; }

  /* Annuaire hero */
  .annuaire-hero { background: transparent !important; padding: 0 !important; width: auto !important; }
  .annuaire-hero h1 { display: none; }
  .annuaire-hero form { margin: 0; padding: 0; }
  .annuaire-title { display: none; }
  .offres-title { display: none; }
  .annuaire-hero .container { padding: 0; }

  /* Search bar: icon only, no blue background */
  .search-engine .search-engine-icon { display: flex !important; align-items: center; justify-content: center; color: #fff; flex-shrink: 0; }
  .search-submit-btn { display: none !important; }
  .search-engine { align-items: center !important; }

  /* Homepage company cards */
  .card-company .thumb { height: 336px !important; }

  /* Homepage hero */
  .page-home .hero { height: 100dvh; }
  .page-home .hero-content { text-align: center; justify-content: center; }
  .page-home .hero-content h1 { font-size: 40px; text-align: center; }
  .page-home .hero-content .hero-sector-line { font-size: 40px; text-align: center; font-family:"General Sans",sans-serif;font-optical-sizing:auto;font-weight:900;line-height:1.0;text-transform:uppercase; }
  .page-home .hero .search-engine { flex-direction: row; width:100%; height: 60px; }
  .page-home .hero .search-engine input { padding-left: 15px !important; font-size: 15px !important; }
  .page-home .hero > video { display: none; }
  .hero-content-wrapper { padding-top: 0; }
  .region-grid { display: flex; gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; padding-bottom: 10px; margin: 40px 0 0 !important; padding-left: 20px; padding-right: 20px; }
  .region-grid::-webkit-scrollbar { display: none; }
  .region-grid .region-card { flex: 0 0 65vw; min-width: 0; scroll-snap-align: start; }
  .region-grid .region-card-cta { display: none; }
  .ajouter-entreprise-box { display: block !important; width: 100%; margin: 20px 0 0 !important; }
  .page-home .hero-content-wrapper .section:first-child { padding-top: 20px !important; padding-bottom: 20px !important; }
  .page-home .hero-content-wrapper .grid-2 { gap: 20px !important; }
  .page-home .hero-content-wrapper .grid-2 .section { padding: 0 !important; }
  .page-home .hero-content-wrapper .grid-2 .section > a { display: block; }
  .page-home .hero-content-wrapper .grid-2 .section > a.hero-add-company { margin-left: 0 !important; font-size: 13px; margin-top: 20px; }
  .page-home .hero-content-wrapper .section:first-child { padding-bottom: 0 !important; }
  .page-home .hero-content-wrapper .section:nth-child(2) { margin-top: 0 !important; padding-top: 0 !important; }
  .page-home .hero-content-wrapper > .section:nth-child(2) .container { padding-top: 0 !important; }
  .page-home .hero-content-wrapper .grid-3 { row-gap: 20px; }
  .page-home .hero-content-wrapper section:nth-of-type(3) { padding-top: 0 !important; padding-bottom: 0 !important; }
  .page-home .hero-content-wrapper section:nth-of-type(4) { margin-top: 40px !important; }
  .page-home .hero-content-wrapper section:nth-of-type(3) .container[style*="margin-top"] { margin-top: 20px !important; }
  .page-home .site-footer { margin-top: 0; }
  .page-home .mediumtitle { margin-bottom: 40px; }
  .page-home section[style*="f9f7f2"] { margin-top: 60px !important; }
  .page-home .section:last-of-type .container { padding-top: 0px !important; }
  .page-home .section:last-of-type { padding-bottom: 20px !important; }

  /* Annuaire map modal fullscreen */
  #annuaireMapModal > div { width: 100% !important; max-width: 100% !important; height: 100% !important; border-radius: 0; }
  #annuaireMapModal > div > button { width: 40px !important; height: 40px !important; font-size: 22px !important; background: #fff !important; border: none !important; box-shadow: 0 2px 8px rgba(0,0,0,.3); }
  #ficheMapModal > div { width: 100% !important; max-width: none !important; height: 100% !important; border-radius: 0; }

  /* Homepage last article */
  .home-article-grid { grid-template-columns: 1fr !important; gap: 0 !important; margin-top: 60px !important; align-items: stretch !important; }
  .home-article-grid > a:first-child { width: 100%; display: block; }
  .home-article-grid .thumb { height: 260px !important; position: relative; overflow: hidden; }
  .home-article-grid .thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
  .home-article-grid > div { padding: 40px 20px !important; }

  /* Blog */
  .card-post .thumb { height: 230px !important; aspect-ratio: auto !important; }

  /* Gallery */
  .gallery-main { padding: 50px 50px 0; }
  .gallery-main img { max-height: calc(100vh - 130px); }
  .gallery-arrow { width: 36px; height: 36px; }
  .gallery-prev { left: 6px; }
  .gallery-next { right: 6px; }
  .gallery-thumbs img { width: 52px; height: 40px; min-height: 40px; max-height: 40px; }

  /* Fiche */
  .fiche-gallery { flex-direction: column; align-items: stretch; }
  .fiche-gallery-right { flex: none; width: 100%; }
  .fiche-gallery-main { height: 260px; }
  .fiche-gallery-item { height: 180px; }
  .fiche-gallery-right .fiche-map { height: 180px; }
  .fiche-gallery-right--single .fiche-map { height: 260px; }
  .fiche-gallery-video { height: 180px; }
  .fiche-gallery-right--single .fiche-gallery-video { height: 260px; }
  .fiche-main { overflow: hidden; min-width: 0; }
  .fiche-main .block { overflow: hidden; min-width: 0; }
  .fiche-info { gap: 14px; }
  .fiche-info-logo { width: 56px; height: 56px; }
  .fiche-info-name { display: none; }
  .fiche-nav { padding: 6px 0; }
  .fiche-nav-links { gap: 16px; }
  .fiche-expertises-grid { grid-template-columns: repeat(2, 1fr); }
  .fiche-side .info-row { flex-wrap: wrap; }
  .fiche-side .info-row > * { min-width: 0; }
  #certifications { grid-template-columns: 1fr !important; gap: 20px !important; }
  .fiche-main [style*="repeat(6"] { grid-template-columns: repeat(3, 1fr) !important; }
  .fiche-main .equipments-table { font-size: 13px; }
  .fiche-main .equipments-table th, .fiche-main .equipments-table td { padding: 8px 4px; white-space: nowrap; }
  .fiche-side { order: -1; margin-top:20px; position: static; background: var(--color-bg-secondary); }
  .fichedesc {margin-top:-10px}
  .contact-img { display: none; }
  #ficheMapModal > div { width: 100% !important; max-width: none !important; height: 100vh !important; border-radius: 0 !important; }

  /* Article */
  .article-title { font-size: 38px; }

  /* Job detail */
  .job-detail { flex-direction: column; gap: 30px; }
  .job-detail-sidebar { flex: none; width: 100%; order: -1; position: static !important; }
  .job-detail-sidebar .block { position: static !important; }
  .job-detail-main { width: 100%; }
  .job-detail-meta { gap: 6px 22px !important;}
  .job-top-bar { padding: 15px 0 0 !important; }
  .job-top-bar .fiche-breadcrumb { padding: 0 !important; margin-bottom: 15px !important; }
  .job-top-bar h2 { margin-bottom: 15px !important; }

  /* Guides */
  .guides-layout { flex-direction: column; }
  .guides-sidebar { display: none; }
  .guides-content { width: 100%; margin-top:-20px;}
  .guides-grid { grid-template-columns: 1fr !important; }
  .guides-grid-time {padding-top:0px;}
  .blog-list-item { flex-direction: column; gap: 12px; }
  .blog-list-thumb, .blog-list-thumb img { width: 100%; }
  .blog-list-thumb img { height: auto; max-height: 220px; }

  /* Others */
  .index-title {font-size:40px;font-weight:400;line-height:1.1;}
  .block { padding: 20px; }
  .page-admin .container { padding: 0 20px; overflow-x: clip; }
  .page-admin .bg-secondary { overflow-x: clip; }
  .offer-row { flex-wrap:wrap;gap:10px 0; }
  .offer-row > div:last-child { width:100% !important; margin-left:0 !important; }

  /* Devis modal mobile */
  .devis-modal{flex-direction:column}
  .devis-modal-left{display:block;flex:0 0 180px;position:relative;height:180px;max-height:180px;overflow:hidden}
  .devis-modal-bg{position:absolute;inset:0}
  .devis-modal-logo{display:none}
  .devis-modal-right{align-items:flex-start;padding:0;overflow-y:auto;padding-bottom:80px}
  .devis-modal-form{max-width:100%;padding:20px}
  .devis-modal-close{position:fixed;top:12px;right:12px;background:rgba(255,255,255,.9);border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;z-index:10;box-shadow:0 2px 8px rgba(0,0,0,.15)}
  .devis-step-actions{position:fixed;bottom:0;left:0;right:0;background:#fff;padding:12px 20px;display:flex;gap:12px;z-index:10;box-shadow:0 -2px 8px rgba(0,0,0,.08)}
  .compare-bar-inner{flex-direction:column;gap:10px}
  .compare-bar-slots{width:100%}
  .compare-slot{max-width:none}
  .compare-bar-actions{width:100%}
  .compare-bar-actions .btn{flex:1}
  .page-header-wrapper{max-width:100%!important}
  .equipements-page { padding-top: 0 !important; }
  .equipements-page .grid-2 { gap: 0 !important; }
  .equipements-page .grid-2 .section { padding-top: 40px !important; }
  .blog-article-top { padding: 20px 0 !important; }
  .blog-article-top .container.section { padding-top: 0 !important; padding-bottom: 0 !important; }
  .blog-article-top .page-header-wrapper { margin-top: 0 !important; }
  .blog-top .container.section { padding-top: 20px !important; padding-bottom: 20px !important; }
  .blog-list-header h1 { font-size: 34px !important; }
  .title-card { font-size: 17px !important; }
  .contact-page .grid-2 { gap: 20px !important; padding: 0 !important; }
  .contact-page h1 { margin-bottom: 20px; }
  .guides-top .container.section { padding: 20px 0 !important; }
  .guides-top .page-header-wrapper {padding:20px; margin: 0 !important; }
  .guides-page .container.section { padding-top: 0 !important; }
  .guide-article-top { padding: 20px 0 !important; }
  .guide-article-top .container.section { padding-top: 0 !important; padding-bottom: 0 !important; }
  .guide-article-top .page-header-wrapper { margin-top: 0 !important; }
  .stats-page .stat-evolution-row { flex-wrap: wrap !important; }
  .stats-page .stats-three-grid { grid-template-columns: 1fr !important; }

  /* Pricing tooltip icons */
  .pricing-table .tag-cert img { width: 28px !important; height: 28px !important; }
}

.page-hero-decor { position: relative; overflow: hidden; }
.page-hero-decor::after { content: ''; position: absolute; right: -60px; bottom: -120px; width: 280px; height: 280px; background: url('../img/icon-logo1.svg') no-repeat center / contain; transform: rotate(30deg); pointer-events: none; z-index: 0; }
.page-hero-decor > * { position: relative; z-index: 1; }
@media (max-width: 900px) {
  .page-hero-decor::after { width: 150px; height: 150px; right: -20px; bottom: -20px; }
}

/* ===== Shared modal system ===== */
.modal-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, .45);
  z-index: 12000;
  align-items: center;
  justify-content: center;
}
.modal-overlay.open { display: flex; }
.modal {
  background: #fff;
  max-width: 480px;
  width: calc(100% - 32px);
  padding: 24px;
}
.modal-sm { max-width: 420px; }
.modal-lg { max-width: 520px; }
.modal-title { font-weight: 500; font-size: 22px; color: var(--color-text); margin-bottom: 6px; }
.modal-text { font-size: 15px; line-height: 1.4; margin-bottom: 20px; }
.modal-text--sm { margin-bottom: 16px; }
.modal-actions { display: flex; gap: 12px; justify-content: flex-end; align-items: center; margin-top: 20px; }
.modal-success { text-align: center; }
.modal-success .success-icon { margin-left: auto; margin-right: auto; }
.success-icon { width: 52px; height: 52px; border-radius: 50%; background: #e8f5e9; color: #2e7d32; display: flex; align-items: center; justify-content: center; margin-bottom: 16px; }
.modal-field-label { display: block; font-size: 14px; font-weight:600; color: var(--color-text); margin-bottom: 6px; }
.modal-field { width: 100%; box-sizing: border-box; padding: 10px 12px; border: 1px solid var(--color-border); border-radius: 0px; font-family: var(--font-main); font-size: 15px; line-height:1.3; resize: vertical; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
