
/* --- 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}}

/* ::: Homepage work section: end actions ::: */
.portfolio-end-actions{display:flex;flex-wrap:wrap;align-items:center;gap:18px 28px}
@media (max-width:600px){
  .portfolio-end-actions{gap:14px 20px}
  .portfolio-end-actions .pill{width:100%;justify-content:center}
}

/* ==========================================================
   Inner-page layouts: B "Answer first", C "Start to finish"
   (render functions at the end of inc/render.php)
   ========================================================== */
/* Site-wide: no orphan words. Body text avoids leaving one word alone on
   its last line, and headings balance their lines. Applies to the theme's
   own components too (Insights cards, portfolio grids, related services). */
body{text-wrap:pretty}
h1,h2,h3,h4,h5,h6{text-wrap:balance}

/* Theme grids that draw their divider lines with a grey background
   (related services, areas, Insights cards): cards in a part-filled last
   row stretch to fill it, so a grey empty cell never shows. */
.rh-card-grid,.rh-post-grid,.rh-town-list{display:flex;flex-wrap:wrap}
.rh-card-grid>*{flex:1 1 260px;min-width:0}
.rh-post-grid>*{flex:1 1 300px;min-width:0}
.rh-town-list>*{flex:1 1 250px;min-width:0}

.rhl-page{--rhl-top:94px}
body.rhl-page .topbar{background:#1A233B}
.rhl-hero,.rhl{color:#1A233B}
/* Resets apply only inside the layout's own blocks, never to the theme
   components the layout includes (related services, Insights, areas,
   portfolio grids), which keep their own spacing. */
.rhl-hero h1{margin:0;text-wrap:balance}
.rhl-hero p{margin:0;text-wrap:pretty}
.rhl-hero ol{margin:0;padding:0;list-style:none}
.rhl :is(.rhl-overview,.rhl-index,.rhl-q,.rhl-stages,.rhl-who,.rhl-faqs,.rhl-band,.rhl-contact) :is(h2,h3){margin:0;text-wrap:balance}
.rhl :is(.rhl-overview,.rhl-index,.rhl-q,.rhl-stages,.rhl-who,.rhl-faqs,.rhl-band,.rhl-contact) p{margin:0;text-wrap:pretty}
.rhl :is(.rhl-overview,.rhl-index,.rhl-q,.rhl-stages,.rhl-who,.rhl-faqs,.rhl-band,.rhl-contact) ul{margin:0;padding:0;list-style:none}
.rhl [id^="rhl-"],.rhl #contact{scroll-margin-top:calc(var(--rhl-top) + 16px)}
.rhl .rhl-lead{font-size:21px;line-height:1.5;font-weight:500;color:#1A233B}
.rhl .rhl-overview-grid a,.rhl .rhl-q-grid a,.rhl .rhl-stage-body a,.rhl .rhl-ticks a,.rhl .rhl-faq a,.rhl .rhl-accordion a{color:#1A233B;text-decoration:underline;text-underline-offset:2px}
.rhl .rhl-overview-grid a:hover,.rhl .rhl-q-grid a:hover,.rhl .rhl-stage-body a:hover,.rhl .rhl-ticks a:hover,.rhl .rhl-faq a:hover,.rhl .rhl-accordion a:hover{color:#4A5468}

/* Buttons */
.rhl-hero .rhl-btn{display:inline-flex;align-items:center;min-height:52px;padding:0 28px;box-sizing:border-box;background:#FFD100;border:2px solid #FFD100;color:#1A233B;font-size:16px;font-weight:600;text-decoration:none;border-radius:4px;transition:background-color .15s ease,border-color .15s ease,color .15s ease}
.rhl-hero .rhl-btn:hover{background:#FFDD40;border-color:#FFDD40;color:#1A233B}
.rhl-hero .rhl-btn-outline{background:transparent;border-color:#1A233B;padding:0 22px}
.rhl-hero .rhl-btn-outline:hover{background:#1A233B;border-color:#1A233B;color:#FFFFFF}
.rhl-hero .rhl-call{color:#FFFFFF;font-size:16px;font-weight:500;text-decoration:underline;text-underline-offset:3px}

/* Hero, shared */
.rhl-hero{position:relative;padding:56px 0 96px}
.rhl-hero .rh-crumbs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 56px;font-size:14px;line-height:1.4}
.rhl-hero .rh-crumbs a{text-decoration:none}
.rhl-hero .rh-crumbs a:hover{text-decoration:underline}
.rhl-hero h1{max-width:24ch;font-size:clamp(32px,3.4vw,48px);line-height:1.12}
.rhl-hero .rhl-hero-lede{max-width:34em;font-size:19px;line-height:1.6}
.rhl-hero .rhl-hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px;margin-top:40px}

/* Hero, layout B: navy, with key facts */
.rhl-hero-b{background:#1A233B;color:#FFFFFF}
.rhl-hero-b .rh-crumbs,.rhl-hero-b .rh-crumbs a{color:#B8C0D0}
.rhl-hero-b .rh-crumbs [aria-current]{color:#FFFFFF}
.rhl-hero-b .rh-crumbs [aria-hidden]{color:#8A94A8}
.rhl-hero .rh-crumbs a,.rhl-hero .rh-crumbs span{font-size:14px}
.rhl-hero-b .rhl-hero-grid{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:56px 80px}
.rhl-hero-b .rhl-hero-copy{flex:1 1 520px;max-width:640px}
.rhl-hero-b h1{margin:0 0 24px;color:#FFFFFF}
.rhl-hero-b .rhl-hero-lede{color:#E3E7EF}
.rhl-hero-b .rhl-facts{flex:0 1 480px;box-sizing:border-box;padding:32px;background:#222D4A;border-radius:8px}
.rhl-hero-b .rhl-facts h2{margin:0 0 4px;font-size:17px;line-height:1.3;color:#FFFFFF}
.rhl-hero-b .rhl-facts dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:0 28px;margin:0}
.rhl-hero-b .rhl-facts dl>div{padding:16px 0;border-bottom:1px solid #36426A}
.rhl-hero-b .rhl-facts dt{font-size:13px;line-height:1.4;color:#B8C0D0}
.rhl-hero-b .rhl-facts dd{margin:4px 0 0;font-size:15px;line-height:1.5;color:#FFFFFF}

/* Hero, layout C: white, with a numbered index */
.rhl-hero-c{padding-bottom:0;background:#FFFFFF}
.rhl-hero-c .rh-crumbs{margin-bottom:48px}
.rhl-hero-c .rh-crumbs,.rhl-hero-c .rh-crumbs a{color:#4A5468}
.rhl-hero-c .rh-crumbs [aria-current]{color:#1A233B}
.rhl-hero-c .rhl-hero-grid{display:flex;flex-wrap:wrap;align-items:flex-end;gap:32px 64px}
.rhl-hero-c h1{flex:1 1 520px;color:#1A233B}
.rhl-hero-c .rhl-hero-side{flex:1 1 360px;max-width:460px}
.rhl-hero-c .rhl-hero-lede{color:#2B3449}
.rhl-hero-c .rhl-hero-actions{gap:12px;margin-top:28px}
.rhl-hero-c .rhl-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));margin-top:80px;border-top:4px solid #1A233B}
.rhl-hero-c .rhl-steps li{position:relative;margin:0;padding:28px 24px 0 0}
.rhl-hero-c .rhl-steps li::before{content:"";position:absolute;top:-11px;left:0;width:18px;height:18px;box-sizing:border-box;background:#FFD100;border:4px solid #1A233B;border-radius:50%}
.rhl-hero-c .rhl-steps a{display:block;color:#1A233B;text-decoration:none}
.rhl-hero-c .rhl-steps a:hover .rhl-steps-label{text-decoration:underline}
.rhl-hero-c .rhl-steps-num{display:block;font-family:var(--rh-font-heading);font-size:44px;font-weight:500;line-height:1;letter-spacing:-0.02em}
.rhl-hero-c .rhl-steps-label{display:block;margin-top:10px;font-size:16px;font-weight:600;line-height:1.35}

/* In short */
.rhl .rhl-overview{padding:80px 0;background:#FFFFFF;border-bottom:1px solid #DCE0E6}
.rhl-c .rhl-overview{margin-top:72px;border-top:1px solid #DCE0E6}
.rhl .rhl-overview-grid{display:grid;grid-template-columns:160px minmax(0,1fr) minmax(0,1fr);gap:16px 56px;align-items:start}
.rhl .rhl-overview h2{padding-top:6px;font-size:15px;line-height:1.4;color:#4A5468}
.rhl .rhl-overview-grid.is-wide .rhl-overview-lead{grid-column:2/-1;max-width:900px}
.rhl .rhl-overview-more p{font-size:17px;line-height:1.7;color:#4A5468}
.rhl .rhl-overview-more p+p{margin-top:16px}

/* Layout B: index and question-led sections */
.rhl .rhl-index{padding:40px 0 48px;background:#F3F5F7}
.rhl .rhl-index h2{margin:0 0 12px;font-size:16px;line-height:1.4;color:#1A233B}
.rhl .rhl-index ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:0 48px}
.rhl .rhl-index li{margin:0}
.rhl .rhl-index a{display:block;padding:14px 0;border-bottom:1px solid #DCE0E6;color:#1A233B;font-size:16px;font-weight:500;text-decoration:none}
.rhl .rhl-index a:hover{text-decoration:underline}
.rhl .rhl-q{padding:96px 0;background:#FFFFFF}
.rhl .rhl-q.is-alt{background:#F3F5F7}
.rhl .rhl-q h2,.rhl .rhl-faqs h2,.rhl .rhl-who h2{font-size:clamp(28px,2.8vw,40px);line-height:1.15;letter-spacing:-0.02em}
.rhl .rhl-q h2{max-width:24ch;color:#1A233B}
.rhl .rhl-q-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:40px 72px;align-items:start}
.rhl .rhl-q-grid>h2{grid-column:1/-1}
.rhl .rhl-q-main{grid-column:1}
.rhl .rhl-q-aside{grid-column:2}
.rhl .rhl-q-foot{grid-column:1/-1}
.rhl .rhl-q--single .rhl-q-grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
.rhl .rhl-q--single .rhl-q-grid>h2{grid-column:1}
.rhl .rhl-q--single .rhl-q-main{grid-column:2;padding-top:8px}
.rhl .rhl-q-main p,.rhl .rhl-q-aside p{font-size:17px;line-height:1.7;color:#4A5468}
.rhl .rhl-q-main p+p,.rhl .rhl-q-aside p+p{margin-top:20px}
.rhl .rhl-q-main p.rhl-lead{color:#1A233B}
.rhl .rhl-q--split .rhl-q-aside{padding-top:6px}
.rhl .rhl-q--list .rhl-ticks,.rhl .rhl-stage--list .rhl-ticks{display:flex;flex-direction:column;gap:14px;margin:0;padding:28px 32px;background:#F3F5F7;border-radius:8px}
.rhl .rhl-q--list.is-alt .rhl-ticks{background:#FFFFFF}
.rhl .rhl-q--figure-list .rhl-ticks,.rhl .rhl-stage--figure-list .rhl-ticks{display:flex;flex-direction:column;gap:14px;margin:0}
.rhl .rhl-q--list-only .rhl-q-main,.rhl .rhl-stage--list-only .rhl-stage-main{grid-column:1/-1}
.rhl .rhl-q--list-only .rhl-ticks,.rhl .rhl-stage--list-only .rhl-ticks{margin:0}
.rhl .rhl-ticks{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px 48px;margin-top:8px}
.rhl .rhl-ticks li{display:flex;align-items:flex-start;gap:14px;margin:0;font-size:16px;line-height:1.55;color:#1A233B}
.rhl .rhl-ticks li::before{content:none}
.rhl .rhl-tick{flex:0 0 24px;margin-top:1px}

/* Layout C: numbered sections */
.rhl .rhl-stages{padding:96px 0 0;background:#FFFFFF}
.rhl .rhl-stage{display:flex;flex-wrap:wrap}
.rhl .rhl-stage-num{flex:1 1 220px;box-sizing:border-box;padding:44px 36px;background:#1A233B;border-bottom:1px solid #2E3A5C;color:#FFD100;font-family:var(--rh-font-heading);font-size:96px;font-weight:500;line-height:.9;letter-spacing:-0.04em}
.rhl .rhl-stage-body{flex:999 1 520px;box-sizing:border-box;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px 56px;align-content:start;align-items:start;padding:48px 32px 56px 56px;border-bottom:1px solid #DCE0E6}
.rhl .rhl-stage-body>h2{grid-column:1/-1}
.rhl .rhl-stage-main{grid-column:1}
.rhl .rhl-stage-aside{grid-column:2}
.rhl .rhl-stage-foot{grid-column:1/-1}
.rhl .rhl-stage--single .rhl-stage-body{grid-template-columns:minmax(0,2fr) minmax(0,3fr)}
.rhl .rhl-stage--single .rhl-stage-body>h2{grid-column:1}
.rhl .rhl-stage--single .rhl-stage-main{grid-column:2}
.rhl .rhl-stage h2{margin:0;font-size:32px;line-height:1.15;letter-spacing:-0.015em;color:#1A233B}
.rhl .rhl-stage-body p{font-size:18px;line-height:1.65;color:#2B3449}
.rhl .rhl-stage-body p+p{margin-top:16px}
.rhl .rhl-stage-main p.rhl-lead{color:#1A233B}
.rhl .rhl-stage-foot .rhl-ticks{display:flex;flex-direction:column;gap:10px;margin:0}

/* Who does the work */
.rhl .rhl-who{margin-top:112px;padding:112px 0;background:#1A233B;color:#FFFFFF}
.rhl-b .rhl-who{margin-top:0}
.rhl .rhl-who-grid{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:56px 80px}
.rhl .rhl-who-copy{flex:1 1 460px;max-width:600px}
.rhl .rhl-who h2{color:#FFFFFF}
.rhl .rhl-who .rhl-lead{margin-top:28px;font-size:22px;line-height:1.45;color:#FFFFFF}
.rhl .rhl-who-copy p{margin-top:20px;font-size:17px;line-height:1.7;color:#C9D0DC}
.rhl .rhl-quote{flex:1 1 360px;max-width:520px;margin:0;padding:28px 0 0;border-top:3px solid #FFD100}
.rhl .rhl-who.has-figure .rhl-quote{flex:1 1 100%;max-width:760px}
.rhl .rhl-who-figure{flex:1 1 440px;max-width:560px;min-width:0}
.rhl .rhl-quote blockquote{margin:0;padding:0;border:0;background:none}
.rhl .rhl-quote blockquote::before,.rhl .rhl-quote blockquote::after{content:none}
.rhl .rhl-quote blockquote p{font-size:19px;line-height:1.55;font-weight:500;color:#FFFFFF}
.rhl .rhl-quote figcaption{margin-top:14px;font-size:15px;line-height:1.5;color:#B8C0D0}
.rhl .rhl-quote figcaption span{display:block;margin-top:4px}

/* Layout B: questions grid */
.rhl .rhl-faqs{padding:112px 0;background:#FFFFFF}
.rhl .rhl-faqs h2{margin-bottom:48px;color:#1A233B}
.rhl .rhl-faq-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:48px 64px}
.rhl .rhl-faq h3{margin:0 0 10px;font-size:20px;line-height:1.3;color:#1A233B}
.rhl .rhl-faq p{font-size:17px;line-height:1.65;color:#4A5468}

/* Layout C: where we work and questions */
.rhl .rhl-band{padding:112px 0;background:#F3F5F7}
.rhl .rhl-band-grid{display:flex;flex-wrap:wrap;align-items:flex-start;gap:56px 80px}
.rhl .rhl-band-where{flex:1 1 340px;max-width:440px}
.rhl .rhl-band-faqs{flex:1 1 520px}
.rhl .rhl-band h2{margin:0 0 20px;font-size:32px;line-height:1.15;letter-spacing:-0.015em;color:#1A233B}
.rhl .rhl-band-where p{font-size:17px;line-height:1.75;color:#2B3449}
.rhl .rhl-band-where a{color:#1A233B;text-decoration:underline;text-underline-offset:2px}
.rhl .rhl-accordion{border-top:1px solid #C9CFD9}
.rhl .rhl-accordion details{margin:0;border-bottom:1px solid #C9CFD9}
.rhl .rhl-accordion summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px;box-sizing:border-box;padding:18px 0;list-style:none;cursor:pointer;font-size:18px;font-weight:500;line-height:1.4;color:#1A233B}
.rhl .rhl-accordion summary::-webkit-details-marker{display:none}
.rhl .rhl-accordion summary::after{content:"";flex:0 0 10px;width:10px;height:10px;margin-right:4px;border-right:2px solid #1A233B;border-bottom:2px solid #1A233B;transform:translateY(-3px) rotate(45deg);transition:transform .2s ease}
.rhl .rhl-accordion details[open] summary::after{transform:translateY(3px) rotate(-135deg)}
.rhl .rhl-accordion details p{max-width:640px;padding:0 0 22px;font-size:17px;line-height:1.65;color:#4A5468}

/* Shared yellow contact block, with the theme's enquiry form */
.rhl .rhl-contact{margin-top:112px;padding:112px 0;background:#FFD100;color:#1A233B}
.rhl .rhl-contact-grid{display:flex;flex-wrap:wrap;align-items:flex-start;gap:56px 80px}
.rhl .rhl-contact-copy{flex:1 1 420px;max-width:520px}
.rhl .rhl-contact h2{max-width:18ch;font-size:clamp(30px,3.2vw,40px);line-height:1.2;letter-spacing:-0.015em;color:#1A233B}
.rhl .rhl-contact-copy>p{max-width:30em;margin-top:20px;font-size:18px;line-height:1.65;color:#3D4660}
.rhl .rhl-contact dl{margin:44px 0 0;font-size:17px}
.rhl .rhl-contact dl>div{display:grid;grid-template-columns:110px minmax(0,1fr);gap:16px;align-items:baseline;padding:16px 0;border-top:1px solid rgba(26,35,59,.22)}
.rhl .rhl-contact dl>div:last-child{border-bottom:1px solid rgba(26,35,59,.22)}
.rhl .rhl-contact dt{font-size:14px;color:#3D4660}
.rhl .rhl-contact dd{margin:0;font-weight:500}
.rhl .rhl-contact dd a{color:#1A233B;text-decoration:none;overflow-wrap:anywhere}
.rhl .rhl-contact dd a:hover{text-decoration:underline}
.rhl .rhl-contact-form{flex:1 1 460px}
.rhl .rhl-contact .rh-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:0;padding:0;background:none;border:0;border-radius:0;box-shadow:none}
.rhl .rhl-contact .rh-form label{display:block;margin:0;font-size:15px;font-weight:600;line-height:1.4;color:#1A233B}
.rhl .rhl-contact .rh-form label:has(textarea),.rhl .rhl-contact .rh-form label:has(.rh-optional),.rhl .rhl-contact .rh-form .rh-form-error,.rhl .rhl-contact .rh-form button,.rhl .rhl-contact .rh-form .fine{grid-column:1/-1}
.rhl .rhl-contact .rh-form .rh-optional{margin-left:4px;font-weight:400;color:#3D4660}
.rhl .rhl-contact .rh-form input,.rhl .rhl-contact .rh-form textarea{display:block;width:100%;min-height:52px;box-sizing:border-box;margin:8px 0 0;padding:12px 14px;background:#FFFFFF;border:1.5px solid #1A233B;border-radius:4px;box-shadow:none;font-family:inherit;font-size:17px;font-weight:400;color:#1A233B}
.rhl .rhl-contact .rh-form textarea{min-height:140px;resize:vertical}
.rhl .rhl-contact .rh-form input::placeholder,.rhl .rhl-contact .rh-form textarea::placeholder{color:#6B7385;opacity:1}
.rhl .rhl-contact .rh-form input:focus,.rhl .rhl-contact .rh-form textarea:focus{outline:3px solid #1A233B;outline-offset:1px}
.rhl .rhl-contact .rh-form button{justify-self:start;display:inline-flex;align-items:center;gap:10px;min-height:52px;margin:0;padding:0 28px;background:#1A233B;border:0;border-radius:4px;color:#FFFFFF;font-size:16px;font-weight:600;cursor:pointer}
.rhl .rhl-contact .rh-form button:hover{background:#2B3657}
.rhl .rhl-contact .rh-form button svg{width:20px;height:20px}
.rhl .rhl-contact .rh-form .fine{font-size:14px;line-height:1.5;color:#3D4660}
.rhl .rhl-contact .rh-form .rh-form-error{padding:12px 14px;background:#FFFFFF;border-left:4px solid #B42318;color:#1A233B}
.rhl .rhl-contact .rh-form .rh-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* Enquiry form fields on every page: clear white fields with a navy
   outline and no box around the form. !important is needed to beat the
   theme's global input rule, which sets transparent underline-only fields. */
.rh-form input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),.rh-form textarea{min-height:52px;box-sizing:border-box;padding:12px 14px!important;background:#FFFFFF!important;border:1.5px solid #1A233B!important;border-radius:4px!important;box-shadow:none;font-size:17px!important;line-height:1.4;color:#1A233B!important;-webkit-text-fill-color:#1A233B}
.rh-form textarea{min-height:140px;resize:vertical}
.rh-form .rh-optional{font-size:14px}
.rh-form input::placeholder,.rh-form textarea::placeholder{color:#6B7385!important;-webkit-text-fill-color:#6B7385;opacity:1}
.rh-form input:focus,.rh-form textarea:focus{outline:3px solid #FFD100!important;outline-offset:2px}
.rhl .rhl-contact .rh-form input:focus,.rhl .rhl-contact .rh-form textarea:focus{outline-color:#1A233B!important}
.rh-form input:-webkit-autofill,.rh-form textarea:-webkit-autofill{-webkit-text-fill-color:#1A233B!important;-webkit-box-shadow:0 0 0 1000px #FFFFFF inset!important;box-shadow:0 0 0 1000px #FFFFFF inset!important}

/* Section modes: list beside a diagram, and short text above a long list */
.rhl .rhl-q--figure .rhl-ticks,.rhl .rhl-stage--figure .rhl-ticks{display:flex;flex-direction:column;gap:12px;margin:28px 0 0}
.rhl .rhl-q--list-wide .rhl-q-main,.rhl .rhl-stage--list-wide .rhl-stage-main{grid-column:1/-1;max-width:780px}
.rhl .rhl-q--list-wide .rhl-ticks,.rhl .rhl-stage--list-wide .rhl-ticks{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px 48px;margin:4px 0 0}
.rhl .rhl-q-aside,.rhl .rhl-stage-aside,.rhl .rhl-q-main,.rhl .rhl-stage-main{min-width:0}
.rhl :is(.rhl-overview,.rhl-index,.rhl-q,.rhl-stages,.rhl-who,.rhl-faqs,.rhl-band,.rhl-contact) :is(li span,dd,summary,figcaption,.rhl-index a){text-wrap:pretty}
.rhl-hero-c .rhl-steps-label,.rhl .rhl-faq h3{text-wrap:balance}
.rh-more-domain{color:#5B6475}

/* Diagrams (one per page) */
.rhl .rhl-diagram{width:100%;max-width:560px;min-width:0;margin:0;background:#FFFFFF;border:1px solid #DCE0E6;border-radius:8px;color:#1A233B;overflow:hidden}
.rhl .rhl-diagram-art{overflow-x:auto}
.rhl .rhl-diagram svg{display:block;width:100%;min-width:460px;height:auto}
.rhl .rhl-diagram text{font-family:var(--rh-font-body);font-size:14px;fill:#1A233B}
.rhl .rhl-diagram text.t13{font-size:13px}
.rhl .rhl-diagram text.w5{font-weight:500}
.rhl .rhl-diagram text.w6{font-weight:600}
.rhl .rhl-diagram text.mute{fill:#4A5468}
.rhl .rhl-diagram figcaption{padding:4px 32px 28px;font-size:14px;line-height:1.55;color:#4A5468}
.rhl .rhl-diagram figcaption b{font-weight:600;color:#1A233B}

/* Shared focus style */
.rhl-hero a:focus-visible,.rhl :is(.rhl-overview,.rhl-index,.rhl-q,.rhl-stages,.rhl-who,.rhl-faqs,.rhl-band,.rhl-contact) a:focus-visible,.rhl :is(.rhl-overview,.rhl-index,.rhl-q,.rhl-stages,.rhl-who,.rhl-faqs,.rhl-band,.rhl-contact) summary:focus-visible{outline:3px solid #FFD100;outline-offset:2px}
.rhl .rhl-contact a:focus-visible,.rhl .rhl-contact button:focus-visible,.rhl-hero-c a:focus-visible{outline-color:#1A233B}

@media (max-width:1100px){
.rhl .rhl-overview-grid,.rhl .rhl-q-grid,.rhl .rhl-q--single .rhl-q-grid{grid-template-columns:minmax(0,1fr)}
.rhl .rhl-overview-grid>*,.rhl .rhl-overview-grid.is-wide .rhl-overview-lead,.rhl .rhl-q-grid>*,.rhl .rhl-q--single .rhl-q-grid>*{grid-column:1}
.rhl .rhl-q-grid{gap:28px}
.rhl .rhl-stage-body,.rhl .rhl-stage--single .rhl-stage-body{grid-template-columns:minmax(0,1fr)}
.rhl .rhl-stage-body>*,.rhl .rhl-stage--single .rhl-stage-body>*{grid-column:1}
.rhl .rhl-who-figure{max-width:none}
}
@media (max-width:760px){
.rhl-page{--rhl-top:79px}
.rhl .rhl-contact .rh-form{grid-template-columns:minmax(0,1fr)}
.rhl .rhl-contact dl>div{grid-template-columns:minmax(0,1fr);gap:2px}
.rhl-hero{padding:40px 0 64px}
.rhl-hero .rh-crumbs{margin-bottom:32px}
.rhl-hero .rhl-hero-actions{margin-top:28px}
.rhl-hero-b .rhl-facts{padding:24px}
.rhl-hero-c .rhl-steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 0;margin-top:48px}
.rhl .rhl-overview{padding:56px 0}
.rhl-c .rhl-overview{margin-top:48px}
.rhl .rhl-q,.rhl .rhl-faqs,.rhl .rhl-who,.rhl .rhl-band,.rhl .rhl-contact{padding:72px 0}
.rhl .rhl-who,.rhl .rhl-contact{margin-top:72px}
.rhl-b .rhl-who{margin-top:0}
.rhl .rhl-index ul,.rhl .rhl-faq-grid{grid-template-columns:1fr}
.rhl .rhl-stages{padding-top:56px}
.rhl .rhl-stage-num{flex-basis:100%;padding:20px 24px;font-size:56px}
.rhl .rhl-stage-body{padding:28px 0 40px}
.rhl .rhl-stage h2{font-size:26px}
.rhl .rhl-band h2{font-size:28px}
}

/* --- 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;}}
