/* ============================================================
   TotaalDakConcept – interactieve demo
   Stijl gebaseerd op het originele webdesign
   ============================================================ */

/* ---------- Fonts ---------- */
@font-face{font-family:'Poppins';src:url('../fonts/poppins-400.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Poppins';src:url('../fonts/poppins-500.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'Poppins';src:url('../fonts/poppins-600.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:'Poppins';src:url('../fonts/poppins-700.woff2') format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:'Inter';src:url('../fonts/inter-400.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Inter';src:url('../fonts/inter-500.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'Inter';src:url('../fonts/inter-600.woff2') format('woff2');font-weight:600;font-display:swap}

/* ---------- Tokens ---------- */
:root{
  --navy:#1E2E50;
  --navy-soft:#27355a;
  --orange:#F4AC34;
  --orange-dark:#eaa01f;
  --bg:#F6F6F6;
  --topbar:#DBE0E1;
  --white:#fff;
  --muted:#5b6678;
  --line:#e7e7e7;
  --sel-bg:#eef1f6;
  --radius:16px;
  --radius-sm:12px;
  --shadow:0 18px 40px -22px rgba(30,46,80,.35);
  --shadow-soft:0 8px 22px -14px rgba(30,46,80,.25);
  --maxw:1280px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--bg);
  color:var(--navy);
  font-family:'Inter',system-ui,sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:'Poppins',sans-serif;color:var(--navy);margin:0;line-height:1.15;font-weight:600}

.container{max-width:var(--maxw);margin:0 auto;padding:0 32px}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  font-family:'Poppins',sans-serif;font-weight:500;font-size:15px;
  border:none;cursor:pointer;border-radius:40px;padding:14px 26px;
  transition:transform .15s ease,box-shadow .2s ease,background .2s ease;
}
.btn-orange{background:var(--orange);color:#fff}
.btn-orange:hover{background:var(--orange-dark);transform:translateY(-1px)}
.btn-ghost{background:transparent;color:var(--navy)}
a.btn{text-decoration:none}
.btn-pill{padding:16px 40px;font-weight:600;justify-content:center}
.btn-arrow-circle{
  width:30px;height:30px;border-radius:50%;background:var(--navy);
  display:inline-flex;align-items:center;justify-content:center;margin-right:-8px;
}
.btn-arrow-circle svg{width:14px;height:14px;stroke:var(--orange)}

/* ============================================================
   TOP BAR (marquee)
   ============================================================ */
.topbar{background:var(--topbar);overflow:hidden;border-bottom:1px solid #cfd6d7}
.topbar-track{
  display:flex;width:max-content;gap:0;
  animation:marquee 38s linear infinite;
}
.topbar:hover .topbar-track{animation-play-state:paused}
.topbar-item{
  display:flex;align-items:center;gap:8px;white-space:nowrap;
  padding:9px 28px;font-size:13px;font-weight:500;color:var(--navy);
  font-family:'Poppins',sans-serif;
}
.topbar-item svg{width:14px;height:14px;flex:none;color:var(--orange)}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ============================================================
   HEADER
   ============================================================ */
.header{background:var(--bg)}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:22px 0;gap:24px}
.logo{display:flex;align-items:center;gap:14px}
.logo .puzzle{width:46px;height:46px;flex:none}
.logo-text{font-family:'Poppins',sans-serif;line-height:1}
.logo-text .l1{font-weight:700;font-size:21px;letter-spacing:.5px;color:var(--navy)}
.logo-text .l2{font-weight:700;font-size:21px;letter-spacing:.5px}
.logo-text .l2 .dak{color:#8a93a3}
.logo-text .l2 .concept{color:var(--orange)}

.nav{display:flex;align-items:center;gap:34px}
.nav a{font-family:'Poppins',sans-serif;font-weight:500;font-size:15px;color:var(--navy);transition:color .15s}
.nav a:hover{color:var(--orange)}

/* ============================================================
   HERO (homepage)
   ============================================================ */
.hero-wrap{padding:6px 0 0}
.hero{
  max-width:1640px;margin:0 auto;padding:0 16px;
}
.hero img{width:100%;border-radius:22px;box-shadow:var(--shadow)}

/* ============================================================
   SAMENWERKING SECTION
   ============================================================ */
.section{padding:70px 0}
.split{display:grid;grid-template-columns:0.9fr 1.1fr;gap:64px;align-items:center}
.samen-media{position:relative;padding-left:60px;padding-top:40px}
.samen-media img{border-radius:18px;box-shadow:var(--shadow);width:100%}
.samen-card{
  position:absolute;left:0;top:90px;width:62%;
  background:var(--orange);color:#fff;border-radius:18px;
  padding:26px 26px 60px;box-shadow:var(--shadow-soft);
}
.samen-card h3{color:#fff;font-size:21px;font-weight:600;line-height:1.25}
.samen-card .corner{
  position:absolute;right:22px;bottom:22px;width:46px;height:46px;border-radius:50%;
  background:var(--navy);display:flex;align-items:center;justify-content:center;
}
.samen-card .corner svg{width:18px;height:18px;stroke:#fff}
.samen-text h2{font-size:38px;font-weight:600;margin-bottom:24px;line-height:1.12}
.samen-text p{color:var(--muted);margin:0 0 18px;max-width:520px}

/* ============================================================
   PLATDAKOPLOSSINGEN carousel
   ============================================================ */
.carousel-section{padding:30px 0 10px}
.carousel-section h2{font-size:34px;font-weight:600;margin:0 0 26px}
.carousel{overflow-x:auto;border-radius:14px;-ms-overflow-style:none;scrollbar-width:none}
.carousel::-webkit-scrollbar{display:none}
.carousel img{width:1920px;max-width:none;border-radius:14px}
.carousel-foot{display:flex;justify-content:flex-end;margin-top:18px}
.link-arrow{font-family:'Poppins',sans-serif;font-weight:600;font-size:15px;display:inline-flex;align-items:center;gap:6px;color:var(--navy)}
.link-arrow svg{width:15px;height:15px;stroke:var(--navy)}

/* ============================================================
   FEATURE CARDS
   ============================================================ */
.features{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;padding:50px 0}
.feature{
  background:var(--white);border:1px solid var(--line);border-radius:14px;
  padding:30px 26px;box-shadow:var(--shadow-soft);
}
.feature .ic{width:42px;height:42px;color:var(--navy);margin-bottom:22px}
.feature h3{font-size:18px;font-weight:600;margin-bottom:12px;line-height:1.25}
.feature p{color:var(--muted);font-size:14px;margin:0 0 22px}
.feature .more{font-family:'Poppins',sans-serif;font-weight:600;font-size:13.5px;display:inline-flex;align-items:center;gap:6px}
.feature .more svg{width:13px;height:13px;stroke:var(--navy)}

/* ============================================================
   PROJECT HIGHLIGHT
   ============================================================ */
.project{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;padding:40px 0}
.project img{border-radius:18px;box-shadow:var(--shadow);width:100%}
.tag{
  display:inline-block;background:#fceccb;color:#c98a16;border-radius:30px;
  font-family:'Poppins',sans-serif;font-weight:600;font-size:13px;padding:7px 18px;margin-bottom:18px;
}
.project h2{font-size:38px;font-weight:600;margin-bottom:22px}
.project p{color:var(--muted);margin:0 0 16px;max-width:480px}

/* ============================================================
   PARTNERS
   ============================================================ */
.partners{padding:36px 0}
.partners img{margin:0 auto;width:100%;max-width:1180px}

/* ============================================================
   CLOSING TEXT
   ============================================================ */
.closing{text-align:center;padding:54px 0 80px}
.closing h2{font-size:36px;font-weight:600;max-width:640px;margin:0 auto 26px}
.closing p{color:var(--muted);max-width:880px;margin:0 auto;font-size:15px}

/* ============================================================
   FOOTER
   ============================================================ */
.footer{background:var(--navy);color:#cdd3df;border-radius:34px 34px 0 0;margin-top:10px}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:48px;padding:64px 0 40px}
.footer h4{color:#fff;font-family:'Poppins',sans-serif;font-weight:600;font-size:18px;margin-bottom:20px}
.footer .desc{font-size:14px;line-height:1.7;color:#aeb6c6;max-width:330px}
.footer ul{list-style:none;margin:0;padding:0}
.footer li{margin:9px 0;font-size:14.5px;color:#c3c9d6}
.footer a:hover{color:#fff}
.footer .sub{margin-top:26px}
.socials{display:flex;gap:16px;margin:22px 0}
.socials a{color:var(--orange)}
.socials svg{width:20px;height:20px}
.contact-pills{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px}
.pill{
  display:inline-flex;align-items:center;gap:10px;border:1px solid #41506f;border-radius:30px;
  padding:11px 18px;font-size:14px;color:#dfe3ec;
}
.pill svg{width:16px;height:16px;stroke:var(--orange)}
.footer-bottom{border-top:1px solid #2c3a5e}
.footer-bottom .container{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;padding-top:20px;padding-bottom:24px;font-size:12.5px;color:#8e96a8}

/* ============================================================
   BESTEKSERVICE LAYOUT (steps 2-4)
   ============================================================ */
.bestek{padding:54px 0 70px}
.bestek-grid{display:grid;grid-template-columns:0.85fr 1.15fr;gap:70px;align-items:start}
.bestek-intro .tag2{
  display:inline-block;background:#fceccb;color:#c98a16;border-radius:30px;
  font-family:'Poppins',sans-serif;font-weight:600;font-size:14px;padding:8px 22px;margin-bottom:22px;
}
.bestek-intro h1{font-size:52px;font-weight:600;line-height:1.08;margin-bottom:26px}
.bestek-intro p{color:var(--muted);max-width:430px;margin:0 0 24px}
.howto{color:var(--orange);font-family:'Poppins',sans-serif;font-weight:600;display:inline-flex;align-items:center;gap:9px;font-size:15px}
.howto svg{width:18px;height:18px}

.bestek-action{display:flex;justify-content:flex-end;margin-top:34px}

/* ---- Roof type grid (step 3) ---- */
.roofgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.roofcard{
  background:var(--white);border:1px solid #e9e9e9;border-radius:18px;padding:14px 14px 18px;
  cursor:pointer;text-align:center;transition:border-color .15s,box-shadow .2s,background .2s;
  box-shadow:0 4px 14px -10px rgba(30,46,80,.2);
}
.roofcard:hover{box-shadow:var(--shadow-soft)}
.roofcard img{width:100%;border-radius:12px;aspect-ratio:239/186;object-fit:cover}
.roofcard span{display:block;margin-top:14px;font-family:'Poppins',sans-serif;font-weight:600;font-size:15px;color:var(--navy)}
.roofcard.selected{border:2px solid var(--navy);background:var(--sel-bg);box-shadow:var(--shadow);padding:13px 13px 17px}

/* ---- Accordion (step 4) ---- */
.accordion{display:flex;flex-direction:column;gap:16px}
.acc-item{}
.acc-head{
  width:100%;background:#ededed;border:none;border-radius:14px;cursor:pointer;
  display:flex;align-items:center;justify-content:space-between;gap:18px;
  padding:20px 24px;font-family:'Poppins',sans-serif;text-align:left;transition:background .15s;
}
.acc-head:hover{background:#e7e7e7}
.acc-item.open .acc-head{background:#1E2E50;}
.acc-item.open .acc-head .acc-title,
.acc-item.open .acc-head .acc-value{color:#fff}
.acc-title{font-weight:600;font-size:17px;color:var(--navy);flex:none}
.acc-value{margin-left:auto;margin-right:6px;font-size:14px;color:var(--muted);font-family:'Inter',sans-serif;display:flex;align-items:center;gap:7px}
.acc-value .info{width:15px;height:15px;color:inherit;opacity:.8}
.acc-chevron{width:18px;height:18px;flex:none;transition:transform .25s ease;transform:rotate(90deg)}
.acc-item.open .acc-chevron{transform:rotate(0deg);stroke:#fff}
.acc-head .acc-chevron{stroke:var(--navy)}

.acc-body{padding:18px 4px 6px;display:none}
.acc-item.open .acc-body{display:block;animation:fade .25s ease}
@keyframes fade{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}

/* option cards inside accordion */
.opt-row{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.opt-card{
  background:var(--white);border:1px solid #e7e7e7;border-radius:16px;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;
  padding:30px 16px;text-align:center;transition:border-color .15s,background .2s,box-shadow .2s;
  min-height:150px;box-shadow:0 4px 14px -12px rgba(30,46,80,.2);
}
.opt-card:hover{box-shadow:var(--shadow-soft)}
.opt-card .opt-ic{width:54px;height:54px;color:#9aa3b2;transition:color .15s}
.opt-card .opt-ic.thermo{width:48px;height:48px}
.opt-card span{font-family:'Poppins',sans-serif;font-weight:500;font-size:15px;color:var(--navy)}
.opt-card.selected{border:2px solid var(--navy);background:var(--sel-bg);box-shadow:var(--shadow)}
.opt-card.selected .opt-ic{color:var(--navy)}

/* single display card (gebruiksfunctie) */
.func-card{
  width:200px;background:#fff;border:1px solid #e7e7e7;border-radius:16px;padding:12px 12px 16px;text-align:center;
  box-shadow:var(--shadow-soft);
}
.func-card img{border-radius:10px;width:100%}
.func-card span{display:block;margin-top:12px;font-family:'Poppins',sans-serif;font-weight:600;font-size:14px}

/* simple option pills for demo accordions */
.opt-pills{display:flex;flex-wrap:wrap;gap:12px}
.opt-pill{
  border:1px solid #dcdfe6;background:#fff;border-radius:30px;padding:11px 20px;cursor:pointer;
  font-family:'Poppins',sans-serif;font-weight:500;font-size:14px;color:var(--navy);transition:.15s;
}
.opt-pill:hover{border-color:var(--navy)}
.opt-pill.selected{background:var(--navy);color:#fff;border-color:var(--navy)}

/* ---- Step 2 form ---- */
.form-card{
  background:#fff;border:1px solid var(--line);border-radius:20px;padding:40px 40px 36px;box-shadow:var(--shadow);
}
.form-card h2{font-size:24px;font-weight:600;margin-bottom:8px}
.form-card .lead{color:var(--muted);font-size:15px;margin:0 0 28px}
.field{margin-bottom:22px}
.field label{display:block;font-family:'Poppins',sans-serif;font-weight:500;font-size:14px;margin-bottom:8px;color:var(--navy)}
.field input{
  width:100%;border:1px solid #d8dce3;border-radius:12px;padding:14px 16px;font-size:15px;font-family:'Inter',sans-serif;
  color:var(--navy);background:#fafbfc;transition:border-color .15s,box-shadow .15s;
}
.field input:focus{outline:none;border-color:var(--orange);box-shadow:0 0 0 3px rgba(244,172,52,.18);background:#fff}
.field .hint{font-size:12.5px;color:#9aa3b2;margin-top:6px}
.form-foot{display:flex;justify-content:flex-end;margin-top:6px}
.field.invalid input{border-color:#e2574c;background:#fff}
.field .err{color:#e2574c;font-size:12.5px;margin-top:6px;display:none}
.field.invalid .err{display:block}

.steps-progress{display:flex;gap:8px;margin-bottom:26px}
.steps-progress i{height:5px;flex:1;border-radius:4px;background:#dfe3ea}
.steps-progress i.on{background:var(--orange)}

/* toast */
.toast{
  position:fixed;left:50%;bottom:34px;transform:translateX(-50%) translateY(20px);
  background:var(--navy);color:#fff;padding:15px 26px;border-radius:40px;font-family:'Poppins',sans-serif;
  font-weight:500;font-size:14.5px;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:.3s;z-index:50;
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1024px){
  .nav{display:none}
  .split,.project,.bestek-grid{grid-template-columns:1fr;gap:36px}
  .features{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr}
  .bestek-intro h1{font-size:42px}
  .samen-media{padding-left:0}
  .samen-card{position:static;width:auto;margin-bottom:18px;padding-bottom:26px}
}
@media (max-width:640px){
  .container{padding:0 18px}
  .roofgrid,.opt-row{grid-template-columns:1fr 1fr;gap:14px}
  .features,.footer-grid{grid-template-columns:1fr}
  .bestek-intro h1{font-size:34px}
  .section{padding:44px 0}
  .acc-value{display:none}
}

/* ============================================================
   RESULTS PAGE (step 5)
   ============================================================ */
.result-top{display:flex;justify-content:space-between;align-items:flex-start;gap:40px;flex-wrap:wrap;margin-bottom:42px}
.result-actions{display:flex;flex-direction:column;gap:12px;align-items:flex-end;margin-top:8px}
.result-actions .btn-ghost{font-size:14px;padding:10px 18px}
.result-actions .btn-arrow-circle svg{stroke:var(--orange)}
.badge-demo{display:inline-block;background:#fceccb;color:#c98a16;border-radius:30px;font-family:'Poppins',sans-serif;font-weight:600;font-size:12.5px;padding:7px 16px}

.result-grid{display:grid;grid-template-columns:0.92fr 1.08fr;gap:24px;align-items:start}
.col-stack{display:flex;flex-direction:column;gap:24px}
.result-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:28px 30px;box-shadow:var(--shadow-soft)}
.result-card h3{font-family:'Poppins',sans-serif;font-weight:600;font-size:18px;color:var(--navy);margin-bottom:14px;display:flex;align-items:center;gap:11px}
.rc-dot{width:11px;height:11px;border-radius:3px;background:var(--orange);flex:none}
.result-meta{color:var(--muted);font-size:13px;margin:-4px 0 16px}

.spec-list{display:flex;flex-direction:column}
.spec-row{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid #eef0f3;font-size:14.5px}
.spec-row:last-child{border-bottom:none}
.spec-row .k{color:var(--muted)}
.spec-row .v{font-family:'Poppins',sans-serif;font-weight:500;color:var(--navy);text-align:right}

.table-wrap{overflow-x:auto}
.product-table{width:100%;border-collapse:collapse;font-size:13.5px}
.product-table thead th{background:var(--navy);color:#fff;font-family:'Poppins',sans-serif;font-weight:500;font-size:12.5px;text-align:left;padding:12px 14px}
.product-table thead th:first-child{border-radius:10px 0 0 0}
.product-table thead th:last-child{border-radius:0 10px 0 0}
.product-table thead th.num{text-align:right}
.product-table tbody td{padding:12px 14px;border-bottom:1px solid #eef0f3;color:var(--navy);vertical-align:top}
.product-table tbody tr:nth-child(even){background:#f7f8fa}
.product-table tbody td.num{text-align:right;white-space:nowrap;font-family:'Poppins',sans-serif;font-weight:500}
.prod-name{font-family:'Poppins',sans-serif;font-weight:500}
.prod-type{color:var(--muted);font-size:11.5px}

@media (max-width:1024px){
  .result-grid{grid-template-columns:1fr}
  .result-top{gap:24px}
  .result-actions{align-items:flex-start}
}
