/* Inter — self-hosted (latin-ext couvre les caractères français étendus, latin le reste) */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300 800;
  font-display: swap;
  src: url('/fonts/inter-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300 800;
  font-display: swap;
  src: url('/fonts/inter-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root{
  --bg:#eaefed; --card:#ffffff; --accent:#2361a7; --accent-green:#136c38;
  --muted:#4b5d6b; --text:#1a2e3b; --border:#d0dbd7;
  --radius:12px; --maxw:1100px;
}
html, body {
  margin:0;
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  color:var(--text);
  background:var(--bg);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  line-height:1.6;
  font-weight:600;
}
* { box-sizing: border-box; }
.site{max-width:var(--maxw);width:100%;background:var(--card);border-radius:16px;overflow:hidden;box-shadow:0 6px 32px rgba(19,108,56,0.06),0 2px 8px rgba(35,97,167,0.04);display:flex;flex-direction:column;min-height:100vh;}
.site > main{flex:1;}
@media(max-width:700px){
  body{background:var(--card);}
  .site{border-radius:0;box-shadow:none;margin:0;}
}
/* ── Pre-header (barre compte) ─────────────────────────────────────────────── */
.pre-header{display:flex;justify-content:flex-end;align-items:center;padding:6px 20px;background:linear-gradient(90deg,#136c38 0%,#2361a7 100%);border-bottom:1px solid #dce8fb;}
.pre-header-inner{display:flex;align-items:center;justify-content:flex-end;gap:8px;}
.pre-header .account-chip{display:inline-flex;align-items:center;gap:6px;margin:4px 0 0 0;padding:5px 10px;border:1px solid #dbe7fb;border-radius:999px;background:#f7faff;color:#22324a;font-size:.82rem;line-height:1;}
.pre-header .account-dot{width:8px;height:8px;border-radius:50%;background:#20a44a;box-shadow:0 0 0 2px #e7f7ed;}
.pre-header .account-name{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pre-header .btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;margin:4px 0 0 0;padding:5px 10px;border-radius:999px;font-size:.82rem;line-height:1;font-weight:600;text-decoration:none;text-align:center;}
.pre-header .btn-ghost{background:#f7faff;color:#22324a;border:1px solid #dbe7fb;}
.pre-header .btn-logout{background:#fffaf5;color:#111111;border:1px solid #fde8cf;}
.pre-header .auth-action{min-width:122px;}
@media(max-width:700px){.pre-header{justify-content:flex-end;padding:6px 12px;}.pre-header-inner{width:100%;justify-content:flex-end;}}
.header-center {
  text-align:center;
}
.header-right {
  margin-right: 40px;
}
.logo{object-fit:contain;margin-bottom:10px;}
.phone-link{
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  color: var(--text);
  text-decoration: none;
  font-weight: 600;
  font-size: 1.5rem;
  letter-spacing:-0.01em;
  transition: color 0.3s ease;
  cursor: pointer;
}
.phone-link:hover{color:var(--accent-green);}
.phone-icon{
  width:2.1rem;
  height:2.1rem;
  fill:currentColor;
  cursor:pointer;
}

main{display:flex;flex-direction:column;align-items:center;width:100%;padding:28px;}
.slots-bar + main{padding-top:0;}
.content{padding:18px;width:100%;}
@media(max-width:700px){
  main{padding:12px;}
  .content{padding:10px;}
}
.hero{background:#e6eeeb;padding:18px;border-radius:12px;margin-bottom:18px;}
.muted{color:var(--muted);}
h1,h2,h3{color:var(--text);letter-spacing:-0.02em;}
h1{font-weight:800;font-size:2rem;}
h2{font-weight:700;font-size:1.5rem;}
h3{font-weight:600;font-size:1.15rem;}
.panel{background:var(--card);padding:18px;border-radius:12px;border:1px solid var(--border);position:sticky;top:24px;}
.field{margin-bottom:16px;}
label{display:block;margin-bottom:6px;font-size:1.05rem;font-weight:600;color:var(--text);}
select,input[type="number"]{width:100%;padding:10px;border-radius:8px;border:1px solid var(--border);background:#fff;transition:border-color .2s;box-sizing:border-box;}
select:focus,input[type="number"]:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(35,97,167,.1);}
.diag-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(250px,100%),1fr));gap:12px;}
.diag-item{display:flex;align-items:center;gap:10px;padding:8px;border-radius:8px;border:1px solid var(--border);background:#f4f8f6;transition:all .3s ease;}
.diag-item.disabled{opacity:.45;transform:scale(.98);}
.diag-item.locked{cursor:not-allowed;}
.price-box{margin-top:14px;padding:14px;border-radius:10px;background:#f0f5f3;border:1px solid var(--border);text-align:center;}
.total{font-size:1.6rem;font-weight:700;color:var(--accent);}
.breakdown{margin-top:10px;font-size:0.9rem;color:var(--muted);text-align:left;}
.btn-row{display:flex;gap:10px;margin-top:12px;}
.btn{flex:1;padding:10px;border-radius:10px;border:0;font-weight:600;cursor:pointer;}
.btn-primary{background:var(--accent);color:#fff;transition:background .2s;}
.btn-primary:hover{background:#1c4f8c;}
.btn-ghost{background:transparent;border:1px solid var(--border);color:var(--accent);transition:all .2s;}
.btn-ghost:hover{background:rgba(35,97,167,.05);border-color:var(--accent);}
.row-options{display:flex;gap:20px;width:100%;flex-wrap:wrap;margin-top:8px;}
.opt-item{flex:1;min-width:min(200px,100%);display:flex;align-items:center;gap:8px;background:#f4f8f6;padding:10px;border-radius:8px;border:1px solid var(--border);}
.lead-text{text-align:center;max-width:720px;margin:0.75rem auto;font-size:1rem;line-height:1.65;color:var(--text);padding:0 1rem;}
.section-title{text-align:center;margin:0.75rem 0 1.75rem;font-size:1.25rem;font-weight:700;color:var(--text);letter-spacing:-0.01em;}
footer {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  text-align: center;
  padding: 18px;
  margin-top: 24px;
  border-top: 1px solid var(--border);
  color:#ffffff;
  background:linear-gradient(90deg,#2361a7 0%,#136c38  100%);
  font-size:.9rem;
  overflow: visible;
  position: relative;
}
footer a{color:#ffffff;text-decoration:none;font-weight:500;}
.footer-bug-report{margin:0;font-size:.78rem;opacity:.7;letter-spacing:.01em;}
.footer-bug-report a{color:#ffffff;text-decoration:underline;text-underline-offset:3px;font-weight:400;}
.footer-bug-report:hover{opacity:1;transition:opacity .2s;}
.footer-bottom-bar{margin:6px 0 0;font-size:.72rem;opacity:.6;letter-spacing:.01em;white-space:nowrap;}
.footer-bottom-bar a{color:#fff;text-decoration:underline;text-underline-offset:2px;font-weight:400;}
.footer-bottom-bar:hover{opacity:.9;}

.footer-logos{display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap;}
.footer-logos img{height:38px;width:auto;object-fit:contain;opacity:.9;transition:opacity .2s;}
.footer-logos img:hover{opacity:1;}
.footer-inner{display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap;}
.partner-avis-row{display:flex;align-items:center;justify-content:flex-end;gap:24px;padding-right:20px;}
.footer-partner-logos{display:flex;flex-direction:row;align-items:flex-end;justify-content:flex-end;gap:16px;position:absolute;top:-65px;right:20px;}
.footer-partner-logos img{height:50px;width:auto;object-fit:contain;display:block;}
.footer-partner-logos img[alt="Bureau Veritas"]{height:76px;position:relative;top:1px;}
@media(max-width:480px){.footer-inner{flex-direction:column;gap:10px;}}
body{margin:0;display:flex;justify-content:center;background:var(--bg);}
.site,.container,main,.wrapper{width:100%;max-width:1100px;margin:0 auto;}
h1,h2,h3{text-align:center;}
.panel,.form-container,.pricing,.section{margin-left:auto;margin-right:auto;}
.total,.price,.prix-final{text-align:center;}
button,.btn{display:inline-block;margin:10px auto;}
@media (max-width: 768px) {.row,.row-fields{flex-direction:column;align-items:center;}}
.field-small{display:flex;flex-direction:column;align-items:center;}
#typeBien,#anneeConstruction,#cadre,#surface,#chauffage,#typeRadiateur{text-align:center;}
.field-small label{display:block;text-align:center;margin-bottom:6px;}
.field-small select,.field-small input{width:140px;text-align:center;}
.row-fields{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;width:90%;margin-bottom:16px;}
.row-fields .field{flex:1 1 calc(25% - 12px);min-width:150px;}
.row-fields .field label{display:block;margin-bottom:6px;}
.row-fields .field select,.row-fields .field input{width:100%;text-align:center;}
@media(max-width:700px){
  .row-fields{width:100%;}
  .field-small select,.field-small input{width:100%;}
}
@media (max-width:768px){.row-fields{flex-direction:column;}.row-fields .field{width:100%;max-width:none;}}
@media(max-width:480px){
  .diag-list{grid-template-columns:1fr;}
  .row-options{gap:8px;}
  .opt-item{flex:1 1 100%;min-width:0;}
  .row-fields{width:100%;}
  .row-fields .field{min-width:0;}
  .annee-blocs{flex-direction:column;width:100%;}
  .annee-card{width:100%;flex:none;box-sizing:border-box;}
}
.switch{position:relative;display:inline-block;width:50px;height:26px;}
.switch input{opacity:0;width:0;height:0;}
.slider{position:absolute;cursor:pointer;inset:0;background-color:#ccc;transition:.3s;border-radius:34px;}
.slider:before{position:absolute;content:"";height:20px;width:20px;left:3px;bottom:3px;background-color:white;transition:.3s;border-radius:50%;}
.switch input:checked + .slider{background-color:var(--accent);}
.switch input:checked + .slider:before{transform:translateX(24px);}
.annee-blocs{display:flex;gap:10px;margin-top:8px;flex-wrap:wrap;justify-content:center;align-items:center;}
.annee-card{flex:1 1 0;min-width:0;padding:7px 12px;border:2px solid var(--border);border-radius:12px;text-align:center;cursor:pointer;font-weight:600;font-size:.93rem;transition:.2s ease;box-sizing:border-box;}
.annee-card:hover{border-color:var(--accent);}
.annee-card.active{background:var(--accent);color:#fff;border-color:var(--accent);}
.annee-section{text-align:center;margin-bottom:25px;}
.annee-title{font-weight:700;font-size:1.2rem;margin-bottom:15px;}
.row-fields,.diag-list{width:100%;max-width:100%;}
/* Carousel */
.diagnostics-carousel{padding:0 0px;background:#e6eeeb;color:#ffffff;text-align:center;overflow:hidden;border-radius:20px;max-width:82%;box-sizing:border-box;margin:40px auto;}
.carousel-wrapper{
  position:relative;
  max-width:1100px;
  margin:auto;
  overflow:hidden;
  border-radius:20px;
  box-shadow:0 6px 20px rgba(0,0,0,0.05);


}
.carousel-track{display:flex;transition:transform .2s ease;}
.carousel-item{min-width:250px;margin:0 6px;position:relative;text-decoration:none;color:white;border-radius:15px;overflow:hidden;flex-shrink:0;}
.carousel-item:first-child{
  margin-left:0;
}

.carousel-item:last-child{
  margin-right:0;
}

.carousel-item img{width:100%;height:250px;object-fit:cover;display:block}
.carousel-item span{position:absolute;bottom:15px;left:15px;background:rgba(0,0,0,0.5);padding:8px 15px;border-radius:8px;font-weight:bold;}
.carousel-btn{position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,0.6);color:white;border:none;font-size:28px;width:50px;height:50px;cursor:pointer;border-radius:50%;z-index:1000;display:flex;align-items:center;justify-content:center;}
.carousel-btn:hover{background:rgba(0,0,0,0.8);}
.carousel-btn.prev{left:10px;}
.carousel-btn.next{right:10px;}
@media(max-width:768px){
  .diagnostics-carousel{max-width:100%;margin:20px auto 0;padding:0;border-radius:20px;}
  .carousel-item{min-width:calc(100vw - 40px);}
  .carousel-item img{height:200px;}
  .carousel-btn{width:48px;height:48px;font-size:22px;}
}
/*Hamburger Desktop */
.hamburger{display:flex;flex-direction:column;justify-content:space-between;width:60px;height:30px;background:none;border:none;cursor:pointer;margin-top:30px;z-index:1001;}
.hamburger span{display:block;height:5px;background:#111;border-radius:2px;transition:.3s;}
.desktop-menu{position:absolute;top:50px;right:10px;background:#fff;border-radius:10px;box-shadow:0 6px 15px rgba(0,0,0,.1);display:none;text-align:center;padding:12px 0;min-width:200px;z-index:1000;}
.desktop-menu ul{list-style:none;margin:0;padding:0;}
.desktop-menu li{margin:8px 0;}
.desktop-menu a{text-decoration:none;color:var(--text);font-weight:600;padding:6px 12px;display:block;}
.desktop-menu a:hover{background:#e6eeeb;border-radius:6px;color:var(--accent);}
.desktop-menu.open{display:block;}

.header-wrapper {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  padding: 10px 20px 0;
}
.header-left {
  flex: 0 0 auto; /* largeur du logo automatique */
}
.header-left .logo {
  width: 120px;
  height: auto;
}
.muted {
  color: var(--muted);
}
@media (max-width: 900px){
  .header-wrapper{
    grid-template-columns: 1fr;
    text-align:center;
    gap:15px;
  }
  .header-left{
    justify-self:center;
  }
  .header-right{
    justify-self:center;
    margin-right:0;
  }
  .phone-link{
    font-size:1.2rem;
  }
}
.rgpd-wrapper{
  max-width:1100px;
  margin:40px auto;
  padding:20px;
}

.rgpd-content{
  background:#ffffff;
  border-radius:16px;
  box-shadow:0 6px 25px rgba(0,0,0,.06);
  padding:30px;
}

.rgpd-content h1{
  text-align:center;
  margin-bottom:30px;
}

.rgpd-content h2{
  margin-top:25px;
}

.rgpd-content p{
  line-height:1.6;
}

/* =========================
   FORMULAIRE SUPPRESSION
   Scoped uniquement ici
========================= */

.data-delete{
  margin-top:40px;
  padding:20px;
  border:1px solid #ddd;
  border-radius:12px;
  background:#f9f9f9;
}

.data-delete label{
  display:block;
  margin-bottom:15px;
  font-weight:600;
}

.data-delete small{
  display:block;
  margin-top:6px;
  font-weight:400;
}

.data-delete button{
  margin-top:15px;
  padding:10px 20px;
  border-radius:8px;
  border:none;
  background:var(--accent);
  color:#fff;
  font-weight:600;
  cursor:pointer;
  transition:background .2s;
}
.data-delete button:hover{background:#1c4f8c;}

.data-delete button:disabled{
  opacity:.5;
  cursor:not-allowed;
}

/* Responsive léger */
@media(max-width:768px){
  .rgpd-content{
    padding:20px;
  }
}
/* Conteneur image avec texte flottant */
.dpe-container {
  position: relative;
  width: 100%;
  margin: 20px 0;
  border-radius: 12px;
  overflow: hidden;
}


.dpe-text-overlay {
  position: relative;
  width: 100%;
  padding: 20px;
  box-sizing: border-box;
  color: #111;
  background: rgba(255,255,255,0.85);
}
.dpe-text-overlay p {
  margin: 0.5rem 0;
  line-height: 1.6;
}

@media (max-width: 768px) {
  .dpe-text-overlay h1 {
    font-size: 1.8rem;
  }
  .dpe-text-overlay h2 {
    font-size: 1.2rem;
  }
}
@media (max-width:768px){

  .dpe-text-overlay{
    padding:15px;
  }

  .dpe-text-overlay p,
  .dpe-text-overlay li{
    font-size:14px;
  }
}

/* Login form */
.login-form{
  max-width:400px;
  margin:120px auto;
  padding:30px;
  background:#ffffff;
  border-radius:10px;
  box-shadow:0 10px 25px rgba(0,0,0,0.1);
}

.login-form h2{
  text-align:center;
  margin-bottom:20px;
}

.login-form input{
  width:100%;
  padding:10px;
  margin-bottom:15px;
  border:1px solid #ccc;
  border-radius:6px;
}

.login-form button{
  width:100%;
  padding:12px;
  background:var(--accent);
  color:white;
  border:none;
  border-radius:6px;
  font-weight:600;
  cursor:pointer;
  transition:background .2s;
}
.login-form button:hover{background:#1c4f8c;}

/* Register form */
.register-form{
  max-width:400px;
  margin:120px auto;
  padding:30px;
  background:#fff;
  border-radius:10px;
  box-shadow:0 10px 25px rgba(0,0,0,0.1);
}

.register-form h2{
  text-align:center;
  margin-bottom:20px;
}

.register-form input{
  width:100%;
  padding:10px;
  margin-bottom:15px;
  border:1px solid #ccc;
  border-radius:6px;
}

.register-form button{
  width:100%;
  padding:12px;
  background:var(--accent-green);
  color:white;
  border:none;
  border-radius:6px;
  font-weight:600;
  transition:background .2s;
}
.register-form button:hover{background:#0e5a2d;}
