
/* ===== bundled from site.css ===== */
:root{--ink:#0b0b0a;--ink2:#151513;--paper:#f3efe7;--gold:#e9ae22;--gold2:#f2c654;--line:rgba(255,255,255,.14);--max:1240px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ink);color:#fff;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.55;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}img{display:block;max-width:100%;height:auto}.container{width:min(var(--max),calc(100% - 40px));margin:auto}.eyebrow{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-weight:850}h1,h2,h3{margin:0;line-height:.98;letter-spacing:-.045em}h1{font-size:clamp(3.1rem,8vw,7.4rem);font-weight:780;max-width:1050px}h2{font-size:clamp(2.3rem,5vw,4.7rem)}h3{font-size:1.45rem}p{color:#c8c3ba;font-size:1.02rem}.nav{position:fixed;inset:0 0 auto;z-index:20;background:linear-gradient(to bottom,rgba(5,5,5,.96),rgba(5,5,5,.72),transparent)}.nav-inner{height:104px;display:flex;align-items:center;gap:24px}.brand{display:flex;align-items:center;margin-right:auto}.brand img{width:190px;height:88px;object-fit:contain;object-position:center}.nav-links{display:flex;align-items:center;gap:19px;font-size:.78rem;font-weight:760}.nav-links a{opacity:.76}.nav-links a:hover,.nav-links a.active{opacity:1;color:var(--gold2)}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 19px;border:1px solid var(--gold);background:var(--gold);color:#090909;text-transform:uppercase;letter-spacing:.11em;font-size:.7rem;font-weight:900}.btn.ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.35)}.mobile-toggle{display:none;background:none;border:0;color:#fff;font-size:1.4rem}.hero{min-height:830px;position:relative;display:flex;align-items:flex-end;overflow:hidden}.hero-media{position:absolute;inset:0}.hero-media img{width:100%;height:100%;object-fit:cover}.hero-media:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,5,5,.94),rgba(5,5,5,.68) 48%,rgba(5,5,5,.18)),linear-gradient(0deg,rgba(5,5,5,.9),transparent 58%)}.hero-content{position:relative;z-index:2;padding:185px 0 85px}.hero h1 span{color:var(--gold)}.hero-copy{max-width:660px;font-size:1.18rem;margin:28px 0 34px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.gc-chip{display:inline-flex;margin-bottom:20px;padding:8px 11px;border:1px solid rgba(233,174,34,.55);color:var(--gold);font-size:.69rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.gc-banner{background:var(--gold);color:#0a0a09}.gc-banner .container{min-height:54px;display:flex;align-items:center;justify-content:center;text-align:center;font-size:.73rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.trustbar{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#0d0d0c}.trust-grid{display:grid;grid-template-columns:repeat(5,1fr)}.trust-item{padding:27px 25px;border-right:1px solid var(--line)}.trust-item:last-child{border-right:0}.trust-item strong{display:block}.trust-item span{display:block;color:#918a7e;font-size:.78rem;margin-top:5px}.section{padding:108px 0}.section.light{background:var(--paper);color:var(--ink)}.section.light p{color:#585249}.section-head{display:grid;grid-template-columns:1fr 1fr;gap:62px;align-items:end;margin-bottom:52px}.section-head p{max-width:580px;margin:0 0 5px auto}.service-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:18px}.card{min-height:370px;position:relative;overflow:hidden;background:var(--ink2);border:1px solid rgba(255,255,255,.08);padding:30px;display:flex;flex-direction:column;justify-content:flex-end}.card.large{grid-column:span 7}.card.small{grid-column:span 5}.card:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 85% 18%,rgba(233,174,34,.18),transparent 30%),linear-gradient(135deg,rgba(255,255,255,.04),transparent 45%)}.card>*{position:relative;z-index:1}.card .num{position:absolute;top:28px;right:30px;color:var(--gold);font-size:.78rem}.card h3{font-size:clamp(1.8rem,3vw,3.1rem)}.card p{max-width:520px}.arrow{font-size:.73rem;text-transform:uppercase;letter-spacing:.12em;font-weight:900;color:var(--gold)}.feature{display:grid;grid-template-columns:1.08fr .92fr;min-height:670px;background:#10100e}.feature-image{min-height:580px}.feature-image img{width:100%;height:100%;object-fit:cover}.feature-copy{padding:78px;align-self:center}.quote{font-size:clamp(1.7rem,3vw,3rem);line-height:1.18;color:#fff;letter-spacing:-.035em;margin:28px 0}.process,.capability-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#cfc7ba;border:1px solid #cfc7ba}.capability-grid{grid-template-columns:repeat(3,1fr)}.step,.capability{background:var(--paper);padding:32px;min-height:220px}.step b,.capability .mark{font-size:.72rem;color:#8a6d18;letter-spacing:.12em}.step h3{margin-top:42px}.split{display:grid;grid-template-columns:1fr 1fr;gap:68px;align-items:center}.photo{min-height:580px;position:relative;overflow:hidden;background:#131311}.photo img{width:100%;height:100%;object-fit:cover}.photo-label{position:absolute;left:20px;bottom:20px;background:rgba(8,8,7,.85);padding:10px 13px;font-size:.68rem;letter-spacing:.11em;text-transform:uppercase}.list{margin-top:28px;border-top:1px solid rgba(0,0,0,.16)}.list div{display:flex;justify-content:space-between;gap:18px;padding:17px 0;border-bottom:1px solid rgba(0,0,0,.16);font-weight:650}.list span{color:#7b746a;font-weight:500}.subhero{padding:205px 0 90px;background:linear-gradient(135deg,#0b0b0a,#171710)}.subhero h1{font-size:clamp(3.2rem,7vw,6.3rem)}.subhero p{max-width:690px;font-size:1.15rem}.cta{padding:92px 0;background:var(--gold);color:#0b0b0a}.cta .wrap{display:grid;grid-template-columns:1.5fr .5fr;gap:36px;align-items:end}.cta .btn{background:#0a0a09;color:#fff;border-color:#0a0a09}.footer{padding:58px 0 28px;background:#070706;border-top:1px solid var(--line)}.footer-grid{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:42px}.footer-logo{width:225px}.footer h4{font-size:.7rem;text-transform:uppercase;letter-spacing:.15em;color:var(--gold)}.footer a,.footer p{font-size:.87rem;color:#aaa398;display:block;margin:8px 0}.footer-bottom{border-top:1px solid var(--line);margin-top:42px;padding-top:21px;display:flex;justify-content:space-between;color:#746f66;font-size:.77rem}.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:68px}.form{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form input,.form textarea,.form select{width:100%;background:#fff;border:1px solid #d5cec1;padding:15px;font:inherit;color:#111}.form textarea{grid-column:1/-1;min-height:150px}.form .wide{grid-column:1/-1}.note{font-size:.78rem!important}.faq-list{border-top:1px solid rgba(255,255,255,.15)}.section.light .faq-list{border-top-color:rgba(0,0,0,.16)}.faq-list details{border-bottom:1px solid rgba(255,255,255,.15)}.section.light .faq-list details{border-bottom-color:rgba(0,0,0,.16)}.faq-list summary{cursor:pointer;list-style:none;font-weight:760;font-size:1.05rem;padding:21px 0;display:flex;justify-content:space-between}.faq-list summary:after{content:"+";color:var(--gold);font-size:1.4rem}.section.light .faq-list summary:after{color:#8a6d18}.faq-list details[open] summary:after{content:"–"}.faq-list details p{max-width:850px;margin:0 0 22px}.local-seo a{color:#8a6d18;text-decoration:underline;text-underline-offset:3px}
@media(max-width:980px){.nav-links{gap:13px;font-size:.72rem}.nav .nav-cta{display:none}.trust-grid{grid-template-columns:1fr 1fr}.section-head,.split,.contact-grid,.feature,.cta .wrap,.footer-grid{grid-template-columns:1fr}.service-grid{grid-template-columns:1fr}.card.large,.card.small{grid-column:auto}.feature-copy{padding:54px 28px}.process{grid-template-columns:1fr 1fr}.capability-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.nav-inner{height:82px}.brand img{width:155px;height:72px;object-fit:contain;object-position:center}.mobile-toggle{display:block}.nav-links{display:none;position:absolute;top:82px;left:20px;right:20px;background:#11110f;padding:20px;flex-direction:column;align-items:flex-start;border:1px solid var(--line)}.nav-links.open{display:flex}.hero{min-height:730px}.hero-content{padding-top:145px}.process,.capability-grid{grid-template-columns:1fr}.footer-bottom{flex-direction:column;gap:8px}}
@media(max-width:560px){.container{width:calc(100% - 28px)}h1{font-size:3.15rem}.section{padding:80px 0}.section-head{gap:22px}.trust-grid{grid-template-columns:1fr}.trust-item{border-right:0;border-bottom:1px solid var(--line)}.form{grid-template-columns:1fr}.form textarea,.form .wide{grid-column:auto}.subhero{padding-top:155px}}

.card.full{grid-column:1/-1;min-height:330px}
@media(max-width:980px){.card.full{grid-column:auto}}

.project-gallery{display:grid;grid-template-columns:repeat(12,1fr);gap:12px}
.project-gallery figure{margin:0;position:relative;overflow:hidden;background:#111;min-height:330px;border:1px solid rgba(255,255,255,.08)}
.project-gallery figure.wide{grid-column:span 7}.project-gallery figure.standard{grid-column:span 5}.project-gallery figure.full{grid-column:1/-1;min-height:460px}
.project-gallery img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}.project-gallery figure:hover img{transform:scale(1.018)}
.project-gallery figcaption{position:absolute;left:16px;bottom:16px;max-width:calc(100% - 32px);padding:9px 12px;background:rgba(7,7,6,.82);backdrop-filter:blur(5px);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:#f6f1e8}
.project-photo-note{margin-top:18px;color:#827a6e!important;font-size:.82rem!important}
@media(max-width:760px){.project-gallery{grid-template-columns:1fr}.project-gallery figure.wide,.project-gallery figure.standard,.project-gallery figure.full{grid-column:auto;min-height:300px}}

/* service-card-photo-start */
#services .card{isolation:isolate;min-height:430px;background:#111}
#services .card .service-card-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;filter:saturate(.88) contrast(1.04);transition:transform .45s ease}
#services .card:before{z-index:1;background:linear-gradient(0deg,rgba(5,5,5,.96) 0%,rgba(5,5,5,.78) 36%,rgba(5,5,5,.28) 72%,rgba(5,5,5,.18) 100%),linear-gradient(135deg,rgba(233,174,34,.12),transparent 45%)}
#services .card> :not(.service-card-photo){position:relative;z-index:2}
#services .card:hover .service-card-photo{transform:scale(1.025)}
#services .card h3,#services .card p{max-width:620px;text-shadow:0 1px 16px rgba(0,0,0,.45)}
/* service-card-photo-end */

.area-photo-card{background-size:cover;background-position:center;min-height:430px;isolation:isolate}
.area-photo-card:before{background:linear-gradient(0deg,rgba(5,5,5,.94) 0%,rgba(5,5,5,.67) 52%,rgba(5,5,5,.18) 100%);z-index:0}
.area-photo-card>*{z-index:1}
.area-photo-card .num{background:rgba(5,5,5,.72);border:1px solid rgba(255,255,255,.18);padding:8px 10px;top:20px;right:20px}
.location-photo-credits{margin:18px 0 0;color:#8d867a!important;font-size:.75rem!important;max-width:900px}
\n/* Project photography on the Service Areas high-intent service badges */\n.service-photo-grid .card{isolation:isolate;min-height:390px;height:390px}\n.service-photo-grid .service-card-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;filter:saturate(.88) contrast(1.04);transition:transform .45s ease}\n.service-photo-grid .card:before{background:linear-gradient(0deg,rgba(5,5,5,.95) 0%,rgba(5,5,5,.66) 52%,rgba(5,5,5,.20) 100%);z-index:1}\n.service-photo-grid .card> :not(.service-card-photo){position:relative;z-index:2}\n.service-photo-grid .card:hover .service-card-photo{transform:scale(1.025)}\n
/* Jackson County photo cards sit in a light section, so explicitly preserve
   the same high-contrast treatment used by the Josephine County cards. */
.section.light .area-photo-card{color:#fff}
.section.light .area-photo-card:before{background:linear-gradient(0deg,rgba(5,5,5,.96) 0%,rgba(5,5,5,.76) 54%,rgba(5,5,5,.34) 100%)}
.section.light .area-photo-card h3{color:#fff;text-shadow:0 2px 16px rgba(0,0,0,.68)}
.section.light .area-photo-card p{color:#f0ece5;text-shadow:0 1px 12px rgba(0,0,0,.72)}
.section.light .area-photo-card .num{color:var(--gold);background:rgba(5,5,5,.82)}
.section.light .area-photo-card .arrow{color:var(--gold-soft)}

@media(max-width:760px){.service-photo-grid .card{height:auto;min-height:390px}}

/* Align General Contractor and Deck Builder headings on the same baseline */
.service-photo-grid .card.paired-title-align p{
  min-height:3.4em;
  margin-bottom:1em;
}

@media(max-width:760px){
  .service-photo-grid .card.paired-title-align p{min-height:0}
}




/* Service-page project image + centered logo bar */
.photo.service-logo-photo{
  min-height:0;
  position:relative;
  overflow:hidden;
  background:#131311;
  display:flex;
  flex-direction:column;
}
.photo.service-logo-photo > img:not(.photo-badge-logo){
  width:100%;
  height:580px;
  object-fit:cover;
  flex:0 0 auto;
}
.photo.service-logo-photo .photo-label.logo-badge{
  position:static;
  left:auto;
  bottom:auto;
  transform:none;
  width:100%;
  min-height:190px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:10px 20px;
  background:#080807;
  border:0;
  text-align:center;
}
.photo.service-logo-photo .photo-label.logo-badge .photo-badge-logo{
  width:225px;
  height:auto;
  max-width:90%;
  object-fit:contain;
}

@media(max-width:760px){
  .photo.service-logo-photo > img:not(.photo-badge-logo){
    height:440px;
  }
  .photo.service-logo-photo .photo-label.logo-badge{
    min-height:190px;
    padding:10px 16px;
  }
  .photo.service-logo-photo .photo-label.logo-badge .photo-badge-logo{
    width:225px;
    max-width:85%;
  }
}


/* city-pages-start */
.city-hero{min-height:690px;position:relative;display:flex;align-items:flex-end;background-size:cover;background-position:center;isolation:isolate}
.city-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,5,5,.94),rgba(5,5,5,.70) 48%,rgba(5,5,5,.28)),linear-gradient(0deg,rgba(5,5,5,.90),rgba(5,5,5,.10) 65%);z-index:0}
.city-hero-content{position:relative;z-index:1;padding:190px 0 82px}
.city-hero h1{max-width:980px;font-size:clamp(3.2rem,7vw,6.5rem)}
.city-hero p{max-width:720px;font-size:1.16rem;margin:26px 0 32px;color:#e0dbd2}
.city-prose{columns:2;column-gap:64px;max-width:1100px}
.city-prose p{break-inside:avoid;margin-top:0;margin-bottom:24px;font-size:1.06rem}
.city-service-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:#2c2b28;border:1px solid #2c2b28}
.city-service-card{background:#10100e;padding:34px;min-height:230px;display:flex;flex-direction:column}
.city-service-card h3{font-size:clamp(1.55rem,2.5vw,2.3rem);margin-bottom:12px}
.city-service-card p{margin:0 0 24px;max-width:600px}
.city-service-card .arrow{margin-top:auto}
.city-backlink{margin-top:28px!important}.city-backlink a{color:#8a6d18;text-decoration:underline;text-underline-offset:3px}
.local-guides-section{padding:76px 0;background:#0c0c0b}
.local-guide-links{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:#292824;border:1px solid #292824}
.local-guide-links a{background:#121210;padding:20px 22px;color:#f2eee7;font-weight:750;font-size:.96rem;transition:background .2s,color .2s}
.local-guide-links a:hover{background:#191812;color:var(--gold)}
@media(max-width:760px){.city-hero{min-height:610px}.city-hero-content{padding:150px 0 66px}.city-prose{columns:1}.city-service-grid,.local-guide-links{grid-template-columns:1fr}}
/* city-pages-end */

/* Improved heading contrast in light capability boxes */
.window-benefits .capability h3,
.deck-materials .capability h3{
  color:#24211c;
}


/* Contact form anti-spam honeypot: intentionally invisible to real visitors. */
.hp-field{
  position:absolute!important;
  left:-10000px!important;
  top:auto!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
}


/* Die-cut transparent header logo */
.brand img.header-logo{
  width:190px;
  height:88px;
  object-fit:contain;
  object-position:center;
  filter:drop-shadow(0 2px 10px rgba(0,0,0,.45));
}
@media(max-width:760px){
  .brand img.header-logo{
    width:155px;
    height:72px;
  }
}


/* True floating header-logo treatment */
.nav{
  background:linear-gradient(to bottom,rgba(5,5,5,.34),rgba(5,5,5,.10) 62%,transparent);
}
.brand img.header-logo{
  filter:drop-shadow(0 5px 12px rgba(0,0,0,.34));
}
.nav-links a,
.mobile-toggle{
  text-shadow:0 1px 3px rgba(0,0,0,.95),0 0 10px rgba(0,0,0,.7);
}


/* Final floating header logo override */
.brand img.header-logo{
  width:190px !important;
  height:88px !important;
  object-fit:contain !important;
  object-position:center !important;
  background:transparent !important;
  box-shadow:none !important;
  filter:drop-shadow(0 2px 10px rgba(0,0,0,.35));
}
@media(max-width:760px){
  .brand img.header-logo{
    width:155px !important;
    height:72px !important;
  }
}


/* Homepage service-card title links */
#services .card h3 a{color:inherit;text-decoration:none;}
#services .card h3 a:hover,#services .card h3 a:focus-visible{color:var(--gold2);}


/* Project case studies */
.featured-project-card{display:grid;grid-template-columns:1.08fr .92fr;min-height:430px;background:#10100e;border:1px solid rgba(255,255,255,.10);overflow:hidden}
.featured-project-card:hover .featured-project-image img{transform:scale(1.018)}
.featured-project-image{min-height:390px;overflow:hidden;background:#111}.featured-project-image img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}
.featured-project-copy{padding:48px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.featured-project-copy h3{font-size:clamp(2rem,4vw,3.6rem);margin:12px 0 16px}.featured-project-copy p{max-width:560px;margin:0 0 28px}.project-location{font-size:.69rem;letter-spacing:.13em;text-transform:uppercase;color:var(--gold);font-weight:900}.projects-index-link{margin-top:22px;text-align:right}
.featured-project-card.compact{min-height:340px}.featured-project-card.compact .featured-project-image{min-height:330px}.featured-project-card.compact .featured-project-copy{padding:38px}.featured-project-card.compact .featured-project-copy h3{font-size:clamp(1.8rem,3vw,2.8rem)}
.projects-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.project-card{display:grid;grid-template-rows:320px 1fr;background:#fff;border:1px solid #d8d1c5;color:var(--ink);overflow:hidden}.project-card-image{overflow:hidden}.project-card-image img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}.project-card:hover .project-card-image img{transform:scale(1.018)}.project-card-copy{padding:30px}.project-card-copy h3{font-size:2rem;margin:10px 0 14px}.project-card-copy p{color:#5b554d}.project-index-note{margin:26px 0 0!important;color:#746d63!important;font-size:.86rem!important}
.case-hero{padding:160px 0 58px;background:linear-gradient(135deg,#080807,#151510)}.case-hero-grid{display:grid;grid-template-columns:.88fr 1.12fr;gap:50px;align-items:center}.case-hero-copy h1{font-size:clamp(3.1rem,6vw,6rem);max-width:760px}.case-hero-copy p{max-width:650px;font-size:1.15rem;margin:26px 0 32px}.case-hero-image{min-height:520px;overflow:hidden;border:1px solid rgba(255,255,255,.10)}.case-hero-image img{width:100%;height:100%;object-fit:cover}
.project-snapshot{background:var(--gold);color:#0a0a09}.snapshot-grid{display:grid;grid-template-columns:repeat(4,1fr)}.snapshot-grid>div{padding:24px 22px;border-right:1px solid rgba(10,10,9,.22)}.snapshot-grid>div:last-child{border-right:0}.snapshot-grid span{display:block;font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;font-weight:900;opacity:.7}.snapshot-grid strong{display:block;margin-top:5px;font-size:.92rem}
.case-intro-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:64px;align-items:center}.case-intro-grid h2{margin:12px 0 24px}.case-study-figure{margin:0;background:#111;position:relative;overflow:hidden;min-height:530px}.case-study-figure img{width:100%;height:100%;object-fit:cover}.case-study-figure figcaption,.case-progress-grid figcaption{position:absolute;left:14px;bottom:14px;background:rgba(7,7,6,.84);padding:9px 11px;font-size:.65rem;letter-spacing:.09em;text-transform:uppercase;color:#fff}
.case-progress-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.case-progress-grid figure{margin:0;position:relative;overflow:hidden;background:#111;min-height:520px}.case-progress-grid figure:nth-child(3),.case-progress-grid figure:nth-child(4){min-height:420px}.case-progress-grid img{width:100%;height:100%;object-fit:cover}
.case-scope-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#cfc7ba;border:1px solid #cfc7ba}.case-scope-item{background:var(--paper);padding:30px;min-height:260px}.case-scope-item span{font-size:.7rem;color:#8a6d18;letter-spacing:.12em;font-weight:900}.case-scope-item h3{margin:36px 0 14px}.case-scope-item p{font-size:.96rem}.case-close{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px}.case-close h2{margin-top:10px}.case-close a:not(.arrow){color:#8a6d18;text-decoration:underline;text-underline-offset:3px}.case-close .arrow{display:inline-block;margin-top:12px}
@media(max-width:980px){.featured-project-card,.case-hero-grid,.case-intro-grid,.case-close{grid-template-columns:1fr}.snapshot-grid{grid-template-columns:repeat(2,1fr)}.case-scope-grid{grid-template-columns:repeat(2,1fr)}.projects-grid{grid-template-columns:1fr}.case-hero{padding-top:125px}.case-hero-image{min-height:420px}}
@media(max-width:760px){.featured-project-copy{padding:28px}.featured-project-image,.featured-project-card.compact .featured-project-image{min-height:280px}.snapshot-grid{grid-template-columns:1fr}.snapshot-grid>div{border-right:0;border-bottom:1px solid rgba(10,10,9,.22)}.case-progress-grid{grid-template-columns:1fr}.case-progress-grid figure,.case-progress-grid figure:nth-child(3),.case-progress-grid figure:nth-child(4){min-height:360px}.case-scope-grid{grid-template-columns:1fr}.case-study-figure{min-height:390px}.case-hero-image{min-height:330px}}

/* Project case study: mixed landscape + portrait progress photography */
.case-sequence-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
.case-sequence-grid figure{margin:0;position:relative;overflow:hidden;background:#111;border:1px solid rgba(255,255,255,.08)}
.section.light .case-sequence-grid figure{border-color:rgba(0,0,0,.12)}
.case-sequence-grid figure.wide{grid-column:1/-1}
.case-sequence-grid img{width:100%;height:auto;object-fit:contain}
.case-sequence-grid figcaption{position:absolute;left:14px;bottom:14px;max-width:calc(100% - 28px);background:rgba(7,7,6,.84);padding:9px 11px;font-size:.65rem;letter-spacing:.09em;text-transform:uppercase;color:#fff}
.finished-sauna-grid{align-items:stretch}.finished-sauna-grid figure{display:flex;min-height:0}.finished-sauna-grid figure img{align-self:stretch;object-fit:cover}
@media(max-width:760px){.case-sequence-grid{grid-template-columns:1fr}.case-sequence-grid figure.wide{grid-column:auto}.finished-sauna-grid figure img{height:auto;object-fit:contain}}

/* Sauna case study: full-width uncropped exterior masonry photo */
.finished-sauna-grid figure.exterior-full{grid-column:1/-1;display:block}
.finished-sauna-grid figure.exterior-full img{width:100%;height:auto;object-fit:contain;display:block}

.case-progress-grid.case-progress-single{grid-template-columns:1fr}


.ashland-before-single{max-width:980px;margin-left:auto;margin-right:auto}
.ashland-before-single figure img{width:100%;height:auto;object-fit:contain;display:block}


/* Homepage project case studies showcase */
.homepage-project-showcase{background:#0d0d0c;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.home-project-grid{display:grid;grid-template-columns:1.38fr .62fr;grid-template-rows:repeat(2,minmax(270px,1fr));gap:18px}
.home-project-card{position:relative;min-height:290px;overflow:hidden;background:#111;border:1px solid rgba(255,255,255,.10)}
.home-project-card.main{grid-row:1/3;min-height:590px}
.home-project-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.home-project-card:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(5,5,5,.94) 0%,rgba(5,5,5,.58) 34%,rgba(5,5,5,.08) 68%)}
.home-project-card:hover img{transform:scale(1.018)}
.home-project-copy{position:absolute;z-index:2;left:0;right:0;bottom:0;padding:30px}
.home-project-card.main .home-project-copy{padding:42px}
.home-project-copy h3{font-size:clamp(1.7rem,2.7vw,2.65rem);max-width:560px;margin:10px 0 18px}
.home-project-card.main .home-project-copy h3{font-size:clamp(2.5rem,4.8vw,4.8rem);max-width:760px}
.home-projects-summary{margin-top:18px;padding:25px 28px;background:var(--gold);color:#0a0a09;display:grid;grid-template-columns:1fr auto;gap:34px;align-items:center}
.home-projects-summary strong{display:block;font-size:1.1rem;letter-spacing:-.01em}
.home-projects-summary span{display:block;margin-top:5px;font-size:.88rem;max-width:790px;opacity:.76}
.home-projects-summary .btn{background:#0a0a09;color:#fff;border-color:#0a0a09;white-space:nowrap}

/* Keep the expanded desktop navigation comfortable after adding Projects. */
@media(max-width:1180px) and (min-width:761px){.nav-links{gap:11px;font-size:.68rem}.nav .nav-cta{display:none}}
@media(max-width:980px){.home-project-grid{grid-template-columns:1fr 1fr;grid-template-rows:auto}.home-project-card.main{grid-column:1/-1;grid-row:auto;min-height:500px}.home-project-card{min-height:340px}.home-projects-summary{grid-template-columns:1fr}}
@media(max-width:760px){.home-project-grid{grid-template-columns:1fr}.home-project-card.main,.home-project-card{grid-column:auto;min-height:360px}.home-project-card.main .home-project-copy,.home-project-copy{padding:26px}.home-projects-summary{padding:22px}.home-projects-summary .btn{width:100%}}


/* Homepage desktop scroll guidance */
@media (min-width: 981px){
  /* Let a narrow slice of the next band show on most desktop screens. */
  .home-page .hero{
    min-height:min(830px,calc(100svh - 38px));
  }

  .home-page [data-scroll-stop]{
    scroll-margin-top:104px;
  }

  .scroll-cue{
    position:fixed;
    z-index:18;
    left:50%;
    bottom:20px;
    transform:translate(-50%,10px);
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:5px;
    min-width:130px;
    min-height:54px;
    padding:9px 18px 7px;
    border:1px solid rgba(233,174,34,.42);
    border-radius:999px;
    background:rgba(7,7,6,.76);
    color:#fff;
    font:inherit;
    text-transform:uppercase;
    letter-spacing:.12em;
    font-size:.62rem;
    font-weight:850;
    cursor:pointer;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    -webkit-backdrop-filter:blur(10px);
    backdrop-filter:blur(10px);
    box-shadow:0 8px 28px rgba(0,0,0,.24);
    transition:opacity .3s ease,transform .3s ease,visibility .3s ease,border-color .25s ease,background .25s ease;
  }

  .scroll-cue.is-visible{
    opacity:.92;
    visibility:visible;
    pointer-events:auto;
    transform:translate(-50%,0);
  }

  .scroll-cue:hover,
  .scroll-cue:focus-visible{
    opacity:1;
    border-color:rgba(244,196,61,.92);
    background:rgba(7,7,6,.9);
    outline:none;
  }

  .scroll-cue-label{
    max-width:120px;
    overflow:hidden;
    white-space:nowrap;
    opacity:1;
    transition:max-width .3s ease,opacity .2s ease,margin .3s ease;
  }

  .scroll-cue-chevron{
    width:11px;
    height:11px;
    border-right:2px solid var(--gold);
    border-bottom:2px solid var(--gold);
    transform:rotate(45deg);
    animation:scrollCueDrift 1.8s ease-in-out infinite;
  }

  /* After the first scroll, the reminder becomes a much smaller gold cue. */
  .scroll-cue.is-compact{
    min-width:42px;
    width:42px;
    min-height:42px;
    height:42px;
    padding:7px;
    gap:0;
  }

  .scroll-cue.is-compact .scroll-cue-label{
    max-width:0;
    opacity:0;
    margin:0;
  }

  @keyframes scrollCueDrift{
    0%,100%{transform:translateY(-2px) rotate(45deg)}
    50%{transform:translateY(3px) rotate(45deg)}
  }
}

/* No persistent scroll prompt on tablets/phones. */
@media (max-width: 980px){
  .scroll-cue{display:none!important}
}

@media (prefers-reduced-motion: reduce){
  .scroll-cue,
  .scroll-cue-label{
    transition:none!important;
  }
  .scroll-cue-chevron{
    animation:none!important;
  }
}

/* Homepage watermark presentation utilities.
   Policy: no watermark should be visible anywhere on the homepage.
   Apply these classes only when a watermarked source image would otherwise show its bottom-right mark.
   Prefer the smallest crop that hides the mark; if that harms composition, use the original unwatermarked source instead. */
.homepage-wm-crop-1{transform:scale(1.018)}
.homepage-wm-crop-2{transform:scale(1.028)}
.homepage-wm-crop-3{transform:scale(1.04)}
/* Per-image object-position can be added inline or as a dedicated class after visual review. */

/* Branded 404 page */
.error-page{
  min-height:760px;
  position:relative;
  overflow:hidden;
  display:flex;
  align-items:center;
  padding:185px 0 105px;
  background:
    radial-gradient(circle at 80% 32%,rgba(233,174,34,.12),transparent 25%),
    linear-gradient(135deg,#0b0b0a,#151512 58%,#0b0b0a);
}
.error-watermark{
  position:absolute;
  right:-.04em;
  top:50%;
  transform:translateY(-48%);
  font-size:clamp(18rem,40vw,42rem);
  line-height:.75;
  font-weight:900;
  letter-spacing:-.09em;
  color:rgba(255,255,255,.025);
  user-select:none;
  pointer-events:none;
}
.error-content{position:relative;z-index:1}
.error-page h1{max-width:900px;font-size:clamp(3.5rem,7vw,6.7rem)}
.error-page h1 span{color:var(--gold)}
.error-copy{max-width:680px;font-size:1.16rem;margin:28px 0 32px}
.error-actions{margin-bottom:26px}
.error-small{font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;color:#817b70;margin:0}
@media(max-width:760px){
  .error-page{min-height:690px;padding:145px 0 84px}
  .error-watermark{font-size:21rem;right:-.22em;top:42%}
  .error-page h1{font-size:clamp(3.1rem,13vw,4.5rem)}
}

/* Photo credits */
.credit-list{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#cfc7ba;border:1px solid #cfc7ba}.credit-item{background:var(--paper);padding:28px}.credit-item h3{font-size:1.18rem;line-height:1.2;letter-spacing:-.02em}.credit-item p{margin:12px 0 0;font-size:.92rem}.credit-item a{color:#725a15;text-decoration:underline;text-underline-offset:3px}@media(max-width:760px){.credit-list{grid-template-columns:1fr}}

.form-required-note{grid-column:1/-1;margin:0 0 2px;color:#6e675d;font-size:.82rem}

.form input::placeholder,.form textarea::placeholder{color:#918a7e;opacity:1}


.phone-mask-wrap{--phone-prefix-width:0ch;position:relative;width:100%;min-width:0;background:#fff;border:1px solid #d5cec1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;overflow:hidden}
.phone-mask-wrap:focus-within{border-color:#8a6d18;box-shadow:0 0 0 1px rgba(138,109,24,.12)}
.phone-mask-guide{position:absolute;z-index:1;left:15px;top:50%;transform:translateY(-50%);color:#918a7e;font:inherit;line-height:1.55;white-space:pre;pointer-events:none;user-select:none}
.phone-mask-wrap::after{content:"";position:absolute;z-index:2;left:15px;top:0;bottom:0;width:var(--phone-prefix-width);background:#fff;pointer-events:none}
.form .phone-mask-wrap input{position:relative;z-index:3;width:100%;border:0;background:transparent;font:inherit;color:#111;outline:0;padding:15px}

/* ===== bundled from mobile-menu-v3.css ===== */
/* Mobile navigation clarity enhancement: MENU label with the original hamburger glyph. */
@media (max-width:760px){
  .mobile-toggle{
    display:inline-flex;
    align-items:center;
    justify-content:flex-end;
    gap:9px;
    min-width:82px;
    min-height:44px;
    padding:8px 0 8px 8px;
    font-size:1.4rem;
    line-height:1;
    color:#fff;
    cursor:pointer;
    -webkit-tap-highlight-color:transparent;
  }
  .mobile-toggle::before{
    content:"MENU";
    font-size:.68rem;
    line-height:1;
    font-weight:850;
    letter-spacing:.12em;
    color:rgba(255,255,255,.92);
  }
  .mobile-toggle::after{content:none;}
  .mobile-toggle:focus-visible{
    outline:2px solid var(--gold2);
    outline-offset:3px;
  }
}

/* ===== bundled from light-card-contrast-v1.css ===== */
/* Varanelli Construction — light-card readability
   Slightly darker body copy on off-white/white informational cards.
   Scoped to light card components so dark sections are unchanged. */
.step p,
.capability p,
.case-scope-item p,
.credit-item p,
.project-card-copy p {
  color: #514b43;
}

/* ===== bundled from mobile-trustbar-v1.css ===== */
/* Homepage mobile trust band: preserve the credibility points while using much less vertical space. */
@media (max-width: 760px){
  .home-page .trust-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .home-page .trust-item{
    min-height:58px;
    padding:13px 10px;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    border-right:1px solid var(--line);
    border-bottom:1px solid var(--line);
  }
  .home-page .trust-item:nth-child(even){
    border-right:0;
  }
  .home-page .trust-item strong{
    font-size:.82rem;
    line-height:1.18;
  }
  .home-page .trust-item span{
    display:none;
  }
  .home-page .trust-item:last-child{
    grid-column:1/-1;
    min-height:52px;
    padding:11px 10px;
    border-right:0;
    border-bottom:0;
  }
  .home-page .trust-item:last-child strong{
    font-size:.94rem;
    letter-spacing:.01em;
  }
}

/* ===== bundled from form-controls-v2.css ===== */
/* Form-only enhancements for Varanelli Construction contact/employment forms. */
.form-required-note{
  grid-column:1/-1;
  margin:0 0 2px;
  color:#6e675d;
  font-size:.82rem;
}

/* Phone field remains a normal grid item and matches the other form controls. */
.vc-phone-field{
  position:relative;
  width:100%;
  min-width:0;
  background:#fff;
  border:1px solid #d5cec1;
}
.vc-phone-field:focus-within{
  border-color:#8a6d18;
  box-shadow:0 0 0 1px rgba(138,109,24,.12);
}
.form .vc-phone-field input{
  position:relative;
  z-index:2;
  width:100%;
  margin:0;
  border:0;
  outline:0;
  background:transparent;
  padding:15px;
  font:inherit;
  color:#111;
  caret-color:#111;
}
.vc-phone-guide{
  position:absolute;
  z-index:1;
  top:50%;
  left:15px;
  transform:translateY(-50%);
  color:#918a7e;
  font:inherit;
  line-height:1.55;
  white-space:pre;
  pointer-events:none;
  user-select:none;
}

/* ===== bundled from mobile-click-to-call-v1.css ===== */
@media (max-width: 900px) {
  a.mobile-call-link {
    color: inherit;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.14em;
    -webkit-text-fill-color: currentColor;
  }
}

/* ===== bundled from mobile-ux-v2.css ===== */
/* Mobile-first usability enhancements: sticky actions, larger menu targets,
   fully tappable homepage service cards, and a shorter homepage hero. */
@media (max-width:760px){
  /* Reserve room so the fixed action bar never hides the end of the page. */
  body{
    padding-bottom:calc(70px + env(safe-area-inset-bottom));
  }

  /* 1) Persistent high-intent actions for phone visitors. */
  .mobile-action-bar{
    position:fixed;
    z-index:40;
    left:0;
    right:0;
    bottom:0;
    display:grid;
    grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
    gap:8px;
    padding:8px 10px calc(8px + env(safe-area-inset-bottom));
    background:rgba(8,8,7,.96);
    border-top:1px solid rgba(255,255,255,.14);
    box-shadow:0 -8px 24px rgba(0,0,0,.24);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
  }
  .mobile-action-bar a{
    min-height:48px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0 12px;
    border:1px solid rgba(255,255,255,.28);
    font-size:.69rem;
    line-height:1;
    font-weight:900;
    letter-spacing:.11em;
    text-transform:uppercase;
    text-align:center;
    -webkit-tap-highlight-color:transparent;
  }
  .mobile-action-bar .mobile-action-call{
    color:#fff;
    background:#11110f;
  }
  .mobile-action-bar .mobile-action-estimate{
    color:#090909;
    background:var(--gold);
    border-color:var(--gold);
  }
  .mobile-action-bar a:focus-visible{
    outline:2px solid var(--gold2);
    outline-offset:2px;
  }

  /* 2) Make every opened-navigation item a comfortable thumb target. */
  .nav-links{
    gap:0;
    padding:10px 16px;
    max-height:calc(100svh - 164px - env(safe-area-inset-bottom));
    overflow-y:auto;
    overscroll-behavior:contain;
  }
  .nav-links a{
    width:100%;
    min-height:48px;
    display:flex;
    align-items:center;
    padding:0 4px;
    border-bottom:1px solid rgba(255,255,255,.08);
    opacity:.86;
  }
  .nav-links a:last-child{
    border-bottom:0;
  }

  /* 3) Entire homepage service cards behave as touch targets. */
  .home-page #services .card.mobile-card-link{
    cursor:pointer;
    -webkit-tap-highlight-color:rgba(233,174,34,.12);
  }
  .home-page #services .card.mobile-card-link:active{
    transform:scale(.995);
  }

  /* 4) Bring the service content into view sooner on phones. */
  .home-page .hero{
    min-height:650px;
  }
  .home-page .hero-content{
    padding-top:126px;
    padding-bottom:64px;
  }

  /* Keep the three legal links compact when they stack in the mobile footer. */
  .footer-bottom > span:first-child a{
    margin:2px 0;
    line-height:1.25;
  }
}

@media (min-width:761px){
  .mobile-action-bar{display:none!important;}
}
