:root{--ink:#4a5a68;--taupe:#b89b6f;--stone:#d8d1c5;--warm-white:#f4f1e8;--cream:#ece6da;--gold:#b89b6f;--slate:#4a5a68;}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--cream);font-family:Arial,Helvetica,sans-serif}.site-header{height:112px;background:var(--warm-white);display:flex;align-items:center;justify-content:space-between;padding:12px 5.5%;position:relative;z-index:20}.brand img{width:233px;height:129px;object-fit:contain}.site-header nav{display:flex;gap:34px}.site-header nav a{font-size:12px;letter-spacing:1.8px;text-transform:uppercase;text-decoration:none;color:var(--ink)}.menu{display:none;border:0;background:none;font-size:24px}.hero{height:calc(100vh - 112px);min-height:620px;position:relative;overflow:hidden;color:#fff}.slides,.slide,.shade{position:absolute;inset:0}.slide{background-size:cover;background-position:center;opacity:0;transform:scale(1.015);transition:opacity 1.35s ease,transform 6s ease}.slide.active{opacity:1;transform:scale(1)}.shade{background:linear-gradient(90deg,rgba(0,0,0,.53) 0%,rgba(0,0,0,.24) 46%,rgba(0,0,0,.05) 75%)}.hero-copy{position:absolute;left:7.5%;top:50%;transform:translateY(-48%);max-width:680px}.eyebrow{font-size:11px;letter-spacing:2.6px;margin:0 0 18px}.eyebrow.dark{color:var(--taupe)}.hero h1,.intro h2,.current h2,.about h2,.contact h2{font-family:Georgia,'Times New Roman',serif;font-weight:400}.hero h1{font-size:64px;line-height:1.03;margin:0 0 20px}.hero-copy>p:not(.eyebrow){font-size:16px;line-height:1.7;max-width:600px}.actions{display:flex;gap:12px;margin-top:30px}.btn{display:inline-block;padding:16px 26px;text-decoration:none;text-transform:uppercase;font-size:11px;letter-spacing:1.5px}.btn.light{background:var(--cream);color:var(--ink)}.btn.ghost{border:1px solid rgba(255,255,255,.8);color:#fff}.btn.taupe{background:var(--taupe);color:#fff}.dots{position:absolute;bottom:28px;left:50%;display:flex;gap:9px}.dot{width:8px;height:8px;border-radius:50%;border:1px solid #fff;background:transparent;padding:0}.dot.active{background:#fff}.intro{display:grid;grid-template-columns:1fr 1fr;gap:10%;padding:90px 10%;background:var(--cream)}.intro h2,.current h2,.about h2{font-size:43px;line-height:1.08;margin:0}.intro>div:last-child{padding-top:20px;max-width:550px;line-height:1.65}.text-link,.project-grid a{display:inline-block;color:#817a6e;text-decoration:none;text-transform:uppercase;letter-spacing:1.4px;font-size:11px;border-bottom:1px solid var(--taupe);padding-bottom:6px;margin-top:16px}.projects{padding:20px 5.5% 90px;background:#f7f6f3}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}.project-grid img{width:100%;height:285px;object-fit:cover}.project-grid h3{font:400 24px Georgia,serif;margin:18px 0 6px}.project-grid p{font-size:14px;line-height:1.5;margin:0;color:#434447}.current{display:grid;grid-template-columns:38% 62%;background:var(--stone);padding:70px 8%;gap:55px;align-items:center}.current p:not(.eyebrow){line-height:1.6;max-width:380px}.current .btn{margin-top:14px}.current-image img{width:100%;height:340px;object-fit:cover}.process{padding:70px 8%;background:#f4f2ee}.steps{display:grid;grid-template-columns:repeat(5,1fr);position:relative;margin-top:35px}.steps:before{content:"";position:absolute;left:8%;right:8%;top:25px;border-top:1px solid #aea9a1}.steps div{display:flex;flex-direction:column;align-items:center;position:relative}.steps b{width:52px;height:52px;border:1px solid var(--taupe);background:var(--cream);border-radius:50%;display:grid;place-items:center;font:400 15px Georgia,serif}.steps span{text-transform:uppercase;letter-spacing:1.2px;font-size:10px;margin-top:14px;text-align:center}.about{display:grid;grid-template-columns:1fr 1fr;background:var(--warm-white);align-items:center}.about-image img{display:block;width:100%;height:470px;object-fit:cover}.about>div:last-child{padding:70px 11%;line-height:1.65}.contact{padding:95px 20px;text-align:center;color:#fff;background:linear-gradient(rgba(34,39,37,.65),rgba(34,39,37,.65)),url('assets/start-conversation.png') center/cover}.contact h2{font-size:52px;margin:0 0 14px}.contact p:not(.eyebrow){max-width:650px;margin:0 auto 28px;line-height:1.6}footer{background:var(--warm-white);padding:32px 6%;display:flex;align-items:center;justify-content:space-between;font-size:11px;letter-spacing:1px}footer img{width:145px;height:80px;object-fit:contain}@media(max-width:850px){.site-header{height:88px}.brand img{width:180px;height:102px}.site-header nav{display:none}.menu{display:block}.hero{height:76vh;min-height:560px}.hero h1{font-size:45px}.hero-copy{left:7%;right:7%}.intro,.current,.about{grid-template-columns:1fr}.project-grid{grid-template-columns:1fr}.project-grid img{height:auto}.steps{grid-template-columns:1fr;gap:20px}.steps:before{display:none}.current{padding:60px 8%}.about-image img{height:340px}footer{flex-direction:column;gap:18px;text-align:center}}
.project-image-link{display:block;margin:0;border:0;padding:0}.project-header{border-bottom:1px solid rgba(43,44,48,.08)}.project-hero{background:var(--cream);padding:0 5.5%}.project-hero img{display:block;width:100%;height:min(72vh,760px);object-fit:cover;object-position:center}.project-title{text-align:center;background:var(--warm-white);padding:68px 20px 76px}.project-title h1{font:400 56px/1.05 Georgia,'Times New Roman',serif;margin:0 0 10px;color:var(--ink)}.project-title>p:last-child{margin:0;color:var(--taupe);font-size:13px;letter-spacing:1.6px;text-transform:uppercase}.project-gallery{background:var(--warm-white);padding:0 5.5% 90px}.project-gallery figure{margin:0;overflow:hidden;background:var(--cream)}.project-gallery img{display:block;width:100%;height:100%;object-fit:cover}.gallery-wide{height:min(70vw,760px);margin-bottom:28px!important}.gallery-pair{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-bottom:28px}.gallery-pair figure{height:min(48vw,620px)}.project-nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;padding:36px 5.5%;border-top:1px solid rgba(43,44,48,.1);background:var(--cream);font-size:10px;letter-spacing:1.5px;text-transform:uppercase}.project-nav a{color:var(--ink);text-decoration:none}.project-nav a:last-child{text-align:right}.project-nav span{color:var(--taupe)}
@media(max-width:850px){.project-hero{padding:0}.project-hero img{height:58vh;min-height:420px}.project-title{padding:50px 20px 58px}.project-title h1{font-size:42px}.project-gallery{padding:0 18px 55px}.gallery-wide{height:auto}.project-gallery img{height:auto}.gallery-pair{grid-template-columns:1fr;gap:18px;margin-bottom:18px}.gallery-pair figure{height:auto}.gallery-wide{margin-bottom:18px!important}.project-nav{grid-template-columns:1fr 1fr}.project-nav span{display:none}}
.bowsprit-slide{background-position:center 58%}
/* Homepage header overlays the hero image. Keep photography full-bleed to the top. */
.site-header{position:absolute;top:0;left:0;right:0;height:112px;background:transparent;color:#fff;z-index:20}
.site-header nav a{color:#fff;text-shadow:0 1px 10px rgba(0,0,0,.28)}
.site-header .brand img{filter:none}
.menu{color:#fff}
.hero{height:100vh;min-height:720px}
@media(max-width:850px){.site-header{height:88px}.hero{height:100vh;min-height:620px}}

.current-image a{display:block}.current-caption{margin:10px 0 0!important;font:400 18px Georgia,'Times New Roman',serif;max-width:none!important}.current-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;padding:50px 5.5% 90px;background:var(--warm-white)}.current-card{text-decoration:none;color:var(--ink)}.current-card img{width:100%;height:360px;object-fit:cover;display:block}.current-card h2{font:400 28px Georgia,'Times New Roman',serif;margin:18px 0 5px}.current-card p{margin:0;color:var(--taupe);font-size:13px;letter-spacing:1px;text-transform:uppercase}.current-page-head{padding:150px 5.5% 55px;background:var(--cream)}.current-page-head h1{font:400 56px Georgia,'Times New Roman',serif;margin:0}.current-page-head p{color:var(--taupe)}
@media(max-width:850px){.current-grid{grid-template-columns:1fr}.current-card img{height:auto}.current-page-head{padding-top:115px}.current-page-head h1{font-size:42px}}
.site-header.project-header{position:relative;background:var(--warm-white);color:var(--ink)}
.site-header.project-header nav a{color:var(--ink);text-shadow:none}
.site-header.project-header .menu{color:var(--ink)}

/* Homepage logo clearance adjustment */
.site-header:not(.project-header) .brand{transform:translateY(14px)}

.project-hero{position:relative}
.image-disclosure{position:absolute;left:16px;bottom:12px;font-size:11px;letter-spacing:.04em;color:#fff;background:rgba(0,0,0,.48);padding:5px 8px;border-radius:2px;z-index:2}

/* v7 homepage logo position adjustment */
.site-header:not(.project-header) .brand{transform:translateY(10px)}

/* Rockwood gallery: uniform display size; source images remain unchanged */
.rockwood-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.rockwood-gallery .rockwood-photo{margin:0!important;aspect-ratio:3/2;overflow:hidden;background:var(--cream)}.rockwood-gallery .rockwood-photo img{width:100%;height:100%;object-fit:cover;object-position:center}
@media(max-width:850px){.rockwood-gallery{grid-template-columns:1fr;gap:18px}.rockwood-gallery .rockwood-photo{aspect-ratio:3/2}}

/* Consolidated review updates */
.site-header.project-header .brand img{width:175px;height:88px;object-fit:contain}
.equal-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.equal-gallery figure{height:420px;margin:0!important;overflow:hidden;background:var(--cream)}
.equal-gallery img{width:100%;height:100%;object-fit:cover}
@media(max-width:850px){.site-header.project-header .brand img{width:145px;height:72px}.equal-gallery{grid-template-columns:1fr;gap:18px}.equal-gallery figure{height:auto;aspect-ratio:3/2}}

/* v13 brand palette — sampled from the supplied Grayson Homes logo */
body{color:var(--slate);background:var(--cream)}
.site-header:not(.project-header) .brand img{width:233px;height:129px;object-fit:contain}
.site-header.project-header{background:var(--warm-white);color:var(--slate)}
.site-header.project-header nav a,.site-header.project-header .menu{color:var(--slate)}
.eyebrow.dark,.project-title>p:last-child,.current-card p,.current-page-head p{color:var(--gold)}
.text-link,.project-grid a{color:var(--slate);border-bottom-color:var(--gold)}
.btn.taupe{background:var(--slate);color:var(--warm-white)}
.steps b{border-color:var(--gold)}
.project-grid h3,.project-title h1,.current h2,.about h2,.intro h2{color:var(--slate)}
.projects{background:#f7f3eb}
.current{background:#ddd5c8}
.process{background:#f2ede4}
.about,footer,.project-title,.project-gallery{background:var(--warm-white)}
.contact{background:linear-gradient(rgba(74,90,104,.76),rgba(74,90,104,.76)),url('assets/start-conversation.png') center/cover}
/* Woodland homepage thumbnail: show the complete source photo instead of cropping it */
.project-grid article a[href="woodland-southborough.html"] img{object-fit:contain;background:var(--warm-white)}
/* Preserve Barber Way 1 hero as supplied when used in homepage slideshow */
.barber-way-1-slide{background-position:center}
@media(max-width:850px){.site-header:not(.project-header) .brand img{width:180px;height:102px}}

/* v14 homepage slideshow logo: white and 50% larger than v13 */
.site-header:not(.project-header) .brand img{width:350px;height:194px;object-fit:contain}
@media(max-width:850px){.site-header:not(.project-header) .brand img{width:270px;height:153px}}

/* v15 homepage logo refinement: smaller than v14 with added top clearance */
.site-header:not(.project-header) .brand{transform:translateY(18px)}
.site-header:not(.project-header) .brand img{width:285px;height:158px;object-fit:contain}
@media(max-width:850px){.site-header:not(.project-header) .brand{transform:translateY(14px)}.site-header:not(.project-header) .brand img{width:220px;height:122px}}
/* Marion Street project hero: preserve image, shift crop downward so roof peak remains visible. */
.project-page .project-hero img[src="assets/marion-street/hero.png"]{object-position:center top;}

/* V20: Shore Road project-page hero framing only */
.shore-road-hero img{object-position:center top;}

/* V22 corrections: center homepage logo with equal header clearance. */
.site-header:not(.project-header) .brand{transform:none;display:flex;align-items:center;height:100%;}
.site-header:not(.project-header) .brand img{height:88px;width:auto;max-width:285px;object-fit:contain;}
@media(max-width:850px){.site-header:not(.project-header) .brand{transform:none}.site-header:not(.project-header) .brand img{height:64px;width:auto;max-width:220px}}

/* V22: Marion and Shore Road project heroes — revert cropped framing and show the complete supplied image. */
.project-page .project-hero img[src="assets/marion-street/hero.png"],
.shore-road-hero img{height:auto;min-height:0;object-fit:contain;object-position:center center;}

/* V26 homepage logo: 30% larger than V25 and vertically centered with equal clearance. */
.site-header:not(.project-header){height:138px;align-items:center;padding-top:12px;padding-bottom:12px;}
.site-header:not(.project-header) .brand{height:100%;display:flex;align-items:center;transform:none;}
.site-header:not(.project-header) .brand img{height:114px;width:auto;max-width:371px;object-fit:contain;display:block;}
@media(max-width:850px){
  .site-header:not(.project-header){height:108px;padding-top:12px;padding-bottom:12px;}
  .site-header:not(.project-header) .brand{height:100%;transform:none;}
  .site-header:not(.project-header) .brand img{height:83px;width:auto;max-width:286px;}
}

/* V27 Brook Street: use the same exterior for homepage cover and project hero; reduce hero scale so gallery remains prominent. */
.project-page .project-hero img[src="assets/brook-street/hero-exterior.jpg"]{height:min(52vh,560px);object-fit:contain;object-position:center;background:var(--cream);}
@media(max-width:850px){.project-page .project-hero img[src="assets/brook-street/hero-exterior.jpg"]{height:auto;min-height:0;object-fit:contain;}}
