:root{--ink:#122420;--cream:#f5f2eb;--lime:#d9ed72;--line:#cdd3ca}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:'DM Sans',sans-serif;color:var(--ink);background:var(--cream);font-size:16px}a{color:inherit;text-decoration:none}.site-header{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 5.5vw;background:var(--cream);position:relative;z-index:4}.brand{font-size:1.22rem;letter-spacing:.04em;font-weight:700;white-space:nowrap}.brand span{font-size:.68em;letter-spacing:.12em}.brand i{font-family:'Playfair Display',serif;font-weight:600}.site-header nav{display:flex;gap:2rem;font-size:.9rem;font-weight:600}.button{display:inline-flex;align-items:center;justify-content:center;border:0;background:var(--lime);color:var(--ink);padding:1rem 1.35rem;font:700 .82rem 'DM Sans',sans-serif;letter-spacing:.03em;cursor:pointer}.button-small{padding:.75rem 1rem}.hero{height:min(720px,calc(100vh - 76px));min-height:580px;position:relative;color:white;overflow:hidden}.hero>img{position:absolute;width:100%;height:100%;object-fit:cover}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,29,25,.88) 0%,rgba(11,29,25,.65) 42%,rgba(11,29,25,.05) 75%)}.hero-content{position:relative;z-index:1;max-width:690px;padding:15vh 5.5vw}.eyebrow{font-size:.72rem;letter-spacing:.16em;font-weight:700;margin:0 0 1.4rem}.hero h1,h2{font-family:'Playfair Display',serif;line-height:.98;letter-spacing:-.04em;margin:0}.hero h1{font-size:clamp(3.4rem,6vw,6.2rem)}.hero h1 em{color:var(--lime);font-weight:600}.hero-copy{max-width:430px;font-size:1.13rem;line-height:1.55;margin:2rem 0}.hero-actions{display:flex;gap:1.7rem;align-items:center;flex-wrap:wrap}.text-link{font-size:.88rem;font-weight:700}.text-link span{font-size:1.2rem;margin-left:.3rem}.trust-bar{z-index:2;position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;padding:1.2rem 5.5vw;font-size:.68rem;font-weight:700;letter-spacing:.11em;border-top:1px solid rgba(255,255,255,.28)}.intro{padding:9rem 20vw;text-align:center}.intro h2,.areas h2{font-size:clamp(2.5rem,4vw,4.2rem)}.intro>p:last-child{max-width:630px;margin:2rem auto 0;line-height:1.7;color:#54615d}.split{display:grid;grid-template-columns:.45fr 1.3fr 1fr;gap:4vw;align-items:start;padding:6.5rem 8vw;border-top:1px solid var(--line);background:#fff}.split.reverse{background:var(--ink);color:#fff}.number{font-family:'Playfair Display';font-size:1.3rem;color:#84938c}.split h2{font-size:clamp(2.5rem,4.4vw,4.5rem)}.split-copy{line-height:1.7;color:#56635e;padding-top:1.2rem}.reverse .split-copy{color:#d7dfda}.dark{color:var(--ink)}.reverse .dark{color:var(--lime)}.areas{padding:8rem 8vw;background:#dbe5da}.areas h2{margin-bottom:3rem}.area-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #9dac9f}.area-grid span{padding:1.5rem 0;border-bottom:1px solid #9dac9f;font-family:'Playfair Display';font-size:1.5rem}.about{padding:8rem 16vw;display:grid;grid-template-columns:1.2fr 1fr;gap:8vw;align-items:end}.about h2,.contact h2{font-size:clamp(3rem,5vw,5rem)}.about>p{line-height:1.75;color:#53605b}.contact{background:var(--ink);color:white;padding:8rem 12vw;display:grid;grid-template-columns:1fr 1fr;gap:10vw}.contact>div>p:last-child{line-height:1.7;color:#c4ceca}.contact form{display:grid;gap:1rem}.contact label{font-size:.76rem;font-weight:700;letter-spacing:.05em}.contact input,.contact select{display:block;width:100%;background:transparent;border:0;border-bottom:1px solid #91a29a;padding:1rem 0;color:white;font:1rem 'DM Sans';margin-top:.3rem;border-radius:0}.contact select{color:#dce4df}.contact option{color:var(--ink)}.contact button{margin-top:1rem}.form-note{font-size:.78rem;color:#b6c3bd}.form-note a{color:var(--lime)}footer{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:2rem 5.5vw;background:#0d1b18;color:#d7e0db;font-size:.75rem}footer .brand{color:white}@media(max-width:720px){.site-header{padding:0 6vw}.site-header nav{display:none}.hero-content{padding:13vh 7vw}.trust-bar{padding:1rem 7vw;font-size:.55rem}.intro{padding:6rem 8vw}.split,.about,.contact{grid-template-columns:1fr;padding:5rem 8vw;gap:2rem}.split{gap:1.5rem}.split-copy{padding-top:0}.area-grid{grid-template-columns:1fr 1fr}.areas{padding:5rem 8vw}footer{flex-wrap:wrap;padding:2rem 7vw}}

.about{padding-bottom:3rem}.team-photos{padding:0 8vw 6rem}.team-portraits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;max-width:1100px;margin:auto}.team-portraits figure{margin:0}.team-portraits img{width:100%;height:auto;display:block}.team-portraits figcaption{font-family:'Playfair Display',serif;font-size:1.6rem;margin-top:1rem}.team-portraits figcaption span{display:block;font:500 .875rem 'DM Sans',sans-serif;margin-top:.5rem;letter-spacing:.06em}.team-banner{display:block;width:100%;max-width:1213px;height:auto;margin:3.5rem auto 0}.team-brands{display:flex;align-items:center;justify-content:center;gap:3rem;margin:2rem auto 0}.team-brands img{width:180px;max-width:40%;height:auto}@media(max-width:600px){.team-portraits{grid-template-columns:1fr;gap:2.5rem;max-width:360px}.team-photos{padding-bottom:4rem}.team-brands{gap:1.5rem}}

.local-photos{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1rem;margin-bottom:3rem}.local-photos img{width:100%;height:auto;aspect-ratio:627/468;object-fit:cover;grid-column:span 2}.local-photos img:nth-child(-n+2){grid-column:span 3}.group-portrait{width:100%;max-width:350px;height:auto;grid-row:span 2;align-self:center}.about{grid-template-columns:1fr 1.3fr;gap:2rem 5vw;align-items:center}.about>p{grid-column:2;margin-top:0}.team-banner{max-width:1000px}@media(max-width:720px){.about{grid-template-columns:1fr}.group-portrait{grid-row:auto;margin:auto}.about>p{grid-column:auto}.local-photos{grid-template-columns:1fr 1fr}.local-photos img,.local-photos img:nth-child(-n+2){grid-column:auto}.local-photos img:last-child{grid-column:span 2}}

:root{--ink:#20242a;--cream:#fafafa;--lime:#b6202b;--line:#dedee0}.button{color:#fff;transition:background .2s}.button:hover{background:#961a24}.hero h1 em{color:#fff}.hero-overlay{background:linear-gradient(90deg,rgba(17,22,29,.91),rgba(17,22,29,.65) 48%,rgba(17,22,29,.1))}.hero-content{max-width:850px;padding-top:clamp(5rem,12vh,9rem)}.hero h1{font-size:clamp(3rem,5.5vw,5.5rem)}.hero-copy{max-width:450px}.eyebrow{font-size:.875rem;letter-spacing:.13em}.areas{background:#f0f1f2}.area-grid,.area-grid span{border-color:#d3d5d8}.local-photos{gap:1.25rem}.local-photos img{border-radius:2px}.team-portraits figcaption{padding-top:.5rem}.team-portraits figcaption span{color:#a71e28}.client-stories{padding:6rem 8vw 7rem;background:#eeeff1;border-top:1px solid var(--line)}.stories-heading{max-width:650px;margin-bottom:3rem}.stories-heading h2{font-size:clamp(2.5rem,4.5vw,4.5rem)}.reviews-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2.5rem}.reviews-grid figure{margin:0;border-top:3px solid #b6202b;padding-top:1.7rem;display:flex;flex-direction:column;justify-content:space-between}.reviews-grid blockquote{margin:0 0 2rem;font-family:'Playfair Display',serif;font-size:clamp(1.35rem,2vw,1.8rem);line-height:1.5}.reviews-grid figcaption{font-size:.9rem;font-weight:600}.reverse .dark,.form-note a{color:#fff;text-decoration:underline;text-underline-offset:5px}.contact{background:#20242a}.contact label{font-size:.875rem}.contact button{font-size:1rem}footer{background:#171a1f}.text-link{font-size:1rem}.intro{padding-top:6rem;padding-bottom:6rem}.hero .button{font-size:.875rem}.trust-bar{font-size:.75rem}.brand i{color:#b6202b}@media(max-width:720px){.reviews-grid{grid-template-columns:1fr;gap:2rem}.client-stories{padding:4rem 8vw}.hero{min-height:660px;height:auto}.hero-content{padding:5rem 7vw 8rem}.trust-bar{gap:1rem;font-size:.65rem}.hero-actions{align-items:flex-start;flex-direction:column}.hero .button{max-width:100%;text-align:center}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}}

/* Photography woven through the page */
.site-header{border-bottom:3px solid #b6202b}.button{box-shadow:0 5px 0 #76141c;border-radius:2px}.button:hover{transform:translateY(-2px)}.intro-photo{display:grid;grid-template-columns:1fr 1fr;gap:5vw;text-align:left;padding:6rem 8vw;align-items:center;overflow:hidden}.intro-scene{width:100%;height:auto;display:block;box-shadow:-16px 16px 0 #b6202b}.intro-message{position:relative}.intro-message h2{font-size:clamp(2.4rem,3.8vw,4rem)}.intro-message>p:last-child{line-height:1.75;color:#54615d}.intro .eyebrow,.areas .eyebrow,.about .eyebrow,.stories-heading .eyebrow{color:#b6202b}.swooping-logo{position:absolute;width:135px;top:0;left:0;opacity:0;pointer-events:none;z-index:2;mix-blend-mode:multiply}.intro-message.logo-play .swooping-logo{animation:logo-swoop 2.8s ease-in-out both}.intro-message h2::after{content:'';display:block;width:70px;height:4px;margin-top:1.5rem;background:#b6202b}@keyframes logo-swoop{0%{opacity:0;transform:translate(-90px,100px) rotate(-22deg) scale(.6)}15%{opacity:1}45%{opacity:1;transform:translate(100px,30px) rotate(6deg) scale(1)}75%{opacity:1;transform:translate(240px,-55px) rotate(-10deg) scale(.8)}100%{opacity:0;transform:translate(360px,-100px) rotate(-18deg) scale(.5)}}
.split{grid-template-columns:1fr 1fr;gap:1.2rem 5vw;align-items:center}.service-scene{grid-column:2;grid-row:1/4;width:100%;height:100%;max-height:520px;min-height:330px;object-fit:cover;border-bottom:8px solid #b6202b}.split>.number{grid-column:1;font:700 .875rem 'DM Sans';color:#b6202b}.split>div:not(.number){grid-column:1}.split h2{font-size:clamp(2.3rem,3.7vw,4rem)}.split-copy{padding-top:0}.reverse .service-scene{grid-column:1}.reverse>div,.reverse>.number,.reverse>div:not(.number){grid-column:2}.reverse>.number{color:#ff8790}.video-feature{padding:6rem 8vw;background:#b6202b;color:#fff;display:grid;grid-template-columns:1fr 1.7fr;gap:4vw;align-items:center}.video-heading h2{font-size:clamp(2.4rem,4vw,4rem);margin-bottom:2rem}.video-frame{aspect-ratio:16/9;background:#111;box-shadow:18px 18px 0 #861821}.video-frame iframe{display:block;width:100%;height:100%;border:0}.area-panorama{float:right;width:42%;height:240px;object-fit:cover;margin:0 0 2rem 3rem;border-left:6px solid #b6202b}.areas::after{content:'';display:block;clear:both}.area-grid{grid-template-columns:repeat(2,1fr)}.stories-heading{max-width:none;min-height:220px}.story-scene{float:right;width:40%;height:230px;object-fit:cover;margin:0 0 2rem 3rem}.reviews-grid{clear:both}.team-interlude{padding:4rem 12vw;background:#fff}.team-interlude .team-banner{margin:0 auto;max-width:900px;max-height:420px;object-fit:cover;object-position:top;border-bottom:6px solid #b6202b}.team-photos{padding-bottom:3rem}.team-portraits{gap:3rem}.contact h2{border-left:5px solid #b6202b;padding-left:1.3rem}
@media(max-width:720px){.intro-photo,.split,.video-feature{grid-template-columns:1fr;padding:4rem 8vw;gap:2.5rem}.service-scene,.reverse .service-scene{grid-column:1;grid-row:auto;min-height:0;height:auto;max-height:330px}.split>div,.split>.number,.split>div:not(.number),.reverse>div,.reverse>.number,.reverse>div:not(.number){grid-column:1}.split>.number{display:none}.area-panorama,.story-scene{float:none;width:100%;height:auto;margin:0 0 2rem}.team-interlude{padding:3rem 8vw}.team-interlude .team-banner{height:auto}.video-frame{box-shadow:10px 10px 0 #861821}.intro-message{max-width:100%}.swooping-logo{width:100px}}
@media(prefers-reduced-motion:reduce){.intro-message.logo-play .swooping-logo{animation:none;opacity:0}.button:hover{transform:none}}

.featured-team{padding:3rem 8vw 0;background:#fafafa}.featured-team img{display:block;width:100%;height:auto;max-width:1280px;margin:auto;border-bottom:6px solid #b6202b}.contact-direct{border:1px solid #5c6067;padding:2rem;background:#292e35}.contact-direct h3{font-family:'Playfair Display',serif;font-size:2rem;margin:0 0 1rem}.contact-direct p{line-height:1.65;color:#d5d9de}.contact-direct .button{display:flex;margin:1.5rem 0 0;font-size:1rem}.contact-direct .email-button{background:#fff;color:#20242a;box-shadow:none}.direct-email{overflow-wrap:anywhere;font-size:1rem}.contact-direct .contact-note{font-size:.875rem;color:#c1c6cd}.team-photos{padding-top:0}@media(max-width:720px){.featured-team{padding:2rem 4vw 0}.contact-direct{padding:1.5rem}.contact-direct .button{padding:1rem .6rem}}

.listing-link-section{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:5vw;padding:6rem 8vw;background:#fff}.listing-link-section h2{font-size:clamp(2.5rem,4vw,4.5rem)}.listing-link-section p{line-height:1.7}.listing-link-section .eyebrow{color:#b6202b}.listing-photo-link{position:relative;display:block;border-bottom:6px solid #b6202b;overflow:hidden}.listing-photo-link img{display:block;width:100%;height:auto;transition:transform .25s}.listing-photo-link:hover img{transform:scale(1.025)}.listing-photo-link span{position:absolute;bottom:0;left:0;right:0;padding:1.25rem;background:rgba(20,24,30,.9);color:#fff;font-weight:600}.listing-link-section .listing-note{font-size:.875rem;color:#59616b;margin-top:1.25rem}.listing-link-section .button{font-size:1rem}.listing-photo-link:focus-visible{outline:3px solid #b6202b;outline-offset:5px}@media(max-width:720px){.listing-link-section{grid-template-columns:1fr;padding:4rem 8vw;gap:2rem}}@media(prefers-reduced-motion:reduce){.listing-photo-link img{transition:none}.listing-photo-link:hover img{transform:none}}

.area-description{font-size:1.0625rem;line-height:1.85;color:#454e58;margin:0 0 2rem;max-width:78ch}.areas .area-grid{clear:both}

.scroll-bird{position:fixed;top:0;right:8px;width:84px;height:84px;z-index:15;pointer-events:none;will-change:transform;filter:drop-shadow(0 3px 5px rgba(0,0,0,.15))}.scroll-bird video{display:block;width:100%;height:100%;border-radius:50%;background:#fff}.bird-toggle{position:fixed;right:8px;bottom:8px;z-index:16;background:#fff;color:#20242a;border:1px solid #b6202b;border-radius:4px;font:500 .875rem 'DM Sans',sans-serif;padding:.5rem .7rem;cursor:pointer}.bird-toggle:focus-visible{outline:3px solid #b6202b;outline-offset:3px}.scroll-bird[hidden],.bird-toggle[hidden]{display:none}@media(max-width:720px){.scroll-bird{right:2px;width:48px;height:48px}.bird-toggle{font-size:.75rem;padding:.45rem;right:4px}}@media(prefers-reduced-motion:reduce){.scroll-bird,.bird-toggle{display:none!important}}

.video-frame>video{display:block;width:100%;height:100%;object-fit:contain;background:#111}.video-sound-note{font-size:.875rem;line-height:1.6;max-width:32ch;color:#fff}

/* Framed team banner in the opening third of the page. */
.team-showcase{position:relative;isolation:isolate;padding:64px max(5vw,20px);overflow:hidden;background:radial-gradient(ellipse at 92% 5%,#7c1929 0%,transparent 58%),linear-gradient(125deg,#151820 0%,#29212b 60%,#45121f 100%)}
.team-showcase::before{content:"";position:absolute;inset:0 auto 0 0;width:6px;background:#df2338}
.team-showcase-frame{position:relative;max-width:1280px;margin:0 auto;padding:10px;background:#ffffff12;border:1px solid #ffffff30;box-shadow:0 24px 48px #0007,12px 12px 0 #bf203536}
.team-showcase-frame::after{content:"";position:absolute;left:10px;bottom:-2px;width:22%;height:4px;background:#ed3048}
.team-showcase-frame img{display:block;width:100%;height:auto;background:#fff}
@media(max-width:640px){.team-showcase{padding:36px 16px}.team-showcase-frame{padding:5px;box-shadow:0 16px 30px #0006,6px 6px 0 #bf203536}}

/* Portrait cutout layered in front of a recessed colour panel. */
.about{padding-bottom:6rem;gap:2rem 5vw}
.team-depth{position:relative;isolation:isolate;grid-row:span 2;align-self:center;width:100%;max-width:390px;margin:0 auto;padding:0 12px 12px}
.team-depth::before{content:"";position:absolute;z-index:-2;inset:20% 0 0 8%;border-radius:4px;background:radial-gradient(ellipse at 35% 25%,#d54b57,transparent 68%),linear-gradient(145deg,#a91f31,#481322);box-shadow:12px 16px 0 #b6202b14,0 22px 36px #20242a24;transform:rotate(-3deg)}
.team-depth::after{content:"";position:absolute;z-index:-1;left:12%;right:6%;bottom:0;height:28px;border-radius:50%;background:#1b0d18;filter:blur(14px);opacity:.35}
.team-depth .group-portrait{position:relative;display:block;max-width:none;width:100%;height:auto;margin:0;filter:drop-shadow(12px 9px 9px #16091566);transform:translateY(-8px)}
@media(max-width:720px){.team-depth{grid-row:auto;max-width:340px;margin:0 auto 1.5rem}.about{padding-bottom:4rem}}

.social-updates{padding:6rem 8vw;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,500px);gap:6vw;align-items:center;background:radial-gradient(ellipse at 0% 100%,#601c2b,transparent 65%),#20242a;color:#fff}
.social-copy{max-width:500px}.social-copy .eyebrow{color:#ff929c}.social-copy h2{font-size:clamp(2.5rem,4vw,4.5rem)}.social-copy>p:not(.eyebrow){line-height:1.75;color:#e1e3e7;margin:1.7rem 0}.social-copy .social-note{font-size:.875rem;color:#c5c8cf}
.facebook-frame{width:100%;max-width:500px;min-width:0;justify-self:center;background:#fff;border-top:5px solid #d52a3b;box-shadow:12px 12px 0 #b6202b,0 24px 44px #0005}.facebook-frame iframe{display:block;width:100%;max-width:100%;height:600px}
@media(max-width:800px){.social-updates{grid-template-columns:1fr;padding:4rem 6vw;gap:2.5rem}.social-copy{max-width:none}.facebook-frame{box-shadow:6px 6px 0 #b6202b,0 16px 28px #0004}}

.facebook-icon{display:flex;align-items:center;justify-content:center;width:30px;height:30px;flex-shrink:0;background:#1877f2;color:white;border-radius:50%;font:bold 28px Arial;margin-left:auto;margin-right:1rem;padding-top:5px;overflow:hidden}.facebook-icon:focus-visible{outline:3px solid #b6202b;outline-offset:3px}.site-header nav{margin-left:auto;margin-right:1rem}
.restored-team{padding:5rem 8vw;background:#f5f5f6}.restored-team .eyebrow{color:#b6202b}.restored-team>img{display:block;width:100%;height:auto;box-shadow:0 16px 35px #20242a20;border-top:5px solid #b6202b}.portrait-names{display:grid;grid-template-columns:repeat(3,1fr);background:#20242a;color:white;text-align:center;padding:1.3rem .3rem;gap:.5rem;font-family:'Playfair Display',serif;font-size:clamp(.9rem,2vw,1.5rem)}
@media(max-width:600px){.facebook-icon{margin-right:.5rem}.site-header{padding:0 3vw}.site-header .brand{font-size:1rem}.restored-team{padding:3rem 4vw}}

.portrait-names small{display:block;font:500 .85rem Arial,sans-serif;letter-spacing:.08em;margin-top:.6rem}.lead-funnel{padding:3rem 8vw!important}.lead-funnel h2{font-size:clamp(2rem,4vw,3.5rem);margin-bottom:2rem}.lead-funnel form{max-width:1000px}.lead-funnel input,.lead-funnel select{border:1px solid #d0d0d0;border-radius:3px;background:white;color:#20242a}.lead-funnel button{cursor:pointer;font-weight:bold}.lead-funnel label{line-height:1.6}

.local-faq{padding:5rem 8vw;background:#fff}.local-faq h2{font-size:clamp(2.2rem,4vw,3.8rem);margin-bottom:2rem}.local-faq .eyebrow{color:#b6202b}.local-faq details{border-bottom:1px solid #ddd;padding:1.25rem 0}.local-faq summary{font-weight:700;font-size:1.05rem;cursor:pointer;line-height:1.6}.local-faq details p{line-height:1.75;max-width:850px;color:#454b52}.office-address{font-style:normal;line-height:1.65;color:#d5d9de;margin-bottom:1rem}

.area-description .local-highlight{color:#a91f2d;font-weight:700}

.google-reviews-link{margin:2rem 0 0;text-align:center}.google-reviews-link a{color:#a91f2d;text-decoration:underline;text-underline-offset:5px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.instagram-icon{display:flex;align-items:center;justify-content:center;width:30px;height:30px;flex-shrink:0;margin-right:1rem;border-radius:8px;background:linear-gradient(35deg,#f9a33b,#d92b78 55%,#7045b9);color:#fff}.instagram-icon svg{width:25px;height:25px}.instagram-icon:focus-visible{outline:3px solid #b6202b;outline-offset:3px}.site-header .facebook-icon{margin-right:.6rem}@media(max-width:600px){.instagram-icon{margin-right:.5rem;width:28px;height:28px}.site-header .facebook-icon{width:28px;height:28px;margin-right:.4rem}.site-header .button-small{padding:.75rem .65rem}}
