*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0}
.site{width:100%;font-size:16px;line-height:1.65;background:#EFEDE5;color:#1E2A24;font-family:'Hanken Grotesk',sans-serif}
.site a{color:inherit;text-decoration:none}
.eyb{font-size:12px;font-weight:600;letter-spacing:.26em;text-transform:uppercase;display:flex;align-items:center;gap:13px}
.eyb::before{content:"";width:28px;height:1px;background:currentColor;display:inline-block;opacity:.7}
.stars{letter-spacing:.24em;font-size:13px}
.aHero{position:relative;height:660px;color:#fff;overflow:hidden}
.aHeroImg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 58%}
.aHeroScrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,28,24,.46) 0%,rgba(20,28,24,.12) 32%,rgba(20,28,24,.30) 62%,rgba(20,28,24,.88) 100%)}
.aNav{position:absolute;top:0;left:0;right:0;z-index:4;display:flex;align-items:center;justify-content:space-between;padding:26px 60px}
.aBrand{display:flex;flex-direction:column;line-height:1}
.aBrandName{font-family:'Spectral',serif;font-size:23px;font-weight:400;letter-spacing:.01em}
.aBrandSub{font-size:10px;letter-spacing:.3em;text-transform:uppercase;margin-top:7px;opacity:.82;font-weight:600}
.aNavLinks{display:flex;align-items:center;gap:34px;font-size:13px;letter-spacing:.05em}
.aNavLinks a{cursor:pointer;white-space:nowrap}
.aNavLinks a:not(.aNavCta){padding-bottom:3px;border-bottom:1px solid transparent}
.aNavLinks a:not(.aNavCta):hover,.aNavLinks a.active{border-bottom-color:rgba(255,255,255,.65)}
.aNavCta{border:1px solid rgba(255,255,255,.55);padding:11px 22px;border-radius:2px;font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:600}
.aHeroIn{position:absolute;left:0;right:0;bottom:0;z-index:3;padding:0 60px 56px;max-width:1320px}
.aEy{color:#ecddbb}
.aHero h1{font-family:'Spectral',serif;font-weight:300;font-size:62px;line-height:1.06;letter-spacing:-.01em;margin:24px 0 22px;max-width:16ch}
.aHeroSub{font-size:18px;line-height:1.6;max-width:50ch;color:rgba(255,255,255,.9)}
.aActions{display:flex;align-items:center;gap:28px;margin-top:32px}
.aBtn{background:#EFEDE5;color:#1E2A24!important;padding:15px 30px;border-radius:2px;font-size:12px;letter-spacing:.15em;text-transform:uppercase;font-weight:600;cursor:pointer}
.aBtnLine{font-size:12px;letter-spacing:.15em;text-transform:uppercase;font-weight:600;color:#fff;border-bottom:1px solid rgba(255,255,255,.5);padding-bottom:5px;cursor:pointer}
.wrap{max-width:1320px;margin:0 auto}
.aAbout{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:84px;align-items:center;padding:96px 60px;max-width:1180px;margin:0 auto}
.aPortrait{width:100%;max-width:360px;aspect-ratio:4/5;overflow:hidden;border:10px solid #F7F5EF;outline:1px solid #D8D5CB;position:relative;background:#ddd9cf;box-shadow:0 18px 42px rgba(30,42,36,.08);justify-self:center}
.aPortrait img{width:100%;height:100%;object-fit:cover;object-position:center 18%;display:block}
.aAbout h2{font-family:'Spectral',serif;font-weight:300;font-size:42px;line-height:1.1;margin:18px 0 22px;max-width:18ch}
.aAbout h2 em{font-style:italic;color:#9C7A3C}
.aAbout p{color:#48534C;margin-bottom:16px;max-width:54ch;font-size:16.5px}
.aSig{font-family:'Spectral',serif;font-style:italic;font-size:26px;color:#1E2A24;margin-top:24px}
.aSig small{display:block;font-family:'Hanken Grotesk',sans-serif;font-style:normal;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#727A72;margin-top:9px;font-weight:600}
.aRev{background:#F7F5EF;border-top:1px solid #D8D5CB;border-bottom:1px solid #D8D5CB;padding:96px 60px}
.aRevHead{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:48px}
.aRevHead h2{font-family:'Spectral',serif;font-weight:300;font-size:40px;margin-top:16px}
.aBadge{display:flex;align-items:center;gap:12px;border:1px solid #D8D5CB;background:#fff;padding:13px 18px;border-radius:2px}
.aBadge .gm{font-family:'Spectral',serif;font-size:24px;font-weight:500}
.aBadge b{font-size:16px}
.aBadge .gs{color:#9C7A3C;font-size:12px;letter-spacing:.14em;display:block;margin-top:2px}
.aQuotes{columns:2;column-gap:54px}
.aQ{break-inside:avoid;margin-bottom:40px;border-top:1px solid #D8D5CB;padding-top:22px}
.aQ .stars{color:#9C7A3C;margin-bottom:14px}
.aQ p{font-family:'Spectral',serif;font-weight:300;font-size:21px;line-height:1.5;margin-bottom:14px}
.aQ .who{font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:#727A72;font-weight:600}
.aContact{display:grid;grid-template-columns:1fr 1.05fr;gap:80px;padding:104px 60px;align-items:start;max-width:1320px;margin:0 auto}
.aContact h2{font-family:'Spectral',serif;font-weight:300;font-size:48px;line-height:1.05;margin:16px 0 18px}
.aContact .lead{color:#48534C;font-size:18px;max-width:40ch;margin-bottom:38px}
.aCRows{display:flex;flex-direction:column;gap:26px;margin-top:8px}
.aCRow .lbl{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#727A72;font-weight:600;margin-bottom:6px}
.aCRow .v{font-family:'Spectral',serif;font-size:23px}
.aForm{background:#F7F5EF;border:1px solid #D8D5CB;border-radius:4px;padding:40px}
.aFormTitle{font-family:'Spectral',serif;font-size:24px;font-weight:400;margin-bottom:6px}
.aFormNote{font-size:13.5px;color:#727A72;margin-bottom:26px}
.aField{margin-bottom:18px}
.aField label{display:block;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#727A72;font-weight:600;margin-bottom:8px}
.aField input,.aField select,.aField textarea{width:100%;font-family:'Hanken Grotesk',sans-serif;font-size:15px;color:#1E2A24;background:#fff;border:1px solid #D8D5CB;border-radius:2px;padding:13px 14px;outline:none}
.aField input:focus,.aField select:focus,.aField textarea:focus{border-color:#9C7A3C}
.aField textarea{resize:vertical;min-height:100px}
.aField2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.aSubmit{width:100%;background:#1E2A24;color:#EFEDE5;border:none;padding:16px;border-radius:2px;font-family:'Hanken Grotesk',sans-serif;font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;cursor:pointer;margin-top:6px}
.aSubmit:hover{background:#2a3a31}
.aFineprint{font-size:12px;color:#9a958a;margin-top:16px;text-align:center}
.aSent{display:none;text-align:center;padding:30px 10px}
.aSent.show{display:block}
.aSent .ico{font-family:'Spectral',serif;font-size:40px;color:#9C7A3C}
.aSent h3{font-family:'Spectral',serif;font-weight:400;font-size:26px;margin:14px 0 8px}
.aSent p{color:#727A72;font-size:15px}
.aFoot{background:#1E2A24;color:rgba(255,255,255,.72);padding:64px 60px 40px}
.aFootTop{display:flex;justify-content:space-between;gap:40px;padding-bottom:38px;border-bottom:1px solid rgba(255,255,255,.16);max-width:1320px;margin:0 auto}
.aFootName{font-family:'Spectral',serif;font-size:24px;color:#fff}
.aFootTowns{font-size:14px;max-width:46ch;margin-top:14px;line-height:1.7;color:rgba(255,255,255,.6)}
.aFootLinks{display:flex;gap:30px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:rgba(255,255,255,.82)}
.aFootBot{display:flex;justify-content:space-between;padding-top:26px;font-size:11.5px;letter-spacing:.04em;color:rgba(255,255,255,.5);max-width:1320px;margin:0 auto}

/* Renovation portfolio page — same visual language as the original homepage */
.flipsHero{height:500px}
.flipsHero .aHeroIn{padding-bottom:62px}
.flipsIntro{padding:94px 60px 64px;max-width:1320px;margin:0 auto}
.flipsIntro>.eyb{margin-bottom:24px}
.portfolioIntroGrid{display:grid;grid-template-columns:minmax(320px,.78fr) minmax(0,1.22fr);gap:76px;align-items:start}
.flipsIntro h2{font-family:'Spectral',serif;font-size:46px;font-weight:300;line-height:1.12;margin:0;max-width:13ch}
.flipsIntro p{font-size:17px;color:#48534C;max-width:none}
.portfolioCopy{padding-top:4px}
.portfolioCopy p{margin:0 0 20px}
.portfolioCopy p:last-child{margin-bottom:0}
.flipGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;padding:0 60px 104px;max-width:1320px;margin:0 auto}
.flipCard{background:#F7F5EF;border:1px solid #D8D5CB}
.flipVisual{aspect-ratio:4/3;background:linear-gradient(135deg,#d8d5cb,#efede5);display:flex;align-items:center;justify-content:center;color:#7C6230;font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;border-bottom:1px solid #D8D5CB;text-align:center;padding:20px}
.flipVisual img{width:100%;height:100%;object-fit:cover;display:block}
.flipBody{padding:28px}
.flipNum{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#9C7A3C;font-weight:600}
.flipBody h3{font-family:'Spectral',serif;font-weight:400;font-size:27px;margin:8px 0 10px}
.flipBody p{color:#606961;margin:0;font-size:15px}
.flipsNote{background:#F7F5EF;border-top:1px solid #D8D5CB;padding:66px 60px;text-align:center}
.flipsNote h2{font-family:'Spectral',serif;font-weight:300;font-size:36px;margin:0 0 12px}
.flipsNote p{color:#606961;margin:0 auto 24px;max-width:55ch}

@media (max-width:980px){
  .aNav{padding:24px 28px;align-items:flex-start}
  .aNavLinks{gap:16px;font-size:12px;flex-wrap:wrap;justify-content:flex-end;max-width:60%}
  .aNavCta{padding:9px 14px}
  .aHeroIn{padding-left:32px;padding-right:32px}
  .aAbout{grid-template-columns:minmax(260px,350px) minmax(0,1fr);gap:54px;padding:80px 32px}
  .aPortrait{max-width:350px}
  .aRev{padding:78px 32px}
  .aContact{grid-template-columns:1fr;gap:54px;padding:80px 32px}
  .aFoot{padding-left:32px;padding-right:32px}
  .flipGrid{grid-template-columns:1fr 1fr;padding-left:32px;padding-right:32px}
  .flipsIntro{padding-left:32px;padding-right:32px}
  .portfolioIntroGrid{grid-template-columns:minmax(260px,.72fr) minmax(0,1.28fr);gap:44px}
  .flipsIntro h2{font-size:41px}
}
@media (max-width:680px){
  .aHero{height:700px}
  .aNav{display:block;padding:22px 20px;background:linear-gradient(180deg,rgba(20,28,24,.65),transparent)}
  .aNavLinks{max-width:none;justify-content:flex-start;gap:12px 18px;margin-top:22px}
  .aNavCta{padding:7px 10px}
  .aHeroIn{padding:0 22px 42px}
  .aHero h1{font-size:45px}
  .aHeroSub{font-size:16px}
  .aActions{align-items:flex-start;flex-direction:column;gap:18px}
  .aAbout{grid-template-columns:1fr;gap:38px;padding:64px 22px}
  .aPortrait{width:min(82vw,330px);max-width:330px}
  .aAbout h2{font-size:36px}
  .aRev{padding:64px 22px}
  .aRevHead{display:block}
  .aBadge{margin-top:24px;width:max-content}
  .aQuotes{columns:1}
  .aContact{padding:64px 22px}
  .aContact h2{font-size:40px}
  .aField2{grid-template-columns:1fr;gap:0}
  .aForm{padding:26px 20px}
  .aFoot{padding:52px 22px 32px}
  .aFootTop,.aFootBot{display:block}
  .aFootLinks{flex-wrap:wrap;margin-top:28px;gap:14px 22px}
  .aFootBot span{display:block;margin-top:10px}
  .flipsHero{height:570px}
  .flipsIntro{padding:64px 22px 44px}
  .portfolioIntroGrid{grid-template-columns:1fr;gap:24px}
  .flipsIntro h2{font-size:37px;max-width:16ch}
  .flipGrid{grid-template-columns:1fr;padding:0 22px 72px}
  .flipsNote{padding:54px 22px}
}


/* Renovation albums */
.flipCardLink{display:block;height:100%}
.flipCardLink:hover .flipVisual img{transform:scale(1.025)}
.flipCardLink:hover .projectLink{border-bottom-color:#7C6230}
.flipVisual{overflow:hidden}
.flipVisual img{transition:transform .35s ease}
.projectMeta{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:8px}
.projectCount{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#727A72;font-weight:600}
.projectLink{display:inline-block;margin-top:18px;font-size:11px;letter-spacing:.17em;text-transform:uppercase;font-weight:700;color:#7C6230;border-bottom:1px solid transparent;padding-bottom:3px}
.projectHero{height:520px}
.projectHero .aHeroImg{object-position:center}
.projectIntro{max-width:1320px;margin:0 auto;padding:82px 60px 54px;display:grid;grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);gap:76px;align-items:start}
.projectIntro h2{font-family:'Spectral',serif;font-size:44px;font-weight:300;line-height:1.12;margin:16px 0 0;max-width:13ch}
.projectIntroCopy p{font-size:17px;color:#48534C;margin:0 0 22px}
.projectScope{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 24px;margin:28px 0 0;padding:0;list-style:none}
.projectScope li{border-top:1px solid #D8D5CB;padding:12px 0 0;font-size:13px;letter-spacing:.05em;color:#606961}
.gallerySection{max-width:1320px;margin:0 auto;padding:20px 60px 90px}
.galleryGroup{margin-top:54px}
.galleryHead{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:22px;border-bottom:1px solid #D8D5CB;padding-bottom:15px}
.galleryHead h2{font-family:'Spectral',serif;font-weight:300;font-size:36px;margin:0}
.galleryHead span{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#727A72;font-weight:600}
.photoGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.galleryItem{border:0;padding:0;background:#D8D5CB;cursor:zoom-in;overflow:hidden;aspect-ratio:4/3;position:relative}
.galleryItem img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .3s ease,filter .3s ease}
.galleryItem:hover img{transform:scale(1.025);filter:brightness(.96)}
.galleryItem::after{content:'View';position:absolute;right:12px;bottom:10px;background:rgba(30,42,36,.8);color:#fff;font:600 10px 'Hanken Grotesk',sans-serif;letter-spacing:.15em;text-transform:uppercase;padding:7px 9px;opacity:0;transition:opacity .2s ease}
.galleryItem:hover::after{opacity:1}
.backToPortfolio{max-width:1320px;margin:0 auto;padding:0 60px 90px}
.backToPortfolio a{font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:#7C6230;border-bottom:1px solid #9C7A3C;padding-bottom:4px}
.noScroll{overflow:hidden}
.lightbox{position:fixed;inset:0;z-index:9999;background:rgba(13,18,15,.96);display:none;align-items:center;justify-content:center;padding:40px 90px;color:#fff}
.lightbox.open{display:flex}
.lightboxFigure{margin:0;max-width:min(1450px,100%);max-height:100%;display:flex;flex-direction:column;align-items:center}
.lightboxImage{display:block;max-width:100%;max-height:calc(100vh - 125px);object-fit:contain}
.lightboxMeta{display:flex;width:100%;justify-content:space-between;gap:24px;align-items:center;padding-top:12px;font-size:12px;color:rgba(255,255,255,.74)}
.lightboxCaption{letter-spacing:.06em;text-transform:uppercase}
.lightboxCounter{font-variant-numeric:tabular-nums}
.lightboxClose,.lightboxPrev,.lightboxNext{position:absolute;border:1px solid rgba(255,255,255,.35);background:rgba(30,42,36,.5);color:#fff;cursor:pointer;font-family:'Hanken Grotesk',sans-serif}
.lightboxClose{right:24px;top:22px;width:44px;height:44px;font-size:25px;line-height:1}
.lightboxPrev,.lightboxNext{top:50%;transform:translateY(-50%);width:48px;height:58px;font-size:28px}
.lightboxPrev{left:24px}.lightboxNext{right:24px}
.lightboxClose:hover,.lightboxPrev:hover,.lightboxNext:hover{background:#1E2A24}

@media (max-width:980px){
 .projectIntro{padding-left:32px;padding-right:32px;grid-template-columns:minmax(250px,.65fr) minmax(0,1.35fr);gap:46px}
 .gallerySection,.backToPortfolio{padding-left:32px;padding-right:32px}
 .photoGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .lightbox{padding:55px 72px}
}
@media (max-width:680px){
 .projectHero{height:610px}
 .projectIntro{padding:62px 22px 30px;grid-template-columns:1fr;gap:22px}
 .projectIntro h2{font-size:37px;max-width:none}
 .projectScope{grid-template-columns:1fr}
 .gallerySection{padding:0 22px 65px}
 .galleryGroup{margin-top:42px}
 .galleryHead h2{font-size:31px}
 .photoGrid{grid-template-columns:1fr;gap:10px}
 .galleryItem{aspect-ratio:4/3}
 .backToPortfolio{padding:0 22px 65px}
 .lightbox{padding:70px 14px 54px}
 .lightboxPrev,.lightboxNext{top:auto;bottom:12px;transform:none;width:46px;height:42px}
 .lightboxPrev{left:14px}.lightboxNext{right:14px}
 .lightboxClose{right:14px;top:14px}
 .lightboxImage{max-height:calc(100vh - 150px)}
 .lightboxMeta{justify-content:center;text-align:center}
 .lightboxCaption{display:none}
}


/* Homepage renovation preview */
.homeHeroImg{object-position:center 52%}
.homePortfolio{background:#F7F5EF;border-top:1px solid #D8D5CB;border-bottom:1px solid #D8D5CB;padding:92px 60px 100px}
.homePortfolioHead{max-width:1320px;margin:0 auto 38px;display:flex;align-items:end;justify-content:space-between;gap:48px}
.homePortfolioHead h2{font-family:'Spectral',serif;font-size:42px;font-weight:300;line-height:1.1;margin:16px 0 12px}
.homePortfolioHead p{max-width:64ch;color:#606961;margin:0;font-size:16px}
.portfolioViewAll{white-space:nowrap;border-bottom:1px solid #9C7A3C;padding-bottom:4px;color:#7C6230!important;font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:700}
.homePortfolioGrid{max-width:1320px;margin:0 auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.homeProjectCard{background:#fff;border:1px solid #D8D5CB;min-width:0}
.homeProjectCard>a{display:block;height:100%}
.homeProjectImage{position:relative;aspect-ratio:4/3;overflow:hidden;background:#D8D5CB}
.homeProjectImage img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}
.homeProjectImage span{position:absolute;right:12px;top:12px;background:rgba(247,245,239,.94);padding:7px 9px;font-size:10px;letter-spacing:.11em;text-transform:uppercase;font-weight:700}
.homeProjectBody{padding:24px}
.homeProjectBody small{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#9C7A3C;font-weight:700}
.homeProjectBody h3{font-family:'Spectral',serif;font-size:25px;font-weight:400;line-height:1.15;margin:8px 0 10px}
.homeProjectBody p{font-size:14px;color:#606961;margin:0 0 18px}
.homeProjectBody strong{font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:#7C6230}
.homeProjectCard:hover img{transform:scale(1.025)}
@media (max-width:980px){
  .homePortfolio{padding:78px 32px 84px}
  .homePortfolioGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .homeProjectCard:last-child{grid-column:1/-1;max-width:calc(50% - 11px)}
}
@media (max-width:680px){
  .homePortfolio{padding:62px 22px 70px}
  .homePortfolioHead{display:block;margin-bottom:28px}
  .homePortfolioHead h2{font-size:36px}
  .portfolioViewAll{display:inline-block;margin-top:22px}
  .homePortfolioGrid{grid-template-columns:1fr}
  .homeProjectCard:last-child{grid-column:auto;max-width:none}

  /* Mobile homepage hero: preserve the full house instead of using a tall, heavily cropped image. */
  .homeHero{height:780px;background:#1E2A24}
  .homeHero .homeHeroImg{
    inset:auto 0 auto 0;
    top:0;
    width:100%;
    height:clamp(210px,65vw,300px);
    object-fit:cover;
    object-position:center 55%;
  }
  .homeHero .aHeroScrim{
    background:linear-gradient(180deg,rgba(20,28,24,.46) 0%,rgba(20,28,24,.08) 24%,rgba(30,42,36,.72) 36%,#1E2A24 43%,#1E2A24 100%);
  }
  .homeHero .aHeroIn{padding-bottom:38px}
}
