
:root{
  --bg:#111111;
  --panel:#1f1f1f;
  --text:#f7f5f1;
  --muted:#c9c3b8;
  --line:#34312c;
  --accent:#b69a6a;
  --white:#ffffff;
  --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Arial,Helvetica,sans-serif;
  color:#1a1a1a;
  background:#fff;
  line-height:1.6;
}
a{color:inherit}
img{max-width:100%;display:block}
.container{width:min(var(--max),calc(100% - 36px));margin:auto}
.site-header{
  position:sticky;top:0;z-index:1000;
  background:rgba(11,11,11,.96);
  border-bottom:1px solid #222;
}
.header-inner{
  min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px;
}
.brand{
  text-decoration:none;color:#fff;font-weight:800;letter-spacing:.08em;font-size:1.15rem;
}
.brand small{display:block;color:var(--accent);font-size:.68rem;letter-spacing:.18em;font-weight:700}
.nav{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.nav a{color:#fff;text-decoration:none;font-size:.92rem}
.nav a:hover{color:var(--accent)}
.nav .cta{background:var(--accent);color:#111;padding:11px 15px;border-radius:6px;font-weight:800}
.mobile-toggle{display:none;background:none;color:#fff;border:1px solid #444;border-radius:6px;padding:8px 10px;font-size:1.1rem}
.hero{
  background:
    linear-gradient(90deg,rgba(8,8,8,.92),rgba(8,8,8,.72)),
    linear-gradient(135deg,#222,#0f0f0f 60%,#2a2418);
  color:#fff;padding:94px 0 86px;
}
.hero.compact{padding:72px 0}
.eyebrow{color:var(--accent);text-transform:uppercase;letter-spacing:.16em;font-weight:800;font-size:.78rem;margin-bottom:14px}
h1{font-size:clamp(2.3rem,6vw,4.7rem);line-height:1.02;margin:.1em 0 .28em;letter-spacing:-.03em}
h2{font-size:clamp(1.7rem,4vw,2.8rem);line-height:1.12;margin:0 0 16px;letter-spacing:-.02em}
h3{font-size:1.25rem;margin:0 0 8px}
.lead{font-size:1.15rem;max-width:760px;color:#e4dfd6}
.btns{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.btn{display:inline-block;text-decoration:none;padding:13px 18px;border-radius:7px;font-weight:800;border:1px solid transparent}
.btn.primary{background:var(--accent);color:#111}
.btn.secondary{border-color:#6f685f;color:#fff;background:transparent}
.btn.dark{background:#111;color:#fff}
.btn.outline{border-color:#111;color:#111}
.section{padding:72px 0}
.section.alt{background:#f5f3ef}
.section.dark{background:#111;color:#fff}
.section.dark p,.section.dark .muted{color:#d8d1c6}
.grid{display:grid;gap:22px}
.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.card{
  border:1px solid #d8d1c87ce;border-radius:12px;padding:28px;background:#fff;
  box-shadow:0 8px 30px rgba(0,0,0,.04)
}
.dark .card{background:#171717;border-color:#2a2a2a;color:#fff}
.card p:last-child{margin-bottom:0}
.muted{color:#6f685f}
.kicker{font-size:1.05rem;font-weight:700}
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:42px;align-items:center}
.placeholder{
  min-height:360px;border-radius:14px;background:
  linear-gradient(135deg,#e4dfd6,#f7f7f7 55%,#cbbda5);
  display:flex;align-items:center;justify-content:center;text-align:center;color:#555;padding:30px;
  border:1px dashed #aaa;
}
.checks{list-style:none;padding:0;margin:22px 0}
.checks li{padding:8px 0 8px 28px;position:relative}
.checks li:before{content:"✓";position:absolute;left:0;color:var(--accent);font-weight:900}
.band{background:var(--accent);color:#111;padding:28px 0}
.band-inner{display:flex;align-items:center;justify-content:space-between;gap:22px;flex-wrap:wrap}
.band h2{margin:0;font-size:clamp(1.5rem,3.3vw,2.3rem)}
.form{
  max-width:860px;margin:auto;background:#fff;border:1px solid #d8d1c8;border-radius:14px;padding:28px;
  box-shadow:0 10px 30px rgba(0,0,0,.05)
}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.field{display:flex;flex-direction:column;gap:7px}
.field.full{grid-column:1/-1}
label{font-weight:700}
input,select,textarea{
  width:100%;font:inherit;padding:12px 13px;border:1px solid #bdbdbd;border-radius:7px;background:#fff;
}
textarea{min-height:150px;resize:vertical}
input[type=file]{padding:10px;background:#f8f5f0}
.help{font-size:.86rem;color:#6f685f}
.notice{padding:14px 16px;border-radius:8px;background:#f3eee4;border-left:4px solid var(--accent);margin:18px 0}
.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.project{
  min-height:220px;border-radius:12px;background:linear-gradient(135deg,#d8d1c6,#ece7de9e1);
  display:flex;align-items:flex-end;padding:18px;font-weight:800;border:1px solid #d8d1c8
}
.site-footer{background:#090909;color:#ccc;padding:46px 0 24px}
.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:28px}
.site-footer a{color:#d8d1c8;text-decoration:none}
.site-footer a:hover{color:var(--accent)}
.footer-bottom{border-top:1px solid #242424;margin-top:30px;padding-top:20px;font-size:.86rem;color:#8b8378}
.callout{border-left:4px solid var(--accent);padding-left:18px}
.center{text-align:center}
.max700{max-width:700px;margin-left:auto;margin-right:auto}
.small{font-size:.9rem}
@media (max-width:900px){
  .nav{display:none;position:absolute;top:76px;left:0;right:0;background:#0b0b0b;padding:18px;flex-direction:column;align-items:flex-start;border-top:1px solid #222}
  .nav.open{display:flex}
  .mobile-toggle{display:block}
  .grid.three,.project-grid{grid-template-columns:1fr 1fr}
  .split{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:620px){
  .hero{padding:70px 0 62px}
  .section{padding:54px 0}
  .grid.two,.grid.three,.project-grid,.form-grid,.footer-grid{grid-template-columns:1fr}
  .field.full{grid-column:auto}
  .header-inner{min-height:68px}
  .nav{top:68px}
  .form{padding:20px}
}

.logo-link{display:flex;align-items:center;gap:12px;text-decoration:none}
.logo-mark{width:54px;height:54px;object-fit:cover;object-position:center;background:#fff;border-radius:3px}
.logo-word{color:#fff;font-weight:800;letter-spacing:.11em;line-height:1.05}
.logo-word small{display:block;color:#bbb;font-size:.63rem;letter-spacing:.16em;margin-top:4px}
.hero.photo-hero{position:relative;background:#111;color:#fff;overflow:hidden}
.hero.photo-hero:before{content:"";position:absolute;inset:0;background-image:linear-gradient(90deg,rgba(0,0,0,.88) 0%,rgba(0,0,0,.72) 45%,rgba(0,0,0,.38) 100%),url('/assets/images/custom-home-finished.jpg');background-size:cover;background-position:center}
.hero.photo-hero .container{position:relative;z-index:1}
.photo-card{border-radius:14px;overflow:hidden;min-height:360px;background:#ece7de}
.photo-card img{width:100%;height:100%;min-height:360px;object-fit:cover}
.project.photo{position:relative;overflow:hidden;min-height:260px;padding:0;background:#111}
.project.photo img{width:100%;height:260px;object-fit:cover;transition:transform .25s ease}
.project.photo:hover img{transform:scale(1.025)}
.project.photo span{position:absolute;left:0;right:0;bottom:0;padding:34px 18px 16px;background:linear-gradient(transparent,rgba(0,0,0,.82));color:#fff}
.repair-photo-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px}
.repair-photo-grid img{width:100%;height:100%;min-height:240px;object-fit:cover;border-radius:12px}
.footer-logo{width:150px;background:#fff;border-radius:4px;margin-bottom:16px}
@media(max-width:900px){.repair-photo-grid{grid-template-columns:1fr}.logo-word{display:none}}

.project-story{padding:64px 0;border-bottom:1px solid #e2ddd4}
.project-story.alt{background:#f5f3ef}
.project-story-head{display:grid;grid-template-columns:.75fr 1.25fr;gap:36px;align-items:start;margin-bottom:26px}
.project-story .meta{font-size:.82rem;text-transform:uppercase;letter-spacing:.13em;font-weight:800;color:#756d63}
.project-story h2{margin-top:6px}
.photo-sequence{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.photo-sequence.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.photo-tile{position:relative;overflow:hidden;border-radius:12px;background:#ece7de;min-height:240px;border:1px solid #d8d1c8}
.photo-tile img{width:100%;height:100%;min-height:240px;object-fit:cover}
.photo-tile .label{position:absolute;left:12px;top:12px;background:rgba(0,0,0,.72);color:#fff;font-size:.78rem;font-weight:800;padding:6px 9px;border-radius:5px}
.small-project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.small-project{border:1px solid #d8d1c8;border-radius:12px;overflow:hidden;background:#fff}
.small-project .pair{display:grid;grid-template-columns:1fr 1fr}
.small-project img{width:100%;height:210px;object-fit:cover}
.small-project .copy{padding:18px}
@media(max-width:900px){
.project-story-head,.photo-sequence,.photo-sequence.two,.small-project-grid{grid-template-columns:1fr}
}

.hero.photo-hero:before{
  background-position:center 48%;
  background-image:
    linear-gradient(90deg,rgba(0,0,0,.88) 0%,rgba(0,0,0,.73) 42%,rgba(0,0,0,.28) 100%),
    url('/assets/images/custom-home-finished.jpg');
}

.band p{max-width:720px}
@media(max-width:620px){
  .band-inner{align-items:flex-start}
  .band .btn{width:100%;text-align:center}
}

/* V9 warm Eleven17 palette */
.band{background:#b69a6a;color:#111}
.band .eyebrow{color:#111 !important}
.btn.primary{background:#b69a6a;color:#111}
.nav .cta{background:#b69a6a;color:#111}
.eyebrow{color:#b69a6a}
.checks li:before{color:#b69a6a}
.notice{background:#f3eee4;border-left-color:#b69a6a}
.section.alt,.project-story.alt{background:#f5f3ef}
.site-header,.site-footer{background:#111111}

/* V10 homepage featured work crop refinements */
.project.photo.featured-home img{object-position:center 54%}
.project.photo.featured-kitchen img{object-position:center 58%}
.project.photo.featured-repair img{object-position:center 48%}

/* V11 logo and process refinements */
.logo-mark{
  width:72px;
  height:72px;
}
.header-inner{
  min-height:92px;
}
.nav{
  gap:20px;
}
.process-intro{
  max-width:900px;
  margin-bottom:34px;
}
.process-intro p{
  max-width:860px;
  font-size:1.05rem;
}
.process-row{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
}
.process-card{
  min-height:220px;
}
.process-number{
  font-size:.78rem;
  letter-spacing:.14em;
  font-weight:900;
  color:#b69a6a;
  margin-bottom:12px;
}
@media(max-width:1000px){
  .process-row{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
  .logo-mark{width:62px;height:62px}
  .header-inner{min-height:80px}
  .nav{top:80px}
}
@media(max-width:620px){
  .process-row{grid-template-columns:1fr}
  .process-card{min-height:auto}
  .logo-mark{width:58px;height:58px}
}

/* V12 larger logo + simple process numbering */
.logo-mark{
  width:92px;
  height:92px;
}
.header-inner{
  min-height:112px;
}
.process-number{
  font-size:1rem;
  letter-spacing:0;
}
@media(max-width:900px){
  .logo-mark{width:76px;height:76px}
  .header-inner{min-height:94px}
  .nav{top:94px}
}
@media(max-width:620px){
  .logo-mark{width:70px;height:70px}
  .header-inner{min-height:86px}
  .nav{top:86px}
}

/* V13 Residential Services refinements */
.residential-services .card h3{margin-bottom:10px}

/* V16 contact + social refinements */
.site-footer a[target="_blank"]{white-space:nowrap}

/* V18 launch additions */
.review-qr-card{max-width:360px;margin:auto;text-align:center;padding:24px;border:1px solid #d8d1c8;border-radius:14px;background:#fff}
.review-qr-card img{width:220px;height:220px;max-width:100%;image-rendering:pixelated}
.partner-card{align-self:stretch}
.local-partner .btn{margin-top:8px}
