:root{--black:#050505;--ink:#111;--silver:#a8a8a8;--panel:#e8e8e8;--line:#c4c4c4;--white:#fff}*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:Manrope,Arial,sans-serif;color:var(--ink);background:#000;overflow:hidden}a{color:inherit;text-decoration:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.home-screen{height:100svh;max-width:1800px;margin:auto;background:#000;display:flex;flex-direction:column}.site-header{height:84px;flex:0 0 84px;padding:0 clamp(30px,4.5vw,72px);display:flex;align-items:center;justify-content:space-between;background:var(--black);color:#fff;border-bottom:1px solid #222;position:relative;z-index:20}.brand{display:flex;align-items:baseline;gap:9px;letter-spacing:.09em;white-space:nowrap}.brand strong{font-size:clamp(21px,1.55vw,28px);font-weight:700}.brand span{font-size:clamp(19px,1.45vw,26px);font-weight:300}.site-nav{display:flex;gap:clamp(26px,3.5vw,62px);font-size:14px}.site-nav a{color:#e6e6e6;transition:.2s}.site-nav a:hover{color:#fff}.menu-toggle{display:none;background:none;border:0;padding:8px}.menu-toggle span:not(.sr-only){display:block;width:26px;height:1px;background:#fff;margin:6px}.home-main{height:calc(100svh - 84px);display:grid;grid-template-rows:minmax(0,1fr) clamp(270px,31vh,345px);min-height:0}.hero{position:relative;overflow:hidden;color:#fff;background:#111;min-height:0}.slides,.slide,.hero-shade{position:absolute;inset:0}.slide{background-position:center;background-size:cover;opacity:0;transform:scale(1.02);transition:opacity 1.25s ease,transform 7s ease}.slide.is-active{opacity:1;transform:scale(1)}.hero-shade{background:linear-gradient(90deg,#050505 0%,rgba(5,5,5,.98) 20%,rgba(5,5,5,.8) 39%,rgba(5,5,5,.3) 61%,rgba(5,5,5,.02) 84%);z-index:2}.hero-content{position:absolute;z-index:3;left:clamp(32px,4.5vw,72px);top:50%;transform:translateY(-50%);max-width:650px}.eyebrow{display:flex;align-items:center;gap:9px;flex-wrap:wrap;font-size:10px;letter-spacing:.12em;font-weight:600;color:#d7d7d7;margin:0}.eyebrow i{width:3px;height:3px;background:#aaa;border-radius:50%}.rule{display:block;width:42px;height:1px;background:#999;margin:22px 0 34px}.hero h1{font-size:clamp(42px,4vw,68px);line-height:1.07;letter-spacing:-.045em;font-weight:500;margin:0 0 30px}.hero-copy{font-size:16px;color:#d8d8d8;margin:0 0 32px}.hero-actions{display:flex;gap:14px}.button{display:inline-flex;align-items:center;justify-content:center;min-width:170px;padding:15px 24px;border:1px solid transparent;font-size:13px;font-weight:500;transition:.2s}.button-light{background:#fff;color:#111}.button-light:hover{background:#ddd}.button-outline{border-color:#777;color:#fff}.button-outline:hover{border-color:#fff}.slide-dots{position:absolute;z-index:4;right:28px;bottom:22px;display:flex;gap:9px}.carousel-tab{width:7px;height:7px;border-radius:50%;border:1px solid #fff;background:transparent;padding:0;cursor:pointer}.carousel-tab.is-active{background:#fff}.navigation-panel{background:linear-gradient(135deg,#f0f0f0,#dddddd);padding:32px clamp(30px,6vw,95px) 24px;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:1fr auto;min-height:0}.nav-card{padding:0 clamp(22px,2.6vw,42px);border-right:1px solid var(--line);display:flex;flex-direction:column;min-width:0}.nav-card:first-child{padding-left:0}.nav-card:nth-child(4){border-right:0;padding-right:0}.nav-icon{display:block;width:68px;height:68px;object-fit:contain}.nav-card h2{font-size:19px;margin:15px 0 8px;font-weight:600}.nav-card p{font-size:12px;line-height:1.55;color:#555;margin:0;max-width:245px}.nav-card a{font-size:10px;text-transform:uppercase;letter-spacing:.09em;margin-top:auto;padding-top:10px;color:#555}.nav-card a:hover{color:#000}.nav-card b{font-size:14px;margin-left:5px}.all-services{grid-column:1/-1;justify-self:center;border:1px solid #777;padding:11px 50px;margin-top:18px;font-size:12px;transition:.2s}.all-services:hover{background:#111;color:#fff}.home-screen.compact .home-main{grid-template-rows:minmax(0,1fr) 250px}.home-screen.compact .navigation-panel{padding-top:20px}.home-screen.compact .nav-icon{font-size:27px;height:30px}.home-screen.compact .nav-card h2{margin:9px 0 5px}.home-screen.compact .nav-card p{font-size:11px}.home-screen.compact .hero h1{font-size:clamp(38px,3.6vw,58px);margin-bottom:20px}.home-screen.compact .rule{margin:14px 0 22px}.home-screen.compact .hero-copy{margin-bottom:22px}.home-screen.compact .all-services{margin-top:10px;padding-top:8px;padding-bottom:8px}@media(max-width:850px){body{overflow:auto}.home-screen{height:auto;min-height:100svh}.site-header{height:70px;flex-basis:70px;padding:0 22px}.site-nav{position:absolute;top:70px;left:0;right:0;background:#080808;display:none;flex-direction:column;gap:22px;padding:26px}.site-nav.is-open{display:flex}.menu-toggle{display:block}.home-main{height:auto;display:block}.hero{height:66svh;min-height:520px}.hero-shade{background:linear-gradient(90deg,rgba(5,5,5,.94),rgba(5,5,5,.65) 60%,rgba(5,5,5,.15))}.hero-content{left:24px;right:24px}.hero h1{font-size:clamp(39px,8vw,56px)}.navigation-panel{grid-template-columns:repeat(2,1fr);grid-template-rows:auto;padding:30px 24px}.nav-card{min-height:190px;padding:20px;border-bottom:1px solid var(--line)}.nav-card:nth-child(2){border-right:0}.nav-card:nth-child(3){padding-left:20px}.all-services{grid-column:1/-1}}@media(max-width:520px){.brand strong{font-size:18px}.brand span{font-size:15px}.hero{height:67svh;min-height:550px}.eyebrow{font-size:8px}.hero h1{font-size:39px}.hero-copy{font-size:14px}.hero-actions{flex-direction:column;align-items:flex-start}.button{min-width:165px;padding:13px 20px}.navigation-panel{grid-template-columns:1fr}.nav-card,.nav-card:nth-child(3){border-right:0;padding:24px 0;min-height:175px}.all-services{grid-column:1}}

.detail-body{margin:0;background:#f1f1ef;color:#111;overflow:auto;min-height:100vh}.detail-body .site-header{position:sticky;top:0}.detail-hero{min-height:58vh;padding:clamp(90px,12vh,150px) clamp(32px,7vw,115px);background:#090909;color:#fff;display:flex;flex-direction:column;justify-content:center}.detail-hero>p{font-size:10px;letter-spacing:.16em;color:#aaa;margin:0 0 28px}.detail-hero h1{font-size:clamp(48px,6vw,90px);line-height:1.04;letter-spacing:-.05em;font-weight:500;margin:0 0 45px}.detail-hero>a{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:#bbb;align-self:flex-start}.detail-photo{background:linear-gradient(90deg,rgba(0,0,0,.9),rgba(0,0,0,.15)),url('assets/selected-construction.svg') center/cover}.detail-grid{padding:clamp(65px,8vw,120px);display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:#ccc}.detail-grid article{background:#f1f1ef;padding:clamp(35px,5vw,75px);min-height:320px}.detail-grid span{font-size:10px;color:#777}.detail-grid h2,.detail-intro h2,.detail-contact h2{font-size:clamp(32px,4vw,56px);font-weight:500;letter-spacing:-.04em;margin:35px 0 18px}.detail-grid p,.detail-intro p,.detail-contact p{color:#606060;line-height:1.75;max-width:650px}.detail-intro{padding:clamp(75px,10vw,150px) clamp(32px,10vw,170px);min-height:45vh}.detail-button{display:inline-flex;background:#111;color:#fff;border:0;padding:16px 28px;margin-top:25px;font:500 12px Manrope;text-transform:uppercase;letter-spacing:.08em;cursor:pointer}.detail-contact{padding:clamp(65px,9vw,140px);display:grid;grid-template-columns:1fr 1fr;gap:9vw;background:#e2e2df}.detail-contact form{display:grid;gap:22px}.detail-contact label{display:grid;gap:8px;font-size:10px;text-transform:uppercase;letter-spacing:.09em}.detail-contact input,.detail-contact textarea{background:transparent;border:0;border-bottom:1px solid #999;padding:12px 0;font:15px Manrope;outline:none}.detail-contact .detail-button{justify-self:start}.detail-footer{background:#050505;color:#fff;padding:45px clamp(30px,5vw,75px);display:flex;align-items:center;justify-content:space-between}.detail-footer>a:last-child{font-size:12px;text-transform:uppercase;letter-spacing:.09em}@media(max-width:850px){.detail-body .site-nav{display:flex;position:static;flex-direction:row;background:transparent;padding:0}.detail-grid,.detail-contact{grid-template-columns:1fr}}@media(max-width:650px){.detail-body .site-header{height:auto;min-height:80px;align-items:flex-start;flex-direction:column;padding:22px}.detail-body .site-nav{flex-wrap:wrap;gap:14px;font-size:11px}.detail-grid{padding:1px}.detail-grid article{min-height:auto}.detail-footer{align-items:flex-start;flex-direction:column;gap:25px}}

/* Preferred homepage service panel */
.navigation-panel .nav-card{color:#111;text-decoration:none;transition:background .2s ease}.navigation-panel .nav-card:hover{background:rgba(255,255,255,.34)}.navigation-panel .nav-icon{display:block;width:45px;height:45px;fill:none;stroke:#111;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round;flex:0 0 45px}.navigation-panel .nav-card h2{margin-top:16px}.navigation-panel .nav-card p{font-size:12px;line-height:1.6;max-width:220px}.home-screen.compact .navigation-panel .nav-icon{width:34px;height:34px;flex-basis:34px}.home-screen.compact .navigation-panel .nav-card h2{margin-top:9px}@media(max-width:850px){.navigation-panel .nav-card{color:#111}.navigation-panel .nav-icon{width:40px;height:40px;flex-basis:40px}}


/* Contact and quote forms */
.contact-hero{min-height:46vh}.contact-section{padding:clamp(70px,8vw,125px) clamp(32px,9vw,150px);display:grid;grid-template-columns:minmax(0,.85fr) minmax(420px,1fr);gap:clamp(55px,9vw,145px);align-items:start}.contact-general{background:#e2e2df}.quote-section{background:#f2f2ef}.section-label{font-size:10px!important;letter-spacing:.16em;color:#777!important;margin:0 0 24px!important}.contact-copy h2{font-size:clamp(34px,4vw,58px);font-weight:500;letter-spacing:-.045em;line-height:1.08;margin:0 0 22px}.contact-copy>p:not(.section-label){color:#606060;line-height:1.75;max-width:580px}.contact-details{margin:42px 0 0;display:grid;gap:22px}.contact-details div{padding-top:14px;border-top:1px solid #aaa}.contact-details dt{font-size:9px;letter-spacing:.13em;text-transform:uppercase;color:#777;margin-bottom:7px}.contact-details dd{margin:0;font-size:18px}.contact-details a:hover{text-decoration:underline}.website-form{display:grid;gap:22px}.website-form label{display:grid;gap:8px;font-size:10px;text-transform:uppercase;letter-spacing:.09em}.website-form input,.website-form textarea,.website-form select{width:100%;background:transparent;border:0;border-bottom:1px solid #999;border-radius:0;padding:12px 0;font:15px Manrope,Arial,sans-serif;color:#111;outline:none}.website-form textarea{resize:vertical;min-height:120px}.website-form select{appearance:auto}.website-form input:focus,.website-form textarea:focus,.website-form select:focus{border-bottom-color:#111}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:28px}.form-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.optional{font-size:9px;color:#777;text-transform:none;letter-spacing:0}.file-input{border:1px dashed #999!important;padding:16px!important;cursor:pointer}.form-note{font-size:10px;color:#777;line-height:1.6;margin:0}.website-form .detail-button{justify-self:start;margin-top:4px}.form-success{min-height:calc(100vh - 84px);background:#e2e2df;padding:clamp(90px,14vw,190px) clamp(32px,10vw,170px);display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.form-success>p:first-child{font-size:10px;letter-spacing:.16em;color:#777}.form-success h1{font-size:clamp(48px,7vw,96px);line-height:1.02;letter-spacing:-.055em;font-weight:500;margin:22px 0}.form-success>p:not(:first-child){max-width:650px;color:#606060;line-height:1.75}.form-success>p a{text-decoration:underline}@media(max-width:850px){.contact-section{grid-template-columns:1fr;padding:65px 28px;gap:50px}}@media(max-width:560px){.form-row{grid-template-columns:1fr}.contact-details dd{font-size:16px}}

.text-link{text-decoration:underline;text-underline-offset:3px}.quote-hero{min-height:46vh}


/* Service booking */
.booking-hero{min-height:46vh}.booking-section{background:#f2f2ef}.booking-explainer{padding-left:18px;border-left:2px solid #111}.booking-form fieldset{border:0;padding:0;margin:0}.booking-form legend,.field-label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.09em;margin-bottom:10px}.service-choices{display:grid!important;grid-template-columns:repeat(3,1fr);gap:12px}.service-choice{position:relative;display:block!important;cursor:pointer}.service-choice input{position:absolute;opacity:0;pointer-events:none}.service-choice span{display:flex;min-height:120px;flex-direction:column;gap:8px;padding:20px;border:1px solid #aaa;background:rgba(255,255,255,.25);transition:.2s}.service-choice strong{font-size:15px;text-transform:none;letter-spacing:0}.service-choice small{font-size:11px;line-height:1.5;text-transform:none;letter-spacing:0;color:#666}.service-choice input:checked+span{color:#fff;background:#111;border-color:#111}.service-choice input:checked+span small{color:#ccc}.service-choice input:focus-visible+span{outline:2px solid #111;outline-offset:3px}.availability-panel{padding:24px;border:1px solid #aaa}.availability-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:10px}.availability-heading .field-label{margin:0 0 6px}.availability-heading strong{font-size:19px;font-weight:500}.calendar-nav{display:flex;gap:7px}.calendar-nav button{width:38px;height:38px;background:transparent;border:1px solid #999;font-size:17px;cursor:pointer}.calendar-nav button:disabled{opacity:.3;cursor:not-allowed}.calendar-week,.availability-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.calendar-week{margin:22px 0 7px}.calendar-week span{text-align:center;font-size:9px;text-transform:uppercase;letter-spacing:.07em;color:#777}.calendar-day{aspect-ratio:1;border:1px solid #aaa;background:#fff;color:#111;font:500 13px Manrope;cursor:pointer}.calendar-day:hover:not(:disabled){background:#ddd}.calendar-day:disabled{background:transparent;color:#bbb;border-color:#ddd;cursor:not-allowed}.calendar-day.is-selected{background:#111;color:#fff;border-color:#111}.selected-date{min-height:22px;margin:15px 0 0;font-size:12px;font-weight:600}.booking-form .detail-button{min-width:190px}@media(max-width:680px){.service-choices{grid-template-columns:1fr}.service-choice span{min-height:auto}.availability-panel{padding:16px}.calendar-week,.availability-calendar{gap:3px}.calendar-day{font-size:11px}}


/* Multi-day booking builder */
.booking-form .service-choices{grid-template-columns:repeat(2,1fr)}.service-choices legend,.carry-options legend,.contact-fields legend{grid-column:1/-1;font-size:10px;text-transform:uppercase;letter-spacing:.09em;margin-bottom:10px}.service-choice span{min-height:108px}.field-error{grid-column:1/-1;color:#9b1c1c;font-size:11px;margin:0;min-height:16px}.conditional-field[hidden],.carry-options[hidden]{display:none!important}.booking-length{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:end}.tick-option{position:relative;display:block!important;cursor:pointer}.tick-option>input{position:absolute;opacity:0;pointer-events:none}.tick-option>span{display:flex;min-height:60px;flex-direction:column;justify-content:center;gap:4px;padding:14px 16px;border:1px solid #aaa;background:rgba(255,255,255,.25);text-transform:none;letter-spacing:0}.tick-option strong{font-size:12px}.tick-option small{font-size:10px;color:#666;line-height:1.4}.tick-option>input:checked+span{background:#111;color:#fff;border-color:#111}.tick-option>input:checked+span small{color:#ccc}.tick-option>input:focus-visible+span{outline:2px solid #111;outline-offset:3px}.carry-options{display:grid!important;grid-template-columns:1fr 1fr;gap:12px}.booking-days-section{border-top:1px solid #aaa;padding-top:24px}.booking-days-heading{display:flex;justify-content:space-between;gap:24px;align-items:end;margin-bottom:20px}.booking-days-heading .field-label{margin:0 0 6px}.booking-days-heading h2{font-size:21px;font-weight:500;margin:0}.booking-days-heading .form-note{max-width:290px;text-align:right}.booking-days{display:grid;gap:14px}.shared-details,.consecutive-booking{display:grid;gap:18px;padding:22px;border:1px solid #888;background:#e5e5e2}.shared-details{grid-template-columns:1fr 1fr}.shared-details textarea{min-height:90px}.booking-day-card{display:grid;grid-template-columns:90px repeat(3,minmax(0,1fr));gap:18px;align-items:start;padding:20px;border:1px solid #bbb;background:rgba(255,255,255,.35)}.booking-day-card h3{font-size:13px;margin:16px 0 0}.booking-day-card textarea{min-height:75px}.consecutive-booking{grid-template-columns:minmax(220px,.65fr) 1fr}.consecutive-date-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;font-size:11px;line-height:1.5;color:#555}.contact-fields{display:grid!important;gap:22px;border-top:1px solid #aaa!important;padding-top:28px!important}.contact-fields legend{font-size:12px;margin-bottom:0}.booking-form input[type=number]{appearance:textfield}@media(max-width:780px){.booking-form .service-choices,.booking-length,.carry-options,.shared-details,.consecutive-booking{grid-template-columns:1fr}.booking-day-card{grid-template-columns:1fr}.booking-day-card h3{margin:0}.booking-days-heading{display:block}.booking-days-heading .form-note{text-align:left;margin-top:8px}.consecutive-date-list{grid-template-columns:1fr}}@media(max-width:480px){.booking-form .service-choices{grid-template-columns:1fr}}

.preview-banner{background:#d9d9d5;color:#111;padding:11px 24px;text-align:center;font-size:11px;letter-spacing:.04em;border-bottom:1px solid #aaa}


/* Refined boxed booking layout */
.booking-section{grid-template-columns:minmax(230px,.52fr) minmax(680px,1.48fr);gap:clamp(40px,6vw,90px);padding-left:clamp(32px,5vw,85px);padding-right:clamp(32px,5vw,85px)}.booking-form{max-width:980px}.booking-form>label,.booking-length,.booking-days-section,.contact-fields,.carry-options,.conditional-field{background:#fff;border:1px solid #c4c4c4;padding:22px}.booking-form input,.booking-form textarea,.booking-form select{background:#fafafa;border:1px solid #aaa;padding:13px 14px}.booking-form input:focus,.booking-form textarea:focus,.booking-form select:focus{border-color:#111;box-shadow:0 0 0 1px #111}.booking-length{grid-template-columns:minmax(220px,.65fr) minmax(260px,1fr)}#consecutive-option[hidden]{display:none!important}.booking-days-section{padding-top:24px;border-top:1px solid #c4c4c4}.booking-day-card{grid-template-columns:70px minmax(145px,.58fr) minmax(180px,.82fr) minmax(300px,1.6fr);padding:24px;background:#f7f7f5}.booking-day-card textarea{min-height:155px}.shared-details textarea{min-height:145px}.photo-upload-field{gap:12px!important}.photo-upload-field .file-input{background:#f7f7f5;border:1px dashed #777!important;min-height:76px;padding:22px!important}.booking-form>.detail-button{margin-top:0}@media(max-width:980px){.booking-section{grid-template-columns:1fr}.booking-form{max-width:none}.booking-day-card{grid-template-columns:70px minmax(145px,.65fr) minmax(180px,.8fr) minmax(260px,1.45fr)}}@media(max-width:780px){.booking-form>label,.booking-length,.booking-days-section,.contact-fields,.carry-options,.conditional-field{padding:17px}.booking-day-card{grid-template-columns:1fr}.booking-day-card textarea{min-height:135px}}
