:root{--orange:#069494;--teal:#069494;--teal-dark:#057A7A;--ink:#111111;--black90:#111111;--warm:#F8F8F8;--mist:#FFFFFF;--line:#D9D9D9;--muted:#6E6E6E;--grey:#6E6E6E;--white:#fff;--serif:Georgia,'Times New Roman',serif;--sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;--pad:clamp(20px,5vw,76px);--max:1480px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--white);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}svg{fill:none;stroke:currentColor;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round}.skip{position:absolute;left:-999px;top:8px;background:#fff;padding:12px;z-index:99}.skip:focus{left:8px}.site-header{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.88);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}.header-inner{height:92px;max-width:var(--max);margin:auto;padding:0 var(--pad);display:flex;align-items:center;justify-content:space-between;gap:30px}.brand img{width:min(300px,42vw);height:auto}.nav{display:flex;align-items:center;gap:clamp(18px,3vw,44px);font-size:15px}.nav a{position:relative}.nav a:not(.mail)::after{content:"";position:absolute;left:0;right:100%;bottom:-14px;height:2px;background:var(--orange);transition:.25s}.nav a:hover::after,.nav a[aria-current=page]::after{right:0}.phone{border-left:1px solid var(--line);padding-left:28px}.mail{width:36px;height:36px;border:1px solid var(--orange);border-radius:50%;display:grid;place-items:center;color:var(--orange)}.mail svg{width:18px}.menu-toggle{display:none;background:transparent;border:0;padding:12px}.menu-toggle span{display:block;width:24px;height:1px;background:var(--ink);margin:6px}.wrap{max-width:var(--max);margin:auto;padding-left:var(--pad);padding-right:var(--pad)}.eyebrow{margin:0 0 24px;color:var(--orange);font-size:12px;text-transform:uppercase;letter-spacing:.28em}h1,h2,.statement,.footer h2{font-family:var(--serif);font-weight:400;letter-spacing:-.052em;line-height:.96;margin:0}.copy{color:var(--muted);font-size:17px;line-height:1.72;max-width:740px}.screen-stack{background:#fff}.screen{min-height:calc(100vh - 92px);position:relative;display:flex;align-items:end;overflow:hidden}.screen-media{position:absolute;inset:0;z-index:0}.screen-media img{width:100%;height:100%;object-fit:cover}.screen::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.62),rgba(0,0,0,.14) 45%,rgba(0,0,0,0) 75%);z-index:1;pointer-events:none}.screen.no-overlay::after{display:none}.screen-copy{position:relative;z-index:2;color:#fff;padding:0 var(--pad) clamp(58px,8vw,112px);max-width:880px}.screen-copy h1{font-size:clamp(46px,5.4vw,84px);max-width:1180px;line-height:1.04;letter-spacing:-.045em}.screen-copy p{font-size:clamp(17px,1.35vw,21px);line-height:1.65;max-width:760px}.button{display:inline-flex;align-items:center;justify-content:center;margin-top:28px;border:1px solid var(--teal);background:var(--teal);color:#fff;padding:15px 24px;font-size:12px;letter-spacing:.08em;text-transform:uppercase}.statement-screen{min-height:72vh;display:flex;align-items:center;background:#fff}.statement-inner{max-width:var(--max);margin:auto;padding:clamp(80px,12vw,170px) var(--pad);width:100%}.statement{font-size:clamp(42px,6.4vw,104px);max-width:1180px}.statement-inner .copy{margin-top:34px;max-width:980px;font-size:clamp(18px,1.75vw,26px);color:var(--ink)}.services-section{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:clamp(70px,9vw,130px) 0}.services-head{display:flex;justify-content:space-between;gap:40px;align-items:end;margin-bottom:clamp(45px,6vw,84px)}.services-head h2{font-size:clamp(44px,6vw,94px);max-width:950px}.services-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.service-tile{min-height:340px;padding:clamp(28px,4vw,56px);border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between;transition:.25s}.service-tile:hover{background:var(--warm)}.service-tile h3{font-family:var(--serif);font-weight:400;font-size:clamp(30px,3.2vw,54px);line-height:.98;letter-spacing:-.04em;margin:0}.service-tile p{color:var(--muted);line-height:1.65}.service-tile span{color:var(--teal);font-size:26px}.project-preview{background:var(--warm);padding:clamp(80px,10vw,150px) 0}.project-preview .section-title{display:flex;justify-content:space-between;gap:50px;align-items:end;margin-bottom:clamp(45px,6vw,82px)}.project-preview h2{font-size:clamp(42px,5.8vw,92px);max-width:1150px}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.2vw,34px)}.project-card{background:#fff}.project-card img{width:100%;aspect-ratio:4/3;object-fit:cover}.project-card div{padding:24px}.project-card h3{font-size:18px;font-weight:500;text-transform:uppercase;letter-spacing:.03em;margin:0 0 8px}.project-card p{margin:0;color:var(--muted)}.footer{background:var(--black90);color:white}.footer-inner{max-width:var(--max);margin:auto;padding:clamp(54px,8vw,90px) var(--pad);display:grid;grid-template-columns:1.35fr .5fr .75fr .75fr;gap:30px;align-items:center}.footer h2{font-size:clamp(34px,5vw,76px)}.footer span{color:var(--orange)}.footer a{color:inherit}.footer small{grid-column:1/-1;color:#D9D9D9;line-height:1.6}.footer small a{text-decoration:underline}.footer .footer-legal{display:block;font-size:11px;line-height:1.5;color:#9a9a9a;margin-top:-18px}.round-icon{width:58px;height:58px;border:1px solid var(--orange);border-radius:50%;padding:17px;color:var(--orange);transition:.25s}.round-icon:hover{background:var(--orange);color:#fff;transform:translateY(-2px)}.page-hero{padding:clamp(72px,10vw,150px) var(--pad);max-width:var(--max);margin:auto}.page-hero h1{font-size:clamp(56px,8vw,128px);max-width:1200px}.page-hero p{font-size:clamp(18px,1.8vw,25px);max-width:850px;line-height:1.55;color:var(--muted)}.content-section{padding:clamp(60px,8vw,110px) var(--pad);max-width:var(--max);margin:auto}.content-section h2{font-size:clamp(40px,5vw,82px);margin-bottom:30px}.admin-preview{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.admin-side{background:#111;color:#fff;padding:28px}.admin-side img{width:190px;margin-bottom:50px}.admin-side a{display:block;padding:12px 0;color:#bbb}.admin-main{padding:40px;background:#f8f8f8}.admin-card{background:#fff;border:1px solid #ddd;padding:26px;margin-bottom:24px}.colour-row{display:grid;grid-template-columns:180px 1fr 100px;gap:18px;align-items:center;margin:12px 0}.swatch{height:34px;border:1px solid #ccc}.reveal{opacity:0;transform:translateY(18px);transition:opacity .65s ease,transform .65s ease}.reveal.is-visible{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}@media(max-width:1050px){.services-grid,.project-grid{grid-template-columns:1fr 1fr}.footer-inner{grid-template-columns:1fr 1fr}.services-head,.project-preview .section-title{display:block}.admin-preview{grid-template-columns:1fr}.admin-side{display:none}}@media(max-width:760px){.header-inner{height:76px}.brand img{width:min(315px,70vw)}.menu-toggle{display:block}.nav{position:fixed;inset:76px 0 auto 0;background:#fff;border-bottom:1px solid var(--line);display:grid;gap:22px;padding:24px var(--pad);transform:translateY(-130%);transition:.25s}.nav.open{transform:none}.phone{border-left:0;padding-left:0}.screen{min-height:calc(100vh - 76px)}.screen-copy{padding-bottom:60px}.services-grid,.project-grid{grid-template-columns:1fr}.footer-inner{grid-template-columns:1fr}.statement-screen{min-height:auto}.service-tile{min-height:260px}}


/* v5 scroll-driven header carousel using original Appleton Interiors homepage slides */
.hero-scroll{position:relative;height:calc((100vh - 92px) * 5);min-height:3400px;background:#111;}
.hero-sticky{position:sticky;top:92px;height:calc(100vh - 92px);min-height:620px;overflow:hidden;background:#111;}
.hero-slide{position:absolute;inset:0;z-index:1;transform:translate3d(0,100%,0);will-change:transform;overflow:hidden;}
.hero-slide:first-child{transform:translate3d(0,0,0);}
.hero-slide img{width:100%;height:100%;object-fit:cover;transform:scale(1.02);}
.hero-slide::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.52),rgba(0,0,0,.14) 44%,rgba(0,0,0,.02) 76%);pointer-events:none;}
.hero-title{position:absolute;z-index:3;left:var(--pad);bottom:clamp(150px,19vh,260px);max-width:min(1080px,78vw);color:#fff;opacity:0;transform:translateY(28px);transition:opacity .65s ease,transform .65s ease;}
.hero-slide.is-active .hero-title{opacity:1;transform:translateY(0);}
.hero-title .eyebrow{color:var(--teal);font-size:12px;letter-spacing:.31em;margin-bottom:28px;}
.hero-title h1{font-size:clamp(64px,8.3vw,142px);line-height:.9;letter-spacing:-.065em;max-width:1180px;text-wrap:balance;}
.hero-intro{position:absolute;z-index:4;left:var(--pad);bottom:clamp(54px,8vh,92px);max-width:720px;color:#fff;}
.hero-intro p{font-size:clamp(17px,1.35vw,22px);line-height:1.62;margin:0;max-width:680px;text-wrap:balance;}
.hero-intro .button{margin-top:24px;}
.hero-count{position:absolute;z-index:5;right:var(--pad);bottom:clamp(54px,8vh,92px);display:flex;align-items:center;gap:13px;color:#fff;font-size:12px;letter-spacing:.18em;}
.hero-count i{display:block;width:72px;height:1px;background:rgba(255,255,255,.55);}
@media(max-width:760px){.hero-scroll{height:calc((100vh - 76px) * 5);min-height:2700px}.hero-sticky{top:76px;height:calc(100vh - 76px);min-height:560px}.hero-title{bottom:clamp(170px,26vh,260px);max-width:86vw}.hero-title h1{font-size:clamp(48px,15vw,78px)}.hero-intro{bottom:42px;right:var(--pad)}.hero-count{display:none}}
@media(prefers-reduced-motion:reduce){.hero-scroll{height:auto;min-height:0}.hero-sticky{position:relative;top:0;height:auto;min-height:0}.hero-slide{position:relative;height:70vh;transform:none!important}.hero-title{opacity:1;transform:none}.hero-intro,.hero-count{display:none}}

/* v6 refinements */
.hero-title h1{font-size:clamp(48px,6.2vw,90px);max-width:1000px;line-height:.95;}
.hero-title{bottom:clamp(170px,24vh,300px)}
.statement-screen#what-we-do{background:#fff;}
.home-services{margin-top:clamp(50px,7vw,96px);}
.image-tile{padding:0;overflow:hidden;background:#fff;min-height:0;display:block;}
.image-tile img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .55s ease;}
.image-tile:hover img{transform:scale(1.035);}
.image-tile div{padding:clamp(24px,3vw,42px);min-height:270px;display:flex;flex-direction:column;justify-content:space-between;}
.image-tile h3{font-size:clamp(26px,2.5vw,44px);}
.image-tile span{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--teal);}
.reviews-section{background:#fff;padding:clamp(80px,10vw,150px) 0;border-top:1px solid var(--line);}
.reviews-section h2{font-size:clamp(40px,5.8vw,92px);max-width:1100px;}
.reviews-carousel{position:relative;}
.reviews-track{display:grid;grid-auto-flow:column;grid-auto-columns:calc(50% - 18px);gap:36px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding-bottom:8px;}
.review-card{scroll-snap-align:start;background:var(--warm);border:1px solid var(--line);padding:clamp(28px,3.8vw,54px);min-height:420px;display:flex;flex-direction:column;justify-content:space-between;}
.review-card p{font-family:var(--serif);font-size:clamp(19px,1.6vw,28px);line-height:1.35;letter-spacing:-.025em;margin:0;color:#222;}
.review-card h3{margin:30px 0 0;font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--teal);font-weight:500;}
.review-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:46px;height:46px;border:1px solid var(--teal);border-radius:50%;background:#fff;color:var(--teal);font-size:30px;line-height:1;cursor:pointer;}
.review-nav.prev{left:-23px}.review-nav.next{right:-23px}
.about-us-section{background:var(--warm);padding:clamp(90px,11vw,170px) 0;}
.about-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.55fr);gap:clamp(50px,8vw,120px);align-items:start;}
.about-copy h2{font-size:clamp(40px,5.8vw,92px);max-width:1050px;margin-bottom:34px;}
.about-copy p{font-size:17px;line-height:1.8;color:#333;max-width:900px;}
.profile-card{background:#fff;border:1px solid var(--line);padding:clamp(28px,3.8vw,50px);position:sticky;top:130px;}
.profile-photo{width:170px;border-radius:50%;margin-bottom:24px;}
.profile-card h3{font-family:var(--serif);font-size:34px;font-weight:400;margin:0 0 4px;letter-spacing:-.035em;}
.profile-card p{margin:0 0 28px;color:var(--muted);}
.credentials{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:center;border-top:1px solid var(--line);padding-top:26px;margin-top:24px;}
.credentials img{max-height:110px;object-fit:contain;width:100%;}
.press-logos{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;align-items:center;border-top:1px solid var(--line);padding-top:26px;margin-top:26px;}
.press-logos img{max-height:62px;width:100%;object-fit:contain;filter:grayscale(1);}
.subnav{position:sticky;top:92px;z-index:20;background:rgba(255,255,255,.92);backdrop-filter:blur(18px);border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;justify-content:center;gap:clamp(18px,4vw,70px);padding:17px var(--pad);text-transform:uppercase;letter-spacing:.16em;font-size:12px;}
.subnav a{color:#333}.subnav a:hover{color:var(--teal)}
.linked-services{border-left:1px solid var(--line);}
.service-hero{position:relative;min-height:calc(100vh - 92px);display:flex;align-items:end;color:#fff;overflow:hidden;}
.service-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.service-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.58),rgba(0,0,0,.12) 55%,rgba(0,0,0,.02));}
.service-hero div{position:relative;z-index:1;padding:0 var(--pad) clamp(70px,9vw,130px);max-width:1100px;}
.service-hero h1{font-size:clamp(56px,8vw,122px);}
.service-hero p:not(.eyebrow){font-size:clamp(18px,1.8vw,25px);line-height:1.55;max-width:800px;}
.service-copy p{font-size:19px;line-height:1.8;max-width:980px;color:#333;}
.masonry-section{padding:clamp(70px,9vw,140px) 0;background:var(--warm);}
.masonry-grid{columns:3 260px;column-gap:24px;}
.masonry-item{display:block;break-inside:avoid;margin:0 0 24px;cursor:zoom-in;background:#fff;}
.masonry-item img{width:100%;height:auto;}
.lightbox{position:fixed;z-index:100;inset:0;background:rgba(0,0,0,.92);display:grid;place-items:center;padding:40px;}
.lightbox[hidden]{display:none;}
.lightbox img{max-width:92vw;max-height:88vh;object-fit:contain;}
.lightbox button{position:absolute;top:22px;right:28px;background:transparent;border:0;color:#fff;font-size:48px;cursor:pointer;}
@media(max-width:1050px){.reviews-track{grid-auto-columns:80%;}.about-grid{grid-template-columns:1fr}.profile-card{position:relative;top:auto}.review-nav{display:none}}
@media(max-width:760px){.subnav{top:76px;overflow:auto;justify-content:flex-start}.reviews-track{grid-auto-columns:88%;gap:18px}.review-card{min-height:360px}.hero-title h1{font-size:clamp(44px,13vw,72px)}.credentials,.press-logos{grid-template-columns:1fr 1fr}.service-hero{min-height:calc(100vh - 76px)}}


/* v7 refinements */
.site-header{z-index:60}.nav-what{cursor:pointer}
.services-subnav{position:sticky;top:92px;z-index:52;background:rgba(255,255,255,.94);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);border-top:1px solid var(--line);display:flex;justify-content:center;padding:0 var(--pad);opacity:0;visibility:hidden;transform:translateY(-10px);transition:opacity .22s ease,transform .22s ease,visibility .22s ease;box-shadow:0 16px 26px rgba(0,0,0,.035)}
.site-header:hover + .services-subnav,.site-header:focus-within + .services-subnav,.services-subnav:hover,.services-subnav:focus-within,.services-subnav.is-open,.service-page .services-subnav,.services-subnav.is-service{opacity:1;visibility:visible;transform:none}
.services-subnav a{display:block;padding:16px clamp(18px,3vw,52px);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink);border-left:1px solid var(--line);white-space:nowrap}
.services-subnav a:last-child{border-right:1px solid var(--line)}
.services-subnav a:hover,.services-subnav a.is-active{color:var(--teal);background:rgba(6,148,148,.035)}
.hero-kenburns{height:calc(100vh - 92px);min-height:620px;position:relative;overflow:hidden;background:#111;color:#fff;display:flex;align-items:flex-end}
.hero-kenburns-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1);animation:kenburns 28s ease-out forwards;will-change:transform}
.hero-kenburns::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.54),rgba(0,0,0,.18) 48%,rgba(0,0,0,.02) 78%)}
.hero-kenburns-copy{position:relative;z-index:2;padding:0 var(--pad) clamp(58px,8vw,118px);max-width:1050px}
.hero-kenburns-copy h1{font-family:var(--serif);font-weight:400;letter-spacing:-.055em;line-height:.95;font-size:clamp(46px,6.2vw,90px);max-width:980px;margin:0;text-wrap:balance}
.hero-kenburns-copy p{font-size:clamp(17px,1.35vw,22px);line-height:1.62;max-width:650px;margin:28px 0 0;color:#fff}
@keyframes kenburns{from{transform:scale(1.02) translate3d(0,0,0)}to{transform:scale(1.115) translate3d(-1.5%, -1%,0)}}
.home-service-cards{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line);margin-top:clamp(48px,7vw,96px)}
.service-card{display:flex;flex-direction:column;min-height:520px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;transition:background .24s ease,transform .24s ease;color:var(--ink)}
.service-card:hover{background:var(--warm)}
.service-card img{width:100%;aspect-ratio:1.32/1;object-fit:cover;filter:saturate(.96);transition:transform .5s ease;transform-origin:center center}
.service-card:hover img{transform:scale(1.025)}
.service-card-body{padding:clamp(26px,3.6vw,54px);display:flex;flex-direction:column;gap:24px;flex:1}
.service-card h3{font-family:var(--serif);font-weight:400;font-size:clamp(36px,3.4vw,58px);line-height:.95;letter-spacing:-.05em;margin:0;transition:color .22s ease}
.service-card:hover h3{color:var(--teal)}
.service-card p{font-size:clamp(16px,1.15vw,20px);line-height:1.62;color:var(--muted);margin:0;max-width:340px}
.service-card span{margin-top:auto;color:var(--teal);font-size:34px;line-height:1}
.linked-services{margin-top:0}
.statement-screen{background:#fff}.project-preview{background:#F8F8F8}
@media(max-width:1050px){.home-service-cards{grid-template-columns:1fr 1fr}.service-card{min-height:440px}}
@media(max-width:760px){.services-subnav{position:sticky;top:76px;justify-content:flex-start;overflow:auto;opacity:0;visibility:hidden}.services-subnav.is-open,.service-page .services-subnav,.services-subnav.is-service{opacity:1;visibility:visible;transform:none}.services-subnav a{padding:14px 20px;font-size:11px}.hero-kenburns{height:calc(100vh - 76px);min-height:560px}.hero-kenburns-copy{padding-bottom:54px}.home-service-cards{grid-template-columns:1fr}.service-card{min-height:0}.service-card img{aspect-ratio:1.55/1}.service-card-body{padding:30px}.service-card h3{font-size:42px}}
@media(prefers-reduced-motion:reduce){.hero-kenburns-image{animation:none;transform:none}}


/* v8 refinements */
.site-header:hover + .services-subnav,.site-header:focus-within + .services-subnav{opacity:0;visibility:hidden;transform:translateY(-10px)}
.site-header.services-menu-active + .services-subnav,.services-subnav:hover,.services-subnav:focus-within,.services-subnav.is-open,.service-page .services-subnav,.services-subnav.is-service{opacity:1;visibility:visible;transform:none}
.services-subnav a:hover,.services-subnav a.is-active{color:var(--teal);background:var(--warm)}
.statement-inner>.statement{display:none}
.hero-kenburns-image{animation:kenburns 24s cubic-bezier(.16,1,.3,1) forwards;transform-origin:62% 48%}
@keyframes kenburns{0%{transform:scale(1.03) translate3d(0,0,0)}50%{transform:scale(1.16) translate3d(-2.8%,-1.7%,0)}100%{transform:scale(1.25) translate3d(-4.6%,-2.8%,0)}}
.portfolio-subnav{position:sticky;top:92px;z-index:42;display:flex;justify-content:center;gap:0;background:rgba(255,255,255,.94);backdrop-filter:blur(16px);border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:auto}
.portfolio-subnav a{padding:16px clamp(18px,3.2vw,52px);border-left:1px solid var(--line);font-size:12px;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;color:var(--ink)}
.portfolio-subnav a:last-child{border-right:1px solid var(--line)}
.portfolio-subnav a:hover,.portfolio-subnav a[aria-current=page]{background:var(--warm);color:var(--teal)}
.portfolio-masonry-section{padding:clamp(70px,8vw,130px) 0;background:var(--warm)}
.portfolio-masonry{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:220px;gap:18px}
.portfolio-tile{position:relative;overflow:hidden;background:#111;grid-column:span 1;grid-row:span 1;color:#fff;display:block}
.portfolio-tile.large{grid-column:span 2;grid-row:span 2}.portfolio-tile.tall{grid-row:span 2}.portfolio-tile.wide{grid-column:span 2}
.portfolio-tile img,.tonal-gallery img,.project-card img,.masonry-item img{filter:contrast(1.08) saturate(.88) brightness(.94);transition:transform .7s ease,filter .35s ease}
.portfolio-tile img{width:100%;height:100%;object-fit:cover}.portfolio-tile:hover img{transform:scale(1.04);filter:contrast(1.13) saturate(.9) brightness(.9)}
.portfolio-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 42%,rgba(0,0,0,.58));pointer-events:none}
.portfolio-tile span{position:absolute;left:22px;right:22px;bottom:20px;z-index:2;font-family:var(--serif);font-size:clamp(24px,2.2vw,40px);line-height:.98;letter-spacing:-.04em}.portfolio-tile em{font-family:var(--sans);font-size:12px;font-style:normal;letter-spacing:.14em;text-transform:uppercase;color:#ddd}
.project-detail-hero{position:relative;min-height:calc(100vh - 92px);display:flex;align-items:end;color:#fff;background:#111;overflow:hidden}.project-detail-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:contrast(1.08) saturate(.88) brightness(.88)}.project-detail-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.58),rgba(0,0,0,.12) 58%,rgba(0,0,0,.02))}.project-detail-hero div{position:relative;z-index:1;padding:0 var(--pad) clamp(70px,9vw,130px);max-width:1100px}.project-detail-hero h1{font-size:clamp(56px,8vw,122px)}.project-detail-hero p:not(.eyebrow){font-size:clamp(18px,1.8vw,25px);line-height:1.55;max-width:800px}
.service-page .masonry-grid{columns:2 380px;column-gap:28px}.service-page .masonry-item{margin-bottom:28px}
@media(max-width:1050px){.portfolio-masonry{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.portfolio-subnav{top:76px;justify-content:flex-start}.portfolio-subnav a{padding:14px 20px;font-size:11px}.portfolio-masonry{display:block}.portfolio-tile{height:360px;margin-bottom:18px}.portfolio-tile.large,.portfolio-tile.tall,.portfolio-tile.wide{height:420px}.service-page .masonry-grid{columns:1 260px}}


/* v9 refinements: transparent home header, overlay services menu, refined Ken Burns */
.home-page .site-header{
  position:fixed;
  top:0;
  left:0;
  right:0;
  background:linear-gradient(180deg,rgba(0,0,0,.46),rgba(0,0,0,.18) 56%,rgba(0,0,0,0));
  border-bottom:0;
  backdrop-filter:none;
  color:#fff;
}
.home-page .header-inner{height:96px;}
.home-page .nav a{color:#fff;text-shadow:0 1px 20px rgba(0,0,0,.45)}
.home-page .phone{border-left-color:rgba(255,255,255,.26)}
.home-page .mail{border-color:#fff;color:#fff;background:rgba(255,255,255,.04)}
.home-page .menu-toggle span{background:#fff}
.home-page .services-subnav{top:96px;}
.services-subnav{
  position:fixed;
  top:92px;
  left:0;
  right:0;
  z-index:55;
  width:100%;
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(18px);
  box-shadow:0 18px 38px rgba(0,0,0,.08);
}
.home-page .hero-kenburns{height:100vh;min-height:720px;padding-top:0;}
.hero-kenburns-image{
  width:116%;
  height:116%;
  left:-8%;
  top:-8%;
  max-width:none;
  animation:kenburns-refined 46s cubic-bezier(.18,.72,.2,1) forwards;
  transform-origin:var(--kb-origin,50% 50%);
  object-position:var(--kb-position,50% 50%);
}
@keyframes kenburns-refined{
  0%{transform:translate3d(var(--kb-start-x,-2%),var(--kb-start-y,1%),0) scale(1.18)}
  46%{transform:translate3d(calc(var(--kb-start-x,-2%) * .35),calc(var(--kb-start-y,1%) * .35),0) scale(1.28)}
  100%{transform:translate3d(var(--kb-end-x,3%),var(--kb-end-y,-2%),0) scale(1.08)}
}
@media(max-width:760px){
  .home-page .header-inner{height:76px}.home-page .services-subnav{top:76px}.services-subnav{top:76px}
  .home-page .nav{background:rgba(17,17,17,.92);backdrop-filter:blur(18px)}
  .home-page .hero-kenburns{min-height:680px}
}
@media(prefers-reduced-motion:reduce){.hero-kenburns-image{animation:none!important;transform:none!important;width:100%;height:100%;left:0;top:0}}


/* v10: home header contrast and scrolled state */
.home-page .site-header{
  transition:background .32s ease, backdrop-filter .32s ease, border-color .32s ease, color .32s ease, box-shadow .32s ease;
}
.home-page .site-header::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(180deg,rgba(0,0,0,.62),rgba(0,0,0,.28) 58%,rgba(0,0,0,0));
  opacity:1;
  transition:opacity .32s ease;
  pointer-events:none;
}
.home-page .brand img{
  filter:drop-shadow(0 2px 18px rgba(0,0,0,.62)) drop-shadow(0 0 1px rgba(0,0,0,.85));
  transition:filter .32s ease, opacity .2s ease;
}
.home-page .site-header.is-scrolled{
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(18px);
  border-bottom:1px solid var(--line);
  color:var(--ink);
  box-shadow:0 12px 34px rgba(0,0,0,.06);
}
.home-page .site-header.is-scrolled::before{opacity:0;}
.home-page .site-header.is-scrolled .brand img{filter:none;}
.home-page .site-header.is-scrolled .nav a{color:var(--ink);text-shadow:none;}
.home-page .site-header.is-scrolled .phone{border-left-color:var(--line);}
.home-page .site-header.is-scrolled .mail{border-color:var(--teal);color:var(--teal);background:transparent;}
.home-page .site-header.is-scrolled .menu-toggle span{background:var(--ink);}
.home-page .site-header.is-scrolled + .services-subnav{background:rgba(255,255,255,.88);}

/* v11: home services sticky menu transparent over hero until scroll is detected */
.home-page:not(.has-scrolled) .services-subnav{
  background:rgba(17,17,17,.08);
  backdrop-filter:blur(22px) saturate(1.15);
  -webkit-backdrop-filter:blur(22px) saturate(1.15);
  border-top:1px solid rgba(255,255,255,.18);
  border-bottom:1px solid rgba(255,255,255,.22);
  box-shadow:none;
  color:#fff;
}
.home-page:not(.has-scrolled) .services-subnav::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(0,0,0,.20),rgba(0,0,0,.08));
  z-index:-1;
}
.home-page:not(.has-scrolled) .services-subnav a{
  color:#fff;
  border-left-color:rgba(255,255,255,.22);
  text-shadow:0 1px 18px rgba(0,0,0,.45);
}
.home-page:not(.has-scrolled) .services-subnav a:last-child{border-right-color:rgba(255,255,255,.22)}
.home-page:not(.has-scrolled) .services-subnav a:hover,
.home-page:not(.has-scrolled) .services-subnav a.is-active{
  color:#fff;
  background:rgba(255,255,255,.12);
}
.home-page.has-scrolled .services-subnav{
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  box-shadow:0 18px 38px rgba(0,0,0,.08);
}
.home-page.has-scrolled .services-subnav a{
  color:var(--ink);
  border-left-color:var(--line);
  text-shadow:none;
}
.home-page.has-scrolled .services-subnav a:last-child{border-right-color:var(--line)}
.home-page.has-scrolled .services-subnav a:hover,
.home-page.has-scrolled .services-subnav a.is-active{color:var(--teal);background:var(--warm)}

/* v12: homepage refinements requested after v11 inspection */
/* Ken Burns now starts cropped and pans back out to reveal the full image. */
.hero-kenburns-image{
  width:100% !important;
  height:100% !important;
  left:0 !important;
  top:0 !important;
  max-width:none;
  animation:kenburns-reveal-full 58s cubic-bezier(.18,.7,.18,1) forwards !important;
  transform-origin:var(--kb-origin,50% 50%);
  object-position:var(--kb-position,50% 50%);
}
@keyframes kenburns-reveal-full{
  0%{transform:translate3d(var(--kb-start-x,-3%),var(--kb-start-y,2%),0) scale(1.32)}
  38%{transform:translate3d(calc(var(--kb-start-x,-3%) * .45),calc(var(--kb-start-y,2%) * .45),0) scale(1.22)}
  72%{transform:translate3d(var(--kb-end-x,2%),var(--kb-end-y,-1.5%),0) scale(1.10)}
  100%{transform:translate3d(0,0,0) scale(1)}
}

/* Reviews: smaller title and quieter quote typography. */
.reviews-section .section-title{margin-bottom:clamp(58px,7vw,105px);}
.reviews-section h2{
  font-size:clamp(36px,3.4vw,58px);
  line-height:.95;
  max-width:820px;
}
.review-card{min-height:360px;}
.review-card p{
  font-size:clamp(17px,1.18vw,22px);
  line-height:1.48;
  letter-spacing:-.018em;
}

/* About Us: remove right-hand card treatment and spread credentials/logos across page. */
.about-us-section{background:var(--warm);}
.about-grid{display:block;}
.about-copy{max-width:1180px;}
.about-copy h2{font-size:clamp(42px,5.4vw,86px);}
.about-copy p{max-width:1280px;font-size:clamp(17px,1.35vw,22px);color:var(--muted);}
.profile-card{
  position:relative;
  top:auto;
  margin-top:clamp(70px,8vw,120px);
  padding:0;
  border:0;
  background:transparent;
  display:grid;
  grid-template-columns:180px minmax(180px,230px) minmax(340px,1fr);
  gap:clamp(24px,3vw,48px);
  align-items:center;
}
.profile-photo{width:180px;border-radius:0;margin:0;filter:grayscale(1);}
.profile-card h3{
  grid-column:1 / -1;
  font-family:var(--sans);
  font-weight:700;
  font-size:clamp(20px,1.6vw,28px);
  letter-spacing:0;
  margin:clamp(28px,3vw,48px) 0 0;
  color:var(--grey);
}
.profile-card>p{
  grid-column:1 / -1;
  margin:-20px 0 0;
  font-size:clamp(20px,1.6vw,28px);
  color:var(--muted);
}
.credentials{
  display:flex;
  align-items:center;
  gap:clamp(22px,3vw,52px);
  border-top:0;
  padding:0;
  margin:0;
}
.credentials img{
  max-height:150px;
  width:auto;
  max-width:360px;
  object-fit:contain;
  mix-blend-mode:multiply;
  filter:grayscale(1) contrast(1.08);
}
.press-logos{
  grid-column:1 / -1;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:clamp(24px,3.4vw,54px);
  border-top:0;
  padding:0;
  margin-top:clamp(32px,3vw,54px);
}
.press-logos img{
  max-height:86px;
  width:auto;
  max-width:220px;
  object-fit:contain;
  mix-blend-mode:multiply;
  filter:grayscale(1) contrast(1.04);
}
@media(max-width:900px){
  .profile-card{grid-template-columns:150px 1fr;align-items:start;}
  .profile-photo{width:150px}.credentials{grid-column:2;flex-wrap:wrap}.credentials img{max-height:110px;max-width:260px}
}
@media(max-width:620px){
  .profile-card{display:block}.profile-photo{margin-bottom:24px}.credentials{display:flex;margin-top:24px}.credentials img{max-height:96px}.press-logos img{max-height:64px;max-width:170px}.profile-card>p{margin:4px 0 0}
}


/* v13: working-file refinement from v12 master.
   About Us: place accreditation marks to the right of Samantha portrait and keep name/title together. */
.profile-card{
  grid-template-columns:180px minmax(0,1fr) !important;
  grid-template-areas:
    "photo credentials"
    "caption credentials"
    "press press" !important;
  gap:clamp(22px,3vw,52px) clamp(30px,4vw,70px) !important;
  align-items:center !important;
}
.profile-photo{
  grid-area:photo !important;
}
.profile-caption{
  grid-area:caption !important;
  margin:clamp(18px,2vw,28px) 0 0 !important;
  font-size:clamp(20px,1.55vw,28px) !important;
  line-height:1.25 !important;
  color:var(--muted) !important;
}
.profile-caption strong{
  color:var(--grey) !important;
  font-weight:700 !important;
}
.profile-card h3,
.profile-card>p:not(.profile-caption){display:none !important;}
.credentials{
  grid-area:credentials !important;
  align-self:center !important;
  justify-content:flex-start !important;
  gap:clamp(26px,4vw,72px) !important;
}
.credentials img{
  max-height:clamp(125px,13vw,205px) !important;
  max-width:min(42vw,520px) !important;
  background:transparent !important;
  mix-blend-mode:multiply;
}
.press-logos{
  grid-area:press !important;
  margin-top:clamp(28px,3.4vw,58px) !important;
}
@media(max-width:900px){
  .profile-card{
    grid-template-columns:150px minmax(0,1fr) !important;
    grid-template-areas:
      "photo credentials"
      "caption credentials"
      "press press" !important;
  }
  .profile-photo{width:150px !important;}
  .credentials{flex-wrap:wrap !important;}
  .credentials img{max-height:120px !important;max-width:min(48vw,300px) !important;}
}
@media(max-width:620px){
  .profile-card{display:grid !important;grid-template-columns:1fr !important;grid-template-areas:"photo" "caption" "credentials" "press" !important;}
  .profile-photo{width:170px !important;}
  .profile-caption{margin:8px 0 0 !important;}
  .credentials{margin-top:22px !important;}
  .credentials img{max-height:100px !important;max-width:100% !important;}
}


/* v14: About Us trust block layout to match original reference.
   Portrait/name sit on the left; accreditation marks sit to the right; press logos span below. */
.about-us-section .profile-card{
  max-width:1280px !important;
  width:100% !important;
  margin-top:clamp(72px,8vw,126px) !important;
  display:grid !important;
  grid-template-columns:180px minmax(0,1fr) !important;
  grid-template-areas:
    "photo credentials"
    "caption credentials"
    "press press" !important;
  column-gap:clamp(28px,4vw,72px) !important;
  row-gap:0 !important;
  align-items:center !important;
}
.about-us-section .profile-photo{
  grid-area:photo !important;
  width:180px !important;
  height:auto !important;
  align-self:start !important;
  margin:0 !important;
  display:block !important;
}
.about-us-section .profile-caption{
  grid-area:caption !important;
  margin:clamp(26px,3vw,46px) 0 0 !important;
  font-size:clamp(20px,1.45vw,26px) !important;
  line-height:1.2 !important;
  color:var(--muted) !important;
  white-space:nowrap !important;
}
.about-us-section .profile-caption strong{
  color:var(--grey) !important;
  font-weight:700 !important;
}
.about-us-section .credentials{
  grid-area:credentials !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:clamp(36px,4.8vw,86px) !important;
  margin:0 !important;
  padding:0 !important;
}
.about-us-section .credentials img{
  display:block !important;
  width:auto !important;
  max-height:clamp(150px,15vw,226px) !important;
  max-width:min(44vw,560px) !important;
  object-fit:contain !important;
  background:transparent !important;
  mix-blend-mode:multiply !important;
  filter:grayscale(1) contrast(1.08) !important;
}
.about-us-section .press-logos{
  grid-area:press !important;
  display:flex !important;
  flex-wrap:wrap !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:clamp(28px,3.8vw,58px) !important;
  margin-top:clamp(52px,5.4vw,90px) !important;
  padding:0 !important;
}
.about-us-section .press-logos img{
  display:block !important;
  width:auto !important;
  max-height:86px !important;
  max-width:230px !important;
  object-fit:contain !important;
  background:transparent !important;
  mix-blend-mode:multiply !important;
  filter:grayscale(1) contrast(1.04) !important;
}
@media(max-width:900px){
  .about-us-section .profile-card{
    grid-template-columns:150px minmax(0,1fr) !important;
    column-gap:28px !important;
  }
  .about-us-section .profile-photo{width:150px !important;}
  .about-us-section .credentials{gap:24px !important;flex-wrap:wrap !important;}
  .about-us-section .credentials img{max-height:116px !important;max-width:min(52vw,290px) !important;}
  .about-us-section .profile-caption{white-space:normal !important;font-size:20px !important;}
}
@media(max-width:620px){
  .about-us-section .profile-card{
    grid-template-columns:1fr !important;
    grid-template-areas:"photo" "caption" "credentials" "press" !important;
    row-gap:0 !important;
  }
  .about-us-section .profile-photo{width:170px !important;}
  .about-us-section .profile-caption{margin:14px 0 0 !important;}
  .about-us-section .credentials{margin-top:30px !important;}
  .about-us-section .credentials img{max-height:100px !important;max-width:100% !important;}
  .about-us-section .press-logos{margin-top:38px !important;}
}

/* v15: working-site refinements from v14 inspection */
/* Make logo reliable/visible across pages and avoid an invisible SVG against image areas. */
.brand img{display:block;opacity:1;visibility:visible;max-width:min(300px,42vw);}
.home-page .brand img{filter:drop-shadow(0 2px 18px rgba(0,0,0,.72)) drop-shadow(0 0 2px rgba(0,0,0,.9));}
.home-page .site-header.is-scrolled .brand img{filter:none;}

/* Homepage What We Do text: title left, copy right. */
.about-us-section{background:var(--warm) !important;}
.about-us-section .wrap{padding-top:clamp(88px,10vw,150px);padding-bottom:clamp(88px,10vw,150px);}
.about-intro-grid{
  display:grid;
  grid-template-columns:minmax(260px,.78fr) minmax(420px,1.22fr);
  gap:clamp(44px,7vw,130px);
  align-items:start;
}
.about-intro-title h2{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(46px,5.8vw,96px);
  line-height:.94;
  letter-spacing:-.055em;
  margin:0;
  max-width:660px;
}
.about-intro-copy p{
  font-size:clamp(18px,1.42vw,23px);
  line-height:1.72;
  color:var(--muted);
  margin:0 0 1.35em;
  max-width:920px;
}
.about-links{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:clamp(28px,3vw,46px) !important;}
.about-links a{
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:var(--ink);
  border-bottom:1px solid var(--teal);
  padding-bottom:6px;
  font-size:13px;
  text-transform:uppercase;
  letter-spacing:.12em;
}
.about-links a::after{content:"→";color:var(--teal);font-size:18px;line-height:1;}
.about-links a:hover{color:var(--teal);}

/* Trust/profile grid: exact visual alignment, image blocks bottom-align with Samantha portrait. */
.about-us-section .profile-card{
  max-width:1180px !important;
  margin-top:clamp(78px,8vw,130px) !important;
  display:grid !important;
  grid-template-columns:180px minmax(0,760px) !important;
  grid-template-areas:
    "person credentials"
    "press press" !important;
  column-gap:clamp(28px,4vw,72px) !important;
  row-gap:clamp(52px,5.2vw,86px) !important;
  align-items:start !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
}
.about-us-section .profile-person{grid-area:person !important;display:block !important;}
.about-us-section .profile-photo{
  width:180px !important;
  height:180px !important;
  object-fit:cover !important;
  margin:0 !important;
  filter:grayscale(1) !important;
}
.about-us-section .profile-caption{
  margin:clamp(30px,2.8vw,44px) 0 0 !important;
  font-size:clamp(19px,1.35vw,24px) !important;
  line-height:1.2 !important;
  color:var(--muted) !important;
  white-space:nowrap !important;
}
.about-us-section .profile-caption strong{font-weight:700 !important;color:var(--grey) !important;}
.about-us-section .credentials{
  grid-area:credentials !important;
  height:180px !important;
  display:flex !important;
  align-items:flex-end !important;
  justify-content:flex-start !important;
  gap:clamp(28px,4vw,70px) !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  overflow:visible !important;
}
.about-us-section .credentials img{
  display:block !important;
  width:auto !important;
  height:auto !important;
  max-height:180px !important;
  max-width:min(36vw,430px) !important;
  object-fit:contain !important;
  background:transparent !important;
  mix-blend-mode:multiply !important;
  filter:grayscale(1) contrast(1.08) !important;
}
.about-us-section .press-logos{
  grid-area:press !important;
  display:flex !important;
  flex-wrap:wrap !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:clamp(26px,3.6vw,54px) !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
}
.about-us-section .press-logos img{
  display:block !important;
  width:auto !important;
  max-height:86px !important;
  max-width:230px !important;
  object-fit:contain !important;
  background:transparent !important;
  mix-blend-mode:multiply !important;
  filter:grayscale(1) contrast(1.04) !important;
}

/* Match homepage service card order to the service subnav order: Space, Interiors, Bathrooms, Kitchens. */
.home-service-cards .service-card{order:0;}

@media(max-width:900px){
  .about-intro-grid{grid-template-columns:1fr;gap:32px;}
  .about-us-section .profile-card{grid-template-columns:150px minmax(0,1fr) !important;column-gap:28px !important;}
  .about-us-section .profile-photo{width:150px !important;height:150px !important;}
  .about-us-section .credentials{height:150px !important;gap:22px !important;}
  .about-us-section .credentials img{max-height:150px !important;max-width:min(48vw,300px) !important;}
  .about-us-section .profile-caption{white-space:normal !important;font-size:19px !important;}
}
@media(max-width:620px){
  .about-us-section .profile-card{grid-template-columns:1fr !important;grid-template-areas:"person" "credentials" "press" !important;row-gap:30px !important;}
  .about-us-section .profile-photo{width:170px !important;height:170px !important;}
  .about-us-section .credentials{height:auto !important;align-items:center !important;flex-wrap:wrap !important;}
  .about-us-section .credentials img{max-height:100px !important;max-width:100% !important;}
  .about-us-section .press-logos img{max-height:64px !important;max-width:170px !important;}
}

/* v16 service page content refinements */
.service-article{max-width:1180px;}
.service-article h2{font-size:clamp(44px,5.6vw,92px);margin-bottom:34px;}
.service-article h3{font-family:var(--serif);font-weight:400;font-size:clamp(28px,3.4vw,54px);line-height:1.02;letter-spacing:-.04em;margin:54px 0 18px;max-width:900px;}
.service-article .service-kicker{font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--teal);font-weight:600;margin-top:44px;}
.service-article ul{max-width:980px;margin:20px 0 32px;padding-left:24px;color:#333;font-size:19px;line-height:1.8;}
.service-article li{margin:0 0 10px;}
.service-inline-image{margin:44px 0 56px;max-width:980px;}
.service-inline-image img{width:100%;height:auto;background:#fff;}
.service-inline-image figcaption{font-size:13px;color:var(--muted);margin-top:10px;letter-spacing:.04em;}
.service-page .masonry-grid{columns:2 420px;column-gap:30px;}
.service-page .masonry-item{break-inside:avoid;margin-bottom:30px;background:#fff;}
.service-page .masonry-item img{filter:contrast(1.08) saturate(.88) brightness(.97);}
@media(max-width:760px){.service-page .masonry-grid{columns:1 260px}.service-article ul{font-size:17px}.service-inline-image{margin:32px 0 40px}}


/* v17 service page refinements */
.service-article{max-width:var(--max) !important;}
.service-article p,.service-article ul{max-width:1180px;}
.service-inline-image{max-width:none !important;}
.service-inline-image img{width:100%;height:auto;}
.service-inline-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(22px,3vw,44px);margin:44px 0 56px;align-items:start;}
.service-inline-pair .service-inline-image{margin:0;}
.kitchen-numbered{display:grid;gap:clamp(28px,3vw,42px);margin:42px 0 52px;max-width:1180px;}
.kitchen-numbered-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(20px,2.5vw,34px);align-items:start;}
.kitchen-number{width:clamp(54px,5.4vw,76px);height:clamp(54px,5.4vw,76px);background:var(--teal);color:#fff;display:grid;place-items:center;font-family:var(--serif);font-size:clamp(34px,3.4vw,52px);line-height:1;}
.kitchen-numbered-item h3{margin:0 0 14px;}
.service-page .masonry-grid{display:grid !important;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;columns:auto !important;align-items:start;}
.service-page .masonry-item{margin:0 !important;break-inside:auto;background:#fff;align-self:start;}
.service-page .masonry-item img{width:100%;height:auto;display:block;}
@media(max-width:760px){.service-inline-pair,.service-page .masonry-grid{grid-template-columns:1fr}.kitchen-numbered-item{grid-template-columns:1fr}.kitchen-number{width:58px;height:58px}}
/* v17b make service text use the same full content width as the hero/gallery container */
.service-article p,.service-article ul,.kitchen-numbered{max-width:none !important;}

/* v18: service page SEO heading cleanup, portfolio project menu, mobile nav refinements */
.service-article h2{
  font-family:var(--serif) !important;
  font-weight:400 !important;
  font-size:clamp(28px,3.4vw,54px) !important;
  line-height:1.02 !important;
  letter-spacing:-.04em !important;
  margin:54px 0 18px !important;
  max-width:900px !important;
}
.service-article > p:first-child{margin-top:0;}
.project-about{background:#fff;}
.project-about-grid{display:grid;grid-template-columns:minmax(220px,.45fr) minmax(0,1fr);gap:clamp(34px,6vw,100px);align-items:start;}
.project-about h2{font-family:var(--serif);font-weight:400;font-size:clamp(40px,4.8vw,82px);line-height:.98;letter-spacing:-.05em;margin:0 0 28px;}
.project-about p{font-size:clamp(17px,1.3vw,22px);line-height:1.72;color:var(--muted);max-width:980px;}
.portfolio-subnav{top:92px;z-index:54;}
body:has(.portfolio-subnav) .services-subnav:not(.is-open):not(.is-service){display:none;}
@media(max-width:760px){
  .portfolio-subnav{top:76px;}
  .project-about-grid{grid-template-columns:1fr;gap:24px;}
  .nav{top:76px;bottom:auto;inset:auto 0 auto 0;transform:translateY(-14px);opacity:0;visibility:hidden;background:rgba(255,255,255,.94) !important;color:var(--ink);backdrop-filter:blur(18px);box-shadow:0 18px 38px rgba(0,0,0,.08);}
  .nav.open{transform:translateY(0);opacity:1;visibility:visible;}
  .home-page .nav{background:rgba(255,255,255,.94) !important;color:var(--ink) !important;}
  .home-page .nav a{color:var(--ink) !important;text-shadow:none !important;}
  .home-page .nav .phone{border-left:0;}
  .home-page .nav .mail{border-color:var(--teal) !important;color:var(--teal) !important;background:transparent !important;}
}

/* v19: gallery alignment, mobile menu/logo restoration, and one-third/two-thirds detail grids */
/* Restore a stronger, more legible logo size after v15 mobile shrink. */
.brand img{
  width:min(360px,44vw) !important;
  max-width:none !important;
  height:auto;
}
@media(max-width:760px){
  .header-inner{position:relative;z-index:61;}
  .brand img{width:min(360px,78vw) !important;}
  .site-header{z-index:70;}
  .menu-toggle{position:relative;z-index:72;}
  .nav{
    position:fixed !important;
    top:76px !important;
    left:0 !important;
    right:0 !important;
    bottom:auto !important;
    z-index:60 !important;
    display:grid !important;
    gap:22px !important;
    padding:26px var(--pad) 32px !important;
    background:rgba(255,255,255,.96) !important;
    color:var(--ink) !important;
    border-top:1px solid rgba(0,0,0,.04) !important;
    border-bottom:1px solid var(--line) !important;
    box-shadow:0 22px 42px rgba(0,0,0,.10) !important;
    backdrop-filter:blur(18px) !important;
    transform:translateY(-16px) !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
    transition:transform .25s ease,opacity .25s ease,visibility .25s ease !important;
  }
  .nav.open{
    transform:translateY(0) !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
  }
  .nav a{color:var(--ink) !important;text-shadow:none !important;}
  .nav .phone{border-left:0 !important;padding-left:0 !important;}
  .nav .mail{border-color:var(--teal) !important;color:var(--teal) !important;background:transparent !important;}
}

/* Gallery grids: keep top rows aligned and regularise spacing underneath each image. */
.masonry-grid,
.service-page .masonry-grid,
.project-masonry{
  columns:auto !important;
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:30px !important;
  align-items:start !important;
}
.service-page .masonry-grid{
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
}
.masonry-item,
.service-page .masonry-item{
  display:block !important;
  margin:0 !important;
  break-inside:auto !important;
  align-self:start !important;
  background:#fff;
  overflow:hidden;
}
.masonry-item img,
.service-page .masonry-item img{
  width:100% !important;
  aspect-ratio:4 / 3 !important;
  height:auto !important;
  min-height:0 !important;
  object-fit:cover !important;
  display:block !important;
}
@media(max-width:900px){
  .masonry-grid,.service-page .masonry-grid,.project-masonry{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
}
@media(max-width:620px){
  .masonry-grid,.service-page .masonry-grid,.project-masonry{grid-template-columns:1fr !important;gap:22px !important;}
}

/* Project and service detail sections share the same 1/3 + 2/3 column rhythm as the gallery. */
.project-about-grid,
.service-detail-grid{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:30px !important;
  align-items:start !important;
  max-width:var(--max);
  margin:0 auto;
}
.project-about-grid > .eyebrow,
.service-detail-grid > .eyebrow{
  grid-column:1 / span 1;
  margin-top:.35em;
}
.project-about-grid > div,
.service-detail-body{
  grid-column:2 / span 2;
}
.service-detail-body > :first-child{margin-top:0;}
@media(max-width:760px){
  .project-about-grid,.service-detail-grid{grid-template-columns:1fr !important;gap:24px !important;}
  .project-about-grid > .eyebrow,.service-detail-grid > .eyebrow,.project-about-grid > div,.service-detail-body{grid-column:auto !important;}
}

/* v20: gallery masonry, mobile header/menu restoration, shared 1/3 + 2/3 rhythm */
.brand img{width:min(300px,42vw) !important;height:auto;}
@media(max-width:760px){
  .header-inner{height:76px;gap:16px;}
  .brand{min-width:0;display:block;}
  .brand img{width:min(280px,62vw) !important;max-width:100% !important;height:auto;}
  .menu-toggle{display:block;flex:0 0 auto;margin-left:auto;position:relative;z-index:72;padding:10px;}
  .menu-toggle span{width:26px;background:currentColor;}
  .home-page:not(.has-scrolled) .menu-toggle{color:#fff;}
  .home-page.has-scrolled .menu-toggle,.menu-toggle{color:var(--ink);}
  .nav{
    position:fixed !important;
    top:76px !important;
    left:0 !important;
    right:0 !important;
    bottom:auto !important;
    z-index:60 !important;
    display:grid !important;
    gap:22px !important;
    padding:26px var(--pad) 34px !important;
    background:rgba(255,255,255,.96) !important;
    color:var(--ink) !important;
    border-top:1px solid rgba(0,0,0,.04) !important;
    border-bottom:1px solid var(--line) !important;
    box-shadow:0 22px 42px rgba(0,0,0,.10) !important;
    backdrop-filter:blur(18px) !important;
    transform:translateY(-12px) !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
    transition:transform .24s ease,opacity .24s ease,visibility .24s ease !important;
  }
  .nav.open{transform:translateY(0) !important;opacity:1 !important;visibility:visible !important;pointer-events:auto !important;}
  .nav a{color:var(--ink) !important;text-shadow:none !important;}
  .nav .phone{border-left:0 !important;padding-left:0 !important;}
  .nav .mail{border-color:var(--teal) !important;color:var(--teal) !important;background:transparent !important;}
}

/* True masonry: three CSS columns, original image proportions, consistent vertical spacing. */
.masonry-grid,
.service-page .masonry-grid,
.project-masonry{
  display:block !important;
  columns:3 260px !important;
  column-gap:30px !important;
  align-items:initial !important;
}
.masonry-item,
.service-page .masonry-item,
.project-masonry .masonry-item{
  display:block !important;
  break-inside:avoid !important;
  page-break-inside:avoid !important;
  margin:0 0 30px !important;
  background:#fff;
  overflow:hidden;
}
.masonry-item img,
.service-page .masonry-item img,
.project-masonry .masonry-item img{
  display:block !important;
  width:100% !important;
  height:auto !important;
  aspect-ratio:auto !important;
  object-fit:contain !important;
}
@media(max-width:900px){.masonry-grid,.service-page .masonry-grid,.project-masonry{columns:2 260px !important;column-gap:24px !important}.masonry-item,.service-page .masonry-item,.project-masonry .masonry-item{margin-bottom:24px !important}}
@media(max-width:620px){.masonry-grid,.service-page .masonry-grid,.project-masonry{columns:1 260px !important}.masonry-item,.service-page .masonry-item,.project-masonry .masonry-item{margin-bottom:22px !important}}

.project-about-grid,
.service-detail-grid{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:30px !important;
  align-items:start !important;
  max-width:var(--max);
  margin:0 auto;
}
.project-about-grid > .eyebrow,
.service-detail-grid > .eyebrow{grid-column:1 / span 1;margin-top:.35em;}
.project-about-grid > div,
.service-detail-body{grid-column:2 / span 2;}
@media(max-width:760px){
  .project-about-grid,.service-detail-grid{grid-template-columns:1fr !important;gap:24px !important;}
  .project-about-grid > .eyebrow,.service-detail-grid > .eyebrow,.project-about-grid > div,.service-detail-body{grid-column:auto !important;}
}

/* v21: tighter gallery spacing, footer local SEO statement, and controlled mobile hero crops */
.masonry-grid,
.service-page .masonry-grid,
.project-masonry{
  column-gap:10px !important;
}
.masonry-item,
.service-page .masonry-item,
.project-masonry .masonry-item{
  margin:0 0 10px !important;
}
.portfolio-masonry{
  gap:10px !important;
}
@media(max-width:900px){
  .masonry-grid,.service-page .masonry-grid,.project-masonry{column-gap:10px !important;}
  .masonry-item,.service-page .masonry-item,.project-masonry .masonry-item{margin-bottom:10px !important;}
}
@media(max-width:620px){
  .masonry-grid,.service-page .masonry-grid,.project-masonry{column-gap:10px !important;}
  .masonry-item,.service-page .masonry-item,.project-masonry .masonry-item{margin-bottom:10px !important;}
}
.footer-local{
  grid-column:1 / -1;
  max-width:940px;
  margin:clamp(18px,2vw,28px) 0 0;
  color:#cfcfcf;
  font-size:clamp(14px,1.05vw,17px);
  line-height:1.65;
}
.footer .footer-local a{text-decoration:underline;}
@media(max-width:760px){.footer-local{grid-column:auto;margin-top:8px;}}

/* v22 mobile hero CTA clearance + tighter gallery spacing */
.masonry-grid{column-gap:10px;}
.masonry-item{margin:0 0 10px;}
.portfolio-masonry{gap:10px;}
@media(max-width:760px){
  .hero-kenburns-copy{
    padding-bottom:clamp(140px,24vh,210px);
  }
  .hero-kenburns-copy h1{
    font-size:clamp(42px,12vw,64px);
  }
  .hero-kenburns-copy p{
    margin-top:20px;
    font-size:clamp(16px,4.7vw,20px);
    line-height:1.48;
  }
  .hero-kenburns-copy .button{
    margin-top:22px;
  }
}
@media(max-width:430px){
  .hero-kenburns-copy{
    padding-bottom:clamp(160px,28vh,240px);
  }
}


/* v23: spacing, type system, social links, Instagram preview and trust/logo alignment */
:root{
  --section-y:clamp(82px,9vw,132px);
  --display-size:clamp(48px,6.4vw,104px);
  --title-size:clamp(42px,5.4vw,86px);
  --card-title-size:clamp(34px,3.35vw,58px);
  --body-size:clamp(17px,1.28vw,22px);
  --small-size:13px;
  --label-size:12px;
  --body-colour:var(--muted);
}
/* standardise vertical rhythm across main sections */
.page-hero,
.content-section,
.portfolio-masonry-section,
.project-about,
.project-preview,
.reviews-section,
.instagram-section{padding-top:var(--section-y)!important;padding-bottom:var(--section-y)!important;}
.statement-inner,
.about-us-section .wrap{padding-top:var(--section-y)!important;padding-bottom:var(--section-y)!important;}
.services-section{padding-top:var(--section-y)!important;padding-bottom:var(--section-y)!important;}
.project-preview .section-title,.reviews-section .section-title,.instagram-section .section-title{margin-bottom:clamp(52px,6vw,88px)!important;}

/* controlled heading and paragraph scale */
.page-hero h1,.project-detail-hero h1,.hero-kenburns-copy h1{font-size:var(--display-size);line-height:.96;letter-spacing:-.052em;}
.statement,.page-hero h2,.content-section h2,.project-preview h2,.reviews-section h2,.instagram-section h2,.about-intro-title h2,.project-about h2{font-size:var(--title-size)!important;line-height:.98!important;letter-spacing:-.052em!important;}
.service-card h3,.portfolio-tile span,.service-article h2,.service-article h3{font-size:var(--card-title-size)!important;line-height:.98!important;letter-spacing:-.045em!important;}
p,.copy,.page-hero p,.project-detail-hero p:not(.eyebrow),.project-about p,.service-detail-body p,.about-intro-copy p{font-size:var(--body-size);line-height:1.68;color:var(--body-colour);}
.eyebrow{font-size:var(--label-size)!important;line-height:1.4!important;color:var(--teal)!important;text-transform:uppercase!important;letter-spacing:.28em!important;font-weight:500!important;}
.footer p,.footer-local,.footer small{color:#cfcfcf;}

/* About/profile trust grid: profile and logo groups align on a strict horizontal grid */
.about-us-section .profile-card{
  max-width:1320px!important;
  grid-template-columns:260px 1fr!important;
  grid-template-areas:"person credentials" "press press"!important;
  column-gap:clamp(48px,6vw,110px)!important;
  row-gap:clamp(50px,5.5vw,84px)!important;
  align-items:start!important;
  overflow:visible!important;
}
.about-us-section .profile-person{height:260px!important;display:flex!important;flex-direction:column!important;justify-content:flex-start!important;}
.about-us-section .profile-photo{width:260px!important;height:260px!important;object-fit:cover!important;object-position:center!important;}
.about-us-section .credentials{height:260px!important;display:flex!important;align-items:flex-end!important;justify-content:flex-start!important;gap:clamp(44px,5.5vw,92px)!important;overflow:visible!important;}
.about-us-section .credentials img{max-height:240px!important;max-width:min(32vw,520px)!important;width:auto!important;height:auto!important;object-fit:contain!important;background:transparent!important;}
.about-us-section .profile-caption{margin:clamp(24px,2.4vw,38px) 0 0!important;white-space:nowrap!important;}
.about-us-section .press-logos{align-items:center!important;gap:clamp(24px,3.4vw,52px)!important;}
.about-us-section .press-logos img{max-height:78px!important;}
@media(max-width:1000px){
  .about-us-section .profile-card{grid-template-columns:200px 1fr!important;column-gap:34px!important;}
  .about-us-section .profile-person,.about-us-section .credentials{height:200px!important;}
  .about-us-section .profile-photo{width:200px!important;height:200px!important;}
  .about-us-section .credentials{gap:22px!important;flex-wrap:wrap!important;align-content:flex-end!important;}
  .about-us-section .credentials img{max-height:140px!important;max-width:min(46vw,260px)!important;}
}
@media(max-width:680px){
  .about-us-section .profile-card{grid-template-columns:1fr!important;grid-template-areas:"person" "credentials" "press"!important;}
  .about-us-section .profile-person{height:auto!important;}
  .about-us-section .profile-photo{width:180px!important;height:180px!important;}
  .about-us-section .credentials{height:auto!important;align-items:center!important;}
}

/* Instagram preview */
.instagram-section{background:#fff;border-top:1px solid var(--line);}
.instagram-section .section-title{display:flex;justify-content:space-between;gap:40px;align-items:end;}
.instagram-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;}
.instagram-card{position:relative;display:block;overflow:hidden;background:var(--warm);aspect-ratio:1/1;color:#fff;}
.instagram-card img{width:100%;height:100%;object-fit:cover;filter:contrast(1.05) saturate(.9) brightness(.95);transition:transform .55s ease,filter .35s ease;}
.instagram-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 45%,rgba(0,0,0,.55));opacity:.85;}
.instagram-card span{position:absolute;left:24px;bottom:22px;z-index:2;font-size:12px;text-transform:uppercase;letter-spacing:.14em;color:#fff;}
.instagram-card:hover img{transform:scale(1.04);filter:contrast(1.08) saturate(.92) brightness(.9);}
.secondary-button{background:transparent;color:var(--teal);}
.secondary-button:hover{background:var(--teal);color:#fff;}
@media(max-width:760px){.instagram-section .section-title{display:block}.instagram-grid{grid-template-columns:1fr}.instagram-card{aspect-ratio:4/3}}

/* Footer social links */
.footer-social{display:flex;gap:12px;align-items:center;}
.footer-social .round-icon{width:50px;height:50px;padding:14px;display:grid;place-items:center;}
.footer-social svg{width:22px;height:22px;stroke:currentColor;fill:none;}
.footer-social a[aria-label*="Pinterest"] svg{fill:currentColor;stroke:none;}
@media(max-width:760px){.footer-social{margin-top:4px}}

/* Keep all galleries at 10px and preserve masonry proportions. */
.masonry-grid,.service-page .masonry-grid,.project-masonry{column-gap:10px!important;}
.masonry-item,.service-page .masonry-item,.project-masonry .masonry-item{margin-bottom:10px!important;}
.portfolio-masonry{gap:10px!important;}

/* Contact/location section cleaner centre alignment. */
.contact-page .statement-inner{text-align:left;}



/* v24: logo visibility and working static admin helpers */
.home-page .site-header:not(.is-scrolled) .brand img{filter:drop-shadow(0 2px 18px rgba(0,0,0,.72)) drop-shadow(0 0 2px rgba(0,0,0,.9));}
.admin-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:18px 0 28px;}
.admin-field{display:grid;gap:7px;font-size:13px;color:#555;}
.admin-field input,.admin-field textarea,.admin-field select{font:inherit;padding:10px;border:1px solid #ccc;background:#fff;color:#111;}
.admin-field textarea{min-height:92px;resize:vertical;}
.admin-actions{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0;}
.admin-button{border:1px solid var(--teal);background:var(--teal);color:#fff;padding:11px 14px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;}
.admin-button.secondary{background:#fff;color:var(--teal);}
.admin-post-row,.admin-project-row{border:1px solid #ddd;background:#fff;padding:16px;margin:12px 0;}
.admin-note{background:#fff7d7;border:1px solid #e8d17a;padding:14px;margin:18px 0;color:#4b4200;line-height:1.5;}
.admin-live-preview{border:1px solid #ddd;background:#fff;padding:18px;margin-top:12px;}
.admin-live-preview .instagram-grid{grid-template-columns:repeat(3,1fr);}
@media(max-width:760px){.admin-form-grid{grid-template-columns:1fr}.admin-live-preview .instagram-grid{grid-template-columns:1fr}.admin-main{padding:20px}}

/* v25: About section spacing fix
   The section itself must not add extra vertical padding on top of the standard wrap spacing. */
.about-us-section{
  padding-top:0!important;
  padding-bottom:0!important;
}
.about-us-section .wrap{
  padding-top:var(--section-y)!important;
  padding-bottom:var(--section-y)!important;
}

/* v28 CMS/refinement fixes */
.hero-kenburns-copy p,
.service-hero p:not(.eyebrow),
.project-detail-hero p:not(.eyebrow){color:#fff !important;}
.service-copy p,
.service-copy li,
.service-page .content-section p,
.service-page .content-section li{color:var(--muted) !important;line-height:1.68;}
.service-copy ul,
.service-copy ol,
.service-page .content-section ul,
.service-page .content-section ol{margin-top:10px;margin-bottom:18px;}
.service-copy li+li,
.service-page .content-section li+li{margin-top:6px;}
.masonry-grid{column-gap:10px !important;}
.masonry-item{margin-bottom:10px !important;break-inside:avoid;}


/* v29: mobile hero, service list type, admin image chooser, remove Instagram */
@media(max-width:760px){
  .hero-kenburns-copy{padding-bottom:clamp(88px,15vh,128px)!important;}
  .hero-kenburns-copy .button{margin-top:22px;}
}
.service-page .service-article p,
.service-page .service-article li,
.service-page .content-section p,
.service-page .content-section li{
  color:var(--muted)!important;
  font-size:var(--body-size)!important;
  line-height:1.56!important;
}
.service-page .service-article ul,
.service-page .service-article ol,
.service-page .content-section ul,
.service-page .content-section ol{
  color:var(--muted)!important;
  font-size:var(--body-size)!important;
  line-height:1.56!important;
  margin-top:10px!important;
  margin-bottom:22px!important;
}
.service-page .service-article li+li,
.service-page .content-section li+li{margin-top:4px!important;}
.service-page .eyebrow,
.service-page .service-kicker,
.service-page .section-label,
.service-page .kicker{color:var(--teal)!important;}
.instagram-section{display:none!important;}
.admin-image-field{display:grid;grid-template-columns:110px 1fr auto auto;gap:10px;align-items:center;border:1px solid #ddd;background:#fff;padding:10px;margin:8px 0;}
.admin-thumb{width:110px;height:78px;object-fit:cover;background:#eee;border:1px solid #ddd;}
.admin-image-path{font-size:12px;color:#666;word-break:break-all;text-transform:none;letter-spacing:0;}
.icon-button{width:34px;height:34px;border:1px solid #ddd;background:#f7f7f7;color:#111;display:grid;place-items:center;cursor:pointer;}
.icon-button[disabled]{opacity:.35;cursor:not-allowed;}
.admin-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin:10px 0;}
.admin-gallery-item{border:1px solid #ddd;background:#fff;padding:8px;position:relative;}
.admin-gallery-item img{width:100%;aspect-ratio:4/3;object-fit:cover;}
.admin-gallery-item .icon-button{position:absolute;right:10px;top:10px;background:rgba(255,255,255,.9);}
.asset-modal{position:fixed;inset:0;background:rgba(0,0,0,.62);z-index:999;display:none;align-items:center;justify-content:center;padding:24px;}
.asset-modal.open{display:flex;}
.asset-modal-inner{background:#fff;width:min(1180px,96vw);max-height:90vh;overflow:auto;padding:24px;border:1px solid #ddd;}
.asset-modal-head{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:18px;}
.asset-chooser-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:12px;}
.asset-choice{border:1px solid #ddd;background:#fff;padding:8px;cursor:pointer;text-align:left;}
.asset-choice img{width:100%;aspect-ratio:1/1;object-fit:cover;background:#eee;}
.asset-choice span{display:block;font-size:11px;color:#666;margin-top:6px;word-break:break-all;}

/* v30 refinements */
.service-detail-body ul,.service-detail-body ol{color:var(--body-colour);font-size:var(--body-size);line-height:1.48;margin:0 0 1.1em 1.2em;padding:0;}
.service-detail-body li{color:var(--body-colour);font-size:inherit;line-height:1.48;margin:.18em 0;}
.service-detail-body .eyebrow,.service-copy .eyebrow,.page-hero .eyebrow{color:var(--teal);}


/* v34: hero reel, admin section focus, mobile admin nav, stronger hero text */
.hero-kenburns::after{background:linear-gradient(90deg,rgba(0,0,0,.66),rgba(0,0,0,.28) 48%,rgba(0,0,0,.08) 80%) !important;}
.hero-kenburns-copy p{color:#fff!important;text-shadow:0 2px 14px rgba(0,0,0,.68),0 1px 3px rgba(0,0,0,.55);font-weight:450;}
.hero-kenburns-copy h1{text-shadow:0 3px 18px rgba(0,0,0,.42),0 1px 4px rgba(0,0,0,.45);}
.hero-kenburns-image{animation:none!important;transform:none!important;object-position:50% 50%;}
.hero-reel-layer{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform-origin:var(--kb-origin,50% 50%);object-position:var(--kb-position,50% 50%);filter:contrast(1.04) saturate(.94) brightness(.88);transition:opacity 900ms ease;will-change:opacity,transform;}
.hero-reel-layer.is-active{opacity:1;animation:hero-reel-reveal 2s cubic-bezier(.2,.78,.24,1) forwards;}
@keyframes hero-reel-reveal{0%{transform:scale(var(--kb-start-scale,1.18)) translate3d(var(--kb-start-x,0),var(--kb-start-y,0),0);}100%{transform:scale(1) translate3d(0,0,0);}}
@media(max-width:760px){.hero-kenburns-copy{padding-bottom:clamp(38px,8vh,76px)!important}.hero-kenburns-copy p{font-size:clamp(18px,5.4vw,25px);line-height:1.48}.hero-kenburns-copy h1{font-size:clamp(52px,15.5vw,86px)}}
@media(prefers-reduced-motion:reduce){.hero-reel-layer.is-active{animation:none!important;transform:none!important}.hero-reel-layer{transition:none!important}}

/* Admin v34 */
.admin-login{position:fixed;inset:0;z-index:9999;background:#111;display:grid;place-items:center;color:#fff;padding:24px}.admin-login[hidden]{display:none}.admin-login-box{width:min(420px,92vw);background:#181818;border:1px solid #333;padding:34px}.admin-login-box h1{font-family:var(--serif);font-size:42px;font-weight:400;margin:0 0 20px}.admin-login-box input{width:100%;padding:15px;border:1px solid #555;background:#0f0f0f;color:#fff;font-size:17px}.admin-login-box button{margin-top:18px;width:100%;padding:14px;background:var(--teal);color:#fff;border:0;text-transform:uppercase;letter-spacing:.08em}
.admin-toolbar{position:sticky;top:0;z-index:20;background:rgba(248,248,248,.94);backdrop-filter:blur(14px);border-bottom:1px solid #ddd;padding:14px 0 18px;margin:-40px -40px 28px;padding-left:40px;padding-right:40px}.admin-toolbar .admin-actions{margin:0;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.admin-toast{position:fixed;right:22px;bottom:22px;z-index:10000;max-width:min(520px,calc(100vw - 44px));background:#111;color:#fff;padding:14px 18px;border-left:4px solid var(--teal);box-shadow:0 18px 45px rgba(0,0,0,.25)}.admin-toast.error{border-left-color:#b00020}.admin-status{margin:0 0 0 12px;color:#057A7A}.admin-status.error{color:#b00020}.admin-card{display:none}.admin-card.is-active{display:block}.admin-shell.nav-open .admin-side{transform:translateX(0)}.admin-mobile-toggle{display:none}.admin-image-field,.admin-gallery-item{overflow:hidden}.admin-gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.admin-gallery-item img{aspect-ratio:4/3;object-fit:cover}.crop-phone img{touch-action:none;cursor:grab}.crop-phone img:active{cursor:grabbing}.crop-tools{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.crop-tools input[type=range]{width:180px}.admin-field code{word-break:break-all}
@media(max-width:900px){.admin-preview{display:block}.admin-side{display:block;position:fixed;left:0;top:0;bottom:0;width:min(310px,84vw);z-index:1000;transform:translateX(-105%);transition:.25s;overflow:auto}.admin-mobile-toggle{display:inline-flex;position:sticky;top:0;z-index:30;background:#111;color:#fff;border:0;padding:12px 16px;margin:0 0 16px}.admin-main{padding:18px}.admin-toolbar{margin:-18px -18px 22px;padding:12px 18px}.admin-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* v35: hero text size reverted to v33, with v34 readability effects retained */
.home-page .hero-kenburns-copy h1{font-size:clamp(46px,6.2vw,90px)!important;line-height:.95!important;letter-spacing:-.055em!important;max-width:980px!important;}
.home-page .hero-kenburns-copy p{color:#fff!important;text-shadow:0 2px 18px rgba(0,0,0,.82),0 1px 4px rgba(0,0,0,.72)!important;font-weight:500!important;}
.hero-kenburns::after{background:linear-gradient(90deg,rgba(0,0,0,.72),rgba(0,0,0,.32) 52%,rgba(0,0,0,.10) 84%)!important;}
.hero-reel-layer{transition:opacity 760ms ease!important;}
.hero-reel-layer.is-active{animation:hero-reel-reveal-v35 2.4s cubic-bezier(.18,.78,.2,1) forwards!important;}
@keyframes hero-reel-reveal-v35{0%{transform:scale(var(--kb-start-scale,1.18)) translate3d(var(--kb-start-x,0),var(--kb-start-y,0),0);}100%{transform:scale(1) translate3d(0,0,0);}}
@media(max-width:760px){.home-page .hero-kenburns-copy h1{font-size:clamp(44px,13vw,72px)!important;}.home-page .hero-kenburns-copy{padding-bottom:clamp(52px,10vh,96px)!important;}}

/* v35: admin cleanup */
.admin-card .admin-actions:has([data-preview]),.admin-card .admin-actions:has([data-live]){display:none!important;}
.admin-toolbar{top:0!important;z-index:50!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:14px!important;}
.admin-toolbar:before{content:'Section:';font-size:12px;text-transform:uppercase;letter-spacing:.16em;color:#666;margin-right:6px;}
.admin-toolbar .admin-actions{margin:0!important;}
.admin-side a.is-active{color:#069494;border-bottom-color:#069494;}
.admin-status{display:none!important;}
@media(max-width:900px){.admin-mobile-toggle{display:flex!important;position:fixed!important;top:0!important;left:0!important;right:0!important;width:100%!important;z-index:80!important;margin:0!important;border-bottom:1px solid #ddd;justify-content:flex-start}.admin-toolbar{position:fixed!important;top:44px!important;left:0!important;right:0!important;margin:0!important;padding:10px 14px!important;z-index:79!important}.admin-main{padding-top:112px!important}.admin-side{top:44px!important}.admin-shell.nav-open .admin-side{transform:translateX(0)!important}}


/* v36: requested refinements */
/* Home hero: restore v33 overlay sizes while retaining v34/v35 contrast effects. */
.home-page .hero-kenburns-copy h1{
  font-size:clamp(46px,6.2vw,90px)!important;
  line-height:.95!important;
  letter-spacing:-.055em!important;
  max-width:980px!important;
  font-stretch:normal!important;
}
.home-page .hero-kenburns-copy p{
  font-size:clamp(17px,1.35vw,22px)!important;
  line-height:1.62!important;
  max-width:650px!important;
  margin:28px 0 0!important;
  color:#fff!important;
  text-shadow:0 2px 18px rgba(0,0,0,.82),0 1px 4px rgba(0,0,0,.72)!important;
  font-weight:500!important;
}
.hero-reel-layer{transition:opacity 850ms ease!important;}
.hero-reel-layer.is-active{animation:hero-reel-constant-reveal 6s cubic-bezier(.16,.74,.18,1) forwards!important;}
@keyframes hero-reel-constant-reveal{
  0%{transform:scale(var(--kb-start-scale,1.22)) translate3d(var(--kb-start-x,0),var(--kb-start-y,0),0);}
  100%{transform:scale(1) translate3d(0,0,0);}
}
@media(max-width:760px){
  .home-page .hero-kenburns-copy h1{font-size:clamp(42px,12vw,64px)!important;line-height:.95!important;}
  .home-page .hero-kenburns-copy p{font-size:clamp(16px,4.7vw,20px)!important;line-height:1.48!important;margin-top:20px!important;}
}

/* Admin v36: two sticky bars and stable mobile slide-down menu. */
.admin-preview{align-items:start;}
.admin-mobile-toggle{display:none;}
.admin-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;}
.admin-toolbar::before{content:attr(data-section-label);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#666;}
.admin-toolbar .admin-actions{margin:0!important;}
.admin-toast{bottom:22px!important;right:22px!important;}
.inline-status{display:none!important;}
.admin-card .admin-actions [data-preview],.admin-card .admin-actions [data-live]{display:none!important;}
.admin-side a.is-active{color:var(--teal);}
.backup-row{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;border:1px solid #ddd;background:#fff;padding:12px;margin:8px 0;}
@media(max-width:900px){
  body.admin-body{padding-top:0;}
  .admin-preview{display:block!important;}
  .admin-mobile-toggle{
    display:flex!important;position:sticky!important;top:0!important;z-index:1300!important;width:100%;
    height:48px;align-items:center;justify-content:flex-start;background:#111!important;color:#fff!important;
    border:0!important;padding:0 18px!important;margin:0!important;text-transform:uppercase;letter-spacing:.14em;
  }
  .admin-toolbar{
    position:sticky!important;top:48px!important;z-index:1250!important;background:rgba(248,248,248,.96)!important;
    margin:0 -18px 22px!important;padding:10px 18px!important;border-top:1px solid #222;border-bottom:1px solid #ddd;
  }
  .admin-side{
    position:fixed!important;left:0!important;right:0!important;top:96px!important;bottom:auto!important;width:100%!important;height:auto!important;
    max-height:calc(100vh - 96px)!important;z-index:1200!important;overflow:auto!important;background:#fff!important;
    border-right:0!important;border-bottom:1px solid #ddd!important;padding:20px 22px!important;
    transform:translateY(-120%)!important;transition:transform .25s ease!important;
  }
  .admin-shell.nav-open .admin-side{transform:translateY(0)!important;}
  .admin-side img{width:190px!important;margin-bottom:14px!important;}
  .admin-main{padding:18px!important;}
}

.section-intro{max-width:760px;margin:18px 0 0;color:#666;font-size:clamp(17px,1.35vw,21px);line-height:1.55;}

.plain-numbered .kitchen-numbered-item{display:block;grid-template-columns:1fr;}
.plain-numbered .kitchen-number{display:none;}


/* v39 service/admin SEO refinements */
/* Remove path-style captions from embedded service images and keep section headings on brand. */
.service-article .service-kicker,
.service-detail-body .service-kicker{
  color:var(--teal)!important;
  font-weight:700!important;
  text-transform:none!important;
  letter-spacing:.01em!important;
  font-size:clamp(21px,2.1vw,32px)!important;
  line-height:1.15!important;
  margin:clamp(38px,4vw,60px) 0 18px!important;
}
.service-detail-grid > .eyebrow,
.service-copy .eyebrow{color:var(--teal)!important;}
.service-inline-image figcaption{color:var(--muted);}
/* Keep mobile hero title from wrapping the supporting phrase awkwardly. */
@media(max-width:760px){
  .home-page .hero-kenburns-copy h1{font-size:clamp(40px,11.2vw,60px)!important;max-width:92vw!important;}
}
/* Subtle consistent image treatment for content imagery only; logos are excluded. */
.hero-kenburns-image,
.hero-reel-layer,
.service-card img,
.project-card img,
.portfolio-tile img,
.project-detail-hero img,
.service-hero img,
.service-inline-image img,
.masonry-item img{
  filter:contrast(1.06) saturate(.94) brightness(.96) sepia(.025);
}
.project-detail-hero img{filter:contrast(1.08) saturate(.9) brightness(.86) sepia(.025);}
.hero-reel-layer,.hero-kenburns-image{filter:contrast(1.05) saturate(.94) brightness(.88) sepia(.025);}


/* v44: selectable cinematic hero slideshow. Two animated layers only, local images, no layout shift. */
.hero-kenburns{position:relative;overflow:hidden;background:#111;contain:layout paint;}
.hero-kenburns.is-cinematic .hero-kenburns-image{opacity:0;visibility:hidden;}
.hero-cinematic-stage{position:absolute;inset:0;z-index:0;overflow:hidden;background:#111;}
.hero-cinematic-slide{position:absolute;inset:0;overflow:hidden;opacity:0;will-change:opacity,transform;backface-visibility:hidden;contain:paint;transform:translate3d(0,0,0);}
.hero-cinematic-slide img{position:absolute;max-width:none;will-change:transform;backface-visibility:hidden;filter:saturate(1.07) contrast(1.05) brightness(.88);}
.hero-cinematic-slide::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.66),rgba(0,0,0,.28) 48%,rgba(0,0,0,.08) 80%);pointer-events:none;}
.hero-cinematic-stage[data-mode="panZoom"] .hero-cinematic-slide{inset:0 -26vw;transform:translate3d(15vw,0,0);}
.hero-cinematic-stage[data-mode="panZoom"] .hero-cinematic-slide img{left:50%;top:50%;min-width:100%;min-height:100%;width:auto;height:auto;transform:translate3d(-50%,-50%,0) scale(1.08);}
.hero-cinematic-stage[data-mode="continuousPan"] .hero-cinematic-slide img{inset:-1.5vh -18vw;width:calc(100% + 36vw);height:calc(100% + 3vh);object-fit:cover;object-position:center center;transform:translate3d(0,0,0) scale(1.012);}
.hero-kenburns-copy{position:relative;z-index:3;}
.hero-pan-toggle{position:absolute;z-index:6;right:clamp(22px,4vw,60px);bottom:clamp(28px,6vh,54px);width:46px;height:46px;border:1px solid rgba(255,255,255,.86);border-radius:50%;background:rgba(0,0,0,.22);backdrop-filter:blur(10px);color:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:0 8px 30px rgba(0,0,0,.18);}
.hero-pan-toggle svg{width:18px;height:18px;fill:currentColor;stroke:none;}
.hero-pan-toggle .icon-play{display:none;}
.hero-pan-toggle.is-paused .icon-pause{display:none;}
.hero-pan-toggle.is-paused .icon-play{display:block;}
.hero-pan-progress{position:absolute;left:0;right:0;bottom:0;height:3px;z-index:6;background:rgba(255,255,255,.22);}
.hero-pan-progress span{display:block;height:100%;width:0;background:var(--teal);transition:none;}
@media(max-width:760px){.hero-pan-toggle{right:22px;bottom:22px;width:42px;height:42px}.hero-pan-progress{height:2px}}
@media(prefers-reduced-motion:reduce){.hero-cinematic-slide,.hero-cinematic-slide img{transition:none!important;animation:none!important}.hero-pan-toggle,.hero-pan-progress{display:none!important}}

/* v44 patch: one subtle home hero gradient overlay only. Keeps imagery bright while supporting white hero text. */
.home-page .hero-kenburns::before,
.home-page .hero-cinematic-slide::before,
.home-page .hero-cinematic-slide::after{
  content:none!important;
  display:none!important;
  background:none!important;
}
.home-page .hero-kenburns::after{
  content:""!important;
  display:block!important;
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(0,0,0,.05) 0%,rgba(0,0,0,.02) 40%,rgba(0,0,0,.10) 100%)!important;
}

/* v45 mobile refinement: shorten first service label while preserving the sticky nav text style. */
@media(max-width:760px){
  .services-subnav a[href*="space-planning"]{
    font-size:0;
  }
  .services-subnav a[href*="space-planning"]::after{
    content:"PLANNING";
    font-family:inherit;
    font-size:11px;
    font-weight:inherit;
    line-height:inherit;
    letter-spacing:.18em;
    text-transform:uppercase;
  }
}

/* v46: Appleton Interiors cookie banner, hero credentials and admin image chooser refinements */
.cookie-panel{position:fixed;left:18px;right:18px;bottom:18px;z-index:120;background:#fff;border:1px solid var(--line);box-shadow:0 18px 58px rgba(0,0,0,.16);padding:20px;display:flex;justify-content:space-between;gap:20px;align-items:center}.cookie-panel[hidden]{display:none}.cookie-panel h2{font-family:var(--serif);font-weight:400;margin:0 0 6px;font-size:26px;letter-spacing:-.03em}.cookie-panel p{margin:0;color:var(--muted);line-height:1.55}.cookie-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.cookie-actions button,.cookie-dialog button{font:inherit;border:1px solid var(--ink);background:#fff;color:var(--ink);padding:12px 16px;cursor:pointer}.cookie-actions button:last-child{background:var(--teal);border-color:var(--teal);color:#fff}.cookie-dialog{border:1px solid var(--line);max-width:430px;padding:24px}.cookie-dialog::backdrop{background:rgba(0,0,0,.32)}.cookie-dialog h2{font-family:var(--serif);font-weight:400;margin:0 0 16px;font-size:30px}.cookie-dialog label{display:block;margin:14px 0;color:var(--muted)}.cookie-dialog menu{display:flex;gap:10px;justify-content:flex-end;padding:0;margin:20px 0 0}.hero-cta-row{display:flex;align-items:center;gap:clamp(20px,2.8vw,42px);flex-wrap:wrap}.hero-credential-logos{display:flex;align-items:center;gap:clamp(18px,2vw,34px)}.hero-credential-logos img{height:58px;width:auto;max-width:170px;object-fit:contain;filter:brightness(0) invert(1);opacity:.94}@media(max-width:760px){.cookie-panel{display:block}.cookie-actions{margin-top:16px}.cookie-actions button{width:100%}.cookie-dialog{max-width:calc(100vw - 32px)}.hero-cta-row{gap:18px}.hero-credential-logos img{height:50px;max-width:145px}}


/* v47: project association labels and hero credential alignment */
.hero-cta-row{align-items:flex-end!important;}
.hero-credential-logos{align-items:flex-end!important;}
.project-card-wrap{display:block;}
.project-card-wrap .project-card{display:block;height:auto;}
.association-label{margin:12px 0 0;font-size:11px;line-height:1.4;letter-spacing:.08em;text-transform:uppercase;color:#111;}
.association-label span{color:var(--muted);}
.association-label a{text-decoration:none;color:#111;}
.project-about .association-label{margin-top:24px;font-size:var(--label-size)!important;line-height:1.4!important;}

/* v50: FAQ admin and service page accordions */
.faq-service-options{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:8px;}
.faq-service-check{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:#333;border:1px solid #ddd;padding:8px 10px;background:#fff;}
.service-faq-section{padding:0 var(--pad) clamp(60px,8vw,110px);max-width:var(--max);margin:auto;background:#fff;}
.service-faq-inner{display:grid;grid-template-columns:1fr 2fr;gap:clamp(30px,5vw,80px);border-top:1px solid var(--line);padding-top:clamp(38px,5vw,70px);}
.service-faq-inner > .eyebrow{margin-top:4px;}
.service-faq-list{border-top:1px solid var(--line);}
.service-faq-item{border-bottom:1px solid var(--line);}
.service-faq-toggle{width:100%;display:grid;grid-template-columns:1fr auto;align-items:center;gap:20px;text-align:left;background:transparent;border:0;padding:22px 0;font:inherit;color:var(--ink);cursor:pointer;}
.service-faq-question{font-size:var(--body-size);line-height:1.68;font-weight:400;color:var(--ink);}
.service-faq-icon{width:30px;height:30px;border:1px solid var(--teal);border-radius:50%;display:grid;place-items:center;color:var(--teal);font-weight:700;font-size:22px;line-height:1;}
.service-faq-toggle[aria-expanded="true"] .service-faq-icon{border-color:var(--line);color:var(--muted);}
.service-faq-answer{display:none;padding:0 48px 24px 0;color:var(--body-colour);font-size:var(--body-size);line-height:1.68;font-weight:700;}
.service-faq-answer p{margin:0 0 1em;color:var(--body-colour);}
.service-faq-item.is-open .service-faq-answer{display:block;}
.service-faq-empty{color:var(--muted);font-size:var(--body-size);line-height:1.6;}
@media(max-width:900px){.service-faq-inner{grid-template-columns:1fr}.service-faq-answer{padding-right:0}}


/* v51 FAQ refinements */
.service-faq-question{font-size:var(--body-size)!important;line-height:1.68!important;font-weight:400!important;}
.service-faq-answer{font-size:var(--body-size)!important;line-height:1.68!important;font-weight:700!important;}
.service-faq-inner{grid-template-columns:1fr 2fr!important;}
@media(max-width:900px){.service-faq-inner{grid-template-columns:1fr!important;}}

/* v53: align service FAQ content with service detail body and refine accordion styling */
.service-faq-inner{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:30px!important;
  align-items:start!important;
  max-width:var(--max)!important;
  margin:0 auto!important;
}
.service-faq-inner > .eyebrow{
  grid-column:1 / span 1!important;
  margin-top:.35em!important;
}
.service-faq-list{
  grid-column:2 / span 2!important;
  border-top:1px solid var(--line)!important;
}
.service-faq-question{
  color:var(--teal)!important;
  font-size:var(--body-size)!important;
  line-height:1.68!important;
  font-weight:400!important;
}
.service-faq-answer{
  color:var(--body-colour)!important;
  font-size:var(--body-size)!important;
  line-height:1.68!important;
  font-weight:400!important;
  padding:0 48px 24px 0!important;
}
.service-faq-answer p{
  color:var(--body-colour)!important;
  font-weight:400!important;
}
.service-faq-icon{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:30px!important;
  height:30px!important;
  padding:0!important;
  box-sizing:border-box!important;
  line-height:1!important;
  font-size:22px!important;
  font-weight:700!important;
  text-align:center!important;
}
.service-faq-toggle[aria-expanded="true"] .service-faq-icon{
  border-color:var(--line)!important;
  color:var(--muted)!important;
}
@media(max-width:760px){
  .service-faq-inner{grid-template-columns:1fr!important;gap:24px!important;}
  .service-faq-inner > .eyebrow,.service-faq-list{grid-column:auto!important;}
  .service-faq-answer{padding-right:0!important;}
}


/* v55: Contact page FAQ search */
.contact-page main a[href^="tel:"],
.contact-page main a[href^="mailto:"]{color:var(--teal);}
.contact-faq-search-section{padding:clamp(45px,6vw,90px) var(--pad);background:#fff;}
.contact-faq-search-card{max-width:var(--max);margin:0 auto;background:var(--teal);color:#fff;padding:clamp(34px,5vw,70px);}
.contact-faq-search-card .eyebrow{color:#fff;opacity:.78;margin-bottom:18px;}
.contact-faq-search-card h2{font-family:var(--serif);font-weight:400;font-size:clamp(24px,3vw,42px);line-height:1.08;letter-spacing:-.04em;margin:0 0 30px;max-width:760px;}
.contact-faq-search-label{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.18em;margin-bottom:10px;opacity:.85;}
.contact-faq-search-input{width:100%;min-height:58px;resize:vertical;border:1px solid rgba(255,255,255,.65);background:rgba(255,255,255,.96);color:var(--ink);font:inherit;font-size:18px;line-height:1.5;padding:16px 18px;outline:none;}
.contact-faq-search-input:focus{border-color:#fff;box-shadow:0 0 0 3px rgba(255,255,255,.18);}
.contact-faq-search-input::placeholder{color:#777;}
.contact-faq-search-results{margin-top:24px;border-top:1px solid rgba(255,255,255,.35);}
.contact-faq-result{border-bottom:1px solid rgba(255,255,255,.35);}
.contact-faq-result button{width:100%;display:block;text-align:left;background:transparent;border:0;color:#fff;padding:18px 0;cursor:pointer;font:inherit;}
.contact-faq-result-question{display:block;font-size:var(--body-size);line-height:1.45;font-weight:500;}
.contact-faq-result-answer{display:none;margin:4px 0 20px;color:rgba(255,255,255,.88);font-size:var(--body-size);line-height:1.65;max-width:980px;}
.contact-faq-result.is-open .contact-faq-result-answer{display:block;}
.contact-faq-no-results{padding:18px 0;color:rgba(255,255,255,.82);font-size:var(--body-size);line-height:1.5;}
@media(max-width:760px){.contact-faq-search-section{padding:45px var(--pad)}.contact-faq-search-card{padding:30px 22px}.contact-faq-search-card h2{font-size:28px}}

/* Contact page section rhythm */
.contact-page .page-hero{padding-bottom:clamp(45px,6vw,90px);}
.contact-page .statement-screen{min-height:auto;}
.contact-page .statement-inner{padding:clamp(45px,6vw,90px) var(--pad);}
.contact-page .statement-inner .statement{font-size:clamp(30px,4vw,58px)!important;max-width:980px;}
.contact-page .statement-inner .copy{font-size:var(--body-size);line-height:1.68;max-width:980px;margin-top:28px;}

/* v57 contact spacing refinement */
.contact-page .page-hero{
  padding-top:clamp(38px,5vw,72px);
  padding-bottom:clamp(30px,4vw,56px);
}
.contact-page .contact-faq-search-section{
  padding-top:clamp(28px,4vw,56px);
  padding-bottom:clamp(42px,5vw,72px);
}
.contact-page .statement-inner{
  padding-top:clamp(42px,5vw,72px);
  padding-bottom:clamp(60px,7vw,100px);
}
@media(max-width:760px){
  .contact-page .page-hero{padding-top:34px;padding-bottom:28px;}
  .contact-page .contact-faq-search-section{padding-top:26px;padding-bottom:44px;}
  .contact-page .statement-inner{padding-top:38px;padding-bottom:64px;}
}

/* v58: Contact page spacing fix - override global section rhythm */
.contact-page .page-hero{
  padding-top:clamp(36px,4vw,64px)!important;
  padding-bottom:clamp(22px,3vw,42px)!important;
}
.contact-page .contact-faq-search-section{
  padding-top:clamp(22px,3vw,42px)!important;
  padding-bottom:clamp(34px,4vw,58px)!important;
}
.contact-page .statement-inner{
  padding-top:clamp(34px,4vw,58px)!important;
  padding-bottom:clamp(58px,7vw,96px)!important;
}
@media(max-width:760px){
  .contact-page .page-hero{padding-top:28px!important;padding-bottom:18px!important;}
  .contact-page .contact-faq-search-section{padding-top:18px!important;padding-bottom:34px!important;}
  .contact-page .statement-inner{padding-top:32px!important;padding-bottom:58px!important;}
}

/* v59 contact CMS and FAQ search refinements */
.contact-page .page-hero a{color:var(--teal);}
.contact-page .statement-inner .copy{color:var(--muted)!important;}
.contact-editor-text{max-width:980px;margin:0 0 28px;color:#fff;}
.contact-editor-text-after{margin:28px 0 0;}
.contact-editor-text h2{font-family:var(--serif);font-weight:400;font-size:clamp(24px,3vw,42px);line-height:1.12;letter-spacing:-.035em;margin:0 0 16px;}
.contact-editor-text p{font-size:var(--body-size);line-height:1.65;margin:0 0 14px;color:rgba(255,255,255,.9);}
.contact-editor-text a,.contact-faq-result-link a{color:#fff;text-decoration:underline;text-underline-offset:4px;}
.contact-faq-result-link{margin:18px 0 0;font-size:15px;letter-spacing:.04em;text-transform:none;}

/* v60: Contact FAQ editable text sits outside green search card */
.contact-faq-search-section > .contact-editor-text{
  max-width:var(--max);
  margin-left:auto;
  margin-right:auto;
  color:var(--ink);
  padding-left:clamp(34px,5vw,70px);
  padding-right:clamp(34px,5vw,70px);
}
.contact-faq-search-section > .contact-editor-text-before{
  margin-bottom:clamp(28px,4vw,48px);
}
.contact-faq-search-section > .contact-editor-text-after{
  margin-top:clamp(28px,4vw,48px);
}
.contact-faq-search-section > .contact-editor-text h2{
  color:var(--ink);
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(28px,3.4vw,52px);
  line-height:1.05;
  letter-spacing:-.04em;
  margin:0 0 16px;
}
.contact-faq-search-section > .contact-editor-text p,
.contact-faq-search-section > .contact-editor-text li{
  color:var(--muted);
  font-size:var(--body-size);
  line-height:1.68;
}
.contact-faq-search-section > .contact-editor-text a{
  color:var(--teal);
  text-decoration:underline;
  text-underline-offset:4px;
}
.contact-faq-search-card .contact-editor-text{display:none;}
@media(max-width:760px){
  .contact-faq-search-section > .contact-editor-text{padding-left:22px;padding-right:22px;}
}

/* v60: smaller legal page heading hierarchy */
.legal-page .page-hero h1{
  font-size:clamp(42px,5.2vw,76px)!important;
  line-height:1!important;
}
.legal-page .content-section .narrow-copy h2{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(24px,2.7vw,38px)!important;
  line-height:1.12!important;
  letter-spacing:-.035em!important;
  margin:42px 0 14px!important;
}
.legal-page .content-section .narrow-copy h2:first-child{margin-top:0!important;}

/* v61: align Contact FAQ editable text with the main Contact content */
.contact-faq-search-section > .contact-editor-text{
  padding-left:0!important;
  padding-right:0!important;
}
@media(max-width:760px){
  .contact-faq-search-section > .contact-editor-text{
    padding-left:0!important;
    padding-right:0!important;
  }
}

/* Live portfolio visibility is controlled by Settings > Show projects on live site. */
body.projects-hidden a[href$="portfolio.html"],
body.projects-hidden a[href*="portfolio-"],
body.projects-hidden .project-preview,
body.projects-hidden .portfolio-subnav {display:none!important;}
body.projects-hidden.is-project-page main {display:none!important;}
