:root {--accent:#245440;--accent-text:#fff;--accent-hover:#193d2e;--charcoal:#253a32;--menu-hover:#193127;--highlight:#b8d8c3;}
:root[data-colour="blue"] {--accent:#244c70;--accent-text:#fff;--accent-hover:#193952;--charcoal:#243746;--menu-hover:#192b38;--highlight:#b9d8ef;}
:root[data-colour="charcoal"] {--accent:#353b40;--accent-text:#fff;--accent-hover:#24292c;--charcoal:#262c30;--menu-hover:#151b20;--highlight:#e2e6e8;}
:root[data-colour="yellow"] {--accent:#ffda00;--accent-text:#15191b;--accent-hover:#e9c900;--charcoal:#465258;--menu-hover:#3b464c;--highlight:#ffda00;}
:root[data-colour="teal"] {--accent:#17676b;--accent-text:#fff;--accent-hover:#104e51;--charcoal:#253d40;--menu-hover:#182e31;--highlight:#a7e1dc;}
:root[data-colour="burgundy"] {--accent:#783b4b;--accent-text:#fff;--accent-hover:#5f2937;--charcoal:#382e33;--menu-hover:#282126;--highlight:#edbac8;}
:root[data-colour="sage"] {--accent:#bbd0bf;--accent-text:#20382a;--accent-hover:#a5bfa9;--charcoal:#303e33;--menu-hover:#222e25;--highlight:#d0e5d2;}
:root[data-colour="silver"] {--accent:#e0e3e5;--accent-text:#283239;--accent-hover:#c7ced2;--charcoal:#333b40;--menu-hover:#252c31;--highlight:#e0e3e5;}
.colour-review {background:#f5f6f6;border-bottom:1px solid #d8ddda;color:#313b36;font:12px Arial,sans-serif;}
.colour-review > .wrap {min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding-block:8px;}
.colour-review [role="group"] {display:flex;align-items:center;gap:8px;}
.colour-review [role="group"] > span {margin-right:4px;font-weight:700;}
.colour-swatch {width:36px;height:36px;flex-shrink:0;padding:4px;border:2px solid transparent;border-radius:50%;background:transparent;cursor:pointer;}
.colour-swatch span {display:block;width:100%;height:100%;border-radius:50%;background:var(--swatch);border:1px solid #0002;}
.colour-swatch[aria-pressed="true"] {border-color:#323b37;}
.colour-swatch:focus-visible {outline:2px solid #111;outline-offset:2px;}
#colour-name {min-width:98px;margin-left:4px;}
#colour-confirm {color:#313b36;text-underline-offset:3px;white-space:nowrap;}
.upland-masthead,.slide-label a,.button.yellow {background:var(--accent);color:var(--accent-text);}
.upland-masthead p,.masthead-brand,.masthead-brand:hover,.slide-label a:hover {color:var(--accent-text);}
.button.yellow:hover {background:var(--accent-hover);color:var(--accent-text);}
.main-menu a:hover,.main-menu a[aria-current] {color:var(--highlight);background:var(--menu-hover);}
.footer-columns a:hover,.slider-controls button:hover {color:var(--highlight);}
.centred-heading::after,.service-tile h3::after {background:var(--accent);}
.featured-grid,.case-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
.project-gallery {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:36px;}
.project-gallery .photo-open {height:auto;aspect-ratio:4/3;}
.project-gallery img {width:100%;height:100%;object-fit:cover;}
.careers-list {padding-left:20px;margin-bottom:28px;}
.careers-list li {padding-left:5px;margin-bottom:12px;}
.join-layout h2:not(:first-child) {margin-top:34px;}
.join-layout h3 {font-size:20px;margin-top:24px;}
.join-layout > figure {align-self:start;position:sticky;top:24px;}
@media(max-width:760px){.featured-grid,.case-grid{grid-template-columns:1fr;}.join-layout > figure{position:static;}.colour-review > .wrap{flex-wrap:wrap;justify-content:center;}.colour-review [role="group"]{gap:5px;}#colour-name{min-width:88px;}.colour-swatch{width:34px;height:34px;}}
@media(max-width:480px){.project-gallery{grid-template-columns:1fr;}.colour-review > .wrap{gap:8px;padding-block:10px;}.colour-review [role="group"]{display:grid;grid-template-columns:repeat(8,32px);gap:3px;}.colour-review [role="group"] > span{grid-column:1/5;grid-row:1;margin:0 0 5px;}#colour-name{grid-column:5/9;grid-row:1;text-align:right;min-width:0;margin:0 0 5px;}.colour-swatch{width:32px;height:32px;}}
@media print{.colour-review{display:none;}}
.domestic-gallery {grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;}
.domestic-gallery .photo-open {height:auto;aspect-ratio:3/4;}
.domestic-gallery img {width:100%;height:100%;object-fit:cover;}
@media(max-width:480px){.domestic-gallery{grid-template-columns:1fr;gap:18px;}}
