:root {
  --ink: #1a1c1b;
  --graphite: #2c302e;
  --metal: #8a918c;
  --paper: #f4f1ea;
  --cream: #ebe6dc;
  --white: #fbfaf7;
  --accent: #9c6b3c;
  --line: rgba(26,28,27,.12);
  --max: 1180px;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: "Source Sans 3", "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--white);
  line-height: 1.6;
  font-size: 17px;
}
img { max-width: 100%; display: block; height: auto; }
a { color: inherit; }
.wrap { width: min(var(--max), calc(100% - 48px)); margin: 0 auto; }
.topbar {
  background: var(--ink);
  color: #d8d5ce;
  font-size: 12px;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: 8px 0;
}
.topbar .wrap { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.topbar a { color: #d8d5ce; text-decoration: none; }
.topbar a:hover { color: #fff; }
.lang { color: var(--accent); }
header.site {
  position: sticky; top: 0; z-index: 20;
  background: rgba(251,250,247,.92);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
}
header.site .wrap {
  display: flex; align-items: center; justify-content: space-between;
  min-height: 78px; gap: 24px;
}
.brand { text-decoration: none; display: flex; flex-direction: column; }
.brand strong { font-family: "Cormorant Garamond", Georgia, serif; font-size: 28px; letter-spacing: .16em; font-weight: 600; }
.brand span { font-size: 11px; letter-spacing: .22em; text-transform: uppercase; color: var(--metal); }
nav.main { display: flex; gap: 26px; font-size: 13px; letter-spacing: .14em; text-transform: uppercase; }
nav.main a { text-decoration: none; color: var(--graphite); }
nav.main a:hover, nav.main a.active { color: var(--accent); }
.cta {
  background: var(--ink); color: var(--paper) !important;
  text-decoration: none; padding: 11px 18px; font-size: 12px;
  letter-spacing: .16em; text-transform: uppercase;
  display: inline-block;
}
.cta:hover { background: var(--accent); }
.hero {
  position: relative; min-height: 78vh;
  display: grid; place-items: end start;
  color: #fff;
  background: #111 center/cover no-repeat;
}
.hero::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(10,12,11,.15), rgba(10,12,11,.72));
}
.hero .copy { position: relative; z-index: 1; padding: 0 0 72px; width: min(var(--max), calc(100% - 48px)); margin: 0 auto; }
.kicker { letter-spacing: .28em; text-transform: uppercase; font-size: 12px; color: #d4b48a; }
.hero h1 {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(40px, 6vw, 76px);
  line-height: 1.05; font-weight: 500; margin: 10px 0 18px; max-width: 16ch;
}
.hero p { max-width: 46ch; color: #e8e4db; margin: 0 0 28px; }
.page-hero {
  background: var(--ink) center/cover no-repeat; color: #fff;
  padding: 88px 0 56px; position: relative;
}
.page-hero::after { content:""; position:absolute; inset:0; background: rgba(12,14,13,.55); }
.page-hero .wrap { position: relative; z-index: 1; }
.page-hero h1 { font-family: "Cormorant Garamond", Georgia, serif; font-size: clamp(36px, 5vw, 58px); font-weight: 500; margin: 8px 0 0; }
section { padding: 84px 0; }
.sec-title { font-family: "Cormorant Garamond", Georgia, serif; font-size: clamp(30px, 4vw, 46px); font-weight: 500; margin: 8px 0 16px; }
.lead { font-size: 19px; color: #4a4e4b; max-width: 62ch; }
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.grid-2 { display: grid; grid-template-columns: 1.1fr .9fr; gap: 48px; align-items: center; }
.grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.card { background: #fff; border: 1px solid var(--line); }
.card img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.card .body { padding: 18px 20px 22px; }
.card h3 { margin: 0 0 8px; font-size: 20px; font-family: "Cormorant Garamond", Georgia, serif; font-weight: 600; }
.card p { margin: 0; color: #555; font-size: 15px; }
.card a.more { display: inline-block; margin-top: 12px; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--accent); text-decoration: none; }
.stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; background: var(--ink); color: var(--paper); }
.stat { padding: 36px 20px; border-right: 1px solid rgba(255,255,255,.08); }
.stat:last-child { border: 0; }
.stat b { display: block; font-family: "Cormorant Garamond", Georgia, serif; font-size: 36px; font-weight: 500; }
.stat span { font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: #b8b4ab; }
.split { background: var(--paper); }
.figure { position: relative; }
.figure img { width: 100%; aspect-ratio: 5/4; object-fit: cover; }
.caption { font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--metal); margin-top: 10px; }
table.specs { width: 100%; border-collapse: collapse; font-size: 15px; }
table.specs th, table.specs td { text-align: left; padding: 12px 10px; border-bottom: 1px solid var(--line); }
table.specs th { width: 38%; color: var(--metal); font-weight: 600; letter-spacing: .06em; text-transform: uppercase; font-size: 12px; }
.gallery { display: grid; grid-template-columns: 1.4fr 1fr; gap: 10px; }
.gallery img { width: 100%; height: 100%; object-fit: cover; }
.gallery .stack { display: grid; gap: 10px; }
form.inq { display: grid; gap: 12px; }
form.inq input, form.inq textarea, form.inq select {
  width: 100%; border: 1px solid var(--line); background: #fff; padding: 12px 14px; font: inherit;
}
form.inq textarea { min-height: 140px; }
footer.site { background: var(--graphite); color: #c9c6be; padding: 48px 0 24px; font-size: 14px; }
footer.site a { color: #e8e4db; text-decoration: none; }
footer.site .cols { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 32px; margin-bottom: 32px; }
footer.site .brand strong { color: #fff; }
.legal { border-top: 1px solid rgba(255,255,255,.1); padding-top: 16px; font-size: 12px; color: #9a968e; }
@media (max-width: 900px) {
  .grid-3, .grid-4, .grid-2, .stats, footer.site .cols, .gallery { grid-template-columns: 1fr; }
  nav.main { display: none; }
  .hero { min-height: 68vh; }
}

/* === fail-patch enrich (senkosteel-inspired layout density) === */
:root{--fp-ink:#0B1220;--fp-blue:#1E5AA8;--fp-blue-soft:#8FB1DD;--fp-muted:#5B6B7C;--fp-bg:#F5F7FA;--fp-line:#D7DEE7;--fp-max:1160px;--fp-s-4:1rem;--fp-s-5:1.5rem;--fp-s-6:2rem;--fp-s-7:3rem;--fp-s-8:4rem;--fp-s-9:5rem}
.full-bleed,.hero.full-bleed,.hero-full,.banner-full{position:relative;isolation:isolate;overflow:hidden;min-height:100vh;min-height:70vh;background-size:cover;background-position:center}
.hero.full-bleed{display:flex;align-items:flex-end;color:#fff;background:#0B1220}
.hero.full-bleed .hero-media,.hero-full .hero-media{position:absolute;inset:0;z-index:-2}
.hero.full-bleed .hero-media img,.hero-full .hero-media img{width:100%;height:100%;object-fit:cover;display:block}
.hero.full-bleed::after,.hero-full::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(100deg,rgba(11,18,32,.78),rgba(11,18,32,.45) 55%,rgba(11,18,32,.55));pointer-events:none}
.hero.full-bleed .hero-inner,.hero.full-bleed .wrap{position:relative;z-index:1;padding:var(--fp-s-9) 1.25rem var(--fp-s-8);max-width:760px}
.hero.full-bleed h1{color:#fff;font-size:clamp(1.75rem,4vw,3rem);line-height:1.15;margin:0 0 1rem}
.hero.full-bleed p,.hero.full-bleed .hero-lead{color:#D5DFEB;font-size:1.05rem;line-height:1.6;max-width:44em}
.hero-strip{background:rgba(255,255,255,.07);border-top:1px solid rgba(255,255,255,.14)}
.hero-strip .wrap,.fp-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:0;max-width:var(--fp-max);margin:0 auto;padding:0 1.25rem}
.hero-strip div,.fp-strip>div{padding:1.25rem 1.25rem 1.25rem 0;border-right:1px solid rgba(255,255,255,.12)}
.hero-strip div:last-child,.fp-strip>div:last-child{border-right:0}
.fp-section{padding:var(--fp-s-8) 1.25rem;background:#fff}
.fp-section.alt{background:var(--fp-bg)}
.fp-wrap{max-width:var(--fp-max);margin:0 auto}
.fp-section h2{font-size:clamp(1.35rem,2.5vw,1.85rem);margin:0 0 1rem;color:var(--fp-ink)}
.fp-section .lead{color:var(--fp-muted);font-size:1.05rem;line-height:1.65;max-width:48em;margin:0 0 1.75rem}
.fp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1.25rem}
.fp-card{background:#fff;border:1px solid var(--fp-line);border-radius:10px;overflow:hidden;box-shadow:0 1px 2px rgba(11,18,32,.04)}
.fp-card img{width:100%;height:180px;object-fit:cover;display:block;background:#e8eef5}
.fp-card .body{padding:1rem 1.05rem 1.2rem}
.fp-card h3{margin:0 0 .4rem;font-size:1rem;color:var(--fp-ink)}
.fp-card p{margin:0;color:var(--fp-muted);font-size:.92rem;line-height:1.5}
.fp-split{display:grid;grid-template-columns:1.05fr .95fr;gap:2rem;align-items:center}
.fp-split img{width:100%;border-radius:12px;object-fit:cover;max-height:420px}
.fp-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;margin-top:1.5rem}
.fp-facts div{background:#fff;border:1px solid var(--fp-line);border-radius:10px;padding:1rem 1.1rem}
.fp-facts strong{display:block;font-size:1.35rem;color:var(--fp-blue);margin-bottom:.25rem}
.fp-cta{background:var(--fp-ink);color:#fff;padding:var(--fp-s-8) 1.25rem;text-align:center}
.fp-cta h2{color:#fff;margin:0 0 .75rem}
.fp-cta p{color:#D5DFEB;max-width:40em;margin:0 auto 1.25rem;line-height:1.6}
.fp-btn{display:inline-block;background:var(--fp-blue);color:#fff;padding:.85rem 1.35rem;border-radius:8px;text-decoration:none;font-weight:600}
@media (max-width:860px){
  .fp-split{grid-template-columns:1fr}
  .hero-strip .wrap,.fp-strip{grid-template-columns:1fr 1fr}
  .hero.full-bleed{min-height:60vh}
}
@media (max-width:560px){
  .hero-strip .wrap,.fp-strip{grid-template-columns:1fr}
}


/* fail-patch pass2 densify */
.fp-section{padding:4.5rem 1.25rem}.fp-wrap{max-width:1160px;margin:0 auto}
.fp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1.25rem}
.fp-card{border:1px solid #d7dee7;border-radius:10px;overflow:hidden;background:#fff}
.fp-card img{width:100%;height:180px;object-fit:cover;display:block}
.fp-card .body{padding:1rem}.fp-card h3{margin:0 0 .35rem;font-size:1rem}
.fp-card p{margin:0;color:#5b6b7c;font-size:.92rem;line-height:1.5}
.fp-split{display:grid;grid-template-columns:1.05fr .95fr;gap:2rem;align-items:center}
.fp-split img{width:100%;border-radius:12px;object-fit:cover;max-height:420px}
.fp-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;margin-top:1.25rem}
.fp-facts div{border:1px solid #d7dee7;border-radius:10px;padding:1rem;background:#fff}
.fp-facts strong{display:block;font-size:1.25rem;color:#1e5aa8;margin-bottom:.2rem}
.fp-cta{background:#0b1220;color:#fff;text-align:center;padding:4rem 1.25rem}
.fp-cta h2{color:#fff;margin:0 0 .75rem}.fp-cta p{color:#d5dfeb;max-width:40em;margin:0 auto 1.25rem}
.fp-btn{display:inline-block;background:#1e5aa8;color:#fff;padding:.85rem 1.35rem;border-radius:8px;text-decoration:none;font-weight:600}
.full-bleed{min-height:100vh;background-size:cover;background-position:center}
@media(max-width:860px){.fp-split{grid-template-columns:1fr}}

/* fail-patch pass2 densify */
.fp-section{padding:4.5rem 1.25rem}.fp-wrap{max-width:1160px;margin:0 auto}
.fp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1.25rem}
.fp-card{border:1px solid #d7dee7;border-radius:10px;overflow:hidden;background:#fff}
.fp-card img{width:100%;height:180px;object-fit:cover;display:block}
.fp-card .body{padding:1rem}.fp-card h3{margin:0 0 .35rem;font-size:1rem}
.fp-card p{margin:0;color:#5b6b7c;font-size:.92rem;line-height:1.5}
.fp-split{display:grid;grid-template-columns:1.05fr .95fr;gap:2rem;align-items:center}
.fp-split img{width:100%;border-radius:12px;object-fit:cover;max-height:420px}
.fp-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;margin-top:1.25rem}
.fp-facts div{border:1px solid #d7dee7;border-radius:10px;padding:1rem;background:#fff}
.fp-facts strong{display:block;font-size:1.25rem;color:#1e5aa8;margin-bottom:.2rem}
.fp-cta{background:#0b1220;color:#fff;text-align:center;padding:4rem 1.25rem}
.fp-cta h2{color:#fff;margin:0 0 .75rem}.fp-cta p{color:#d5dfeb;max-width:40em;margin:0 auto 1.25rem}
.fp-btn{display:inline-block;background:#1e5aa8;color:#fff;padding:.85rem 1.35rem;border-radius:8px;text-decoration:none;font-weight:600}
.full-bleed{min-height:100vh;background-size:cover;background-position:center}
@media(max-width:860px){.fp-split{grid-template-columns:1fr}}

/* fail-patch pass2 densify */
.fp-section{padding:4.5rem 1.25rem}.fp-wrap{max-width:1160px;margin:0 auto}
.fp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1.25rem}
.fp-card{border:1px solid #d7dee7;border-radius:10px;overflow:hidden;background:#fff}
.fp-card img{width:100%;height:180px;object-fit:cover;display:block}
.fp-card .body{padding:1rem}.fp-card h3{margin:0 0 .35rem;font-size:1rem}
.fp-card p{margin:0;color:#5b6b7c;font-size:.92rem;line-height:1.5}
.fp-split{display:grid;grid-template-columns:1.05fr .95fr;gap:2rem;align-items:center}
.fp-split img{width:100%;border-radius:12px;object-fit:cover;max-height:420px}
.fp-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;margin-top:1.25rem}
.fp-facts div{border:1px solid #d7dee7;border-radius:10px;padding:1rem;background:#fff}
.fp-facts strong{display:block;font-size:1.25rem;color:#1e5aa8;margin-bottom:.2rem}
.fp-cta{background:#0b1220;color:#fff;text-align:center;padding:4rem 1.25rem}
.fp-cta h2{color:#fff;margin:0 0 .75rem}.fp-cta p{color:#d5dfeb;max-width:40em;margin:0 auto 1.25rem}
.fp-btn{display:inline-block;background:#1e5aa8;color:#fff;padding:.85rem 1.35rem;border-radius:8px;text-decoration:none;font-weight:600}
.full-bleed{min-height:100vh;background-size:cover;background-position:center}
@media(max-width:860px){.fp-split{grid-template-columns:1fr}}
