:root{--ink:#17211b;--cream:#f2efe9;--paper:#faf8f3;--sage:#6f7d70;--line:rgba(23,33,27,.18);--serif:"Newsreader",Georgia,serif;--sans:"DM Sans",Arial,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}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.skip-link{position:fixed;z-index:99;top:-60px;left:20px;background:#fff;padding:12px 18px}.skip-link:focus{top:20px}.site-header{position:fixed;z-index:30;top:0;left:0;width:100%;height:92px;padding:0 4vw;display:flex;align-items:center;justify-content:space-between;color:#fff;transition:.4s ease}.site-header.is-scrolled{height:72px;background:rgba(250,248,243,.94);color:var(--ink);backdrop-filter:blur(16px);box-shadow:0 1px var(--line)}.wordmark img{width:186px;max-height:58px;object-fit:contain}.site-header:not(.is-scrolled) .wordmark img{filter:brightness(0) invert(1)}.site-nav{display:flex;align-items:center;gap:2.2rem;font-size:.78rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase}.site-nav a{position:relative}.site-nav a:not(.nav-cta):after{content:"";position:absolute;left:0;bottom:-6px;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .3s}.site-nav a:hover:after{transform:scaleX(1);transform-origin:left}.nav-cta{border:1px solid currentColor;padding:.65rem 1.1rem}.menu-button{display:none;background:none;border:0;color:inherit;padding:8px}.menu-button>span:not(.sr-only){display:block;width:25px;height:1px;background:currentColor;margin:6px}.hero{position:relative;min-height:100svh;color:#fff;display:flex;align-items:flex-end;overflow:hidden}.hero-media,.hero-shade{position:absolute;inset:0}.hero-media img{width:100%;height:100%;object-fit:cover;object-position:center 42%;animation:hero-in 1.6s cubic-bezier(.2,.8,.2,1) both}.hero-shade{background:linear-gradient(90deg,rgba(9,15,12,.65) 0%,rgba(9,15,12,.18) 60%,rgba(9,15,12,.06)),linear-gradient(0deg,rgba(9,15,12,.38),transparent 50%)}.hero-content{position:relative;z-index:2;width:min(800px,88vw);margin:0 0 9vh 7vw}.eyebrow{font-size:.72rem;text-transform:uppercase;letter-spacing:.18em;font-weight:600}.hero h1,.intro h2,.section-heading h2,.cta h2{font-family:var(--serif);font-weight:400;line-height:.9;letter-spacing:-.035em;margin:.35em 0}.hero h1{font-size:clamp(4rem,8.2vw,8.7rem)}em{font-weight:400}.hero-copy{font-size:clamp(1rem,1.5vw,1.25rem);max-width:550px;margin:1.8rem 0}.hero-actions{display:flex;align-items:center;gap:2rem}.button{display:inline-flex;padding:1rem 1.45rem;border:1px solid var(--ink);font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;transition:.3s}.button:hover{background:var(--ink);color:#fff}.button-light{border-color:#fff}.button-light:hover{background:#fff;color:var(--ink)}.text-link{display:inline-block;padding-bottom:.15rem;border-bottom:1px solid currentColor;font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.text-link span{display:inline-block;margin-left:.4rem;transition:transform .25s}.text-link:hover span{transform:translate(4px,-4px)}.scroll-cue{position:absolute;z-index:2;right:4vw;bottom:4vh;display:flex;align-items:center;gap:.8rem;font-size:.65rem;text-transform:uppercase;letter-spacing:.15em}.scroll-cue span{display:block;width:42px;height:1px;background:#fff}.intro{padding:clamp(6rem,12vw,11rem) 7vw;display:grid;grid-template-columns:1fr 2.2fr;gap:7vw;background:var(--cream)}.intro-kicker{display:flex;gap:1.5rem;font-size:.85rem}.intro-kicker span{color:var(--sage)}.intro-kicker p{margin:0;text-transform:uppercase;letter-spacing:.08em}.intro-copy h2,.section-heading h2,.cta h2{font-size:clamp(3.2rem,6.3vw,7rem)}.intro-copy>p{max-width:670px;font-size:clamp(1.05rem,1.5vw,1.25rem);margin:2rem 0 2.5rem}.services{padding:clamp(6rem,10vw,10rem) 4vw}.section-heading{margin:0 3vw 6rem}.service-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.3vw}.service-card{position:relative;min-height:68vh;overflow:hidden;color:#fff;display:flex;align-items:flex-end;padding:2.2rem}.service-card-wide{grid-column:span 2;min-height:78vh}.service-card:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(5,12,8,.72),transparent 60%)}.service-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.8,.2,1)}.service-card:hover img{transform:scale(1.035)}.service-card div,.service-index,.service-arrow{position:relative;z-index:2}.service-card div{margin-left:2rem}.service-card p{margin:0;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase}.service-card h3{font-family:var(--serif);font-size:clamp(1.7rem,3vw,3rem);font-weight:400;line-height:1.05;margin:.35rem 0 0}.service-index{align-self:flex-start;font-size:.7rem}.service-arrow{margin-left:auto;font-size:1.5rem;transition:transform .3s}.service-card:hover .service-arrow{transform:translate(5px,-5px)}.feature-image{position:relative;margin:0 4vw 10vw;height:82vh;overflow:hidden}.feature-image img{width:100%;height:100%;object-fit:cover}.feature-image p{position:absolute;left:3rem;bottom:2rem;color:#fff;font-family:var(--serif);font-style:italic;font-size:clamp(1.5rem,2.5vw,2.6rem);line-height:1.1}.testimonial{text-align:center;padding:4rem 8vw 10rem}.testimonial blockquote{max-width:1000px;margin:2rem auto;font-family:var(--serif);font-size:clamp(2.2rem,4vw,4.5rem);line-height:1.08;font-weight:400}.testimonial>p:last-child{font-size:.72rem;text-transform:uppercase;letter-spacing:.16em}.cta{min-height:78vh;background:linear-gradient(rgba(14,24,18,.45),rgba(14,24,18,.7)),url('../img/family/raglan-family-photography-adventure.webp') center/cover;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;padding:6rem 2rem}.cta-content .button{margin-top:2rem}.site-footer{background:#111914;color:#e7e8e2;padding:5rem 5vw 3rem;display:grid;grid-template-columns:2fr 1fr 1fr 1.3fr;gap:4rem;font-size:.84rem}.footer-brand img{width:210px;margin-bottom:1.5rem}.site-footer>div:not(.footer-brand){display:flex;flex-direction:column;align-items:flex-start}.site-footer a{margin:.2rem 0;color:#c8cdc7}.footer-label{text-transform:uppercase;letter-spacing:.14em;font-size:.68rem;color:#8f9a91}.footer-meta{justify-content:flex-end}.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.8,.2,1)}.reveal.is-visible{opacity:1;transform:none}@keyframes hero-in{from{opacity:.4;transform:scale(1.06)}to{opacity:1;transform:scale(1)}}@media(max-width:900px){.site-header{height:72px}.menu-button{display:block;z-index:32}.site-nav{position:fixed;inset:0;background:var(--paper);color:var(--ink);flex-direction:column;justify-content:center;font-family:var(--serif);font-size:2rem;text-transform:none;letter-spacing:0;transform:translateX(100%);transition:transform .45s cubic-bezier(.2,.8,.2,1)}.site-nav.is-open{transform:none}.menu-button.is-open span:first-child{transform:translateY(7px) rotate(45deg)}.menu-button.is-open span:nth-child(2){opacity:0}.menu-button.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.menu-button span{transition:.3s}.intro{grid-template-columns:1fr}.service-card,.service-card-wide{grid-column:span 2;min-height:65vh}.site-footer{grid-template-columns:1fr 1fr}.footer-brand,.footer-meta{grid-column:span 2}}@media(max-width:600px){.hero-content{margin:0 6vw 12vh}.hero h1{font-size:clamp(3.6rem,18vw,5.6rem)}.hero-actions{align-items:flex-start;flex-direction:column;gap:1.2rem}.scroll-cue{display:none}.intro{padding-left:6vw;padding-right:6vw}.intro-copy h2,.section-heading h2,.cta h2{font-size:clamp(3rem,14vw,4.4rem)}.section-heading{margin-left:2vw;margin-right:2vw}.service-grid{gap:3vw}.service-card{padding:1.4rem;min-height:60vh}.service-card div{margin-left:1rem}.feature-image{height:68vh;margin-left:0;margin-right:0}.feature-image p{left:1.5rem;bottom:1rem}.testimonial{padding-left:6vw;padding-right:6vw}.site-footer{grid-template-columns:1fr;gap:2.5rem}.footer-brand,.footer-meta{grid-column:auto}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}
