:root {
  --color-primary: #E67E22;
  --color-primary-hover: color-mix(in srgb, var(--color-primary) 73%, #000);
  --color-primary-active: color-mix(in srgb, var(--color-primary) 62%, #000);
  --color-primary-ink: color-mix(in srgb, var(--color-primary) 68%, #000);
  --color-primary-light: color-mix(in srgb, var(--color-primary) 58%, #fff);
  --color-primary-soft: color-mix(in srgb, var(--color-primary) 9%, #fff);
  --color-primary-soft-hover: color-mix(in srgb, var(--color-primary) 18%, #fff);
  --color-primary-border: color-mix(in srgb, var(--color-primary) 55%, #fff);
  --color-primary-focus: color-mix(in srgb, var(--color-primary) 35%, transparent);
  color-scheme: light;
  --ink: #0d1c2b;
  --navy: #0d1b2a;
  --navy-2: #071827;
  --muted: #6b7280;
  --line: #dce0e5;
  --paper: #ffffff;
  --panel: #ffffff;
  --soft: #f5f7fa;
  --brand: var(--color-primary);
  --brand-dark: var(--color-primary-hover);
  --accent: var(--color-primary);
  --gold: var(--color-primary);
  --ok: #147a46;
  --shadow: 0 18px 45px rgba(7, 24, 39, 0.14);
  font-family: Montserrat, ui-sans-serif, system-ui, sans-serif;
}

/* Portail comptes, dossiers et administration */
.portal-auth{min-height:calc(100vh - 90px);background:linear-gradient(145deg,#071827,#102b40);padding:48px max(24px,calc((100% - 1100px)/2));color:#fff}.portal-auth .brand{display:flex;margin:0 auto 34px;width:max-content}.auth-heading{text-align:center;max-width:720px;margin:0 auto 34px}.auth-heading h1,.auth-form-card h1{color:#fff}.auth-choice{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.auth-choice article,.auth-form-card{background:#fff;color:#263746;border-radius:20px;padding:32px;box-shadow:0 22px 55px #0004}.auth-choice h2,.auth-form-card h1{color:#071827}.auth-choice article{display:flex;flex-direction:column;gap:14px;text-align:center}.auth-icon{font-size:42px}.auth-choice .secondary{color:#071827}.auth-form-card{max-width:530px;margin:auto}.auth-form-card.wide{max-width:880px}.auth-form-card form:not(.portal-form-grid){display:grid;gap:16px}.auth-form-card label,.portal-form-grid label{display:grid;gap:7px;font-weight:700}.auth-form-card input,.auth-form-card select,.auth-form-card textarea,.portal-form-grid input,.portal-form-grid select,.portal-form-grid textarea,.inline-upload input,.inline-upload select,.message-form input,.message-form select,.message-form textarea{width:100%;padding:13px;border:1px solid #cad3dc;border-radius:9px;background:#fff}.auth-links{display:flex;justify-content:space-between;gap:12px;margin-top:18px}.auth-links button,.text-link{border:0;background:none;color:var(--color-primary-ink);text-decoration:underline;cursor:pointer}.demo-note{background:#f2f5f8;padding:12px;border-radius:8px;margin-top:20px;font-size:13px}.portal-form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.portal-form-grid .full{grid-column:1/-1}.portal-form-grid .check{display:flex;grid-template-columns:auto 1fr;align-items:center}.portal-form-grid .check input{width:auto}.form-error{color:#c0392b;min-height:20px}.success-box{background:#e7f7ed;color:#176b39;padding:18px;border-radius:10px}.portal{display:grid;grid-template-columns:270px 1fr;min-height:780px;background:#f5f7fa}.portal-sidebar{background:#071827;color:#fff;padding:24px 16px;display:flex;flex-direction:column}.portal-user{display:flex;align-items:center;gap:12px;padding:8px 8px 22px;border-bottom:1px solid #ffffff24}.portal-user>span{display:grid;place-items:center;width:43px;height:43px;border-radius:50%;background:var(--color-primary);font-weight:900}.portal-user div{display:grid;min-width:0}.portal-user small{opacity:.68;overflow:hidden;text-overflow:ellipsis}.portal-sidebar nav{display:grid;gap:5px;margin:22px 0}.portal-sidebar nav button,.portal-logout{border:0;background:transparent;color:#dbe6ee;text-align:left;padding:11px 13px;border-radius:8px;font-weight:650;cursor:pointer}.portal-sidebar nav button.active,.portal-sidebar nav button:hover{background:#ffffff18;color:#fff}.portal-logout{margin-top:auto;color:var(--color-primary-light)}.portal-main{padding:30px;min-width:0}.portal-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.portal-top h1{margin:2px 0;color:#071827}.portal-alert{background:#fff;padding:10px 14px;border-radius:12px;box-shadow:0 4px 18px #0d1b2a12}.portal-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:22px}.portal-stat,.portal-card,.project-detail{background:#fff;border-radius:14px;padding:20px;box-shadow:0 5px 22px #0d1b2a0c}.portal-stat strong{display:block;font-size:28px;color:var(--color-primary)}.portal-stat span{font-size:13px;color:#566675}.portal-card h2{margin-top:0}.portal-table-wrap{overflow:auto}.portal-table-wrap table{width:100%;border-collapse:collapse;min-width:720px}.portal-table-wrap th,.portal-table-wrap td{padding:13px 12px;text-align:left;border-bottom:1px solid #e8edf1}.portal-table-wrap th{font-size:12px;text-transform:uppercase;color:#6c7a86}.portal-table-wrap td small{display:block;color:#7d8993}.portal-badge{display:inline-block;padding:5px 9px;border-radius:99px;background:#e6f4ea;color:#21723c;font-size:12px;font-weight:800;white-space:nowrap}.portal-badge.bad{background:#fee9e7;color:#a93226}.small-btn{border:1px solid var(--color-primary);background:var(--color-primary-soft);color:var(--color-primary-ink);padding:7px 10px;border-radius:7px;cursor:pointer}.project-title,.company-row{display:flex;align-items:center;justify-content:space-between;gap:18px}.project-progress{height:8px;background:#e7edf1;border-radius:99px;overflow:hidden;margin:18px 0}.project-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--color-primary),var(--color-primary-light))}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:20px 0}.detail-grid section{background:#f7f9fb;padding:18px;border-radius:10px}.history-item{border-left:2px solid var(--color-primary);padding-left:12px}.inline-upload{display:grid;grid-template-columns:1fr 1fr 1.4fr 1.4fr auto;gap:10px;align-items:center;margin:16px 0 22px}.portal-warning{background:var(--color-primary-soft);border-left:4px solid var(--color-primary);padding:16px;border-radius:8px;margin-bottom:20px}.list-card,.company-row{border-bottom:1px solid #e7edf1;padding:15px 4px}.list-card{display:grid;gap:8px}.company-row div{display:grid}.company-row span{color:#6b7884}.message-list{display:grid;gap:10px;max-height:420px;overflow:auto}.message-list article{background:#f5f7fa;border-radius:10px;padding:14px}.message-list small{display:block;color:#788591}.message-form{display:grid;grid-template-columns:180px 1fr;gap:10px;margin-top:20px}.message-form textarea{grid-column:1/-1}.message-form button{width:max-content}.admin-doc-actions{color:#687783}.portal .text-link{margin-bottom:14px}
@media(max-width:1000px){.portal-stats{grid-template-columns:repeat(2,1fr)}.inline-upload{grid-template-columns:1fr 1fr}.portal{grid-template-columns:220px 1fr}}
@media(max-width:760px){.auth-choice,.portal-form-grid,.detail-grid{grid-template-columns:1fr}.portal-form-grid .full{grid-column:auto}.portal{display:block}.portal-sidebar{position:relative}.portal-sidebar nav{grid-template-columns:repeat(2,1fr)}.portal-main{padding:20px 14px}.portal-stats{grid-template-columns:1fr 1fr}.inline-upload,.message-form{grid-template-columns:1fr}.message-form textarea{grid-column:auto}.auth-links{flex-direction:column}.portal-top{align-items:flex-start}.project-title,.company-row{align-items:flex-start;flex-wrap:wrap}}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: Montserrat, ui-sans-serif, system-ui, sans-serif;
  overflow-x: hidden;
}
img, svg, video, canvas { max-width: 100%; height: auto; }
main, section, article, aside, form, fieldset { min-width: 0; }
button, input, select, textarea { font: inherit; }
button {
  border: 0;
  border-radius: 12px;
  background: transparent;
  color: inherit;
  cursor: pointer;
}
button.primary, .primary {
  background: var(--brand);
  color: #24211e;
  padding: 12px 18px;
  font-weight: 800;
}
button.primary:hover { background: var(--brand-dark); color:#fff; }
button.secondary, .secondary {
  background: #f3f4f6;
  border: 1px solid #dce0e5;
  color: var(--ink);
  padding: 12px 18px;
  font-weight: 800;
}
button.secondary:hover { background: #e5e7eb; }
input, select, textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 12px;
  min-height: 44px;
  padding: 10px 12px;
  background: #fff;
  color: var(--ink);
}
textarea { min-height: 120px; resize: vertical; }
label { display: grid; gap: 7px; font-weight: 800; color: #3d3b36; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, p { margin-top: 0; }
h1 { font-size: clamp(38px, 5vw, 64px); line-height: 1.02; letter-spacing: 0; text-transform: uppercase; font-weight: 800; }
h2 { font-size: clamp(24px, 3vw, 38px); line-height: 1.08; font-weight: 800; }
h3 { font-size: 20px; }
.site-shell { min-height: 100vh; }
.site-header {
  position: sticky;
  top: 0;
  z-index: 10;
  min-height: 76px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 18px;
  padding: 14px clamp(16px, 4vw, 44px);
  background: rgba(13, 27, 42, .95);
  border-bottom: 1px solid rgba(255,255,255,.12);
  backdrop-filter: blur(12px);
}
.brand {
  display: inline-grid;
  line-height: .92;
  font-size: 22px;
  font-weight: 950;
  letter-spacing: 0;
  color: #fff;
}
.brand span { color: var(--brand); }
.brand small {
  color: #dce3ea;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  margin-top: 5px;
}
.brand.centered { justify-items: center; margin-bottom: 18px; }
.login-panel .brand { color: var(--ink); }
.login-panel .brand small { color: var(--muted); }
.main-nav {
  display: flex;
  justify-content: center;
  gap: 3px;
  flex-wrap: wrap;
}
.main-nav button {
  padding: 10px 11px;
  color: #fff;
  font-weight: 800;
}
.main-nav button.active, .main-nav button:hover {
  color: #fff;
  background: rgba(255,255,255,.12);
}
.menu-button { display: none; }
.hero {
  min-height: calc(100vh - 76px);
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(320px, .5fr);
  align-items: center;
  gap: clamp(22px, 5vw, 70px);
  padding: clamp(42px, 7vw, 92px) clamp(16px, 6vw, 84px);
  background:
    linear-gradient(90deg, rgba(7,24,39,.94) 0%, rgba(13,27,42,.88) 48%, rgba(13,27,42,.54) 100%),
    url("https://images.unsplash.com/photo-1528045274453-130d434bdae2?auto=format&fit=crop&w=1800&q=80") center/cover;
}
.hero-copy { max-width: 850px; }
.hero-copy h1 { color: #fff; }
.hero-copy p { font-size: 18px; line-height: 1.7; max-width: 720px; color: #e5edf4; }
.eyebrow {
  color: var(--brand);
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: 0;
  margin-bottom: 10px;
}
.hero-actions, .actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}
.hero .secondary, .band .secondary, .energy-band .secondary {
  background: rgba(255,255,255,.12);
  border-color: rgba(255,255,255,.28);
  color: #fff;
}
.hero .secondary:hover, .band .secondary:hover, .energy-band .secondary:hover {
  background: rgba(255,255,255,.2);
}
.quick-card, .form-panel, .filters, .panel, .login-panel {
  background: rgba(255,255,255,.96);
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: var(--shadow);
}
.quick-card {
  padding: 22px;
  display: grid;
  gap: 12px;
}
.muted { color: var(--muted); }
.stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #fff;
}
.stats article {
  min-height: 118px;
  padding: 22px;
  display: grid;
  place-items: center;
  text-align: center;
  border-right: 1px solid var(--line);
}
.stats strong { font-size: clamp(30px, 4vw, 52px); color: var(--brand); }
.stats span { font-weight: 800; color: #0d1c2b; }
.band, .section, .page-section, .energy-band {
  padding: clamp(44px, 7vw, 92px) clamp(16px, 6vw, 84px);
}
.band {
  background: var(--navy);
  color: #fff;
}
.band .eyebrow { color: var(--brand); }
.steps, .work-grid, .energy-list, .feature-grid, .energy-cards {
  display: grid;
  gap: 16px;
}
.steps { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 26px; }
.steps article {
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 12px;
  padding: 18px;
}
.steps span { color: var(--brand); font-weight: 950; }
.section-head { max-width: 780px; margin-bottom: 26px; }
.work-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.work-card, .feature-grid article, .energy-cards article {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 18px;
  display: grid;
  align-content: space-between;
  gap: 14px;
}
.pill, .chips span, .tags span, .status {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  border-radius: 999px;
  padding: 5px 9px;
  font-size: 12px;
  font-weight: 900;
  background: #ecf7f3;
  color: #0d1c2b;
}
.energy-band {
  color: #fff;
  background:
    linear-gradient(90deg, rgba(13, 27, 42, .96), rgba(13, 27, 42, .86)),
    url("https://images.unsplash.com/photo-1500530855697-b586d89ba3ee?auto=format&fit=crop&w=1800&q=80") center/cover;
}
.energy-band .eyebrow { color: var(--brand); }
.energy-list { grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 28px 0; }
.energy-list article {
  border-left: 3px solid var(--brand);
  padding-left: 14px;
}
.site-footer {
  display: grid;
  grid-template-columns: 1.4fr .8fr .8fr;
  gap: 24px;
  padding: 34px clamp(16px, 6vw, 84px);
  background: var(--navy-2);
  color: #fff8ed;
}
.site-footer button {
  display: block;
  color: #fff8ed;
  padding: 7px 0;
  text-align: left;
}
.legal {
  grid-column: 1 / -1;
  color: #cfc5b6;
  border-top: 1px solid rgba(255,255,255,.12);
  padding-top: 16px;
  margin-bottom: 0;
}
.page-section { min-height: 70vh; }
.page-section.narrow { max-width: 980px; margin: 0 auto; }
.progress {
  height: 9px;
  background: #e5e7eb;
  border-radius: 999px;
  overflow: hidden;
  margin: 22px 0;
}
.progress div { height: 100%; background: var(--brand); transition: width .2s ease; }
.stepper {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 18px;
}
.stepper button {
  min-height: 68px;
  padding: 10px;
  background: #f5f7fa;
  border: 1px solid var(--line);
  font-weight: 800;
  text-align: left;
}
.stepper button.active {
  background: var(--brand);
  color: #fff;
}
.stepper span { display: block; font-size: 12px; opacity: .75; }
.form-panel {
  padding: clamp(18px, 4vw, 30px);
}
.choice-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 18px 0;
}
.choice-grid button {
  min-height: 58px;
  padding: 12px;
  background: #f5f7fa;
  border: 1px solid var(--line);
  font-weight: 800;
  text-align: left;
}
.choice-grid button.selected {
  border-color: var(--brand);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary) 16%, transparent);
  background: #fff;
}
.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.full { grid-column: 1 / -1; }
.summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 18px;
}
.summary p {
  border-bottom: 1px solid var(--line);
  padding-bottom: 8px;
  margin: 0;
}
.summary strong, .summary span { display: block; }
.finder {
  display: grid;
  grid-template-columns: 310px 1fr;
  gap: 20px;
  align-items: start;
}
.filters {
  position: sticky;
  top: 92px;
  padding: 18px;
  display: grid;
  gap: 13px;
}
.panel-head, .card-top, .dashboard-head {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: flex-start;
}
.check {
  display: flex;
  align-items: center;
  gap: 10px;
}
.check input { width: auto; min-height: auto; }
.results h2 { margin-bottom: 14px; }
.artisan-list { display: grid; gap: 14px; }
.artisan-card {
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 15px;
  padding: 18px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 7px 20px rgba(33, 28, 21, .06);
}
.avatar {
  width: 56px;
  height: 56px;
  border-radius: 8px;
  display: grid;
  place-items: center;
  background: var(--brand);
  color: #fff;
  font-weight: 950;
  font-size: 22px;
}
.chips, .tags {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: 10px 0;
}
.tags span {
  background: #f2ece2;
  color: #3f3a33;
}
.details {
  margin-top: 14px;
  padding: 14px;
  border-radius: 8px;
  background: #f5f7fa;
}
.supplier-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, .42fr);
  gap: 24px;
  align-items: stretch;
  padding: clamp(26px, 5vw, 56px);
  color: #fff;
  background:
    linear-gradient(90deg, rgba(7,24,39,.96), rgba(13,27,42,.78)),
    url("https://images.unsplash.com/photo-1581092160607-ee22621dd758?auto=format&fit=crop&w=1600&q=80") center/cover;
  border-radius: 12px;
  box-shadow: var(--shadow);
}
.supplier-hero h1 { color: #fff; }
.supplier-hero p {
  max-width: 850px;
  color: #e6edf4;
  font-size: 17px;
  line-height: 1.75;
}
.supplier-balance {
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 12px;
  padding: 20px;
  backdrop-filter: blur(8px);
}
.supplier-balance h2 { color: #fff; font-size: 24px; }
.supplier-balance p {
  margin-bottom: 13px;
  padding-bottom: 13px;
  border-bottom: 1px solid rgba(255,255,255,.16);
}
.supplier-balance p:last-child { border-bottom: 0; margin-bottom: 0; padding-bottom: 0; }
.supply-flow {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin: 22px 0 42px;
}
.supply-flow article {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 18px;
  box-shadow: 0 8px 22px rgba(7,24,39,.06);
}
.supply-flow span {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--brand);
  color: #fff;
  font-weight: 950;
  margin-bottom: 12px;
}
.supply-flow p { color: var(--muted); line-height: 1.55; margin-bottom: 0; }
.supplier-head { margin-bottom: 18px; }
.supplier-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.supplier-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 20px;
  box-shadow: 0 8px 22px rgba(7,24,39,.06);
}
.supplier-badge {
  display: inline-flex;
  width: fit-content;
  padding: 6px 10px;
  border-radius: 999px;
  background: var(--color-primary-soft);
  color: var(--color-primary-ink);
  font-size: 12px;
  font-weight: 950;
  text-transform: uppercase;
  margin-bottom: 14px;
}
.supplier-card h3 { margin-bottom: 8px; }
.supplier-image{display:block;width:100%;height:155px;object-fit:contain;margin-bottom:16px;border-radius:8px;background:#f8f6f1}
.supplier-contact{display:flex;flex-wrap:wrap;gap:10px 16px;margin-top:16px;overflow-wrap:anywhere}
.supplier-contact a{color:var(--color-primary-ink);text-decoration:underline;text-underline-offset:3px}
.supplier-grid>p{grid-column:1/-1;padding:25px 20px;background:#fff;border:1px solid var(--line);border-radius:12px}
.partner-admin-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:start}
.partner-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.partner-form label{display:grid;gap:7px;min-width:0}
.partner-form .full{grid-column:1/-1}
.partner-form input:not([type="checkbox"]),.partner-form textarea{width:100%;min-width:0}
.partner-admin-card{border-top:1px solid var(--line);padding:16px 0}
.partner-admin-card h3{margin:0 0 8px}
.partner-admin-card p{margin:5px 0;overflow-wrap:anywhere}
.partner-preview{width:150px;height:110px;object-fit:contain}
@media(max-width:900px){.partner-admin-layout{grid-template-columns:1fr}}
@media(max-width:520px){.partner-form{grid-template-columns:1fr}.partner-form .full{grid-column:1}.partner-admin-card .editor-toolbar>button{flex:1 1 auto}}
.supplier-benefits {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px;
}
.supplier-benefits span {
  display: inline-flex;
  width: fit-content;
  padding: 6px 9px;
  border-radius: 999px;
  background: #f5f7fa;
  color: #253446;
  font-size: 12px;
  font-weight: 800;
}
.supplier-note {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 22px;
  align-items: center;
  margin-top: 30px;
  padding: 24px;
  background: var(--navy);
  color: #fff;
  border-radius: 12px;
}
.supplier-note h2 { color: #fff; }
.supplier-note p { color: #dce3ea; margin-bottom: 0; }
.energy-hero {
  max-width: 1000px;
  padding: clamp(24px, 5vw, 48px);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: var(--shadow);
  margin-bottom: 24px;
}
.aid-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, .42fr);
  gap: 24px;
  align-items: stretch;
  padding: clamp(24px, 5vw, 52px);
  color: #fff;
  background:
    linear-gradient(90deg, rgba(7,24,39,.96), rgba(13,27,42,.86)),
    url("https://images.unsplash.com/photo-1494526585095-c41746248156?auto=format&fit=crop&w=1600&q=80") center/cover;
  border-radius: 12px;
  box-shadow: var(--shadow);
}
.aid-hero h1 { color: #fff; max-width: 900px; }
.aid-hero p { color: #e6edf4; font-size: 17px; line-height: 1.75; max-width: 860px; }
.link-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  border-radius: 12px;
}
.aid-checklist {
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 12px;
  padding: 20px;
  backdrop-filter: blur(8px);
}
.aid-checklist h2 { color: #fff; font-size: 24px; }
.aid-checklist p {
  margin-bottom: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(255,255,255,.18);
}
.aid-checklist p:last-child { border-bottom: 0; margin-bottom: 0; padding-bottom: 0; }
.aid-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin: 20px 0 34px;
}
.aid-strip article {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 16px;
  box-shadow: 0 8px 22px rgba(7,24,39,.06);
}
.aid-strip strong {
  display: block;
  color: var(--brand);
  font-size: 28px;
  line-height: 1;
}
.aid-strip span {
  display: block;
  margin-top: 7px;
  font-weight: 800;
}
.aid-head { margin-top: 12px; }
.aid-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.aid-card {
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: 16px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 18px;
  box-shadow: 0 8px 22px rgba(7,24,39,.06);
}
.aid-icon {
  width: 72px;
  height: 72px;
  border-radius: 18px;
  display: grid;
  place-items: center;
  background: var(--navy);
  color: #fff;
  font-weight: 950;
  letter-spacing: 0;
}
.aid-card h3 { margin-bottom: 8px; font-size: 23px; }
.aid-source {
  color: var(--brand);
  font-size: 13px;
  font-weight: 900;
  text-transform: uppercase;
  margin-bottom: 6px;
}
.aid-best {
  display: grid;
  gap: 4px;
  padding: 12px;
  border-radius: 12px;
  background: #f5f7fa;
  margin: 14px 0;
}
.aid-best span { color: var(--muted); }
.aid-card ul {
  margin: 0 0 16px;
  padding-left: 18px;
  color: #333f4d;
}
.aid-card li { margin-bottom: 6px; }
.aid-card a, .source-links a {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  min-height: 38px;
  padding: 9px 12px;
  border-radius: 12px;
  background: var(--color-primary-soft);
  color: var(--color-primary-ink);
  font-weight: 900;
}
.aid-card a:hover, .source-links a:hover { background: var(--color-primary-soft-hover); }
.aid-flow {
  margin-top: 46px;
  padding: 28px;
  border-radius: 12px;
  background: #f5f7fa;
  border: 1px solid var(--line);
}
.flow-steps {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
}
.flow-steps article {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 16px;
}
.flow-steps span {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--brand);
  color: #fff;
  font-weight: 950;
  margin-bottom: 12px;
}
.flow-steps h3 { font-size: 18px; margin-bottom: 8px; }
.flow-steps p { color: var(--muted); margin-bottom: 0; line-height: 1.55; }
.source-panel {
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(0, 1fr);
  gap: 22px;
  margin-top: 32px;
  padding: 26px;
  background: var(--navy);
  color: #fff;
  border-radius: 12px;
}
.source-panel h2 { color: #fff; }
.source-panel p { color: #dce3ea; }
.source-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-content: start;
}
.feature-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 34px; }
.feature-grid.compact { grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 24px 0; }
.energy-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.energy-cards ul { padding-left: 18px; margin: 0; color: #4c463f; }
.notice {
  background: var(--color-primary-soft);
  border-left: 4px solid var(--brand);
  padding: 18px;
  border-radius: 12px;
  margin-top: 20px;
}
.login-page {
  min-height: calc(100vh - 76px);
  display: grid;
  place-items: center;
  padding: 28px 16px;
  background: #f5f7fa;
}
.login-panel {
  width: min(560px, 100%);
  padding: 28px;
  text-align: center;
}
.role-buttons {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
  margin: 18px 0;
}
.role-buttons button {
  background: var(--brand);
  color: #fff;
  padding: 11px;
  font-weight: 800;
}
.login-form {
  display: grid;
  gap: 12px;
  text-align: left;
}
.login-choice-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 20px 0;
}
.login-card {
  min-height: 170px;
  display: grid;
  gap: 10px;
  align-content: start;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  color: var(--ink);
  text-align: left;
  box-shadow: 0 8px 22px rgba(7,24,39,.06);
}
.login-card:hover {
  border-color: var(--brand);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary) 16%, transparent);
}
.login-card strong { font-size: 18px; }
.login-card span { color: var(--muted); line-height: 1.45; }
.login-card small {
  color: var(--brand);
  font-weight: 900;
  word-break: break-word;
}
.table-wrap {
  overflow-x: auto;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
}
table {
  width: 100%;
  border-collapse: collapse;
  min-width: 760px;
}
th, td {
  padding: 12px;
  border-bottom: 1px solid var(--line);
  text-align: left;
}
th { background: #f5f7fa; color: #0d1c2b; }
.admin-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-top: 18px;
}
.panel { padding: 18px; }
.mini {
  display: grid;
  gap: 4px;
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
}
.mini span { color: var(--muted); }
.request-track-grid {
  display: grid;
  gap: 16px;
  margin-top: 22px;
}
.tracking-card, .admin-request-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 18px;
  box-shadow: 0 8px 22px rgba(7,24,39,.06);
}
.assignment-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 16px 0;
}
.assignment-grid div {
  display: grid;
  gap: 5px;
  padding: 14px;
  border-radius: 12px;
  background: #f5f7fa;
}
.assignment-grid span { color: var(--muted); }
.timeline-line {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 14px 0;
}
.timeline-line span {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 7px 10px;
  border-radius: 999px;
  background: #e8edf3;
  color: #253446;
  font-size: 12px;
  font-weight: 900;
}
.timeline-line span.current {
  background: var(--color-primary-soft);
  color: var(--color-primary-ink);
}
.note-box {
  border-left: 4px solid var(--brand);
  background: var(--color-primary-soft);
  border-radius: 12px;
  padding: 14px;
}
.note-box p { margin: 6px 0 0; color: #4b5563; }
.admin-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr);
  gap: 18px;
  margin-top: 18px;
}
.admin-wide {
  grid-row: span 2;
}
.admin-request-list {
  display: grid;
  gap: 14px;
}
.admin-request-card {
  display: grid;
  gap: 14px;
}
.settings-form {
  display: grid;
  gap: 12px;
}

@media (max-width: 1080px) {
  .site-header { grid-template-columns: auto auto; }
  .site-header > .primary { display: none; }
  .menu-button { display: inline-flex; justify-self: end; }
  .main-nav {
    grid-column: 1 / -1;
    display: none;
    justify-content: start;
  }
  .main-nav.open { display: flex; }
  .hero, .finder { grid-template-columns: 1fr; }
  .filters { position: static; }
  .work-grid, .steps, .energy-list, .feature-grid, .energy-cards, .aid-grid, .flow-steps, .supplier-grid, .supply-flow, .login-choice-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .aid-hero, .source-panel, .supplier-hero, .supplier-note, .admin-layout { grid-template-columns: 1fr; }
  .admin-wide { grid-row: auto; }
}

@media (max-width: 720px) {
  h1 { font-size: 38px; }
  .hero { min-height: auto; padding-top: 36px; }
  .stats, .steps, .work-grid, .energy-list, .feature-grid, .energy-cards, .choice-grid, .form-grid, .summary, .admin-grid, .site-footer, .stepper, .role-buttons, .aid-strip, .aid-grid, .flow-steps, .supplier-grid, .supply-flow, .login-choice-grid, .assignment-grid {
    grid-template-columns: 1fr;
  }
  .site-footer { gap: 18px; }
  .full, .legal { grid-column: auto; }
  .artisan-card, .aid-card { grid-template-columns: 1fr; }
  .aid-icon { width: 58px; height: 58px; border-radius: 14px; }
  .aid-hero, .aid-flow, .source-panel, .supplier-hero, .supplier-note { padding: 20px; }
  .dashboard-head, .panel-head, .card-top { flex-direction: column; }
}

/* Responsive hardening: small laptops, tablets and phones */
@media (max-width: 1080px) {
  .site-header { padding-inline: 20px; }
  .main-nav.open {
    width: 100%;
    padding-top: 10px;
    border-top: 1px solid rgba(255,255,255,.12);
  }
  .main-nav.open button { flex: 1 1 180px; }
  .portal-top { gap: 16px; flex-wrap: wrap; }
}

@media (max-width: 760px) {
  html { scroll-padding-top: 72px; }
  body { overflow-wrap: anywhere; }
  h1 { font-size: clamp(30px, 10vw, 38px); }
  h2 { font-size: clamp(23px, 7vw, 30px); }

  .site-header {
    min-height: 68px;
    gap: 12px;
    padding: 11px 14px;
  }
  .brand { font-size: 19px; }
  .brand small { font-size: 9px; }
  .menu-button { min-height: 44px; padding: 10px 13px; }
  .main-nav.open { display: grid; grid-template-columns: 1fr; gap: 4px; }
  .main-nav.open button { width: 100%; min-height: 44px; text-align: left; }

  .band, .section, .page-section, .energy-band { padding: 38px 16px; }
  .hero { padding-inline: 16px; gap: 24px; }
  .hero-copy p, .aid-hero p, .supplier-hero p { font-size: 16px; }
  .quick-card, .form-panel, .filters, .panel, .login-panel,
  .tracking-card, .admin-request-card { padding: 16px; }

  .portal-auth { padding: 32px 14px; min-height: 100dvh; }
  .portal-auth .brand { margin-bottom: 24px; }
  .auth-heading { margin-bottom: 24px; }
  .auth-choice { gap: 14px; }
  .auth-choice article, .auth-form-card { padding: 20px 16px; border-radius: 14px; }

  .portal-sidebar { padding: 16px 12px; }
  .portal-sidebar nav {
    display: flex;
    gap: 6px;
    margin: 16px -2px 10px;
    padding: 0 2px 6px;
    overflow-x: auto;
    scrollbar-width: thin;
  }
  .portal-sidebar nav button { flex: 0 0 auto; min-height: 44px; white-space: nowrap; }
  .portal-logout { margin-top: 6px; }
  .portal-main { padding: 20px 12px 32px; }
  .portal-top { display: grid; align-items: start; margin-bottom: 18px; }
  .portal-alert { width: 100%; }
  .portal-card, .project-detail, .portal-stat { padding: 16px; }
  .portal-table-wrap, .table-wrap {
    margin-inline: -4px;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-inline: contain;
  }
  .portal-table-wrap table, table { min-width: 640px; }
  .project-title > *, .company-row > * { min-width: 0; }
  .company-row button, .project-title button { width: 100%; }
  .message-form button, .inline-upload button { width: 100%; }

  .supplier-note .primary, .source-links a, .aid-card a { width: 100%; }
  .source-links { display: grid; }
  .price-card > div { display: grid; }
  .price-card .small-btn { width: 100%; margin: 6px 0 0; }
  .editor-actions { display: grid; grid-template-columns: 1fr; }
  .editor-actions > * { width: 100%; }
}

@media (max-width: 480px) {
  .portal-stats { grid-template-columns: 1fr; }
  .stats article { min-height: 96px; padding: 18px 14px; border-right: 0; }
  .auth-links button, .text-link { min-height: 44px; text-align: left; }
  .cms-intro, .cms-body { padding: 16px; }
  .cms-section > summary { padding: 16px; }
  .aid-flow { margin-top: 28px; }
}

.price-card{border:1px solid #e4e9ed;border-left:4px solid var(--color-primary);border-radius:10px;padding:18px;margin:14px 0}.price-card>div{display:flex;justify-content:space-between;gap:12px}.price-card small{display:block;color:#74818c;margin-top:4px}.price-card .small-btn{margin-right:7px}.auth-choice article .secondary{margin-top:auto}
@media(max-width:1000px){.auth-choice{grid-template-columns:1fr}}
.editor-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:24px}.editor-heading h2{margin-bottom:6px}.editor-list{display:grid;gap:18px}.editor-partner-card{border:1px solid #dfe6eb;border-radius:14px;padding:20px;background:#fbfcfd}.editor-card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.editor-card-head strong{font-size:18px;color:#071827}.editor-card-head span{font-size:12px;background:#edf2f5;padding:5px 9px;border-radius:20px}.editor-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:18px}.danger-btn{border:1px solid #d9534f;background:#fff;color:#b52b27;padding:8px 11px;border-radius:7px;cursor:pointer}.editor-help{margin-top:22px;padding:16px;background:#eef6fb;border-left:4px solid #0d638c;border-radius:8px}.editor-help p{margin:5px 0 0}.content-editor textarea{min-height:90px}
@media(max-width:760px){.editor-heading{display:grid}.editor-heading .primary{width:100%}.editor-actions>*{flex:1}.editor-card-head{align-items:flex-start}}
.cms-intro{background:linear-gradient(130deg,#071827,#15364e);color:#fff;padding:25px;border-radius:15px;margin-bottom:18px}.cms-intro h2{color:#fff;margin:4px 0}.cms-section{background:#fff;border:1px solid #dfe6eb;border-radius:13px;margin-bottom:14px;overflow:hidden;box-shadow:0 4px 18px #10283a08}.cms-section>summary{padding:18px 20px;font-weight:800;color:#071827;cursor:pointer;list-style:none;display:flex;justify-content:space-between}.cms-section>summary:after{content:"+";color:var(--color-primary);font-size:20px}.cms-section[open]>summary{border-bottom:1px solid #e7edf1}.cms-section[open]>summary:after{content:"−"}.cms-body{padding:20px}.cms-body>textarea,.cms-body textarea[data-export-output]{width:100%;min-height:170px;padding:13px;border:1px solid #cad3dc;border-radius:9px;font-family:inherit}.cms-nested{padding:0}.cms-nested>.portal-card{box-shadow:none;border-radius:0}.import-label{display:inline-flex;align-items:center;cursor:pointer}.content-editor{box-shadow:none}.content-editor>.editor-help{margin-bottom:0}


/* Refonte TravauxCorse — finition premium 2026 */
html { scroll-behavior: smooth; }
body {
  background:
    radial-gradient(circle at 90% 4%, color-mix(in srgb, var(--color-primary) 10%, transparent), transparent 28rem),
    linear-gradient(180deg, #fbfcfd 0, #fff 36rem);
  text-rendering: optimizeLegibility;
}
::selection { background: color-mix(in srgb, var(--color-primary) 24%, transparent); color: var(--navy-2); }
a, button, input, select, textarea { transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease, background-color .2s ease, color .2s ease; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--color-primary) 32%, transparent);
  outline-offset: 3px;
}
.skip-link {
  position: fixed; left: 18px; top: 12px; z-index: 9999;
  padding: 10px 16px; border-radius: 8px; background: #fff; color: var(--navy);
  box-shadow: var(--shadow); transform: translateY(-180%);
}
.skip-link:focus { transform: translateY(0); }
.site-header {
  position: sticky; top: 0; z-index: 100;
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(18px) saturate(1.3);
  border-bottom: 1px solid rgba(13,28,43,.08);
}
.site-header .brand { letter-spacing: -.035em; }
.site-header .brand small { letter-spacing: .09em; }
.main-nav button { position: relative; }
.main-nav button::after {
  content: ""; position: absolute; left: 14px; right: 14px; bottom: 3px;
  height: 2px; border-radius: 2px; background: var(--brand);
  transform: scaleX(0); transition: transform .2s ease;
}
.main-nav button:hover::after, .main-nav button.active::after { transform: scaleX(1); }
.hero {
  position: relative; overflow: hidden;
  background:
    linear-gradient(118deg, rgba(7,24,39,.98), rgba(13,43,64,.92)),
    #071827;
}
.hero::before {
  content: ""; position: absolute; width: 32rem; height: 32rem; border-radius: 50%;
  right: -9rem; top: -15rem; background: radial-gradient(circle, color-mix(in srgb, var(--color-primary) 34%, transparent), transparent 68%);
}
.hero::after {
  content: "CORSICA"; position: absolute; right: -1rem; bottom: -3.5rem;
  font-size: clamp(5rem, 15vw, 13rem); font-weight: 900; letter-spacing: -.08em;
  color: rgba(255,255,255,.035); pointer-events: none;
}
.hero > * { position: relative; z-index: 1; }
.hero h1 { max-width: 920px; letter-spacing: -.045em; text-wrap: balance; }
.hero p { max-width: 760px; }
.primary { box-shadow: 0 10px 24px color-mix(in srgb, var(--color-primary) 20%, transparent); }
.primary:hover { transform: translateY(-2px); box-shadow: 0 14px 30px color-mix(in srgb, var(--color-primary) 30%, transparent); }
.secondary:hover { transform: translateY(-2px); }
.service-card, .artisan-card, .supplier-card, .energy-card, .process-card {
  border-color: rgba(13,28,43,.09);
  box-shadow: 0 12px 34px rgba(7,24,39,.065);
}
.service-card:hover, .artisan-card:hover, .supplier-card:hover, .energy-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 22px 50px rgba(7,24,39,.12);
  border-color: color-mix(in srgb, var(--color-primary) 28%, transparent);
}
.service-card h3, .artisan-card h3, .supplier-card h3 { letter-spacing: -.02em; }
.stats {
  background: linear-gradient(135deg, #071827, #123a55);
  border-radius: 18px; overflow: hidden;
}
.stats article { position: relative; }
.stats article + article::before {
  content: ""; position: absolute; left: 0; top: 20%; bottom: 20%; width: 1px;
  background: rgba(255,255,255,.16);
}
section h2 { letter-spacing: -.035em; text-wrap: balance; }
.site-footer { background: #06131f; border-top: 4px solid var(--brand); }
.portal-sidebar { background: linear-gradient(180deg, #071827, #0d2b40); }
.portal-card, .project-detail, .portal-stat { border: 1px solid rgba(13,28,43,.08); box-shadow: 0 12px 32px rgba(7,24,39,.07); }
@media (prefers-reduced-motion: no-preference) {
  .hero h1, .hero p, .hero .hero-actions { animation: tc-rise .65s both; }
  .hero p { animation-delay: .08s; }
  .hero .hero-actions { animation-delay: .16s; }
  @keyframes tc-rise { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
}
@media (max-width: 760px) {
  .site-header { backdrop-filter: blur(12px); }
  .hero { padding-top: 56px; padding-bottom: 56px; }
  .hero::after { font-size: 24vw; bottom: -1rem; }
  .stats article + article::before { display: none; }
}

.new-kicker{text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-weight:800;color:var(--color-primary-ink)}


/* Correctif contraste de l'en-tête */
.site-header .brand { color: #071827; }
.site-header .brand span { color: var(--color-primary); }
.site-header .brand small { color: #65717a; }
.site-header .main-nav button {
  color: #223746;
  background: transparent;
}
.site-header .main-nav button:hover,
.site-header .main-nav button.active {
  color: #071827;
  background: #f2f4f5;
}
.site-header .menu-button.secondary {
  color: #071827;
  background: #ffffff;
  border: 1px solid #b9c3ca;
  box-shadow: none;
}
.site-header .menu-button.secondary:hover {
  color: #071827;
  background: #f2f4f5;
  border-color: var(--color-primary);
}
@media (max-width: 980px) {
  .site-header .main-nav.open {
    background: #ffffff;
    border-top-color: #dfe4e8;
    padding: 12px;
    box-shadow: 0 18px 32px rgba(7,24,39,.12);
  }
  .site-header .main-nav.open button { color: #071827; }
}

/* Pages éditoriales SEO */
.editorial-page{background:#f7f8f9;color:#0d1c2b;min-height:100vh}.editorial-header{height:78px;padding:12px clamp(20px,5vw,70px);display:flex;align-items:center;justify-content:space-between;gap:24px;background:#fff;border-bottom:1px solid #e0e5e8;position:sticky;top:0;z-index:20}.editorial-brand{display:grid;font-size:20px;line-height:.9;font-weight:950;color:#071827;text-decoration:none}.editorial-brand span{color:var(--color-primary)}.editorial-nav{display:flex;gap:22px;align-items:center}.editorial-nav a{font-size:13px;font-weight:800;color:#263b49;text-decoration:none}.editorial-nav a:hover{color:var(--color-primary-ink)}.editorial-nav .editorial-cta{background:var(--color-primary);color:#071827;padding:12px 16px}.editorial-hero{background:#071827;color:#fff;padding:92px max(24px,calc((100% - 1160px)/2))}.editorial-hero .crumbs{color:#9db0bc;font-size:12px;margin-bottom:30px}.editorial-hero .crumbs a{color:var(--color-primary-light)}.editorial-hero h1{font-size:clamp(42px,6vw,72px);line-height:1.02;max-width:950px;letter-spacing:-.055em}.editorial-hero>p{max-width:760px;color:#c9d6de;font-size:18px;line-height:1.75}.editorial-wrap{max-width:1160px;margin:auto;padding:80px 24px}.guide-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.guide-card{background:#fff;border:1px solid #e0e5e8;padding:30px;min-height:310px;display:flex;flex-direction:column}.guide-card small{color:var(--color-primary-ink);font-weight:900;text-transform:uppercase;letter-spacing:.1em}.guide-card h2{font-size:23px;line-height:1.25;margin:28px 0 14px}.guide-card p{color:#67747c;line-height:1.65}.guide-card a{margin-top:auto;font-weight:900;color:#071827;text-decoration:none}.guide-card:hover{transform:translateY(-4px);border-color:var(--color-primary);box-shadow:0 20px 45px #07182718}.faq-block{margin-top:90px}.faq-block h2{font-size:clamp(34px,4vw,52px)}.faq-block details{background:#fff;border-top:1px solid #dce2e6;padding:23px 0}.faq-block summary{cursor:pointer;font-weight:850;font-size:17px}.faq-block details p{color:#64717a;line-height:1.75;max-width:900px}.article-layout{max-width:1160px;margin:auto;padding:70px 24px;display:grid;grid-template-columns:minmax(0,760px) 280px;gap:90px;align-items:start}.article-body{background:#fff;padding:clamp(26px,5vw,58px);box-shadow:0 12px 40px #0718270d}.article-body h2{font-size:30px;margin:45px 0 14px}.article-body h2:first-child{margin-top:0}.article-body p,.article-body li{color:#465862;line-height:1.8}.article-body li{margin-bottom:8px}.article-aside{position:sticky;top:110px;background:#0c2c40;color:#fff;padding:28px}.article-aside strong{font-size:22px}.article-aside p{color:#c9d6de;line-height:1.6}.article-aside a{display:block;background:var(--color-primary);color:#071827;padding:14px;text-align:center;text-decoration:none;font-weight:900;margin-top:18px}.reference-empty{background:#fff;border:1px solid #dce2e6;padding:60px;text-align:center}.reference-empty h2{font-size:38px}.reference-empty p{max-width:720px;margin:15px auto 28px;color:#64717a;line-height:1.75}.editorial-footer{background:#06131f;color:#adbec9;padding:45px max(24px,calc((100% - 1160px)/2));display:flex;justify-content:space-between;gap:25px}.editorial-footer a{color:#fff}@media(max-width:850px){.editorial-nav a:not(.editorial-cta){display:none}.guide-grid{grid-template-columns:1fr}.article-layout{grid-template-columns:1fr;gap:30px}.article-aside{position:static}.editorial-footer{display:block}.editorial-hero{padding-top:65px;padding-bottom:65px}}

/* Responsive global et navigation éditoriale */
img,svg,video,canvas{max-width:100%;height:auto}
html,body{max-width:100%;overflow-x:hidden}
.site-shell{width:100%;overflow:clip}
.site-header{width:100%}
.main-nav{min-width:0}
.main-nav button{white-space:normal}
.editorial-menu-toggle{display:none;align-items:center;justify-content:center;width:46px;height:42px;padding:0;border:1px solid #b9c3ca;background:#fff;color:#071827;font-size:0;cursor:pointer}
.editorial-menu-toggle::before{content:"☰";font-size:23px;line-height:1}
.editorial-menu-toggle[aria-expanded="true"]::before{content:"×";font-size:29px}
@media(max-width:980px){
  .site-header{grid-template-columns:minmax(0,1fr) auto}
  .site-header .brand{min-width:0}
  .site-header .main-nav.open{grid-column:1/-1;width:100%;background:#fff;padding:10px;border:1px solid #e0e5e8;box-shadow:0 18px 38px rgba(7,24,39,.14)}
  .site-header .main-nav.open button{color:#071827;background:#fff}
  .site-header .main-nav.open button:hover,.site-header .main-nav.open button.active{background:#f2f4f5;color:#071827}
  .new-hero{min-height:auto}
}
@media(max-width:850px){
  .editorial-header{height:auto;min-height:68px;padding:11px 16px;display:grid;grid-template-columns:minmax(0,1fr) auto}
  .editorial-brand{font-size:18px}
  .editorial-menu-toggle{display:inline-flex}
  .editorial-nav{display:none;grid-column:1/-1;position:static;width:100%;padding:10px 0 4px;margin-top:7px;border-top:1px solid #e0e5e8}
  .editorial-nav.open{display:grid;gap:4px}
  .editorial-nav.open a,.editorial-nav.open a:not(.editorial-cta){display:block!important;width:100%;padding:13px 12px;color:#071827;background:#fff}
  .editorial-nav.open a:hover{background:#f1f3f4}
  .editorial-nav.open .editorial-cta{background:var(--color-primary);color:#071827;text-align:center;margin-top:5px}
  .editorial-hero{padding-left:20px;padding-right:20px}
  .editorial-hero h1{overflow-wrap:anywhere}
  .article-body{padding:28px 20px}
  .reference-empty{padding:38px 20px}
}
@media(max-width:600px){
  .site-header{padding:10px 12px}
  .site-header .brand{font-size:18px}
  .site-header .brand small{font-size:8px}
  .menu-button{min-width:70px}
  .new-hero h1{font-size:clamp(38px,12vw,48px)}
  .new-lead-card{padding:24px 18px}
  .new-lead-card h2{font-size:24px}
  .new-proof{gap:16px}
  .new-intro h2,.new-title h2,.new-energy h2,.new-final h2{font-size:clamp(32px,10vw,42px)}
  .new-service-grid article{min-height:175px}
  .editorial-hero h1{font-size:clamp(36px,11vw,48px)}
  .editorial-hero>p{font-size:16px}
  .guide-card{padding:24px;min-height:270px}
  .faq-block{margin-top:65px}
  .faq-block summary{font-size:15px;padding-right:8px}
  .article-body h2{font-size:25px}
  .editorial-footer{padding:34px 20px}
  .form-grid,.choice-grid,.portal-form-grid{grid-template-columns:1fr!important}
  .actions{flex-wrap:wrap}
  .actions button{max-width:100%}
}


/* Correctifs de lisibilité et de navigation mobile */
.stats span {
  color: #fff;
  line-height: 1.35;
}
.reference-empty .primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  max-width: 100%;
  min-height: 52px;
  padding: 14px 20px;
  line-height: 1.3;
  text-align: center;
  white-space: normal;
  overflow-wrap: anywhere;
}
.editorial-footer strong,
.editorial-footer span {
  display: block;
}
@media (max-width: 850px) {
  .reference-empty .primary {
    width: 100%;
  }
  .editorial-footer strong {
    margin-bottom: 10px;
  }
  .editorial-footer span {
    line-height: 1.6;
  }
  .editorial-footer a {
    display: inline-block;
  }
}

/* Identité de l’entreprise, distincte du nom visible TravauxCorse. */
.editorial-footer { flex-wrap: wrap; }
.company-identity { grid-column: 1 / -1; flex-basis: 100%; min-width: 0; width: 100%; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.2); color: #dbe6ee; font-size: 14px; line-height: 1.65; overflow-wrap: anywhere; }
.company-identity p { margin: 0 0 10px; }
.company-identity summary { cursor: pointer; min-height: 44px; padding: 10px 0; color: #fff; font-weight: 700; }
.company-identity a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.company-identity summary:focus-visible, .company-identity a:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 4px; }
.editorial-footer .company-identity strong { display: inline; margin: 0; }
@media (max-width: 850px) { .editorial-footer .company-identity { margin-top: 20px; } }

/* Shared navigation: application, guides and references. */
.tc-header{position:sticky;top:0;z-index:50;display:grid;grid-template-columns:230px minmax(0,1fr) 230px;align-items:center;gap:24px;width:100%;padding:16px clamp(20px,3vw,48px);background:#fff;border-bottom:1px solid #e8edf1;box-shadow:0 4px 24px #07182708;font-family:Montserrat,ui-sans-serif,system-ui,sans-serif}
.tc-header .tc-brand{display:grid;width:max-content;max-width:100%;color:#071827;text-decoration:none;font-size:24px;line-height:.92;font-weight:900;letter-spacing:-.035em}
.tc-brand span{color:var(--color-primary)}.tc-brand small{margin-top:8px;color:#65717a;font-size:9px;font-weight:800;line-height:1.3;letter-spacing:.07em;text-transform:uppercase}
.tc-header .tc-nav{display:flex;align-items:center;justify-content:center;gap:4px;min-width:0}
.tc-nav a{position:relative;display:flex;align-items:center;justify-content:center;min-height:44px;padding:12px 10px;border-radius:10px;color:#263b49;text-decoration:none;font-size:14px;line-height:1.3;font-weight:750;white-space:nowrap;transition:background .15s,color .15s}
.tc-nav a:hover,.tc-nav a[aria-current="page"]{color:#071827;background:#f2f4f6}
.tc-nav a[aria-current="page"]::after{content:"";position:absolute;bottom:4px;left:14px;right:14px;height:2px;border-radius:2px;background:var(--color-primary)}
.tc-actions{display:grid;gap:8px;width:230px}
.tc-header .tc-actions a{display:flex;align-items:center;justify-content:center;min-height:44px;width:100%;padding:12px 14px;border-radius:12px;background:var(--color-primary);color:#fff;text-decoration:none;text-align:center;font-size:14px;line-height:20px;font-weight:800;box-shadow:0 5px 14px color-mix(in srgb, var(--color-primary) 10%, transparent);transition:background .15s}
.tc-header .tc-actions a:hover{background:var(--color-primary-ink)}
.tc-header .tc-menu{display:none;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:10px 14px;border:1px solid #dce2e6;background:#f7f8f9;color:#071827;border-radius:10px;font-size:14px;font-weight:800}
.tc-header a:focus-visible,.tc-header button:focus-visible,.tc-footer-services a:focus-visible{outline:3px solid var(--color-primary-ink);outline-offset:4px}
.tc-footer-services{display:grid;gap:10px;min-width:210px}.tc-footer-services strong{color:#fff}.tc-footer-services a{text-decoration:none;line-height:1.5}.tc-footer-services a:hover{text-decoration:underline}
@media(max-width:767px){
.tc-header{grid-template-columns:minmax(0,1fr) auto 230px;gap:18px}
.tc-header .tc-menu{display:flex}
.tc-header .tc-nav{display:none;grid-column:1/-1;grid-row:2;justify-content:flex-start;flex-wrap:wrap;border-top:1px solid #e8edf1;padding-top:12px}
.tc-header .tc-nav.open{display:flex}
}
/* Keep navigation visible on laptops and tablets; use a second row when needed. */
@media(min-width:768px) and (max-width:1199px){
.tc-header{grid-template-columns:minmax(0,1fr) 230px;gap:12px 24px}
.tc-header .tc-menu{display:none}
.tc-header .tc-actions{grid-column:2;grid-row:1}
.tc-header .tc-nav,.tc-header .tc-nav.open{display:flex;grid-column:1/-1;grid-row:2;flex-wrap:wrap;justify-content:center;gap:4px}
}
@media(max-width:600px){
.tc-header{grid-template-columns:minmax(0,1fr) auto;padding:12px 16px;gap:12px}
.tc-header .tc-brand{font-size:22px}.tc-brand small{font-size:8px}
.tc-header .tc-actions{grid-column:1/-1;grid-row:2;width:100%;gap:6px}
.tc-header .tc-actions a{min-height:44px;padding:10px 14px}
.tc-header .tc-nav{grid-row:3;max-height:45vh;overflow:auto}
.tc-header .tc-nav.open{display:grid;grid-template-columns:1fr;gap:4px}
.tc-header .tc-nav a{justify-content:flex-start;white-space:normal}
.tc-footer-services{margin:24px 0}
}

/* Consistent public pages: light canvas and inset navy introduction cards. */
:root{--tc-page-width:1440px;--tc-page-gutter:clamp(16px,6vw,84px);--tc-page-top:clamp(28px,4vw,56px);--tc-card-padding:clamp(22px,4vw,52px);--tc-card-radius:12px}
body,.editorial-page{background:#f5f7fa}
.page-section:not(.narrow){max-width:var(--tc-page-width);margin-inline:auto;padding:var(--tc-page-top) var(--tc-page-gutter) clamp(40px,5vw,72px)}
.home-page .hero,.aid-hero,.supplier-hero,.editorial-hero{
  background:linear-gradient(115deg,#071827,#123247);color:#fff;
  border:1px solid #1d3b4e;border-radius:var(--tc-card-radius);
  padding:var(--tc-card-padding);box-shadow:0 12px 32px #07182712;
}
.home-page .hero{min-height:0;grid-template-columns:minmax(0,1fr) minmax(280px,.55fr);gap:32px;align-items:center}
.home-page .hero::before,.home-page .hero::after{content:none}
.home-page .hero h1,.aid-hero h1,.supplier-hero h1,.editorial-hero h1{
  color:#fff;font-size:clamp(30px,3.5vw,48px);line-height:1.12;letter-spacing:-.035em;
  font-weight:800;text-transform:none;margin:16px 0 20px;max-width:960px;text-wrap:balance;
}
.home-page .hero-copy>p,.aid-hero>div>p,.supplier-hero>div>p,.editorial-hero>p{font-size:16px;line-height:1.75;color:#dce7ef;max-width:860px}
.home-page .hero-copy>.eyebrow,.aid-hero>div>.eyebrow,.supplier-hero>div>.eyebrow{color:var(--color-primary-light);font-size:12px;line-height:1.5}
.home-page .quick-card{background:#fff;color:#0d1c2b;box-shadow:none}
.home-page .quick-card h2{color:#0d1c2b;font-size:24px;line-height:1.25}
.home-page .quick-card p{color:#65717a;font-size:13px;line-height:1.5}
.home-page .stats{margin-top:28px;background:#fff;border:1px solid #dce2e6;border-radius:12px}
.home-page .stats span{color:#263b49;font-size:14px}
.home-page .stats article:last-child{border-right:0}
.home-page .stats article::before{content:none}
.home-page .band,.home-page .energy-band{padding:0;margin-top:48px;background:none;color:#0d1c2b}
.home-page .band h2,.home-page .energy-band h2,.faq-block h2,.reference-empty h2{font-size:clamp(26px,3vw,36px);line-height:1.2;letter-spacing:-.025em}
.home-page .band p,.home-page .energy-band p{color:#526575;line-height:1.7}
.home-page .band>.eyebrow,.home-page .energy-band>.eyebrow{color:var(--color-primary-ink)}
.home-page .steps article,.home-page .energy-list article{background:#fff;border:1px solid #dce2e6;border-radius:12px;padding:22px;box-shadow:0 6px 20px #07182705}
.home-page .steps h3,.home-page .energy-list h3{color:#0d1c2b}
.editorial-page>main{max-width:var(--tc-page-width);margin-inline:auto;padding:var(--tc-page-top) var(--tc-page-gutter) clamp(40px,5vw,72px)}
.editorial-hero .crumbs{margin-bottom:20px;line-height:1.6}
.editorial-wrap{max-width:none;margin:0;padding:40px 0 0}
.article-layout{max-width:none;margin:0;padding:40px 0 0;gap:32px;grid-template-columns:minmax(0,1fr) 280px}
.guide-card,.article-body,.article-aside,.reference-empty,.faq-block details{border-radius:12px}
.guide-card{padding:26px;box-shadow:0 6px 20px #07182705}
.guide-card h2{font-size:23px;letter-spacing:-.02em}
.faq-block{margin-top:48px}.faq-block details{padding:20px 24px;margin-top:10px;border:1px solid #dce2e6}
.article-aside a,.reference-empty .primary{border-radius:12px;color:#fff}
.reference-empty .primary{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;min-height:44px}
@media(max-width:1000px){
.home-page .hero,.aid-hero,.supplier-hero{grid-template-columns:1fr}
.article-layout{grid-template-columns:1fr}.article-aside{position:static}
}
@media(max-width:600px){
.home-page .hero{gap:24px}
.home-page .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
.home-page .stats article{padding:16px 10px;min-height:100px}
.home-page .band,.home-page .energy-band{margin-top:32px}
.editorial-wrap,.article-layout{padding-top:28px}
.reference-empty{padding:26px 20px}
}


/* Multi-trade requests and online editorial administration. */
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.trade-picker{border:1px solid #cad3dc;border-radius:12px;background:#fff;color:#0d1c2b}
.trade-picker summary{padding:14px;cursor:pointer;font-size:14px;font-weight:750;line-height:1.5}
.trade-picker>p{padding:0 14px;margin:0!important}
.trade-choices{border:0;padding:0;margin:16px 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.trade-choices.compact{grid-template-columns:1fr;max-height:290px;overflow:auto;margin:8px;padding:4px}
.trade-choices label{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid #dce2e6;border-radius:8px;background:#fff;min-height:48px;cursor:pointer;color:#0d1c2b;font-size:14px;line-height:1.45}
.trade-choices label:has(input:checked){background:var(--color-primary-soft);border-color:var(--color-primary)}
.trade-choices input{width:20px;height:20px;min-width:20px;min-height:20px;padding:0;accent-color:var(--color-primary-ink)}
.trade-choices input:focus-visible{outline:3px solid var(--color-primary-ink);outline-offset:3px}
.footer-admin-link{display:block;color:#fff8ed;padding:7px 0;text-decoration:none}
.editorial-admin h1{font-size:clamp(28px,4vw,44px);text-transform:none}
.editor-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:20px 0}
.editor-toolbar [aria-pressed="true"]{border-color:var(--color-primary);background:var(--color-primary-soft)}
.content-admin-grid{display:grid;grid-template-columns:260px minmax(0,1fr);gap:24px;align-items:start}
.content-admin-grid>div,.content-admin-grid>aside,.content-login{padding:24px;background:#fff;border:1px solid #dce2e6;border-radius:12px;min-width:0}
.content-list-item{display:grid;gap:6px;text-align:left;width:100%;padding:14px;margin-bottom:8px;background:#f5f7fa;border:1px solid transparent;overflow-wrap:anywhere}
.content-list-item.active{border-color:var(--color-primary)}.content-list-item span{font-size:12px;color:#586978}
.content-login{max-width:540px;margin-bottom:20px}.content-login label{display:grid;gap:8px;margin-bottom:16px}
.editor-images{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.editor-image{padding:12px;border:1px solid #dce2e6;border-radius:10px}.editor-image img{width:100%;height:170px;object-fit:contain;background:#f5f7fa}.editor-image label{display:grid;gap:6px}.editor-image button{margin-top:10px}
.editorial-admin [hidden]{display:none!important}.editorial-admin button:disabled{opacity:.5;cursor:not-allowed;transform:none}
#editor-status{padding:12px 0;min-height:44px;line-height:1.6}#editor-preview{margin-top:24px;white-space:pre-line}
.content-gallery{display:grid;gap:24px;margin-top:28px}.content-gallery figure{margin:0}.content-gallery img{width:100%;border-radius:12px}.content-gallery figcaption{padding-top:10px;color:#526575}
.content-cover{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:8px;margin-bottom:18px}
@media(max-width:850px){.content-admin-grid{grid-template-columns:1fr}.content-admin-grid>aside{max-height:330px;overflow:auto}.content-admin-grid>div{padding:16px}}
@media(max-width:600px){.trade-choices,.editor-images{grid-template-columns:1fr}.editor-toolbar>button{width:100%}}

/* Shared footer: compact type and spacing, with comfortable link targets. */
.tc-footer{background:#061c29;color:#f1f4f5;padding:30px clamp(20px,5vw,64px) 34px;font-family:Montserrat,ui-sans-serif,system-ui,sans-serif}
.tc-footer-inner{max-width:1272px;margin:0 auto;border-top:1px solid #36505e;padding-top:18px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 28px}
.tc-footer-copyright{margin:0;color:#f1f4f5;font-size:13px;font-weight:400;line-height:1.5;letter-spacing:.025em}
.tc-footer-links{display:flex;flex-wrap:wrap;align-items:center;gap:4px 20px}
.tc-footer-links a{display:inline-flex;align-items:center;min-height:44px;color:#f1f4f5;text-decoration:none;font-size:13px;font-weight:400;line-height:1.5;letter-spacing:.01em}
.tc-footer-links a:hover{text-decoration:underline;text-underline-offset:6px}
.tc-footer-links a:focus-visible{outline:2px solid var(--color-primary);outline-offset:6px}
.legal-body{margin-top:32px;max-width:1000px}.legal-body a{color:#0c567b;overflow-wrap:anywhere;text-underline-offset:3px}
.auth-choice{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:760px){.auth-choice{grid-template-columns:1fr}.tc-footer{padding:24px 20px 28px}.tc-footer-inner{display:block;padding-top:16px}.tc-footer-copyright{margin-bottom:8px}.tc-footer-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px}}


/* TravauxCorse: shared palette, usable controls and responsive content. */
:root{--ink:#24211e;--navy:#24211e;--navy-2:#201e1b;--soft:#f6f2eb;--brand:var(--color-primary);--brand-dark:var(--color-primary-hover);--line:#ded8cf;--muted:#605a52;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
body,.editorial-page{background:#f6f2eb;color:var(--ink);font-family:inherit}
[hidden]{display:none!important}
*,*::before,*::after{box-sizing:border-box}
main{min-width:0;outline:none}main :where(h1,h2,h3,p,a,span,strong,small,label){overflow-wrap:anywhere}
button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{touch-action:manipulation}
button:disabled{opacity:.6;cursor:wait}button,.primary,.secondary{min-height:44px;white-space:normal;max-width:100%}
:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid var(--color-primary-ink);outline-offset:3px}
input[type=checkbox],input[type=radio]{width:20px;min-width:20px;height:20px;min-height:20px;accent-color:var(--color-primary)}
:where(.actions,.hero-actions,.chips,.tags,.auth-links,.editor-actions){flex-wrap:wrap}
:where(.form-grid,.portal-form-grid,.summary,.steps,.energy-list,.guide-grid)>*{min-width:0}
.tc-header{position:relative;font-family:inherit;padding-block:12px;box-shadow:none;border-bottom-color:var(--line)}
.tc-header .tc-actions a{background:var(--brand);color:#24211e;box-shadow:none}.tc-header .tc-actions a:hover{background:var(--brand-dark);color:#fff}
.tc-nav a{color:#38332d}.tc-nav a:hover,.tc-nav a[aria-current=page]{background:#f6f2eb;color:#24211e}
.tc-nav a[aria-current=page]::after{background:var(--brand)}
.tc-header .tc-brand{color:#24211e}.tc-brand span{color:var(--color-primary)}
.home-page .hero,.aid-hero,.supplier-hero,.editorial-hero{background:#24211e;border-color:#24211e;box-shadow:none}
.home-page .hero{grid-template-columns:minmax(0,1.1fr) minmax(300px,.8fr)}
.home-page .hero-copy>p,.aid-hero>div>p,.supplier-hero>div>p,.editorial-hero>p{color:#e9e3d9}
.home-page .hero h1,.aid-hero h1,.supplier-hero h1,.editorial-hero h1{font-size:clamp(28px,3.2vw,46px);letter-spacing:-.035em;line-height:1.15}
.home-page .quick-card{padding:24px;border-radius:12px;min-width:0}
.home-page .quick-card input,.home-page .quick-card select{font-size:16px}
.home-page .stats strong{font-size:clamp(22px,2.2vw,30px);color:var(--color-primary-ink)}
.home-page .stats{overflow:visible}.home-page .stats article{min-width:0}
.trade-directory{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:24px 0}
.trade-directory span{padding:16px;background:#fff;border:1px solid var(--line);border-radius:10px;font-size:15px;line-height:1.4}
.trade-picker summary{min-height:48px}.trade-choices label:has(input:checked){border-color:var(--color-primary);background:var(--color-primary-soft)}
.band>.eyebrow,.energy-band>.eyebrow,.guide-card small{color:var(--color-primary-ink)}
.guide-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.guide-card{min-height:0;gap:12px;transition:border-color .15s}.guide-card h2{margin:8px 0;font-size:23px}.guide-card p{margin:0 0 12px}.guide-card:hover{transform:none}
.guide-card a,.article-aside a,.reference-empty .primary{background:var(--brand);color:#24211e;border-radius:8px;padding:12px 16px;display:inline-flex;align-items:center;justify-content:center;min-height:44px;text-align:center}
.article-aside{background:#24211e;position:static}.content-gallery img{height:auto;display:block;max-height:800px;object-fit:contain}
.realisation-filters{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 24px}.realisation-filters button{background:#fff;border:1px solid var(--line);padding:10px 14px;color:#24211e}.realisation-filters button[aria-pressed=true]{background:var(--brand);border-color:var(--brand);color:#24211e}
.form-panel{border:1px solid var(--line);box-shadow:0 8px 24px #24211e08}.stepper{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.stepper button{font-size:13px;padding:10px 5px}.stepper button.active{background:var(--brand);color:#24211e}
.form-error:empty{display:none}.form-error{color:#a12717}.summary p{min-width:0}.summary span{overflow-wrap:anywhere}
.portal-auth{background:#f6f2eb;color:#24211e;padding:40px max(16px,calc((100% - 1100px)/2));min-height:0}.auth-heading h1,.portal-auth .brand,.portal-auth .brand small{color:#24211e}.auth-choice{grid-template-columns:repeat(3,minmax(0,1fr))}.auth-choice article,.auth-form-card{box-shadow:none;border:1px solid var(--line)}.admin-access{text-align:center;margin:32px 0 0;line-height:1.8;font-size:14px}.admin-access a,.admin-access button{color:var(--color-primary-ink);text-decoration:underline}.portal-sidebar{background:#24211e}
.tc-footer{font-family:inherit}.tc-footer-copyright{overflow-wrap:anywhere}
@media(min-width:1200px){.tc-header{grid-template-columns:200px minmax(0,1fr) 210px;gap:16px}.tc-actions{width:210px}.tc-nav a{font-size:14px;padding-inline:8px}}
@media(max-width:1000px){.home-page .hero{grid-template-columns:1fr}.trade-directory{grid-template-columns:repeat(3,minmax(0,1fr))}.guide-grid,.auth-choice{grid-template-columns:repeat(2,minmax(0,1fr))}.auth-choice article:last-child{grid-column:1/-1}}
@media(max-width:767px){.tc-header .tc-nav{max-height:none}.tc-header .tc-nav a{white-space:normal}.trade-directory{grid-template-columns:repeat(2,minmax(0,1fr))}.guide-grid,.auth-choice{grid-template-columns:1fr}.auth-choice article:last-child{grid-column:auto}.stepper{grid-template-columns:repeat(3,minmax(0,1fr))}.portal-main,.content-admin-grid{min-width:0}.portal-auth{padding:28px 16px}.auth-heading h1{font-size:30px}}
@media(max-width:430px){.trade-directory{grid-template-columns:1fr}.home-page .quick-card{padding:18px 14px}.home-page .hero,.aid-hero,.supplier-hero,.editorial-hero{padding:24px 18px}.home-page .hero h1{font-size:30px}.tc-footer{padding-inline:20px}.form-panel{padding:20px 14px}.stepper button{font-size:12px}.portal-form-grid input,.portal-form-grid select,.portal-form-grid textarea{min-width:0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.trade-index{margin-top:24px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:16px 20px}.trade-index summary{min-height:44px;cursor:pointer;font-weight:700;padding:10px 0}.trade-index .trade-directory span{background:#f6f2eb}.stepper button:disabled{cursor:not-allowed;opacity:.55}
.request-inbox{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:18px;margin:24px 0}.request-inbox .portal-card{min-width:0;margin:0}.request-inbox h2{font-size:21px;overflow-wrap:anywhere}.request-inbox p{overflow-wrap:anywhere;white-space:pre-wrap;margin:10px 0}.request-inbox strong{color:#24211e}
.request-assignments{border-top:1px solid #e7edf1;margin-top:18px;padding-top:16px}.request-assignments h3{font-size:1rem;margin:0 0 10px}.request-assignment{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin:12px 0}.request-assignment span{overflow-wrap:anywhere;flex:1 1 180px}.request-assignment a{color:var(--color-primary-ink);text-decoration:underline}.request-assignment button{padding:7px 12px}.request-assign-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}.request-assign-form label{display:grid;gap:5px;font-weight:700}.request-assign-form input{width:100%;min-width:0;border:1px solid #bac8d1;border-radius:8px;padding:11px;background:#fff}.request-assign-form button{grid-column:1/-1;justify-self:start}@media(max-width:600px){.request-assign-form{grid-template-columns:1fr}.request-assign-form button{width:100%}}
.artisan-projects{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:18px;margin:20px 0}.artisan-projects .portal-card{min-width:0;overflow-wrap:anywhere}.artisan-projects .portal-card p{white-space:pre-wrap}.artisan-projects h2{font-size:1.3rem}
.artisan-directory{margin:20px 0}.artisan-directory .request-assign-form{margin-bottom:20px}.artisan-directory .request-assignment{border-top:1px solid #e7edf1;padding:10px 0}.artisan-directory #artisan-invitation{margin-top:18px}.artisan-directory #artisan-invitation a{display:inline-block;margin-top:12px;color:var(--color-primary-ink);text-decoration:underline}.request-assign-form select{min-width:0;width:100%;border:1px solid #bac8d1;border-radius:8px;padding:11px;background:#fff}


/* Lancement simplifié 2026-09 : pas de comptes client/artisan publics. */
.tc-actions [data-page="login"]{display:none!important}

/* The original high-resolution logo supplies the wordmark and tagline. */
.tc-header .tc-brand{display:flex;align-items:center;width:225px;max-width:100%;background:#fff;line-height:normal}
.tc-header .tc-brand img{display:block;width:100%;height:auto;object-fit:contain}
.category-admin-list{display:grid;gap:12px;margin:20px 0}.category-admin-row{display:grid;grid-template-columns:32px minmax(150px,1fr) auto auto;align-items:end;gap:12px;padding:12px;background:#f6f2eb;border:1px solid #dfd7cd;border-radius:10px}.category-admin-row label:not(.category-active){display:grid;gap:5px;font-weight:700}.category-admin-row input[type=text],.category-admin-row input:not([type]){width:100%;min-height:42px;padding:8px;border:1px solid #b6b4b0;border-radius:7px}.category-position{align-self:center;font-weight:800}.category-active{min-height:42px;display:flex;align-items:center;gap:5px}.category-row-actions{display:flex;flex-wrap:wrap;gap:6px}.category-row-actions button{min-height:42px}@media(max-width:850px){.category-admin-row{grid-template-columns:24px minmax(0,1fr)}.category-active,.category-row-actions{grid-column:2}}
.portal-auth .brand.centered{display:flex;width:min(100%,320px);justify-content:center;background:#fff;border-radius:6px}
.portal-auth .brand.centered img{display:block;width:100%;height:auto;object-fit:contain}
@media(min-width:1200px){.tc-header{grid-template-columns:235px minmax(0,1fr) 210px}}
@media(min-width:768px) and (max-width:1199px){.tc-header .tc-brand{width:220px}}
@media(max-width:767px){.tc-header .tc-brand{width:clamp(145px,50vw,200px)}}

/* Primary action contrast and derived interaction states. */
.tc-header .tc-actions a, .primary, button.primary, .article-aside a, .realisation-filters button[aria-pressed=true], .stepper button.active { color:#24211e; }
.tc-header .tc-actions a:hover, .primary:hover, button.primary:hover, .article-aside a:hover, .guide-card a:hover { background:var(--color-primary-hover);color:#fff; }
.tc-header .tc-actions a:active, .primary:active, button.primary:active { background:var(--color-primary-active);color:#fff; }
:where(a,button,input,select,textarea,summary):focus-visible { outline-color:var(--color-primary-ink); }
.portal-user>span, .avatar, .supply-flow span, .flow-steps span, .role-buttons button { color:#24211e; }
.stepper button.active span { opacity:1; }

/* Admin artisan registration uses the same published categories as public forms. */
#artisan-register #artisan-trades{grid-column:1/-1;margin:0;border:1px solid var(--line);border-radius:10px;padding:16px;min-width:0}
#artisan-register #artisan-trades legend{font-weight:700;padding:0 6px}
#artisan-register #artisan-trades .trade-choices{max-height:260px;overflow:auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:8px}
#artisan-register #artisan-trades .trade-choices label{font-weight:500}
.partner-trades{border:1px solid var(--line);border-radius:10px;padding:14px}.partner-trades legend{font-weight:700;padding:0 6px}
