/*
Theme Name: Cameroon Connect Calgary
Theme URI: https://www.armandyomi.com
Author: Armand Graphix
Author URI: https://www.armandyomi.com
Description: Theme WordPress sur mesure pour l'annuaire communautaire des prestataires camerounais de Calgary. Mode clair/sombre, pages Catégories, Carte, Prestataires et Partenaires. Conçu et développé par Armand Graphix.
Version: 1.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: cameroun-connect-calgary
*/

@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,600;9..144,700&family=Space+Grotesk:wght@400;500;600;700&family=DM+Mono:wght@400;500&display=swap');

/* ============ THEME TOKENS ============ */
:root{
  --forest:#0E3B2E;
  --forest-deep:#0A2A21;
  --rouge:#B3282D;
  --gold:#D9A441;

  --bg:#F6F3EC;
  --surface:#FFFFFF;
  --surface-2:#EFE9D8;
  --text:#161613;
  --muted:#6B665C;
  --line: rgba(14,59,46,0.14);
  --hero-bg: var(--forest);
  --hero-bg-2: var(--forest-deep);
  --hero-text: #F6F3EC;
  --hero-muted: rgba(246,243,236,0.78);
  --shadow: rgba(14,59,46,0.35);
}

html[data-theme="dark"]{
  --bg:#10140F;
  --surface:#182019;
  --surface-2:#1B2A21;
  --text:#F1EEE4;
  --muted:#AFA99B;
  --line: rgba(246,243,236,0.12);
  --hero-bg: #0A1C15;
  --hero-bg-2: #060F0B;
  --hero-text: #F6F3EC;
  --hero-muted: rgba(246,243,236,0.7);
  --shadow: rgba(0,0,0,0.55);
}

*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Space Grotesk', sans-serif;
  background:var(--bg);
  color:var(--text);
  -webkit-font-smoothing:antialiased;
  transition:background .25s ease, color .25s ease;
}
h1,h2,h3,.display{font-family:'Fraunces', serif; font-weight:600; letter-spacing:-0.01em;}
.mono{font-family:'DM Mono', monospace; letter-spacing:0.02em;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.wrap{max-width:1180px; margin:0 auto; padding:0 32px;}
ul{list-style:none;}

/* ===== HEADER ===== */
header.site-header{
  position:sticky; top:0; z-index:50;
  background:var(--bg);
  border-bottom:1px solid var(--line);
  transition:background .25s ease, border-color .25s ease;
}
.nav{display:flex; align-items:center; justify-content:space-between; padding:18px 32px; max-width:1180px; margin:0 auto; gap:20px;}
.logo{display:flex; align-items:center; gap:10px;}
.logo-mark{width:34px; height:34px; border-radius:50%; background:conic-gradient(var(--forest) 0 33%, var(--rouge) 33% 66%, var(--gold) 66% 100%); flex-shrink:0;}
.logo-text{font-family:'Fraunces', serif; font-weight:600; font-size:19px; line-height:1;}
.logo-text span{display:block; font-family:'DM Mono', monospace; font-weight:400; font-size:10.5px; letter-spacing:0.14em; text-transform:uppercase; color:var(--forest); margin-top:3px;}
html[data-theme="dark"] .logo-text span{color:var(--gold);}
nav.links{display:flex; gap:34px; font-size:14.5px;}
nav.links a{position:relative; padding:4px 0;}
nav.links a.current, nav.links a:hover{color:var(--rouge);}
.nav-cta{display:flex; gap:12px; align-items:center;}

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:12px 22px; border-radius:100px; font-size:14.5px; font-weight:600;
  cursor:pointer; border:1.5px solid transparent; transition:all .18s ease;
  white-space:nowrap;
}
.btn-primary{background:var(--forest); color:#F6F3EC;}
.btn-primary:hover{background:var(--forest-deep);}
.btn-outline{border-color:var(--forest); color:var(--text);}
.btn-outline:hover{background:var(--forest); color:#F6F3EC;}
.btn-gold{background:var(--gold); color:var(--forest-deep);}
.btn-gold:hover{filter:brightness(1.06);}
.btn-sm{padding:9px 16px; font-size:13px;}

/* theme toggle switch */
.theme-toggle{
  display:flex; align-items:center; gap:8px; cursor:pointer; border:1px solid var(--line);
  border-radius:100px; padding:6px 6px; background:var(--surface);
}
.theme-toggle svg{width:16px; height:16px; opacity:.55;}
.theme-toggle .knob{
  width:34px; height:20px; border-radius:100px; background:var(--forest); position:relative; transition:.2s;
}
.theme-toggle .knob::after{
  content:""; position:absolute; top:2px; left:2px; width:16px; height:16px; border-radius:50%; background:#fff; transition:.2s;
}
html[data-theme="dark"] .theme-toggle .knob::after{ left:16px; }
html[data-theme="dark"] .theme-toggle .knob{ background:var(--gold); }

/* ===== HERO ===== */
.hero{position:relative; overflow:hidden; background:var(--hero-bg);}
.hero::before{
  content:""; position:absolute; inset:0;
  background-image:
    radial-gradient(circle at 15% 20%, rgba(217,164,65,0.16), transparent 45%),
    radial-gradient(circle at 85% 75%, rgba(179,40,45,0.22), transparent 50%);
}
.hero-pattern{
  position:absolute; inset:0; opacity:0.5;
  background-image: repeating-linear-gradient(115deg, rgba(246,243,236,0.035) 0 2px, transparent 2px 34px);
}
.hero-inner{position:relative; padding:96px 32px 120px; max-width:1180px; margin:0 auto;}
.hero-inner.compact{padding:64px 32px 84px;}
.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-family:'DM Mono', monospace; font-size:12px; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--gold); border:1px solid rgba(217,164,65,0.4); padding:7px 14px; border-radius:100px;
  margin-bottom:28px;
}
.eyebrow .dot{width:6px; height:6px; border-radius:50%; background:var(--gold);}
.hero h1{
  color:var(--hero-text); font-size:clamp(38px, 5.4vw, 68px); line-height:1.04; max-width:820px;
  margin-bottom:26px;
}
.hero h1.page-title{font-size:clamp(32px,4.2vw,52px);}
.hero h1 em{font-style:italic; color:var(--gold);}
.hero p.sub{color:var(--hero-muted); font-size:18px; max-width:560px; line-height:1.55; margin-bottom:40px;}
.hero-actions{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:64px;}
.hero-actions .btn-outline{border-color:rgba(246,243,236,0.4); color:var(--hero-text);}
.hero-actions .btn-outline:hover{background:rgba(246,243,236,0.1); color:var(--hero-text);}

.search-card{
  background:var(--surface); border-radius:20px; padding:10px;
  display:flex; gap:8px; max-width:640px; box-shadow:0 24px 60px -20px rgba(0,0,0,0.5);
}
.search-card input, .search-card select{
  flex:1; border:none; background:transparent; padding:14px 16px; font-family:'Space Grotesk'; font-size:15px; outline:none; color:var(--text);
}
.search-card input::placeholder{color:var(--muted);}
.search-tags{display:flex; gap:8px; flex-wrap:wrap; margin-top:16px;}
.tag{
  font-family:'DM Mono', monospace; font-size:12px; color:rgba(246,243,236,0.65);
  border:1px solid rgba(246,243,236,0.22); padding:6px 12px; border-radius:100px; cursor:pointer; transition:.15s;
}
.tag:hover, .tag.active{border-color:var(--gold); color:var(--gold);}

.stats{display:flex; gap:48px; margin-top:64px; flex-wrap:wrap;}
.stat b{display:block; font-family:'Fraunces', serif; font-size:32px; color:var(--gold); font-weight:600;}
.stat span{font-size:13px; color:rgba(246,243,236,0.6); font-family:'DM Mono', monospace; letter-spacing:0.04em;}

/* ===== SECTION SHELL ===== */
section{padding:96px 32px;}
section.tight{padding:56px 32px;}
.section-head{display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:48px; flex-wrap:wrap;}
.section-tag{font-family:'DM Mono', monospace; font-size:12px; letter-spacing:0.14em; text-transform:uppercase; color:var(--rouge); margin-bottom:12px; display:block;}
.section-head h2{font-size:clamp(28px,3.4vw,42px); max-width:560px; line-height:1.1;}
.section-head p{max-width:380px; color:var(--muted); font-size:15px; line-height:1.6;}

/* ===== CATEGORIES ===== */
.cat-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px;}
.cat-grid.full{grid-template-columns:repeat(3,1fr);}
.cat-card{
  background:var(--surface); border:1px solid var(--line); border-radius:18px; padding:26px 22px;
  transition:.2s ease; cursor:pointer; position:relative; overflow:hidden;
}
.cat-card:hover{transform:translateY(-4px); border-color:var(--forest); box-shadow:0 16px 34px -18px var(--shadow);}
.cat-icon{width:42px; height:42px; border-radius:12px; background:var(--bg); display:flex; align-items:center; justify-content:center; font-size:20px; margin-bottom:20px;}
.cat-card h3{font-family:'Space Grotesk'; font-size:16px; font-weight:600; margin-bottom:6px;}
.cat-card span{font-size:12.5px; color:var(--muted); font-family:'DM Mono', monospace;}
.cat-card ul{margin-top:14px; padding-top:14px; border-top:1px solid var(--line); display:flex; flex-direction:column; gap:6px;}
.cat-card ul li{font-size:13px; color:var(--muted);}
.cat-card ul li a:hover{color:var(--rouge);}

/* ===== MAP ===== */
.map-section{background:var(--hero-bg-2); border-radius:28px; overflow:hidden; position:relative;}
.map-section .wrap-inner{display:grid; grid-template-columns:1fr 1fr; align-items:center;}
.map-copy{padding:64px 56px; color:#F6F3EC;}
.map-copy .section-tag{color:var(--gold);}
.map-copy h2{color:#F6F3EC; margin-bottom:18px;}
.map-copy p{color:rgba(246,243,236,0.72); line-height:1.65; margin-bottom:28px; font-size:15px;}
.map-visual{position:relative; height:420px; background:linear-gradient(160deg, #143f31, #0a2a21); overflow:hidden;}
.map-visual.tall{height:560px;}
.map-visual svg{width:100%; height:100%;}
.pin{position:absolute; width:14px; height:14px; border-radius:50% 50% 50% 0; background:var(--gold); transform:rotate(-45deg); box-shadow:0 0 0 4px rgba(217,164,65,0.2); cursor:pointer;}
.map-legend{position:absolute; bottom:24px; left:24px; background:rgba(246,243,236,0.08); backdrop-filter:blur(6px); border:1px solid rgba(246,243,236,0.16); border-radius:12px; padding:12px 16px; font-family:'DM Mono', monospace; font-size:11.5px; color:#F6F3EC;}
.district-list{display:flex; gap:10px; flex-wrap:wrap; margin-top:24px;}
.district-list span{font-family:'DM Mono',monospace; font-size:12px; padding:8px 14px; border-radius:100px; border:1px solid rgba(246,243,236,0.25); color:#F6F3EC;}

/* ===== PROVIDERS ===== */
.filters-bar{display:flex; gap:12px; flex-wrap:wrap; margin-bottom:40px; background:var(--surface); border:1px solid var(--line); border-radius:16px; padding:14px;}
.filters-bar select, .filters-bar input{
  border:1px solid var(--line); background:var(--bg); color:var(--text); border-radius:10px; padding:10px 14px; font-family:'Space Grotesk'; font-size:14px; outline:none;
}
.prov-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.prov-card{background:var(--surface); border:1px solid var(--line); border-radius:20px; overflow:hidden; transition:.2s;}
.prov-card:hover{box-shadow:0 20px 44px -22px var(--shadow); transform:translateY(-3px);}
.prov-photo{height:180px; background:linear-gradient(135deg, var(--forest), var(--forest-deep)); position:relative; display:flex; align-items:flex-end; padding:16px;}
.prov-photo.has-image{ background-size:cover; background-position:center; }
.prov-photo.has-image::before{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,42,33,0) 40%, rgba(10,42,33,0.75) 100%); }
.prov-photo.has-image .badge, .prov-photo.has-image .prov-initials{ position:relative; z-index:1; }
.prov-photo .badge{background:var(--gold); color:var(--forest-deep); font-family:'DM Mono',monospace; font-size:11px; font-weight:500; padding:5px 10px; border-radius:100px;}
.prov-initials{position:absolute; top:16px; right:16px; width:44px; height:44px; border-radius:50%; background:rgba(246,243,236,0.14); border:1px solid rgba(246,243,236,0.3); display:flex; align-items:center; justify-content:center; font-family:'Fraunces'; color:#F6F3EC; font-weight:600;}
.prov-body{padding:22px;}
.prov-body .role{font-family:'DM Mono', monospace; font-size:11.5px; color:var(--rouge); text-transform:uppercase; letter-spacing:0.08em; margin-bottom:6px; display:block;}
.prov-body h3{font-size:19px; margin-bottom:8px;}
.prov-body p{font-size:13.5px; color:var(--muted); line-height:1.55; margin-bottom:18px;}
.prov-meta{display:flex; justify-content:space-between; align-items:center; border-top:1px solid var(--line); padding-top:16px;}
.prov-meta span{font-size:12px; color:var(--muted); font-family:'DM Mono', monospace;}
.prov-meta a{font-size:13px; font-weight:600; color:var(--forest);}
html[data-theme="dark"] .prov-meta a{color:var(--gold);}
.prov-meta a:hover{color:var(--rouge);}
.pagination{display:flex; justify-content:center; gap:10px; margin-top:48px;}
.pagination a{width:38px; height:38px; border-radius:10px; border:1px solid var(--line); display:flex; align-items:center; justify-content:center; font-family:'DM Mono',monospace; font-size:13px;}
.pagination a.current{background:var(--forest); color:#fff; border-color:var(--forest);}

/* ===== PROFILE PAGE ===== */
.profile-grid{display:grid; grid-template-columns:1fr 320px; gap:40px;}
.profile-main{background:var(--surface); border:1px solid var(--line); border-radius:20px; padding:36px;}
.profile-main h3{font-size:15px; margin:28px 0 12px;}
.profile-main p{color:var(--muted); line-height:1.7; font-size:14.5px;}
.profile-side{background:var(--surface); border:1px solid var(--line); border-radius:20px; padding:28px; height:fit-content;}
.profile-side .btn{width:100%; margin-bottom:10px;}
.profile-gallery{display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:16px;}
.profile-gallery div{aspect-ratio:1; border-radius:10px; background:linear-gradient(135deg, var(--forest), var(--gold));}

/* ===== ADS / PARTENAIRES ===== */
.ads{background:var(--surface-2);}
.ads-strip{display:flex; gap:20px; overflow-x:auto; padding-bottom:8px;}
.ad-card{min-width:280px; flex:1; background:var(--surface); border:1.5px dashed var(--gold); border-radius:16px; padding:24px; display:flex; flex-direction:column; gap:10px; justify-content:space-between;}
.ad-card .mono{font-size:11px; color:var(--rouge); text-transform:uppercase; letter-spacing:0.1em;}
.ad-card h4{font-size:16px; font-family:'Space Grotesk'; font-weight:600;}
.ad-card p{font-size:13px; color:var(--muted);}
.pricing-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:56px;}
.price-card{background:var(--surface); border:1px solid var(--line); border-radius:20px; padding:32px;}
.price-card .amount{font-family:'Fraunces',serif; font-size:34px; color:var(--rouge); margin:14px 0;}
.price-card .amount span{font-size:14px; color:var(--muted); font-family:'Space Grotesk';}
.price-card ul{margin-top:18px; display:flex; flex-direction:column; gap:8px;}
.price-card ul li{font-size:13.5px; color:var(--muted); padding-left:18px; position:relative;}
.price-card ul li::before{content:"✓"; position:absolute; left:0; color:var(--forest);}
html[data-theme="dark"] .price-card ul li::before{color:var(--gold);}

/* ===== CTA BAND ===== */
.cta-band{background:var(--rouge); border-radius:28px; padding:64px 56px; display:flex; justify-content:space-between; align-items:center; gap:32px; flex-wrap:wrap; color:#F6F3EC;}
.cta-band h2{color:#F6F3EC; max-width:480px; font-size:clamp(26px,3vw,36px);}
.cta-band .btn-gold{padding:16px 30px; font-size:15px;}

/* ===== FOOTER ===== */
footer.site-footer{background:var(--forest-deep); color:rgba(246,243,236,0.65); padding:72px 32px 32px;}
html[data-theme="dark"] footer.site-footer{background:#060B08;}
.foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding-bottom:48px; border-bottom:1px solid rgba(246,243,236,0.1);}
.foot-grid h4{color:#F6F3EC; font-family:'DM Mono', monospace; font-size:12px; text-transform:uppercase; letter-spacing:0.1em; margin-bottom:18px;}
.foot-grid li{margin-bottom:10px; font-size:14px;}
.foot-grid a:hover{color:var(--gold);}
.foot-bottom{display:flex; justify-content:space-between; padding-top:28px; font-size:12.5px; flex-wrap:wrap; gap:12px;}
.foot-signature a{color:var(--gold); font-weight:600; border-bottom:1px solid rgba(217,164,65,0.4);}
.foot-signature a:hover{border-color:var(--gold);}

/* ===== INTRO : LION RUGISSANT ===== */
.roar-intro{
  position:fixed; inset:0; z-index:9999;
  background:radial-gradient(circle at 50% 42%, var(--forest) 0%, var(--forest-deep) 75%);
  display:flex; align-items:center; justify-content:center; flex-direction:column; gap:18px;
  animation:roarFadeOut .8s ease forwards; animation-delay:2.7s;
  cursor:pointer;
}
.roar-intro.skip{ animation:none; opacity:0; pointer-events:none; }
@keyframes roarFadeOut{ to{ opacity:0; visibility:hidden; pointer-events:none; } }

.roar-stage{ position:relative; width:220px; height:220px; display:flex; align-items:center; justify-content:center; }
.roar-ring{
  position:absolute; border-radius:50%; border:1px solid rgba(217,164,65,0.35);
  width:60px; height:60px; opacity:0;
  animation:roarRing 2.4s ease-out 1.9s infinite;
}
.roar-ring.r2{ animation-delay:2.15s; }
.roar-ring.r3{ animation-delay:2.4s; }
@keyframes roarRing{
  0%{ width:60px; height:60px; opacity:0.8; }
  100%{ width:260px; height:260px; opacity:0; }
}

.roar-svg{ width:190px; height:190px; position:relative; z-index:2; overflow:visible; }
.roar-svg path{
  fill:none; stroke:#D9A441; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round;
  stroke-dasharray:1; stroke-dashoffset:1;
  animation:drawLine 1s ease forwards;
}
.roar-svg .roar-face-line path{ stroke:#F6F3EC; }
@keyframes drawLine{ to{ stroke-dashoffset:0; } }

.roar-label{
  font-family:'DM Mono', monospace; font-size:11px; letter-spacing:0.16em; text-transform:uppercase;
  color:rgba(246,243,236,0.55); z-index:2; opacity:0; animation:labelFade .8s ease 1.7s forwards;
}
@keyframes labelFade{ to{ opacity:1; } }
@media (prefers-reduced-motion: reduce){
  .roar-intro{ animation:none !important; opacity:0; pointer-events:none; }
  .roar-svg path, .roar-ring, .roar-label{ animation:none !important; stroke-dashoffset:0; opacity:1; }
}

/* ===== MENU HAMBURGER (MOBILE) ===== */
.hamburger{
  display:none; flex-direction:column; justify-content:center; gap:5px;
  width:38px; height:38px; border:1px solid var(--line); border-radius:10px;
  background:var(--surface); cursor:pointer; padding:0;
}
.hamburger span{ display:block; width:18px; height:2px; background:var(--text); margin:0 auto; transition:.25s ease; border-radius:2px; }
.hamburger.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.hamburger.open span:nth-child(2){ opacity:0; }
.hamburger.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

.mobile-menu{
  display:none; position:fixed; inset:0; z-index:200;
  background:var(--bg); flex-direction:column;
  padding:96px 32px 32px; overflow-y:auto;
  transform:translateY(-8px); opacity:0; pointer-events:none;
  transition:opacity .2s ease, transform .2s ease;
}
.mobile-menu.open{ display:flex; opacity:1; transform:translateY(0); pointer-events:auto; }
.mobile-menu a{
  font-family:'Fraunces', serif; font-size:22px; padding:14px 0; border-bottom:1px solid var(--line); color:var(--text);
}
.mobile-menu .mobile-cta{ margin-top:28px; display:flex; flex-direction:column; gap:12px; }
.mobile-menu .mobile-cta .btn{ width:100%; }
.mobile-menu .mobile-lang{ margin-top:24px; }

@media(max-width:920px){
  nav.links{ display:none; }
  .nav-cta .btn-outline, .nav-cta .btn-primary{ display:none; }
  .hamburger{ display:flex; }
}

/* ===== CARTE ANIMÉE (Calgary) ===== */
.map-visual .pin{
  animation:pinPulse 2.6s ease-in-out infinite, pinDrop .6s ease-out both;
}
@keyframes pinPulse{
  0%,100%{ box-shadow:0 0 0 4px rgba(217,164,65,0.22); }
  50%{ box-shadow:0 0 0 11px rgba(217,164,65,0.03); }
}
@keyframes pinDrop{
  0%{ transform:translateY(-16px) rotate(-45deg) scale(0.4); opacity:0; }
  100%{ transform:translateY(0) rotate(-45deg) scale(1); opacity:1; }
}
.map-visual::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:conic-gradient(from 0deg at 50% 50%, transparent 0deg, rgba(217,164,65,0.09) 12deg, transparent 26deg);
  animation:mapSweep 7s linear infinite;
  mix-blend-mode:screen;
}
@keyframes mapSweep{ to{ transform:rotate(360deg); } }
.map-visual svg line{ animation:gridFade 5s ease-in-out infinite; }
@keyframes gridFade{ 0%,100%{ opacity:0.35; } 50%{ opacity:0.9; } }
@media (prefers-reduced-motion: reduce){
  .map-visual .pin, .map-visual::after, .map-visual svg line{ animation:none !important; }
}

/* ===== ICÔNES AU TRAIT ANIMÉES ===== */
.icon{
  width:18px; height:18px; display:inline-block; vertical-align:-4px;
  fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round;
  flex-shrink:0;
}
.icon path, .icon circle, .icon line, .icon polyline{
  stroke-dasharray:1; stroke-dashoffset:1;
  animation:iconDraw .7s cubic-bezier(.4,0,.2,1) forwards;
  animation-delay:.15s;
}
.icon-lg{ width:26px; height:26px; }
.icon-sm{ width:15px; height:15px; vertical-align:-2.5px; }
@keyframes iconDraw{ to{ stroke-dashoffset:0; } }
@media (prefers-reduced-motion: reduce){
  .icon path, .icon circle, .icon line, .icon polyline{ animation:none !important; stroke-dashoffset:0; }
}

/* icônes de catégorie : plus grandes, couleur de marque, dans leur pastille */
.cat-icon .icon{ width:22px; height:22px; stroke:var(--forest); }
html[data-theme="dark"] .cat-icon .icon{ stroke:var(--gold); }
.contact-method .icon{ stroke:var(--forest); }
html[data-theme="dark"] .contact-method .icon{ stroke:var(--gold); }
.form-alert.success .icon{ stroke:var(--forest); }
.form-alert.error .icon{ stroke:var(--rouge); }
.prov-meta .icon, .profile-side .icon{ vertical-align:-3px; }
.eyebrow .icon{ width:12px; height:12px; }

/* ===== LANGUE FR / EN ===== */
html[data-lang="fr"] .lang-en{ display:none !important; }
html[data-lang="en"] .lang-fr{ display:none !important; }
html[data-lang="fr"] .lang-en-inline{ display:none !important; }
html[data-lang="en"] .lang-fr-inline{ display:none !important; }

.lang-switch{
  display:flex; align-items:center; border:1px solid var(--line); border-radius:100px; overflow:hidden;
  font-family:'DM Mono', monospace; font-size:11.5px; font-weight:500;
}
.lang-switch button{
  border:none; background:transparent; color:var(--muted); padding:8px 12px; cursor:pointer; letter-spacing:0.04em;
}
.lang-switch button.active{ background:var(--forest); color:#F6F3EC; }
html[data-theme="dark"] .lang-switch button.active{ background:var(--gold); color:var(--forest-deep); }

/* ===== FORMS (Ajouter mon entreprise / Contact) ===== */
.form-shell{display:grid; grid-template-columns:1.2fr 0.8fr; gap:40px; align-items:start;}
.form-card{background:var(--surface); border:1px solid var(--line); border-radius:20px; padding:40px;}
.form-card h2{font-size:24px; margin-bottom:8px;}
.form-card > p.form-lead{color:var(--muted); font-size:14px; margin-bottom:32px;}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-bottom:18px;}
.form-row.single{grid-template-columns:1fr;}
.field label{display:block; font-family:'DM Mono', monospace; font-size:11.5px; text-transform:uppercase; letter-spacing:0.08em; color:var(--muted); margin-bottom:8px;}
.field label .req{color:var(--rouge);}
.field input, .field select, .field textarea{
  width:100%; border:1px solid var(--line); background:var(--bg); color:var(--text);
  border-radius:10px; padding:12px 14px; font-family:'Space Grotesk'; font-size:14.5px; outline:none; transition:border-color .15s;
}
.field input:focus, .field select:focus, .field textarea:focus{border-color:var(--forest);}
html[data-theme="dark"] .field input:focus, html[data-theme="dark"] .field select:focus, html[data-theme="dark"] .field textarea:focus{border-color:var(--gold);}
.field textarea{resize:vertical; min-height:120px;}
.honeypot-field{position:absolute; left:-9999px; opacity:0; height:0; overflow:hidden;}
.form-submit{margin-top:8px; width:100%; justify-content:center;}
.form-note{font-size:12.5px; color:var(--muted); margin-top:16px; line-height:1.6;}
.form-alert{border-radius:14px; padding:16px 20px; font-size:14px; margin-bottom:28px; display:flex; gap:10px; align-items:flex-start;}
.form-alert.success{background:rgba(14,59,46,0.08); border:1px solid rgba(14,59,46,0.25); color:var(--forest);}
.form-alert.error{background:rgba(179,40,45,0.08); border:1px solid rgba(179,40,45,0.3); color:var(--rouge);}
html[data-theme="dark"] .form-alert.success{color:#8fd6b4;}
html[data-theme="dark"] .form-alert.error{color:#f0a4a7;}
.form-aside{background:var(--surface-2); border-radius:20px; padding:36px; height:fit-content;}
.form-aside h3{font-size:16px; margin-bottom:14px;}
.form-aside p{color:var(--muted); font-size:13.5px; line-height:1.7; margin-bottom:20px;}
.form-aside ul{display:flex; flex-direction:column; gap:12px;}
.form-aside li{font-size:13.5px; color:var(--muted); padding-left:20px; position:relative;}
.form-aside li::before{content:"✓"; position:absolute; left:0; color:var(--forest); font-weight:600;}
html[data-theme="dark"] .form-aside li::before{color:var(--gold);}
.contact-methods{display:flex; flex-direction:column; gap:16px; margin-top:24px;}
.contact-method{display:flex; gap:12px; align-items:flex-start; font-size:13.5px;}
.contact-method .ic{width:36px; height:36px; border-radius:10px; background:var(--surface); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.contact-method b{display:block; font-size:13.5px;}
.contact-method span{color:var(--muted); font-size:12.5px;}

@media(max-width:640px){
  .wrap{padding:0 20px;}
  section{padding:56px 20px;}
  section.tight{padding:40px 20px;}
  .hero-inner{padding:56px 20px 72px;}
  .hero-inner.compact{padding:44px 20px 56px;}
  .nav{padding:14px 20px; gap:10px;}
  .nav-cta{gap:8px;}
  .nav-cta .btn-outline{display:none;}
  .btn-sm{padding:8px 12px; font-size:12.5px;}
  .logo-text{font-size:16px;}
  .stats{gap:24px;}
  .stat b{font-size:26px;}
  .section-head{margin-bottom:32px;}
  .map-copy{padding:36px 24px;}
  .cta-band{padding:36px 24px; flex-direction:column; align-items:flex-start;}
  .foot-grid{grid-template-columns:1fr;}
  .profile-gallery{grid-template-columns:repeat(2,1fr);}
  .form-card{padding:24px;}
  .form-aside{padding:24px;}
}

@media(max-width:480px){
  .cat-grid, .cat-grid.full{grid-template-columns:1fr;}
  .hero h1{font-size:30px;}
  .hero h1.page-title{font-size:26px;}
  .eyebrow{font-size:11px; padding:6px 12px;}
  .search-tags{display:none;}
}


  .form-shell{grid-template-columns:1fr;}
  .form-row{grid-template-columns:1fr;}
  nav.links{display:none;}
  .cat-grid, .cat-grid.full{grid-template-columns:repeat(2,1fr);}
  .prov-grid{grid-template-columns:1fr;}
  .map-section .wrap-inner{grid-template-columns:1fr;}
  .map-visual{height:280px;}
  .foot-grid{grid-template-columns:1fr 1fr;}
  .stats{gap:32px;}
  .search-card{flex-direction:column;}
  .profile-grid{grid-template-columns:1fr;}
  .pricing-grid{grid-template-columns:1fr;}
}
