:root{
  --ink:#0f1720;--ink-2:#161f29;--paper:#f5f5f2;--white:#fff;--muted:#818993;--line:rgba(255,255,255,.16);
  --line-dark:rgba(15,23,32,.14);--blue:#7898b7;--yellow:#ffc20e;--max:1440px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--paper);color:var(--ink);font-size:16px;line-height:1.55}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button,input,textarea{font:inherit}.wrap{width:min(calc(100% - 64px),var(--max));margin:auto}.eyebrow{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;font-weight:700}.eyebrow:after{content:"";display:block;width:34px;height:2px;background:var(--yellow);margin-top:13px}.display{font-weight:400;line-height:.95;letter-spacing:.02em;margin:0;font-size:clamp(2.5rem,7.6vw,8.4rem)}.section-title{font-size:clamp(2.2rem,4.2vw,5rem);font-weight:400;line-height:1.03;letter-spacing:-.025em;margin:.35em 0}.lead{font-size:clamp(1.1rem,1.6vw,1.45rem);max-width:720px;color:#4a5057}.btn{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;padding:15px 21px;border:1px solid currentColor;text-transform:uppercase;font-size:.74rem;letter-spacing:.08em;font-weight:700;min-width:190px}.btn.yellow{background:var(--yellow);color:#111;border-color:var(--yellow)}.btn.dark{background:var(--ink);color:white}.btn{transition:transform .18s ease,background-color .18s ease,color .18s ease}.btn:hover{transform:translateY(-1px)}
.header{position:absolute;left:0;right:0;top:0;z-index:20;color:white}.header .inner{height:112px;display:grid;grid-template-columns:260px 1fr auto;align-items:center;gap:32px}.brand img{width:210px}.nav{display:flex;justify-content:center;gap:34px;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em}.nav a{opacity:.86}.nav a:hover,.nav a.active{opacity:1}.lang{font-size:.72rem;margin-right:20px}.head-actions{display:flex;align-items:center}.menu-btn{display:none;background:none;border:1px solid rgba(255,255,255,.35);color:#fff;padding:10px 12px}
.hero{min-height:820px;background:linear-gradient(90deg,rgba(8,13,18,.94) 0%,rgba(8,13,18,.72) 38%,rgba(8,13,18,.12) 75%),url('../img/hero-architecture.svg') center/cover no-repeat;color:white;display:flex;align-items:flex-end;padding:170px 0 86px}.hero .copy{max-width:760px}.hero .display{font-size:clamp(2.6rem,7vw,7rem)}.hero h2{font-size:clamp(1.45rem,2.3vw,2.45rem);font-weight:400;margin:32px 0 15px}.hero p{max-width:560px;color:rgba(255,255,255,.78)}.hero-actions{display:flex;gap:12px;margin-top:32px}.hero-meta{display:flex;gap:40px;margin-top:72px;color:rgba(255,255,255,.62);font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}.hero-meta b{color:white;font-weight:400}
.intro{padding:120px 0}.intro-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:100px;align-items:start}.intro .section-title{max-width:760px}.intro .side{padding-top:60px}.intro .side p{font-size:1.16rem;color:#525860}.text-link{text-transform:uppercase;letter-spacing:.09em;font-size:.72rem;font-weight:700;display:inline-flex;gap:20px;margin-top:24px}
.solutions{background:#fff;padding:100px 0}.section-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:52px}.solutions-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line-dark);border-left:1px solid var(--line-dark)}.solution-card{min-height:260px;padding:34px;border-right:1px solid var(--line-dark);border-bottom:1px solid var(--line-dark);display:flex;flex-direction:column;justify-content:space-between;transition:.2s}.solution-card:hover{background:#f0f1ef}.num{color:#8a9095;font-size:.72rem}.solution-card h3{font-size:1.48rem;font-weight:400;margin:30px 0 10px}.solution-card p{color:#636970;max-width:340px}.arrow{font-size:1.4rem}
.projects{padding:110px 0}.project-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:18px}.project-card{height:560px;position:relative;overflow:hidden;color:white;background:#111}.project-card img{width:100%;height:100%;object-fit:cover;filter:brightness(.78);transition:.45s}.project-card:hover img{transform:scale(1.025);filter:brightness(.66)}.project-card .overlay{position:absolute;inset:0;background:linear-gradient(0deg,rgba(8,13,18,.9),transparent 58%)}.project-card .info{position:absolute;left:28px;right:28px;bottom:28px}.project-card h3{font-size:1.55rem;margin:5px 0;font-weight:400}.project-card p{color:rgba(255,255,255,.7);font-size:.92rem}.project-card small{letter-spacing:.12em;text-transform:uppercase}.project-card .spec{display:flex;gap:16px;font-size:.73rem;margin-top:18px;color:rgba(255,255,255,.62)}
.architects{background:var(--ink);color:white;padding:110px 0;overflow:hidden}.architect-grid{display:grid;grid-template-columns:1fr 1.2fr;min-height:590px}.architect-copy{padding-right:80px;display:flex;flex-direction:column;justify-content:center}.architect-copy p{color:rgba(255,255,255,.68)}.architect-img{background:linear-gradient(90deg,var(--ink),transparent 20%),url('../img/engineering.svg') center/cover no-repeat}.feature-row{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin:32px 0}.feature{font-size:.82rem;color:rgba(255,255,255,.76);border-top:1px solid var(--line);padding-top:15px}
.cta{background:#0b1117;color:white;min-height:540px;display:flex;align-items:center;position:relative;overflow:hidden}.cta:after{content:"";position:absolute;inset:0 0 0 48%;background:linear-gradient(90deg,#0b1117 0%,transparent 45%),url('../img/facade-dark.svg') center/cover no-repeat;opacity:.66}.cta .content{position:relative;z-index:2;max-width:700px;padding:105px 0}.cta p{color:rgba(255,255,255,.68)}
.footer{background:#0d0f10;color:white;padding:76px 0 26px}.footer-grid{display:grid;grid-template-columns:1.6fr .8fr .8fr 1fr;gap:50px;padding-bottom:70px}.footer-logo img{width:220px}.footer-nav{display:flex;flex-direction:column;gap:10px;font-size:.85rem}.footer-nav a{color:rgba(255,255,255,.82)}.footer-contact a{font-weight:700}.footer-contact p{color:rgba(255,255,255,.55);font-size:.85rem}.footer-bottom{border-top:1px solid var(--line);padding-top:22px;display:flex;justify-content:space-between;gap:25px;color:rgba(255,255,255,.52);font-size:.72rem}.footer-bottom div{display:flex;gap:25px}
.page-hero{background:#0d141b;color:white;padding:190px 0 95px}.page-hero .lead{color:rgba(255,255,255,.62)}.breadcrumb{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:rgba(255,255,255,.55);margin-bottom:60px}.page-content{padding:100px 0}.category-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line-dark);border:1px solid var(--line-dark)}.category{background:white;padding:50px;min-height:360px;display:flex;flex-direction:column;justify-content:space-between}.category h2{font-size:2rem;font-weight:400}.category p{color:#5f666d;max-width:560px}.category .meta{font-size:.75rem;color:#7d848b;text-transform:uppercase;letter-spacing:.1em}
.project-hero{min-height:850px;background:linear-gradient(0deg,rgba(7,12,18,.84),rgba(7,12,18,.08) 65%),url('../img/project-2.svg') center/cover no-repeat;color:white;display:flex;align-items:flex-end;padding-bottom:78px}.project-hero .title{font-size:clamp(2.4rem,6.2vw,6.8rem);font-weight:400;line-height:.98;margin:0}.project-hero p{font-size:1.2rem;color:rgba(255,255,255,.72)}.project-meta{padding:48px 0;background:white}.meta-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.meta-item span{display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.13em;color:#858b91;margin-bottom:8px}.project-story{padding:110px 0}.story-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px}.story-grid h2{font-size:3rem;font-weight:400}.story-grid p{color:#565d64}.tech-table{margin-top:45px;border-top:1px solid var(--line-dark)}.tech-row{display:grid;grid-template-columns:220px 1fr;padding:17px 0;border-bottom:1px solid var(--line-dark)}.tech-row b{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em}.project-gallery{display:grid;grid-template-columns:1.2fr .8fr;gap:14px;padding-bottom:110px}.project-gallery img{width:100%;height:590px;object-fit:cover}.project-gallery img:last-child{filter:saturate(.8) brightness(.86)}.note{font-size:.78rem;color:#727980;border-left:2px solid var(--yellow);padding-left:14px;margin-top:24px}
.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:28px}.contact-form input,.contact-form textarea{width:100%;background:transparent;border:1px solid rgba(255,255,255,.23);color:white;padding:15px}.contact-form textarea{grid-column:1/-1;min-height:120px}.contact-form .btn{grid-column:1/-1;width:max-content}
@media(max-width:960px){.wrap{width:min(calc(100% - 36px),var(--max))}.header .inner{grid-template-columns:1fr auto;height:84px}.brand img{width:180px}.nav,.head-actions .lang,.head-actions .btn{display:none}.menu-btn{display:block}.nav.open{display:flex;position:absolute;top:84px;left:18px;right:18px;background:#101820;flex-direction:column;padding:24px;gap:18px}.hero{min-height:720px;padding-bottom:58px}.hero-actions{flex-direction:column;align-items:flex-start}.intro-grid,.architect-grid,.story-grid{grid-template-columns:1fr;gap:45px}.intro .side{padding-top:0}.solutions-grid{grid-template-columns:1fr 1fr}.project-grid{grid-template-columns:1fr}.project-card{height:480px}.architect-copy{padding-right:0}.architect-img{min-height:420px}.footer-grid{grid-template-columns:1fr 1fr}.page-hero{padding-top:150px}.category-grid{grid-template-columns:1fr}.meta-grid{grid-template-columns:1fr 1fr}.project-gallery{grid-template-columns:1fr}.project-gallery img{height:460px}}
@media(max-width:600px){.solutions-grid,.footer-grid,.meta-grid{grid-template-columns:1fr}.section-head,.footer-bottom{align-items:flex-start;flex-direction:column}.hero-meta{flex-direction:column;gap:10px}.feature-row{grid-template-columns:1fr}.contact-form{grid-template-columns:1fr}.contact-form textarea,.contact-form .btn{grid-column:auto}.project-hero{min-height:680px}.project-gallery img{height:360px}.tech-row{grid-template-columns:1fr;gap:6px}}
.portfolio-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.portfolio-grid .project-card{height:500px}.portfolio-grid .project-card .info{left:22px;right:22px;bottom:22px}.portfolio-grid .project-card h3{font-size:1.3rem}
@media(max-width:1180px){.portfolio-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.portfolio-grid{grid-template-columns:1fr}.portfolio-grid .project-card{height:470px}}
.solution-detail{padding:110px 0;background:var(--paper)}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px}.detail-copy{padding-top:55px;font-size:1.12rem;color:#565d64}.criteria{background:#fff;padding:95px 0}.criteria-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:90px}.criteria h2{font-size:clamp(2rem,3.4vw,3.8rem);font-weight:400;margin:.35em 0}.criteria ul{list-style:none;padding:0;margin:0;border-top:1px solid var(--line-dark)}.criteria li{padding:18px 0;border-bottom:1px solid var(--line-dark);font-size:1.05rem}.process-block{padding:110px 0}.process-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line-dark);margin-top:45px}.process-step{padding:28px 28px 28px 0;border-right:1px solid var(--line-dark);min-height:190px}.process-step:not(:first-child){padding-left:28px}.process-step span{font-size:.72rem;color:#858b91;letter-spacing:.1em}.process-step p{font-size:1.05rem;margin-top:55px}.related-project{background:#fff;padding:100px 0}.related-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:70px;align-items:center}.related-grid img{width:100%;height:620px;object-fit:cover}.related-grid h2{font-size:clamp(2rem,3.6vw,4rem);font-weight:400}.related-grid p{color:#5d646c}.project-p01{background:linear-gradient(0deg,rgba(7,12,18,.84),rgba(7,12,18,.1) 60%),url('../img/instagram-projects/P01_dark_pavilion.jpg') center/cover no-repeat}.project-gallery.single{display:block;padding:0}.project-gallery.single img{height:min(76vw,900px)}.project-brief{padding:100px 0;background:white}.brief-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px}.brief-grid h2{font-size:clamp(2rem,3.2vw,3.7rem);font-weight:400}.brief-list p{border-top:1px solid var(--line-dark);padding:15px 0;margin:0}.service-matrix{padding:100px 0}.matrix-grid{display:grid;grid-template-columns:repeat(3,1fr);border-left:1px solid var(--line-dark);border-top:1px solid var(--line-dark)}.matrix-grid>div{padding:36px;border-right:1px solid var(--line-dark);border-bottom:1px solid var(--line-dark);min-height:240px;background:white}.matrix-grid span{font-size:.72rem;color:#858b91}.matrix-grid h3{font-size:1.45rem;font-weight:400;margin:40px 0 10px}.matrix-grid p{color:#61686f}.contact-page{padding:110px 0}.contact-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:90px}.project-form{display:grid;grid-template-columns:1fr 1fr;gap:18px}.project-form label{display:flex;flex-direction:column;gap:8px;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}.project-form input,.project-form textarea,.project-form select{padding:15px 14px;border:1px solid var(--line-dark);background:white;color:var(--ink)}.project-form .wide{grid-column:1/-1}.project-form .consent{display:block;text-transform:none;letter-spacing:0}.project-form .consent input{margin-right:8px}.form-status{font-size:.85rem;color:#5b6269}.social-link{display:block;margin-top:16px;color:rgba(255,255,255,.75);font-size:.8rem}
@media(max-width:960px){.detail-grid,.criteria-grid,.related-grid,.brief-grid,.contact-grid{grid-template-columns:1fr;gap:45px}.detail-copy{padding-top:0}.process-grid,.matrix-grid{grid-template-columns:1fr 1fr}.related-grid img{height:480px}}
@media(max-width:600px){.process-grid,.matrix-grid,.project-form{grid-template-columns:1fr}.process-step,.process-step:not(:first-child){padding:24px 0}.project-form .wide{grid-column:auto}.related-grid img{height:360px}}

/* Phase 6: REHAU PVC systems */
.solution-card.rehau-card{grid-column:1/-1;min-height:220px;background:var(--ink);color:#fff;display:grid;grid-template-columns:90px 1fr auto;gap:34px;align-items:center}.solution-card.rehau-card:hover{background:#121c25}.solution-card.rehau-card .num{color:var(--yellow)}.solution-card.rehau-card h3{margin:0 0 8px;font-size:1.7rem}.solution-card.rehau-card p{color:rgba(255,255,255,.68);max-width:760px;margin:0}.solution-card.rehau-card .arrow{font-size:2rem}
.rehau-hero{background:#111820;color:#fff;padding:190px 0 105px}.rehau-hero .lead{color:rgba(255,255,255,.66);max-width:800px}.rehau-badge{display:inline-flex;align-items:center;gap:12px;border:1px solid rgba(255,255,255,.22);padding:10px 14px;margin-top:24px;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase}.rehau-badge:before{content:"";width:26px;height:3px;background:var(--yellow)}
.systems-section{padding:105px 0;background:#fff}.system-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line-dark);border:1px solid var(--line-dark)}.system-card{background:#fff;padding:42px;min-height:330px;display:flex;flex-direction:column}.system-card .system-name{font-size:clamp(1.7rem,2.4vw,2.8rem);font-weight:400;margin:12px 0}.system-card .system-kicker{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:#858b91}.system-card p{color:#5d646b;max-width:620px}.system-specs{display:grid;grid-template-columns:repeat(2,1fr);gap:0 20px;border-top:1px solid var(--line-dark);margin-top:auto;padding-top:18px}.system-specs div{padding:9px 0;border-bottom:1px solid var(--line-dark)}.system-specs span{display:block;font-size:.66rem;text-transform:uppercase;letter-spacing:.08em;color:#8a9095}.system-specs b{font-size:.92rem;font-weight:500}.system-note{font-size:.74rem;color:#7b8289;margin-top:18px}
.compare-section{padding:105px 0}.compare-wrap{overflow:auto;background:#fff;border:1px solid var(--line-dark)}.compare-table{width:100%;border-collapse:collapse;min-width:920px}.compare-table th,.compare-table td{padding:18px 20px;text-align:left;border-bottom:1px solid var(--line-dark);border-right:1px solid var(--line-dark);vertical-align:top}.compare-table th{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:#737a81;font-weight:700}.compare-table td:first-child{font-weight:700}.compare-table tr:last-child td{border-bottom:0}
.local-seo{padding:105px 0;background:#fff}.local-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:90px}.local-grid .copy p{font-size:1.06rem;color:#575e65}.local-grid .bullets{border-top:1px solid var(--line-dark)}.local-grid .bullets div{padding:18px 0;border-bottom:1px solid var(--line-dark)}.city-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}.city-links .btn{min-width:auto}
.city-hero{background:#10171f;color:#fff;padding:190px 0 95px}.city-hero .lead{color:rgba(255,255,255,.66)}.city-service{padding:100px 0}.city-service-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line-dark);border-left:1px solid var(--line-dark)}.city-service-grid article{background:#fff;padding:30px;border-right:1px solid var(--line-dark);border-bottom:1px solid var(--line-dark);min-height:220px}.city-service-grid h3{font-size:1.3rem;font-weight:400}.city-service-grid p{color:#656c73}.seo-copy{padding:100px 0;background:#fff}.seo-copy .text-columns{display:grid;grid-template-columns:1fr 1fr;gap:80px}.seo-copy h2{font-size:clamp(2rem,3.3vw,3.8rem);font-weight:400;margin-top:0}.seo-copy h3{font-size:1.5rem;font-weight:400;margin-top:40px}.seo-copy p{color:#565d64}.seo-copy ul{padding-left:20px;color:#565d64}
@media(max-width:960px){.solution-card.rehau-card{grid-template-columns:1fr}.system-grid,.local-grid,.seo-copy .text-columns{grid-template-columns:1fr}.city-service-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.system-grid,.city-service-grid{grid-template-columns:1fr}.system-specs{grid-template-columns:1fr}.solution-card.rehau-card{padding:28px}}

/* Phase 7 — Reynaers catalogue */
.reynaers-hero{
  min-height:760px;
  display:flex;
  align-items:flex-end;
  padding:190px 0 92px;
  background:
    linear-gradient(90deg,rgba(7,13,18,.97) 0%,rgba(7,13,18,.89) 34%,rgba(7,13,18,.48) 58%,rgba(7,13,18,.16) 78%,rgba(7,13,18,.20) 100%),
    linear-gradient(0deg,rgba(7,13,18,.42),rgba(7,13,18,.05) 62%),
    url('../img/reynaers/reynaers-hero.jpg') 66% center/cover no-repeat;
}
.reynaers-hero .wrap{position:relative;z-index:1}
.reynaers-hero .lead{color:rgba(255,255,255,.76);max-width:760px}
.reynaers-hero .display{max-width:780px;text-shadow:0 2px 24px rgba(0,0,0,.18)}
.reynaers-city{
  background:
    linear-gradient(90deg,rgba(7,13,18,.96) 0%,rgba(7,13,18,.83) 44%,rgba(7,13,18,.36) 72%,rgba(7,13,18,.22) 100%),
    url('../img/reynaers/reynaers-hero.jpg') 70% center/cover no-repeat;
}
@media(max-width:960px){.reynaers-hero{min-height:680px;background-position:62% center}.reynaers-hero .display{font-size:clamp(2.4rem,11vw,6rem)}}
@media(max-width:600px){.reynaers-hero{min-height:650px;padding:145px 0 70px;background-position:68% center}.reynaers-hero .lead{font-size:1rem}}
.reynaers-intro{padding:96px 0;background:#eef0ef}.reynaers-intro-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:90px}.reynaers-intro-grid>div:last-child{padding-top:42px}.city-links{display:flex;gap:26px;flex-wrap:wrap}
.system-group{padding:96px 0}.system-group:nth-of-type(even){background:#fff}.system-group-head{margin-bottom:36px}.systems-photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.sys-card{background:#fff;border:1px solid var(--line-dark);display:flex;flex-direction:column;min-height:530px;transition:.22s}.system-group:nth-of-type(even) .sys-card{background:#f7f7f4}.sys-card:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(15,23,32,.08)}.sys-img{height:235px;position:relative;background:linear-gradient(135deg,#e9ecee,#f7f7f5);overflow:hidden;display:flex;align-items:center;justify-content:center}.sys-img img{width:100%;height:100%;object-fit:contain;padding:18px;mix-blend-mode:multiply}.img-badge{position:absolute;left:14px;bottom:12px;background:rgba(15,23,32,.88);color:#fff;padding:6px 9px;font-size:.56rem;letter-spacing:.13em}.sys-body{padding:27px 28px 30px;display:flex;flex:1;flex-direction:column}.sys-kicker{font-size:.65rem;text-transform:uppercase;letter-spacing:.12em;color:#727a81;margin:0}.sys-body h3{font-size:1.65rem;font-weight:400;margin:10px 0}.sys-body>p{color:#5d646b}.sys-body ul{padding-left:18px;color:#6d747b;font-size:.84rem}.sys-body .text-link{margin-top:auto}.status-chip{display:inline-block;background:#ece3c8;color:#69531c;padding:2px 6px;margin-left:6px;font-size:.52rem}
.system-hero{background:#0e151c;color:#fff;padding:180px 0 85px}.system-hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:70px;align-items:center}.system-hero .display{font-size:clamp(2.4rem,6vw,6.3rem)}.system-hero .lead{color:rgba(255,255,255,.65)}.system-profile-visual{min-height:470px;background:#f0f2f1;display:flex;align-items:center;justify-content:center;position:relative;padding:34px}.system-profile-visual img{max-height:390px;object-fit:contain;mix-blend-mode:multiply}.system-profile-visual small{position:absolute;bottom:14px;left:18px;color:#727980;font-size:.64rem}.system-detail-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:90px}.system-detail-grid h2{font-size:clamp(2rem,3.2vw,3.4rem);font-weight:400}.spec-panel{border-top:2px solid var(--ink);padding-top:24px}.spec-panel li{margin:10px 0}.muted{color:#737b82;font-size:.85rem}.official-link{display:inline-block;margin-top:18px;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid currentColor}.source-note{background:#f3ead2;padding:18px;border-left:3px solid var(--yellow)}
.city-split{background:#fff;padding:85px 0}.city-cards{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line-dark)}.city-cards a{background:#f6f6f3;padding:40px;min-height:230px}.city-cards span{font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;color:#737b82}.city-cards h3{font-size:1.6rem;font-weight:400}
.brand-systems{padding:100px 0;background:#eceeed}.brand-systems-lead{max-width:460px;color:#5e666d}.brand-system-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:14px}.brand-system-card{padding:48px;min-height:330px;background:#fff;border:1px solid var(--line-dark);display:flex;flex-direction:column}.brand-system-card.dark{background:#111a22;color:#fff}.brand-system-card>span{font-size:.65rem;letter-spacing:.14em;color:#8a9299}.brand-system-card h3{font-size:2.4rem;font-weight:400;margin:26px 0 12px}.brand-system-card p{max-width:620px;color:#6d747b}.brand-system-card.dark p{color:rgba(255,255,255,.62)}.brand-system-card strong{margin-top:auto;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}.catalog-link-band{padding:70px 0;background:#e8eae9}.catalog-link-band h2{font-size:2.2rem;font-weight:400}
.category-featured{background:#0f1720!important;color:white!important}.category-featured p{color:rgba(255,255,255,.62)!important}.category-featured .meta{color:var(--yellow)!important}
@media(max-width:960px){.systems-photo-grid{grid-template-columns:1fr 1fr}.reynaers-intro-grid,.system-hero-grid,.system-detail-grid{grid-template-columns:1fr}.system-profile-visual{min-height:360px}.brand-system-grid{grid-template-columns:1fr}.city-cards{grid-template-columns:1fr}}
@media(max-width:600px){.systems-photo-grid{grid-template-columns:1fr}.sys-card{min-height:0}.sys-img{height:220px}.system-hero{padding-top:145px}.city-links{flex-direction:column}.brand-system-card{padding:32px}}

.lang a{color:inherit;text-decoration:none;opacity:.65}.lang a:hover{opacity:1}.active-lang{color:#ffc400;font-weight:700}.lang{white-space:nowrap}

/* Phase 9 — home hero + city SEO */
.hero-v2{min-height:850px;background:linear-gradient(90deg,rgba(6,11,16,.96) 0%,rgba(6,11,16,.78) 38%,rgba(6,11,16,.24) 70%,rgba(6,11,16,.32) 100%),linear-gradient(0deg,rgba(6,11,16,.72) 0%,transparent 42%),url('../img/instagram-projects/P01_dark_pavilion.jpg') 64% center/cover no-repeat;display:flex;align-items:flex-end;padding:180px 0 74px;color:#fff}
.hero-v2-grid{display:grid;grid-template-columns:1fr 390px;gap:72px;align-items:end}.hero-v2 .copy{max-width:800px}.hero-v2 .display{font-size:clamp(2.4rem,8.4vw,7.2rem)}.hero-lead{max-width:650px!important;font-size:clamp(1rem,1.35vw,1.25rem);color:rgba(255,255,255,.82)!important}.hero-location{font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;color:#fff!important}.hero-location span{color:var(--yellow);margin:0 9px}.hero-v2-side{border-left:1px solid rgba(255,255,255,.24);padding-left:28px;display:grid;gap:18px}.hero-v2-fact{display:grid;grid-template-columns:30px 1fr;gap:2px 12px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.16)}.hero-v2-fact span{grid-row:1/3;color:var(--yellow);font-size:.65rem;letter-spacing:.12em;padding-top:4px}.hero-v2-fact b{font-size:.86rem;font-weight:500;text-transform:uppercase;letter-spacing:.06em}.hero-v2-fact small{color:rgba(255,255,255,.58)}
.city-seo-band{padding:100px 0;background:#eef0ef}.city-hub-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line-dark)}.city-hub-grid a{background:#fff;padding:44px;min-height:280px;display:flex;flex-direction:column}.city-hub-grid span{font-size:.65rem;letter-spacing:.14em;color:#7b838a}.city-hub-grid h3{font-size:2.2rem;font-weight:400;margin:22px 0 8px}.city-hub-grid p{color:#5e666d;max-width:560px}.city-hub-grid strong{margin-top:auto;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}
@media(max-width:960px){.hero-v2-grid{grid-template-columns:1fr}.hero-v2-side{max-width:620px}.city-hub-grid{grid-template-columns:1fr}}@media(max-width:600px){.hero-v2{min-height:760px;background-position:58% center;padding-top:145px}.hero-v2-side{display:none}.hero-v2 .hero-actions{flex-direction:column;align-items:flex-start}.hero-v2 .btn{width:100%;max-width:310px}}
/* Phase 9 — profile image rendering fix */
.sys-img{background:#fff}
.sys-img img{object-fit:contain!important;mix-blend-mode:normal!important;padding:12px!important;max-width:100%;max-height:100%}
.system-profile-visual{background:#fff}
.system-profile-visual img{mix-blend-mode:normal!important;object-fit:contain!important}
.rehau-visual-audit .sys-card{min-height:460px}
.rehau-visual-audit .sys-img{height:230px}

/* Phase 10 — SEO expansion + media QA */
.city-quick-links{display:flex;gap:14px;flex-wrap:wrap;margin-top:22px;padding-top:18px;border-top:1px solid #e2e4e3}.city-quick-links a{font-size:.68rem;text-transform:uppercase;letter-spacing:.06em}.faq-section{padding:92px 0;background:#fff}.faq-list{max-width:980px}.faq-item{border-top:1px solid #d7dad8;padding:0}.faq-item:last-child{border-bottom:1px solid #d7dad8}.faq-item summary{cursor:pointer;list-style:none;padding:24px 36px 24px 0;font-size:1.05rem;position:relative}.faq-item summary:after{content:'+';position:absolute;right:4px;top:20px;font-size:1.5rem;font-weight:300}.faq-item[open] summary:after{content:'–'}.faq-item p{max-width:760px;color:#60686e;padding:0 0 24px;margin:0}.media-fallback-active .sys-img:after{content:'MEDIA';position:absolute;right:12px;bottom:12px;background:#17212b;color:#fff;font-size:.55rem;letter-spacing:.12em;padding:6px 8px}.sys-img{position:relative}.rehau-visual-audit .lead{max-width:900px;color:#656d72}.seo-copy h3{margin-top:28px}.seo-copy ul{display:grid;gap:9px;padding-left:20px}


/* ================= Phase 11 — a11y, mobile overflow, focus ================= */

/* A-01 — no page may scroll sideways; long single words wrap instead */
html,body{overflow-x:clip}
.display,.section-title,.project-hero .title,h1,h2,h3{overflow-wrap:break-word}

/* C-04 — visible keyboard focus (was completely absent) */
a:focus-visible,button:focus-visible,input:focus-visible,
select:focus-visible,textarea:focus-visible,summary:focus-visible,
[tabindex]:focus-visible{
  outline:2px solid var(--yellow);
  outline-offset:3px;
  border-radius:1px;
}
.header a:focus-visible,.footer a:focus-visible,
.hero a:focus-visible,.cta a:focus-visible,
.project-card:focus-visible,.city-hub-grid a:focus-visible{outline-color:var(--yellow)}
/* older engines: never leave focus invisible */
a:focus,button:focus{outline-color:var(--yellow)}

/* C-04 — skip to content */
.skip-link{
  position:absolute;left:16px;top:-64px;z-index:100;
  background:var(--yellow);color:#111;
  padding:12px 18px;font-size:.74rem;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;
  transition:top .16s ease;
}
.skip-link:focus{top:16px}

/* C-04 — respect reduced motion */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
  .project-card:hover img{transform:none}
  .sys-card:hover{transform:none}
  .btn:hover{transform:none}
}

/* C-05 — footer link tap targets (were 17-21px) */
.footer-nav{gap:0}
.footer-nav a{padding:9px 0}
.footer-bottom div a{padding:8px 0}
.text-link{padding:8px 0}

/* A-02 — status chip now carries a customer-facing label, not a workflow state */
.status-chip{
  background:transparent;border:1px solid rgba(15,23,32,.22);
  color:#69707a;padding:2px 7px;font-size:.55rem;
  letter-spacing:.08em;text-transform:uppercase;
}

/* A-03 — schematic profile drawings read as drawings, not as failed photos */
.system-profile-visual img[src$=".svg"]{max-height:300px;opacity:.9}
.system-profile-visual small{max-width:80%;line-height:1.4}

/* C-05 — city hub card: the quick links are siblings of the main link now,
   so they stop inheriting the card's 44px padding and white block display */
.city-hub-grid>.city-hub-card{
  background:#fff;padding:44px;min-height:280px;
  display:flex;flex-direction:column;
}
.city-hub-grid .city-hub-main{
  background:none;padding:0;min-height:0;
  display:flex;flex-direction:column;flex:1;
}
.city-hub-grid .city-quick-links a{
  background:none;padding:8px 0;min-height:0;display:inline-block;
}
@media(max-width:600px){.city-hub-grid>.city-hub-card{padding:30px}}

/* ===================== DENSITY PASS (proposal) =====================
   Same content, fewer screens. Three levers, in order of effect:
   1. sections stop being one-screen-each
   2. heroes become viewport-relative instead of fixed px
   3. cards lose dead vertical space
   ==================================================================== */

/* --- 1. vertical rhythm: one scale instead of 96/100/105/110/120 --- */
:root{--band:clamp(56px,6vw,88px);--band-tight:clamp(40px,4.4vw,64px)}
.intro,.solutions,.projects,.brand-systems,.city-seo-band,.architects,
.systems-section,.compare-section,.local-seo,.city-service,.seo-copy,
.page-content,.solution-detail,.criteria,.process-block,.related-project,
.project-story,.service-matrix,.contact-page,.reynaers-intro,.system-group,
.faq-section,.city-split,.catalog-link-band,.city-strip{
  padding-top:var(--band);padding-bottom:var(--band);
}

/* --- 2. heroes: tie to the viewport so the next section always peeks --- */
.hero,.hero-v2{min-height:min(760px,88vh);padding:clamp(120px,15vh,170px) 0 clamp(48px,6vh,74px)}
.page-hero,.city-hero,.rehau-hero{padding:clamp(130px,16vh,175px) 0 clamp(52px,6vh,80px)}
.reynaers-hero{min-height:min(660px,80vh);padding:clamp(140px,17vh,180px) 0 clamp(52px,6vh,84px)}
.system-hero{padding:clamp(126px,15vh,165px) 0 clamp(48px,6vh,72px)}
.project-hero{min-height:min(720px,84vh)}
.hero-meta{margin-top:clamp(28px,5vh,58px)}

/* --- 3. the merged solutions header carries the old intro copy --- */
.section-head-lead{align-items:start}
.section-head-lead .head-side{max-width:440px;padding-top:14px}
.section-head-lead .head-side p{color:#525860;margin:0 0 4px}

/* --- 4. cards: trim dead space, not information --- */
.solution-card{min-height:212px;padding:28px}
.solution-card h3{margin:22px 0 8px}
.project-card{height:460px}
.brand-system-card{min-height:250px;padding:38px}
.brand-system-card h3{margin:18px 0 10px}
.architect-grid{min-height:440px}
.architect-copy{padding-right:56px}
.feature-row{margin:24px 0}
.cta{min-height:auto}
.cta .content{padding:clamp(56px,7vw,84px) 0}
.category{min-height:280px;padding:38px}
.city-service-grid article{min-height:180px}
.matrix-grid>div{min-height:190px}
.process-step{min-height:150px}

/* --- 5. city SEO: a link strip instead of two 280px cards --- */
.city-strip{background:#eef0ef}
.city-strip-head{margin-bottom:34px}
.city-strip-head .section-title{margin:.25em 0 0;max-width:18ch}
.city-strip-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line-dark);
  border-top:1px solid var(--line-dark);border-bottom:1px solid var(--line-dark)}
.city-col{background:#fff;padding:30px 34px;display:flex;flex-direction:column;gap:2px}
.city-col a{padding:7px 0;color:#5e666d;font-size:.94rem}
.city-col a:hover{color:var(--ink)}
.city-col-title{font-family:inherit;font-size:1.7rem;color:var(--ink)!important;
  margin-bottom:10px;padding:0 0 12px;border-bottom:1px solid var(--line-dark)}

/* --- 6. footer: 4 columns -> 2 on mobile instead of 1 --- */
@media(max-width:600px){
  .footer-grid{grid-template-columns:1fr 1fr;gap:28px 24px;padding-bottom:44px}
  .footer-logo{grid-column:1/-1}
  .footer-contact{grid-column:1/-1}
  .footer{padding:52px 0 22px}
  .city-strip-grid{grid-template-columns:1fr}
  .solution-card{min-height:0}
  .project-card{height:380px}
  .architect-img{min-height:300px}
}
@media(max-width:960px){
  .architect-grid{min-height:0}
  .architect-copy{padding-right:0}
}

/* --- 7. Reynaers catalogue: 34 cards, 15 screens. Compact the card, not the list --- */
.sys-card{min-height:0}
.sys-img{height:150px}
.sys-body{padding:20px 22px 22px}
.sys-body h3{font-size:1.4rem;margin:7px 0 6px}
.sys-body>p{font-size:.92rem;margin:0 0 10px}
.sys-body ul{font-size:.8rem;margin:0 0 12px}
.sys-body ul li{margin:2px 0}
.systems-photo-grid{gap:12px}
.system-group{padding-top:var(--band-tight);padding-bottom:var(--band-tight)}
.system-group-head{margin-bottom:24px}
.system-group-head .section-title{margin:.2em 0 0}

/* sticky group nav so 15 screens become a choice, not a scroll */
.group-nav{position:sticky;top:0;z-index:15;background:rgba(245,245,242,.94);
  backdrop-filter:blur(8px);border-bottom:1px solid var(--line-dark)}
.group-nav .wrap{display:flex;gap:6px;overflow-x:auto;padding:12px 0;scrollbar-width:none}
.group-nav .wrap::-webkit-scrollbar{display:none}
.group-nav a{white-space:nowrap;padding:8px 14px;font-size:.7rem;letter-spacing:.1em;
  text-transform:uppercase;color:#5e666d;border:1px solid transparent}
.group-nav a:hover{border-color:var(--line-dark);color:var(--ink)}
.system-group{scroll-margin-top:58px}

@media(max-width:960px){.systems-photo-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){
  .systems-photo-grid{grid-template-columns:1fr 1fr;gap:10px}
  .sys-img{height:110px}
  .sys-body{padding:14px 14px 16px}
  .sys-body h3{font-size:1.05rem}
  .sys-body>p{font-size:.82rem}
  .sys-body ul{display:none}
  .img-badge{display:none}
}

/* --- 8. hierarchy pass: primary bands stay generous, utility bands get tight ---
   The page reads long partly because every section has the same weight.
   Hero / Solutions / Projects keep their air; the link, brand and CTA bands
   step down in both padding and type size so the eye can tell them apart. */
.city-strip,.brand-systems{padding-top:var(--band-tight);padding-bottom:var(--band-tight)}
.city-strip .section-title,.brand-systems .section-title{font-size:clamp(1.6rem,2.4vw,2.5rem)}
.cta .section-title{font-size:clamp(1.9rem,3vw,3.2rem)}
.cta .content{padding:clamp(48px,5.5vw,68px) 0;max-width:640px}
.cta p{margin:12px 0 0}
.contact-form{margin-top:20px;gap:10px}
.contact-form textarea{min-height:92px}

/* city strip: heading and the two city columns share one row on desktop */
.city-strip .wrap{display:grid;grid-template-columns:.75fr 1.25fr;gap:56px;align-items:start}
.city-strip-head{margin-bottom:0}
.city-strip-grid{border:1px solid var(--line-dark)}
.city-col{padding:26px 30px}
.city-col-title{font-size:1.45rem;margin-bottom:8px;padding-bottom:10px}
.city-col a{padding:6px 0;font-size:.9rem}

/* brand cards side by side, not stacked tall */
.brand-system-grid{grid-template-columns:1fr 1fr}
.brand-system-card{min-height:210px;padding:32px}
.brand-system-card h3{font-size:1.9rem;margin:14px 0 8px}

@media(max-width:960px){
  .city-strip .wrap{grid-template-columns:1fr;gap:28px}
  .brand-system-grid{grid-template-columns:1fr}
}
@media(max-width:600px){
  /* six short text cards do not need a column each */
  .solutions-grid{grid-template-columns:1fr 1fr}
  .solution-card{padding:20px 16px}
  .solution-card h3{font-size:1.08rem;margin:16px 0 6px}
  .solution-card p{font-size:.82rem}
  .solution-card .arrow{display:none}
  .city-strip-grid{grid-template-columns:1fr}
  .brand-system-card{min-height:0;padding:26px}
  .cta .content{padding:44px 0}
}
/* the source badge belongs on a real photo, not on a schematic drawing */
.sys-img img[src$=".svg"] + .img-badge{display:none}

/* --- 9. Solution cards with project photography (Q-01) -----------------
   The category grid was six text cells. This company is bought with the
   eyes, so five categories now lead with a real object; the sixth has no
   honest photograph yet and gets a deliberate ink card instead of a
   borrowed one. --------------------------------------------------------- */
.solutions-grid{align-items:stretch}
.solution-card.has-photo,
.solution-card.card-ink{padding:0;min-height:0;display:flex;flex-direction:column;justify-content:flex-start}
.solution-card.has-photo:hover{background:transparent}

.card-media{display:block;aspect-ratio:4/3;overflow:hidden;background:#e6e8e5}
.card-media picture{display:block;height:100%}
.card-media img{width:100%;height:100%;object-fit:cover;transition:transform .55s ease,filter .35s ease}
.solution-card.has-photo:hover .card-media img{transform:scale(1.035)}

.card-body{display:flex;flex-direction:column;flex:1;padding:24px 26px 26px;
  background:var(--white);transition:background .2s}
.solution-card.has-photo:hover .card-body{background:#f0f1ef}
.card-body h3{font-size:1.34rem;font-weight:400;margin:16px 0 8px}
.card-body p{color:#636970;max-width:340px;margin:0}
.card-body .arrow{margin-top:auto;padding-top:20px;font-size:1.3rem;line-height:1}

/* the one category still waiting on photography */
.solution-card.card-ink{background:var(--ink);color:#fff}
.solution-card.card-ink .card-body{background:transparent;justify-content:flex-end;min-height:300px}
.solution-card.card-ink:hover{background:#16212b}
.solution-card.card-ink:hover .card-body{background:transparent}
.solution-card.card-ink .num{color:var(--yellow)}
.solution-card.card-ink h3{font-size:1.7rem}
.solution-card.card-ink p{color:rgba(255,255,255,.7)}
.card-note{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;
  color:rgba(255,255,255,.45);margin-top:16px}

@media(prefers-reduced-motion:reduce){
  .solution-card.has-photo:hover .card-media img{transform:none}
}
@media(max-width:600px){
  .card-body{padding:16px 16px 18px}
  .card-body h3{font-size:1.05rem;margin:10px 0 6px}
  .card-body p{font-size:.82rem}
  .card-body .arrow{display:none}
  .solution-card.card-ink .card-body{min-height:0;padding:22px 16px}
  .solution-card.card-ink h3{font-size:1.25rem}
  .card-note{margin-top:12px}
}
