﻿/* =========================================================
   Homepage: header over de hero, schermvullende hero, projecten
   (alleen geladen op index.html)
   ========================================================= */
:root{
  --hx-navy:#0b2230;
  --hx-cream:#f7f4ef;
  --hx-gold:#d7a26f;
  --hx-gold-2:#e6b985;
  --hx-ink:#10212a;
  --hx-muted:#5f625f;
  --hx-wrap:1400px;
}

/* ---------- Header over de hero (licht plafond: donkere tekst) ---------- */
header.header-overlay{
  position:fixed;left:0;right:0;top:0;
  height:110px;min-height:110px;
  background:transparent;
  border-bottom:1px solid transparent;
  transition:background .25s ease,height .25s ease,box-shadow .25s ease,border-color .25s ease;
}
header.header-overlay.scrolled{
  height:84px;min-height:84px;
  background:rgba(255,255,255,.97);
  border-bottom-color:rgba(16,33,42,.08);
  box-shadow:0 8px 28px rgba(16,33,42,.08);
}
header.header-overlay .shell.header-inner{width:min(1290px,calc(100% - 64px));max-width:none}
header.header-overlay .logo{width:255px;max-width:255px;margin-left:28px}
header.header-overlay .logo img{max-height:104px}
header.header-overlay.scrolled .logo{width:202px;max-width:202px}
header.header-overlay nav{justify-content:flex-end;gap:25px;padding-right:0}
header.header-overlay nav a{color:#1d2a31;font-size:15px;font-weight:600}
header.header-overlay nav a:hover,header.header-overlay nav a.active{color:#c98a52}
header.header-overlay > .shell > .header-cta{
  background:linear-gradient(180deg,var(--hx-gold-2),#d39a63);
  color:var(--hx-navy);
  padding:18px 28px;border-radius:8px;font-size:16px;font-weight:700;
  box-shadow:0 10px 24px rgba(207,150,96,.28);
}
header.header-overlay > .shell > .header-cta:hover{background:linear-gradient(180deg,#ecc391,#d6a06c)}

/* ---------- Hero ---------- */
.hx-hero{
  position:relative;
  box-sizing:border-box;
  min-height:max(100vh,760px);
  padding:144px 0 0;
  display:flex;align-items:center;
  color:#fff;
  /* Achtergrondfoto: ../hero-achtergrond.jpg. Het witte plafond bovenin is
     hoog genoeg dat logo en menu er altijd op vallen. */
  background:var(--hx-navy);
}
.hx-hero::before{
  content:"";position:absolute;inset:0;
  /* Links uitgelijnd: de muur (links in de foto) blijft altijd in beeld;
     bijsnijden gebeurt alleen rechts. */
  background:url('../hero-achtergrond.jpg') left top/cover no-repeat;
  z-index:0;pointer-events:none;
}
.hx-hero > .hx-inner{position:relative;z-index:1}
.hx-inner{
  width:min(var(--hx-wrap),calc(100% - 64px));
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,600px) 521px;
  justify-content:space-between;
  align-items:start;
}
.hx-copy{margin-top:58px}
/* In het ontwerp staat het formulier iets links van de rand. */
@media (min-width:1500px){ .hx-form{transform:translateX(-17px)} }
.hx-eyebrow{
  font-size:13px;letter-spacing:.3em;text-transform:uppercase;font-weight:600;
  color:#fff;margin:0 0 6px;
}
.hx-eyebrow span{color:var(--hx-gold)}
.hx-title{
  font-family:'Playfair Display',Georgia,serif;
  font-weight:700;font-size:88px;line-height:.96;letter-spacing:-.01em;
  margin:0 0 16px;color:#fff;white-space:nowrap;
  text-shadow:0 2px 18px rgba(0,0,0,.18);
}
.hx-title span{
  color:var(--hx-gold);
  background:linear-gradient(100deg,#c98a4b 0%,#e9b97c 30%,#f3cf98 48%,#d9a062 70%,#c58848 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;
}
.hx-lead{font-size:17.5px;line-height:1.6;color:rgba(255,255,255,.95);max-width:500px;margin:0 0 38px}

.hx-perks{list-style:none;margin:0;padding:0;display:flex;align-items:center}
.hx-perks li{display:flex;align-items:center;gap:18px;font-size:14.5px;font-weight:600;line-height:1.4;padding:0 22px;border-left:1px solid rgba(255,255,255,.25)}
.hx-perks li:first-child{padding-left:0;border-left:0}
.hx-ico{
  width:54px;height:54px;border-radius:50%;flex:none;
  border:1.5px solid var(--hx-gold);display:grid;place-items:center;color:var(--hx-gold);
}
.hx-ico svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}

.hx-form{position:relative;z-index:3}
.hx-form .card.qf{
  width:100% !important;
  border-radius:20px;
  box-shadow:0 30px 70px rgba(5,20,28,.30);
  padding:28px 32px 22px;
}
/* Compactere maatvoering, zoals in het ontwerp */
.hx-form .qf-progress{margin-bottom:14px}
.hx-form .qf-step-tag{margin-bottom:6px}
.hx-form .qf-title{font-size:33px;line-height:1.03;margin-bottom:6px}
.hx-form .qf-sub{margin-bottom:12px;font-size:16px}
.hx-form .qf-tab{height:40px;font-size:14px}
.hx-form .qf-tabs-hint{margin:8px 2px 12px;font-size:12.5px}
.hx-form .qf-box{padding:14px 20px 12px;border-radius:14px;margin-bottom:10px}
.hx-form .qf-head{margin-bottom:10px;font-size:13px}
.hx-form .qf-row{grid-template-columns:1fr 141px;gap:12px;margin-bottom:8px}
.hx-form .qf .qf-check,.hx-form .qf-check{min-height:42px;font-size:14.5px;border-radius:9px;gap:14px}
.hx-form .qf-tick{width:22px;height:22px;border-radius:5px}
.hx-form .qf .qf-m2 input,.hx-form .qf-m2 input{height:42px;font-size:14.5px;border-radius:9px}
.hx-form .qf-afw{margin-top:0}
.hx-form .qf-afw select{height:42px;margin-top:9px}
.hx-form .qf-submit{height:54px;margin-top:8px;border-radius:10px;font-size:16px}
.hx-form .qf-fields{gap:10px;margin-top:12px}
.hx-form .qf .qf-fields input{height:48px}
.hx-form .qf-recap{padding:12px 14px}
.hx-form .qf-note{margin-top:12px;font-size:12.5px}

/* ---------- Projecten ---------- */
.hx-projects{background:var(--hx-cream);padding:84px 0 90px}
.hx-proj-inner{width:min(var(--hx-wrap),calc(100% - 64px));margin:0 auto}
.hx-proj-head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:24px}
.hx-proj-head > div{max-width:700px}
.hx-proj-head .hx-all{margin-bottom:12px}
.hx-kicker{font-size:13px;letter-spacing:.3em;text-transform:uppercase;font-weight:600;color:var(--hx-ink);margin-bottom:10px}
.hx-h2{font-family:'Playfair Display',Georgia,serif;font-weight:700;font-size:44px;line-height:1.08;margin:0 0 10px;color:var(--hx-ink);white-space:nowrap}
.hx-h2 span{color:#c48a52}
.hx-proj-head p{margin:0;font-size:17px;line-height:1.45;color:var(--hx-muted);max-width:590px}
.hx-all{
  flex:none;background:none;border:0;padding:0 0 6px;cursor:pointer;
  font:inherit;font-size:15px;font-weight:700;color:var(--hx-ink);
  border-bottom:2px solid var(--hx-gold);display:inline-flex;gap:10px;align-items:center;
}
.hx-all:hover{color:#b07a4a}
.hx-proj-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.hx-proj[hidden]{display:none}
.hx-proj-img{
  position:relative;height:320px;border-radius:10px;background-size:cover;background-position:center;
  box-shadow:0 14px 34px rgba(16,33,42,.10);
}
.hx-tag{
  position:absolute;left:24px;top:20px;background:#fff;color:var(--hx-ink);
  font-size:12px;font-weight:600;padding:6px 12px;border-radius:999px;
  box-shadow:0 4px 12px rgba(0,0,0,.08);
}
.hx-proj h3{margin:16px 0 2px;font-size:18px;color:var(--hx-ink);font-family:'DM Sans',sans-serif}
.hx-proj p{margin:0;font-size:13px;color:#8a8b87}

/* ---------- Kleinere schermen ---------- */
@media (max-width:1400px){
  .hx-title{font-size:76px}
  .hx-inner{grid-template-columns:minmax(0,560px) 500px}
  header.header-overlay nav{gap:22px}
}
@media (max-width:1180px){
  .hx-hero{display:block;min-height:0;padding:150px 0 70px}
  .hx-inner{grid-template-columns:minmax(0,1fr);justify-items:start}
  .hx-copy{margin-top:0;max-width:640px}
  .hx-form{margin-top:40px;width:min(560px,100%)}
  .hx-hero::before{display:none}
  .hx-hero{background:
    linear-gradient(180deg,rgba(9,28,40,.35) 0%,rgba(9,28,40,.45) 35%,rgba(9,28,40,.88) 100%),
    url('../hero-achtergrond.jpg') 25% top/cover no-repeat,
    var(--hx-navy)}
  /* Hier ligt de header niet meer over het plafond: direct een witte balk. */
  header.header-overlay{background:rgba(255,255,255,.97);border-bottom-color:rgba(16,33,42,.08)}
  header.header-overlay .logo{margin-left:0;transform:none}
}
@media (max-width:900px){
  header.header-overlay > .shell > .header-cta{padding:12px 18px;font-size:14px}
}
@media (max-width:760px){
  header.header-overlay,header.header-overlay.scrolled{height:82px;min-height:82px}
  header.header-overlay .shell.header-inner{width:calc(100% - 24px)}
  header.header-overlay .logo,header.header-overlay.scrolled .logo{width:189px;max-width:189px}
  .hx-hero{padding:116px 0 40px;background:
    linear-gradient(180deg,rgba(9,28,40,.55) 0%,rgba(9,28,40,.70) 55%,rgba(9,28,40,.92) 100%),
    url('../hero-achtergrond.jpg') 18% top/cover no-repeat,
    var(--hx-navy)}
  .hx-inner,.hx-proj-inner{width:calc(100% - 32px)}
  .hx-title{font-size:clamp(42px,12vw,58px);white-space:normal}
  .hx-lead{font-size:16px;margin-bottom:26px}
  .hx-perks{flex-wrap:wrap;gap:14px 0}
  .hx-perks li{padding:0 14px;font-size:13px;gap:10px}
  .hx-perks li:nth-child(3){padding-left:0;border-left:0}
  .hx-ico{width:42px;height:42px}
  .hx-ico svg{width:20px;height:20px}
  .hx-form{width:100%;margin-top:30px}
  .hx-form .card.qf{padding:22px 18px 20px}
  .hx-form .qf-row{grid-template-columns:minmax(0,1fr) 112px;gap:8px}
  .hx-form .qf-box{padding:14px 12px 12px}
  .hx-copy{min-width:0;max-width:100%}
  .hx-projects{padding:60px 0 70px}
  .hx-proj-head{flex-direction:column;align-items:flex-start;gap:18px}
  .hx-h2{font-size:34px;white-space:normal}
  .hx-proj-grid{grid-template-columns:1fr}
  .hx-proj-img{height:240px}
}

@media (max-width:380px){
  .hx-form .qf-row{grid-template-columns:minmax(0,1fr) 84px}
  .hx-form .qf .qf-check,.hx-form .qf-check{padding:0 10px;gap:8px;font-size:14px}
  .hx-form .card.qf{padding:20px 14px 18px}
}

/* ---------- Desktop: tekst vast op de blauwe muur ----------
   De foto (1672×941) vult de hero met "cover", linksboven uitgelijnd.
   --u is één foto-pixel in schermpixels; de tekst krijgt positie en maat
   in foto-pixels, zodat hij op elk scherm op dezelfde plek op de muur staat.
   Muurvlak in de foto: bovenrand y ≈ 106 + 0,19·x, onderrand (vloer)
   y ≈ 689 − 0,09·x, rechts begrensd door stoelen/tafel (x ≈ 650 vanaf y 540). */
@media (min-width:1181px){
  .hx-hero{
    --u:max(calc(100vw / 1672), calc(max(100vh, 820px) / 941));
    min-height:max(100vh,820px);
    padding:0;
    align-items:flex-start;
  }
  .hx-hero > .hx-inner{position:static}
  .hx-form{grid-column:2;margin-top:max(120px, calc((max(100vh, 820px) + 144px - 646px) / 2))}

  .hx-copy{
    position:absolute;z-index:1;margin:0;
    left:calc(132 * var(--u));
    top:calc(218 * var(--u));
    width:calc(520 * var(--u));
  }
  .hx-eyebrow{font-size:calc(13 * var(--u));margin-bottom:calc(6 * var(--u))}
  .hx-title{font-size:calc(86 * var(--u));margin-bottom:calc(16 * var(--u))}
  .hx-lead{font-size:calc(17.5 * var(--u));max-width:calc(500 * var(--u));margin-bottom:calc(30 * var(--u))}
  .hx-perks li{font-size:calc(13.5 * var(--u));gap:calc(11 * var(--u));padding:0 calc(15 * var(--u))}
  .hx-perks li:first-child{padding-left:0}
  .hx-ico{width:calc(46 * var(--u));height:calc(46 * var(--u))}
  .hx-ico svg{width:calc(21 * var(--u));height:calc(21 * var(--u))}
}
