:root{--ink:#171614;--paper:#f4f0e9;--soft:#ded7cc;--stone:#8b8175;--line:rgba(23,22,20,.16);--white:#fff;--max:1440px;--serif:Georgia,'Times New Roman',serif;--sans:Arial,Helvetica,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{color:inherit}.skip-link{position:absolute;left:-9999px;top:0}.skip-link:focus{left:1rem;top:1rem;z-index:999;background:#fff;padding:.75rem 1rem}.site-header{position:fixed;z-index:100;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:18px 3.2vw;color:#fff;background:linear-gradient(to bottom,rgba(0,0,0,.45),transparent);transition:.25s}.brand{display:flex;align-items:center;gap:12px;line-height:1}.brand-mark{display:grid;place-items:center;width:39px;height:39px;border:1px solid currentColor;border-radius:50%;font-family:var(--serif);font-size:23px}.brand b{display:block;letter-spacing:.22em;font-size:14px}.brand small{display:block;letter-spacing:.38em;font-size:8px;margin-top:6px}.nav{display:flex;align-items:center;gap:28px;font-size:13px;letter-spacing:.06em}.nav a{opacity:.88}.nav a:hover,.nav a.active{opacity:1}.nav-cta{border:1px solid currentColor;padding:10px 16px}.menu-button{display:none;background:none;border:0;width:42px;height:42px}.menu-button span{display:block;height:1px;background:currentColor;margin:8px 0}.section{width:min(var(--max),92vw);margin:0 auto;padding:110px 0}.flush-top{padding-top:0}.narrow{max-width:850px}.center{text-align:center}.eyebrow{font-size:11px;letter-spacing:.22em;font-weight:700;margin:0 0 16px}.lead{font-family:var(--serif);font-size:clamp(22px,2.3vw,34px);line-height:1.45;margin-top:0}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.02;margin:0 0 22px}h1{font-size:clamp(52px,7vw,112px)}h2{font-size:clamp(38px,4vw,66px)}h3{font-size:28px}em{font-weight:400}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 20px;border:1px solid transparent;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;transition:.2s;cursor:pointer}.button.dark{background:var(--ink);color:#fff}.button.light{background:#fff;color:var(--ink)}.button.outline{border-color:var(--ink);background:transparent}.button:hover{transform:translateY(-2px)}.text-link{display:inline-block;border-bottom:1px solid currentColor;padding-bottom:3px;font-size:13px;font-weight:700;letter-spacing:.06em}.light-link{color:#fff}.hero{position:relative;min-height:100svh;background:#222;color:#fff;overflow:hidden}.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.58),rgba(0,0,0,.05) 66%),linear-gradient(to top,rgba(0,0,0,.35),transparent 40%)}.hero-copy{position:absolute;z-index:2;left:6vw;bottom:12vh;max-width:830px}.hero-copy h1{max-width:900px}.hero-copy>p:not(.eyebrow){max-width:560px;font-family:var(--serif);font-size:24px}.hero-actions{display:flex;gap:22px;align-items:center;margin-top:32px}.hero-note{position:absolute;right:3vw;bottom:3vh;font-size:10px;letter-spacing:.18em;text-transform:uppercase}.intro{display:grid;grid-template-columns:1.1fr .9fr;gap:9vw;align-items:start}.intro h2{max-width:780px}.editorial-grid{display:grid;grid-template-columns:1.25fr .75fr;grid-template-rows:1fr 1fr;gap:18px}.tile{position:relative;overflow:hidden;min-height:350px;opacity:0;transform:translateY(15px);transition:.55s}.tile.in{opacity:1;transform:none}.tile-tall{grid-row:span 2;min-height:740px}.tile img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.tile:hover img{transform:scale(1.02)}.tile span{position:absolute;left:22px;bottom:18px;color:#fff;font-family:var(--serif);font-size:31px}.tile small{font-family:var(--sans);font-size:10px;letter-spacing:.18em;margin-right:10px}.quote-band{padding:120px 6vw;background:var(--ink);color:#fff;text-align:center}.quote-band blockquote,.testimonial blockquote{font-family:var(--serif);font-size:clamp(34px,4.3vw,74px);line-height:1.15;margin:0 auto;max-width:1100px}.story-split{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:center;opacity:0;transform:translateY(18px);transition:.6s}.story-split.in{opacity:1;transform:none}.story-split.reverse .story-image{order:2}.story-image img{width:100%;aspect-ratio:4/5;object-fit:cover}.story-copy p:not(.eyebrow){font-size:18px;max-width:660px}.story-copy .button{margin-top:18px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:38px}.masonry-preview{display:grid;grid-template-columns:1.1fr .8fr 1fr;grid-auto-rows:240px;gap:12px}.photo-button,.portfolio-item,.gallery-photo{border:0;padding:0;background:none;cursor:zoom-in;overflow:hidden}.photo-button img,.portfolio-item img,.gallery-photo img{width:100%;height:100%;object-fit:cover;transition:transform .35s}.photo-button:hover img,.portfolio-item:hover img,.gallery-photo:hover img{transform:scale(1.015)}.photo-button:nth-child(1){grid-row:span 2}.photo-button:nth-child(4){grid-row:span 2}.testimonial{text-align:center}.testimonial-name{margin-top:26px;font-size:12px;letter-spacing:.08em}.cta-panel{background:#84796c;color:#fff;width:min(1460px,96vw);padding:75px 5vw;display:flex;justify-content:space-between;align-items:center;gap:40px}.cta-panel h2{max-width:850px;margin-bottom:0}.page-hero{padding:150px 5vw 70px;display:grid;grid-template-columns:1fr 1fr;gap:5vw;align-items:end;min-height:78vh}.page-hero>img{width:100%;height:66vh;object-fit:cover}.page-hero>div:first-child{padding-bottom:4vh}.page-hero p:not(.eyebrow){max-width:590px;font-family:var(--serif);font-size:24px}.page-hero.compact{display:block;min-height:auto;padding-top:180px;padding-bottom:90px;max-width:1100px;margin:auto;text-align:center}.page-hero.compact p{margin-left:auto;margin-right:auto}.portfolio-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:14px}.portfolio-item{position:relative;min-height:360px;grid-column:span 6;opacity:0;transform:translateY(14px);transition:.5s}.portfolio-item.in{opacity:1;transform:none}.portfolio-item:nth-child(3n+1){grid-column:span 7;min-height:560px}.portfolio-item:nth-child(3n+2){grid-column:span 5;min-height:560px}.portfolio-item img{width:100%;height:100%;object-fit:cover}.portfolio-item span{position:absolute;right:15px;bottom:12px;color:#fff;font-size:10px;letter-spacing:.18em}.process{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);padding-top:0;padding-bottom:0}.process>div{background:var(--paper);padding:50px 38px}.process span,.values small{font-size:10px;letter-spacing:.18em}.image-banner{position:relative;height:74vh;overflow:hidden;color:#fff}.image-banner img{width:100%;height:100%;object-fit:cover}.image-banner:after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.6),transparent 65%)}.image-banner>div{position:absolute;z-index:2;left:6vw;bottom:7vh;max-width:900px}.values{display:grid;grid-template-columns:repeat(3,1fr);gap:55px}.packages{display:grid;grid-template-columns:1fr 1fr;gap:28px}.packages article{border:1px solid var(--line);padding:52px}.price{font-family:var(--serif);font-size:30px}.packages ul{padding-left:18px;margin:30px 0}.packages li{margin:10px 0}.faq details{border-top:1px solid var(--line);padding:24px 0}.faq details:last-child{border-bottom:1px solid var(--line)}.faq summary{cursor:pointer;font-family:var(--serif);font-size:24px}.gallery-access{padding-top:30px}.client-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.client-card{position:relative;min-height:520px;color:#fff;overflow:hidden;opacity:0;transform:translateY(12px);transition:.5s}.client-card.in{opacity:1;transform:none}.client-card:after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.64),transparent 60%)}.client-card img{width:100%;height:100%;object-fit:cover}.client-card>div{position:absolute;z-index:2;left:30px;bottom:28px}.client-card h2{margin:3px 0 6px}.client-card small{letter-spacing:.14em}.empty-state{padding:80px 30px;text-align:center;border:1px solid var(--line)}.gallery-login{min-height:100vh;padding-top:100px;display:grid;grid-template-columns:1fr 1fr;align-items:stretch}.gallery-login>div{padding:9vw 8vw;display:flex;flex-direction:column;justify-content:center}.gallery-login>img{width:100%;height:calc(100vh - 100px);object-fit:cover}.access-form{max-width:430px}.access-form label,.contact-form label,.admin-form label,.admin-upload label,.admin-login label{display:block;font-size:12px;font-weight:700;letter-spacing:.06em;margin-bottom:18px}.access-form input,.contact-form input,.contact-form textarea,.admin-form input,.admin-upload input,.admin-login input{width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;padding:12px 0;outline:none}.client-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding-top:20px}.gallery-photo{min-height:320px}.gallery-photo:nth-child(5n+1){grid-row:span 2;min-height:650px}.contact-layout{display:grid;grid-template-columns:.75fr 1.25fr;gap:8vw;padding-top:170px}.contact-copy{position:sticky;top:130px;align-self:start}.contact-copy a{text-decoration:underline}.contact-form{border-top:1px solid var(--line);padding-top:30px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:30px}.contact-form textarea{resize:vertical}.form-error{color:#8c2f2f}.success-box{padding:50px;border:1px solid var(--line)}.hp{position:absolute;left:-9999px}.legal h2{font-size:32px;margin-top:50px}.lightbox{position:fixed;z-index:999;inset:0;background:rgba(0,0,0,.94);display:grid;place-items:center}.lightbox[hidden]{display:none}.lightbox img{max-width:92vw;max-height:88vh;object-fit:contain}.lightbox button{position:absolute;border:0;background:transparent;color:#fff;font-size:48px;cursor:pointer}.lightbox [data-lightbox-close]{right:20px;top:10px}.lb-prev{left:20px}.lb-next{right:20px}.modal-open,.menu-open{overflow:hidden}.footer{margin-top:110px;background:var(--ink);color:#fff;padding:90px 5vw 26px}.footer-intro{max-width:950px;margin-bottom:100px}.footer-intro h2{font-size:clamp(42px,5vw,82px)}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:70px;border-top:1px solid rgba(255,255,255,.18);padding-top:45px}.footer-grid>div{display:flex;flex-direction:column;gap:10px}.footer-grid strong{font-size:11px;letter-spacing:.16em;margin-bottom:12px}.footer-grid p{max-width:460px;color:rgba(255,255,255,.7)}.footer-brand{width:max-content;margin-bottom:12px}.footer-bottom{margin-top:65px;padding-top:20px;border-top:1px solid rgba(255,255,255,.12);display:flex;justify-content:space-between;font-size:10px;letter-spacing:.11em;color:rgba(255,255,255,.58)}.admin-body{background:#efebe4}.admin-shell{width:min(1100px,94vw);margin:auto;padding:60px 0}.admin-top{display:flex;justify-content:space-between;align-items:end;margin-bottom:35px}.admin-card{background:#fff;padding:28px;margin:18px 0;border:1px solid rgba(0,0,0,.08)}.admin-form .form-row{gap:20px}.admin-gallery-head{display:flex;justify-content:space-between;align-items:center}.admin-gallery-head h3{margin-bottom:4px}.admin-gallery-head p{margin:0;color:#777}.admin-upload{display:flex;align-items:end;gap:20px;margin:22px 0}.admin-upload label{flex:1;margin:0}.admin-notice{padding:14px 18px;background:#e5efe4;border:1px solid #c2d5bf}.danger-link{border:0;background:none;padding:0;color:#8c2f2f;text-decoration:underline;cursor:pointer}.admin-login{min-height:100vh;display:grid;place-items:center}.admin-login form{width:min(450px,92vw);background:#fff;padding:45px}.admin-login h1{font-size:48px}.reveal{opacity:0;transform:translateY(18px);transition:.6s}.reveal.in{opacity:1;transform:none}
@media(max-width:900px){.site-header{padding:15px 18px}.menu-button{display:block;color:#fff;z-index:3}.nav{position:fixed;inset:0;background:var(--ink);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:26px;font-size:19px;transform:translateY(-102%);transition:.35s}.nav.open{transform:none}.brand{z-index:4}.intro,.story-split,.page-hero,.gallery-login,.contact-layout,.packages{grid-template-columns:1fr}.story-split.reverse .story-image{order:0}.page-hero{padding-top:130px}.page-hero>img{height:55vh}.page-hero.compact{padding-left:5vw;padding-right:5vw}.editorial-grid{grid-template-columns:1fr;grid-template-rows:auto}.tile,.tile-tall{grid-row:auto;min-height:62vh}.masonry-preview{grid-template-columns:1fr 1fr;grid-auto-rows:260px}.photo-button:nth-child(1),.photo-button:nth-child(4){grid-row:auto}.process,.values{grid-template-columns:1fr}.portfolio-item,.portfolio-item:nth-child(3n+1),.portfolio-item:nth-child(3n+2){grid-column:span 12;min-height:62vh}.client-grid{grid-template-columns:1fr}.gallery-login>img{height:55vh}.gallery-login>div{padding:120px 8vw 60px}.client-gallery{grid-template-columns:1fr 1fr}.gallery-photo,.gallery-photo:nth-child(5n+1){min-height:330px;grid-row:auto}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}.cta-panel{align-items:flex-start;flex-direction:column}.contact-copy{position:static}.admin-upload{flex-direction:column;align-items:stretch}}
@media(max-width:600px){.section{padding:78px 0}.hero-copy{left:7vw;right:7vw;bottom:10vh}.hero-copy>p:not(.eyebrow){font-size:20px}.hero-actions{align-items:flex-start;flex-direction:column}.hero-note{display:none}.masonry-preview{grid-template-columns:1fr;grid-auto-rows:58vh}.section-heading,.footer-bottom,.admin-top,.admin-gallery-head{align-items:flex-start;flex-direction:column}.page-hero{min-height:auto}.page-hero>img{height:52vh}.packages article{padding:32px 24px}.form-row{grid-template-columns:1fr;gap:0}.client-gallery{grid-template-columns:1fr}.gallery-photo,.gallery-photo:nth-child(5n+1){min-height:58vh}.footer{padding-left:7vw;padding-right:7vw}.footer-grid{grid-template-columns:1fr}.footer-grid>div:first-child{grid-column:auto}.admin-form .form-row{grid-template-columns:1fr}.lb-prev,.lb-next{font-size:38px}}

/* Warwick Photography — hero image positioning */
.hero > img {
    object-position: center center;
}

@media (max-width: 600px) {
    .hero > img {
        object-position: 50% center;
    }
}
