/* Onderdelen: het formulier in 4 stappen, de EPC-labels en de referentiekaarten. */

/* EPC-label in de vorm van het officiële pijltje */
.epc-tag{display:inline-flex;align-items:center;height:2rem;min-width:3rem;padding:0 1.05rem 0 .7rem;font-weight:700;font-size:1.125rem;line-height:1;color:#0f172a;
  clip-path:polygon(0 0,calc(100% - .75rem) 0,100% 50%,calc(100% - .75rem) 100%,0 100%)}
.epc-tag.epc-a{background:#2a871d;color:#fff}
.epc-tag.epc-b{background:#9bc31c}
.epc-tag.epc-c{background:#f2d500}
.epc-tag.epc-d{background:#f6a800}
.epc-tag.epc-e{background:#ee7d11}
.epc-tag.epc-f{background:#d7141a;color:#fff}
.epc-tag.epc-groot{height:2.75rem;min-width:4rem;font-size:1.5rem;padding:0 1.35rem 0 .9rem}
.epc-van-naar{display:flex;align-items:center;gap:.6rem}
.epc-van-naar svg{width:1.25rem;height:1.25rem;color:var(--muted-foreground);flex:none}

/* ---------- Formulier in stappen ---------- */
.epc-form{margin-top:1.25rem}
.epc-voortgang{display:none}
.epc-form.is-js .epc-voortgang{display:block;margin-bottom:1.25rem}
.epc-stap-tekst{font-size:.8125rem;font-weight:600;color:var(--muted-foreground);margin:0 0 .4rem}
.epc-balk{height:6px;border-radius:9999px;background:var(--muted);overflow:hidden}
.epc-balk i{display:block;height:100%;width:25%;border-radius:9999px;background:var(--primary);transition:width .25s ease}

.epc-stap{border:0;padding:0;margin:0 0 1.5rem;min-width:0}
.epc-form.is-js .epc-stap{margin-bottom:0}
.epc-form.is-js .epc-stap[hidden]{display:none}
.epc-stap legend{padding:0;margin:0 0 .9rem;font-size:1.125rem;font-weight:700;line-height:1.3;color:var(--foreground)}
.epc-stap legend:focus{outline:none}

.epc-keuzes{display:grid;gap:.6rem}
.epc-keuzes-labels{grid-template-columns:repeat(3,minmax(0,1fr))}
.epc-keuze{position:relative;display:flex;align-items:center;gap:.75rem;min-height:3.5rem;padding:.75rem 1rem;border:1.5px solid var(--border);border-radius:.875rem;background:var(--card);font-size:1rem;font-weight:500;line-height:1.3;cursor:pointer;transition:border-color .15s ease,background-color .15s ease}
.epc-keuze:hover{border-color:var(--primary)}
.epc-keuze input{position:absolute;opacity:0;width:1px;height:1px}
.epc-keuze:has(input:checked){border-color:var(--primary);background:var(--secondary);box-shadow:inset 0 0 0 1px var(--primary)}
.epc-keuze:has(input:focus-visible){outline:3px solid #0f172a;outline-offset:2px}
.epc-keuze-label{justify-content:center;padding:.75rem .5rem}
.epc-keuze-breed{grid-column:1/-1;justify-content:center}
.epc-bol{flex:none;width:1.25rem;height:1.25rem;border-radius:50%;border:2px solid #9aa8b5;background:#fff}
.epc-keuze:has(input:checked) .epc-bol{border-color:var(--primary);background:radial-gradient(circle,var(--primary) 0 45%,#fff 50%)}

.epc-velden{display:grid;gap:.8rem}
.epc-velden-2{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
.epc-veld label{display:block;font-size:.875rem;font-weight:600;margin-bottom:.25rem}
.epc-veld input{width:100%;height:3rem;border:1px solid var(--border);border-radius:.875rem;background:var(--background);padding:0 .8rem;font-size:1rem;outline:none}
.epc-veld input:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 28%,transparent)}

.epc-nav{display:flex;align-items:center;gap:.75rem;margin-top:1.25rem}
.epc-nav .epc-terug{flex:none;height:3.25rem;padding:0 1.1rem;border:1.5px solid var(--border);border-radius:9999px;background:var(--card);font-weight:600;font-size:.9375rem;cursor:pointer}
.epc-nav .epc-terug:hover{border-color:#9aa8b5}
.epc-nav .epc-verder,.epc-nav button[type=submit]{flex:1;height:3.25rem;margin:0}
.epc-nav .epc-verder[disabled]{opacity:.45;cursor:not-allowed;box-shadow:none}
.epc-form:not(.is-js) .epc-terug,.epc-form:not(.is-js) .epc-verder{display:none}
.epc-form [hidden]{display:none !important}
.epc-klein{margin:.75rem 0 0;font-size:.6875rem;text-align:center;color:var(--muted-foreground)}

/* ---------- Referenties ---------- */
.epc-refs{display:grid;gap:1rem;margin-top:1.25rem}
@media(min-width:768px){.epc-refs{grid-template-columns:repeat(3,minmax(0,1fr))}}
.epc-ref{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:1.25rem;background:var(--card);overflow:hidden}
.epc-ref-beeld{position:relative;aspect-ratio:16/10;display:flex;align-items:center;justify-content:center;background:var(--secondary)}
.epc-ref-beeld img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.epc-ref-beeld img+.epc-van-naar{position:absolute;left:.75rem;bottom:.75rem;padding:.4rem .5rem;border-radius:.6rem;background:rgba(255,255,255,.94)}
.epc-ref-tekst{padding:1rem 1.1rem 1.2rem}
.epc-ref-tekst h3{margin:0;font-size:1.125rem}
.epc-plaats{margin:.15rem 0 0;font-size:.875rem;color:var(--muted-foreground)}
.epc-werken{list-style:none;margin:.7rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem}
.epc-werken li{padding:.3rem .65rem;border-radius:9999px;background:var(--muted);font-size:.8125rem;font-weight:500;line-height:1.3}

.epc-case{display:grid;margin-top:1rem;border:1px solid var(--border);border-radius:1.25rem;background:var(--card);overflow:hidden}
@media(min-width:900px){.epc-case{grid-template-columns:1.1fr 1fr}}
.epc-case-fotos{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--border)}
.epc-case-foto{position:relative;margin:0;min-height:11rem;aspect-ratio:4/5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;background:var(--secondary);text-align:center;padding:1rem}
@media(min-width:900px){.epc-case-foto{aspect-ratio:auto;height:100%}}
.epc-case-foto img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.epc-case-foto figcaption{font-size:.9375rem;font-weight:600;line-height:1.3}
.epc-case-foto small{display:block;margin-top:.15rem;font-size:.75rem;font-weight:400;color:var(--muted-foreground)}
.epc-case-foto img~figcaption{position:absolute;left:.75rem;bottom:.75rem;padding:.3rem .6rem;border-radius:.5rem;background:rgba(255,255,255,.94)}
.epc-case-tekst{padding:1.25rem 1.25rem 1.4rem}
@media(min-width:900px){.epc-case-tekst{padding:1.75rem}}
.epc-case-tekst h3{margin:0;font-size:1.3rem;line-height:1.25}
.epc-case-tekst p{margin:.6rem 0 0;font-size:.9375rem;line-height:1.55;color:var(--muted-foreground)}
.epc-case-labels{display:flex;flex-wrap:wrap;gap:1.25rem 2rem;margin:1.1rem 0 0}
.epc-case-labels div{display:flex;flex-direction:column;gap:.35rem}
.epc-case-labels dt{font-size:.8125rem;color:var(--muted-foreground)}
.epc-case-labels dd{margin:0}
.epc-case-tekst h4{margin:1.2rem 0 0;font-size:.9375rem;font-weight:700}
.epc-vinkjes{list-style:none;margin:.5rem 0 0;padding:0;display:grid;gap:.35rem .9rem;font-size:.9375rem}
@media(min-width:520px){.epc-vinkjes{grid-template-columns:1fr 1fr}}
.epc-vinkjes li{position:relative;padding-left:1.5rem;line-height:1.4}
.epc-vinkjes li::before{content:"";position:absolute;left:.1rem;top:.3rem;width:.9rem;height:.5rem;border-left:2.5px solid var(--primary);border-bottom:2.5px solid var(--primary);transform:rotate(-45deg)}

@media(prefers-reduced-motion:reduce){.epc-balk i,.epc-keuze{transition:none}}

/* Op smalle schermen: de hoofdknop over de volle breedte, "Vorige" eronder */
@media(max-width:480px){
  .epc-nav{flex-wrap:wrap;gap:.35rem}
  .epc-nav .epc-verder,.epc-nav button[type=submit]{order:1;flex:1 0 100%}
  .epc-nav .epc-terug{order:2;flex:1 0 100%;height:2.75rem;border-color:transparent;background:none;color:var(--muted-foreground)}
}

/* Zolang een project geen foto heeft, blijft het beeldvak laag en tonen alleen de labels */
.epc-ref-beeld:not(:has(img)){aspect-ratio:auto;padding:1.6rem 1rem}

/* ---------- Het stappenplan (voorproefje in het formulier, volledig op de bedankpagina) ---------- */
.epc-stap-intro{margin:-.4rem 0 .9rem;font-size:.875rem;line-height:1.45;color:var(--muted-foreground)}
.epc-resultaat h3{margin:0 0 .9rem;font-size:1.2rem;line-height:1.3}
.epc-resultaat h3:focus{outline:none}
.epc-plan-lijst{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
.epc-plan-stap{display:flex;gap:.8rem;align-items:flex-start;padding:.85rem 1rem;border:1px solid var(--border);border-radius:.875rem;background:var(--card)}
.epc-plan-nr{flex:none;width:1.75rem;height:1.75rem;border-radius:50%;background:var(--primary);color:#fff;font-weight:700;font-size:.875rem;display:flex;align-items:center;justify-content:center}
.epc-plan-stap strong{display:block;font-size:1rem;line-height:1.3}
.epc-plan-stap p{margin:.2rem 0 0;font-size:.875rem;line-height:1.45;color:var(--muted-foreground)}
.epc-plan-stap.is-dicht{background:var(--muted);border-style:dashed}
.epc-plan-stap.is-dicht .epc-plan-nr{background:#9aa8b5}
.epc-plan-slot{display:block;margin-top:.1rem;font-size:.8125rem;color:var(--muted-foreground)}
.epc-plan-leeg,.epc-plan-meer{margin:0;font-size:.9375rem;line-height:1.5}
.epc-plan-meer{margin-top:.9rem;color:var(--muted-foreground);font-size:.875rem}
.epc-plan-plicht{margin:.9rem 0 0;padding:.8rem 1rem;border-radius:.875rem;background:#fff4e0;border:1px solid #f6c66a;font-size:.9375rem;line-height:1.45;font-weight:500}
.epc-plan-noot{margin:.7rem 0 0;font-size:.8125rem;line-height:1.45;color:var(--muted-foreground)}
.epc-plan-blok{margin-top:1.25rem}
.epc-plan-blok h2{margin-bottom:1rem}
/* Stappen op slot: compact, zodat de knop in beeld blijft */
.epc-plan-stap.is-dicht{padding:.5rem 1rem;align-items:center}
.epc-plan-stap.is-dicht .epc-plan-nr{width:1.4rem;height:1.4rem;font-size:.75rem}
.epc-plan-stap.is-dicht strong{display:inline;font-size:.9rem}
.epc-plan-stap.is-dicht .epc-plan-slot{display:inline;margin:0 0 0 .4rem}
.epc-optie{font-weight:400;color:var(--muted-foreground);font-size:.8125rem;margin-left:.25rem}
.epc-vink{display:flex;align-items:flex-start;gap:.6rem;font-size:.875rem;line-height:1.4;color:var(--muted-foreground);cursor:pointer}
.epc-vink input{flex:none;width:1.15rem;height:1.15rem;margin-top:.1rem;accent-color:var(--primary)}

/* ---------- Klantenreacties bovenaan de resultaten ---------- */
.epc-stemmen{display:grid;gap:1rem;margin-top:1.25rem}
@media(min-width:768px){.epc-stemmen{grid-template-columns:1fr 1fr}}
.epc-stem{margin:0;display:flex;flex-direction:column;gap:.9rem;padding:1.4rem;border:1px solid var(--border);border-radius:1.25rem;background:var(--card)}
.epc-stem blockquote{margin:0;font-size:1.125rem;line-height:1.5;font-weight:500;color:var(--foreground);flex:1}
.epc-sterren{display:flex;gap:1px}
.epc-stem figcaption{display:flex;align-items:center;gap:.75rem}
.epc-stem-init{flex:none;min-width:2.75rem;height:2.75rem;padding:0 .5rem;border-radius:9999px;background:var(--primary);color:#fff;font-weight:700;font-size:.9375rem;display:flex;align-items:center;justify-content:center}
.epc-stem-foto{flex:none;width:3.25rem;height:3.25rem;border-radius:9999px;object-fit:cover;display:block}
.epc-stem figcaption strong{display:block;font-size:1rem;line-height:1.2}
.epc-stem-plaats{display:block;font-size:.875rem;color:var(--muted-foreground)}
.epc-tussenkop{margin:2rem 0 0;font-size:1.2rem}
.epc-tussenkop+.epc-refs{margin-top:.9rem}
h3.epc-tussenkop{font-size:1.3rem}

/* Hint onder de labelvraag (link naar de Woningpas) */
.epc-hint a{color:var(--primary);text-decoration:underline;text-underline-offset:2px}

/* Infoavond (sectie #infoavond): groen vlak, witte tekst, witte kaart met drie avonden als kaartjes */
.ia{background:#2a871d;color:#fff;padding:3.5rem 1rem}
.ia-in{max-width:64rem;margin:0 auto;display:grid;gap:2rem;align-items:center}
@media(min-width:860px){.ia-in{grid-template-columns:1fr 26rem;gap:4rem}}
.ia-kop{font-family:"League Spartan",system-ui,sans-serif;font-weight:700;font-size:clamp(2rem,4.2vw,3rem);line-height:1.02;letter-spacing:-.02em;max-width:14ch}
.ia-lead{margin-top:1.1rem;font-size:1.0625rem;line-height:1.6;max-width:34rem;color:rgba(255,255,255,.92)}
.ia-adres{margin-top:1.5rem;display:inline-flex;gap:.5rem;align-items:center;color:#fff;font-weight:600;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.45);padding-bottom:2px}
.ia-adres:hover{border-bottom-color:#fff}
.ia-kaart{background:#fff;color:#0f172a;border-radius:1.25rem;padding:1.5rem;box-shadow:0 24px 48px -16px rgba(10,40,5,.55)}
.ia-avonden{border:0;padding:0;margin:0}
.ia-avonden legend{font-weight:700;font-size:1rem;margin-bottom:.75rem}
.ia-tickets{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem}
.ia-ticket{position:relative;display:block;cursor:pointer}
.ia-ticket input{position:absolute;opacity:0;inset:0}
.ia-ticket span{display:flex;flex-direction:column;align-items:center;padding:.7rem .25rem .8rem;border:1.5px solid #dbe5d8;border-radius:.9rem;background:#f5f9f4;transition:background .15s,border-color .15s,color .15s}
.ia-ticket b{font-family:"League Spartan",system-ui,sans-serif;font-size:2.4rem;line-height:1;font-weight:700;margin:.15rem 0 .1rem}
.ia-ticket small{font-size:.8125rem;color:#475569}
.ia-ticket input:checked+span{background:#2a871d;border-color:#2a871d;color:#fff}
.ia-ticket input:checked+span small{color:rgba(255,255,255,.88)}
.ia-ticket input:focus-visible+span{outline:3px solid #0f172a;outline-offset:2px}
.ia-nojs{grid-column:1/-1;font-size:.875rem;color:#475569}
.ia-velden{display:grid;gap:.8rem;margin-top:1.25rem}
.ia-teller{display:grid;grid-template-columns:3rem 1fr 3rem;border:1px solid var(--border);border-radius:.875rem;overflow:hidden;height:3rem}
.ia-teller button{border:0;background:#f5f9f4;font-size:1.25rem;font-weight:700;color:#2a871d;cursor:pointer}
.ia-teller button:focus-visible{outline:3px solid #2a871d;outline-offset:-3px}
.epc-veld .ia-teller input{border:0;border-radius:0;height:100%;text-align:center;font-weight:600;-moz-appearance:textfield}
.ia-teller input::-webkit-inner-spin-button,.ia-teller input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.ia-knop{margin-top:1.25rem;width:100%;height:3.25rem;border:0;border-radius:9999px;background:#2a871d;color:#fff;font-weight:700;font-size:1rem;cursor:pointer;box-shadow:0 8px 20px -8px rgba(42,135,29,.7)}
.ia-knop:focus-visible{outline:3px solid #0f172a;outline-offset:3px}
.ia-priv{margin-top:.65rem;font-size:.75rem;color:#64748b;text-align:center}
.ia-ok{text-align:center;padding:1rem .25rem}
.ia-ok-dag{font-family:"League Spartan",system-ui,sans-serif;font-size:4.5rem;line-height:1;font-weight:700;color:#2a871d}
.ia-ok h3{margin-top:.6rem;font-size:1.25rem;font-weight:700}
.ia-ok p{margin-top:.35rem;color:#475569}
.ia-ok a{display:inline-block;margin-top:1.1rem;font-weight:700;color:#2a871d;text-decoration:underline;text-underline-offset:3px}
@media(prefers-reduced-motion:reduce){.ia-ticket span{transition:none}}
.ia-ok-dag small{display:block;font-size:1rem;font-weight:600;letter-spacing:.02em;margin-top:.2rem}
.ia-uur{font-weight:400;color:#64748b;font-size:.875rem;margin-left:.35rem}
