:root{
  --ink:#181714;
  --muted:#68645e;
  --paper:#f5f0e8;
  --paper-2:#eee7dc;
  --line:#d7cfc2;
  --wood:#b88b59;
  --wood-dark:#8a623c;
  --white:#fffdf9;
  --serif:"Iowan Old Style","Baskerville","Palatino Linotype",Georgia,serif;
  --sans:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  --shadow:0 24px 70px rgba(21,18,14,.16);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.55;-webkit-font-smoothing:antialiased}
img{display:block;width:100%;height:100%;object-fit:cover}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
.container{width:min(1160px,calc(100% - 48px));margin-inline:auto}
.eyebrow{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:rgba(255,255,255,.78);margin:0 0 1rem}.eyebrow.dark{color:var(--wood-dark)}
h1,h2,h3,p{margin-top:0}h1,h2{font-family:var(--serif);font-weight:500;line-height:.97;letter-spacing:-.035em}h1{font-size:clamp(3.5rem,7vw,7.6rem);margin-bottom:1.4rem}h2{font-size:clamp(2.5rem,4.5vw,5rem);margin-bottom:.7rem}h3{font-family:var(--serif);font-weight:600;font-size:1.45rem;margin-bottom:.45rem}.subhead{font-family:var(--serif);font-size:clamp(1.25rem,2vw,2rem);margin-bottom:1.2rem}.strong{font-weight:700}.lead-small{font-size:1.12rem;color:#4d4943;max-width:38rem}
.site-header{position:absolute;inset:0 0 auto;z-index:30;color:#fff}.nav-shell{height:82px;width:min(1200px,calc(100% - 48px));margin:auto;display:flex;align-items:center;gap:28px}.brand{display:flex;align-items:center;gap:11px;min-width:max-content}.brand svg{width:42px;height:28px;fill:none;stroke:currentColor;stroke-width:1.8}.brand strong{display:block;font-family:var(--serif);font-size:1.35rem;letter-spacing:.01em}.brand small{display:block;font-size:.61rem;letter-spacing:.11em;opacity:.72}.main-nav{display:flex;gap:28px;margin-left:auto;font-size:.83rem}.main-nav a{opacity:.82;transition:.2s}.main-nav a:hover{opacity:1}.nav-cta{margin-left:6px}.nav-toggle{display:none;background:none;border:0;color:#fff;font-size:1.6rem}
.btn{border:0;padding:.92rem 1.2rem;border-radius:2px;font-weight:700;font-size:.9rem;transition:transform .2s,box-shadow .2s,background .2s;display:inline-flex;align-items:center;justify-content:center;min-height:46px}.btn:hover{transform:translateY(-2px)}.btn-dark{background:#171714;color:#fff;box-shadow:0 8px 24px rgba(0,0,0,.18)}.btn-light{background:rgba(255,253,249,.92);color:#191815;border:1px solid rgba(24,23,20,.08)}.btn.full{width:100%}.text-btn{border:0;background:none;font-weight:700;padding:.4rem .6rem}
.hero{min-height:760px;position:relative;display:grid;align-items:center;overflow:hidden;background:#282923;color:#fff}.hero-media{position:absolute;inset:0;background-image:url('assets/hero.jpg');background-size:cover;background-position:center 44%;transform:scale(1.04);animation:heroZoom 12s ease-out both}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(18,18,16,.82) 0%,rgba(18,18,16,.62) 36%,rgba(18,18,16,.18) 62%,rgba(18,18,16,.03) 100%),linear-gradient(180deg,rgba(0,0,0,.22),transparent 35%,rgba(0,0,0,.10))}.hero-content{position:relative;z-index:3;padding-top:92px}.hero-lead{font-size:clamp(1.05rem,1.8vw,1.35rem);max-width:620px;color:rgba(255,255,255,.88);margin-bottom:1.6rem}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.trust-note{margin-top:1.15rem;font-size:.84rem;color:rgba(255,255,255,.72)}.scroll-cue{position:absolute;z-index:3;bottom:24px;left:50%;transform:translateX(-50%);font-size:1.6rem;color:#fff;opacity:.72;animation:bounce 1.8s infinite}
.split-intro{display:grid;grid-template-columns:1.22fr .9fr;min-height:500px;background:var(--white)}.split-image{background:url('assets/villa-wide.jpg') center/cover no-repeat;min-height:500px}.split-copy{padding:clamp(3rem,7vw,7rem);display:flex;flex-direction:column;justify-content:center}.split-copy p:not(.eyebrow):not(.subhead){max-width:44rem;color:#514c46}
.section{padding:clamp(4.5rem,8vw,8rem) 0}.section-head{margin-bottom:2rem}.process{background:linear-gradient(180deg,#f7f3ec,#efe8dc)}.process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.process-card{background:rgba(255,255,255,.58);border:1px solid rgba(51,43,33,.09);padding:0 0 24px;box-shadow:0 12px 40px rgba(42,34,25,.06)}.process-card img{height:220px}.process-card h3,.process-card p,.process-num{margin-left:22px;margin-right:22px}.process-num{font-family:var(--serif);font-size:2rem;color:var(--wood-dark);margin-top:18px;margin-bottom:-2px}.process-card p{font-size:.94rem;color:#615b54}
.quality{background:#f6f1e9}.quality-layout{display:grid;grid-template-columns:.72fr 1.7fr;gap:34px;align-items:start}.quality-copy{position:sticky;top:34px}.detail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.detail-card img{height:155px;margin-bottom:14px}.detail-card h3{font-family:var(--sans);font-size:.98rem}.detail-card p{font-size:.84rem;color:#6a645d}
.service-band{background:var(--white);padding:0}.service-layout{display:grid;grid-template-columns:.9fr 1.3fr;align-items:stretch}.service-copy{padding:clamp(3.5rem,6vw,6rem) 0;padding-right:clamp(2rem,5vw,5rem);display:flex;flex-direction:column;justify-content:center}.service-copy .btn{align-self:flex-start;margin-top:1rem}.service-image{position:relative;min-height:480px}.service-image p{position:absolute;left:34px;bottom:24px;color:#fff;font-family:var(--serif);font-size:clamp(1.3rem,2.5vw,2rem);text-shadow:0 2px 20px rgba(0,0,0,.5)}
.bespoke{background:#f3ede4}.bespoke-layout{display:grid;grid-template-columns:.75fr 1.6fr;gap:34px;align-items:center}.bespoke-gallery{display:grid;grid-template-columns:.8fr 1fr 1.35fr;gap:8px}.bespoke-gallery img{height:310px}
.background-section{display:grid;grid-template-columns:1.05fr .95fr;background:#f8f4ed}.background-image img{min-height:390px}.background-copy{padding:clamp(3rem,6vw,6rem);display:flex;flex-direction:column;justify-content:center}.background-copy p{color:#5c564f}
.roof-story{background:#111;color:#f4efe7;padding:2.9rem 0 2.5rem;overflow:hidden}.roof-story-layout{display:grid;grid-template-columns:.72fr 1.78fr;gap:34px;align-items:center}.roof-story-copy h2{font-size:clamp(2rem,3.4vw,3.65rem);margin-bottom:.4rem}.roof-story-copy p{color:#c9c0b6;margin-bottom:0}.roof-steps{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1.14fr) auto minmax(0,1.14fr);gap:8px;align-items:end}.roof-step{text-align:center;min-width:0}.roof-object{height:104px;display:flex;align-items:flex-end;justify-content:center;filter:drop-shadow(0 12px 15px rgba(0,0,0,.42))}.roof-object img{width:100%;height:100%;object-fit:contain;object-position:center bottom;display:block}.roof-step:nth-of-type(1) .roof-object,.roof-step:nth-of-type(2) .roof-object{height:82px}.roof-step:nth-of-type(3) .roof-object,.roof-step:nth-of-type(4) .roof-object{height:112px}.roof-step small{display:block;margin-top:7px;color:#ded4c8;font-size:.76rem;letter-spacing:.01em}.arrow{font-size:1.55rem;color:#c89a60;align-self:center;margin-bottom:21px;text-shadow:0 0 16px rgba(200,154,96,.22)}
.closing{position:relative;min-height:520px;display:grid;align-items:center;color:#fff;overflow:hidden}.closing-image{position:absolute;inset:0;background:url('assets/villa-final.jpg') center/cover no-repeat;transform:scale(1.04)}.closing-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(19,18,16,.80),rgba(19,18,16,.35) 58%,rgba(19,18,16,.08))}.closing-content{position:relative;z-index:2}.closing-content p{max-width:560px;color:rgba(255,255,255,.84)}
.site-footer{background:#eee7dc;border-top:1px solid #d4cabd}.footer-layout{min-height:106px;display:flex;align-items:center;gap:32px}.footer-brand{color:#231f1a}.footer-copy{margin-left:auto;color:#6a6259}.footer-actions{display:flex;gap:6px}
.mobile-cta{display:none}
.modal{position:fixed;inset:0;z-index:100;display:none}.modal.open{display:grid;place-items:center}.modal-backdrop{position:absolute;inset:0;background:rgba(12,12,11,.72);backdrop-filter:blur(5px)}.modal-panel{position:relative;z-index:2;width:min(650px,calc(100% - 32px));max-height:min(88vh,900px);overflow:auto;background:#fbf8f2;padding:34px;box-shadow:var(--shadow)}.modal-panel.wide{width:min(780px,calc(100% - 32px))}.modal-close{position:absolute;right:18px;top:12px;border:0;background:none;font-size:2rem;color:#403b35}.modal-panel h2{font-size:clamp(2.2rem,5vw,4rem);margin-right:40px}.modal-intro{color:#6b645c}.lead-form{display:grid;gap:14px;margin-top:22px}.lead-form label{display:grid;gap:6px;font-size:.84rem;font-weight:700;color:#464039}.lead-form input,.lead-form select,.lead-form textarea{width:100%;border:1px solid #cfc5b8;background:#fffdfa;padding:.84rem .9rem;border-radius:2px;outline:none}.lead-form input:focus,.lead-form select:focus,.lead-form textarea:focus{border-color:#8a623c;box-shadow:0 0 0 3px rgba(138,98,60,.10)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.lead-form .check{grid-template-columns:auto 1fr;align-items:start;font-weight:500;color:#665f57}.check input{width:auto;margin-top:3px}.form-status{min-height:1.2rem;font-size:.9rem;font-weight:700}.form-status.success{color:#366b3f}.form-status.error{color:#9a3d32}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .8s ease,transform .8s ease}.reveal.in{opacity:1;transform:none}
@keyframes heroZoom{from{transform:scale(1.08)}to{transform:scale(1.02)}}@keyframes bounce{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,8px)}}
@media (max-width:980px){.main-nav{display:none;position:absolute;top:72px;left:24px;right:24px;background:rgba(18,18,16,.96);padding:20px;flex-direction:column;gap:14px}.main-nav.open{display:flex}.nav-toggle{display:block;margin-left:auto}.nav-cta{display:none}.hero{min-height:720px}.hero-media{background-position:60% 50%}.hero-overlay{background:linear-gradient(90deg,rgba(18,18,16,.85),rgba(18,18,16,.46) 70%,rgba(18,18,16,.25))}.split-intro,.service-layout,.bespoke-layout,.background-section,.roof-story-layout{grid-template-columns:1fr}.split-image{min-height:370px}.quality-layout{grid-template-columns:1fr}.quality-copy{position:static}.detail-grid{grid-template-columns:repeat(2,1fr)}.process-grid{grid-template-columns:1fr}.process-card{display:grid;grid-template-columns:260px 1fr;grid-template-rows:auto auto 1fr;column-gap:22px;padding-right:22px}.process-card img{grid-row:1/4;height:100%;min-height:230px}.process-card .process-num,.process-card h3,.process-card p{margin-left:0;margin-right:0}.bespoke-gallery img{height:240px}.background-image img{min-height:320px}.service-copy{padding:4rem 0}.service-image{min-height:420px}.roof-story-layout{gap:24px}.roof-object{height:118px}.roof-step:nth-of-type(1) .roof-object,.roof-step:nth-of-type(2) .roof-object{height:94px}.roof-step:nth-of-type(3) .roof-object,.roof-step:nth-of-type(4) .roof-object{height:126px}.footer-layout{flex-wrap:wrap;padding:22px 0}.footer-copy{margin-left:0}.footer-actions{margin-left:auto}}
@media (max-width:680px){body{padding-bottom:64px}.container{width:min(100% - 32px,1160px)}.nav-shell{width:calc(100% - 32px);height:70px}.brand strong{font-size:1.15rem}.brand small{font-size:.54rem}.hero{min-height:690px}.hero-content{padding-top:90px}.hero-media{background-position:68% 50%}.hero-overlay{background:linear-gradient(180deg,rgba(15,15,14,.42),rgba(15,15,14,.65) 42%,rgba(15,15,14,.82))}.hero h1{font-size:clamp(3.2rem,16vw,5.3rem);max-width:9ch}.hero-lead br{display:none}.hero-actions{flex-direction:column;align-items:stretch;max-width:360px}.split-intro{display:flex;flex-direction:column}.split-image{min-height:300px}.split-copy{padding:3rem 24px}.section{padding:4.5rem 0}.process-card{display:block;padding:0 0 24px}.process-card img{height:220px}.process-card h3,.process-card p,.process-num{margin-left:20px;margin-right:20px}.detail-grid{grid-template-columns:1fr 1fr}.detail-card img{height:120px}.service-layout{width:100%}.service-copy{padding:3.5rem 16px}.service-image{min-height:340px}.service-image p{left:18px;right:18px}.bespoke-gallery{grid-template-columns:1fr 1fr}.bespoke-gallery img{height:210px}.bespoke-gallery img:last-child{grid-column:1/3}.background-copy{padding:3rem 24px}.roof-steps{grid-template-columns:1fr 1fr;gap:24px 16px}.roof-steps .arrow{display:none}.roof-object,.roof-step:nth-of-type(1) .roof-object,.roof-step:nth-of-type(2) .roof-object,.roof-step:nth-of-type(3) .roof-object,.roof-step:nth-of-type(4) .roof-object{height:118px}.roof-step small{font-size:.8rem}.closing{min-height:560px}.closing-image{background-position:66% center}.closing-overlay{background:linear-gradient(180deg,rgba(18,18,16,.3),rgba(18,18,16,.76) 58%,rgba(18,18,16,.9))}.closing-content{align-self:end;padding-bottom:4.5rem}.footer-layout{justify-content:center;text-align:center}.footer-copy,.footer-actions{width:100%;margin:0;justify-content:center}.mobile-cta{position:fixed;z-index:70;bottom:0;left:0;right:0;height:64px;display:grid;grid-template-columns:1.35fr 1fr;background:#171714;box-shadow:0 -8px 24px rgba(0,0,0,.16)}.mobile-cta button{border:0;background:#171714;color:#fff;font-weight:800}.mobile-cta button+button{background:#f3ede4;color:#171714}.form-row{grid-template-columns:1fr}.modal-panel{padding:28px 20px}.modal-panel h2{font-size:2.6rem}.footer-brand{justify-content:center}.detail-grid{gap:18px 12px}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-media{animation:none}.scroll-cue{animation:none}.reveal{opacity:1;transform:none;transition:none}}

/* CMS additions: optional banners, slider, contact */
.top-banner{background:#11100e;color:#fff;min-height:42px;display:flex;align-items:center;position:relative;z-index:50}.top-banner-inner{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:8px 0}.top-banner-inner>div{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.top-banner strong{font-family:var(--serif);font-size:1rem}.top-banner span{font-size:.82rem;color:rgba(255,255,255,.72)}.top-banner .btn{min-height:30px;padding:.42rem .75rem;font-size:.76rem;background:#f3ede4;color:#171714;box-shadow:none}.has-top-banner .site-header{top:42px;inset-inline:0}
.campaign-banner{background:#ece4d8;border-top:1px solid #d9cdbd;border-bottom:1px solid #d9cdbd}.campaign-inner{display:grid;grid-template-columns:1fr minmax(320px,.95fr);min-height:330px;align-items:stretch}.campaign-copy{padding:clamp(2.5rem,5vw,5rem) clamp(1rem,4vw,4rem) clamp(2.5rem,5vw,5rem) 0;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.campaign-copy h2{font-size:clamp(2.2rem,4.5vw,4.5rem)}.campaign-copy p{max-width:650px;color:#5f5850}.campaign-image{min-height:330px}.campaign-image img{height:100%;object-fit:cover}.campaign-before-cta{background:#f6f0e7}.campaign-before-cta .campaign-inner{grid-template-columns:minmax(320px,.9fr) 1.1fr}.campaign-before-cta .campaign-copy{order:2;padding-left:clamp(1rem,4vw,4rem);padding-right:0}.campaign-before-cta .campaign-image{order:1}
.inspiration{background:#eee6db}.inspiration-head{display:grid;grid-template-columns:.7fr 1.3fr;column-gap:40px;align-items:end}.inspiration-head .eyebrow{grid-column:1/-1}.inspiration-head h2{margin-bottom:0}.slider{position:relative}.slider-viewport{overflow:hidden}.slider-track{display:flex;transition:transform .65s cubic-bezier(.22,.75,.25,1);will-change:transform}.slide{min-width:100%;margin:0;position:relative;height:clamp(360px,54vw,720px);overflow:hidden;background:#ddd4c6}.slide img{width:100%;height:100%;object-fit:cover}.slide figcaption{position:absolute;left:28px;bottom:24px;background:rgba(18,17,15,.76);color:#fff;padding:.7rem .9rem;font-family:var(--serif);font-size:1.1rem;backdrop-filter:blur(7px)}.slider-btn{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.4);background:rgba(18,17,15,.66);color:#fff;font-size:1.2rem;z-index:3}.slider-btn.prev{left:18px}.slider-btn.next{right:18px}.slider-dots{display:flex;justify-content:center;gap:8px;margin-top:16px}.slider-dot{width:7px;height:7px;border-radius:50%;border:0;background:#a79d90;padding:0}.slider-dot.active{background:#171714;transform:scale(1.35)}
.footer-contact{display:flex;gap:12px;font-size:.82rem}.footer-contact a{font-weight:700}
@media(max-width:980px){.campaign-inner,.campaign-before-cta .campaign-inner{grid-template-columns:1fr}.campaign-copy,.campaign-before-cta .campaign-copy{padding:3.5rem 0;order:1}.campaign-image,.campaign-before-cta .campaign-image{order:2;min-height:300px}.inspiration-head{display:block}.footer-contact{width:100%;justify-content:center}}
@media(max-width:680px){.top-banner-inner{align-items:flex-start;flex-direction:column}.has-top-banner .site-header{top:0;position:absolute}.top-banner{position:relative;z-index:40}.campaign-inner{width:100%}.campaign-copy{padding:3rem 16px}.campaign-image{min-height:240px}.slide{height:460px}.slide figcaption{left:14px;right:14px;bottom:14px}.slider-btn{width:42px;height:42px}.slider-btn.prev{left:10px}.slider-btn.next{right:10px}}

/* M3 WOOD BAG – user supplied logo */
.brand{overflow:hidden;flex:0 0 auto}.brand-logo{display:block!important;object-fit:contain!important;object-position:center!important;flex:none!important}.brand-logo-header{width:101px!important;height:70px!important;max-width:101px!important;max-height:70px!important}.brand-logo-footer{width:112px!important;height:78px!important;max-width:112px!important;max-height:78px!important}@media(max-width:680px){.brand-logo-header{width:84px!important;height:58px!important;max-width:84px!important;max-height:58px!important}.brand-logo-footer{width:98px!important;height:68px!important;max-width:98px!important;max-height:68px!important}}
