/* ══════════════════════════════════════════════════════════════
   espacepatrimonia.fr — Design v3 "Castelnauvien"
   Couleurs Castelnau-le-Lez : Bleu Lez #1A4B8C · Turquoise #0E9BAD
   Ocre calcaire #C8930A · Garrigue #4A7C59 · Pierre #F5F2EC
   ══════════════════════════════════════════════════════════════ */
:root{
  --bleu:#1A4B8C; --bleu-cl:#E8EEF7; --bleu-fonce:#0D2E5A;
  --turquoise:#0E9BAD; --turq-cl:#E0F5F7; --turq-fonce:#0B7D8C;
  --ocre:#C8930A; --ocre-cl:#FEF8EA;
  --vert-g:#4A7C59; --vert-cl:#EBF4EE;
  --pierre:#F5F2EC; --encre:#1A2332;
  --gris:#5A6872; --gris-cl:#F4F6F8;
  --or:#C8930A; --ocre-fonce:#8C6208; --nuit:#0D2E5A;
  --ligne:rgba(0,0,0,.08); --w:1240px; --r:10px;
  --s1:0 2px 12px rgba(26,75,140,.1); --s2:0 8px 32px rgba(26,75,140,.16);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html,body{overflow-x:hidden;scroll-behavior:smooth}
body{font-family:'Inter',system-ui,sans-serif;background:#fff;color:var(--encre);line-height:1.68;font-size:16px}
img,iframe,svg{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:'Montserrat',sans-serif;font-weight:800;line-height:1.1}

/* LAYOUT */
.w{max-width:var(--w);margin:0 auto;padding:0 1.5rem}
.s{padding:4.5rem 0}
.s-pierre{background:var(--pierre)}
.s-bleu{background:var(--bleu);color:#fff}
.s-bleu-cl{background:var(--bleu-cl)}
.s-turq{background:var(--turquoise);color:#fff}
.s-encre{background:var(--encre);color:#fff}
.s-nuit{background:var(--nuit);color:#fff}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start}
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem}

/* TICKER */
.ticker{background:var(--bleu-fonce);padding:.4rem 0;overflow:hidden;white-space:nowrap}
.ticker-inner{display:inline-flex;animation:tick 38s linear infinite}
.ticker-inner span{font-size:.66rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:rgba(255,255,255,.75);padding:0 2rem}
.ticker-inner span::before{content:'~';margin-right:2rem;color:var(--turquoise)}
@keyframes tick{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* HEADER */
.hdr{background:#fff;position:sticky;top:0;z-index:200;border-bottom:3px solid var(--turquoise);box-shadow:var(--s1)}
.hdr-inner{height:72px;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.logo{display:flex;align-items:center;gap:.875rem;flex-shrink:0}
.logo-badge{width:40px;height:40px;position:relative;flex-shrink:0}
.logo-badge svg{width:40px;height:40px}
.logo-nom{font-family:'Montserrat',sans-serif;font-weight:900;font-size:.9375rem;color:var(--bleu);line-height:1.2}
.logo-sub{font-size:.6rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--turquoise)}
nav ul{display:flex;list-style:none;align-items:center}
nav ul li a{display:flex;align-items:center;height:72px;padding:0 .8rem;font-size:.69rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--gris);border-bottom:3px solid transparent;position:relative;top:1.5px;transition:.2s}
nav ul li a:hover,nav ul li a.on{color:var(--bleu)}
nav ul li a.on{border-bottom-color:var(--bleu)}
nav ul li a:hover{border-bottom-color:var(--turquoise)}
.hdr-cta{background:var(--bleu);color:#fff;padding:.5rem 1.125rem;border-radius:6px;font-size:.75rem;font-weight:700;letter-spacing:.04em;display:flex;align-items:center;gap:.5rem;flex-shrink:0;transition:.15s}
.hdr-cta:hover{background:var(--bleu-fonce)}
.burger{display:none;background:none;border:none;cursor:pointer;color:var(--bleu);min-width:44px;min-height:44px;align-items:center;justify-content:center;border-radius:6px;transition:.15s}
.burger:hover{background:var(--bleu-cl)}

/* BREADCRUMB */
.bc{font-size:.78rem;color:var(--gris);padding:.625rem 0;border-bottom:1px solid var(--ligne)}
.bc a{color:var(--bleu)}.bc a:hover{color:var(--turquoise)}
.bc .sep{margin:0 .5rem;color:var(--turquoise)}

/* HERO */
.hero{background:linear-gradient(150deg,var(--bleu-fonce) 0%,var(--bleu) 55%,#215A9E 100%);color:#fff;padding:5rem 0 4rem;position:relative;overflow:hidden}
.hero::after{content:'';position:absolute;bottom:0;left:0;right:0;height:5px;background:linear-gradient(90deg,var(--turquoise),var(--ocre),var(--turquoise))}
.hero-kicker{font-size:.66rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--turquoise);margin-bottom:.875rem;display:flex;align-items:center;gap:.75rem}
.hero-kicker::before{content:'';width:24px;height:2px;background:var(--turquoise);flex-shrink:0}
.hero h1{font-size:clamp(2rem,5vw,3.5rem);color:#fff;margin-bottom:1.25rem}
.hero h1 em{font-style:normal;color:var(--ocre)}
.hero-sub{color:rgba(255,255,255,.82);font-size:1.0625rem;max-width:620px;line-height:1.75;margin-bottom:2rem}
.hero-btns{display:flex;gap:.875rem;flex-wrap:wrap;margin-bottom:.875rem}
.hero-mail{font-size:.78rem;color:rgba(255,255,255,.5);margin-top:.375rem}
.hero-mail a{color:rgba(255,255,255,.7)}

/* STATS */
.stats-band{background:var(--turquoise);padding:2rem 0}
.stats-inner{display:grid;grid-template-columns:repeat(5,1fr);gap:1rem;text-align:center}
.stat-n{font-size:1.875rem;font-weight:900;color:#fff;font-family:'Montserrat',sans-serif;line-height:1}
.stat-l{font-size:.58rem;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.75);margin-top:.375rem;line-height:1.3}

/* SECTION TITRES */
.kicker{display:inline-flex;align-items:center;gap:.625rem;font-size:.66rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--turquoise);margin-bottom:.875rem}
.kicker::before{content:'';width:18px;height:2px;background:var(--turquoise);flex-shrink:0}
h2.h2{font-size:clamp(1.5rem,4vw,2.375rem);color:var(--bleu);margin-bottom:1.5rem}
h2.h2 em{font-style:normal;color:var(--turquoise)}

/* CARDS */
.card{background:#fff;border:1px solid var(--ligne);border-radius:var(--r);padding:1.75rem;transition:.2s;position:relative}
.card:hover{box-shadow:var(--s2);transform:translateY(-2px)}
.card-bleu{border-top:4px solid var(--bleu)}
.card-turq{border-top:4px solid var(--turquoise)}
.card-ocre{border-top:4px solid var(--ocre)}
.card-vert{border-top:4px solid var(--vert-g)}
.card-ico{font-size:2rem;margin-bottom:.875rem}
.card h3{font-size:1rem;color:var(--bleu);margin-bottom:.5rem}
.card p{font-size:.875rem;color:var(--gris);line-height:1.65}

/* CW CARDS */
.cw-card{border-radius:var(--r);overflow:hidden;border:1px solid var(--ligne);background:#fff;transition:.2s}
.cw-card:hover{box-shadow:var(--s2)}
.cw-head{background:linear-gradient(135deg,var(--bleu-fonce),var(--bleu));color:#fff;padding:1.5rem;position:relative}
.cw-head h3{color:#fff;margin-bottom:.375rem}
.cw-head p{font-size:.8125rem;color:rgba(255,255,255,.75)}
.cw-badge{position:absolute;top:1rem;right:1rem;background:var(--ocre-fonce);color:#fff;font-size:.6rem;font-weight:700;padding:.2rem .625rem;border-radius:3px;text-transform:uppercase;letter-spacing:.06em}
.cw-body{padding:1.5rem}
.cw-feat{list-style:none;display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.25rem}
.cw-feat li{display:flex;gap:.625rem;font-size:.8125rem;color:var(--gris)}
.cw-feat li::before{content:'✓';color:var(--turquoise);font-weight:700;flex-shrink:0}

/* FAQ */
.faq{display:flex;flex-direction:column;gap:.75rem}
.faq-item{border:1px solid var(--ligne);border-radius:8px;overflow:hidden}
.faq-q{width:100%;background:#fff;border:none;padding:1.125rem 1.5rem;text-align:left;font-family:'Montserrat',sans-serif;font-weight:700;font-size:.9375rem;color:var(--encre);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem;min-height:56px;transition:.15s}
.faq-q:hover{background:var(--bleu-cl);color:var(--bleu)}
.faq-q .arr{width:28px;height:28px;border-radius:50%;background:var(--bleu-cl);display:flex;align-items:center;justify-content:center;font-size:.6rem;color:var(--bleu);transition:.25s;flex-shrink:0}
.faq-q[aria-expanded=true]{background:var(--bleu);color:#fff}
.faq-q[aria-expanded=true] .arr{background:rgba(255,255,255,.2);color:#fff;transform:rotate(180deg)}
.faq-a{display:none;padding:1.25rem 1.5rem 1.5rem;font-size:.875rem;color:var(--gris);line-height:1.78;border-top:1px solid var(--ligne);background:var(--bleu-cl)}
.faq-a.open{display:block}

/* TABLE */
table{width:100%;border-collapse:collapse;font-size:.875rem}
thead th{padding:.625rem 1rem;background:var(--bleu);color:#fff;text-align:left;font-size:.67rem;text-transform:uppercase;letter-spacing:.06em;font-family:'Montserrat',sans-serif}
tbody td{padding:.625rem 1rem;border-bottom:1px solid var(--ligne)}
tbody tr:last-child td{border-bottom:none}
tbody tr:hover td{background:var(--bleu-cl)}

/* TIMELINE */
.tl{position:relative;padding-left:2.5rem}
.tl::before{content:'';position:absolute;left:.75rem;top:.5rem;bottom:.5rem;width:2px;background:linear-gradient(to bottom,var(--turquoise),var(--bleu))}
.tl-item{position:relative;padding-bottom:2.25rem}
.tl-item:last-child{padding-bottom:0}
.tl-item::before{content:'';position:absolute;left:-1.875rem;top:.5rem;width:16px;height:16px;border-radius:50%;background:var(--turquoise);border:3px solid #fff;box-shadow:0 0 0 2px var(--turquoise)}
.tl-date{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--turquoise);margin-bottom:.25rem}
.tl-title{font-size:.9375rem;font-weight:700;color:var(--bleu);margin-bottom:.375rem}
.tl-text{font-size:.8125rem;color:var(--gris);line-height:1.65}

/* CONTACT CARD */
.contact-card{background:var(--bleu-fonce);color:#fff;border-radius:var(--r);padding:1.75rem}
.contact-card h3{color:var(--turquoise);font-size:1rem;margin-bottom:1rem}
.contact-tel{font-size:1.25rem;font-weight:800;color:var(--ocre);display:block;margin-bottom:.25rem}
.contact-mail{font-size:.875rem;color:rgba(255,255,255,.6);display:block;margin-bottom:.875rem}
.contact-card p{font-size:.8125rem;color:rgba(255,255,255,.65);line-height:1.7}

/* CTA BAND */
.cta-band{background:linear-gradient(135deg,var(--bleu-fonce) 0%,var(--bleu) 100%);color:#fff;padding:4.5rem 0;text-align:center}
.cta-band h2{color:#fff;font-size:clamp(1.625rem,4vw,2.25rem);margin-bottom:.875rem}
.cta-band p{color:rgba(255,255,255,.78);margin-bottom:1.75rem;max-width:620px;margin-left:auto;margin-right:auto}

/* BOUTONS */
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border-radius:6px;font-weight:700;font-size:.875rem;text-transform:uppercase;letter-spacing:.04em;transition:.18s;border:2px solid transparent;cursor:pointer}
.btn-bleu{background:var(--bleu);color:#fff}.btn-bleu:hover{background:var(--bleu-fonce)}
.btn-turq{background:var(--turquoise);color:#fff}.btn-turq:hover{background:var(--turq-fonce)}
.btn-ocre{background:var(--ocre-fonce);color:#fff}.btn-ocre:hover{background:#6B4A05}
.btn-wh{background:transparent;color:#fff;border-color:rgba(255,255,255,.45)}.btn-wh:hover{border-color:#fff;background:rgba(255,255,255,.12)}
.btn-bleu-ol{background:transparent;color:var(--bleu);border-color:var(--bleu)}.btn-bleu-ol:hover{background:var(--bleu);color:#fff}
.btn-turq-ol{background:transparent;color:var(--turquoise);border-color:var(--turquoise)}.btn-turq-ol:hover{background:var(--turquoise);color:#fff}

/* BADGE */
.badge{display:inline-block;font-size:.6rem;font-weight:700;padding:.2rem .625rem;border-radius:3px;text-transform:uppercase;letter-spacing:.06em}
.badge-turq{background:var(--turquoise);color:#fff}
.badge-ocre{background:var(--ocre-fonce);color:#fff}
.badge-bleu{background:var(--bleu);color:#fff}

/* CHECKLIST */
.ck{list-style:none;display:flex;flex-direction:column;gap:.625rem}
.ck li{display:flex;gap:.75rem;font-size:.875rem;align-items:flex-start}
.ck li::before{content:'→';color:var(--turquoise);font-weight:800;flex-shrink:0}

/* PHOTO GRID */
.photo-grid{display:grid;grid-template-columns:2fr 1fr;gap:.75rem}
.photo-grid .photo-main{border-radius:var(--r);overflow:hidden;height:400px}
.photo-grid .photo-main img{width:100%;height:100%;object-fit:cover}
.photo-grid .photo-side{display:grid;grid-template-rows:1fr 1fr;gap:.75rem}
.photo-grid .photo-side img{border-radius:var(--r);object-fit:cover;width:100%;height:195px}
.photo-trio{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}
.photo-trio img{border-radius:var(--r);object-fit:cover;width:100%;height:220px}

/* MAP */
.map-wrap iframe{width:100%;height:420px;border:0;border-radius:var(--r)}

/* PILL TAGS */
.tags{display:flex;flex-wrap:wrap;gap:.5rem}
.tag{background:var(--bleu-cl);color:var(--bleu);font-size:.72rem;font-weight:600;padding:.25rem .75rem;border-radius:20px}

/* FOOTER */
footer{background:var(--bleu-fonce);color:#fff;padding:4rem 0 0}
.ft-top{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:3rem;margin-bottom:3rem}
.ft-logo-nom{font-family:'Montserrat',sans-serif;font-weight:900;font-size:1.0625rem;color:#fff;margin-bottom:.125rem}
.ft-logo-sub{font-size:.6rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--turquoise);margin-bottom:.875rem}
.ft-desc{font-size:.8125rem;color:rgba(255,255,255,.5);line-height:1.65;margin-bottom:1rem}
.ft-tel{font-size:1rem;font-weight:700;color:var(--ocre);display:block;margin-bottom:.2rem}
.ft-mail{font-size:.8125rem;color:rgba(255,255,255,.45);display:block}
.ft-col h5{font-size:.63rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--turquoise);margin-bottom:.875rem}
.ft-col ul{list-style:none}
.ft-col ul li a{font-size:.8125rem;color:rgba(255,255,255,.55);display:block;padding:.25rem 0;transition:.15s}
.ft-col ul li a:hover{color:var(--ocre)}
.ft-bot{border-top:1px solid rgba(255,255,255,.07);padding:1.25rem 0;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem}
.ft-copy{font-size:.72rem;color:rgba(255,255,255,.3)}
.ft-links{display:flex;gap:1.25rem}
.ft-links a{font-size:.72rem;color:rgba(255,255,255,.3);transition:.15s}.ft-links a:hover{color:var(--ocre)}

/* MOBILE */
@media(max-width:1100px){
  .burger{display:flex !important}
  .hdr-cta{display:none}
  nav ul{display:none;position:fixed;top:75px;left:0;right:0;bottom:0;flex-direction:column;align-items:stretch;background:#fff;z-index:300;padding:1rem;overflow-y:auto;box-shadow:var(--s2);padding-bottom:calc(2rem + env(safe-area-inset-bottom))}
  nav ul.open{display:flex}
  nav ul li a{height:auto;min-height:52px;border-bottom:1px solid var(--ligne) !important;border-bottom-width:1px !important;font-size:.9375rem;padding:.875rem 1rem;color:var(--encre);top:0}
  nav ul li a.on{color:var(--bleu);background:var(--bleu-cl);border-bottom-color:var(--bleu) !important}
}
@media(min-width:1101px){.burger{display:none !important}}
@media(max-width:960px){
  .g2,.g3,.g4{grid-template-columns:1fr 1fr !important}
  .ft-top{grid-template-columns:1fr 1fr}
  .stats-inner{grid-template-columns:repeat(3,1fr)}
  .photo-grid{grid-template-columns:1fr}
  .photo-grid .photo-main,.photo-grid .photo-side img{height:250px}
  .photo-grid .photo-side{grid-template-columns:1fr 1fr;grid-template-rows:auto}
}
@media(max-width:640px){
  .g2,.g3,.g4,.ft-top{grid-template-columns:1fr !important}
  .stats-inner{grid-template-columns:1fr 1fr}
  .s{padding:3rem 0}
  .photo-trio{grid-template-columns:1fr}
  .photo-trio img{height:200px}
}
*:focus-visible{outline:3px solid var(--turquoise);outline-offset:3px;border-radius:2px}
.hdr{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
footer{padding-bottom:calc(0px + env(safe-area-inset-bottom))}
