@font-face{font-family:Manrope;src:url('/assets/fonts/manrope-400.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Manrope;src:url('/assets/fonts/manrope-500.ttf') format('truetype');font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Manrope;src:url('/assets/fonts/manrope-600.ttf') format('truetype');font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Manrope;src:url('/assets/fonts/manrope-700.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}
:root {
  --ink: #252b32;
  --dim: #626b75;
  --paper: #fcfcfd;
  --white: #fff;
  --surface: #f1f4f7;
  --line: #dce2e8;
  --accent: #355b7b;
  --accent-soft: #eaf0f5;
  --accent-light: #bdcedb;
  --accent-dark: #244660;
  --dark: #252b32;
  --radius: 8px;
  --ease: cubic-bezier(.2,.7,.3,1);
  --container: 1392px;
  --gutter: clamp(24px,4.5vw,88px);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 115px; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: Manrope,Arial,sans-serif; font-size: 16px; line-height: 1.8; font-weight: 400; -webkit-font-smoothing: antialiased; }
button,input { font: inherit; }
button,a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; color: inherit; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; height: auto; }
svg { width: 24px; height: 24px; flex-shrink: 0; }
h1,h2,h3,p,figure { margin: 0; }
h1,h2,h3 { font-weight: 500; }
h1,h2 { line-height: 1.12; letter-spacing: -.055em; text-wrap: balance; }
h1 { font-size: clamp(3rem,6.3vw,6rem); }
h2 { font-size: clamp(2.5rem,4.4vw,4.375rem); }
h3 { font-size: 1.3rem; line-height: 1.4; letter-spacing: -.03em; }
p { margin-bottom: 1.3em; }
p:last-child { margin-bottom: 0; }
::selection { color: var(--ink); background: #d9e6f0; }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 5px; }
[hidden] { display: none!important; }
.container { max-width: calc(var(--container) + var(--gutter)*2); padding: 0 var(--gutter); margin: 0 auto; }
.section { padding: clamp(76px,8.2vw,132px) 0; }
.muted { color: #687a8c; }
.eyebrow { display: flex; align-items: center; gap: 16px; font-size: .75rem; line-height: 1.6; letter-spacing: .1em; text-transform: uppercase; font-weight: 600; color: var(--accent); margin-bottom: 28px; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 22px; padding: 17px 25px; border-radius: 50px; border: 1px solid transparent; color: #fff; background: var(--accent); font-size: .875rem; line-height: 1.5; font-weight: 600; min-height: 56px; text-align: center; transition: background .25s,transform .25s; }
.button:hover { background: var(--accent-dark); transform: translateY(-2px); }
.button svg { width: 19px; height: 19px; transition: transform .25s; }
.button:hover svg { transform: translateX(3px); }
.button-secondary { background: var(--white); color: var(--ink); }
.button-secondary:hover { background: var(--surface); }
.button-outline { background: transparent; border-color: #b9c7d3; color: var(--ink); }
.button-outline:hover { background: var(--surface); }
.button-small { min-height: 44px; padding: 12px 18px; }
.text-link { display: inline-flex; align-items: center; gap: 22px; padding: 9px 0; border-bottom: 1px solid #97adbe; font-size: .875rem; font-weight: 500; line-height: 1.5; transition: color .2s; }
.text-link svg { width: 20px; height: 20px; transition: transform .25s; }
.text-link:hover { color: var(--accent); border-color: var(--accent); }
.text-link:hover svg { transform: translateX(4px); }
.text-button,.inline-button { background: none; padding: 0; border: 0; cursor: pointer; font-size: inherit; }
.text-button:hover,.inline-button:hover { color: var(--accent); }
.inline-button { text-decoration: underline; text-underline-offset: 4px; }
.icon-button { display: grid; place-items: center; background: transparent; border: 1px solid currentColor; border-radius: 50%; width: 44px; height: 44px; padding: 10px; }
.icon-button:hover { background: #577a991a; }
.skip { position: fixed; left: 15px; top: -100px; z-index: 100; background: white; padding: 12px 20px; color: var(--ink); }
.skip:focus { top: 10px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* A quiet, bright masthead across every route. */
.site-header { position: fixed; inset: 0 0 auto; z-index: 40; background: #fcfcfded; color: var(--ink); border-bottom: 1px solid #dce2e890; backdrop-filter: blur(18px); transition: background .25s,box-shadow .25s; }
.site-header.scrolled { background: #fcfcfdfa; box-shadow: 0 4px 22px #252b3205; }
.header-inner { --brand-width: 330px; display: flex; align-items: center; justify-content: space-between; gap: 35px; min-height: 96px; }
.brand { display: block; width: var(--brand-width); max-width: calc(100% - 62px); flex-shrink: 0; padding: 8px 0; }
/* The original golden flame is shown directly from the supplied logo file.
   Its original wordmark stays outside the crop; the name is now live text. */
.brand-lockup { --flame-height: 64px; display: flex; align-items: center; gap: 16px; color: var(--ink); }
.brand-flame { display: block; flex: 0 0 auto; width: calc(var(--flame-height) * .68); height: var(--flame-height); background-image: url('/assets/logo.png'); background-repeat: no-repeat; background-size: calc(var(--flame-height) * 6) calc(var(--flame-height) * 1.08); background-position: calc(var(--flame-height) * -.2) 0; }
.brand-type { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; }
.brand-kicker { display: block; font-size: .75rem; font-weight: 600; line-height: 1.25; letter-spacing: .27em; text-transform: uppercase; color: var(--accent); margin-bottom: 5px; }
.brand-name { display: block; font-size: 1.5625rem; font-weight: 600; line-height: 1.2; letter-spacing: -.025em; white-space: nowrap; }
.brand-name>span { font-weight: 400; }
/* Align desktop navigation with the name below the small Ofenbau line. */
.navigation { display: flex; align-items: center; gap: 32px; font-size: .875rem; line-height: 1.4; transform: translateY(calc(.46875rem + 2.5px)); }
.navigation>a { padding: 15px 0; position: relative; white-space: nowrap; }
.navigation>a:not(.nav-contact):after { content: ''; position: absolute; left: 0; bottom: 7px; width: 0; height: 1px; background: var(--accent); transition: width .25s; }
.navigation>a:hover:after,.navigation>a[aria-current]:after { width: 100%; }
.navigation .nav-contact { display: flex; gap: 21px; align-items: center; padding: 14px 23px; border: 1px solid var(--accent); background: var(--accent); color: white; border-radius: 50px; }
.navigation .nav-contact:hover { background: var(--accent-dark); }
.navigation .nav-contact svg { width: 17px; height: 17px; }
.menu-button { display: none; background: transparent; border: 1px solid var(--line); border-radius: 50%; width: 46px; height: 46px; padding: 11px; color: var(--ink); }
.menu-button span { display: block; height: 1px; background: currentColor; width: 22px; margin: 0; transition: transform .25s; }
.menu-button[aria-expanded=true] span:first-child { transform: translateY(3.5px) rotate(45deg); }
.menu-button[aria-expanded=true] span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
.mobile-nav-contact { display: none; }
.mobile-nav-contact>a { display: flex; align-items: center; gap: 11px; }
.mobile-nav-contact svg { width: 18px; height: 18px; color: var(--accent); }
.contact-line>span { display: flex; align-items: center; gap: 7px; }
.contact-line>span>svg { width: 15px; height: 15px; flex-shrink: 0; color: var(--accent); }
.scroll-progress { position: absolute; bottom: -1px; left: 0; height: 2px; background: #54748d; width: 100%; transform: scaleX(0); transform-origin: left; }

/* The first view pairs typography with an unfiltered, real project. */
.hero { padding: 150px 0 48px; }
.hero-grid { display: grid; grid-template-columns: 1.04fr 1fr; grid-template-areas: "heading visual" "details visual"; column-gap: 5%; align-items: center; }
.hero-heading { grid-area: heading; padding-top: 30px; align-self: end; }
.hero-details { grid-area: details; padding-bottom: 42px; align-self: start; }
.hero-heading .eyebrow { margin-bottom: 34px; font-size: .75rem; }
.hero h1 { font-size: clamp(4rem,7.3vw,7.2rem); letter-spacing: -.065em; line-height: 1.06; font-weight: 500; margin-left: -5px; }
.hero h1 span { color: #54748d; }
.hero-description { color: var(--dim); font-size: 1.0625rem; line-height: 1.85; margin-top: 30px; max-width: 380px; }
.hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 15px 25px; margin-top: 33px; }
.hero-actions .button { padding: 17px 23px; }
.hero-actions .text-link { gap: 15px; }
.hero-signature { margin-top: 58px; padding-left: 20px; border-left: 2px solid var(--accent-light); }
.hero-signature>span { display: block; font-size: .875rem; font-weight: 600; line-height: 1.6; }
.hero-signature p { color: var(--dim); font-size: .75rem; margin-top: 2px; }
.hero-visual { grid-area: visual; min-width: 0; }
.hero-photo { display: block; position: relative; overflow: hidden; border-radius: 8px; background: var(--surface); aspect-ratio: 1/1.04; }
.hero-image { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
.hero-photo:hover .hero-image { transform: scale(1.025); }
.hero-photo-link { position: absolute; left: 20px; bottom: 20px; display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 13px 18px; color: var(--ink); font-size: .75rem; background: #fcfcfdf2; border-radius: 50px; backdrop-filter: blur(12px); }
.hero-photo-link svg { width: 18px; height: 18px; }
.hero-visual figcaption { display: flex; justify-content: space-between; gap: 20px; padding-top: 14px; font-size: .75rem; color: var(--dim); }
.hero-visual figcaption>span:last-child { flex-shrink: 0; }
.trust-strip .container { display: grid; grid-template-columns: repeat(4,1fr); padding-top: 30px; padding-bottom: 35px; }
.trust-strip { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.trust-strip .container>div { border-left: 1px solid var(--line); padding: 0 30px; }
.trust-strip .container>div:first-child { border: 0; padding-left: 0; }
.trust-strip .container>div:last-child { padding-right: 0; }
.trust-strip strong { display: block; font-weight: 500; font-size: .9375rem; line-height: 1.4; }
.trust-strip span { display: block; font-size: .8125rem; color: var(--dim); margin-top: 7px; line-height: 1.5; }

.intro-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 12%; align-items: start; }
.intro-grid h2 { font-size: clamp(2.75rem,4.9vw,4.8rem); }
.intro-copy { padding-top: 42px; }
.intro-copy p { color: var(--dim); font-size: 1rem; }
.intro-copy p:first-child { color: var(--ink); }
.intro-copy .text-link { margin-top: 5px; }
.intro-bottom { display: flex; justify-content: space-between; align-items: center; gap: 30px; border-top: 1px solid var(--line); margin-top: 60px; padding-top: 25px; }
.intro-bottom p { font-size: .9375rem; margin: 0; }
.intro-bottom span { font-size: .75rem; color: var(--dim); }
.section-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 8%; margin-bottom: 60px; }
.section-heading>div:last-child:not(:first-child) { max-width: 350px; }
.section-heading>div:last-child p { color: var(--dim); font-size: 1rem; }
.section-heading>.text-link { flex-shrink: 0; }

/* Open project spreads, with generous space instead of boxed cards. */
.project-section { background: var(--surface); }
.featured-projects { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 30px; align-items: start; }
.featured-projects .project-card button { aspect-ratio: 4/5; }
.project-card { min-width: 0; }
.project-card button { display: block; position: relative; width: 100%; padding: 0; border: 0; background: #dfe5eb; overflow: hidden; border-radius: 6px; isolation: isolate; }
.project-card button img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.project-card button:hover img { transform: scale(1.04); }
.project-index { position: absolute; left: 16px; top: 16px; color: var(--ink); background: #fcfcfdef; border-radius: 30px; padding: 2px 9px; font-size: .75rem; z-index: 1; }
.project-open { position: absolute; right: 18px; bottom: 18px; border-radius: 50%; width: 44px; height: 44px; display: grid; place-items: center; color: var(--ink); background: var(--paper); z-index: 1; transition: transform .25s,background .25s,color .25s; }
.project-card button:hover .project-open { background: var(--accent); color: white; transform: rotate(45deg); }
.project-caption { display: flex; flex-direction: column; gap: 6px; padding-top: 18px; }
.project-caption h3 { font-size: 1rem; line-height: 1.5; }
.project-caption>span { font-size: .75rem; color: var(--dim); }

/* Services read as a precise, compact list of capabilities. */
.service-grid { display: grid; gap: 0; border-top: 1px solid var(--line); }
.service-card { display: grid; grid-template-columns: 190px minmax(0,1fr); gap: 40px; align-items: center; padding: 34px 0; border-bottom: 1px solid var(--line); transition: background .25s; }
.service-image { position: relative; aspect-ratio: 1.15; overflow: hidden; border-radius: 6px; }
.service-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.service-card:hover img { transform: scale(1.05); }
.service-image>span { position: absolute; bottom: 11px; left: 11px; background: #fcfcfdf0; color: var(--ink); font-size: .75rem; border-radius: 30px; padding: 1px 9px; }
.service-body { display: grid; grid-template-columns: 1.1fr 1fr; gap: 18px 38px; align-items: start; }
.service-body h3 { grid-row: span 2; font-size: clamp(1.6rem,2.5vw,2.5rem); line-height: 1.25; max-width: 370px; transition: color .25s; }
.service-card:hover h3 { color: var(--accent); }
.service-body p { font-size: 1rem; color: var(--dim); margin: 0; }
.service-link { display: flex; justify-content: space-between; align-items: center; gap: 20px; grid-column: 2; font-size: .875rem; font-weight: 500; color: var(--accent); }
.service-link svg { width: 21px; }
.repair-strip { display: flex; align-items: center; gap: 30px; padding: 25px 0 0; }
.repair-strip>span { font-size: .875rem; color: var(--dim); margin-right: auto; }
.repair-strip strong { font-weight: 500; font-size: 1.1rem; }
.repair-strip:hover { color: var(--accent); }
.process-section { padding-top: 0; }
.plan-visual { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: clamp(12px,3vw,42px); overflow: hidden; }
.plan-visual img { width: 100%; max-height: 610px; object-fit: contain; margin: auto; }
.process-steps { display: grid; grid-template-columns: repeat(3,1fr); gap: 55px; margin-top: 48px; }
.step-number { display: block; width: 39px; height: 39px; border-radius: 50%; border: 1px solid #b6c6d4; text-align: center; line-height: 37px; font-size: .75rem; color: var(--accent); margin-bottom: 22px; }
.process-steps h3 { margin-bottom: 16px; }
.process-steps p { font-size: 1rem; color: var(--dim); }
.about-section { background: var(--accent-soft); }
.about-grid { display: grid; grid-template-columns: 1fr 1.08fr; gap: 10%; align-items: center; }
.about-picture { position: relative; }
.about-picture img { width: 100%; aspect-ratio: 1/1.04; object-fit: cover; object-position: 64% center; border-radius: 8px; }
.photo-badge { position: absolute; bottom: 22px; left: 22px; background: var(--paper); color: var(--ink); border-radius: 5px; padding: 20px 24px; display: flex; flex-direction: column; }
.photo-badge strong { font-size: 1.25rem; font-weight: 500; letter-spacing: -.035em; line-height: 1.4; }
.photo-badge span { font-size: .75rem; color: var(--dim); }
.about-copy h2 { font-size: clamp(2.5rem,3.8vw,3.75rem); margin-bottom: 30px; }
.about-copy h2>span { color: #54748d; }
.about-copy p { color: #506171; font-size: 1rem; }
.about-copy .eyebrow { font-size: .75rem; color: var(--accent); }
.about-copy .about-name { font-size: 1.25rem; color: var(--ink); margin-bottom: 1px; letter-spacing: -.025em; }
.about-copy .about-job { font-size: .875rem; margin-bottom: 24px; }
.about-copy .text-link { margin-top: 5px; }
.values-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 45px; }
.values-grid article { padding-top: 24px; border-top: 1px solid var(--line); }
.values-grid article>span { display: block; color: var(--accent); font-size: .75rem; margin-bottom: 22px; }
.values-grid p { font-size: 1rem; color: var(--dim); margin-top: 17px; }
.material-details { margin-top: 55px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 24px 0; }
.material-details summary { display: flex; align-items: center; justify-content: space-between; cursor: pointer; list-style: none; font-size: 1.125rem; gap: 20px; }
.material-details summary::-webkit-details-marker { display: none; }
.material-details summary>span { font-size: 22px; }
.material-details[open] summary>span { transform: rotate(45deg); }
.material-details>div { color: var(--dim); max-width: 850px; margin: 30px 0 8px; }

/* A soft invitation with the original company identity. */
.contact-cta { padding: 0 0 85px; }
.cta-panel { display: grid; grid-template-columns: 1.1fr 1fr; gap: 12%; align-items: center; background: #eaf0f5; border-radius: 14px; padding: clamp(40px,6vw,92px); }
.cta-heading h2 { font-size: clamp(3.4rem,6vw,6rem); }
.cta-heading h2>span { color: #54748d; }
.cta-action p { font-size: 1rem; color: #506171; }
.cta-action .button { margin-top: 8px; }
.cta-phone { display: block; font-size: .875rem; margin-top: 18px; }
.cta-phone:hover { text-decoration: underline; }
.cta-phone>span { white-space: nowrap; }
.site-footer { background: var(--paper); color: var(--ink); padding: 0 0 30px; }
.footer-top { display: grid; grid-template-columns: 1.25fr 1fr .65fr; gap: 65px; border-top: 1px solid var(--line); padding-top: 60px; }
.footer-brand { display: block; width: 100%; max-width: 400px; align-self: start; }
.footer-signoff { display: block; font-size: .875rem; font-weight: 400; line-height: 1.6; color: var(--dim); margin-top: 24px; }
.footer-contact { min-width: 0; }
.footer-contact>a { display: flex; align-items: center; gap: 10px; font-size: 1.1875rem; letter-spacing: -.02em; margin-bottom: 10px; width: fit-content; max-width: 100%; }
.footer-contact>a>svg { width: 18px; height: 18px; flex-shrink: 0; color: var(--accent); }
.footer-contact>a>span { min-width: 0; overflow-wrap: anywhere; }
.footer-contact>p:last-child { font-size: .875rem; color: var(--dim); margin-top: 24px; }
.footer-top .eyebrow { font-size: .75rem; margin-bottom: 22px; }
.footer-nav>a { display: block; font-size: .875rem; margin: 7px 0; color: var(--dim); }
.site-footer a:hover { color: #355b7b; }
.footer-bottom { display: flex; justify-content: space-between; align-items: center; gap: 24px; border-top: 1px solid var(--line); margin-top: 45px; padding-top: 25px; font-size: .75rem; color: var(--dim); }
.footer-bottom>div { display: flex; flex-wrap: wrap; gap: 24px; }
.footer-bottom button { font-size: inherit; }
.footer-bottom button:hover { color: var(--accent); }
.mobile-contact { display: none; }

/* Content pages */
.page-hero{background:var(--surface);color:var(--ink);padding:150px 0 70px;position:relative;isolation:isolate;overflow:hidden}.page-hero h1{font-size:clamp(3rem,6.3vw,6.1rem);max-width:1080px;margin:40px 0 10px}.breadcrumbs{display:flex;gap:14px;align-items:center;font-size:.75rem;color:var(--dim)}.breadcrumbs a:hover{color:var(--accent)}.page-hero-lede{font-size:1.05rem;color:var(--dim);max-width:600px;margin-top:25px}.page-hero-image{position:absolute;right:0;top:0;width:55%;height:100%;object-fit:cover;opacity:.4;z-index:-2}.page-hero.with-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,var(--dark) 25%,transparent);z-index:-1}.prose{font-size:1rem;line-height:1.9;color:var(--dim);overflow-wrap:anywhere}.prose p{margin-bottom:1.4em}.prose h2,.prose h3{color:var(--ink);margin-top:45px;margin-bottom:22px}.prose h3{font-size:1.35rem}.prose h2{font-size:2rem;line-height:1.25}.prose ul{padding-left:20px;margin:20px 0 28px}.prose li{padding:4px 0}.prose li::marker{color:var(--accent-dark)}.prose a,.prose .inline-button{text-decoration:underline;text-underline-offset:4px;text-decoration-color:#a4b4c2}.prose a:hover{color:var(--accent-dark)}.detail-intro-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:10%;align-items:start}.detail-intro-image{position:sticky;top:125px}.detail-intro-image>img{width:100%;max-height:600px;object-fit:cover;border-radius:var(--radius)}.article-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:9%;padding-bottom:110px}.article-nav{position:sticky;top:125px;align-self:start}.article-nav>div{max-height:55svh;overflow:auto;overscroll-behavior:contain}.article-nav a:not(.button){display:block;font-size:.875rem;line-height:1.55;color:var(--dim);padding:12px 0;border-bottom:1px solid var(--line)}.article-nav a:not(.button):hover{color:var(--accent-dark)}.article-nav .button{margin-top:25px;font-size:.875rem;width:100%;padding:14px 15px}.article-section{padding-bottom:65px;margin-bottom:65px;border-bottom:1px solid var(--line)}.article-section:last-child{padding:0;margin:0;border:0}.article-title{display:flex;gap:30px;align-items:baseline;margin-bottom:30px}.article-title>span{font-size:.75rem;color:var(--accent-dark)}.article-title>h2{font-size:clamp(1.875rem,2.5vw,2.75rem);line-height:1.2;letter-spacing:-.045em}.article-image{margin:35px 0}.article-image img{width:100%;max-height:600px;object-fit:contain;background:var(--surface);border-radius:var(--radius)}.services-intro{max-width:800px;margin-bottom:85px}.service-feature{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center;padding:65px 0;border-top:1px solid var(--line)}.service-feature:nth-child(2){direction:rtl}.service-feature:nth-child(2)>*{direction:ltr}.service-feature-image img{width:100%;max-height:700px;object-fit:cover;border-radius:var(--radius)}.service-feature-copy h2{font-size:clamp(2rem,3.2vw,3.1rem);margin-bottom:30px}.service-feature-copy .prose{font-size:1rem}.service-feature:not(:has(.service-feature-image)){display:block;max-width:900px}.service-feature-copy .button{margin-top:20px}.gallery-toolbar{position:sticky;top:95px;z-index:15;background:var(--paper);padding:15px 0 22px;border-bottom:1px solid var(--line);margin-bottom:50px}.gallery-filters{display:flex;gap:10px;flex-wrap:wrap}.gallery-filters button{font-size:.875rem;background:#fff;border:1px solid var(--line);padding:13px 17px;border-radius:40px;transition:background .2s,color .2s}.gallery-filters button>span{font-size:.75rem;color:var(--dim);margin-left:8px}.gallery-filters button[aria-pressed=true]{background:var(--accent);color:#fff;border-color:var(--accent)}.gallery-filters button[aria-pressed=true]>span{color:#e1eaf2}.gallery-filters button:hover{border-color:var(--ink)}.gallery-group{margin-bottom:85px;scroll-margin-top:185px}.gallery-group:last-child{margin-bottom:0}.gallery-group-title{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:start;margin-bottom:35px}.gallery-group-title h2{font-size:2.2rem;line-height:1.2}.gallery-group-title p{font-size:1rem;color:var(--dim)}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:38px 24px}.gallery-grid .project-card button{aspect-ratio:3/4}.gallery-grid .project-caption{padding-top:14px}.gallery-grid .project-caption h3{font-size:1rem}.knowledge-intro{max-width:820px}.knowledge-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin:45px 0 95px}.knowledge-card{border:1px solid var(--line);background:#fff;border-radius:12px;overflow:hidden;transition:transform .25s}.knowledge-card:hover{transform:translateY(-5px)}.knowledge-card img{aspect-ratio:1.1;object-fit:cover;width:100%}.knowledge-card>div{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px}.knowledge-card h2{font-size:1.1rem;letter-spacing:-.035em;line-height:1.35}.knowledge-card svg{width:19px;height:19px}.knowledge-content{max-width:900px;margin:auto}.knowledge-article{padding:65px 0;border-top:1px solid var(--line)}.knowledge-article>h2{font-size:clamp(2rem,3.5vw,3.2rem);margin-bottom:35px;line-height:1.2}.contact-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:10%}.contact-main>.eyebrow{margin-bottom:28px}.contact-line{display:grid;grid-template-columns:75px minmax(0,1fr) 24px;gap:20px;padding:25px 0;border-bottom:1px solid var(--line);align-items:center}.contact-line>span{font-size:.75rem;color:var(--dim)}.contact-line>strong{font-weight:500;font-size:clamp(1.1rem,2vw,1.875rem);letter-spacing:-.04em;overflow-wrap:anywhere}.contact-line:hover{color:var(--accent-dark)}.contact-line svg{width:23px;height:23px}.contact-address{margin-top:48px}.contact-address h2{font-size:1.4rem;line-height:1.4;margin-bottom:20px}.contact-address p{font-size:1rem;color:var(--dim)}.contact-aside{background:var(--surface);border-radius:var(--radius);overflow:hidden;align-self:start}.contact-aside img{width:100%;aspect-ratio:1.1;object-fit:cover;object-position:65% center}.contact-aside>div{padding:28px}.contact-aside h2{font-size:1.4rem;margin-bottom:8px}.contact-aside p{font-size:.875rem;color:var(--dim)}.region-section{display:grid;grid-template-columns:1fr 1.4fr;gap:10%;margin-top:100px;padding-top:65px;border-top:1px solid var(--line)}.region-tags{display:flex;gap:8px;flex-wrap:wrap;margin:28px 0}.region-tags span{border:1px solid var(--line);padding:5px 12px;border-radius:30px;font-size:.75rem;color:var(--dim)}.legal-content{max-width:1000px}.legal-content>h2:first-child{margin-top:0}.legal-date{font-size:.875rem;color:var(--dim)}.legal-content code{font-size:.85em;overflow-wrap:anywhere}
/* Gallery modal */
.lightbox{background:#22282f;color:#fff;border:1px solid #ffffff22;border-radius:12px;padding:20px 25px;max-width:96vw;width:fit-content;max-height:95dvh;overflow:auto}.lightbox::backdrop{background:#121820ed;backdrop-filter:blur(10px)}.lightbox-bar{display:flex;justify-content:space-between;align-items:center;gap:100px;font-size:.75rem;margin-bottom:15px;color:#cbd6e0}.lightbox-bar .icon-button{border-color:#5b6d7e}.lightbox-stage{display:flex;align-items:center;gap:25px}.lightbox-stage>img{width:auto;height:auto;max-height:72dvh;max-width:calc(90vw - 190px);object-fit:contain}.lightbox-prev svg{transform:rotate(180deg)}.lightbox-stage .icon-button{border-color:#5b6d7e;flex-shrink:0}.lightbox>p{font-size:.875rem;text-align:center;margin:18px 0 2px;color:#cbd6e0}.lightbox-stage img.loading{opacity:.45}
/* Privacy: only the services actually present. */
.cookie-banner{position:fixed;left:24px;right:24px;bottom:24px;z-index:60;max-width:1140px;margin:auto;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 90px #0004;display:flex;align-items:center;gap:24px;padding:24px 28px;animation:banner-in .35s var(--ease)}.cookie-symbol{align-self:flex-start;background:var(--surface);border-radius:10px;padding:12px;display:grid;place-items:center}.cookie-symbol svg{width:25px;height:25px}.cookie-copy{flex:1}.cookie-copy h2{font-size:1.1rem;letter-spacing:-.035em;margin-bottom:7px}.cookie-copy p{font-size:.875rem;line-height:1.65;color:var(--dim);max-width:580px}.cookie-copy a{text-decoration:underline;text-underline-offset:3px}.cookie-actions{display:flex;flex-direction:column;gap:8px;min-width:165px}.cookie-actions .button{width:100%}.cookie-dialog{width:min(600px,calc(100% - 32px));padding:30px;border:1px solid var(--line);border-radius:16px;color:var(--ink);background:var(--paper);max-height:88dvh;overflow-y:auto}.cookie-dialog::backdrop{background:#202832cc;backdrop-filter:blur(7px)}.dialog-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.dialog-header .eyebrow{margin:0}.dialog-header .icon-button{border:1px solid var(--line)}.cookie-dialog h2{font-size:2rem;margin-bottom:20px}.cookie-dialog>p{font-size:.875rem;line-height:1.7;color:var(--dim)}.cookie-category{padding:23px 0;border-top:1px solid var(--line)}.cookie-category>div{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:12px}.cookie-category h3{font-size:1rem}.status-label{font-size:.75rem;white-space:nowrap;padding:4px 9px;border-radius:5px;background:#e1eaf2;color:#355b7b;font-weight:600}.status-label.neutral{background:#e9edf1;color:#596775}.cookie-category p,.cookie-category details{font-size:.875rem;line-height:1.7;color:var(--dim)}.cookie-category details{margin-top:15px}.cookie-category summary{cursor:pointer;text-decoration:underline;text-underline-offset:3px}.cookie-category details p{margin-top:15px}.cookie-category code{font-size:.75rem;overflow-wrap:anywhere}.cookie-dialog .cookie-platform{padding:17px;background:var(--surface);border-radius:8px;font-size:.75rem}.cookie-platform a{text-decoration:underline}.dialog-actions{display:flex;gap:18px;align-items:center;flex-direction:column;margin-top:25px}.dialog-actions .button{width:100%}.dialog-actions .text-button{font-size:.75rem;text-decoration:underline}.storage-status{padding:15px;background:#fff0cf;margin-top:20px;border-radius:8px}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:12px 22px;border-radius:8px;background:#273744;color:#fff;z-index:80;font-size:.875rem;box-shadow:0 8px 35px #0003;max-width:calc(100vw - 36px);text-align:center}.has-cookie-banner .mobile-contact{visibility:hidden}@keyframes banner-in{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}

/* Privacy controls share the white and slate-blue palette. */
.cookie-banner { left: auto; right: 24px; bottom: 24px; width: 440px; max-width: calc(100vw - 48px); display: block; padding: 27px; border-radius: 14px; box-shadow: 0 12px 60px #252b3225; }
.cookie-symbol { display: none; }
.cookie-copy h2 { font-size: 1.1875rem; margin-bottom: 10px; }
.cookie-copy p { font-size: .875rem; line-height: 1.75; }
.cookie-actions { display: flex; flex-direction: row; gap: 10px; margin-top: 22px; }
.cookie-actions .button { width: auto; flex: 1; padding: 12px 15px; }
.cookie-dialog::backdrop { background: #252b3270; backdrop-filter: blur(7px); }
.cookie-dialog { background: var(--paper); }
.cookie-dialog :focus-visible { outline-color: var(--accent); }
.status-label { background: #e1eaf2; color: #355b7b; }
.toast { background: var(--accent); }
.lightbox :focus-visible { outline-color: #bdcedb; }

@media(prefers-reduced-motion:no-preference) {
  .reveal.is-observed { transition: opacity .6s var(--ease),translate .6s var(--ease); }
  .reveal.is-observed:not(.is-visible) { opacity: 0; translate: 0 18px; }
}
/* Keep the homepage originals crisp on larger screens. */
@media(min-width:1101px) {
  .home .plan-visual { max-width: 900px; padding: 24px; margin-inline: auto; }
  .home .plan-visual img { height: auto; }
  .home .about-picture { width: 82%; max-width: 420px; justify-self: center; }
}

@media(min-width:1600px) {
  .hero { padding-top: 160px; padding-bottom: 65px; }
  .hero-photo { max-height: 675px; }
}
@media(max-width:1150px) {
  .navigation { gap: 23px; }
  .header-inner { gap: 25px; }
  .hero { padding-top: 140px; }
  .hero-heading { padding-top: 15px; }
  .hero-details { padding-bottom: 30px; }
  .hero h1 { font-size: 7.5vw; }
  .hero-heading .eyebrow { font-size: .75rem; letter-spacing: .045em; }
  .hero-signature { margin-top: 35px; }
  .hero-photo { aspect-ratio: 1/1.16; }
  .hero-visual figcaption>span:first-child { max-width: 240px; }
  .trust-strip .container>div { padding: 0 20px; }
  .intro-grid { gap: 8%; }
  .featured-projects { gap: 22px; }
  .service-card { grid-template-columns: 150px minmax(0,1fr); gap: 30px; }
  .service-body { gap: 16px 30px; }
  .service-body h3 { font-size: 1.9rem; }
  .service-image { aspect-ratio: .85; }
  .about-grid { gap: 7%; }
  .footer-top { gap: 35px; }
  .article-layout { grid-template-columns: 215px minmax(0,1fr); gap: 6%; }
  .knowledge-grid { gap: 18px; }
  .knowledge-card>div { padding: 17px; gap: 12px; }
  .contact-line { grid-template-columns: 60px minmax(0,1fr) 22px; gap: 15px; }
}
@media(max-width:1100px) {
  :root { --gutter: 30px; }
  .header-inner { --brand-width: min(330px, calc(100vw - var(--gutter) * 2 - 62px)); min-height: 84px; }
  .brand { width: var(--brand-width); }
  .brand-lockup { --flame-height: 57px; gap: 14px; }
  /* Center the mobile menu button within the full white masthead. */
  .menu-button { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; padding: 0; flex-shrink: 0; transform: none; }
  .navigation { transform: none; position: fixed; display: none; left: 0; right: 0; top: 84px; padding: 30px var(--gutter) 35px; background: var(--paper); height: calc(100dvh - 84px); overflow: auto; align-items: stretch; flex-direction: column; gap: 6px; }
  .navigation.open { display: flex; }
  .navigation>a { font-size: 2rem; font-weight: 500; letter-spacing: -.04em; padding: 12px 0; width: 100%; white-space: normal; }
  .navigation .nav-contact { border: 0; border-bottom: 1px solid var(--line); border-radius: 0; padding: 12px 0 24px; background: transparent; color: var(--accent); justify-content: space-between; font-size: 2rem; }
  .navigation .nav-contact:hover { background: transparent; }
  .navigation .nav-contact svg { width: 28px; height: 28px; }
  .mobile-nav-contact { display: flex; flex-direction: column; font-size: 1rem; gap: 9px; margin-top: auto; padding-top: 30px; color: var(--dim); }
  .mobile-nav-contact>span { font-size: .75rem; margin-top: 15px; }
  .hero { padding-top: 124px; }
  .hero-grid { column-gap: 6%; }
  .hero h1 { font-size: 7.7vw; }
  .hero-heading .eyebrow { margin-bottom: 25px; max-width: 250px; }
  .hero-description { font-size: 1rem; margin-top: 23px; }
  .hero-actions { margin-top: 25px; gap: 16px; }
  .hero-actions .button { padding: 15px 19px; }
  .hero-signature { margin-top: 30px; padding-left: 14px; }
  .hero-photo { aspect-ratio: .72; }
  .hero-visual figcaption { gap: 10px; font-size: .75rem; }
  .hero-visual figcaption>span:last-child:not(.hero-ai-note) { display: none; }
  .hero-photo-link { left: 13px; bottom: 13px; right: 13px; padding: 12px 14px; gap: 16px; }
  .trust-strip .container { grid-template-columns: repeat(2,1fr); row-gap: 25px; }
  .trust-strip .container>div:nth-child(3) { border: 0; padding-left: 0; }
  .trust-strip strong { font-size: .9375rem; }
  .section-heading { gap: 35px; align-items: flex-start; }
  .section-heading h2 { font-size: 3rem; }
  .section-heading>div:last-child:not(:first-child) { max-width: 290px; }
  .intro-grid h2 { font-size: 3.25rem; }
  .intro-copy { padding-top: 35px; }
  .intro-bottom span { display: none; }
  .featured-projects { gap: 18px; }
  .project-caption h3 { font-size: .875rem; }
  .project-open { width: 38px; height: 38px; right: 13px; bottom: 13px; }
  .service-card { grid-template-columns: 150px minmax(0,1fr); gap: 28px; padding: 30px 0; }
  .service-body { grid-template-columns: 1fr; gap: 14px; }
  .service-body h3 { grid-row: auto; font-size: 1.8rem; max-width: 500px; }
  .service-link { grid-column: 1; }
  .service-image { aspect-ratio: .8; }
  .process-steps { gap: 27px; }
  .process-steps h3 { font-size: 1.15rem; }
  .about-copy h2 { font-size: 2.75rem; }
  .about-picture img { aspect-ratio: .8; }
  .photo-badge { left: 16px; bottom: 16px; padding: 15px 20px; }
  .values-grid { gap: 27px; }
  .cta-panel { gap: 7%; padding: 45px; }
  .cta-heading h2 { font-size: 4rem; }
  .footer-bottom { gap: 20px; flex-wrap: wrap; }
  .page-hero { padding-top: 125px; }
  .page-hero h1 { font-size: 4.2rem; }
  .article-layout { display: block; }
  .article-nav { position: static; margin-bottom: 50px; }
  .article-nav>div { max-height: none; display: flex; gap: 20px; overflow: auto; align-items: center; padding-bottom: 10px; }
  .article-nav a:not(.button) { flex-shrink: 0; max-width: 240px; font-size: .875rem; line-height: 1.6; min-height: 50px; display: flex; align-items: center; padding: 5px 0; }
  .article-nav>.button { display: none; }
  .article-nav>.eyebrow { margin-bottom: 15px; }
  .article-section { max-width: 850px; }
  .detail-intro-grid { gap: 6%; }
  .detail-intro-image { top: 110px; }
  .gallery-toolbar { top: 83px; }
  .gallery-grid { gap: 28px 18px; }
  .gallery-group-title { gap: 35px; }
  .gallery-group-title h2 { font-size: 1.875rem; }
  .knowledge-grid { grid-template-columns: repeat(2,1fr); gap: 24px; }
  .knowledge-card img { aspect-ratio: 1.6; }
  .contact-layout { gap: 6%; grid-template-columns: 1.25fr 1fr; }
  .contact-line { grid-template-columns: 1fr 24px; gap: 5px; }
  .contact-line>span { grid-column: 1/-1; }
  .contact-line>strong { font-size: 1.45rem; }
  .region-section { gap: 7%; }
}
@media(max-width:640px) {
  :root { --gutter: 22px; --radius: 7px; }
  .header-inner { --brand-width: min(300px, calc(100vw - var(--gutter) * 2 - 62px)); min-height: 77px; gap: 14px; }
  .brand-lockup { --flame-height: 52px; gap: 12px; }
  .brand-name { font-size: 1.3125rem; }
  .brand-kicker { letter-spacing: .2em; margin-bottom: 4px; }
  .menu-button { flex-shrink: 0; }
  .navigation { top: 77px; height: calc(100dvh - 77px); }
  .hero { padding: 104px 0 30px; }
  .hero-grid { grid-template-columns: minmax(0,1fr); grid-template-areas: "heading" "visual" "details"; gap: 20px; }
  .hero-heading,.hero-details { padding: 0; }
  .hero-heading .eyebrow { margin-bottom: 13px; max-width: none; font-size: .75rem; letter-spacing: .07em; }
  .hero h1 { font-size: clamp(2.75rem,10.8vw,3.5rem); line-height: 1.06; margin-left: -2px; letter-spacing: -.055em; }
  .hero-description { margin-top: 0; font-size: 1rem; max-width: 400px; }
  .hero-actions { gap: 14px 26px; margin-top: 20px; }
  .hero-actions .button { font-size: .875rem; padding: 15px 20px; min-height: 52px; }
  .hero-actions .text-link { font-size: .875rem; }
  .hero-signature { display: none; }
  .hero-photo { aspect-ratio: 1.12; border-radius: 7px; }
  .hero-photo-link { right: auto; left: 14px; bottom: 14px; gap: 26px; padding: 12px 16px; }
  .hero-visual figcaption { font-size: .75rem; gap: 12px; padding-top: 11px; }
  .hero-visual figcaption>span:last-child { display: block; }
  .trust-strip .container { gap: 25px 0; padding-top: 27px; padding-bottom: 27px; }
  .trust-strip .container>div { padding: 0 0 0 20px; }
  .trust-strip strong { font-size: .875rem; }
  .trust-strip span { font-size: .75rem; margin-top: 5px; }
  .eyebrow { font-size: .75rem; gap: 13px; margin-bottom: 23px; }
  h2 { font-size: 2.6rem; }
  .section { padding: 70px 0; }
  .intro-grid { display: block; }
  .intro-grid h2 { font-size: clamp(2.6rem,10vw,3.5rem); }
  .intro-copy { padding-top: 28px; }
  .intro-bottom { margin-top: 35px; padding-top: 20px; }
  .intro-bottom p { font-size: .875rem; }
  .section-heading { display: block; margin-bottom: 32px; }
  .section-heading h2 { font-size: clamp(2.5rem,9.7vw,3.4rem); }
  .section-heading>div:last-child:not(:first-child) { max-width: 100%; margin-top: 25px; }
  .section-heading>.text-link { margin-top: 24px; }
  .featured-projects { grid-template-columns: minmax(0,1fr); gap: 32px; }
  .project-caption { padding-top: 12px; gap: 5px; }
  .project-caption h3 { font-size: .875rem; }
  .project-caption>span { font-size: .75rem; }
  .project-index { left: 11px; top: 11px; padding: 1px 8px; }
  .project-open { width: 35px; height: 35px; right: 12px; bottom: 12px; }
  .project-open svg { width: 20px; height: 20px; }
  .service-card { grid-template-columns: 88px minmax(0,1fr); gap: 20px; align-items: start; padding: 27px 0; }
  .service-image { aspect-ratio: .72; border-radius: 5px; }
  .service-image>span { left: 7px; bottom: 7px; font-size: .75rem; padding: 0 7px; }
  .service-body { gap: 14px; }
  .service-body h3 { font-size: 1.5rem; }
  .service-body p { font-size: 1rem; line-height: 1.8; }
  .service-link { font-size: .875rem; padding-top: 2px; }
  .repair-strip { display: grid; grid-template-columns: 1fr 24px; gap: 8px; padding-top: 25px; }
  .repair-strip>span { grid-column: 1/-1; font-size: .875rem; }
  .repair-strip strong { font-size: 1rem; }
  .process-section { padding-top: 0; }
  .plan-visual { padding: 8px; }
  .process-steps { grid-template-columns: 1fr; gap: 29px; margin-top: 32px; }
  .process-steps article { display: grid; grid-template-columns: 36px 1fr; column-gap: 20px; border-top: 1px solid var(--line); padding-top: 24px; }
  .step-number { grid-row: span 2; width: 36px; height: 36px; line-height: 34px; margin: 0; }
  .process-steps h3 { font-size: 1.125rem; margin: 4px 0 13px; }
  .process-steps p { font-size: 1rem; }
  .about-grid { grid-template-columns: 1fr; gap: 40px; }
  .about-picture img { aspect-ratio: 1.08; object-position: center 45%; }
  .photo-badge { left: 17px; bottom: 17px; padding: 15px 19px; }
  .about-copy h2 { font-size: clamp(2.5rem,9.3vw,3.25rem); }
  .values-grid { grid-template-columns: 1fr; gap: 28px; }
  .values-grid article { display: grid; grid-template-columns: 28px 1fr; gap: 0 20px; padding-top: 22px; }
  .values-grid article>span { grid-row: span 2; font-size: .75rem; margin: 0; }
  .values-grid h3 { font-size: 1.2rem; }
  .values-grid p { font-size: 1rem; margin-top: 12px; }
  .material-details { margin-top: 40px; padding: 22px 0; }
  .material-details summary { font-size: 1rem; }
  .material-details>div { font-size: 1rem; margin-top: 25px; }
  .contact-cta { padding-bottom: 60px; }
  .cta-panel { grid-template-columns: 1fr; gap: 28px; padding: 32px 25px; border-radius: 10px; }
  .cta-heading h2 { font-size: 3.5rem; }
  .cta-heading .eyebrow { max-width: 240px; }
  .cta-action p { font-size: 1rem; }
  .site-footer { padding: 0 0 95px; }
  .footer-top { grid-template-columns: 1.4fr 1fr; gap: 35px 22px; padding-top: 38px; }
  .footer-brand { grid-column: 1/-1; max-width: 380px; }
  .footer-signoff { margin-top: 16px; }
  .footer-contact { grid-column: 1; }
  .footer-contact>a { font-size: .875rem; letter-spacing: 0; overflow-wrap: anywhere; }
  .footer-contact>p:last-child { font-size: .875rem; }
  .footer-top .eyebrow { font-size: .75rem; letter-spacing: .05em; line-height: 1.6; }
  .footer-nav>a { font-size: .875rem; }
  .footer-bottom { margin-top: 28px; padding-top: 22px; font-size: .75rem; gap: 20px; }
  .footer-bottom>div { gap: 12px 20px; }
  .footer-bottom>a { margin-left: auto; }
  .mobile-contact { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 35; background: var(--paper); color: var(--ink); border-top: 1px solid var(--line); padding: 9px 12px; padding-bottom: calc(9px + env(safe-area-inset-bottom)); gap: 9px; box-shadow: 0 -3px 20px #252b3206; }
  .mobile-contact>a { padding: 10px 14px; display: flex; justify-content: center; align-items: center; gap: 20px; font-size: .875rem; line-height: 1.6; flex: 1; border-radius: 40px; border: 1px solid var(--line); }
  .mobile-contact>a:last-child { background: var(--accent); color: white; border-color: var(--accent); flex: 1.45; }
  .mobile-contact svg { width: 18px; height: 18px; }
  .menu-open .mobile-contact { display: none; }
  .page-hero { padding: 115px 0 44px; }
  .page-hero h1 { font-size: clamp(2.5rem,9vw,3.7rem); margin-top: 28px; }
  .breadcrumbs { font-size: .75rem; gap: 10px; flex-wrap: wrap; }
  .page-hero-lede { font-size: 1rem; }
  .detail-intro-grid { grid-template-columns: 1fr; gap: 35px; }
  .detail-intro-image { position: static; }
  .detail-intro-image>img { max-height: 470px; }
  .article-layout { padding-bottom: 70px; }
  .article-title { gap: 17px; margin-bottom: 25px; }
  .article-title>h2 { font-size: 1.875rem; line-height: 1.2; }
  .article-title>span { font-size: .75rem; }
  .article-section { padding-bottom: 45px; margin-bottom: 45px; }
  .article-nav { margin-bottom: 40px; }
  .prose { font-size: 1rem; line-height: 1.85; }
  .article-image { margin: 28px 0; }
  .services-intro { margin-bottom: 45px; }
  .service-feature { grid-template-columns: 1fr; gap: 30px; padding: 40px 0; }
  .service-feature:nth-child(2) { direction: ltr; }
  .service-feature-copy h2 { font-size: 2rem; margin-bottom: 25px; }
  .service-feature-copy .prose { font-size: 1rem; }
  .service-feature-image img { max-height: 440px; }
  .service-feature:not(:has(.service-feature-image)) { padding: 40px 0; }
  .gallery-section { padding-top: 25px; }
  .gallery-toolbar { top: 76px; padding: 12px 0 16px; margin-bottom: 35px; }
  .gallery-filters { gap: 8px; flex-wrap: nowrap; overflow-x: auto; padding: 2px 2px 6px; }
  .gallery-filters button { white-space: nowrap; font-size: .875rem; padding: 10px 14px; flex-shrink: 0; }
  .gallery-filters button>span { font-size: .75rem; }
  .gallery-group-title { grid-template-columns: 1fr; gap: 18px; margin-bottom: 28px; }
  .gallery-group-title h2 { font-size: 1.9rem; }
  .gallery-group-title p { font-size: 1rem; }
  .gallery-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 26px 14px; }
  .gallery-grid .project-card button { aspect-ratio: 3/4; }
  .gallery-grid .project-caption { padding-top: 11px; gap: 4px; }
  .gallery-grid .project-caption h3 { font-size: .875rem; line-height: 1.4; }
  .gallery-grid .project-caption>span { font-size: .75rem; }
  .gallery-grid .project-index { top: 10px; left: 10px; font-size: .75rem; }
  .gallery-grid .project-open { width: 31px; height: 31px; right: 10px; bottom: 10px; }
  .gallery-grid .project-open svg { width: 17px; height: 17px; }
  .gallery-group { margin-bottom: 55px; }
  .knowledge-grid { gap: 16px; margin: 35px 0 55px; }
  .knowledge-card img { aspect-ratio: 1.1; }
  .knowledge-card>div { padding: 16px 13px; gap: 6px; align-items: start; }
  .knowledge-card h2 { font-size: .875rem; }
  .knowledge-card svg { width: 16px; height: 16px; margin-top: 3px; }
  .knowledge-article { padding: 45px 0; }
  .knowledge-article>h2 { font-size: 2rem; }
  .prose h3 { font-size: 1.3rem; margin-top: 35px; }
  .contact-layout { grid-template-columns: 1fr; gap: 45px; }
  .contact-line { grid-template-columns: 65px minmax(0,1fr) 20px; gap: 12px; }
  .contact-line>span { grid-column: auto; }
  .contact-line>strong { font-size: clamp(1rem,4.4vw,1.3rem); }
  .contact-line svg { width: 19px; height: 19px; }
  .contact-address { margin-top: 35px; }
  .contact-aside { display: grid; grid-template-columns: 1fr 1fr; align-items: center; }
  .contact-aside>img { aspect-ratio: 1; height: 100%; object-fit: cover; object-position: 70% center; }
  .contact-aside>div { padding: 20px; }
  .contact-aside h2 { font-size: 1.1rem; line-height: 1.25; }
  .contact-aside p { font-size: .875rem; }
  .region-section { grid-template-columns: 1fr; gap: 30px; margin-top: 65px; padding-top: 45px; }
  .region-tags span { font-size: .875rem; }
  .legal-content>h2 { font-size: 1.75rem; }
  .cookie-banner { left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); width: auto; max-width: none; padding: 22px; max-height: 70dvh; overflow: auto; }
  .cookie-copy h2 { font-size: 1.125rem; margin-bottom: 9px; }
  .cookie-copy p { font-size: .875rem; line-height: 1.7; }
  .cookie-actions { margin-top: 18px; gap: 9px; }
  .cookie-actions .button { font-size: .875rem; padding: 11px 12px; min-width: 0; }
  .cookie-dialog { padding: 22px; max-height: 85dvh; }
  .cookie-dialog h2 { font-size: 1.75rem; }
  .cookie-category>div { gap: 14px; align-items: flex-start; }
  .status-label { font-size: .75rem; padding: 3px 6px; }
  .dialog-actions .button { font-size: .875rem; padding: 15px; }
  .lightbox { padding: 12px; max-width: 100vw; max-height: 100dvh; border: 0; border-radius: 0; }
  .lightbox-stage { gap: 0; position: relative; }
  .lightbox-stage>img { max-width: calc(100vw - 24px); max-height: 72dvh; }
  .lightbox-stage .icon-button { position: absolute; z-index: 1; width: 36px; height: 36px; bottom: 12px; background: #252b32dd; color: white; }
  .lightbox-prev { left: 10px; }
  .lightbox-next { right: 10px; }
  .lightbox-bar { margin-bottom: 12px; }
  .lightbox>p { font-size: .75rem; }
  .toast { bottom: 90px; }
  .has-cookie-banner .toast { bottom: 20px; }
}
@media(max-width:370px) {
  :root { --gutter: 18px; }
  .brand-lockup { --flame-height: 46px; gap: 10px; }
  .brand-name { font-size: 1.125rem; }
  .footer-top { grid-template-columns: 1fr; gap: 30px; }
  .hero h1 { font-size: 12.5vw; }
  .hero-visual figcaption>span:last-child:not(.hero-ai-note) { display: none; }
  .service-card { grid-template-columns: 1fr; }
  .service-image { aspect-ratio: 1.9; }
  .service-body h3 { font-size: 1.7rem; }
  .contact-line { grid-template-columns: 1fr 20px; }
  .contact-line>span { grid-column: 1/-1; }
  .cookie-actions { flex-direction: column; }
  .trust-strip .container>div { padding-left: 15px; }
  .trust-strip span { font-size: .75rem; }
}
/* A smaller fixed masthead gives the page more room once the visitor scrolls.
   Scope these changes to the header so the footer identity keeps its size. */
@media(max-width:1100px) {
  .site-header .header-inner { transition: min-height .2s var(--ease); }
  .site-header .brand { transition: padding .2s var(--ease); }
  .site-header .brand-flame { transition: width .2s var(--ease),height .2s var(--ease),background-size .2s var(--ease),background-position .2s var(--ease); }
  .site-header.scrolled .header-inner { min-height: 64px; }
  .site-header.scrolled .brand { padding: 3px 0; }
  .site-header.scrolled .brand-lockup { --flame-height: 44px; }
  .site-header.scrolled .menu-button { width: 44px; height: 44px; }
  .site-header.scrolled .navigation { top: 64px; height: calc(100dvh - 64px); }
  .site-header.scrolled~main .gallery-toolbar { top: 63px; }
  html:has(.site-header.scrolled) { scroll-padding-top: 88px; }
}
@media(max-width:640px) {
  .site-header.scrolled .header-inner { min-height: 56px; }
  .site-header.scrolled .brand-lockup { --flame-height: 42px; }
  .site-header.scrolled .brand-kicker { margin-bottom: 2px; }
  .site-header.scrolled .navigation { top: 56px; height: calc(100dvh - 56px); }
  .site-header.scrolled~main .gallery-toolbar { top: 55px; }
  html:has(.site-header.scrolled) { scroll-padding-top: 80px; }
}
/* Homepage refinement: quiet typography, complete project photographs,
   and one strong invitation at the end of the page. */
.home .hero-heading { min-width: 0; }
.home .hero h1 { font-size: clamp(3.8rem,6.5vw,6.6rem); line-height: 1.04; letter-spacing: -.06em; }
.home .hero-description { max-width: 405px; font-size: 1.0625rem; line-height: 1.75; }
.home .hero-signature { margin-top: 34px; }
.home .hero-photo { border-radius: 4px; }
.home .hero-visual figcaption { font-size: .8125rem; }
.home .trust-strip { background: var(--paper); }
.home .trust-strip strong { font-size: 1rem; font-weight: 600; }
.home .project-section { background: #f3f5f7; }
.home .featured-projects { gap: clamp(22px,2.6vw,40px); }
.home .featured-projects .project-card button { aspect-ratio: 1; border-radius: 4px; }
.home .featured-projects .project-caption { gap: 12px; padding-top: 24px; }
.home .featured-projects .project-kind { color: var(--accent); font-size: .8125rem; letter-spacing: .045em; }
.home .featured-projects h3 { font-size: clamp(1.25rem,1.8vw,1.65rem); line-height: 1.3; letter-spacing: -.035em; }
.home .featured-projects p { color: var(--dim); font-size: 1rem; line-height: 1.75; margin: 0; }
.home .featured-projects .project-detail { border-top: 1px solid var(--line); margin-top: 6px; padding-top: 14px; font-size: .8125rem; line-height: 1.6; }
.home .service-card { padding-block: 28px; }
.home .service-image { aspect-ratio: 1.35; border-radius: 4px; }
.home .service-body h3 { font-size: clamp(1.5rem,2.2vw,2.125rem); }
.home .material-details { margin-top: 32px; }
.home .process-section .plan-visual { background: white; border-color: var(--line); border-radius: 4px; padding: 14px; }
.home .plan-visual figcaption { display: flex; justify-content: space-between; gap: 16px; padding: 15px 4px 2px; font-size: .8125rem; line-height: 1.5; color: var(--dim); }
.home .plan-visual figcaption>span:first-child { font-weight: 600; color: var(--ink); }
.home .process-steps { gap: 40px; }
.home .process-steps article { border-top: 1px solid var(--line); padding-top: 24px; }
.home .step-number { border: 0; border-radius: 0; text-align: left; width: auto; height: auto; font-size: .875rem; line-height: 1.5; margin-bottom: 16px; }
.home .about-section { background: var(--paper); border-top: 1px solid var(--line); }
.home .about-picture img { border-radius: 4px; }
.home .photo-badge { border: 1px solid var(--line); padding: 14px 20px; border-radius: 4px; }
.home .about-copy p { color: var(--dim); }
.home .about-copy .about-name { color: var(--ink); }
.home .contact-cta { padding-top: 12px; }
.home .cta-panel { background: var(--accent-dark); color: white; border-radius: 5px; gap: 8%; padding: clamp(34px,5.4vw,80px); }
.home .cta-heading .eyebrow { color: #c8d8e5; font-size: .8125rem; }
.home .cta-heading h2 { font-size: clamp(2.5rem,4.4vw,4.5rem); }
.home .cta-heading h2>span { color: #c8d8e5; }
.home .cta-action p { color: #e3ebf1; }
.home .cta-action .button { background: white; color: var(--accent-dark); }
.home .cta-action .button:hover { background: #e3ebf1; }
.home .cta-phone { color: #e3ebf1; }
@media(min-width:1101px) {
  .home .hero { padding-top: 140px; padding-bottom: 40px; }
  .home .hero-grid { grid-template-columns: .95fr 1.05fr; column-gap: 7%; }
  .home .hero-photo { aspect-ratio: 1.05; }
  .home .featured-projects .project-caption { min-height: 255px; }
  .home .featured-projects .project-detail { margin-top: auto; }
}
@media(min-width:641px) and (max-width:1100px) {
  .home .hero h1 { font-size: 6.4vw; }
  .home .hero-visual figcaption { font-size: .75rem; }
}
@media(max-width:640px) {
  .home .hero h1 { font-size: clamp(2.75rem,11.5vw,4rem); }
  .home .hero-description { font-size: 1rem; }
  .home .hero-visual figcaption { font-size: .75rem; }
  .home .hero-visual figcaption>span:last-child:not(.hero-ai-note) { display: none; }
  .home .trust-strip strong { font-size: .875rem; }
  .home .featured-projects { gap: 38px; }
  .home .featured-projects .project-caption { padding-top: 18px; gap: 10px; }
  .home .featured-projects h3 { font-size: 1.5rem; }
  .home .service-image { aspect-ratio: .85; }
  .home .service-body h3 { font-size: 1.7rem; }
  .home .plan-visual figcaption { flex-direction: column; gap: 3px; padding-top: 10px; }
  .home .process-section .plan-visual { padding: 8px; }
  .home .process-steps { gap: 24px; }
  .home .process-steps article { padding-top: 20px; }
  .home .cta-panel { gap: 28px; padding: 30px 25px; }
  .home .cta-heading h2 { font-size: clamp(2.25rem,9vw,3.4rem); }
  .home .contact-cta { padding-top: 0; }
}
@media(max-width:370px) {
  .home .service-image { aspect-ratio: 1.9; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto; }
  *,*:before,*:after { animation: none!important; transition: none!important; }
  .reveal { opacity: 1!important; translate: none!important; }
}
@media print {
  .site-header,.site-footer,.mobile-contact,.cookie-banner,.contact-cta { display: none!important; }
  .section { padding: 20px 0; }
  .page-hero,.hero { padding: 0; background: white; color: black; }
  .article-layout { display: block; }
  .article-nav { display: none; }
}

/* Visible disclosure for AI-enhanced images. */
.ai-image-note{display:block;margin-top:10px;font-size:12px;line-height:1.5;color:#59616a;font-weight:400;letter-spacing:0;}

.ai-badge{position:absolute;top:14px;left:14px;z-index:2;display:inline-flex;align-items:center;justify-content:center;padding:5px 9px;border-radius:6px;background:rgba(255,255,255,.94);color:#24313b;font-size:11px;font-weight:700;line-height:1.2;letter-spacing:.06em;box-shadow:0 1px 8px rgba(0,0,0,.08);pointer-events:none}.hero-visual figcaption{flex-wrap:wrap}.hero-visual figcaption .hero-ai-note{flex:0 0 100%;margin-top:3px;font-size:12px;line-height:1.5;color:#59616a;text-align:left}

/* Keep the hero disclosure visible at every breakpoint. */
.home .hero-visual figcaption > .hero-ai-note{display:block;flex:0 0 100%;max-width:none;white-space:normal}
.ai-badge{font-size:10px;font-weight:500;letter-spacing:0;padding:5px 8px;line-height:1.3}

/* Subtle disclosure at the lower edge, clear of the expand control. */
.ai-badge{top:auto;bottom:10px;left:10px;right:auto;padding:3px 6px;border-radius:3px;background:rgba(255,255,255,.82);color:#4a5056;font-size:10px;font-weight:400;letter-spacing:0;box-shadow:none;line-height:1.35}
.home .hero-visual figcaption{display:block}.home .hero-visual figcaption > .hero-ai-note{margin-top:0;max-width:none;font-size:11px;line-height:1.5;font-weight:400}

/* Minimal, readable AI-edit label without a badge background. */
.ai-badge{background:none;padding:0;border:0;border-radius:0;box-shadow:none;color:#fff;font-size:11px;font-weight:400;line-height:1.3;letter-spacing:0;text-shadow:0 1px 3px rgba(0,0,0,.85);bottom:12px;left:12px}

/* Compact gallery captions let the photographs lead. */
.gallery-grid .project-caption{padding-top:8px;gap:2px}.gallery-grid .project-caption h3{font-size:12px;line-height:1.4;font-weight:500;letter-spacing:0}.gallery-grid .project-caption>span{font-size:10px;line-height:1.4}.lightbox #lightbox-caption{font-size:12px;line-height:1.5;font-weight:400;max-width:720px;margin:10px auto 2px;letter-spacing:0}@media(max-width:640px){.lightbox #lightbox-caption{font-size:11px;line-height:1.45;margin-top:8px}}

/* Expandable service categories in the mobile navigation. */
.services-menu{display:none}
@media(max-width:1100px){
.navigation>.services-desktop{display:none}
.services-menu{display:block;flex-shrink:0}
.services-menu summary{display:flex;align-items:center;justify-content:space-between;list-style:none;cursor:pointer;font-size:2rem;font-weight:500;letter-spacing:-.04em;padding:12px 0}
.services-menu summary::-webkit-details-marker{display:none}
.services-menu summary span{font-size:1.5rem;letter-spacing:0;transition:transform .2s}
.services-menu[open] summary span{transform:rotate(180deg)}
.services-submenu{display:flex;flex-direction:column;gap:2px;margin:0 0 12px 4px;padding-left:16px;border-left:1px solid var(--line)}
.services-submenu a{display:block;font-size:1rem;font-weight:400;line-height:1.5;letter-spacing:0;padding:10px 0;color:var(--dim)}
.services-submenu a:hover{color:var(--accent)}
.services-menu summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
}
.service-feature{scroll-margin-top:110px}

.knowledge-image{position:relative;display:block;overflow:hidden}
.knowledge-image .ai-badge{font-size:12px;bottom:10px;left:10px}

#anheizen .knowledge-image .ai-badge{top:10px;right:10px;bottom:auto;left:auto}

.home-ai-note{display:block;font-size:12px;line-height:1.5;color:var(--dim);font-weight:400;margin-top:8px}

/* Readable gallery labels and a more compact mobile homepage. */
.gallery-grid .project-caption h3{font-size:14px;line-height:1.45}
.gallery-grid .project-caption>span{font-size:12px;line-height:1.5}
.lightbox #lightbox-caption{font-size:14px;line-height:1.55}
@media(max-width:640px){
.home .section{padding-top:48px;padding-bottom:48px}
.home .section-heading{margin-bottom:26px;gap:20px}
.home .featured-projects{gap:28px}
.home .featured-projects .project-caption{padding-top:12px;gap:6px;min-height:0}
.home .service-grid{row-gap:28px}
.home .service-image{aspect-ratio:1.2}
.home .process-steps{gap:20px}
.home .about-grid{gap:28px}
}

.contact-portrait{margin:0;min-width:0;align-self:start}.contact-portrait img{display:block;width:100%;height:auto;aspect-ratio:auto}.contact-portrait .ai-image-note{font-size:12px;line-height:1.45;margin:0;padding:8px 12px 10px}

/* Keep the mobile hero photograph unobstructed; project link remains below. */
@media(max-width:640px){.hero-photo-link{display:none}}

/* Text overlays only; supplied comparison PNG remains byte-for-byte unchanged. */
.cad-comparison{display:block;position:relative;width:100%;container-type:inline-size}.cad-comparison>img{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain}.cad-comparison-label{position:absolute;top:0;height:11%;width:25%;display:flex;align-items:center;padding:0 1.5%;box-sizing:border-box;background:#393630;color:white;font-size:clamp(8px,2.1cqw,25px);line-height:1.1;white-space:nowrap;font-weight:400}.cad-label-plan{left:0}.cad-label-built{left:51.36%}
