:root{
  --r: 14px; /* radius */
  --shadow: 0 1px 2px rgba(0,0,0,.04), 0 6px 20px rgba(0,0,0,.06);
  --container: 1216px;

  /* Familles de polices */
  --font-one: "Inter", Roboto, Arial, sans-serif;
  --font-two: "Poppins", sans-serif;
  --font-prog-name: "Montserrat";
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--theme-body_bg);
  color:var(--c-text);
  font: 14px sans-serif;
}

b,optgroup,strong {font-weight: 700 }

p{margin : 0;}

/* Container global */
.container {
  max-width: var(--container);  /* 1216px via :root */
  margin: 0 auto;
}


.site__main{padding: 8px 0; }


/* ===== Header / Shell ===== */
.header{
  position: sticky; top:0; z-index:50;
  padding:8px 0;
}
.header__shell{
  position: relative; /* anchor for absolute badge */
  background: var(--theme-primary_clear);
  border:1px solid var(--theme-border);
  border-radius:12px;
  padding:10px 12px;
  transition: border-radius .2s ease, box-shadow .2s ease;
}
.header__bar{display:flex; align-items:center; gap:14px; flex-wrap:wrap; }

/* Compteur programmes en vente (bandeau en haut à droite) */
.header__badge{
  position: absolute; top: 8px; right: 16px; /* top-right, slightly inset from border */
  display:inline-flex; align-items:center; gap:4px;
  background:#fff; border:1px solid var(--theme-border); border-radius:999px;
  padding:6px 10px; font:600 13px/1 var(--font-one); color: var(--theme-grey_subtitle);
}
.header__badge strong{ font-weight:800; color: var(--theme-primary); font-size:14px; }
.header__badge-dot{
  width:10px; height:10px; border-radius:999px;
  background: var(--theme-new_strong, #00af36); /* point vert */
  display:inline-block; position:relative;
  margin: 0 8px 0 6px; /* un peu d'espace autour du point */
  animation: header-dot-blink 1.2s ease-in-out infinite alternate;
}
.header__badge-dot::after{
  content:""; position:absolute; left:50%; top:50%; transform: translate(-50%,-50%) scale(1);
  width:100%; height:100%; border-radius:999px; pointer-events:none;
  box-shadow: 0 0 0 0 rgba(0,175,54,.28); /* rayon vert clair */
  animation: header-dot-ray 2.2s ease-out infinite;
}

/* ===== Live button (green pulse) ===== */
.btn-live{ position:relative; z-index:0; overflow:visible; border-radius:999px; background: rgba(255,255,255,.95); border:1px solid #fff; box-shadow: 0 2px 0 rgba(0,0,0,.08); transition: transform .2s ease, box-shadow .2s ease, padding .2s ease, background-color .2s ease, border-color .2s ease; padding:13px 25px; color:#333; --btn-ray: rgba(0,175,54,.28); }
.btn-live:hover{ transform: translateY(-3px); padding: 15px 30px 15px 28px; background:#fff; border-color: transparent; box-shadow: 0 5px 10px rgba(16,24,40,.12); }
.btn-live:active{ transform: translateY(0); padding: 12px 23px 12px 21px; box-shadow: inset 0 2px 1px rgba(0,0,0,.12); }
.btn-live .live-icon{ display:inline-block; position:relative; top: calc(50% - 5px); background: var(--theme-new_strong, #00af36); width:10px; height:10px; margin-left: 18px; border: 1px solid rgba(0,0,0,.08); border-radius:50%; }
.btn-live .live-icon::before{ content:""; position:absolute; inset:0; background: var(--theme-new_strong, #00af36); border-radius:50%; animation: live-ring 2s ease-in-out infinite; opacity:.6; }
@keyframes live-ring{ 0%{ transform: scale(1); opacity:.5; } 100%{ transform: scale(3.3); opacity:0; } }

/* Green ray around the whole button */
.btn-live::after{
  content:""; position:absolute; left:50%; top:50%; transform: translate(-50%,-50%) scale(1);
  width:100%; height:100%; border-radius:999px; pointer-events:none; z-index:-1;
  box-shadow: 0 0 0 0 var(--btn-ray);
  animation: btn-green-ray 2.2s ease-out infinite;
}
@keyframes btn-green-ray{
  0%   { box-shadow: 0 0 0 0 var(--btn-ray); }
  100% { box-shadow: 0 0 0 26px rgba(0,175,54,0); }
}

@keyframes header-dot-blink{
  0%   { opacity:.45; transform: scale(.9); }
  100% { opacity:1;   transform: scale(1); }
}

@keyframes header-dot-ray{
  0%   { box-shadow: 0 0 0 0 rgba(0,175,54,.28); }
  100% { box-shadow: 0 0 0 20px rgba(0,175,54,0); }
}

.header__brand{
  display:flex; align-items:center; gap:12px;
  min-width:260px;
  color:var(--c-text); text-decoration:none;
}
.header__logo img,.header__logo svg{ height:48px; width:auto; display:block; }



/* ===== Burger ===== */
.hamburger{
  display:none;
  border:2px solid var(--theme-primary);
  background: #fff;
  height:44px; width:44px;
  border-radius:12px;
  align-items:center; justify-content:center;
}
.hamburger span{
  display:block; width:22px; height:2px; background:var(--theme-primary); position:relative;
}
.hamburger span:before,.hamburger span:after{
  content:""; position:absolute; left:0; width:22px; height:2px; background:var(--theme-primary);
}
.hamburger span:before{ top:-6px } .hamburger span:after{ top:6px }

/* ===== Nav (liste sémantique) ===== */
.nav{ display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.nav__list{ list-style:none; display:flex; gap:8px; flex-wrap:wrap; margin:0; padding:0; }
.nav__item{ display:flex; }

/* Pills (desktop) */
.nav__link{
  display:inline-flex; align-items:center; gap:8px;
  padding: 4px 12px; border-radius:4px;
  background: var(--theme-primary_soft);
  border: 2.4px solid var(--theme-primary);
  color: #fff;
  font-family: var(--font-one, inherit);
  font-weight:600; font-size:16px; line-height:1.2;
  text-decoration:none;
  transition: filter .15s ease, transform .02s ease, background-color .15s ease, color .15s ease;
}
.nav__link:hover{ background:#fff; color:#363636; }
.nav__link:active{ transform: translateY(1px); }
.nav__link--active{ background:#fff; color:#363636; }


@media (min-width:961px){
  .nav{
    margin-top: 6px;  /* ajuste la valeur : 6–10px */
  }
}

/* ====== MOBILE (shell qui s’agrandit) ====== */
@media (max-width: 960px){
  /* 1) barre haute : logo + burger */
  .hamburger{ display:inline-flex; margin-left:auto; }
  .nav{ width:100%; } /* nav passe sous la barre */

  /* 2) nav cachée par défaut dans le shell (pas de drawer externe) */
  .nav{
    display:block;               /* on contrôle l’intérieur */
  }
  .nav__list{
    display:block;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transform: translateY(-4px);
    transition: max-height .25s ease, opacity .2s ease, transform .2s ease;
  }

  /* 3) quand open → on étend le shell et on déploie la liste */
  .header.is-open .header__shell{
    border-bottom-left-radius:12px; /* on garde les coins, c’est le même bloc */
    border-bottom-right-radius:12px;
    /* petit relief si tu veux */
    /* box-shadow: 0 1px 2px rgba(0,0,0,.04); */
  }
  .header.is-open .nav__list{
    max-height: 100vh;  /* assez grand pour tout le menu */
    opacity: 1;
    transform: translateY(0);
  }

  /* 4) style des items mobile : pills plein-largeur */
  .nav__item{ display:block; }
  .nav__link{
    display:flex; align-items:center; gap:12px;
    width:100%;
    margin: 12px 0;
    padding: 4px 16px;
    border-radius: 12px;
    background: var(--theme-primary_soft);
    border: 2.4px solid var(--theme-primary);
    color: #fff;
    font-family: var(--font-one);
    font-size: 16px;
  }
  .nav__link--active{
    background:#fff; color:#363636;
  }

  /* 5) désactive l’ancienne nav “row”: pas nécessaire ici */
  .nav{ gap:0; }
}



/* ===== FOOTER ===== */
.site-footer{
  background: var(--theme-body-bg);
  padding: 24px 0;
}

.site-footer__shell{
  max-width: 1216px;
  margin: 0 auto;
  border: 1px solid var(--theme-border);
  border-radius: 12px;
  overflow: hidden; /* évite débordement radius */
  padding: 0;
}

/* --- TOP : partenaires --- */
.footer-partners{
  background: #fff;
  padding: 24px;
  border-bottom: 1px solid var(--theme-border);
}

.footer-partners__title{
  text-align:center;
  font-family: var(--font-two);
  font-weight: 700;
  margin-bottom:18px;
}

.partners-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 30px;
  max-width: 660px;
  margin: 0 auto;
}

.partner-pill{
  display:flex; align-items:center; justify-content:center;
  background: var(--theme-footer);
  border:1px solid var(--theme-border);
  border-radius:12px;
  padding:14px 18px;
  transition: filter .2s ease, transform .05s ease;
}

.partner-pill__img{
  max-height: 40px;
  width: auto;
  object-fit: contain;
  filter: grayscale(100%) brightness(0.8);
  transition: filter .25s ease;
}
.partner-pill:hover .partner-pill__img,
.partner-pill:focus .partner-pill__img{
  filter: grayscale(0%) opacity(1);
}

/* --- BOTTOM : liens + mentions --- */
.footer-links,
.footer-bottom{
  background: var(--theme-footer);
  padding: 24px;
}


.footer-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:20px;
}

.footer-title{ font-weight:600; font-size: 16px; margin:0 0 10px; font-family: var(--font-two); color: var(--theme-footer_title); }
.footer-col h3{ font-weight:700; margin-bottom:10px; }
.footer-col ul{ margin:0; padding:0; list-style:none; }
.footer-col li+li{ margin-top:6px; }
/* Flèche hors de la zone cliquable (sur <li>, pas sur <a>) */
.footer-links .footer-col li{ display:flex; align-items:center; gap:8px; }
.footer-links .footer-col li::before{ content:'\25B8'; color: var(--theme-grey_title, #656565); display:inline-block; }
.footer-links .footer-col li a{ text-decoration:none; color: var(--theme-grey_link); font: 400 14px/1.1 var(--font-one); }
.footer-links .footer-col li a:hover{color: var(--theme-grey_subtitle) ;text-decoration: underline;
    text-decoration-color: var(--theme-grey_subtitle);
    text-decoration-thickness: 1px;
    text-underline-offset: 3px; }

/* ===== Footer bottom (ligne liens | copy | socials) ===== */
.footer-bottom{
  background: var(--theme-footer); /* ton gris clair */
  padding: 18px 24px;
  position: relative;
}

/* ===== SITEMAP ===== */
.sitemap{}
.sitemap__title h1{ margin: 6px 0 14px; }
.sitemap__section{ margin: 10px 0 18px; }
.sitemap__section-title h2{ margin: 20px 0 10px; color: var(--theme-title_bottom, var(--theme-primary, #b8ad7f)); font-weight: 800; }
.sitemap__subsection-title h3{ margin: 16px 0 8px; color: var(--theme-grey_link, #7d7d7d); font-weight: 700; font-size: 1.5rem; }
.sitemap__mini-title{ font-size: 1rem; margin: 12px 0 6px; color: var(--theme-grey_subtitle, #363636); }
.sitemap__list-block{ margin: 10px 0 18px; }
.sitemap__list-block ul{ list-style:none; padding:0; margin:0; }
.sitemap__list-block li{ margin: 8px 0; line-height:1.5; }
.sitemap__link{ color: inherit; text-decoration: none; }
.sitemap__link:hover{ text-decoration: underline; }
.sitemap__link::before{ content: '\25B8'; display:inline-block; margin-right:10px; color: var(--theme-grey_title, #656565); }

/* Emphase supplémentaire pour les listes volumineuses (programmes/articles) */
.sitemap__section--programs .sitemap__list-block li,
.sitemap__section--articles .sitemap__list-block li{ margin: 10px 0; }

/* Trait de séparation "inset" */
.footer-bottom::before{
  content:"";
  display:block;
  height:1px;
  background: var(--theme-border);
  max-width: 100%;         /* ✅ ne fait pas toute la largeur */
  margin: 0 auto 18px auto; /* centré, espace en bas */
}


.footer-bottom__inner{
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 20px;
}

.footer-legalcopy{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
}

/* Liens légaux à gauche */
.footer-legal{
  display: flex; flex-wrap: wrap; gap: 10px;
  font-size: 14px;
}
.footer-legal a{
  color: var(--c-content-text-dark, #555);
  text-decoration: none;
}
.footer-legal a:hover{ color: var(--c-blue-link, #1a75ec); }
.footer-legal .sep{ color:#c7c7c7; }

/* Copy centré */
.footer-copy{
  text-align: center;
  color: #777;
  font-size: 14px;
}

/* Réseaux à droite : mini pills */
.footer-social{ justify-self: end; }
.social-list{ display:flex; gap: 10px; margin:0; padding:0; list-style:none; }
.social-item{ display:block; }

.social-link{
  height: 40px; width: 40px; /* +4px container */
  display:flex; align-items:center; justify-content:center;
  background: transparent; /* pas de fond blanc par défaut */
  border: 1px solid var(--c-border);
  border-radius: 8px;
  text-decoration:none;
  transition: background-color .15s ease; /* pas de mouvement/ombre */
}
.social-link:hover{ background-color: #e5e5e5; }
.social-link:focus-visible{ outline:2px solid var(--c-blue-link, #1a75ec); outline-offset:2px; }

/* Icône grisée → couleur au hover */
.social-link img{
  display:block;
  width: 22px; height: 22px; /* légèrement plus grand */
  filter: grayscale(100%) opacity(.75);
}
/* pas de changement d'icône au survol */

/* Responsive */
@media (max-width: 960px){
  .footer-grid{ grid-template-columns:1fr 1fr; }
  .partners-grid{ grid-template-columns:1fr; }

  .footer-bottom__inner{
    grid-template-columns: 1fr;
    text-align: center;
    gap: 10px;
  }
  .footer-social{ justify-self: center; }
}









.layout-2col{
  display:grid;
  grid-template-columns: minmax(0,1fr) 320px;
  gap: 28px;
  align-items:start;
}
.layout-2col__main{ min-width:0; background-color: #FFF; padding: 14px 26px 20px; border: 1px solid var(--theme-border);
    border-radius: 12px; }

.layout-2col__aside{ min-width:0; }

@media (max-width: 960px){
  .layout-2col{ grid-template-columns: 1fr; }
}


.prog-list-div h1, .prog-page h1, .prom-list-div h1{
  font-family: var(--font-two);
  font-weight: 700;
  font-size: 24px;
  line-height: 30px;
  color: var(--theme-grey_title);
  margin: 0;
  padding: 6px 0 4px;
}


.prog-list-div h2, .similar-progs h2, .selling-intro h2, .soon-intro h2, .prog-page h2{
  font-family: var(--font-two);
  font-weight: 600;
  font-size: 20px;
  line-height: 30px;
  color: var(--theme-grey_link);
  margin: 0;
  padding: 0;
}


.prog-list-div h2 span{ color: var(--theme-primary) !important; }


.prog-page h2{color: var(--theme-primary) !important; padding: 8px 0 4px;}


.prog-list-about-div h3{
  font-family: var(--font-one);
  color: var(--theme-grey_subtitle);
  font-size: 17px;
  font-weight: 700;
  line-height: 1.3;
  margin: 8px 0 8px;
  list-style: none;

}

.prog-list-neighbors-div ul{margin: 0 0 0 12px; padding: 8px 0 0;}

.prog-list-neighbors-div ul li {
  list-style: none;
  margin: 0 !important;
  font: 400 15px/1.2 var(--font-one) !important;
  color: var(--theme-primary) !important;
  padding: 2px 0 3px !important;
}

.prog-list-neighbors-div ul li a {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-decoration-color: var(--theme-grey_link);
  text-underline-offset: 3px;
  color: var(--theme-grey_link);
}

.prog-list-neighbors-div ul li a:hover{
  text-decoration-color: var(--theme-grey_subtitle);
  color: var(--theme-grey_subtitle);
}



/* City/Department about + neighbors blocks spacing */
.prog-list-about-div{ margin-top: 18px; }
.prog-list-neighbors-div{ margin-top: 18px; }

/* Small arrow icon before neighbor links */
.prog-list-neighbors-div .list-arrow{
  display: inline-block;
  width: 16px;
  height: 16px;
  vertical-align: -3px;
  margin-right: 1px;
  color: var(--theme-grey_link);
}
.prog-list-neighbors-div .list-arrow path{ fill: currentColor; }







/* ==== SEARCH PILLS ==== */
.search-pills{ padding: 2px 0 0px; margin: 0; }
.pill-links{ display:flex; flex-wrap:wrap; gap:10px; margin: 6px 0 14px; }
.pill-links .pill{
  display:inline-block;
  padding: 5px 12px;
  border-radius: 4px;
  border: 2px solid var(--theme-primary);
  background: var(--theme-primary_clear);
  color: var(--theme-primary);
  text-decoration: none;
  font-family: var(--font-one);
  font-size: 16px;
  font-weight: 600;
  text-transform: uppercase;
  line-height: 1;
}

.pill-links .pill span{font-size: 14px; color: var(--theme-grey_link);  }

.pill-links .pill:hover{ background: #fff; color: var(--theme-content_text_dark); }

/* Intro blocks */
.selling-intro, .soon-intro{ padding: 6 0 6px; }
.selling-intro h2 .count-highlight, .soon-intro h2 .count-highlight{ color: var(--theme-primary); }

.selling-intro p, .soon-intro p, .prog-list-div p, .prog-page p,  .prog-list-about-div p{
  font-family: var(--font-one);
  color: var(--theme-content_text);
  font-size: 15px;
  text-align: left;
  line-height: 1.46;
  margin: 0;
  padding: 2px 0 6px;
  list-style: none;
}

.prog-page ul li, .prog-list-div ul li{
  font-family: var(--font-one);
  color: var(--theme-content_text);
  font-size: 15px;
  text-align: left;
  line-height: 1.46;
  margin: 0;
}

.prog-page ul{margin: 0 0 10px;}






/* Widgets */
.widget{ background-color: #fff; border:1px solid #ddd; border-radius:10px; overflow:hidden; margin:0 0 16px; }
.widget__title{ margin:0; padding:10px 14px; border-bottom:1px solid #ddd; font:700 15px/1.2 var(--font-prog-name); text-transform:uppercase; letter-spacing:.4px; background-color: var(--theme-primary_clear);  }
.widget__body{ padding:12px 14px; }
.widget__list{ list-style:none; padding:0; margin:0; }
.widget__list li+li{ margin-top:6px; }
.widget.widget--newprogs .widget__list li{ display:flex; align-items:center; gap:8px; }
.widget.widget--newprogs .widget__list li::before{ content:'▸'; color: var(--theme-primary); margin-right:2px; font-size: 18px; line-height: 1; }
.widget.widget--newprogs .widget__list a{
  color: var(--theme-primary);
  text-decoration: none;
  font: 400 15px/1.3 var(--font-one);
}
.widget.widget--newprogs .widget__list a:hover{
  color: var(--theme-content_text_dark);
  text-decoration: underline;
  font-weight: 400;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.widget__input{ width:100%; border:1px solid #ddd; border-radius:10px; padding:10px 12px; font: 400 15px/1.3 Inter, system-ui, Arial, sans-serif; }
.widget__thumb{ display:block; width:96%; max-width: 240px; height:auto; border-radius:8px; margin: 0 auto; }
.widget__lead{ color:#666; font: 400 14px/1.45 Inter, system-ui, Arial, sans-serif; }




/* ===== Breadcrumbs ===== */
.breadcrumbs .container{ padding-top: 8px; padding-bottom: 8px; }
.breadcrumbs__list{ list-style:none; display:flex; flex-wrap:wrap; gap:8px; padding:0; margin:0; font: 400 15px/1 var(--font-one); color: var(--theme-grey_link); }
.breadcrumbs__item{ display:flex; align-items:center; gap:8px; color: var(--theme-grey_link); }
.breadcrumbs__item + .breadcrumbs__item::before{ content: none; }
.breadcrumbs__sep{ display:inline-flex; align-items:center; justify-content:center; color:#b9b6af; }
.breadcrumbs__sep svg{ width:18px; height:18px; display:block; }
.breadcrumbs__item a{ color: var(--theme-grey_link); text-decoration:none; border-bottom:1px solid transparent; border-bottom-color: currentColor;}
.breadcrumbs__item a:hover{color: var(--theme-grey_subtitle);  }
/* Current breadcrumb: aria-current is on the <li>, not the <span> */
.breadcrumbs__item[aria-current="page"],
.breadcrumbs__item[aria-current="page"] span{ color: var(--theme-primary); font-weight: 600; }

/* accessibilité */
.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }








/* Lightbox v2 (from scratch) */

@media (max-width:768px){ .lbx-content{ max-width:95vw; } .lbx-prev,.lbx-next{ width:36px; height:36px; font-size:22px; } }

/* ==== Program gallery + lightbox ==== */
/* Galerie style proche ancienne version */
.prog-gallery{ display:flex; flex-wrap:wrap; gap:12px; margin-top:20px; justify-content:center; }
.prog-gallery figure{ display:flex; flex-direction:column; align-items:center; margin:0; flex: 0 0 calc(33.333% - 12px); box-sizing:border-box; }
@media (max-width: 768px){ .prog-gallery figure{ flex: 0 0 calc(50% - 12px); } }
@media (max-width: 480px){ .prog-gallery figure{ flex: 0 0 100%; } }
.prog-gallery img{ display:block; width:100%; height:auto; border-radius:8px; transition: transform .3s; }
.prog-gallery img:hover{ transform: scale(1.03); }
.prog-gallery figcaption{ margin-top:6px; color:#666; font: 400 12px/1.4 var(--font-one); text-align:center; }

/* Custom Lightbox (no deps) */
.glb-overlay{ position:fixed; inset:0; background:rgba(0,0,0,.9); display:flex; align-items:center; justify-content:center; z-index:10000; }
.glb-content{ position:relative; max-width:90vw; max-height:85vh; display:flex; align-items:center; justify-content:center; outline: none; }
.glb-figure{ position:relative; }
.glb-img{ display:block; max-width:90vw; max-height:80vh; border-radius:8px; }
/* Place caption and counter below the image */
.glb-captionbar{ position:static; background:transparent; color:#eee; display:flex; align-items:center; justify-content:space-between; padding:6px 2px 0; font:400 14px/1.4 var(--font-one); margin-top:8px; }
.glb-caption{ margin-right:10px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.glb-counter{ opacity:.9; font-size:13px; }
/* Bigger round controls */
.glb-btn{ position:absolute; background:rgba(169,169,169,.95); color:#fff; width:44px; height:44px; border-radius:50%; display:flex; align-items:center; justify-content:center; border:0; cursor:pointer; font-size:34px; line-height:1; }
.glb-btn svg{ width:28px; height:28px; stroke:#fff; stroke-width: 3.6; stroke-linecap:round; stroke-linejoin:round; fill:none; }
/* Bigger close icon */
.glb-close svg{ width:32px; height:32px; stroke-width:3.2; }
.glb-prev{ left:-22px; top:50%; transform:translateY(-50%); }
.glb-next{ right:-22px; top:50%; transform:translateY(-50%); }
.glb-close{ top:-20px; right:-19px; width:40px; height:40px; font-size:38px; }
@media (max-width: 900px){
  .glb-prev{ left:10px; }
  .glb-next{ right:10px; }
  .glb-close{ right:10px; top:10px; }
  .glb-btn{ width:46px; height:46px; font-size:28px; }
}

/* ==== PROG CARD MEDIUM ==== */

.prog-card-medium{
  display: flex;
  flex-direction: row;
  gap: 20px;
  border: 1px solid var(--theme-border_clear);
  border-radius: 6px;
  background-color: var(--theme-primary_clearer);
  overflow: hidden;
  margin: 20px 0 12px;
  padding: 12px 8px 10px;
}

.prog-card-medium-img{ flex:0 0 280px; position:relative; padding:6px 0 0 10px; }
.prog-card-medium-img figure,
.prog-card-medium-img picture,
.prog-card-medium-img img{ display:block; width:100%; height:auto; border-radius:6px; overflow:hidden; margin:0; line-height:0; }
.prog-card-medium-info{ flex:1; padding:0 2px 2px; }

/* Badge look & feel */
.prog-card-medium .badge{
  position:absolute; top:-6px; left:-1px; z-index:1;
  font-family: Inter, system-ui, Arial, sans-serif;
  font-size:13px; text-transform:uppercase; letter-spacing:1.1px; font-weight:700;
  padding:4px 9px 3px; border-radius:4px;
}

.prog-card-medium .badge.is-soon   { border:2px solid var(--theme-soon_strong); background:var(--theme-soon_clear); color: var(--theme-soon_strong); }
.prog-card-medium .badge.is-new    { border:2px solid var(--theme-new_strong); background: var(--theme-new_clear); color: var(--theme-new_strong) }
.prog-card-medium .badge.is-lastop { border:2px solid var(--theme-last_op_strong); background: var(--theme-last_op_clear); color: var(--theme-last_op_strong); }
.prog-card-medium .badge.is-sold   { border:2px solid var(--theme-sold_strong); background:var(--theme-sold_clear); color: var(--theme-sold_strong); }

.prog-card-medium-info h3{padding: 0; margin:0 0 4px;}




/* ==== Global Badge (for program header, etc.) ==== */
.badge{
  display:inline-block;
  font-family: Inter, system-ui, Arial, sans-serif;
  font-size:13px; text-transform:uppercase; letter-spacing:1.1px; font-weight:700;
  padding:4px 9px 3px; border-radius:4px;
}
.badge.is-soon   { border:2px solid var(--theme-soon_strong);    background: var(--theme-soon_clear);    color: var(--theme-soon_strong); }
.badge.is-new    { border:2px solid var(--theme-new_strong);     background: var(--theme-new_clear);     color: var(--theme-new_strong); }
.badge.is-lastop { border:2px solid var(--theme-last_op_strong); background: var(--theme-last_op_clear); color: var(--theme-last_op_strong); }
.badge.is-sold   { border:2px solid var(--theme-sold_strong);    background: var(--theme-sold_clear);    color: var(--theme-sold_strong); }

.prog-card-medium-info h3 a{ font-family: val(--font-prog-name), val(--font-one); font-weight:700; text-transform:uppercase; font-size:21px; color: var(--theme-prog_title_black); line-height:1; text-decoration: none; }
.prog-card-medium-info h3 span{ font-family: var(--font-one); font-weight:500; text-transform:none; font-size:16px; color: val(--theme-grey_link); line-height:1; }

.prog-card-medium-info .prog-description p{font-family: var(--font-one);
    font-size: 14px; font-weight: 400; line-height: 1.4;
    color: var(--theme-content_text_dark);
} 

.prog-card-medium-info .prog-description p span {font-size: 15px; font-weight: 600;
  line-height: 1.6; letter-spacing: 1px;
}



.prog-card-medium .price-delivery{ padding:6px 0 0; }
.prog-card-medium .price-delivery p{ font-family: var(--font-one);
    color: #555;
    font-size: 14px;
    line-height: 1.6;
    font-weight: 500; margin: 0; }
.prog-card-medium .price-delivery .tag-price{ font-size:17px; }

.prog-card-medium .location{ color: var(--theme-primary); font-family: var(--font-one); font-size:16px; font-weight:600; line-height:1.5; margin : 0px 0 6px }

.prog-card-medium .location a{ text-decoration:underline; color:var(--theme-grey_link); text-transform:uppercase; }
.prog-card-medium .location a:hover{ color: var(--theme-content_text_dark); }

/* Tablet (720–999px): 1/2 ratio */
@media (max-width: 999px) and (min-width: 720px){
  .prog-card-medium{ gap:10px; }
  .prog-card-medium-img{ flex:1 1 0%; }
  .prog-card-medium-info{ flex:2 1 0%; }
}

/* Mobile < 720px: vertical stack */
@media (max-width: 719px){
  .prog-card-medium{ flex-direction:column; padding:10px 2px 8px; gap:0; }
  .prog-card-medium-img, .prog-card-medium-info{ flex:none; width:100%; max-width:100%; }
  .prog-card-medium-info{ padding:6px; }
  .prog-card-medium-img figure{ display:flex; justify-content:center; }
  .prog-card-medium-img picture{ width:90%; max-width:440px; }
  .prog-card-medium .badge{ left:2px; }
}


.prog-card-medium-cta a{
  background-color: var(--theme-primary_clear);
  border: 2px solid var(--theme-primary);
  color: var(--theme-primary);
  padding: 7px 28px 6px;
  display: inline-block;
  font-family: var(--font-one);
  font-weight: 600;
  font-size: 14px;
  line-height: 1;
  text-transform: none;
  letter-spacing: 0.3px;
  margin: 10px 0 8px;
  border-radius: 4px;
  text-decoration: none;
}

.prog-card-medium-cta a:hover {
  color: var(--theme-content_text_dark); background-color: #fff;
}

/* One-liner (program/show) */
.prog-oneliner{ 
  font-family: var(--font-one);
  color: var(--theme-primary);
  margin: 0 0 10px;
}

/* ===== Program meta (show page) ===== */
.prog-meta{
  display:flex;
  gap: 18px;
  align-items:stretch;
  flex-wrap: wrap;
  margin: 10px 0 16px;
}
.prog-meta__item{
  display:flex;
  align-items:center;
  gap: 10px;
  padding: 10px 12px;
  background: var(--theme-primary_clear);
  border: 1px solid var(--theme-border);
  border-radius: 8px;
  min-width: 200px;
  flex: 1 1 0;
}
.prog-meta__icon{ color: var(--theme-primary); flex: 0 0 auto; }
.prog-meta__content{ display:flex; flex-direction:column; gap:2px; }
.prog-meta__label{ font-family: var(--font-one); font-size: 12px; letter-spacing:.3px; color: var(--theme-grey_link); text-transform: uppercase; font-weight: 700; }
.prog-meta__value{ font-family: var(--font-one); font-size: 15px; color: var(--theme-content_text_dark); font-weight: 600; }

@media (max-width: 719px){
  .prog-meta{ gap: 10px; }
  .prog-meta__item{ min-width: calc(50% - 5px); }
}

/* ===== Program description collapse ===== */
.prog-desc{
  position: relative;
  overflow: hidden;
  transition: max-height .25s ease;
}
.prog-desc.is-collapsed{
  max-height: 230px;
}
.prog-desc.is-collapsed::after{
  content: '';
  position: absolute; left: 0; right: 0; bottom: 0;
  height: 64px;
  background: linear-gradient(to bottom, rgba(255,255,255,0) 0%, #fff 70%);
  pointer-events: none;
}
.prog-desc-toggle{
  display: inline-block;
  margin: 8px 0 12px;
  padding: 6px 12px;
  border-radius: 6px;
  border: 2px solid var(--theme-primary);
  background: var(--theme-primary_clear);
  color: var(--theme-primary);
  font: 600 14px/1 var(--font-one);
}
.prog-desc-toggle:hover{ background: #fff; color: var(--theme-content_text_dark); }

/* ===== Prestations (list + collapse) ===== */
.prog-prestas{
  list-style: none;
  margin: 6px 0 6px;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 8px 16px;
}
.prog-prestas li{
  position: relative;
  padding-left: 20px;
  font-family: var(--font-one);
  color: var(--theme-content_text_dark);
  font-size: 15px;
  line-height: 1.35;
}
.prog-prestas li::before{
  content: '✓';
  position: absolute; left: 0; top: 0;
  color: var(--theme-primary);
  font-weight: 700;
  font-size: 14px;
  transform: translateY(2px);
}
.prog-prestas.is-collapsed li:nth-child(n+7){
  display: none;
}
.prog-prestas-toggle{
  display: inline-block;
  margin: 8px 0 12px;
  padding: 6px 12px;
  border-radius: 6px;
  border: 2px solid var(--theme-primary);
  background: var(--theme-primary_clear);
  color: var(--theme-primary);
  font: 600 14px/1 var(--font-one);
}
.prog-prestas-toggle:hover{ background: #fff; color: var(--theme-content_text_dark); }

@media (max-width: 719px){
  .prog-prestas{ grid-template-columns: 1fr; }
  .prog-prestas.is-collapsed li:nth-child(n+5){ display:none; }
}

/* ===== Lots table (gdp) ===== */
.prog-lots{ margin: 8px 0 16px; }
.prog-lots__table{ width: 100%; border-collapse: collapse; font-family: var(--font-one); }
.prog-lots__table thead th{
  background: var(--theme-primary_clear);
  color: var(--theme-grey_title);
  font-weight: 700;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: .4px;
  padding: 10px 10px;
  border: 1px solid var(--theme-border);
  text-align: left;
}
.prog-lots__table td{
  border: 1px solid var(--theme-border);
  padding: 10px;
  vertical-align: top;
  color: var(--theme-content_text_dark);
  font-size: 15px;
}
.prog-lots__table .typo_header{
  background: #f0f0f0;
  color: var(--theme-grey_title);
  font: 700 14px/1.2 var(--font-one);
  text-transform: uppercase;
  letter-spacing: .4px;
}
.prog-lots__table .tp{ font-weight: 700; color: var(--theme-grey_title); width: 70px; }
.prog-lots__table .details .d1{ font-weight: 600; margin-bottom: 6px; color: var(--theme-content_text_dark); }
.prog-lots__table .details .d2{ display:flex; flex-wrap:wrap; gap:6px; }
.prog-lots__table .xs_tbel{
  display:inline-block; padding: 3px 8px; border-radius: 9999px;
  background: var(--theme-primary_clear);
  color: var(--theme-grey_title);
  border: 1px solid var(--theme-border);
  font: 600 12px/1 var(--font-one);
}
.prog-lots__table .surface .m2{ white-space: nowrap; }
.prog-lots__table .price .tb_price{ font-weight: 800; color: var(--theme-content_text_dark); font-size: 18px; }
.prog-lots__table .price .xs_price{ color: var(--theme-grey_link); font-size: 13px; }
.prog-lots__table .dpo{ text-align: center; }
.prog-lots__table .dpo-dispo, .prog-lots__table .dpo-vendu{
  display:inline-block; padding: 6px 10px; border-radius: 6px; font-weight:700; font-size: 13px;
}
.prog-lots__table .dpo-dispo{ background: var(--theme-primary_clear); color: var(--theme-grey_title); border: 1px solid var(--theme-border); }
.prog-lots__table .dpo-vendu{ background: #eee; color:#888; border: 1px solid var(--theme-border); }

@media (max-width: 719px){
  .prog-lots__table thead{ display:none; }
  .prog-lots__table tr{ display:block; border:1px solid var(--theme-border); margin-bottom:10px; }
  .prog-lots__table td{ display:block; border:none; border-top:1px solid var(--theme-border); }
  .prog-lots__table .tp{ border-top:none; font-size:13px; color: var(--theme-grey_link); }
  .prog-lots__table .price{ text-align:right; }
}

/* ===== Localisation (map) ===== */
#localisation-programme-neuf h2{ margin-bottom: 8px; }
.prog-loc{
  border: 2px solid var(--theme-primary);
  border-radius: 16px;
  padding: 10px;
  background: #fff;
  box-shadow: var(--shadow);
}
.prog-loc__map{ height: 360px; border-radius: 12px; overflow: hidden; border:1px solid var(--theme-border); }
p.prog-loc__addr{ font: 500 15px var(--font-one); color: var(--theme-content_text); padding: 0 0 8px; }
.prog-loc__addr strong{ color: var(--theme-grey_title); }

/* Leaflet pin (image circle + tip) */
.leaflet-container .map-pin{ position: relative; width: 86px; height: 86px; border-radius: 50%; background: transparent; box-shadow: 0 10px 26px rgba(0,0,0,.18); border:3px solid var(--theme-primary); color: var(--theme-primary); }
.leaflet-container .map-pin::before{ content:none; }
.leaflet-container .map-pin__img{ position:absolute; top:0; left:0; width:100%; height:100%; border-radius:50%; background-size: cover; background-position:center; background-color:#eee; border:0; }
.leaflet-container .map-pin__tip{ position:absolute; left:50%; bottom:-24px; transform:translateX(-50%); width:0; height:0; border-left:11px solid transparent; border-right:11px solid transparent; border-top:18px solid currentColor; filter: drop-shadow(0 2px 4px rgba(0,0,0,.2)); }

/* Leaflet zoom control tweak */
.leaflet-control-zoom a{ background:#fff !important; border:1px solid var(--theme-border) !important; box-shadow: 0 2px 8px rgba(0,0,0,.06); }

/* ===== Fiche technique (grid) ===== */
.prog-tech{ margin: 6px 0 12px; }
.prog-tech__grid{
  display:grid;
  grid-template-columns: 38% 62%;
  border:1px solid var(--theme-border);
  border-radius:6px;
  overflow:hidden;
}
.prog-tech__label,
.prog-tech__value{
  padding:8px 10px;
  font-family: var(--font-one);
  line-height:1.3;
  border-top:1px solid var(--theme-border);
}
.prog-tech__label{ display:flex; align-items:center; gap:6px; background:#efefef; color: var(--theme-grey_title); font-weight:700; font-size:13px; }
.prog-tech__value{ color: var(--theme-grey_link); font-weight:600; font-size:13px; }
.prog-tech__label:nth-of-type(1), .prog-tech__value:nth-of-type(2){ border-top:0; }
.prog-tech__label{ border-right:1px solid var(--theme-border); }
.prog-tech__icon{ color: var(--theme-primary); display:inline-flex; align-items:center; justify-content:center; }
.prog-tech__text{ display:inline-block; min-width:0; }

@media (max-width: 719px){
  .prog-tech__grid{ grid-template-columns: 50% 50%; }
  .prog-tech__label, .prog-tech__value{ padding:7px 8px; font-size:12px; }
}

/* ===== Contact & Commercialisation ===== */
.prog-seller{ display:grid; grid-template-columns: 240px 1fr; gap: 20px; align-items:start; border:1px solid var(--theme-border); border-radius:12px; padding:16px 18px; margin:12px 0; background:#fff; }
.prog-seller__media{ text-align:center; }
.prog-seller__logo{ display:block; width:220px; max-width: 100%; height:auto; margin: 0 auto 14px; }
.prog-seller__phone{ display:inline-flex; align-items:center; justify-content:center; gap:10px; width: 92%; max-width: 320px; background: var(--theme-primary_clear); color: var(--theme-primary); border: 2px solid var(--theme-primary); border-radius:8px; padding:10px 14px; font:700 15px/1 var(--font-one); cursor:pointer; transition: background-color .15s ease, color .15s ease; }
.prog-seller__phone .ico{ width:18px; height:18px; opacity:.9; }
.prog-seller__phone:hover{ background:#fff; color: var(--theme-content_text_dark); }
.prog-seller__phone[aria-expanded="true"]{ background:#fff; color: var(--theme-content_text_dark); }
.prog-seller__body{ min-width:0; }
.prog-seller__body .seller-name{ font:700 24px/1.1 var(--font-prog-name); margin:0 0 6px; color: var(--theme-grey_title); text-transform: uppercase; }
.prog-seller__body .seller-role{ color: var(--theme-primary); font:700 15px/1.2 var(--font-one); text-transform: uppercase; letter-spacing:.3px; margin: 0 0 12px; }
.prog-seller__body .seller-role strong{ color: var(--theme-primary); }
.prog-seller__body p{ margin: 6px 0; color: var(--theme-content_text); font: 500 14px/1.1 var(--font-one); }
.prog-seller__body p strong{ color: var(--theme-grey_title); text-transform: uppercase; letter-spacing:.2px; }
.prog-contact-intro{ font: 400 16px/1.4 var(--font-one); color: var(--theme-content_text_dark); margin: 6px 0 14px; }
.prog-seller__body a{ color: var(--theme-primary); font-weight: 500; text-decoration:none; border-bottom:1px solid transparent; }
.prog-seller__body a:hover{ border-bottom-color: var(--theme-primary); }

/* Broker (type 3) highlight + CTAs */
.prog-seller--broker{ border-color: var(--theme-border); background: #fff; box-shadow: var(--shadow); }
.prog-seller__ctas{ display:flex; flex-direction:column; align-items:center; gap:8px; margin-top:10px; }
.prog-seller--broker .btn-lead{ display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:10px 14px; border-radius:8px; font:700 15px/1 var(--font-one); cursor:pointer; border:2px solid var(--theme-primary); background:#fff; color: var(--theme-primary); width:92%; max-width:320px; }
.prog-seller--broker .btn-lead:hover{ filter: brightness(1.05); }
/* Pitch heading and bullets */
/* seller-pitch removed (no heading) */
.prog-seller__bullets{ display:block; margin:8px 0 10px; padding-left: 0; list-style:none; }
.prog-seller__bullets li{ display:flex; align-items:flex-start; gap:12px; padding:5px 0; border:none; background:transparent; color: var(--theme-content_text_dark); font:600 15px/1.5 var(--font-one); }
.prog-seller__bullets li svg{ width:24px; height:24px; color: var(--theme-primary); flex:0 0 auto; margin-top:0; }

@media (max-width: 719px){
  .prog-seller{ grid-template-columns: 1fr; text-align:left; }
  .prog-seller__media{ order:2; }
  .prog-seller__body{ order:1; }
  .prog-seller__logo{ margin-bottom:10px; }
  .prog-seller__phone{ width:100%; }
}

/* ===== Promoteurs list ===== */
.prog-devs{ margin: 8px 0 12px; }
.prog-devs__intro{ margin: 4px 0 8px; font: 500 14px/1.35 var(--font-one); color: var(--theme-content_text); }
.prog-dev{ display:grid; grid-template-columns: 200px 1fr; gap: 14px; align-items:center; padding:12px 14px; border:1px solid var(--theme-border); border-radius:10px; background: var(--theme-footer); margin: 8px 0; }

.prog-dev__media{ text-align: center; }
.prog-dev__logo{ display:block; width: 130px; height:auto; filter: none; margin: 0 auto; }
.prog-dev__body h3{ margin:0; font:700 17px/1 var(--font-prog-name); color: var(--theme-grey_title); text-transform:none; letter-spacing:.1px; }
.prog-dev__body .dev-tag{ margin:0; font:600 14px/1 var(--font-one); color: var(--theme-grey_link); }
.prog-dev__body .dev-count{ margin: 0 0 2px; font:600 13px/1 var(--font-one); color: var(--theme-grey_title); }
.prog-dev__body .dev-link a{ color: var(--theme-blue_link); font: 500 13px/1 var(--font-one); text-decoration: underline; }

/* ===== Nearby carousel ===== */
.nearby-carousel{ position: relative; margin: 8px 0 4px; padding: 0 44px; }
.nearby-carousel .car-viewport{ overflow: hidden; margin: 0 6px; }
.nearby-carousel .car-track{ display:flex; gap: 16px; }
.nearby-carousel .car-item{ flex: 0 0 calc(33.333% - 10.7px); }
.nearby-carousel .car-arrow{ position:absolute; top:50%; transform:translateY(-50%); z-index:1; background:#fff; color: var(--theme-primary); border:2px solid var(--theme-primary); border-radius:8px; width:36px; height:36px; display:flex; align-items:center; justify-content:center; cursor:pointer; padding:0; transition: background-color .15s ease, color .15s ease, border-color .15s ease, opacity .15s ease; }
.nearby-carousel .car-arrow svg{ width:20px; height:20px; }
.nearby-carousel .car-arrow.is-disabled{ color: var(--theme-grey_link); border-color: var(--theme-border); background:#f2f2f2; cursor: default; pointer-events: none; opacity:.8; }
.nearby-carousel .car-prev{ left:2px; }
.nearby-carousel .car-next{ right:2px; }

@media (max-width: 999px){
  .nearby-carousel .car-item{ flex: 0 0 calc(50% - 8px); }
}
@media (max-width: 719px){
  .nearby-carousel .car-item{ flex: 0 0 100%; }
}

.similar-progs-more{ margin: 20px 0 10px; }
.similar-progs-more a{ color: var(--theme-grey_link); font: 500 14px/1 var(--font-one); text-decoration: none; border-bottom: 1px solid var(--theme-grey_link); }
.similar-progs-more a:hover{color: var(--theme-grey_subtitle);  border-bottom: 1px solid var(--theme-grey_subtitle); }



/* ===== Vertical program card (carousel) ===== */
.prog-card-vertical{ display:flex; flex-direction:column; height:100%; border:1px solid var(--theme-border); border-radius:8px; overflow:hidden; background:#fff; box-shadow: var(--shadow); }
.prog-card-vertical .pcv-cover{ position:relative; display:block; }
.prog-card-vertical .pcv-cover picture, .prog-card-vertical .pcv-cover img{ display:block; width:100%; height:130px; object-fit:cover; }
.prog-card-vertical .pcv-badge{ position:absolute; top:8px; left:8px; }
.prog-card-vertical .pcv-badge{
  font-size: 10px;
  padding: 2px 6px 2px;
  letter-spacing: .8px;
  border-width: 2px;
}
.prog-card-vertical .pcv-banner{ position:static; background: var(--theme-primary); color:#fff; padding: 4px 10px; display:flex; align-items:center; min-height: 50px; text-decoration:none; }
.prog-card-vertical .pcv-banner .pcv-name{ font: 700 16px/1.2 var(--font-prog-name); text-transform:uppercase; letter-spacing:.3px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.prog-card-vertical .pcv-body{ padding:12px 12px 14px; background: var(--theme-footer); display:flex; flex-direction:column; gap:4px; flex:1 1 auto; }
.prog-card-vertical .pcv-city{ margin:0 0 2px; font: 700 14px/1 var(--font-one); color: var(--theme-grey_title); }
.prog-card-vertical .pcv-city a{ color: var(--theme-grey_title); text-decoration:none; }
.prog-card-vertical .pcv-city a:hover{ text-decoration: underline; }
.prog-card-vertical .pcv-city .pcv-zip{ font:700 12px/1 var(--font-one); color: var(--theme-grey_link); margin-left: 2px; }

.prog-card-vertical .pcv-line{ margin-top: auto; font: 400 13px/1 var(--font-one); color: var(--theme-content_text_dark); }
.prog-card-vertical .pcv-line1{ margin: 4px 0 0; font: 600 13px/1.2 var(--font-one); color: var(--theme-content_text_dark); }
.prog-card-vertical .pcv-line2{ margin: 2px 0 2px; font: 600 13px/1.2 var(--font-one); color: var(--theme-content_text_dark); }
.prog-card-vertical .pcv-price{ margin:0 0 6px; font:800 19px/1 var(--font-one); color: var(--theme-grey_title); }
.prog-card-vertical .pcv-price sup{ font-size: 82%; margin-left: 2px; }
.prog-card-vertical .pcv-cta{margin-top:6px; font:600 13px/1.3 var(--font-one); color: var(--theme-primary); text-decoration:none; border:2px solid var(--theme-primary); background: var(--theme-primary_clear); border-radius:4px; padding:3px 12px; align-self:flex-start; }
.prog-card-vertical .pcv-cta:hover{ background:#fff; color: var(--theme-content_text_dark); }

/* Small meta text (dates etc.) */
.meta-info .ico{ width:18px; height:18px; margin-right: 2px; color: var(--theme-grey_link); vertical-align: -4px; }

p.meta-info{ font: 500 12px/1 var(--font-one); color: var(--theme-grey_link); }

@media (max-width: 719px){
  .prog-dev{ grid-template-columns: 1fr; text-align:left; }
  .prog-dev__logo{ width: 140px; }
}


.leaflet-pane{ z-index: 0 !important; }


/* ===== Lead modal ===== */
.lead-modal{ position: fixed; inset:0; display:none; align-items:center; justify-content:center; background: rgba(0,0,0,.45); z-index: 2000; }
.lead-modal.is-open{ display:flex; }
.lead-modal__dialog{ background:#fff; border-radius:14px; border:1px solid var(--theme-border); width: 94vw; max-width: 680px; padding: 18px; box-shadow: var(--shadow); }
.lead-modal__header{ display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
.lead-modal__title{ font:700 19px/1.2 var(--font-prog-name); color: var(--theme-grey_title); margin:0; }
.lead-modal__close{ background:transparent; border:none; font-size:22px; line-height:1; cursor:pointer; }
.lead-intro{ margin: 0 0 10px; font: 500 14px/1.4 var(--font-one); color: var(--theme-content_text_dark); }
.lead-form{ display:grid; gap:10px; }
.lead-form label{ display:block; font:700 13px/1.2 var(--font-one); color: var(--theme-grey_title); margin:0 0 6px; }


/* Only target text-like inputs (avoid checkbox/radio stretching) */
.lead-form input[type="text"],
.lead-form input[type="email"],
.lead-form input[type="tel"],
.lead-form input[type="password"],
.lead-form input[type="search"],
.lead-form input[type="url"],
.lead-form input[type="number"],
.lead-form select,
.lead-form textarea{
  width:100%; border:1px solid var(--theme-border); border-radius:4px; padding:5px 10px; font: 500 14px/1.2 var(--font-one); background:#fff; color: var(--theme-grey_title);
}
.lead-form textarea{ min-height: 140px; resize: vertical; }
/* When inputs are wrapped inside the label (modal markup), add inner spacing */
.lead-form label > input[type="text"],
.lead-form label > input[type="email"],
.lead-form label > input[type="tel"],
.lead-form label > input[type="password"],
.lead-form label > input[type="search"],
.lead-form label > input[type="url"],
.lead-form label > input[type="number"],
.lead-form label > select,
.lead-form label > textarea{ margin-top:4px; display:block; }
.lead-form input[type="text"]:focus,
.lead-form input[type="email"]:focus,
.lead-form input[type="tel"]:focus,
.lead-form input[type="password"]:focus,
.lead-form input[type="search"]:focus,
.lead-form input[type="url"]:focus,
.lead-form input[type="number"]:focus,
.lead-form select:focus,
.lead-form textarea:focus{
  outline:none; border-color: var(--theme-primary);
}
.lead-form .lead-actions{ display:flex; gap:10px; justify-content:flex-end; margin-top:8px; }
/* Consent row normalized */
.lead-form .consent-row label{ display:flex; align-items:flex-start; gap:8px; font-weight:500; line-height:1.4; }
.lead-form .consent-row label span{ flex:1; min-width:0; }
.lead-form .consent-row input[type="checkbox"]{ width:auto; height:16px; margin-top:1px; flex:0 0 auto; box-shadow:none; }
.lead-form .consent-row input[type="checkbox"]:focus{ box-shadow:none; }

/* Links inside forms */
.lead-form a{
  color: var(--theme-blue_link);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: color .15s ease;
}
.lead-form a:hover{ color: var(--theme-grey_subtitle); }
.lead-form a:focus-visible{ outline: 2px solid var(--theme-primary); outline-offset: 2px; border-radius: 3px; }


/* Contact page: card wrapper for forms */
.contact-form-card{ background:#fff; border:1px solid var(--theme-border); border-radius:10px; padding:14px 16px; max-width:720px; margin: 10px auto 0; box-shadow: var(--shadow-sm, 0 1px 2px rgba(16,24,40,.06)); }

/* Mentions légales: bloc image propriétaire */
.owner-img-div{ margin: 12px 0 16px; }
.owner-img-div figure{ margin:0; }
.owner-img-div picture,
.owner-img-div img{
  display:block; width:100%; height:auto;
  border-radius:10px; border:1px solid var(--theme-border);
}
@media (min-width: 860px){
  .owner-img-div{ max-width: 560px; margin: 12px 0 18px; }
}


/* Qui sommes-nous: image d'intro */
.whoweare-img-div{ margin: 12px 0 16px; }
.whoweare-img-div figure{ margin:0; }
.whoweare-img-div picture,
.whoweare-img-div img{
  display:block; width:100%; height:auto;
}
.whoweare-img-div img{border-radius:10px;  border:1.6px solid var(--theme-border);}
@media (min-width: 860px){
  .whoweare-img-div{ max-width: 880px; margin: 12px auto 18px; }
}

/* Qui sommes-nous: liens d'action */
.who-links{ display:flex; flex-wrap:wrap; gap:10px; margin: 12px 0 16px; justify-content:flex-start; align-items:center; }
.page-cta-links{ display:flex; flex-direction:column; gap:10px; margin: 12px 0 16px; align-items:center; }
.who-links .btn:not(.big){ padding:8px 14px; border-radius:8px; }
.page-cta-links .btn{ padding:8px 14px; border-radius:8px; text-align:center; align-self:center; min-width:300px; }


.btn{ display:inline-flex; align-items:center; justify-content:center; padding:6px 14px; border-radius: 6px; border:2px solid var(--theme-primary); background: var(--theme-primary_clear); color: var(--theme-primary); font:600 14px/1 var(--font-one); cursor:pointer; text-decoration: none;  }
.btn:hover{ background:#fff; color: var(--theme-content_text_dark); }
.btn.secondary{ border-color: var(--theme-border); color: var(--theme-content_text_dark); background:#fff; }
.btn.primary{ background: var(--theme-primary); border-color: var(--theme-primary); color:#fff; }
.btn.primary:hover{ filter: brightness(.96); color:#fff; }
/* Laisse .btn--primary hériter des couleurs de .btn (ancienne charte)
   -> Bord primaire, fond primary_clear, texte primary */
/* Ancien design des gros boutons (home) */
.btn.big{ font-size:15px; padding:6px 16px; }
.btn .icon-arrow{ display:inline-flex; align-items:center; justify-content:center; margin-left:8px; line-height:0; }
.btn .icon-arrow svg{ width:18px; height:18px; transition: transform .15s ease; }
.btn .icon-arrow svg path{ stroke-width: 3.6; }
.btn:hover .icon-arrow svg{ transform: translateX(2px); }




/* ===== Géorisques block (small legal disclaimer) ===== */
.georisques-section{ margin: 6px 0 10px; padding: 8px 10px; border:1px solid var(--theme-border); border-radius:8px; background: var(--theme-footer); }
.georisques-section .georisques-title{ display:flex; align-items:center; gap:6px; margin:0 0 4px; font:700 13px/1.1 var(--font-one); color: var(--theme-grey_title); }
.georisques-section .georisques-title svg{ color: var(--theme-grey_link); width:16px; height:16px; }
.georisques-section p{ margin:2px 0; font: 500 12px/1.3 var(--font-one); color: var(--theme-content_text_dark); }
.georisques-section a{ color: var(--theme-blue_link); text-decoration: underline; }




/* ===== Developer list ===== */

.prom-list-div .intro{margin-bottom: 12px;
}

.dev-list{
  list-style:none;
  margin:0;
  padding:0;
}
.dev-list li{
  padding: 12px 0;
  border-top:1px solid var(--theme-border);
}


.dev-list li:last-child{border-bottom:1px solid var(--theme-border);}

.dev-summary-block{flex:1 1 260px;}
.dev-summary-block__title{
  margin:0 0 8px;
  font:600 16px/1.2 var(--font-one);
  color:var(--theme-grey_title);
}
.dev-summary-keypoints{list-style:none; margin:0; padding: 6px 12px;}
.dev-summary-keypoints li{
  position:relative;
  margin:6px 0;
  padding-left:16px;
  font:400 14px/1.4 var(--font-one);
  color:var(--theme-content_text_dark);
}
.dev-summary-keypoints li:before{
  content:"\2022";
  position:absolute;
  left:0;
  top:0;
  color:var(--theme-primary);
}
.dev-summary-infos{list-style:none; margin:0; padding:0;}
.dev-summary-infos li{
  margin:6px 0;
  font:400 14px/1.4 var(--font-one);
  color:var(--theme-content_text_dark);
}
.dev-summary-infos a{color:var(--theme-blue_link); text-decoration:underline;}


.dev-phone-btn{ 
  margin-left:6px;
  padding:4px 10px;
  font:500 14px/1 var(--font-one);
  border:1px solid var(--theme-border);
  background:var(--theme-primary_clear);
  color:var(--theme-grey_title);
  border-radius:6px;
  cursor:pointer;
}
.dev-phone-btn:hover{background:#fff;}

.dev-intro{
  margin:20px 0;
}
/* Clearfix to contain floated logo */
.dev-intro::after{
  content:"";
  display:table;
  clear:both;
}
.dev-intro .dev-description::after{
  content:"";
  display:table;
  clear:both;
}

.dev-intro .dev-page-logo{
  float:right;
  margin:0;
}
.dev-intro .dev-page-logo img{ width:240px; height:auto; }
.dev-intro .dev-description{display:block;}

.dev-description p{
  font:400 14px/1.6 var(--font-one);
  color:var(--theme-grey_subtitle);
}


@media (max-width:600px){
  /* Stack logo above text on small screens */
  .dev-intro .dev-page-logo{float:none; margin:0;}
}

.dev-info-grid{display:flex; flex-wrap:wrap; gap:24px; margin:24px 0;}
.dev-info-block{
  flex:1 1 240px;
  background:#fff;
  border:1px solid var(--theme-border);
  border-radius:12px;
}


.dev-info-block .dev-phone-btn{margin-left:0;}
/* Dev info grid enhancements */
.dev-info-grid .dev-summary-block__title{
  display:flex; align-items:center; gap:8px;
  margin:0;
  font:700 15px/1 var(--font-one);
  color:var(--theme-grey_subtitle);
  text-transform:uppercase; letter-spacing:.02em;
  background:var(--theme-primary_clear);
  padding: 6px 12px;
  border-top-left-radius: 12px;     /* coin supérieur gauche */
  border-top-right-radius: 12px;      /* coin supérieur droit */  
  border-bottom: 1px solid var(--theme-border);
}

.dev-info-icon{
  display:inline-flex; align-items:center; justify-content:center;
  width:24px; height:24px; color:var(--theme-primary);
}

.dev-info-grid .dev-summary-infos{list-style:none; margin:0; padding: 2px 12px;}
.dev-info-grid .dev-summary-infos li{margin:6px 0; font:400 14px/1.5 var(--font-one); color:var(--theme-content_text_dark);} 
.dev-info-grid .dev-summary-infos a{ color: var(--theme-blue_link); text-decoration: underline; }

@media (max-width:600px){
.dev-info-grid{flex-direction:column;}
}




.promoteur-bloc{
  display:flex;
  align-items:center;
  gap:30px;
}
.promoteur-logo{
  flex:0 0 180px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.promoteur-logo figure{ margin:0; }
.promoteur-logo img{ width:100%; height:auto; }
.promoteur-texte h3{
  margin:0 0 4px;
  font:700 19px/1.1 var(--font-one);
  color:var(--theme-grey_title);
  text-transform:uppercase;
}
.promoteur-texte h3 span{
  display:block;
  font:600 15px/1.1 var(--font-one);
  color:var(--theme-grey_link);
  text-transform:none;
}
.promoteur-texte-details{margin: 6px 0 4px; }
.promoteur-texte-details p{ font:400 13px/1.2 var(--font-one); color:var(--theme-content_text_dark);}


.promoteur-texte .en-savoir-plus{
  display:inline-block;
  text-decoration: none;
  margin-top:4px;
  font: 500 14px/1.15 var(--font-one); color:var(--theme-grey_link); border-bottom: 1px solid var(--theme-grey_link);
}


.promoteur-texte .en-savoir-plus:hover{ color: var(--theme-grey_subtitle);
    border-bottom: 1px solid var(--theme-grey_subtitle);
}





/* ===== Developer others ===== */
.dev-others{ margin-top:32px; }
.dev-others p{ margin:0px 0; font:400 13px/1.2 var(--font-one); color:var(--theme-content_text_dark); }
.dev-other-list{ list-style:none; margin:16px 0 0; padding:0; display:flex; flex-direction:column; gap:12px; }
.dev-other-card{ display:flex; align-items:center; gap:12px; padding:0 12px;  border:1px solid var(--theme-border); border-radius:8px; text-decoration:none; background: var(--theme-primary_clearer); }
.dev-other-card:hover{  background: var(--theme-grey_bg); }
.dev-other-card__logo{ flex:0 0 140px; display:flex; align-items:center; justify-content:center; }
.dev-other-card__logo img{ max-width: 130px; max-height:96px; height:auto; width:auto; }
.dev-other-card__body{ flex:1; }
.dev-other-card__title{ margin:2px 0 3px; font:600 17px/1.3 var(--font-one); color:var(--theme-grey_title); }
.dev-other-card__arrow{ flex:0 0 auto; margin-left:8px; font-size:20px; color:var(--theme-grey_link); }




/* ===== FAQ ===== */
.faq-list{ margin:24px 0; }
.faq-item + .faq-item{ margin-top:12px; }
.faq-question{
  width:100%;
  text-align:left;
  padding:8px 12px;
  font:600 15px/1.3 var(--font-one);
  border:1px solid var(--theme-border_clear);
  border-radius:6px;
  background:#fff;
  cursor:pointer;
}
.faq-answer{
  padding:8px 12px;
  font-family: var(--font-one);
  font-size:15px;
  color: var(--theme-content_text_dark);
}
/* Blog post card v2 */
.post-card{ border:1px solid var(--theme-border); border-radius:10px; background:var(--theme-primary_clearer); padding:8px 12px 12px; }
.post-card + .post-card{ margin-top:16px; }
.post-card__meta{ display:flex; align-items:center; gap:10px; color: var(--theme-grey_link); font:400 12px/1 var(--font-one); margin:0 0 6px; }
.post-card__meta .pill{ display:inline-block; background: var(--theme-primary_clear); border:1px solid var(--theme-primary); color: var(--theme-grey_subtitle); padding:4px 10px; border-radius:4px; text-decoration:none; font:500 12px/1 var(--font-one); }
.post-card__meta .pill:hover{ background:#fff; color: var(--theme-content_text_dark); }
.post-card__meta .sep{ display:inline-block; width:2px; height:16px; background: var(--theme-grey_link); }
.post-card__inner{ display:grid; grid-template-columns: 44% 1fr; gap:18px; align-items:start; }
.post-card__media{ margin:0; position:relative; }
.post-card__media picture, .post-card__media img{ display:block; width:100%; height:auto; border-radius:8px; }
.post-card__title{ font: 700 20px/1.3 var(--font-two); margin:0 0 8px; color: var(--theme-grey_subtitle); }
.post-card__title a{ color:inherit; text-decoration:none; }
.post-card__title a:hover{ text-decoration:underline; }

.post-card__content p.post-card__author{ color: var(--theme-grey_subtitle); font:400 12px/1 var(--font-one); margin:0; }


@media (max-width: 960px){
  .post-card__inner{ grid-template-columns: 1fr; gap:12px; }
  .post-card__title{ font-size:24px; line-height:1.15; }
}
.post-card__content p.post-card__excerpt{ color: var(--theme-content_text); font:400 13px/1.4 var(--font-one); margin: 0 0 10px; }



/* Article page layout structure */
.article-page-layout header h1{ font:700 32px/1.15 var(--font-two); color: var(--theme-grey_subtitle); margin: 12px 0 14px; }
.article-page-layout header .meta{ color:var(--theme-grey_link); font: 500 14px/1 var(--font-one); margin:0 0 10px; }
.article-page-featured-image-div figure{margin:6px auto 14px; max-width: 92%;}

.article-page-featured-image-div figure picture, .article-page-featured-image-div figure img{ width: 100%; height: auto; border-radius: 4px; box-shadow: 0 2px 12px rgba(0, 0, 0, 0.05); }
.article-page-content-div{ font:400 17px/1.7 var(--font-one); color: var(--theme-content_text); }
.article-page-content-div h2{ font:600 21px/1.3 var(--font-two); margin:18px 0 8px; color: var(--theme-primary); }
.article-page-content-div h3{ font:600 17px/1.1 var(--font-one); margin:16px 0 8px; color: var(--theme-grey_subtitle); }


.article-page-content-div p { margin: 8px 0 0;  font: 400 15px/1.5 var(--font-one); color: var(--theme-content_text); }

.article-page-content-div p a, .article-page-content-div ul li a, .post-meta a{font-weight: 700; color: inherit; text-decoration: underline;
    text-decoration-color: var(--theme-primary); text-decoration-thickness: 2px; text-underline-offset: 3px; padding: 4px 0px;}

.article-page-content-div p a:hover, .article-page-content-div ul li a:hover, .post-meta a:hover{ text-decoration: none;
    background-color: var(--theme-primary); padding: 4px 0px; }


.article-page-content-div ul li{margin: 4px 0 0;  font: 400 15px/1.5 var(--font-one); color: var(--theme-content_text); }


.post-meta{ margin:14px 0; padding:10px 12px; background: var(--theme-grey_bg_clear); border:1px solid var(--theme-border); border-radius:8px; font: 400 13px/1.4 var(--font-one); color: var(--theme-grey_subtitle); }
.author-box{ margin:16px 0 0; }
.author-box-div{ border:1px solid var(--theme-border); border-radius:8px; padding:10px 12px; background:#fff; }
/* Author bio links styled like article body links */
.article-page-layout .author-box-div a{
  display: inline;
  font-weight:700;
  color: inherit;
  background: transparent;
  border: 0;
  border-radius: 0;
  margin-right: 0;
  padding: 4px 0; /* pour l'effet de survol comme le corps d'article */
  text-decoration: underline;
  text-decoration-color: var(--theme-primary);
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}
.article-page-layout .author-box-div a:hover{
  background-color: var(--theme-primary);
  color: inherit;
  text-decoration: none;
}

.article-page-divider{ height:1px; background: var(--theme-border_clear); margin:24px 0; border:none; }
.article-footer {margin-top: 10px; border-top: 1px solid var(--theme-border); padding: 0 0 2px; font: 400 14px/1.5 var(--font-one); color: var(--theme-content_text); }

.article-footer ul {
    list-style-type: disc;
    margin: 0;
    padding: 8px 2px 16px;
    background: #fef9e9;
    border: 1px solid #ccc;
    border-radius: 4px;
}
.article-footer ul li {margin-left: 12px; list-style: none; }
.article-footer ul li a {padding: 2px 6px; color: var(--theme-primary); text-decoration: underline;font-weight: inherit;}
.article-footer ul li a:hover {text-decoration: none; background-color: #bbac79; color: #fff; padding: 2px 6px;
}


/* Share buttons */
.share-buttons{ display:flex; flex-wrap:wrap; gap:8px; margin: 10px 0 16px; }
.share-btn{ display:inline-flex; align-items:center; gap:8px; padding:6px 10px; border:1px solid var(--theme-border); border-radius:8px; text-decoration:none; font:600 13px/1 var(--font-one); color: var(--theme-grey_subtitle); background:#fff; }
.share-btn:hover{ background: var(--theme-grey_bg); color: var(--theme-content_text_dark); }


.share-btn img{ display:block; width:18px; height:18px; }
/* Neutral share button; icon itself carries brand color */
/* Topics (thématiques) under article list */
.topics-block{ margin: 16px 0 8px; padding:12px; border:1px solid var(--theme-border); border-radius:10px; background:#fff; }
.topics-title{ font:700 18px/1.2 var(--font-two); color: var(--theme-grey_subtitle); margin:0 0 10px; }
.topics-links{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:10px; }
.topic-item{ display:block; }
.topic-link{ display:inline-flex; align-items:center; gap:10px; padding:8px 12px; border:1px solid var(--theme-border); border-radius:999px; background: var(--theme-footer); text-decoration:none; color: var(--theme-grey_subtitle); font:600 13px/1 var(--font-one); }
.topic-link:hover{ background:#fff; color: var(--theme-content_text_dark); }
.topic-name{ text-transform:none; }
.topic-count{ display:inline-block; min-width:22px; height:22px; padding:0 6px; border-radius:999px; background: var(--theme-grey_bg); color: var(--theme-grey_link); font:600 12px/22px var(--font-one); text-align:center; }






/* Home hero */
.home-hero{ margin: 6px 0 22px; }
.home-hero__inner{ background:#FFF4DE; border:1px solid var(--theme-border); border-radius:12px; padding:28px 24px 0; display:grid; grid-template-columns: 1fr 480px; column-gap:24px; row-gap:12px; align-items:end; }
.home-hero__content{ align-self: center; }
.home-hero__content h1, .home-hero__title{ font: 700 49px/1.08 var(--font-one); color:#263341; margin:0 0 10px; }
.home-hero__title{ grid-column: 1 / -1; }
.home-hero__content h2{ font:700 28px/1.3 var(--font-one); color:#3c4a57; margin:0 0 12px; }
.home-hero__lead{ font:400 16px/1.7 var(--font-one); color:#667085; margin:0 0 16px; }
.home-hero__media img{ display:block; width:100%; height:auto; object-fit:contain; }
.home-hero__searchwrap{ position: relative; max-width: 820px; margin-top: 8px; }
.home-hero__search, .search-modal__form{ display:flex; align-items:center; gap:8px; background:#fff; border:3px solid var(--theme-primary); border-radius:12px; padding:8px 10px; }
.home-hero__search input, .search-modal__form input{ flex:1; border:none; outline:none; font:500 16px/1.2 var(--font-one); color:#555; }
.home-hero__search button, .search-modal__form button{ border:none; background:transparent; color:#7C8996; width:32px; height:32px; display:flex; align-items:center; justify-content:center; cursor:pointer; }
/* Search modal layout */
#search-modal__results{ margin-top:12px; max-width: 860px; flex:1; }
#search-modal .lead-modal__dialog{ max-width: 960px; width:90vw; max-height:70vh; display:flex; flex-direction:column; overflow:hidden; overscroll-behavior: contain; }
#search-modal .lead-modal__body{ flex:1; min-height:0; display:flex; flex-direction:column; overflow:hidden; }
#search-modal .search-modal__wrap{ display:flex; flex-direction:column; flex:1; max-width:none; min-height:0; }
#search-modal .search-modal__results{ position:static; flex:1; margin-top:12px; overflow:auto; min-height:0; max-height:none; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
.home-hero__loading{ font:600 13px/1 var(--font-one); color: var(--theme-grey_link); padding:8px 2px; }

/* Search page results box: reuse home-hero results style */
.search-results-box{ background:#fff; border:1px solid var(--theme-border); border-radius:12px; box-shadow: var(--shadow); padding:10px 12px; display:block; }
.search-results-box.is-empty{ display:block; }
.search-empty{ color: var(--theme-grey_link); font:500 14px/1.5 var(--font-one); }
.search-empty p{ margin: 6px 2px; }
.search-results-box .res-section{ padding-left:0; }
.search-results-box .res-section + .res-section{ border-top:1px solid var(--theme-border_clear); margin-top:10px; padding-top:10px; }
.search-results-box .res-title{ font:700 13px/1.1 var(--font-one); color: var(--theme-grey_title); margin:0 0 8px; text-transform:uppercase; letter-spacing:.02em; }
.search-results-box ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px; }
.search-results-box li a{ display:flex; align-items:flex-start; gap:8px; padding:8px 10px; border:1px solid var(--theme-border_clear); border-radius:8px; text-decoration:none; color: var(--theme-grey_subtitle); font:500 14px/1.2 var(--font-one); background:#fff; }
.search-results-box li a:hover{ background: var(--theme-grey_bg); color: var(--theme-content_text_dark); border-color: var(--theme-border); }
.search-results-box .res-icon{ width:16px; height:16px; flex:0 0 16px; }
.search-results-box .res-section.is-prog .res-icon{ color: var(--theme-primary); }
.search-results-box .res-section.is-dev  .res-icon{ color: var(--theme-blue_link); }
.search-results-box .res-section.is-city .res-icon{ color: var(--theme-grey_title); }
.search-results-box .res-section.is-art  .res-icon{ color: var(--theme-soon_strong); }
.search-results-box .res-item .res-meta{ margin-left:auto; display:inline-flex; align-items:center; gap:4px; color: var(--theme-grey_link); font-size:12px; }
.search-results-box li a strong{ flex:1; }
.search-results-box li a .res-main{ display:flex; flex-direction:column; gap:2px; flex:1; }
.search-results-box li a .res-topline{ display:flex; align-items:baseline; gap:8px; }
.search-results-box li a .res-topline strong{ flex:none; }
.search-results-box li a .res-city{ color: var(--theme-grey_link); font-size:12px; font-weight:600; }
.search-results-box li a .res-sub{ color: var(--theme-grey_link); font-size:12px; }
.search-results-box li a .res-right{ margin-left:auto; }
.search-results-box .res-footer{ text-align:right; margin-top:8px; }
.search-results-box .res-footer a{
  display:inline-flex; align-items:center; gap:8px;
  padding:8px 12px; border-radius:10px;
  background: var(--theme-primary_clear);
  border:2px solid var(--theme-primary);
  color: var(--theme-grey_subtitle);
  font:600 13px/1 var(--font-one);
  text-decoration:none;
}
.search-results-box .res-footer a:hover{
  background:#fff; color: var(--theme-content_text_dark);
}
@media (max-width: 960px){
  .home-hero__inner{ grid-template-columns: 1fr; gap:12px; padding:18px 12px 0; }
  .home-hero__content h1, .home-hero__title{ font-size:36px; }
  .home-hero__content h2{ font-size:20px; }
  .home-hero__searchwrap{ max-width:100%; }
  #search-modal__results{ max-width:100%; }
}

/* Post-meta links styling on article show */
.post-meta a.pill-mini{
  display:inline-flex; align-items:center;
  padding:4px 10px; border-radius:999px;
  background: var(--theme-primary_clear);
  border:1px solid var(--theme-primary);
  color: var(--theme-grey_subtitle);
  font:600 13px/1 var(--font-one);
  text-decoration:none;
  transition: background-color .15s ease, color .15s ease, border-color .15s ease;
  margin-right:8px;
}
.post-meta a.pill-mini:hover{ background:#fff; color: var(--theme-content_text_dark); border-color: var(--theme-primary); }
.post-meta time{ color: var(--theme-grey_link); }
.post-meta strong{ color: var(--theme-grey_title); }
.pill-mini{ display:inline-flex; align-items:center; padding:2px 8px; border-radius:999px; font:700 11px/1 var(--font-one); letter-spacing:.02em; border:1px solid transparent; margin-right:6px; }
.pill-mini.st-soon{ color: var(--theme-soon_strong); background: var(--theme-soon_clear); border-color: var(--theme-soon_strong); }
.pill-mini.st-new{ color: var(--theme-new_strong); background: var(--theme-new_clear); border-color: var(--theme-new_strong); }
.pill-mini.st-last_op,.pill-mini.st-last-one{ color: var(--theme-last_op_strong); background: var(--theme-last_op_clear); border-color: var(--theme-last_op_strong); }
.pill-mini.st-sold{ color: var(--theme-sold_strong); background: var(--theme-sold_clear); border-color: var(--theme-sold_strong); }
.pill-mini.is-type{ color: var(--theme-blue_link); background: #E9F1FF; border-color: var(--theme-blue_link); }
.pill-mini.is-cat{ color: var(--theme-grey_title); background: var(--theme-grey_bg); border-color: var(--theme-border_clear); }
/* ==== Hero (Home) - new structure ==== */



/* Program page: location line styling */
.prog-page .location{ display:flex; align-items:center; gap:4px; margin: -1px 0 8px; color: var(--theme-primary); font: 500 15px/1.3 var(--font-one); }
.prog-page .location .loc-icon{ display:inline-flex; align-items:center; justify-content:center; width:20px; height:20px; color: var(--theme-primary); position: relative; top: 1px; }
.prog-page .location .loc-icon svg{ width:20px; height:20px; display:block; }
.prog-page .location .sep{ margin: 0 6px; color: var(--theme-primary); }
.prog-page .location .loc-link{ color: var(--theme-grey_link); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.prog-page .location .loc-link:hover{ color: var(--theme-grey_subtitle); }




.hero-search-section{ margin: 6px 0 22px; }
.hero-container{ background: var(--theme-primary_clear); border:1px solid var(--theme-border); border-radius:12px; padding:24px 38px 0; }
.hero-content{ display:grid; grid-template-columns: minmax(320px,600px) 1fr; column-gap:24px; row-gap:8px; align-items:end; }
.hero-title{ grid-column: 1 / -1; font: 700 39px/1.08 var(--font-prog-name); color: var(--theme-grey_subtitle); margin:0 0 10px; }
.hero-text{ grid-column: 1; max-width:600px; width:100%; align-self:flex-start; }
.hero-text h2{ font:700 26px/1.3 var(--font-one); color:#3c4a57; margin:0 0 10px; max-width: 600px; }
.hero-image{ grid-column: 2; align-self:end; justify-self:end; }
.hero-text p{ font:400 16px/1.7 var(--font-one); color:#667085; margin:0 0 16px; }
.hero-image img{ display:block; width:100%; max-width:400px; height:auto; object-fit:contain; }
.global-search-container{ margin-top:6px; max-width: 100%; margin-bottom: 12px;}
.search-input-wrapper{ position:relative; display:flex; align-items:center; gap:8px; background:#fff; border:2px solid var(--theme-primary); border-radius:8px; padding:4px 10px; }
.search-input-wrapper input{ flex:1; border:none; outline:none; font:500 15px/1.2 var(--font-one); color:#555; background:transparent; }
.search-input-wrapper button{ border:none; background:transparent; color:#7C8996; width:32px; height:32px; display:flex; align-items:center; justify-content:center; cursor:pointer; }
.search-input-wrapper .clear-btn{ position:absolute; right:42px; top:50%; transform:translateY(-50%); width:28px; height:28px; color:#9aa6b2; display:none; }
.search-input-wrapper:focus-within .clear-btn{ display:flex; }

@media (max-width: 960px){
  .hero-container{ padding:18px 12px 0; }
  .hero-content{ display:block; }
  .hero-title{ font-size:34px; }
  .hero-text{ max-width:100%; }
  .hero-text h2{ font-size:20px; }
  .global-search-container{ max-width:100%; }
  .hero-image{ margin-top:12px; display:flex; justify-content:center; align-items:flex-end; }
  .hero-image img{ max-width: 340px; width:100%; height:auto; margin: 0 auto; display:block; }
}

/* Extra-small tweaks */
@media (max-width: 640px){
  .hero-image img{ max-width: 320px; }
}
@media (max-width: 420px){
  .hero-image img{ max-width: 280px; }
}

/* City buttons */
.city-buttons{ display:flex; flex-wrap:wrap; gap:12px; margin: 14px 0 18px; }
.city-buttons--grid4{ display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:16px; }
.city-card{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding:8px 16px 12px; border:2px solid var(--theme-primary); border-radius:10px; background: var(--theme-primary_clear); color: var(--theme-grey_subtitle); text-decoration:none; font:700 15px/1.3 var(--font-one); box-shadow: var(--shadow-sm, 0 1px 2px rgba(16,24,40,.06)); transition: transform .15s ease, background-color .15s ease; min-height: 68px; }
.city-card:hover{ background:#fff; color: var(--theme-content_text_dark); transform: translateY(-1px); }
.city-card__text{ display:flex; flex-direction:column; align-items:flex-start; gap:4px; min-width:0; }
.city-card__name{ display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-weight:700; font-size:16px; text-transform: uppercase; color: var(--theme-primary); }
.city-card__zip{ font-weight:600; font-size:13px; text-transform:none; color: var(--theme-content_text_dark); }
.city-card__count{ display:inline-block; margin-top:2px; padding:4px 10px; border-radius:999px; background: var(--theme-primary); color: #fff; font:500 13px/1 var(--font-one); text-align:center; white-space:nowrap; }
.city-card__arrow{ display:inline-flex; align-items:center; justify-content:center; width:32px; height:32px; border-radius:999px; background:#fff; color: var(--theme-primary); border:2px solid var(--theme-primary); }
.city-card:hover .city-card__arrow{ background: var(--theme-primary); color:#fff; }
/* Make city-card arrow icon thicker and slightly larger */
.city-card__arrow svg{ width:22px; height:22px; transform: translateX(1px); }
.city-card__arrow svg path{ stroke-width: 3.6; }
@media (max-width: 640px){ .city-buttons--grid4{ grid-template-columns: 1fr; } }

.section-title{ font:800 22px/1.2 var(--font-two); color: var(--theme-grey_title); margin: 8px 0 10px; }
.center-block{ text-align:center; margin: 16px 0; }
.seo-intro{ margin: 18px 0 8px; padding:12px; border:1px solid var(--theme-border); border-radius:10px; background:#fff; color: var(--theme-content_text); font:400 15px/1.6 var(--font-one); }
.seo-intro p{ margin: 8px 0; }

/* ===== City sold CTA ===== */
.sold-cta{ margin: 14px 0 18px; padding: 12px 14px; border:1px solid var(--theme-border); border-radius:10px; background: var(--theme-footer); }
.sold-cta p{ margin:4px 0; color: var(--theme-content_text); }
.sold-cta a{font:500 15px/1.2 var(--font-one); text-decoration: underline;
    text-decoration-thickness: 1px; text-decoration-color: var(--theme-grey_link);  ; text-underline-offset: 3px; color: var(--theme-grey_link);}
.sold-cta a:hover{ color: var(--theme-grey_subtitle); text-decoration-color: var(--theme-grey_subtitle);  }




/* ===== Small program card (city nearby) ===== */
.prog-card-small{ display:flex; gap:20px; padding:10px; border:1px solid var(--theme-border); border-radius:10px; background: var(--theme-primary_clearer); margin: 18px 0; position:relative; }
.prog-card-small .pcs-thumb{ position:relative; flex: 0 1 190px; max-width:190px; display:block; border-radius:10px; overflow:hidden; }
.prog-card-small .pcs-thumb img{ display:block; width:100%; height:140px; object-fit:cover; }
.prog-card-small .pcs-badge{ position:absolute; top:5px; left:5px; border:2px solid var(--theme-primary); border-radius:6px; padding:4px 8px; font:700 11px/1 var(--font-one); background: var(--theme-primary_clear); color: var(--theme-primary); z-index:2; }
/* Align small-card badges with global color scheme */
.prog-card-small .pcs-badge.is-soon{ border-color: var(--theme-soon_strong); background: var(--theme-soon_clear); color: var(--theme-soon_strong); }
.prog-card-small .pcs-badge.is-new{ border-color: var(--theme-new_strong); background: var(--theme-new_clear); color: var(--theme-new_strong); }
.prog-card-small .pcs-badge.is-lastop{ border-color: var(--theme-last_op_strong); background: var(--theme-last_op_clear); color: var(--theme-last_op_strong); }
.prog-card-small .pcs-badge.is-sold{ border-color: var(--theme-sold_strong); background: var(--theme-sold_clear); color: var(--theme-sold_strong); }
.prog-card-small .pcs-body{ flex:1; min-width:0; }
.prog-card-small h3.pcs-title{ margin:0 0 4px; font: 700 18px/1.1 var(--font-prog-name); color: var(--theme-prog_title_black); }

.prog-card-small h3.pcs-title span{font: 600 16px/1.1 var(--font-prog-name); color: var(--theme-grey_link);}

.prog-card-small .pcs-loc{ margin:0 0 2px; color: var(--theme-primary); font:500 14px/1 var(--font-one); }

.prog-card-small .pcs-loc a{ color: var(--theme-grey_link); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }


.prog-card-small .pcs-excerpt{ margin:0; color: var(--theme-content_text_dark); padding: 0 !important;  }
.prog-card-small .pcs-meta{ margin:0 0 4px; color: var(--theme-grey_subtitle); }
.prog-card-small .pcs-more a{font: 500 14px / 1.1 var(--font-one);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-decoration-color: var(--theme-grey_link);
    text-underline-offset: 3px;
    color: var(--theme-grey_link); }

.prog-card-small .pcs-more a:hover{ color: var(--theme-grey_subtitle);
    text-decoration-color: var(--theme-grey_subtitle);  ; }

/* Grid for nearby small cards */
.nearby-small .nearby-grid{ display:block; }
