
/* --- refined.css --- */
@font-face{font-family:Poppins;src:url('fonts/poppins-400.woff2') format('woff2'),url('fonts/poppins-400.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Poppins;src:url('fonts/poppins-500.woff2') format('woff2'),url('fonts/poppins-500.ttf') format('truetype');font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Poppins;src:url('fonts/poppins-600.woff2') format('woff2'),url('fonts/poppins-600.ttf') format('truetype');font-weight:600;font-style:normal;font-display:swap}
:root{--navy:#303e48;--yellow:#ffd100;--teal:#31cdcf;--white:#fff;--soft:#f4f6f7;--ink:#303e48;--muted:#626e76;--line:#dce2e6;--darkline:#ffffff26;--font:Poppins,Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:white;color:var(--ink);font:400 16px/1.75 var(--font)}body:has(dialog[open]){overflow:hidden}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3,h4{font-family:var(--font);font-weight:500;letter-spacing:-.035em;line-height:1.2}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button,input,textarea{font:inherit}button{cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button,a,input,textarea,summary{outline-offset:5px}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--teal)}.wrap{width:min(1240px,89%);margin-inline:auto}.topbar{position:sticky;top:0;z-index:50;background:var(--navy);color:white;border-bottom:1px solid var(--darkline)}header{display:flex;align-items:center;gap:40px;min-height:88px}.logo{width:224px;height:auto;filter:none}nav{margin-left:auto;display:flex;align-items:center;gap:32px;font-size:14px}nav a:hover{color:var(--yellow)}.menu{display:none}.pill{display:inline-flex;align-items:center;justify-content:center;gap:28px;padding:13px 23px;min-height:48px;border:1px solid var(--navy);border-radius:4px;background:var(--navy);color:white;font-size:14px;font-weight:500;transition:background .2s,color .2s}.pill span{font-size:21px}.pill:hover{background:#455866}.topbar .pill,.dark .pill,.hero .pill{background:var(--yellow);color:var(--navy);border-color:var(--yellow)}.pill.outline{border-color:#ffffff66;background:transparent;color:white}.pill.outline:hover{background:#ffffff10}.eyebrow{font-size:12px;line-height:1.5;letter-spacing:.11em;text-transform:uppercase;font-weight:500}.hero{background:var(--navy);color:white;padding:78px 0 58px}.hero .eyebrow{color:#c2cbd1;display:flex;align-items:center;gap:14px}.hero .eyebrow:before{content:'';height:2px;width:32px;background:var(--yellow)}.hero-grid{display:grid;grid-template-columns:1.5fr 1fr;align-items:end;gap:75px;margin-top:25px}.hero h1{font-size:clamp(42px,5.3vw,72px);letter-spacing:-.04em;line-height:1.14;margin:0;font-weight:500}.hero h1 span{color:var(--yellow)}.hero-copy p{font-size:17px;line-height:1.8;color:#d3dbe0;margin:0 0 25px}.hero-actions{display:flex;flex-wrap:wrap;gap:12px}.hero-foot{display:flex;justify-content:space-between;gap:30px;padding-top:36px;margin-top:46px;border-top:1px solid var(--darkline);color:#c2cbd1;font-size:12px}.showreel{background:var(--navy);color:white;position:relative}.showreel.js-scroll{height:290svh}.film-sticky{padding:22px 0 30px}.js-scroll .film-sticky{position:sticky;top:88px;height:calc(100svh - 88px);display:flex;flex-direction:column;justify-content:center}.film-container{width:min(1080px,89%);margin-inline:auto;max-width:100%}.film-heading{display:flex;justify-content:space-between;align-items:center;gap:25px;margin-bottom:20px}.film-heading h2{font-size:24px;letter-spacing:-.02em;margin:0}.film-heading a{font-size:12px;color:#c2cbd1;border-bottom:1px solid #ffffff66}.film-frame{background:#26343e;position:relative;border:1px solid #ffffff26;overflow:hidden;border-radius:5px;max-width:100%;margin-inline:auto}.film-frame video{width:100%;display:block;aspect-ratio:16/10;object-fit:contain;max-height:calc(100svh - 280px);background:#26343e}.film-progress{height:2px;background:#ffffff28}.film-progress span{display:block;background:var(--yellow);width:0;height:100%}.film-caption{display:flex;justify-content:space-between;gap:25px;align-items:center;margin-top:18px}.film-caption strong{font-size:16px;font-weight:500;display:block}.film-caption p{font-size:12px;color:#c2cbd1;margin:2px 0 0}.film-controls{display:flex;gap:10px;align-items:center}.film-controls button{height:44px;border-radius:4px;background:transparent;border:1px solid #ffffff55;color:white;padding:8px 15px;font-size:12px;white-space:nowrap}.film-controls button:hover{border-color:var(--yellow);color:var(--yellow)}.film-controls button[aria-pressed=true]{background:var(--yellow);border-color:var(--yellow);color:var(--navy)}.film-bottom{display:flex;align-items:center;gap:20px;margin-top:12px}.film-bottom label{font-size:12px;color:#c2cbd1;white-space:nowrap}.film-bottom input{width:100%;accent-color:var(--yellow);margin:0;padding:0;border:0;min-height:24px}.film-time{font-size:12px;color:#c2cbd1;font-variant-numeric:tabular-nums;white-space:nowrap}.film-status{font-size:12px;color:#c2cbd1;margin:10px 0 0;min-height:1.5em}.film-fallback{padding:20px;text-align:center;font-size:14px}.film-fallback[hidden]{display:none}.work-section{padding:98px 0}.work-heading{display:flex;align-items:end;justify-content:space-between;gap:55px}.work-heading h2{font-size:46px;margin:15px 0 0}.work-heading h2 sup{font-size:16px;font-weight:400;letter-spacing:0;margin-left:8px;vertical-align:top}.work-heading p{max-width:370px;color:var(--muted);font-size:16px;margin:0}.work-heading .eyebrow{color:var(--muted)}.work-toolbar{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:28px 0 22px;margin-bottom:34px;border-bottom:1px solid var(--line)}.work-filters{display:flex;gap:7px;flex-wrap:wrap}.work-filters button{font-size:13px;padding:9px 15px;border:1px solid transparent;border-radius:4px;color:var(--navy);background:transparent;min-height:44px}.work-filters button:hover{border-color:var(--line)}.work-filters button[aria-pressed=true]{background:var(--navy);color:white}.work-count{font-size:12px;color:var(--muted);white-space:nowrap}.portfolio-wall{display:grid;grid-template-columns:1fr 1fr;gap:52px 32px;align-items:start}.work-card{min-width:0}.work-card[hidden]{display:none}.work-number{display:block;font-size:12px;color:var(--muted);margin-bottom:12px}.work-preview{position:relative;display:block;width:100%;aspect-ratio:1.4;overflow:hidden;border:1px solid var(--line);border-radius:5px;background:var(--soft);padding:26px 24px 0}.screen-frame{display:block;width:100%;background:white;border:1px solid #d3dbe0;border-radius:4px 4px 0 0;overflow:hidden;transition:transform .4s}.work-preview:hover .screen-frame,.work-preview:focus-visible .screen-frame{transform:translateY(-6px)}.screen-frame img{width:100%;height:auto}.screen-top{display:flex;align-items:center;padding:7px 10px;background:#fafbfc;border-bottom:1px solid #e5e8eb;gap:4px}.screen-top i{width:4px;height:4px;border-radius:50%;background:#bdc6cd}.screen-top small{margin:auto;font-size:10px;color:#677680}.work-preview:after{content:'View project ↗';position:absolute;bottom:15px;right:15px;padding:7px 13px;background:var(--navy);color:white;border-radius:4px;font-size:12px;opacity:0;transition:opacity .2s}.work-preview:hover:after,.work-preview:focus-visible:after{opacity:1}.work-meta{display:flex;align-items:start;justify-content:space-between;gap:20px;margin-top:18px}.work-meta h3{font-size:24px;margin:0;line-height:1.3}.work-meta p{font-size:13px;color:var(--muted);margin:5px 0 0}.work-credit{display:block;font-size:12px;color:var(--muted);margin-top:8px;max-width:360px}.circle-arrow{display:grid;place-items:center;min-width:42px;height:42px;border:1px solid var(--line);border-radius:50%;font-size:21px}.circle-arrow:hover{background:var(--yellow);border-color:var(--yellow)}.portfolio-end{display:flex;justify-content:space-between;align-items:center;gap:25px;border-top:1px solid var(--line);padding-top:28px;margin-top:52px}.portfolio-end p{margin:0;font-size:18px}.text-link{display:inline-flex;align-items:center;gap:25px;font-size:14px;border-bottom:1px solid currentColor;padding-bottom:5px}.section{padding:92px 0}.dark{background:var(--navy);color:white}.dark h2{font-size:44px}.services-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:90px;margin-top:26px}.services-intro p{max-width:350px;color:#d3dbe0}.services-list details{border-top:1px solid var(--darkline)}.services-list details:last-child{border-bottom:1px solid var(--darkline)}summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:22px;font-size:20px;line-height:1.5;padding:22px 0}summary::-webkit-details-marker{display:none}summary small{font-size:12px;color:var(--yellow)}summary:after{content:'+';margin-left:auto;font-size:24px}details[open] summary:after{content:'−'}details p{margin:0;padding:0 28px 25px 37px;color:#d3dbe0;font-size:15px}details .text-link{margin-top:12px}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px;margin-top:25px}.about-grid h2{font-size:43px}.about-grid p{color:var(--muted)}.about-stats{display:flex;gap:65px;border-top:1px solid var(--line);padding-top:24px}.about-stats strong{display:block;font-size:45px;line-height:1.3;font-weight:500;letter-spacing:-.04em}.about-stats span{font-size:12px;color:var(--muted)}.quote{background:var(--soft);padding:60px 0;border-top:1px solid var(--line)}.quote-inner{display:grid;grid-template-columns:190px 1fr;gap:65px}.quote blockquote{font-size:27px;line-height:1.6;letter-spacing:-.02em;margin:0 0 20px;font-weight:400}.quote cite{font-size:13px;color:var(--muted);font-style:normal}.contact-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:90px;margin-top:26px}.contact-grid h2{font-size:46px}.contact-grid h2 em{font-style:normal;color:var(--yellow);font-family:inherit}.contact-copy{max-width:380px;color:#d3dbe0}.contact-links{display:grid;gap:13px;margin-top:30px}.contact-links a{width:fit-content;border-bottom:1px solid #ffffff55}form label{display:block;font-size:14px;margin-bottom:21px}input,textarea{display:block;width:100%;border:0;border-bottom:1px solid #ffffff66;border-radius:0;background:transparent;color:white;padding:10px 0;outline-offset:5px;margin-top:5px}input:focus,textarea:focus{outline:0;border-color:var(--yellow)}textarea{min-height:110px;resize:vertical}.fine{font-size:12px;color:#bdc8cf;margin-top:18px}footer{background:var(--navy);color:#d3dbe0;border-top:1px solid var(--darkline);padding:28px 0}footer .wrap{display:flex;justify-content:space-between;align-items:center;gap:25px;font-size:12px}.footer-logo{width:170px}.footer-links{display:flex;gap:24px}.portfolio-dialog{border:0;border-radius:6px;background:var(--navy);color:white;padding:0;width:min(1200px,95vw);max-height:94svh}.portfolio-dialog::backdrop{background:#18252ddc;backdrop-filter:blur(5px)}.dialog-bar{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:17px 22px;background:var(--navy);position:sticky;top:0;z-index:1}.dialog-bar h3{font-size:22px;margin:0}.dialog-controls{display:flex;gap:8px}.dialog-controls button{width:44px;height:44px;border:1px solid #ffffff55;border-radius:4px;color:white;background:transparent;font-size:22px}.dialog-image{width:100%}.dialog-footer{display:flex;justify-content:space-between;gap:25px;align-items:center;padding:22px}.dialog-footer p{font-size:13px;margin:0;color:#d3dbe0}.dialog-footer .pill{background:var(--yellow);border-color:var(--yellow);color:var(--navy)}.skip{position:absolute;top:-100px;left:15px;z-index:100;background:var(--yellow);color:var(--navy);padding:12px}.skip:focus{top:10px}.reveal{opacity:1;transform:none}
@media(min-width:1600px){.film-container{width:1140px}.hero{padding-top:92px}}@media(max-width:1050px){header{gap:25px}.logo{width:190px}nav{gap:23px}.hero-grid{gap:42px;grid-template-columns:1.4fr 1fr}.hero h1{font-size:54px}.hero-copy p{font-size:16px}.services-layout,.about-grid,.contact-grid{gap:48px}.film-heading h2{font-size:22px}.work-toolbar{align-items:start;flex-direction:column}.work-count{margin-left:15px}.work-preview{padding:18px 16px 0}.showreel.js-scroll{height:240svh}}@media(max-width:760px){html{scroll-padding-top:85px}.wrap{width:88%}header{min-height:76px}.logo{width:195px}header>.pill{display:none}.menu{display:block;margin-left:auto;border:1px solid #ffffff66;background:transparent;color:white;padding:7px 13px;min-height:44px;border-radius:4px;font-size:14px}nav{display:none;position:absolute;top:76px;left:0;right:0;background:var(--navy);padding:24px 6%;border-bottom:1px solid var(--darkline)}nav.open{display:flex;flex-direction:column;align-items:start;gap:24px}.hero{padding:45px 0 30px}.hero-grid{display:block;margin-top:24px}.hero h1{font-size:clamp(36px,7.5vw,54px);line-height:1.2;letter-spacing:-.035em}.hero-copy{margin-top:24px}.hero-copy p{font-size:16px;max-width:480px;margin-bottom:22px}.hero-actions .pill{font-size:13px;padding:12px 17px;gap:20px}.hero-foot{font-size:12px;margin-top:30px;padding-top:22px;gap:20px}.hero-foot span:last-child{max-width:125px;text-align:right}.showreel.js-scroll{height:220svh}.js-scroll .film-sticky{top:76px;height:calc(100svh - 76px)}.film-container{width:92%}.film-sticky{padding:18px 0 25px}.film-heading{margin-bottom:15px;align-items:start}.film-heading h2{font-size:20px;max-width:210px}.film-heading a{font-size:12px;white-space:nowrap}.film-frame video{max-height:calc(100svh - 340px)}.film-caption{align-items:start;flex-direction:column;gap:12px;margin-top:14px}.film-caption strong{font-size:16px}.film-caption p{font-size:12px}.film-controls{width:100%;flex-wrap:wrap}.film-controls button{font-size:12px;padding:8px 11px;flex:1}.film-bottom{gap:10px}.film-bottom label{font-size:12px}.film-time{font-size:11px}.film-status{font-size:12px;line-height:1.6}.work-section,.section{padding:62px 0}.work-heading{display:block}.work-heading h2{font-size:34px}.work-heading p{margin-top:18px;font-size:15px}.work-toolbar{padding:20px 0;margin-bottom:28px;gap:14px}.work-filters{gap:3px}.work-filters button{font-size:12px;padding:8px 10px}.work-count{margin-left:10px}.portfolio-wall{grid-template-columns:1fr;gap:36px}.work-preview{padding:22px 20px 0;aspect-ratio:1.35}.work-preview:after{opacity:1}.work-meta h3{font-size:23px}.work-meta p{font-size:13px}.work-number{font-size:12px}.portfolio-end{flex-direction:column;align-items:start;gap:18px;margin-top:35px}.portfolio-end p{font-size:17px}.services-layout,.about-grid,.contact-grid{grid-template-columns:1fr;gap:30px}.dark h2,.about-grid h2{font-size:34px}.services-intro p{max-width:none}.services-list summary{font-size:18px;gap:16px}.services-list details p{padding-left:28px;font-size:15px}.about-stats{gap:44px}.about-stats strong{font-size:40px}.quote{padding:42px 0}.quote-inner{grid-template-columns:1fr;gap:22px}.quote blockquote{font-size:21px;line-height:1.65}.contact-links a{font-size:14px}.dialog-bar{padding:12px;gap:12px}.dialog-bar h3{font-size:17px}.dialog-controls{gap:5px}.dialog-controls button{width:38px;height:40px}.dialog-footer{flex-direction:column;align-items:start;padding:18px}footer .wrap{align-items:start;flex-direction:column;gap:24px}.footer-links{flex-wrap:wrap}.eyebrow{font-size:11px}}@media(max-height:600px) and (min-width:761px){.js-scroll .film-sticky{top:65px;height:calc(100svh - 65px)}header{min-height:65px}.film-heading{display:none}.film-frame video{max-height:calc(100svh - 225px)}.film-caption{margin-top:10px}.film-status{margin-top:3px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.showreel.js-scroll{height:auto}.js-scroll .film-sticky{position:relative;top:auto;height:auto}.film-frame video{max-height:none}}
[hidden]{display:none!important}.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}.hero h1{font-size:clamp(42px,4.8vw,66px)}.film-chapters{display:flex;gap:22px;flex-wrap:wrap;margin-top:12px}.film-chapters button{font-size:11px;line-height:1.6;min-height:32px;border:0;border-bottom:1px solid transparent;padding:4px 0;background:transparent;color:#c2cbd1}.film-chapters button:hover,.film-chapters button[aria-pressed=true]{color:var(--yellow);border-color:var(--yellow)}.film-frame video{max-height:calc(100svh - 340px)}.film-bottom input:focus-visible{outline:2px solid var(--teal);outline-offset:4px}.film-status{margin-top:5px}.film-fallback a{text-decoration:underline}.hero-actions .pill:hover,.dark .pill:hover,.topbar .pill:hover{background:#ffe266}.work-preview{background:linear-gradient(145deg,var(--soft),#e9eef1)}.work-meta h3{font-weight:500}.film-heading a{min-height:32px;padding-top:4px}.contact-links a{overflow-wrap:anywhere}
@media(max-width:1050px) and (min-width:761px){header>.pill{display:none}nav{gap:25px}.hero h1{font-size:48px}.hero-grid{gap:40px}.hero-copy p{font-size:15px}.hero-actions .pill{font-size:12px;gap:15px;padding:11px 15px}}
@media(max-width:760px){.hero h1{font-size:clamp(36px,7.3vw,54px)}.film-frame video{max-height:calc(100svh - 395px)}.film-chapters{gap:3px 15px;margin-top:8px}.film-chapters button{font-size:10px;min-height:34px}.film-status{font-size:11px}.film-bottom{margin-top:8px}.film-heading h2{max-width:230px}.film-heading a{font-size:10px}.film-controls button{min-height:44px}.film-caption{gap:10px}.film-caption p{margin-top:0}.film-sticky{padding-top:15px;padding-bottom:15px}.hero-foot span:first-child{max-width:220px}.dialog-controls button{min-height:44px;min-width:44px}}
@media(max-height:600px){.film-frame video{max-height:none}.showreel.js-scroll{height:auto}.js-scroll .film-sticky{position:relative;top:auto;height:auto}}
@media(prefers-reduced-motion:reduce){.film-frame video{max-height:none}}

/* --- direction.css --- */
/* A restrained editorial system: aligned margins, generous whitespace and clear type. */
:root{--navy:#1a233b;--ink:#1a233b;--yellow:#ffd100;--teal:#21cac4;--muted:#616978;--line:#dce0e6;--soft:#f3f5f7}
body{font-size:1rem;line-height:1.75}h1,h2,h3{font-weight:500;letter-spacing:-.035em}p{text-wrap:pretty}.wrap{width:calc(100% - 112px);max-width:1360px}.topbar{position:relative;border:0}header{min-height:112px;gap:48px;border-bottom:1px solid #ffffff30}.logo{width:216px}nav{font-size:.875rem;gap:32px}header>.pill{background:transparent;color:white;border:0;border-bottom:1px solid #ffffff65;border-radius:0;padding:10px 0;gap:30px}.pill{border-radius:0;font-size:.875rem;min-height:50px;padding:14px 22px}.eyebrow{font-size:.8125rem;letter-spacing:.08em;font-weight:400;line-height:1.6}.hero{padding:40px 0 52px}.hero-kicker{display:flex;justify-content:space-between;gap:24px}.hero .eyebrow{color:#c5ccd8}.hero .eyebrow:before{display:none}.hero-grid{grid-template-columns:minmax(0,1.9fr) minmax(240px,1fr);gap:6%;margin:76px 0 0;align-items:end}.hero h1{font-size:clamp(3rem,5.4vw,5.15rem);font-weight:400;letter-spacing:-.045em;line-height:1.12;margin:0}.hero h1 span{color:white}.hero-copy{padding-bottom:4px}.hero-copy p{color:#d4dae4;font-size:1rem;line-height:1.8;max-width:350px;margin:0 0 28px}.text-link{display:inline-flex;align-items:center;gap:36px;font-size:.875rem;padding:6px 0 9px;border-bottom:1px solid currentColor;line-height:1.6}.hero .text-link{color:var(--yellow)}.hero-foot{margin-top:60px;padding-top:25px;font-size:.8125rem;line-height:1.75;color:#bac3d2}.hero-foot span:last-child{text-align:right}
.work-section{padding:80px 0 108px}.work-heading{align-items:end;gap:60px}.work-heading h2{font-size:clamp(2.25rem,3.6vw,3.5rem);margin:14px 0 0;font-weight:400}.work-heading h2 sup{font-size:.875rem;margin-left:12px;position:relative;top:9px}.work-heading p{font-size:1rem;max-width:360px;line-height:1.8}.work-toolbar{padding:30px 0 20px;margin:0 0 40px;align-items:center}.work-filters{gap:24px}.work-filters button{background:none!important;color:var(--muted)!important;border:0;border-bottom:2px solid transparent;border-radius:0;padding:10px 0;font-size:.875rem;line-height:1.6}.work-filters button[aria-pressed=true]{color:var(--ink)!important;border-bottom-color:var(--ink)}.work-filters button:hover{color:var(--ink)!important;border-bottom-color:var(--teal)}.work-count{font-size:.8125rem;margin:0}.portfolio-wall{grid-template-columns:repeat(2,minmax(0,1fr));gap:56px 36px}.work-card{margin:0!important;transform:none!important}.work-card:first-child{grid-column:1/-1}.work-number{font-size:.8125rem;margin:0 0 13px;color:var(--muted);letter-spacing:.015em}.work-preview{padding:0;border:1px solid var(--line);border-radius:0;aspect-ratio:1.55;background:var(--soft);box-shadow:none}.screen-frame{width:100%;height:100%;border:0;border-radius:0;box-shadow:none;transform:none!important;overflow:hidden}.screen-top{display:none}.work-preview img{width:100%;height:100%;object-fit:cover;object-position:top;transform:none;transition:transform .5s ease}.work-preview:hover img{transform:scale(1.025)}.work-preview:after{display:none}.work-card:first-child .work-preview{aspect-ratio:2.15}.work-card:first-child .work-preview img{object-position:center 16%}.work-meta{padding-top:18px;gap:20px;align-items:start}.work-meta h3{font-size:1.5rem;line-height:1.3;margin:0 0 5px}.work-meta p{font-size:.875rem;line-height:1.7;color:var(--muted);margin:0}.work-credit{font-size:.8125rem;display:block;margin-top:8px;line-height:1.65;color:var(--muted)}.circle-arrow{border:0;border-radius:0;font-size:25px;width:44px;height:44px;flex-shrink:0;background:none}.circle-arrow:hover{background:var(--yellow);color:var(--ink)}.portfolio-end{margin-top:64px;padding-top:26px;border-top:1px solid var(--line)}.portfolio-end p{font-size:1rem;margin:0}.filtered .work-card:first-child{grid-column:auto}.filtered .work-card:first-child .work-preview{aspect-ratio:1.55}
.section{padding:104px 0}.dark{background:var(--navy)}.services-layout{grid-template-columns:1fr 1.1fr;gap:10%;margin-top:35px}.dark h2,.about-grid h2{font-size:clamp(2.15rem,3.5vw,3.4rem);line-height:1.2;font-weight:400;letter-spacing:-.035em}.services-intro p{font-size:1rem;line-height:1.85;max-width:390px;color:#c6cede}.services-intro .text-link{margin-top:12px}.services-list summary{font-size:1.125rem;line-height:1.6;gap:24px;padding:22px 0}.services-list summary small{font-size:.8125rem;color:#a8b4c8}.services-list details p{font-size:1rem;line-height:1.85;padding-left:43px;color:#c6cede}.services-list details p .text-link{display:inline;font-size:.875rem;line-height:2.2}.services-list details{border-color:#ffffff30}.about-grid{grid-template-columns:1fr 1.1fr;gap:10%;margin-top:35px}.about-grid p{font-size:1rem;line-height:1.85;max-width:560px}.about-stats{border-top:1px solid var(--line);margin-top:32px;padding-top:28px;gap:64px}.about-stats strong{font-size:2.75rem;font-weight:400;letter-spacing:-.04em;line-height:1.2}.about-stats span{font-size:.8125rem;margin-top:9px;display:block;max-width:150px}.quote{background:var(--soft);padding:64px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.quote-inner{grid-template-columns:1fr 2fr;gap:10%}.quote blockquote{font-size:clamp(1.4rem,2.3vw,2rem);font-weight:400;line-height:1.5;letter-spacing:-.025em;margin:0 0 24px}.quote cite{font-size:.875rem;font-style:normal;color:var(--muted)}.contact-grid{grid-template-columns:1.1fr 1fr;gap:10%;margin-top:35px}.contact-grid h2 em{color:var(--yellow);font-style:normal}.contact-copy{font-size:1rem;line-height:1.85;color:#c6cede;max-width:380px}.contact-links a{font-size:1rem;overflow-wrap:anywhere}.contact-links{margin-top:32px}form label{font-size:.875rem}input,textarea{border-radius:0!important;font-size:1rem!important;padding:13px 0!important;background:transparent!important;border:0!important;border-bottom:1px solid #ffffff65!important;color:white}input::placeholder,textarea::placeholder{color:#a8b4c8}textarea{min-height:100px}.fine{font-size:.8125rem;line-height:1.7;max-width:350px;color:#bac3d2;margin-top:16px}footer{background:var(--navy);color:#c6cede;border-top:1px solid #ffffff30;padding:30px 0}footer .wrap{gap:35px}footer span,.footer-links{font-size:.8125rem}.footer-logo{width:175px;filter:none}.portfolio-dialog{border-radius:0}.dialog-bar h3{font-size:1.25rem}.dialog-footer p{font-size:.875rem}.dialog-controls button{min-width:44px;min-height:44px}.reveal{opacity:1;transform:none}
@media(min-width:1600px){.hero{padding-top:40px}}
@media(max-width:1100px){.wrap{width:calc(100% - 64px)}header{gap:28px}header>.pill{display:none}.hero-grid{grid-template-columns:1.7fr 1fr;gap:5%;margin-top:58px}.hero h1{font-size:clamp(2.7rem,5.4vw,4.5rem)}.hero-copy p{font-size:1rem}.work-toolbar{flex-direction:column;align-items:start;gap:18px}.services-layout,.about-grid,.contact-grid{gap:6%}.work-filters{gap:24px}.portfolio-wall{gap:44px 28px}}
@media(max-width:760px){.wrap{width:calc(100% - 40px)}header{min-height:86px;gap:20px}.logo{width:185px}.menu{border-radius:0}nav{top:86px;padding:26px 20px}nav.open{gap:24px}.hero{padding:28px 0 32px}.hero-kicker{display:block}.hero-kicker>.eyebrow:last-child{display:none}.eyebrow{font-size:.8125rem}.hero-grid{display:block;margin-top:42px}.hero h1{font-size:clamp(2rem,7.6vw,3.6rem);line-height:1.16;letter-spacing:-.04em}.hero-copy{margin-top:28px}.hero-copy p{max-width:430px;font-size:1rem;margin-bottom:20px}.hero-foot{margin-top:34px;padding-top:20px;font-size:.8125rem;gap:20px}.hero-foot span:first-child{max-width:220px}.hero-foot span:last-child{display:none}.work-section,.section{padding:56px 0}.work-heading{display:block}.work-heading h2{font-size:2.25rem}.work-heading p{font-size:1rem;max-width:460px;margin-top:22px}.work-toolbar{padding:20px 0;margin-bottom:28px;gap:14px}.work-filters{gap:4px 20px}.work-filters button{font-size:.875rem;min-height:44px}.work-count{font-size:.8125rem}.portfolio-wall{grid-template-columns:1fr;gap:36px}.work-card:first-child{grid-column:auto}.work-preview,.work-card:first-child .work-preview{aspect-ratio:1.45}.work-meta{padding-top:15px}.work-meta h3{font-size:1.35rem}.work-meta p{font-size:.875rem}.work-number{font-size:.8125rem}.portfolio-end{margin-top:38px;gap:16px}.services-layout,.about-grid,.contact-grid{grid-template-columns:1fr;gap:32px;margin-top:26px}.dark h2,.about-grid h2{font-size:2.25rem}.services-list summary{font-size:1rem;gap:18px;line-height:1.6}.services-list details p{font-size:1rem;padding-left:0}.about-stats{gap:35px}.quote{padding:44px 0}.quote-inner{grid-template-columns:1fr;gap:24px}.quote blockquote{font-size:1.45rem}.contact-links a{font-size:1rem}.contact-grid{gap:40px}.dialog-bar h3{font-size:1rem}footer .wrap{gap:22px}.footer-links{gap:20px}.text-link{font-size:.875rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.work-preview img{transition:none}.work-preview:hover img{transform:none}}
/* Studio direction: an image-led opening and a quieter, high-contrast type system. */
.topbar{background:var(--navy);color:white}header{min-height:100px;border-bottom:0}.topbar .logo{filter:none;width:220px}.topbar header>.pill{color:white;border:1px solid #ffffff65;border-radius:2px;padding:12px 20px;gap:24px}.topbar header>.pill:hover{color:var(--navy);background:var(--yellow);border-color:var(--yellow)}nav a:hover{color:var(--yellow)}.hero{background:white;color:var(--navy);padding:36px 0 0}.hero .eyebrow{color:var(--muted)}.hero-kicker{padding-bottom:30px;border-bottom:1px solid var(--line)}.studio-opening{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:center;gap:6%;padding:55px 0 52px}.hero .opening-copy h1{font-size:clamp(3.25rem,6.4vw,6.2rem);font-weight:500;line-height:1.06;letter-spacing:-.055em;margin:0 0 32px}.opening-copy h1 em{font-family:var(--font);font-style:normal;font-weight:400;letter-spacing:-.065em;line-height:1.16}.opening-copy>p{font-size:1rem;line-height:1.85;color:var(--muted);margin:0 0 25px}.opening-link{display:inline-flex;align-items:center;gap:28px;font-size:.875rem;font-weight:500;border-bottom:1px solid var(--navy);padding:8px 0 12px}.opening-link span{font-size:22px}.opening-link:hover{border-color:var(--teal)}.opening-note{display:block;margin-top:40px;font-size:.8125rem;line-height:1.75;color:var(--muted)}.opening-project{margin:0;min-width:0}.opening-preview{display:block;width:100%;padding:0;border:1px solid var(--line);background:#000;cursor:pointer}.opening-preview img{width:100%;height:auto;display:block;transform:none;object-fit:contain}.opening-preview:focus-visible{outline:3px solid var(--teal)}.opening-project figcaption{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 0 0}.opening-project figcaption .eyebrow{font-size:.75rem;letter-spacing:.06em}.opening-project strong{display:block;font-size:1.2rem;line-height:1.5;font-weight:500;margin-top:5px}.opening-project figcaption a{display:grid;place-items:center;width:48px;height:48px;border:1px solid var(--line);border-radius:50%;font-size:25px}.opening-project figcaption a:hover{background:var(--yellow)}.studio-signoff{display:flex;justify-content:space-between;gap:24px;padding:23px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:.8125rem;color:var(--muted)}.work-section{padding:80px 0 100px}.work-heading h2{font-size:clamp(3rem,5.5vw,5.25rem);line-height:1.06;font-weight:500;letter-spacing:-.05em}.work-heading h2 em{font-family:var(--font);font-style:normal;font-weight:400;letter-spacing:-.06em}.work-heading h2 sup{font-size:.875rem;top:0}.work-heading p{max-width:345px}.work-toolbar{margin-bottom:45px}.portfolio-wall{grid-template-columns:repeat(12,minmax(0,1fr));gap:70px 42px;align-items:start}.work-card,.work-card:first-child{grid-column:span 6}.portfolio-wall:not(.filtered) .work-card:nth-child(4n+1){grid-column:span 7}.portfolio-wall:not(.filtered) .work-card:nth-child(4n+2){grid-column:span 5;margin-top:105px!important}.portfolio-wall:not(.filtered) .work-card:nth-child(4n+3){grid-column:span 5}.portfolio-wall:not(.filtered) .work-card:nth-child(4n+4){grid-column:span 7;margin-top:85px!important}.work-preview,.work-card:first-child .work-preview,.filtered .work-card:first-child .work-preview{aspect-ratio:auto;height:auto;padding:0;border:1px solid var(--line);background:white;overflow:visible}.screen-frame{height:auto;overflow:visible;box-shadow:none;transform:none!important}.work-preview img,.work-card:first-child .work-preview img,.work-preview:hover img,.work-preview:focus-visible img{display:block;width:100%;height:auto;max-height:none;aspect-ratio:auto;object-fit:contain;object-position:top left;transform:none!important;transition:none}.work-number{font-size:.8125rem;padding-bottom:12px;border-bottom:1px solid var(--line);margin-bottom:16px}.work-meta{padding-top:18px;margin-top:0}.work-meta h3{font-size:clamp(1.4rem,2.15vw,1.9rem);letter-spacing:-.04em}.circle-arrow{border:1px solid var(--line);border-radius:50%}.portfolio-end{margin-top:60px}.portfolio-end p{font-size:1.2rem;letter-spacing:-.025em}.dark h2,.about-grid h2{font-size:clamp(2.5rem,4.2vw,4rem);letter-spacing:-.045em;line-height:1.14}.services-list summary{font-size:1.125rem}.services-list details{border-color:#ffffff35}.about-stats strong{font-size:3.5rem}.quote{background:white;color:var(--navy);border:0;padding:0 0 90px}.quote-inner{border-top:1px solid var(--line);padding-top:55px}.quote blockquote{font-family:var(--font);font-size:clamp(1.6rem,2.7vw,2.65rem);line-height:1.4;letter-spacing:-.025em}.contact-grid h2 em{font-family:var(--font);font-style:normal;font-weight:400;font-size:1.18em;line-height:1.3}.dialog-image{height:auto;max-height:none;object-fit:contain;object-position:top left}.portfolio-dialog{max-height:90svh;overflow-y:auto}
@media(max-width:1100px){.studio-opening{gap:5%;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);padding:45px 0}.hero .opening-copy h1{font-size:6.5vw}.portfolio-wall{gap:50px 28px}.portfolio-wall:not(.filtered) .work-card:nth-child(4n+2){margin-top:75px!important}.portfolio-wall:not(.filtered) .work-card:nth-child(4n+4){margin-top:60px!important}.opening-note{margin-top:28px}.opening-project figcaption .eyebrow{font-size:.75rem}}
@media(max-width:760px){header{min-height:86px}.topbar .logo{width:190px}.topbar .menu{color:white;border-color:#ffffff65}nav{background:var(--navy);color:white}.hero{padding:24px 0 0}.hero-kicker{padding-bottom:22px}.studio-opening{grid-template-columns:1fr;gap:36px;padding:35px 0}.hero .opening-copy h1{font-size:clamp(3.2rem,12.5vw,5rem);margin-bottom:22px;line-height:1.08}.opening-copy>p{font-size:1rem;margin-bottom:18px}.opening-note{display:none}.opening-project figcaption{padding-top:16px}.opening-project strong{font-size:1.1rem}.studio-signoff{display:grid;grid-template-columns:1fr 1fr;gap:12px 20px;padding:22px 0;font-size:.8125rem}.work-section{padding:52px 0 62px}.work-heading h2{font-size:3.4rem}.work-heading p{margin-top:22px}.portfolio-wall{grid-template-columns:1fr;gap:38px}.work-card,.work-card:first-child,.portfolio-wall:not(.filtered) .work-card:nth-child(n),.filtered .work-card:first-child{grid-column:1;margin-top:0!important}.work-preview,.work-card:first-child .work-preview,.filtered .work-card:first-child .work-preview{aspect-ratio:auto;padding:0;height:auto}.work-meta h3{font-size:1.45rem}.dark h2,.about-grid h2{font-size:2.4rem}.quote{padding-bottom:55px}.quote-inner{padding-top:35px}.quote blockquote{font-size:1.75rem}.portfolio-end{margin-top:40px}.portfolio-end p{font-size:1.1rem}.about-stats strong{font-size:3rem}}
/* Reference adaptation: editorial columns, numbered chapters and a photographic opening. */
.topbar{position:sticky;top:0;z-index:50}header{min-height:82px;gap:30px}.topbar .logo{width:195px}nav{align-self:stretch;gap:0}nav a{display:flex;align-items:center;gap:18px;padding:0 24px;border-left:1px solid #ffffff26;font-size:.875rem;transition:background .2s,color .2s}nav a span{font-family:var(--font);font-size:.8125rem;color:#abb6c9}nav a:hover,nav a[aria-current=location]{background:var(--yellow);color:var(--navy)}nav a:hover span,nav a[aria-current=location] span{color:var(--navy)}.topbar header>.pill{border:0;border-radius:0;padding:12px 0}.hero.report-opening{padding:0;background:white}.project-spread{display:grid;grid-template-columns:1fr 1.24fr 1fr;gap:26px;padding:34px max(24px,4vw);background:var(--teal);align-items:center}.spread-project{display:block;min-width:0;width:100%;padding:0;border:0;background:white;box-shadow:none;transition:transform .35s ease}.spread-project:nth-child(1){align-self:start}.spread-project:nth-child(3){align-self:end}.spread-project img{display:block;width:100%;height:auto;object-fit:contain;object-position:top;transform:none}.spread-project>span{display:flex;justify-content:space-between;align-items:center;padding:11px 14px;font-size:.8125rem;line-height:1.5;text-align:left;background:var(--navy);color:white}.spread-project:hover,.spread-project:focus-visible{transform:translateY(-6px)}.spread-project:focus-visible{outline:3px solid var(--navy);outline-offset:5px}.editorial-opening{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:5%;padding:30px 0 38px;min-height:355px}.editorial-intro{display:flex;flex-direction:column;justify-content:space-between;gap:45px}.editorial-intro p{font-size:1rem;line-height:1.65;margin:0;max-width:300px}.editorial-intro .eyebrow{font-family:var(--font);font-size:.8125rem;letter-spacing:0;line-height:1.55;color:var(--muted)}.hero .editorial-title h1{font-size:clamp(3.2rem,6.7vw,6.5rem);font-weight:500;letter-spacing:-.065em;line-height:1.05;margin:0 0 38px}.read-work{display:flex;justify-content:space-between;align-items:center;font-size:.875rem;border-bottom:1px solid var(--line);padding:14px 0}.read-work span{font-size:26px;transition:transform .2s}.read-work:hover span{transform:translateY(4px)}.work-section{border-top:1px solid var(--line);padding-top:46px}.chapter-label{display:flex;align-items:baseline;gap:24px;margin-bottom:30px;line-height:1.4}.chapter-label>span:first-child{font-size:clamp(2rem,3.3vw,3rem);font-weight:500;letter-spacing:-.05em}.chapter-label>span:last-child{font-family:var(--font);font-size:.8125rem;letter-spacing:0;text-transform:uppercase}.work-heading{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:8%}.work-heading h2{font-size:clamp(3rem,5.4vw,5.2rem);font-weight:500;letter-spacing:-.06em}.work-heading p{align-self:end;max-width:360px}.work-number{font-family:var(--font);letter-spacing:0}.work-filters button{border-radius:0}.services-layout,.about-grid,.contact-grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:5%}.section{padding:60px 0 90px}.services-layout{margin-top:0}.dark h2,.about-grid h2{font-weight:500;letter-spacing:-.055em}.services-list summary{padding:25px 0}.services-list summary small{font-family:var(--font)}.services-list details[open]{border-left:3px solid var(--teal);padding-left:18px}.about-stats{gap:0;display:grid;grid-template-columns:1fr 1fr}.about-stats>div{padding-right:24px}.about-stats>div+div{border-left:1px solid var(--line);padding-left:32px}.about-stats strong{font-size:4rem}.quote{background:var(--yellow);padding:55px 0;margin-bottom:0}.quote-inner{border:0;padding:0;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:5%}.quote blockquote{font-family:var(--font);font-size:clamp(1.5rem,2.65vw,2.5rem);font-weight:400;line-height:1.45;letter-spacing:-.04em}.quote cite{color:var(--navy)}.contact-grid h2 em{font-family:var(--font);font-style:normal;font-size:1em;letter-spacing:-.055em}.portfolio-end{padding-top:30px}.work-card{transition:opacity .45s ease,translate .45s ease}.work-card.entering{opacity:0;translate:0 20px}
@media(max-width:1100px){header{gap:20px}nav a{padding:0 18px;gap:12px}.topbar header>.pill{display:none}.project-spread{gap:18px;padding:26px 24px}.spread-project>span{padding:9px 11px;font-size:.75rem}.editorial-opening{min-height:310px}.hero .editorial-title h1{font-size:6.7vw}}
@media(max-width:760px){header{min-height:76px}.topbar .logo{width:180px}nav{top:76px;align-self:auto;padding:12px 20px}nav.open{gap:0}nav a{width:100%;padding:17px 12px;border:0;border-bottom:1px solid #ffffff26}.project-spread{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:16px;padding:22px 20px;align-items:center;scrollbar-width:thin;scrollbar-color:var(--navy) transparent}.spread-project{flex:0 0 82%;scroll-snap-align:center;align-self:center!important}.spread-project>span{font-size:.8125rem}.spread-project:hover{transform:none}.editorial-opening{display:flex;flex-direction:column;gap:30px;padding:28px 0 34px;min-height:0}.editorial-intro{display:block}.editorial-intro p{font-size:1rem}.editorial-intro .eyebrow{display:block;margin-top:18px}.hero .editorial-title h1{font-size:clamp(2.5rem,10.6vw,4.7rem);line-height:1.08;margin-bottom:18px}.work-heading{display:block}.work-heading h2{font-size:3rem}.work-heading p{margin-top:22px}.chapter-label{gap:20px;margin-bottom:25px}.chapter-label>span:first-child{font-size:2.5rem}.chapter-label>span:last-child{font-size:.8125rem}.section{padding:48px 0 60px}.services-layout,.about-grid,.contact-grid,.quote-inner{grid-template-columns:1fr;gap:30px}.quote{padding:42px 0}.quote blockquote{font-size:1.5rem}.about-stats strong{font-size:3.2rem}.services-list details[open]{padding-left:14px}.work-section{padding-top:42px}html{scroll-padding-top:96px}}
@media(prefers-reduced-motion:reduce){.spread-project,.work-card,.read-work span{transition:none;transform:none!important;translate:none!important}.work-card.entering{opacity:1}}
/* Focused typographic opening and simplified studio navigation. */
:root{--teal:#ffd100}header{min-height:94px;border-bottom:1px solid #ffffff24;gap:48px}.topbar .logo{width:210px}nav{align-self:center;gap:32px}nav a{position:relative;display:inline-flex;min-height:44px;align-items:center;padding:9px 0;border:0;background:transparent;color:#dce1eb;font-size:.875rem;line-height:1.5}nav a:after{content:'';position:absolute;bottom:4px;left:0;width:100%;height:1px;background:var(--yellow);transform:scaleX(0);transform-origin:left;transition:transform .2s}nav a:hover,nav a[aria-current=location]{background:transparent;color:white}nav a:hover:after,nav a[aria-current=location]:after{transform:scaleX(1)}nav .mobile-contact{display:none}.topbar header>.pill{display:inline-flex;background:var(--yellow);color:var(--navy);border:1px solid var(--yellow);border-radius:3px;padding:11px 20px;min-height:46px;gap:25px}.topbar header>.pill:hover{background:white;border-color:white}.hero.type-opening{background:var(--navy);color:white;padding:34px 0 0}.hero-label{display:flex;justify-content:space-between;gap:24px}.hero-label .eyebrow{color:#bac4d5;font-size:.8125rem;letter-spacing:.05em}.hero.type-opening h1{font-size:clamp(3rem,7.3vw,7.1rem);font-weight:500;line-height:1.09;letter-spacing:-.06em;margin:55px 0 38px;max-width:1100px}.hero.type-opening h1 span{color:#aeb9cc}.hero-lower{display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:8%;padding-bottom:46px}.hero-lower>p{font-size:1rem;line-height:1.85;color:#d0d8e5;max-width:420px;margin:0;justify-self:end}.hero-cta{display:inline-flex;justify-self:start;align-items:center;gap:28px;font-size:.875rem;padding:10px 0;border-bottom:1px solid #ffffff90}.hero-cta span{font-size:25px;color:var(--yellow);transition:transform .2s}.hero-cta:hover span{transform:translateY(4px)}.hero-baseline{display:flex;justify-content:space-between;gap:24px;border-top:1px solid #ffffff24;padding:23px 0;font-size:.8125rem;color:#aeb9cc}.work-section{border-top:0}.work-filters button:hover{border-bottom-color:var(--navy)}.read-work:hover{color:var(--navy)}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--navy);outline-offset:5px}.topbar a:focus-visible,.topbar button:focus-visible,.type-opening a:focus-visible,.dark a:focus-visible,.dark button:focus-visible,.dark summary:focus-visible{outline-color:var(--yellow)}
@media(max-width:1100px){header{gap:26px}nav{gap:24px}.topbar .logo{width:190px}.topbar header>.pill{display:inline-flex;padding:10px 16px;gap:16px}.hero.type-opening h1{font-size:7.7vw;margin-top:48px}}
@media(max-width:760px){header{min-height:78px;gap:20px}.topbar .logo{width:185px}.topbar header>.pill{display:none}.topbar .menu{border:1px solid #ffffff60;border-radius:3px;min-height:44px;padding:8px 14px;color:white;background:transparent}.topbar .menu[aria-expanded=true]{background:white;color:var(--navy)}nav{top:78px;align-self:auto;padding:10px 20px 22px;gap:0;background:var(--navy);border-bottom:1px solid #ffffff35}nav a{display:flex;width:100%;padding:16px 0;border-bottom:1px solid #ffffff25;font-size:1rem;min-height:52px}nav a:after{display:none}nav a[aria-current=location]{color:var(--yellow)}nav .mobile-contact{display:flex;color:var(--yellow)}.hero.type-opening{padding-top:26px}.hero-label>.eyebrow:last-child{display:none}.hero.type-opening h1{font-size:clamp(2.4rem,9.7vw,4.6rem);margin:40px 0 28px;line-height:1.12;letter-spacing:-.055em}.hero-lower{display:flex;flex-direction:column-reverse;gap:23px;align-items:start;padding-bottom:32px}.hero-lower>p{font-size:1rem;max-width:440px}.hero-baseline{display:block;font-size:.8125rem;padding:20px 0}.hero-baseline span{display:block}.hero-baseline span+span{margin-top:4px}html{scroll-padding-top:96px}}
@media(prefers-reduced-motion:reduce){nav a:after,.hero-cta span{transition:none}}

/* --- faq.css --- */
.faq-layout{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:5%}.faq-layout h2{font-size:clamp(2.5rem,4.3vw,4.5rem);line-height:1.12;letter-spacing:-.055em;margin:0 0 24px}.faq-layout>div>p{max-width:350px;margin-bottom:28px}.faq-list{border-top:1px solid var(--line)}.faq-list details{border-bottom:1px solid var(--line)}.faq-list summary{position:relative;cursor:pointer;list-style:none;padding:24px 40px 24px 0;font-size:1.125rem;font-weight:500;line-height:1.5}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:after{content:'+';position:absolute;right:4px;top:24px;font-size:1.5rem;line-height:1.1}.faq-list details[open] summary:after{content:'−'}.faq-list details[open] summary{padding-bottom:14px}.faq-list p{margin:0;padding:0 24px 24px 0;font-size:1rem;line-height:1.8;color:var(--muted)}@media(max-width:900px) and (min-width:761px){header{gap:18px}nav{gap:16px}.topbar .logo{width:170px}.topbar header>.pill{padding:10px 12px;gap:10px}}@media(max-width:760px){.faq-layout{grid-template-columns:1fr;gap:30px}.faq-layout h2{font-size:2.75rem}.faq-list summary{font-size:1rem}}

/* --- editorial.css --- */
/* A single sans serif family, contrasting weights and quiet portfolio surfaces. */
:root{--portfolio-surface:#f1f2f4;--navy-gradient:linear-gradient(90deg,#1a233b 0%,#111a2c 52%,#070c16 100%)}
.topbar,.hero.type-opening,.dark,footer{background:var(--navy);background-image:var(--navy-gradient)}
body{font-synthesis:none}
h1,h2{font-weight:400}
h1 strong,h2 .type-emphasis{font-family:var(--font);font-weight:600;font-style:normal;color:inherit;letter-spacing:inherit}
h3{font-weight:600}
.simple-arrow{display:inline-block;width:22px;height:22px;flex:0 0 22px;vertical-align:middle;transition:none}
.circle-arrow,.circle-arrow:hover{border:0;border-radius:0;background:none;width:44px;height:44px;min-width:44px;color:var(--navy)}
.circle-arrow:hover .simple-arrow{stroke-width:2}
.pill span,.hero-cta span,.text-link span{display:inline-flex;align-items:center}
.hero-cta:hover span{transform:none}
.topbar header>.pill{border-radius:0;background:transparent;color:white;border:0;border-bottom:1px solid #ffffff70;padding:10px 0;gap:18px}
.topbar header>.pill:hover{background:transparent;color:var(--yellow);border-color:var(--yellow)}
.hero.type-opening{padding:35px 0 0}
.hero.type-opening h1{font-size:clamp(3rem,7.1vw,6.9rem);font-weight:400;line-height:1.13;letter-spacing:-.045em;max-width:none;margin:54px 0 44px}
.hero.type-opening h1 .headline-first{display:block;color:white;font-weight:400}
.hero.type-opening h1 .headline-second{display:block;color:white;font-size:1em;font-weight:600;letter-spacing:inherit;margin:4px 0 0}
.hero-lower{grid-template-columns:1fr 1.55fr;gap:12%;padding-bottom:52px;align-items:center}
.hero-lower>p{max-width:550px;font-size:1.0625rem;line-height:1.8}
.hero-cta{color:white;gap:35px;min-height:48px}
.hero-cta .simple-arrow{color:var(--yellow)}
.hero-baseline{font-size:.875rem}
.work-section{padding:84px 0 100px}
.chapter-label>span:first-child{font-size:1rem;font-weight:400;letter-spacing:0;color:var(--muted)}
.chapter-label>span:last-child{font-family:var(--font);font-size:.875rem;text-transform:none;letter-spacing:0}
.dark .chapter-label>span:first-child{color:var(--yellow)}
.dark .chapter-label>span:last-child{color:#bac4d5}
.work-heading{grid-template-columns:1.3fr 1fr;gap:12%}
.work-heading h2{font-size:clamp(2.75rem,5.2vw,5rem);font-weight:400;line-height:1.14;letter-spacing:-.04em}
.work-heading p{max-width:370px;padding-bottom:8px}
.work-toolbar{margin-bottom:44px}
.portfolio-wall{gap:64px 40px}
.portfolio-wall:not(.filtered) .work-card:nth-child(n){grid-column:span 6;margin-top:0!important;padding-top:0}
.portfolio-wall:not(.filtered) .work-card.featured-project{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,8fr) minmax(0,3fr);column-gap:5%;align-items:end;padding-bottom:44px;border-bottom:1px solid var(--line)}
.portfolio-wall:not(.filtered) .featured-project .work-number{grid-column:1/-1}
.portfolio-wall:not(.filtered) .featured-project .work-meta{flex-wrap:wrap;padding-bottom:10px}
.portfolio-wall:not(.filtered) .featured-project .work-meta h3{font-size:clamp(1.75rem,2.6vw,2.5rem);margin:16px 0 10px}
.featured-label{font-size:.875rem;color:var(--muted)}
.work-meta .featured-description{margin-top:22px;font-size:1rem;line-height:1.8}
.filtered .featured-label,.filtered .featured-description{display:none}
.work-number{font-family:var(--font);font-size:.875rem}
.work-preview,.work-card:first-child .work-preview,.filtered .work-card:first-child .work-preview{padding:clamp(14px,2vw,28px);border:0;border-radius:18px;overflow:hidden;background:var(--portfolio-surface);box-shadow:none}
.work-preview .screen-frame{border:1px solid #1a233b14;border-radius:8px;overflow:hidden}
.work-meta{padding-top:20px}
.work-meta h3{font-size:clamp(1.375rem,1.8vw,1.75rem);font-weight:600;letter-spacing:-.025em}
.work-credit{font-size:.875rem}
.section{padding:80px 0 100px}
.dark h2,.about-grid h2,.faq-layout h2,.contact-grid h2{font-size:clamp(2.25rem,3.8vw,3.7rem);font-weight:400;line-height:1.2;letter-spacing:-.035em}
.services-list summary{font-size:1.1875rem;font-weight:500;padding:27px 0}
.services-list details[open]{border-left:0;padding-left:0}
.services-list details[open] summary{color:var(--yellow)}
.services-list details p{padding-left:0}
.about-stats{padding-top:28px;margin-top:38px}
.about-stats strong{font-size:clamp(3.5rem,5vw,5rem);font-weight:600;letter-spacing:-.045em}
.about-stats span{font-size:.875rem}
.quote{padding:66px 0}
.quote-inner{grid-template-columns:1fr 2.1fr;gap:8%}
.quote blockquote{font-family:var(--font);font-style:normal;font-weight:400;font-size:clamp(1.5rem,2.4vw,2.35rem);line-height:1.5;letter-spacing:-.025em}
.faq-list summary{font-size:1.0625rem}
@media(min-width:761px) and (max-width:1000px){header{gap:22px}nav{gap:20px}.topbar header>.pill{display:none}.portfolio-wall{gap:50px 30px}.portfolio-wall:not(.filtered) .work-card.featured-project{grid-template-columns:minmax(0,7fr) minmax(0,4fr)}.work-meta .featured-description{font-size:.9375rem}}
@media(max-width:760px){.hero.type-opening{padding-top:25px}.hero.type-opening h1{font-size:clamp(1.85rem,9vw,4rem);line-height:1.16;margin:38px 0 30px;letter-spacing:-.04em}.hero.type-opening h1 .headline-second{font-size:1em;margin:6px 0 0;letter-spacing:inherit}.hero-lower{gap:22px;padding-bottom:30px}.hero-lower>p{font-size:1rem}.hero-baseline{font-size:.875rem}.work-section,.section{padding:52px 0 64px}.work-heading{grid-template-columns:1fr;gap:24px}.work-heading h2{font-size:clamp(2.25rem,8vw,3.5rem)}.chapter-label{gap:20px;margin-bottom:24px}.chapter-label>span:first-child{font-size:1rem}.chapter-label>span:last-child{font-size:.875rem}.portfolio-wall{gap:40px}.portfolio-wall:not(.filtered) .work-card:nth-child(n){grid-column:1;padding-top:0;margin-top:0!important}.portfolio-wall:not(.filtered) .work-card.featured-project{display:block;padding-bottom:32px}.portfolio-wall:not(.filtered) .featured-project .work-meta{flex-wrap:nowrap}.featured-label,.work-meta .featured-description{display:none}.portfolio-wall:not(.filtered) .featured-project .work-meta h3{font-size:1.5rem;margin:0 0 5px}.work-preview,.work-card:first-child .work-preview,.filtered .work-card:first-child .work-preview{padding:14px;border-radius:14px}.dark h2,.about-grid h2,.faq-layout h2,.contact-grid h2{font-size:clamp(2rem,7.3vw,3rem)}.services-list summary{font-size:1rem}.quote{padding:44px 0}.quote-inner{grid-template-columns:1fr;gap:24px}.quote blockquote{font-size:1.5rem}.about-stats strong{font-size:3.5rem}.topbar header>.pill{display:none}}

/* Selected website photography forms a setting for each complete homepage. */
.image-project .work-preview,
.image-project:first-child .work-preview,
.filtered .image-project:first-child .work-preview{
 position:relative;isolation:isolate;overflow:hidden;
 padding:23% 6% 6% 18%;background:#111a2c;
}
.image-project .project-scene{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.image-project .work-preview .project-scene img{
 width:100%;height:100%;max-height:none;object-fit:cover;
 object-position:var(--scene-position,center);opacity:.88;
}
.image-project .project-scene:after{
 content:'';position:absolute;inset:0;
 background:linear-gradient(180deg,#070c160d 0%,#070c1626 45%,#070c168a 100%);
}
.image-project .work-preview .screen-frame{
 position:relative;z-index:1;border:1px solid #ffffff7a;border-radius:7px;
 box-shadow:0 18px 42px #03081166,0 2px 8px #03081133;
}
.image-project .work-preview .screen-frame img{width:100%;height:auto;object-fit:contain;object-position:top}
.image-project .work-preview:focus-visible{outline:3px solid var(--navy);outline-offset:5px}
.image-project .work-preview:focus-visible .screen-frame{border-color:var(--yellow)}
.image-project.project-gallery .work-preview{padding:23% 20% 6% 4%;--scene-position:68% center}
.portfolio-wall:not(.filtered) .image-project.featured-project .work-preview{padding:22% 5% 5% 19%}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
 .image-project .project-scene{transition:scale .7s ease}
 .image-project .screen-frame{transition:translate .5s ease,box-shadow .5s ease}
 .image-project .work-preview:hover .project-scene{scale:1.035}
 .image-project .work-preview:hover .screen-frame{translate:0 -5px;box-shadow:0 24px 48px #03081180}
}
@media(max-width:760px){
 .image-project .work-preview,
 .image-project:first-child .work-preview,
 .filtered .image-project:first-child .work-preview,
 .portfolio-wall:not(.filtered) .image-project.featured-project .work-preview{padding:26% 5% 5% 10%}
 .image-project.project-gallery .work-preview{padding:26% 10% 5% 5%}
 .image-project .work-preview .screen-frame{border-radius:5px}
}

/* --- scroll.css --- */
/* Enhance the page only after the motion controller is ready. */
@media (prefers-reduced-motion: no-preference) {
  .scroll-motion .scroll-reveal {
    transition: opacity 700ms cubic-bezier(.22, 1, .36, 1),
      translate 850ms cubic-bezier(.22, 1, .36, 1);
    transition-delay: var(--reveal-delay, 0ms);
  }

  .scroll-motion .scroll-reveal.is-pending {
    opacity: 0;
    translate: 0 30px;
  }

  .scroll-motion .work-card.scroll-reveal.is-pending {
    translate: 0 42px;
  }

  .scroll-motion .scroll-reveal:focus-within {
    opacity: 1;
    translate: none;
    transition: none;
  }

  @media (min-width: 761px) {
    .scroll-parallax .image-project .project-scene {
      inset: -18px 0;
      translate: 0 var(--scene-shift, 0px);
    }
  }

  @media (max-width: 760px) {
    .scroll-motion .scroll-reveal {
      transition-duration: 500ms, 650ms;
      transition-delay: 0ms;
    }

    .scroll-motion .scroll-reveal.is-pending,
    .scroll-motion .work-card.scroll-reveal.is-pending {
      translate: 0 20px;
    }
  }
}

@media (prefers-reduced-motion: reduce) {
  .scroll-reveal,
  .scroll-reveal.is-pending {
    opacity: 1;
    translate: none;
    transition: none;
  }
}

@media print {
  .scroll-motion .scroll-reveal.is-pending,
  .scroll-motion .work-card.scroll-reveal.is-pending {
    opacity: 1;
    translate: none;
    transition: none;
  }
}

/* --- site.css --- */
/* Poppins Light (300), Latin subset, embedded: theme files cannot be added from the editor. */
@font-face{font-family:Poppins;src:url(data:font/woff2;base64,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) format('woff2');font-weight:300;font-style:normal;font-display:swap}

/* Rockhopper Digital — interior page styles.
   Extends the existing design language (refined.css tokens) for
   services, locations, case studies, contact and articles.
   No new colours are introduced; everything uses the theme tokens. */

/* ---------- Page hero ---------- */

.rh-page-hero{padding:62px 0 66px;position:relative;overflow:hidden}
.rh-page-hero:after{content:'';position:absolute;right:-180px;top:-180px;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#3d4f5c,transparent 68%);opacity:.55;pointer-events:none}
.rh-page-hero .wrap{position:relative;z-index:1}
.rh-page-hero .hero-grid{align-items:end;gap:70px;margin-top:22px}
.rh-page-hero h1{font-size:clamp(34px,4.4vw,58px);letter-spacing:-.038em;line-height:1.12;max-width:16ch}
.rh-page-hero .hero-copy p{font-size:17px;line-height:1.75;color:#d3dbe0;margin:0 0 24px}
.rh-page-hero .eyebrow{color:#c2cbd1;display:flex;align-items:center;gap:14px}
.rh-page-hero .eyebrow:before{content:'';height:2px;width:32px;background:var(--yellow);flex:none}

.rh-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:9px;font-size:12px;color:#9fadb6;margin-bottom:26px}
.rh-crumbs a{border-bottom:1px solid transparent;padding-bottom:1px}
.rh-crumbs a:hover{color:var(--yellow);border-color:var(--yellow)}
.rh-crumbs span[aria-current]{color:#d3dbe0}
.rh-crumbs span[aria-hidden]{color:#5d6d77}

/* ---------- Prose sections ---------- */

.rh-prose{padding:82px 0 24px}
.rh-intro{max-width:62ch}
.rh-intro p{font-size:19px;line-height:1.72;color:var(--ink);margin:0 0 1.15em}
.rh-intro p:last-child{margin-bottom:0}
.rh-intro a{border-bottom:1px solid var(--line);padding-bottom:1px}
.rh-intro a:hover{border-color:var(--navy)}

.rh-block{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;padding:52px 0;border-top:1px solid var(--line);margin-top:52px}
.rh-block:first-of-type{margin-top:56px}
.rh-block h2{font-size:clamp(26px,2.5vw,34px);margin:0;letter-spacing:-.03em;line-height:1.2;position:sticky;top:120px;align-self:start}
.rh-block-body p{font-size:16.5px;line-height:1.8;color:var(--muted);margin:0 0 1.15em}
.rh-block-body p:last-child{margin-bottom:0}

.rh-list{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:14px}
.rh-list li{position:relative;padding-left:30px;font-size:16px;line-height:1.7;color:var(--muted)}
.rh-list li:before{content:'';position:absolute;left:0;top:11px;width:13px;height:2px;background:var(--yellow)}
.rh-list a{border-bottom:1px solid var(--line)}
.rh-list a:hover{border-color:var(--navy);color:var(--navy)}
.rh-block-body .rh-list{margin-top:20px}

/* ---------- Areas served ---------- */

.rh-areas{padding-top:24px}
.rh-areas h2{font-size:clamp(26px,2.5vw,34px);letter-spacing:-.03em;margin:0 0 26px}
.rh-town-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:5px;overflow:hidden}
.rh-town-list li{background:white}
.rh-town-list a{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:22px 24px;font-size:17px;background:white;transition:background .18s,color .18s}
.rh-town-list a:hover{background:var(--navy);color:white}
.rh-town-list a span{color:var(--muted);transition:color .18s}
.rh-town-list a:hover span{color:var(--yellow)}
.rh-note{margin:22px 0 0;font-size:14px;color:var(--muted);max-width:60ch}

/* ---------- Cards ---------- */

.rh-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:38px 30px}
.rh-card{display:block;min-width:0}
.rh-card-media{display:block;border:1px solid var(--line);border-radius:5px;overflow:hidden;background:linear-gradient(145deg,var(--soft),#e9eef1);padding:22px 20px 0;aspect-ratio:1.4}
.rh-card-media img{width:100%;height:auto;border:1px solid #d3dbe0;border-radius:4px 4px 0 0;transition:transform .4s ease}
.rh-card:hover .rh-card-media img,.rh-card:focus-visible .rh-card-media img{transform:translateY(-7px)}
.rh-card-body{display:block;margin-top:17px}
.rh-card-number{display:block;font-size:12px;color:var(--muted);margin-bottom:7px}
.rh-card-body strong{display:block;font-size:22px;font-weight:500;letter-spacing:-.025em;line-height:1.3}
.rh-card-body>span{display:block;font-size:13px;color:var(--muted);margin-top:5px}
.rh-card:hover .rh-card-body strong{color:var(--navy)}

.rh-card-grid--text{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:5px;overflow:hidden}
.rh-card--text{background:white;padding:30px 28px;display:flex;flex-direction:column;gap:9px;transition:background .18s}
a.rh-card--text:hover{background:var(--soft)}
.rh-card--text strong{font-size:19px;font-weight:500;letter-spacing:-.02em;line-height:1.35}
.rh-card--text span{font-size:14.5px;line-height:1.7;color:var(--muted)}
.rh-card--text a{border-bottom:1px solid var(--line)}
.rh-card--text a:hover{border-color:var(--navy)}
.rh-card-more{margin-top:auto;padding-top:8px;font-size:13px;color:var(--navy)!important}
a.rh-card--text:hover .rh-card-more{color:var(--navy)}

.rh-proof,.rh-related,.rh-work-index,.rh-contact-detail{padding:66px 0}
.rh-proof h2,.rh-related h2{font-size:clamp(26px,2.5vw,34px);letter-spacing:-.03em;margin:0 0 30px}
.rh-work-index{padding-top:74px}

/* ---------- Case study ---------- */

.rh-case{padding:74px 0 40px}
.rh-case-figure{margin:0 0 56px;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:linear-gradient(145deg,var(--soft),#e9eef1);padding:34px 32px 0}
.rh-case-figure img{width:100%;height:auto;border:1px solid #d3dbe0;border-radius:5px 5px 0 0}
.rh-case-figure figcaption{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;padding:18px 2px 20px;font-size:13px;color:var(--muted)}
.rh-credit{color:#8894a0}

.rh-case-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:74px;align-items:start}
.rh-case-main h2{font-size:clamp(24px,2.3vw,31px);letter-spacing:-.03em;margin:44px 0 18px}
.rh-case-main h2:first-child{margin-top:0}
.rh-case-main p{font-size:16.5px;line-height:1.8;color:var(--muted);margin:0 0 1.15em;max-width:62ch}
.rh-case-side{position:sticky;top:120px;background:var(--soft);border:1px solid var(--line);border-radius:6px;padding:32px 30px}
.rh-case-side h2{font-size:18px;margin:0 0 20px;letter-spacing:-.01em}
.rh-case-side .rh-list li{font-size:15px;padding-left:26px}
.rh-case-side .rh-list li:before{top:10px;width:11px}
.rh-case-side .pill{margin-top:28px;width:100%}

/* ---------- Articles ---------- */

.rh-article h2{font-size:29px;letter-spacing:-.03em;margin:46px 0 16px}
.rh-article h3{font-size:22px;letter-spacing:-.02em;margin:34px 0 12px}
.rh-article ul,.rh-article ol{padding-left:22px;margin:0 0 1.3em}
.rh-article li{margin-bottom:9px;color:var(--muted)}
.rh-article img{border-radius:5px;margin:28px 0}
.rh-article blockquote{margin:32px 0;padding:4px 0 4px 26px;border-left:3px solid var(--yellow);font-size:21px;line-height:1.6;color:var(--ink)}

/* ---------- Enquiry form ---------- */

.rh-hp{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.rh-optional{color:#9fadb6;font-size:12px}
.rh-form-error{background:#ffd10018;border-left:3px solid var(--yellow);color:#fff;padding:13px 16px;font-size:14px;line-height:1.6;margin:0 0 24px;border-radius:0 4px 4px 0}
.rh-form .pill{margin-top:8px}
.rh-form input:-webkit-autofill,.rh-form textarea:-webkit-autofill{-webkit-text-fill-color:#fff;transition:background-color 9999s}

/* ---------- Closing CTA ---------- */

.rh-cta{padding:88px 0}
.rh-cta h2{font-size:clamp(32px,3.6vw,46px);letter-spacing:-.035em;line-height:1.16;margin:14px 0 22px}
.rh-cta .eyebrow{color:#c2cbd1}
.rh-cta .contact-grid{margin-top:0}

/* ---------- FAQ block on interior pages ---------- */

.rh-faqs{padding:84px 0}
.rh-faqs h2{font-size:clamp(30px,3.2vw,42px);letter-spacing:-.035em;line-height:1.18;margin:14px 0 18px}
.rh-faqs .services-intro p{color:#d3dbe0;margin-bottom:26px}
.rh-faqs .services-intro .pill{background:var(--yellow);color:var(--navy);border-color:var(--yellow)}
.rh-faqs .services-list summary{font-size:18px;align-items:start}
.rh-faqs .services-list details p{padding-left:0;padding-right:44px;font-size:15.5px;line-height:1.8}

/* ---------- Editor-added content ---------- */

.rh-editor-content{padding-top:16px}

/* ---------- Responsive ---------- */

@media(max-width:1050px){
  .rh-block{grid-template-columns:1fr;gap:20px;padding:42px 0;margin-top:42px}
  .rh-block h2{position:static;max-width:20ch}
  .rh-case-grid{grid-template-columns:1fr;gap:48px}
  .rh-case-side{position:static}
  .rh-page-hero .hero-grid{gap:40px}
}

@media(max-width:760px){
  .rh-page-hero{padding:34px 0 40px}
  .rh-page-hero .hero-grid{display:block;margin-top:20px}
  .rh-page-hero h1{max-width:none}
  .rh-page-hero .hero-copy{margin-top:22px}
  .rh-page-hero .hero-copy p{font-size:16px}
  .rh-page-hero:after{display:none}
  .rh-crumbs{margin-bottom:20px;font-size:11px}
  .rh-prose{padding:52px 0 16px}
  .rh-intro p{font-size:17px}
  .rh-block{padding:34px 0;margin-top:34px}
  .rh-block-body p,.rh-case-main p{font-size:16px}
  .rh-town-list{grid-template-columns:1fr}
  .rh-town-list a{padding:18px 20px;font-size:16px}
  .rh-card-grid{grid-template-columns:1fr;gap:32px}
  .rh-card-grid--text{grid-template-columns:1fr}
  .rh-proof,.rh-related,.rh-work-index,.rh-contact-detail{padding:48px 0}
  .rh-case{padding:52px 0 26px}
  .rh-case-figure{padding:18px 16px 0;margin-bottom:40px}
  .rh-case-side{padding:26px 22px}
  .rh-cta,.rh-faqs{padding:58px 0}
  .rh-faqs .services-list details p{padding-right:0}
  .rh-page-hero .hero-actions{display:flex;flex-wrap:wrap;gap:10px}
}

@media(prefers-reduced-motion:reduce){
  .rh-card-media img,.rh-town-list a,.rh-card--text{transition:none}
}

/* ---------- Header additions ---------- */

.rh-tel{font-size:14px;color:#c2cbd1;white-space:nowrap;border-bottom:1px solid transparent;padding-bottom:1px}
.rh-tel:hover{color:var(--yellow);border-color:var(--yellow)}
.rh-header-tel{display:none}
nav .rh-menu{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:32px}
nav .rh-menu li{position:relative}
nav .rh-menu a{display:block;padding:6px 0;border-bottom:1px solid transparent}
nav .rh-menu a:hover,nav .rh-menu .current-menu-item>a,nav .rh-menu .current-menu-ancestor>a{color:var(--yellow);border-color:var(--yellow)}
nav .rh-menu .sub-menu{list-style:none;margin:0;padding:10px 0;position:absolute;top:100%;left:-18px;min-width:210px;background:var(--navy);border:1px solid var(--darkline);border-radius:5px;opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .18s,transform .18s,visibility .18s;z-index:60}
nav .rh-menu li:hover>.sub-menu,nav .rh-menu li:focus-within>.sub-menu{opacity:1;visibility:visible;transform:none}
nav .rh-menu .sub-menu a{padding:9px 18px;border-bottom:0;font-size:14px}
nav .rh-menu .sub-menu a:hover{background:#3d4f5c;color:var(--yellow)}

/* ---------- Footer ---------- */

.rh-footer{background:var(--navy);color:#d3dbe0;border-top:1px solid var(--darkline);padding:66px 0 0}
.rh-footer-top{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:56px;padding-bottom:52px}
.rh-footer-brand p{font-size:14px;line-height:1.75;color:#b6c2ca;margin:22px 0 0;max-width:38ch}
.rh-footer-brand .footer-logo{width:180px}
.rh-footer-contact a{border-bottom:1px solid #ffffff44;line-height:2.1}
.rh-footer-contact a:hover{color:var(--yellow);border-color:var(--yellow)}
.rh-footer-col h2{font-size:12px;letter-spacing:.11em;text-transform:uppercase;font-weight:500;color:var(--yellow);margin:0 0 18px}
.rh-footer-col ul{list-style:none;margin:0;padding:0;display:grid;gap:11px}
.rh-footer-col a{font-size:14px;color:#c2cbd1;border-bottom:1px solid transparent}
.rh-footer-col a:hover{color:white;border-color:#ffffff55}
.rh-footer-base{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:12px;color:#9fadb6;border-top:1px solid var(--darkline);padding-top:22px;padding-bottom:26px}

@media(max-width:1050px){
  .rh-footer-top{grid-template-columns:1fr 1fr;gap:44px}
  .rh-tel{display:none}
  nav .rh-menu{gap:24px}
}

@media(max-width:760px){
  .rh-footer{padding-top:48px}
  .rh-footer-top{grid-template-columns:1fr;gap:34px;padding-bottom:36px}
  .rh-footer-brand p{max-width:none}
  .rh-header-tel{display:block}
  nav .rh-menu{flex-direction:column;align-items:start;gap:20px;width:100%}
  nav .rh-menu .sub-menu{position:static;opacity:1;visibility:visible;transform:none;background:transparent;border:0;padding:12px 0 0 16px;min-width:0;display:grid;gap:12px}
  nav .rh-menu .sub-menu a{padding:0;font-size:14px;color:#b6c2ca}
  nav .rh-menu .sub-menu a:hover{background:transparent}
}

/* ---------- Answer block (AEO) ---------- */

.rh-answer{background:var(--soft);border-bottom:1px solid var(--line)}
.rh-answer .wrap{display:grid;grid-template-columns:auto 1fr;gap:34px;align-items:start;padding:34px 0}
.rh-answer h2{font-size:12px;letter-spacing:.11em;text-transform:uppercase;font-weight:500;color:var(--muted);margin:5px 0 0;white-space:nowrap}
.rh-answer p{margin:0;font-size:18px;line-height:1.7;color:var(--ink);max-width:78ch;position:relative;padding-left:26px}
.rh-answer p:before{content:'';position:absolute;left:0;top:4px;bottom:4px;width:3px;background:var(--yellow);border-radius:2px}

/* ---------- WhatsApp floating contact ---------- */

.rh-whatsapp{position:fixed;right:22px;bottom:22px;z-index:70;display:inline-flex;align-items:center;gap:0;height:56px;padding:0 14px;border-radius:28px;background:#25d366;color:#fff;box-shadow:0 6px 22px #0000002e;transition:gap .22s ease,padding .22s ease,background .2s ease,box-shadow .2s ease;overflow:hidden}
.rh-whatsapp svg{flex:none}
.rh-whatsapp-label{max-width:0;opacity:0;font-size:15px;font-weight:500;white-space:nowrap;transition:max-width .22s ease,opacity .18s ease}
.rh-whatsapp:hover,.rh-whatsapp:focus-visible{background:#1fb355;gap:10px;padding:0 20px 0 16px;box-shadow:0 8px 26px #0000003d}
.rh-whatsapp:hover .rh-whatsapp-label,.rh-whatsapp:focus-visible .rh-whatsapp-label{max-width:110px;opacity:1}
.rh-whatsapp:focus-visible{outline:3px solid var(--navy);outline-offset:3px}

@media(max-width:760px){
  .rh-answer .wrap{grid-template-columns:1fr;gap:12px;padding:26px 0}
  .rh-answer h2{margin:0}
  .rh-answer p{font-size:16.5px;padding-left:18px}
  .rh-whatsapp{right:16px;bottom:16px;height:52px;padding:0 12px}
  .rh-whatsapp:hover .rh-whatsapp-label,.rh-whatsapp:focus-visible .rh-whatsapp-label{max-width:0;opacity:0}
  .rh-whatsapp:hover,.rh-whatsapp:focus-visible{gap:0;padding:0 12px}
}

@media(prefers-reduced-motion:reduce){
  .rh-whatsapp,.rh-whatsapp-label{transition:none}
}

/* ---------- Showcase ---------- */

.rh-showcase{padding:66px 0}
.rh-showcase h2{font-size:clamp(26px,2.5vw,34px);letter-spacing:-.03em;margin:0 0 12px}
.rh-showcase .rh-note{margin:0 0 30px}

/* ---------- Blog ---------- */

.rh-blog-filters{border-bottom:1px solid var(--line);background:white}
.rh-blog-filters .wrap{display:flex;flex-wrap:wrap;gap:8px;padding:20px 0}
.rh-chip{display:inline-flex;align-items:center;min-height:40px;padding:8px 16px;border:1px solid var(--line);border-radius:4px;font-size:13px;color:var(--navy);transition:background .18s,color .18s,border-color .18s}
.rh-chip:hover{border-color:var(--navy)}
.rh-chip.is-active{background:var(--navy);border-color:var(--navy);color:white}

.rh-blog-index{padding:66px 0}
.rh-post-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:6px;overflow:hidden}
.rh-post-card{background:white;transition:background .18s}
.rh-post-card:hover{background:var(--soft)}
.rh-post-card>a{display:flex;flex-direction:column;gap:10px;height:100%;padding:32px 30px 30px}
.rh-post-media{display:block;margin:-32px -30px 8px;border-bottom:1px solid var(--line)}
.rh-post-media img{width:100%;height:auto;aspect-ratio:1.6;object-fit:cover}
.rh-post-meta{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--muted)}
.rh-post-cat{display:inline-block;padding:3px 9px;border:1px solid var(--line);border-radius:3px;letter-spacing:.04em;text-transform:uppercase;font-size:10.5px;color:var(--navy)}
.rh-post-card h2{font-size:21px;font-weight:500;letter-spacing:-.025em;line-height:1.32;margin:2px 0 0}
.rh-post-card p{font-size:14.5px;line-height:1.72;color:var(--muted);margin:0}
.rh-post-card .rh-card-more{margin-top:auto;padding-top:12px;font-size:13px;color:var(--navy)}

.pagination,.nav-links{display:flex;flex-wrap:wrap;gap:7px;margin-top:46px;justify-content:center}
.pagination .page-numbers,.nav-links .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:8px 14px;border:1px solid var(--line);border-radius:4px;font-size:14px}
.pagination .page-numbers:hover,.nav-links .page-numbers:hover{border-color:var(--navy)}
.pagination .current,.nav-links .current{background:var(--navy);border-color:var(--navy);color:white}
.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}

@media(max-width:760px){
  .rh-blog-index{padding:46px 0}
  .rh-post-grid{grid-template-columns:1fr}
  .rh-post-card>a{padding:26px 22px 24px}
  .rh-post-media{margin:-26px -22px 6px}
  .rh-post-card h2{font-size:20px}
  .rh-blog-filters .wrap{padding:16px 0;gap:6px}
  .rh-chip{padding:7px 13px;font-size:12.5px}
}


/* ---------- v1.2a: footer alignment ----------
   refined.css sets "footer .wrap{display:flex;align-items:center}",
   which out-specifies .rh-footer-top and vertically centres the
   columns. These rules restore the grid and align everything to the
   top of the row. */

.rh-footer .rh-footer-top{
  display:grid;
  grid-template-columns:1.6fr 1fr 1fr 1fr;
  gap:56px;
  align-items:start;
  justify-content:stretch;
  padding-bottom:52px;
}
.rh-footer .rh-footer-top>*{align-self:start}
.rh-footer .rh-footer-brand{margin:0}
.rh-footer .rh-footer-col h2{margin-top:0}
.rh-footer .rh-footer-base{
  display:flex;
  flex-direction:row;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}
@media(max-width:1050px){
  .rh-footer .rh-footer-top{grid-template-columns:1fr 1fr;gap:44px}
}
@media(max-width:760px){
  .rh-footer .rh-footer-top{grid-template-columns:1fr;gap:34px;padding-bottom:36px}
  .rh-footer .rh-footer-base{flex-direction:column;align-items:flex-start;gap:10px}
}

/* ==========================================================
   v1.2 — hero gradient, full-width header, post layout
   ========================================================== */

/* ---------- Hero: darker blue gradient, white text ---------- */

.hero,
.rh-page-hero{
  background:linear-gradient(135deg,#16222c 0%,#22323f 42%,#2e4354 100%);
  color:#fff;
}
.hero:before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(120% 90% at 78% 0%,#3d5a70 0%,transparent 58%);
  opacity:.5;
}
.hero{position:relative;overflow:hidden}
.hero .wrap{position:relative;z-index:1}
.rh-page-hero:after{
  background:radial-gradient(circle at 30% 30%,#456179,transparent 70%);
  opacity:.45;
}
.hero h1,.rh-page-hero h1{color:#fff}
.hero-copy p,.rh-page-hero .hero-copy p{color:#dbe3e9}
.hero .eyebrow,.rh-page-hero .eyebrow{color:#c8d3db}
.hero-foot{color:#c8d3db;border-top-color:#ffffff24}

/* ---------- Full-width header bar ---------- */

.topbar{background:linear-gradient(135deg,#16222c 0%,#22323f 100%);border-bottom:1px solid #ffffff1f}
.topbar>header.wrap{width:100%;max-width:none;margin:0;padding-inline:clamp(20px,3.6vw,56px)}

@media(max-width:760px){
  .topbar>header.wrap{padding-inline:6%}
  nav{padding-inline:6%}
}

/* ---------- Post layout: centred reading measure ---------- */

.rh-post-hero .wrap{max-width:820px;margin-inline:auto}
.rh-post-hero .hero-grid{display:block;margin-top:18px}
.rh-post-hero h1{max-width:none;font-size:clamp(32px,4vw,50px);line-height:1.16}
.rh-post-hero .hero-copy{margin-top:20px}
.rh-post-hero .hero-copy p{font-size:18px;line-height:1.7;margin:0}
.rh-post-hero .rh-crumbs{justify-content:flex-start}

.rh-post-body{padding:0 0 32px}
.rh-post-body .wrap{max-width:760px;margin-inline:auto}
.rh-article{max-width:none}
.rh-article>p{font-size:18px;line-height:1.78;color:#3f4b54;margin:0 0 1.25em}
.rh-article>h2{font-size:clamp(24px,2.4vw,30px);letter-spacing:-.025em;line-height:1.25;margin:52px 0 16px;color:var(--ink)}
.rh-article>h2:first-child{margin-top:0}
.rh-article>h3{margin:36px 0 12px}
.rh-article>ul,.rh-article>ol{margin:0 0 1.4em;padding-left:0;list-style:none;display:grid;gap:12px}
.rh-article>ul>li{position:relative;padding-left:30px;font-size:17px;line-height:1.72;color:#4a565f;margin:0}
.rh-article>ul>li:before{content:'';position:absolute;left:0;top:12px;width:13px;height:2px;background:var(--yellow)}
.rh-article>ol{counter-reset:rh-ol}
.rh-article>ol>li{position:relative;padding-left:34px;font-size:17px;line-height:1.72;color:#4a565f;margin:0;counter-increment:rh-ol}
.rh-article>ol>li:before{content:counter(rh-ol);position:absolute;left:0;top:0;font-size:13px;color:var(--navy);font-weight:500}

.rh-answer--post .wrap{max-width:820px;margin-inline:auto}

.rh-post-meta-bar{border-bottom:1px solid var(--line);background:white}
.rh-post-meta-bar .wrap{max-width:760px;margin-inline:auto;display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding:18px 0;font-size:13px;color:var(--muted)}
.rh-post-meta-bar .rh-post-cat{font-size:10.5px}

.rh-post-faqs .wrap{max-width:820px;margin-inline:auto}
.rh-post-faqs .services-layout{grid-template-columns:1fr;gap:26px}
.rh-post-faqs .services-intro p{max-width:none}

@media(max-width:860px){
  .rh-post-hero .wrap,.rh-post-body .wrap,.rh-answer--post .wrap,.rh-post-meta-bar .wrap,.rh-post-faqs .wrap{max-width:none}
}
@media(max-width:760px){
  .rh-article>p{font-size:17px}
  .rh-article>h2{margin:38px 0 14px}
  .rh-article>ul>li,.rh-article>ol>li{font-size:16px}
}

/* ---------- Gallery ---------- */

.rh-gallery{padding:60px 0}
.rh-gallery h2{font-size:clamp(26px,2.5vw,34px);letter-spacing:-.03em;margin:0 0 12px}
.rh-gallery .rh-note{margin:0 0 28px}
.rh-gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}
.rh-gallery-item{margin:0;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--soft)}
.rh-gallery-item img{width:100%;height:auto;display:block}
@media(max-width:760px){.rh-gallery{padding:44px 0}.rh-gallery-grid{grid-template-columns:1fr;gap:16px}}

/* ---------- Services hub ---------- */

.rh-services-index{padding:12px 0 72px}
.rh-service-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(288px,1fr));gap:2px;background:var(--line);border:1px solid var(--line)}
.rh-service-card{
  display:flex;flex-direction:column;gap:10px;
  background:#fff;padding:32px 30px 28px;text-decoration:none;color:inherit;
  transition:background .18s ease,transform .18s ease;
}
.rh-service-card:hover{background:var(--soft);transform:translateY(-2px)}
.rh-service-num{font-size:11px;letter-spacing:.14em;color:var(--muted);font-variant-numeric:tabular-nums}
.rh-service-card strong{font-size:21px;font-weight:500;letter-spacing:-.02em;line-height:1.2;color:var(--ink)}
.rh-service-card:hover strong{color:var(--navy)}
.rh-service-lede{font-size:15px;line-height:1.65;color:#55616a;flex:1}
.rh-service-card .rh-card-more{font-size:13px;color:var(--navy);border-top:1px solid var(--line);padding-top:14px;margin-top:6px}
.rh-service-card:hover .rh-card-more{color:var(--ink)}

@media(max-width:760px){
  .rh-services-index{padding:8px 0 52px}
  .rh-service-grid{grid-template-columns:1fr}
  .rh-service-card{padding:26px 22px 24px}
}

/* ---------- Portfolio card without a screenshot yet ---------- */

.rh-card-media.is-empty{display:flex;align-items:center;justify-content:center;padding:22px;background:linear-gradient(145deg,#25323c,#16222c)}
.rh-card-placeholder{
  font-size:clamp(17px,2vw,23px);font-weight:500;letter-spacing:-.02em;line-height:1.25;
  color:#fff;text-align:center;max-width:14ch;
}
.rh-card-media.is-empty:after{content:'';position:absolute}
.rh-card:hover .rh-card-media.is-empty{background:linear-gradient(145deg,#2e4354,#1b2934)}

/* ---------- Sticky offsets ----------
   The header is 95px and sticky, so anything else that sticks has to
   clear it with room to breathe rather than butting up against it. */

:root{--rh-header-h:95px;--rh-sticky-gap:52px}

.rh-block h2,
.rh-case-side{top:calc(var(--rh-header-h) + var(--rh-sticky-gap))}

:where(h1,h2,h3,[id]){scroll-margin-top:calc(var(--rh-header-h) + 24px)}

@media(max-width:900px){
  .rh-block h2,.rh-case-side{position:static;top:auto}
}

/* ---------- Intro: share the section rail ----------
   A 62ch column alone on the left of a 1200px wrap reads as a mistake.
   Putting it in the same two-column rhythm as the sections below gives
   the whole page one text spine, with labels and headings on the left. */

.rh-intro{
  max-width:none;
  display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;align-items:start;
}
.rh-intro-label{
  font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);margin:9px 0 0;
}
.rh-intro-body{max-width:62ch}
.rh-intro-body p{font-size:19px;line-height:1.72;color:var(--ink);margin:0 0 1.15em}
.rh-intro-body p:last-child{margin-bottom:0}
.rh-intro-body a{border-bottom:1px solid var(--line);padding-bottom:1px}
.rh-intro-body a:hover{border-color:var(--navy)}

@media(max-width:900px){
  .rh-intro{grid-template-columns:1fr;gap:12px}
  .rh-intro-label{margin:0}
}

/* ---------- Breadcrumbs: one size ----------
   .rh-crumbs is a <nav>, so the header's `nav a` rule was pushing the
   links to 14px while the separators and current page stayed at 12px. */

.rh-crumbs,
.rh-crumbs a,
.rh-crumbs span{font-size:12px;line-height:1.5;font-weight:400;letter-spacing:.02em}

/* ---------- More sites grid ---------- */

.rh-more{background:var(--soft);padding:72px 0 78px}
.rh-more-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:18px;margin:0 0 30px}
.rh-more h2{font-size:clamp(26px,2.5vw,34px);letter-spacing:-.03em;margin:0}
.rh-more-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(246px,1fr));gap:26px 22px}
.rh-more-card{display:flex;flex-direction:column;min-width:0}
.rh-more-shot{display:block;border:1px solid var(--line);border-radius:5px;overflow:hidden;background:linear-gradient(145deg,#fff,#eef1f4);aspect-ratio:1.4;position:relative}
.rh-more-shot img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block;transition:transform .45s ease}
.rh-more-card:hover .rh-more-shot img{transform:scale(1.03)}
.rh-more-shot--empty{display:flex;align-items:center;justify-content:center;padding:18px;background:linear-gradient(145deg,#25323c,#16222c)}
.rh-more-shot--empty span{color:#fff;font-size:15px;font-weight:500;text-align:center;line-height:1.3}
.rh-more-tag{position:absolute;left:10px;top:10px;background:var(--yellow);color:var(--navy);font-size:10px;letter-spacing:.1em;text-transform:uppercase;padding:4px 8px;border-radius:3px;font-weight:500}
.rh-more-body{margin-top:13px}
.rh-more-body strong{display:block;font-size:17px;font-weight:500;letter-spacing:-.02em;line-height:1.3}
.rh-more-card:hover .rh-more-body strong{color:var(--navy)}
.rh-more-body p{margin:6px 0 0;font-size:13.5px;line-height:1.6;color:var(--muted)}
.rh-more-domain{display:block;margin-top:7px;font-size:12px;color:#8894a0}

@media(max-width:760px){
  .rh-more{padding:52px 0}
  .rh-more-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:20px 14px}
  .rh-more-body strong{font-size:15px}
  .rh-more-body p{display:none}
}

/* ---------- Breadcrumbs: align on the baseline ----------
   The header's nav-link rule gives links a 44px touch target with 9px
   of top padding. Inside .rh-crumbs — which is also a <nav> — that made
   the links 44px tall while the separators stayed 18px, so nothing sat
   on the same line. Reset the box and align the row on the baseline. */

.rh-crumbs{align-items:baseline}
.rh-crumbs a,
.rh-crumbs span{
  display:block;min-height:0;height:auto;margin:0;
  font-size:12px;line-height:18px;font-weight:400;letter-spacing:.02em;
}
.rh-crumbs a{padding:0 0 1px;border-bottom:1px solid transparent}
.rh-crumbs a:hover{color:var(--yellow);border-bottom-color:var(--yellow)}

/* ---------- Article pages: one measure, one left edge ----------
   The hero sat on an 820px column, the answer block on the full
   1360px page rail, and the body on 760px — three different left
   edges down one article. Everything now shares the body measure. */

.rh-post-hero .wrap,
.rh-post-meta-bar .wrap,
.rh-post-body .wrap,
.rh-post-faqs .wrap,
.single .rh-answer .wrap{max-width:760px;margin-inline:auto}

.rh-post-hero h1{max-width:none}
.rh-post-meta-bar .wrap{justify-content:flex-start}

/* At this width the label cannot sit beside the text, so it stacks. */
.single .rh-answer .wrap{grid-template-columns:1fr;gap:14px;padding:38px 0 40px}
.single .rh-answer h2{margin:0}

/* Room between the summary and the first heading of the article. */
.single .rh-post-body{padding-top:56px}
.rh-article > h2:first-child{margin-top:0}

@media(max-width:860px){
  .rh-post-hero .wrap,.rh-post-meta-bar .wrap,.rh-post-body .wrap,
  .rh-post-faqs .wrap,.single .rh-answer .wrap{max-width:none}
}

/* ---------- Header: align the row on the text baseline ----------
   The logo, menu, phone number and CTA are all different heights, so
   centring the flex row left every text baseline in a slightly
   different place. Baseline alignment lines the words up; the logo
   opts back out to stay optically centred. */

.topbar > header{align-items:baseline}
.topbar > header > a:first-child,
.topbar > header > button{align-self:center}

/* The nav carried an explicit align-self:center, which opted it out of
   the baseline row and left the menu words sitting below the phone
   number and the button. */
.topbar > header > nav{align-self:baseline}
/* Baseline alignment is unaffected by padding, so the links keep a
   full 44px hit area — and the dropdown keeps something to hang from. */
.topbar > header > nav .rh-menu > li > a{padding-block:10px;min-height:44px;line-height:24px}

/* ---------- More sites: category label under each image ---------- */

.rh-more-cat{
  display:block;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);margin:0 0 6px;
}
.rh-more-card:hover .rh-more-cat{color:var(--navy)}
@media(max-width:760px){
  .rh-more-cat{font-size:9.5px;letter-spacing:.1em}
}


/* ---------- RH-THUMB-RATIO: cards keep the capture's own 1348x842 ratio, never cropped ---------- */
.rh-card-media,.rh-more-shot{aspect-ratio:1348/842;padding:0;overflow:hidden;transition:transform .35s ease}
.rh-card-media img,.rh-more-shot img{width:100%;height:100%;object-fit:contain;object-position:center;display:block;border:0;border-radius:0}
.rh-card:hover .rh-card-media img,.rh-card:focus-visible .rh-card-media img,.rh-more-card:hover .rh-more-shot img{transform:none}
.rh-card:hover .rh-card-media,.rh-card:focus-visible .rh-card-media,.rh-more-card:hover .rh-more-shot{transform:translateY(-4px)}
.rh-card-media.is-empty,.rh-more-shot--empty{padding:18px}
.rh-card-body .rh-more-cat{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 7px}
.rh-card-body .rh-more-domain{font-size:12px;color:#8894a0;margin-top:7px}


/* ---------- RH-WORK-GRID-4: four across, with room to breathe ---------- */
.rh-work-index .rh-card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:72px 52px}
.rh-more-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:64px 44px}
.rh-work-index,.rh-more{padding-block:96px}
.rh-work-index .rh-card-body,.rh-more-body{margin-top:20px}
@media (max-width:1180px){.rh-work-index .rh-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:60px 40px}.rh-more-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:54px 36px}}
@media (max-width:880px){.rh-work-index .rh-card-grid,.rh-more-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:46px 28px}.rh-work-index,.rh-more{padding-block:72px}}
@media (max-width:560px){.rh-work-index .rh-card-grid,.rh-more-grid{grid-template-columns:1fr;gap:40px}}
.rh-work-index .rh-card-body strong{font-size:18px}
.rh-more-body strong{font-size:18px}


/* ---------- RH-HOME-THUMB: homepage cards keep the capture's own ratio, never cropped ---------- */
.work-card .screen-frame{aspect-ratio:1348/842;overflow:hidden}
.work-card.image-project .work-preview .screen-frame img,
.work-card .work-preview .screen-frame img{width:100%;height:100%;max-height:none;aspect-ratio:auto;object-fit:contain;object-position:center}


/* ---------- RH-CASE-FIGURE: case study hero keeps the capture's ratio ---------- */
.rh-case-figure{aspect-ratio:1348/842;overflow:hidden}
.rh-case-figure img{width:100%;height:100%;max-height:none;aspect-ratio:auto;object-fit:contain;object-position:center;display:block}


/* ---------- RH-HEADER-CENTRE: header sits on the same centred container as the page ---------- */
.topbar > header.wrap{width:calc(100% - 112px);max-width:1360px;margin-inline:auto;padding-inline:0}
@media (max-width:1100px){.topbar > header.wrap{width:calc(100% - 64px);padding-inline:0}}
@media (max-width:760px){.topbar > header.wrap{width:calc(100% - 40px);padding-inline:0}}


/* ---------- RH-CASE-TAG: mark the sites that have a case study behind them ---------- */
.rh-card-media{position:relative}
.rh-tag-case{background:var(--navy);color:#fff;left:12px;top:12px}
.rh-card:hover .rh-tag-case,.rh-card:focus-visible .rh-tag-case{background:var(--yellow);color:var(--navy)}

/* ---------- RH-HEADER-OVERLAY: header sits on the hero, navy bar fades in on scroll ---------- */
:root{--rh-head-h:94px}
@media (max-width:760px){:root{--rh-head-h:78px}}
.topbar>header{align-items:center}
.topbar>header>a:first-child,.topbar>header>button,.topbar>header>nav,.topbar>header>.rh-tel,.topbar>header>.pill{align-self:center}
.admin-bar .topbar{top:32px}
@media (max-width:782px){.admin-bar .topbar{top:0}}
body:has(.topbar + .hero,.topbar + main > .hero:first-child) .topbar{background:transparent;border-bottom:0;margin-bottom:calc(-1 * var(--rh-head-h))}
body:has(.topbar + .hero,.topbar + main > .hero:first-child) .topbar>header{height:var(--rh-head-h);min-height:0;border-bottom:0}
body:has(.topbar + .hero,.topbar + main > .hero:first-child) .topbar::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(135deg,#16222c 0%,#22323f 100%);box-shadow:0 10px 30px #03081140;opacity:0;transition:opacity .3s ease}
body:has(.topbar + .hero,.topbar + main > .hero:first-child) .topbar.is-scrolled::before,body:has(.topbar + .hero,.topbar + main > .hero:first-child) .topbar:has(nav.open)::before{opacity:1}
.topbar + .hero > .wrap,.topbar + main > .hero:first-child > .wrap{margin-top:var(--rh-head-h)}
@media (prefers-reduced-motion:reduce){.topbar::before{transition:none}}


/* ---------- RH-HOME-HERO: single label, yellow full stops ---------- */
.hero-label>.eyebrow:only-child{display:inline}
.hero.type-opening h1 .rh-dot{color:var(--yellow);font-weight:600}


/* ---------- RH-SERVICE-LINKS: links in the homepage service accordions sit on their own line ---------- */
.services-list details p .text-link{display:block;width:fit-content;margin-top:14px;line-height:1.8}


/* ---------- RH-QUOTES: testimonial slider ---------- */
.rh-quote-track{display:grid}
.rh-quote-slide{grid-area:1/1;opacity:0;visibility:hidden;transition:opacity .45s ease,visibility .45s}
.rh-quote-slide.is-active{opacity:1;visibility:visible}
.rh-quotes blockquote{font-size:clamp(1.3rem,2.1vw,2rem)}
.rh-quote-controls{display:flex;align-items:center;gap:18px;margin-top:30px}
.rh-quote-controls button{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:1px solid var(--navy);border-radius:50%;background:transparent;color:var(--navy);cursor:pointer;transition:background .2s,color .2s}
.rh-quote-controls button:hover,.rh-quote-controls button:focus-visible{background:var(--navy);color:var(--yellow)}
.rh-quote-controls svg{width:20px;height:20px}
.rh-quote-count{font-size:.8125rem;letter-spacing:.08em;color:var(--navy);min-width:4.5em;text-align:center}
@media (max-width:760px){.rh-quotes blockquote{font-size:1.25rem}.rh-quote-controls{margin-top:22px}}
@media (prefers-reduced-motion:reduce){.rh-quote-slide{transition:none}}


/* ---------- RH-CASE-TAG-BELOW: case study badge sits right, under the thumbnail ---------- */
.rh-work-index .rh-card-body{position:relative}
.rh-work-index .rh-card-body>.rh-tag-case{position:absolute;top:0;right:0;left:auto;margin:0;display:inline-block;font-size:10px;line-height:1.4;color:#fff}
.rh-work-index .rh-card:hover .rh-card-body>.rh-tag-case,.rh-work-index .rh-card:focus-visible .rh-card-body>.rh-tag-case{color:var(--navy)}
.rh-work-index .rh-card-body .rh-more-cat{padding-right:100px}


/* ---------- RH-AI-GRID: AI builds on the AI website builds page ---------- */
@media (min-width:1181px){.rh-more--ai .rh-more-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}


/* ---------- RH-CASE-FRAME: even frame around the case study capture ---------- */
.rh-case-figure{position:relative;aspect-ratio:auto;overflow:visible;padding:32px;margin-bottom:96px}
.rh-case-figure img{height:auto;aspect-ratio:1348/842;object-fit:cover;border:1px solid #d3dbe0;border-radius:5px}
.rh-case-figure figcaption{position:absolute;top:100%;left:0;right:0;padding:14px 2px 0}
@media (max-width:760px){.rh-case-figure{padding:14px;margin-bottom:72px}.rh-case-figure figcaption{padding-top:10px}}


/* ---------- RH-CRUMBS-MOBILE: breadcrumbs are a <nav>, so keep the mobile menu panel styles off them ---------- */
@media (max-width:760px){
.rh-crumbs{position:static;inset:auto;display:flex;flex-direction:row;flex-wrap:wrap;gap:6px 9px;width:auto;max-height:none;padding:0;border:0;background:none;box-shadow:none;overflow:visible;visibility:visible;opacity:1;transform:none}
.rh-crumbs a{display:inline;width:auto;min-height:0;padding:0 0 1px;border:0;border-bottom:1px solid transparent;background:none}
}


/* ---------- RH-SHOWCASE: live builds with their captures ---------- */
.rh-showcase-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:56px 44px;margin-top:36px}
.rh-showcase-card .rh-card-body{margin-top:20px}
.rh-showcase-card .rh-card-body strong{font-size:19px}
.rh-showcase-card .rh-card-body>.rh-showcase-note{font-size:14.5px;line-height:1.7;margin-top:8px}
.rh-showcase-card .rh-card-more{display:inline-block;margin-top:12px;padding-top:0;font-size:13px;color:var(--navy);border-bottom:1px solid var(--line)}
.rh-showcase-card:hover .rh-card-more{border-color:var(--navy)}
@media (max-width:1180px){.rh-showcase-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:48px 32px}}
@media (max-width:560px){.rh-showcase-grid{grid-template-columns:1fr;gap:40px}}


/* ---------- RH-HOME-CIRCLE: homepage hero carries the inner-page circle ---------- */
.hero.type-opening::after{content:'';position:absolute;right:-22vw;top:-26vw;width:min(62vw,1100px);height:min(62vw,1100px);border-radius:50%;background:radial-gradient(circle at 30% 30%,#456179,transparent 70%);opacity:.45;pointer-events:none}
@media (max-width:760px){.hero.type-opening::after{display:none}}


/* ---------- RH-HOME-FULL: homepage hero fills the browser window ---------- */
.hero.type-opening{display:flex;flex-direction:column;min-height:100vh;min-height:100svh}
.admin-bar .hero.type-opening{min-height:calc(100vh - 32px);min-height:calc(100svh - 32px)}
.hero.type-opening>.wrap{flex:1 0 auto;display:flex;flex-direction:column;justify-content:center}
@media (max-width:782px){.admin-bar .hero.type-opening{min-height:calc(100svh - 46px)}}


/* ---------- RH-FUNNELS: full-length funnel captures in scrolling frames ---------- */
.rh-showcase-card .rh-card-media{aspect-ratio:auto}
.rh-showcase-card .rh-card-media img{height:auto}
.rh-funnel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px 44px;margin-top:36px}
.rh-funnel{margin:0;display:flex;flex-direction:column;gap:18px}
.rh-funnel-frame{height:640px;overflow-y:auto;overscroll-behavior:contain;border:1px solid var(--line);border-radius:6px;background:linear-gradient(145deg,var(--soft),#e9eef1);padding:14px}
.rh-funnel-frame:focus-visible{outline:2px solid var(--yellow);outline-offset:3px}
.rh-funnel-frame img{display:block;width:100%;height:auto;border:1px solid #d3dbe0;border-radius:4px}
.rh-funnel figcaption{display:flex;flex-direction:column;gap:6px}
.rh-funnel figcaption strong{font-size:19px;font-weight:500;letter-spacing:-.02em}
.rh-funnel figcaption span{font-size:14.5px;line-height:1.7;color:var(--muted);max-width:52ch}
@media (max-width:760px){.rh-funnel-grid{grid-template-columns:1fr;gap:40px}.rh-funnel-frame{height:520px;padding:10px}}


/* ---------- RH-PERSON-LINK: designer credit links ---------- */
.rh-person-link{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;transition:color .2s}
.rh-person-link:hover,.rh-person-link:focus-visible{color:var(--navy);text-decoration-color:var(--yellow)}
.dark .rh-person-link:hover,.dark .rh-person-link:focus-visible,.rh-page-hero .rh-person-link:hover{color:var(--yellow)}


/* ---------- RH-MORE-CASE: case study badge in the "More sites" grid ---------- */
.rh-more-body{position:relative}
.rh-more-body>.rh-tag-case{position:absolute;top:0;right:0;left:auto;margin:0;display:inline-block;font-size:10px;line-height:1.4;color:#fff}
.rh-more-card:hover .rh-more-body>.rh-tag-case,.rh-more-card:focus-visible .rh-more-body>.rh-tag-case{background:var(--yellow);color:var(--navy)}
.rh-more-card:has(.rh-tag-case) .rh-more-cat{padding-right:96px}


/* ---------- RH-HOME-HEADLINE: headline scales with the viewport ---------- */
.hero.type-opening h1{font-size:clamp(2.25rem,7.2vw,7rem);line-height:1.1;letter-spacing:-.04em}
.hero.type-opening h1 .headline-first{font-weight:300}
.hero.type-opening h1 .headline-second{font-weight:500}
.hero.type-opening h1 .rh-dot{font-weight:500}
.hero.type-opening h1 .headline-second{margin-top:.04em}
@media (max-width:760px){.hero.type-opening .hero-lower{align-items:flex-start}.hero.type-opening .hero-cta{align-self:flex-start;justify-self:start;margin-inline:0}}


/* ---------- RH-FEATURE-SHOT: featured project shows the screenshot edge to edge ---------- */
.portfolio-wall .featured-project .work-preview{padding:0;background:none;height:auto;min-height:0;aspect-ratio:1348/842;overflow:hidden;border-radius:18px}
.portfolio-wall .featured-project .work-preview .screen-frame{display:block;width:100%;height:100%;aspect-ratio:auto;border:1px solid var(--line);border-radius:18px;box-shadow:none;background:#fff;transform:none}
.portfolio-wall .featured-project .work-preview .screen-frame img{width:100%;height:100%;object-fit:cover;object-position:top center}


/* ---------- RH-WORK-HEAD-SPACE: spacing once the filter bar was removed ---------- */
.work-section .work-heading{margin-bottom:clamp(40px,5vw,72px)}
/* Comparison / price tables inside articles */
.rh-article table{width:100%;border-collapse:collapse;margin:28px 0 1.6em;font-size:16px;line-height:1.5}
.rh-article caption{text-align:left;font-weight:500;color:var(--ink);margin-bottom:10px}
.rh-article th,.rh-article td{padding:12px 14px;border-bottom:1px solid rgba(48,62,72,.15);text-align:left;vertical-align:top}
.rh-article thead th{color:var(--ink);font-weight:500;border-bottom:2px solid var(--yellow)}
.rh-article td{color:#3f4b54}
@media (max-width:640px){.rh-article table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;font-size:15px}.rh-article th,.rh-article td{padding:10px;min-width:120px}}


/* === Hero wall (homepage): perspective wall of client work, two columns moving in opposite directions === */
.hero.type-opening h1 .headline-first{font-weight:500}
.hero.type-opening .hero-lower{display:flex;flex-direction:column;align-items:flex-start;gap:0}
.hero.type-opening .hero-lower>p{margin:0 0 34px;max-width:560px}
.hero.type-opening .hero-cta{margin-top:0}
.hero.type-opening .hero-wall{position:absolute;inset:0;z-index:0;perspective:1500px;perspective-origin:75% 45%;pointer-events:none;opacity:.3;
  -webkit-mask-image:linear-gradient(90deg,transparent 12%,#000 80%),linear-gradient(180deg,transparent 0,#000 12%,#000 85%,transparent 100%);
  mask-image:linear-gradient(90deg,transparent 12%,#000 80%),linear-gradient(180deg,transparent 0,#000 12%,#000 85%,transparent 100%);
  -webkit-mask-composite:source-in;mask-composite:intersect}
.hero.type-opening .hero-wall-cols{--g:22px;--w:clamp(220px,32vw,462px);position:absolute;top:50%;right:-4%;height:240%;display:flex;gap:var(--g);transform-style:preserve-3d;
  transform:translateY(-50%) rotateX(40deg) rotateY(-29deg) rotateZ(13deg)}
.hero-wall-col{width:var(--w);overflow:hidden}
.hero-wall-track{display:flex;flex-direction:column;gap:var(--g);will-change:transform}
.hero-wall-col.up .hero-wall-track{animation:rhWallUp 213s linear infinite}
.hero-wall-col.down .hero-wall-track{animation:rhWallDown 213s linear infinite}
@keyframes rhWallUp{from{transform:translateY(0)}to{transform:translateY(calc(-50% - var(--g) / 2))}}
@keyframes rhWallDown{from{transform:translateY(calc(-50% - var(--g) / 2))}to{transform:translateY(0)}}
.hero-wall-shot{flex:none;border-radius:8px;overflow:hidden;background:#dfe4ec;box-shadow:0 20px 40px -20px #000}
.hero-wall-shot::before{content:'';display:block;height:14px;background:#dfe4ec}
.hero-wall-shot img{display:block;width:100%;height:auto;filter:saturate(.75)}
@media (prefers-reduced-motion:reduce){.hero-wall-track{animation:none!important}}
@media (min-width:601px) and (max-width:1024px){
  .hero.type-opening .hero-wall{perspective-origin:80% 45%}
  .hero.type-opening .hero-wall-cols{--w:clamp(250px,36vw,462px);--g:18px;right:-10%;height:220%}
}
@media (max-width:600px){
  .hero.type-opening .hero-wall{opacity:.18;-webkit-mask-image:linear-gradient(90deg,transparent 30%,#000 75%);mask-image:linear-gradient(90deg,transparent 30%,#000 75%)}
  .hero.type-opening .hero-wall-cols{--g:12px;--w:254px;right:-45%;top:60%}
}


/* === Hero heading tags (eyebrow is the H1, headline is an H2) — visual output unchanged === */
.hero.type-opening h1.eyebrow{font-family:inherit;font-size:13px;font-weight:400;line-height:1.6;letter-spacing:.65px;text-transform:uppercase;color:#c8d3db;margin:0;padding:0;max-width:none;display:block;text-align:start}
.hero.type-opening h1.eyebrow::before{display:none}
/* headline rules mirrored from every stylesheet, h1 -> h2.hero-title, in original cascade order */
.hero h2.hero-title{font-size:clamp(42px,5.3vw,72px);letter-spacing:-.04em;line-height:1.14;margin:0;font-weight:500}
.hero h2.hero-title span{color:var(--yellow)}
@media(max-width:1050px){.hero h2.hero-title{font-size:54px}}
@media(max-width:760px){.hero h2.hero-title{font-size:clamp(36px,7.5vw,54px);line-height:1.2;letter-spacing:-.035em}}
.hero h2.hero-title{font-size:clamp(42px,4.8vw,66px)}
@media(max-width:1050px) and (min-width:761px){.hero h2.hero-title{font-size:48px}}
@media(max-width:760px){.hero h2.hero-title{font-size:clamp(36px,7.3vw,54px)}}
.hero h2.hero-title{font-size:clamp(3rem,5.4vw,5.15rem);font-weight:400;letter-spacing:-.045em;line-height:1.12;margin:0}
.hero h2.hero-title span{color:white}
@media(max-width:1100px){.hero h2.hero-title{font-size:clamp(2.7rem,5.4vw,4.5rem)}}
@media(max-width:760px){.hero h2.hero-title{font-size:clamp(2rem,7.6vw,3.6rem);line-height:1.16;letter-spacing:-.04em}}
.hero .opening-copy h2.hero-title{font-size:clamp(3.25rem,6.4vw,6.2rem);font-weight:500;line-height:1.06;letter-spacing:-.055em;margin:0 0 32px}
@media(max-width:1100px){.hero .opening-copy h2.hero-title{font-size:6.5vw}}
@media(max-width:760px){.hero .opening-copy h2.hero-title{font-size:clamp(3.2rem,12.5vw,5rem);margin-bottom:22px;line-height:1.08}}
.hero .editorial-title h2.hero-title{font-size:clamp(3.2rem,6.7vw,6.5rem);font-weight:500;letter-spacing:-.065em;line-height:1.05;margin:0 0 38px}
@media(max-width:1100px){.hero .editorial-title h2.hero-title{font-size:6.7vw}}
@media(max-width:760px){.hero .editorial-title h2.hero-title{font-size:clamp(2.5rem,10.6vw,4.7rem);line-height:1.08;margin-bottom:18px}}
.hero.type-opening h2.hero-title{font-size:clamp(3rem,7.3vw,7.1rem);font-weight:500;line-height:1.09;letter-spacing:-.06em;margin:55px 0 38px;max-width:1100px}
.hero.type-opening h2.hero-title span{color:#aeb9cc}
@media(max-width:1100px){.hero.type-opening h2.hero-title{font-size:7.7vw;margin-top:48px}}
@media(max-width:760px){.hero.type-opening h2.hero-title{font-size:clamp(2.4rem,9.7vw,4.6rem);margin:40px 0 28px;line-height:1.12;letter-spacing:-.055em}}
.hero.type-opening h2.hero-title{font-size:clamp(3rem,7.1vw,6.9rem);font-weight:400;line-height:1.13;letter-spacing:-.045em;max-width:none;margin:54px 0 44px}
.hero.type-opening h2.hero-title .headline-first{display:block;color:white;font-weight:400}
.hero.type-opening h2.hero-title .headline-second{display:block;color:white;font-size:1em;font-weight:600;letter-spacing:inherit;margin:4px 0 0}
@media(max-width:760px){.hero.type-opening h2.hero-title{font-size:clamp(1.85rem,9vw,4rem);line-height:1.16;margin:38px 0 30px;letter-spacing:-.04em}}
@media(max-width:760px){.hero.type-opening h2.hero-title .headline-second{font-size:1em;margin:6px 0 0;letter-spacing:inherit}}
.hero h2.hero-title{color:#fff}
.hero.type-opening h2.hero-title .rh-dot{color:var(--yellow);font-weight:600}
.hero.type-opening h2.hero-title{font-size:clamp(2.25rem,7.2vw,7rem);line-height:1.1;letter-spacing:-.04em}
.hero.type-opening h2.hero-title .headline-first{font-weight:300}
.hero.type-opening h2.hero-title .headline-second{font-weight:500}
.hero.type-opening h2.hero-title .rh-dot{font-weight:500}
.hero.type-opening h2.hero-title .headline-second{margin-top:.04em}
.hero.type-opening h2.hero-title .headline-first{font-weight:500}

/* === Hero: remove the shaded circle / glow === */
.hero.type-opening::before,.hero.type-opening::after{display:none}

/* === Mobile menu (<=760px): full-height panel, accordion for Services, phone + CTA inside === */
.rh-nav-cta,.rh-sub-toggle{display:none}
.menu-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media (max-width:760px){
  html.rh-menu-open,html.rh-menu-open body{overflow:hidden}
  html.rh-menu-open body .topbar{position:fixed;top:var(--wp-admin--admin-bar--height,0px);left:0;right:0;z-index:60;background:#1a233b}
  .topbar .menu{display:inline-flex;align-items:center;justify-content:center;margin-left:auto;padding:0;width:48px;min-width:48px;height:48px;min-height:48px;border:1px solid #ffffff55;border-radius:6px;background:transparent;color:#fff;cursor:pointer;position:relative;z-index:3}
  .topbar .menu[aria-expanded="true"]{background:var(--yellow);border-color:var(--yellow);color:var(--navy)}
  .menu-bars{position:relative;display:block;width:20px;height:14px}
  .menu-bars i{position:absolute;left:0;width:20px;height:2px;border-radius:2px;background:currentColor;transition:transform .25s ease,opacity .2s ease,top .25s ease}
  .menu-bars i:nth-child(1){top:0}.menu-bars i:nth-child(2){top:6px}.menu-bars i:nth-child(3){top:12px}
  .menu[aria-expanded="true"] .menu-bars i:nth-child(1){top:6px;transform:rotate(45deg)}
  .menu[aria-expanded="true"] .menu-bars i:nth-child(2){opacity:0}
  .menu[aria-expanded="true"] .menu-bars i:nth-child(3){top:6px;transform:rotate(-45deg)}
  .topbar header>a:first-child{position:relative;z-index:3}
  .topbar header nav{position:fixed;left:0;right:0;top:0;height:100vh;height:100dvh;z-index:2;display:flex;flex-direction:column;align-items:stretch;gap:0;margin:0;
    padding:calc(var(--rh-nav-top,78px) + 12px) 24px 110px;background:#111a2c;background-image:linear-gradient(180deg,#1a233b 0%,#0b1220 100%);
    overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;
    opacity:0;visibility:hidden;transform:translateY(-10px);transition:opacity .22s ease,transform .22s ease,visibility 0s linear .22s}
  .topbar header nav.open{opacity:1;visibility:visible;transform:none;transition:opacity .22s ease,transform .22s ease}
  .topbar header nav .rh-menu{display:flex;flex-direction:column;list-style:none;margin:0;padding:0;width:100%;gap:0}
  .topbar header nav .rh-menu>li{position:relative;margin:0;padding:0;border-bottom:1px solid #ffffff14}
  .topbar header nav .rh-menu>li>a{display:flex;align-items:center;min-height:62px;margin:0;padding:14px 60px 14px 0;font-size:22px;font-weight:500;line-height:1.2;letter-spacing:-.01em;color:#fff;text-decoration:none;background:none;border:0}
  .topbar header nav .rh-menu>li>a:hover,.topbar header nav .rh-menu>li>a:focus-visible{color:var(--yellow)}
  .topbar header nav .rh-sub-toggle{display:flex;align-items:center;justify-content:center;position:absolute;top:7px;right:-10px;width:48px;height:48px;margin:0;padding:0;border:0;border-radius:6px;background:transparent;color:#c8d3db;cursor:pointer;transition:transform .25s ease,color .2s}
  .topbar header nav .rh-sub-toggle:hover,.topbar header nav .rh-sub-toggle:focus-visible{color:var(--yellow)}
  .topbar header nav li.is-open>.rh-sub-toggle{transform:rotate(180deg);color:var(--yellow)}
  .topbar header nav .sub-menu{display:none;position:static;left:auto;top:auto;width:auto;list-style:none;margin:-6px 0 14px;padding:0;grid-template-columns:1fr 1fr;gap:0 18px;background:none;box-shadow:none;border:0;opacity:1;visibility:visible;transform:none}
  .topbar header nav li.is-open>.sub-menu{display:grid}
  .topbar header nav .sub-menu li{margin:0;padding:0;border:0}
  .topbar header nav .sub-menu a{display:block;margin:0;padding:11px 0;font-size:15px;font-weight:400;line-height:1.35;color:#c8d3db;text-decoration:none}
  .topbar header nav .sub-menu a:hover,.topbar header nav .sub-menu a:focus-visible{color:#fff}
  .topbar header nav .mobile-contact{display:flex;align-items:center;gap:8px;margin:auto 0 0;padding:34px 0 16px;border:0;background:none;font-size:17px;font-weight:500;line-height:1.3;color:#fff;text-decoration:none}
  .topbar header nav .mobile-contact:hover,.topbar header nav .mobile-contact:focus-visible{color:var(--yellow)}
  .topbar header nav .rh-nav-cta{display:flex;flex-direction:column;align-items:stretch;gap:14px;margin:0;padding:0}
  .topbar header nav .rh-nav-cta .rh-tel{display:inline-flex;align-items:center;gap:10px;margin:0;padding:0;font-size:17px;font-weight:500;color:#fff;text-decoration:none}
  .topbar header nav .rh-nav-cta .pill{display:inline-flex;width:100%;justify-content:space-between;margin:0}
}

/* === Hero eyebrow (H1): minimum 18px on desktop === */
@media (min-width:1025px){.hero.type-opening h1.eyebrow{font-size:18px}}

/* === Desktop Services drop-down: fit longer labels on one line === */
@media (min-width:761px){
	.topbar #navigation .sub-menu{min-width:210px;width:max-content}
	.topbar #navigation .sub-menu a{white-space:nowrap}
}

/* === Service card icons (Flaticon UIcons, thin rounded) === */
.rh-service-icon{display:flex;align-items:center;justify-content:center;width:64px;height:64px;margin:0 0 8px;border-radius:50%;background:var(--soft);color:var(--navy);transition:background .25s ease,color .25s ease}
.rh-service-icon .rh-icon{width:34px;height:34px;display:block}
.rh-service-card:hover .rh-service-icon{background:var(--navy);color:var(--yellow)}
@media (max-width:600px){.rh-service-icon{width:56px;height:56px}.rh-service-icon .rh-icon{width:30px;height:30px}}

/* === About page: all areas === */
.rh-areas-all .rh-areas-group{font-size:13px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:28px 0 14px}
.rh-areas-all h2 + .rh-areas-group{margin-top:0}
.rh-areas-all .rh-note{margin-top:26px}
.rh-areas-all .rh-note a{text-decoration:underline;text-underline-offset:2px}


/* ::: Care plans ::: */
.rh-plans{padding:24px 0 8px}
.rh-plans-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:stretch}
.rh-plan{position:relative;display:flex;flex-direction:column;padding:36px 30px 30px;border:1px solid var(--line);border-radius:10px;background:var(--white)}
.rh-plan.is-popular{border-color:var(--navy);box-shadow:0 18px 44px rgba(48,62,72,.12)}
.rh-plan-flag{position:absolute;top:-13px;left:30px;padding:5px 12px;border-radius:999px;background:var(--yellow);color:var(--navy);font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.rh-plan-name{margin:0 0 14px;font-size:24px;letter-spacing:-.02em}
.rh-plan-price{display:flex;align-items:baseline;gap:12px;margin:0 0 14px}
.rh-plan-amount{font-size:46px;font-weight:600;letter-spacing:-.04em;line-height:1;color:var(--navy)}
.rh-plan-per{font-size:13px;line-height:1.3;color:var(--muted)}
.rh-plan-tagline{margin:0 0 6px;font-weight:500}
.rh-plan-for{margin:0 0 20px;font-size:14px;color:var(--muted)}
.rh-plan-features{list-style:none;margin:0 0 28px;padding:22px 0 0;border-top:1px solid var(--line);flex:1}
.rh-plan-features li{position:relative;padding:0 0 10px 26px;font-size:15px;line-height:1.5}
.rh-plan-features li::before{content:"";position:absolute;left:0;top:7px;width:14px;height:8px;border-left:2px solid var(--navy);border-bottom:2px solid var(--navy);transform:rotate(-45deg)}
.rh-plan-cta{width:100%;justify-content:center}
.rh-plan.is-popular .rh-plan-cta{background:var(--yellow);border-color:var(--yellow);color:var(--navy)}
.rh-plan.is-popular .rh-plan-cta:hover{background:var(--navy);border-color:var(--navy);color:var(--white)}
.rh-plans-note{margin:26px 0 0;text-align:center;font-size:14px;color:var(--muted)}
@media (max-width:900px){
  .rh-plans-grid{grid-template-columns:1fr;max-width:520px;margin:0 auto}
  .rh-plan.is-popular{order:-1}
}

.rh-plans-head{max-width:720px;margin:0 0 30px}
.rh-plans-head h2{font-size:clamp(26px,2.5vw,34px);letter-spacing:-.03em;margin:0 0 12px}
.rh-plans-head p{margin:0;color:var(--muted)}
.rh-plan-setup{margin:-6px 0 14px;font-size:13px;color:var(--muted)}


/* ::: Google reviews ::: */
.rh-reviews{background:var(--navy);color:var(--white);padding:88px 0}
.rh-reviews .eyebrow{color:#c2cbd1}
.rh-reviews h2{margin:10px 0 0;font-size:clamp(30px,3.4vw,44px);letter-spacing:-.035em;line-height:1.14;color:var(--white)}
.rh-reviews-head{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;flex-wrap:wrap;margin:0 0 36px}
.rh-reviews-score{display:flex;align-items:center;gap:16px}
.rh-reviews-number{font-size:56px;font-weight:600;letter-spacing:-.05em;line-height:1;color:var(--yellow)}
.rh-reviews-count{display:block;margin-top:6px;font-size:14px;color:#c2cbd1}
.rh-stars{display:inline-flex;gap:3px;vertical-align:middle}
.rh-star{width:18px;height:18px;fill:#ffffff33}
.rh-star.is-on{fill:var(--yellow)}
.rh-star.is-half{fill:var(--yellow);opacity:.55}
.rh-reviews-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.rh-review{display:flex;flex-direction:column;gap:12px;padding:26px 26px 28px;border-radius:10px;background:var(--white);color:var(--ink)}
.rh-review .rh-star{width:16px;height:16px;fill:var(--line)}
.rh-review .rh-star.is-on{fill:var(--yellow)}
.rh-review-head{display:flex;align-items:center;gap:12px}
.rh-review-avatar{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--soft);color:var(--navy);font-size:15px;font-weight:600;letter-spacing:.02em;flex:none}
.rh-review-name{display:block;font-size:15px;line-height:1.3}
.rh-review-org{display:block;font-size:13px;color:var(--muted)}
.rh-review-org a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.rh-review-org a:hover{color:var(--navy)}
.rh-review-date{display:block;font-size:13px;color:var(--muted)}
.rh-review-text{margin:0;font-size:15px;line-height:1.6;display:-webkit-box;-webkit-line-clamp:7;-webkit-box-orient:vertical;overflow:hidden}
.rh-reviews-actions{display:flex;align-items:center;gap:26px;flex-wrap:wrap;margin:34px 0 0}
.rh-reviews .pill{background:var(--yellow);border-color:var(--yellow);color:var(--navy)}
.rh-reviews .pill:hover{background:var(--white);border-color:var(--white);color:var(--navy)}
.rh-reviews-write{color:#c2cbd1;font-size:14px;text-decoration:underline;text-underline-offset:3px}
.rh-reviews-write:hover{color:var(--white)}
@media (max-width:900px){.rh-reviews-grid{grid-template-columns:1fr 1fr}}
@media (max-width:600px){
  .rh-reviews{padding:64px 0}
  .rh-reviews-grid{grid-template-columns:1fr}
  .rh-reviews-number{font-size:44px}
}

/* Google reviews: source labelling */
.rh-review-head{justify-content:space-between;flex-wrap:wrap}
.rh-review-who{flex:1 1 auto;min-width:0}
.rh-review-head .rh-stars{flex:none}
.rh-review-head .rh-star{width:18px;height:18px}
.rh-review .rh-review-source{display:flex;align-items:center;gap:8px;margin:auto 0 0;padding:14px 0 0;border-top:1px solid var(--line);background:none;font-size:13px;line-height:1.4;color:var(--muted)}
.rh-review .rh-g{width:15px;height:15px;flex:none}

/* ::: Case study testimonial ::: */
.rh-case-quote{margin:0;padding:34px 36px 30px;background:var(--soft);border:1px solid var(--line);border-left:4px solid var(--navy);border-radius:6px}
.rh-case-quote blockquote{margin:0;padding:0}
.rh-case-main .rh-case-quote p{font-size:18px;line-height:1.7;color:var(--ink);max-width:none;margin:0 0 1em}
.rh-case-main .rh-case-quote p:last-child{margin-bottom:0}
.rh-case-quote figcaption{display:flex;flex-direction:column;gap:2px;margin:22px 0 0;padding:18px 0 0;border-top:1px solid var(--line);background:none;font-size:14px;line-height:1.5;color:var(--muted)}
.rh-case-quote figcaption strong{font-size:15px;color:var(--ink)}
@media (max-width:600px){.rh-case-quote{padding:24px 20px 22px}.rh-case-main .rh-case-quote p{font-size:16.5px}}

/* --- style.css --- */
/*
Theme Name: Rockhopper Digital
Description: Custom WordPress theme preserving the Rockhopper Digital redesign, eleven-project portfolio, filters, FAQs and motion effects.
Version: 1.0.0
Author: Rockhopper Digital
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: rockhopper-digital
*/
body.admin-bar .topbar { top:32px; }
.wp-content { min-height:60vh; padding-top:64px; padding-bottom:80px; }
.wp-content article { margin-bottom:48px; }
.wp-content img { max-width:100%; height:auto; }
.wp-content h1 { font-size:clamp(36px,5vw,64px); line-height:1.15; margin-bottom:32px; }
.wp-content p { margin-bottom:1.3em; }
.wp-content a { text-decoration:underline; }
@media(max-width:782px){body.admin-bar .topbar{top:46px;}}
@media(max-width:600px){body.admin-bar .topbar{position:sticky;top:0;}}
