:root{--color-navy:#003e4d;--color-navy-dark:#002a35;--color-amber:#d98b2b;--color-cream:#fcf5eb;--color-paper:#fff;--color-ink:#183d46;--color-muted:#52666b;--color-line:#d7e1e2;--space-1:.5rem;--space-2:1rem;--space-3:1.5rem;--space-4:2.5rem;--space-5:4rem;--space-6:6rem;--radius:.5rem;--width:76rem;--font: 'Segoe UI',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{margin:0;color:var(--color-ink);background:var(--color-paper);font-family:var(--font);font-size:1.0625rem;line-height:1.7}a{color:inherit;text-underline-offset:.22em}a:hover{text-decoration-thickness:2px}button,input,textarea{font:inherit}button,a,input,textarea{touch-action:manipulation}:focus-visible{outline:3px solid var(--color-amber);outline-offset:5px}img{max-width:100%;height:auto;display:block}h1,h2,h3,h4{line-height:1.14;letter-spacing:-.035em;text-wrap:balance;margin:0 0 var(--space-3);font-weight:700}h1{font-size:clamp(2.8rem,5.5vw,5.25rem)}h2{font-size:clamp(2rem,3.3vw,3.15rem)}h3{font-size:clamp(1.35rem,2vw,1.75rem)}h4{font-size:1.25rem}p{margin:0 0 var(--space-3)}li{margin-bottom:.5rem}.container{width:min(var(--width),calc(100% - 3rem));margin-inline:auto}.skip-link{position:fixed;left:1rem;top:-8rem;z-index:99;background:white;color:var(--color-navy);padding:1rem}.skip-link:focus{top:1rem}.header{background:var(--color-navy);color:white;border-bottom:1px solid #ffffff30}.header__inner{display:flex;align-items:center;justify-content:space-between;gap:2rem;min-height:108px}.header__brand{flex:0 0 204px}.header__brand img{width:204px;height:auto}.header__nav{display:flex;align-items:center;gap:1.8rem}.header__link{font-size:.94rem;font-weight:600;text-decoration:none;padding:.5rem 0}.header__link:last-child{background:var(--color-amber);color:var(--color-navy-dark);padding:.7rem 1.25rem;border-radius:var(--radius)}.header__link[aria-current]{text-decoration:underline;text-decoration-thickness:3px}.header__toggle{background:transparent;color:white;border:1px solid white;padding:.6rem 1rem;border-radius:var(--radius);display:none}.section{padding-block:var(--space-6)}.section:nth-child(odd){background:var(--color-cream)}.section--hero{background:var(--color-navy)!important;color:white;position:relative;overflow:hidden;padding-block:clamp(3rem,7vw,6rem);border-bottom:5px solid var(--color-amber)}.section--hero>.container{position:relative;z-index:1;display:grid;grid-template-columns:1.15fr 1fr;align-items:center;gap:var(--space-5)}.section--hero>.container:not(:has(img)){display:block;max-width:var(--width)}.section--hero h1{max-width:16ch}.section--hero p{font-size:1.2rem;max-width:53ch;color:#e4edef}.section--hero img{border-radius:var(--radius);max-height:32rem;object-fit:contain}.hero__decoration{display:none}.content__group{min-width:0}.content__group:empty{display:none}.content__group>h2,.content__group>h3{margin-top:var(--space-3)}.layout{display:grid;gap:var(--space-4);align-items:start}.layout--two{grid-template-columns:1fr 1fr}.layout--three{grid-template-columns:repeat(3,minmax(0,1fr));margin-block:var(--space-4)}.portfolio__card{border-radius:var(--radius);overflow:hidden;background:white;box-shadow:0 6px 25px #003e4d0d;border:1px solid var(--color-line)}.portfolio__card h3,.portfolio__card h4{padding:1.25rem;margin:0}.portfolio__card img{aspect-ratio:1.53;object-fit:cover;transition:transform .2s}.portfolio__card a:hover img{transform:scale(1.025)}.button{display:inline-flex;align-items:center;justify-content:center;gap:1rem;background:var(--color-amber);color:var(--color-navy-dark);border:2px solid transparent;border-radius:var(--radius);font-weight:700;padding:.85rem 1.35rem;text-decoration:none;cursor:pointer;margin:.4rem .4rem .4rem 0;line-height:1.4}.button:hover{background:#e6a34b}.section .container>.content__group>p{max-width:75ch}.section .container>h2{max-width:25ch}.section .container:not(:where(.layout,.features__grid,.portfolio__grid))>.content__group+ .content__group{margin-top:var(--space-3)}.section:not(.section--hero) .container>img{max-height:32rem;object-fit:contain}.enquiry{background:var(--color-navy);color:white;padding-block:var(--space-6)}.enquiry__layout{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6)}.eyebrow{text-transform:uppercase;font-size:.8rem;letter-spacing:.18em;color:var(--color-amber);font-weight:700}.enquiry__phone{font-size:1.75rem;font-weight:600}.form{background:var(--color-paper);color:var(--color-ink);padding:var(--space-4);border-radius:var(--radius)}.form__field{display:grid;gap:.35rem;margin-bottom:var(--space-3);font-weight:600}.form input:not([type=radio]),.form textarea{width:100%;padding:.75rem;border:1px solid #7b8e93;border-radius:.25rem;background:#fafcfc;color:var(--color-ink)}.form textarea{resize:vertical}.form__preferences{border:0;padding:0;margin:0 0 var(--space-3)}.form__preferences legend{font-weight:600;margin-bottom:.5rem}.form__preferences label{display:inline-block;margin-right:1.5rem}.form__preferences input{accent-color:var(--color-navy);width:1.2rem;height:1.2rem}.form__hint{color:var(--color-muted);font-size:.875rem;font-weight:400}.form__trap{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.form__notice{padding:1rem;border:2px solid var(--color-navy);margin-bottom:1rem}.footer{background:var(--color-navy-dark);color:white;padding-block:2rem}.footer__inner{display:flex;align-items:center;justify-content:space-between;gap:2rem;font-size:.8rem}.footer p{margin:0}.footer__inner>a{white-space:nowrap}body:has(.section--hero h1) main{min-height:50vh}@media(min-width:900px){.section--hero>.container:has(img) .content__group:has(>img){align-self:center}}@media(max-width:900px){.header__inner{flex-wrap:wrap;padding-block:1rem;gap:1rem}.header__toggle{display:block}.header__toggle[hidden]{display:none}.header__nav{width:100%;flex-wrap:wrap;gap:.75rem 1.5rem}.header__toggle:not([hidden])+.header__nav{display:none}.header__toggle:not([hidden])+.header__nav--open{display:flex}.section--hero>.container,.layout--two,.enquiry__layout{grid-template-columns:1fr}.layout--three{grid-template-columns:repeat(2,minmax(0,1fr))}.section--hero img{max-height:23rem;margin:auto}.enquiry__layout{gap:2.5rem}.footer__inner{flex-wrap:wrap}.section{padding-block:var(--space-5)}}@media(max-width:550px){.container{width:calc(100% - 2rem)}.layout--three{grid-template-columns:1fr}.form{padding:1.25rem}.header__brand{flex-basis:170px}.header__brand img{width:170px}.header__nav{flex-direction:column;align-items:stretch}.header__link{padding:.7rem}.section--hero h1{font-size:2.8rem}.section--hero>.container{gap:2rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}@media print{.header__toggle,.enquiry,.skip-link{display:none}.section{padding-block:2rem}.section--hero{color:var(--color-ink);background:white!important}.section--hero p{color:inherit}.header,.footer{background:white;color:var(--color-ink)}}
.section--hero>.container>img{grid-column:2;grid-row:1}.section--hero>.container>.content__group:empty{display:none}.section--hero .hero__layout>.content__group:has(h1){grid-column:1;grid-row:1}.section--hero .content__group:has(>h1){grid-column:1}.section ul.content__group{padding-left:1.25rem}.section li.content__group>h3{color:var(--color-navy);font-size:1.2rem;margin:0}.section li.content__group>h4{font-size:1.1rem;margin:0}@media(max-width:900px){.section--hero>.container>img{grid-column:1;grid-row:auto}}
.hero__copy{grid-column:1;grid-row:1}.section--hero>.container>img{grid-column:2;grid-row:1}.section--hero .hero__copy .content__group:has(>h1){grid-column:auto}.hero__copy .content__group:has(>h2){margin-top:1.5rem}.hero__copy h2{font-size:clamp(1.4rem,2.3vw,2.1rem);letter-spacing:-.025em}.process__number{font-size:1.2rem;font-weight:700;color:var(--color-navy)}.section--hero .hero__copy:only-child{max-width:65ch}@media(max-width:900px){.hero__copy{grid-row:1}.section--hero>.container>img{grid-column:1;grid-row:2}.hero__copy h1{max-width:18ch}}
/* Original-site visual system: measured from the live site. */
@font-face{font-family:Mulish;src:url('/assets/mulish.ttf') format('truetype');font-weight:200 1000;font-style:normal;font-display:swap}
@font-face{font-family:WdaIonicons;src:url('/assets/ionicons.woff2') format('woff2');font-weight:400;font-style:normal;font-display:block}
@font-face{font-family:WdaStars;src:url('/assets/fontawesome-regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:block}
:root{--color-amber:#d98b2b;--color-amber-hover:#df9d4c;--color-amber-light:#f4dbbe;--color-amber-pale:#fbf3e9;--color-amber-60:rgba(244,219,190,.6);--color-amber-20:rgba(244,219,190,.2);--color-amber-10:rgba(217,139,43,.1);--color-blue:#0378a6;--color-aqua:#b4e0ea;--color-aqua-medium:#38adc7;--color-blue-dark:#035a7d;--color-blue-ultra-dark:#011e2a;--color-navy:#003e4d;--color-navy-dark:#002a35;--color-cream:var(--color-amber-pale);--color-ink:#171717;--color-muted:#404040;--color-line:rgba(108,69,21,.2);--gradient-hero:linear-gradient(var(--color-blue),var(--color-aqua));--gradient-enquiry:linear-gradient(var(--color-blue),var(--color-aqua-medium));--radius:.25rem;--font:Mulish,'Segoe UI',Arial,sans-serif;--width:72rem}
body{font-family:var(--font);color:var(--color-ink);line-height:1.55}h1,h2,h3,h4{letter-spacing:-.025em}h1{font-size:clamp(2.4rem,4vw,3.3rem)}h2{font-size:clamp(1.9rem,2.7vw,2.5rem)}h3{font-size:clamp(1.2rem,1.8vw,1.65rem)}.header{background:var(--color-amber-hover);border-bottom:3px solid var(--color-amber-pale)}.header__inner{min-height:104px}.header__brand{flex-basis:175px}.header__brand img{width:175px}.header__nav{gap:1.25rem}.header__link,.header__link:last-child{background:var(--color-amber);border:1px solid var(--color-amber-pale);border-radius:var(--radius);padding:.5rem 1.1rem;color:var(--color-navy-dark);font-size:1rem;font-weight:650}.header__link:last-child{border-width:2px;padding:.75rem 1.3rem;margin-left:1.5rem}.header__link:hover,.header__link:focus-visible{background:var(--color-navy);color:white}.header__link[aria-current]{background:rgba(108,69,21,.2);text-decoration:underline}.header__toggle{color:var(--color-navy-dark);border-color:var(--color-navy-dark)}
.section,.section:nth-child(odd){background:white}.section--amber-60,.section--amber-60:nth-child(odd){background:var(--color-amber-60)}.section--amber-20,.section--amber-20:nth-child(odd){background:var(--color-amber-20)}.section--amber-10,.section--amber-10:nth-child(odd){background:var(--color-amber-10)}.section--amber-pale,.section--amber-pale:nth-child(odd){background:var(--color-amber-pale)}.section--blue,.section--blue:nth-child(odd){background:rgba(3,120,166,.9);color:white}.content--white{color:white}.section--hero{background:var(--gradient-hero)!important;color:var(--color-navy-dark);border-bottom:3px solid var(--color-amber-hover)}.section--hero p{color:inherit}.section--hero h1{color:white;text-shadow:1px 1px 2px var(--color-blue-dark)}.section--hero .hero__copy h2{color:inherit}.button{background:var(--color-amber);color:var(--color-navy-dark);border:2px solid white;border-radius:var(--radius);font-weight:700;padding:.65rem 1rem}.button:hover,.button:focus-visible{background:var(--color-navy);color:white}.hero__actions{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-top:1.75rem}.hero__actions .button{margin:0;text-align:center;min-height:46px}.page--home .hero__layout{grid-template-columns:1fr 1fr;min-height:22rem}.page--home .hero__copy{grid-column:2;text-align:right}.page--home .hero__layout>img{grid-column:1;grid-row:1;transform:translateY(3.5rem) scale(1.08);max-height:none}.page--home .section--hero{overflow:visible;padding-block:4rem}.page--home #services{padding-top:7rem}
/* The inner-page banners use the original full-width photography. */
.page:not(.page--home):not(.page--contact) .section--hero{position:relative;isolation:isolate;min-height:29rem;display:flex;align-items:center;background:var(--gradient-hero)!important;overflow:hidden}.page:not(.page--home):not(.page--contact) .section--hero>.container{position:static;display:grid;grid-template-columns:1fr 1fr;min-height:20rem}.page:not(.page--home):not(.page--contact) .hero__layout>img{position:absolute;inset:0;width:100%;height:100%;max-height:none;object-fit:cover;border-radius:0;z-index:-2}.page:not(.page--home):not(.page--contact) .section--hero::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(1,30,42,.78),rgba(3,120,166,.25));z-index:-1}.page:not(.page--home):not(.page--contact) .hero__copy{color:white;grid-column:1;max-width:36rem}.page--website-design .section--hero::after{background:linear-gradient(90deg,rgba(3,120,166,.15),rgba(1,30,42,.83))!important}.page--website-design .hero__copy{grid-column:2!important}.page--about-us .hero__layout>img{object-position:right 35%;object-fit:contain!important}.page--contact .section--hero{background:white!important;color:var(--color-ink);border:0}.page--contact .section--hero h1{color:var(--color-ink);text-shadow:none}.page--contact .section--hero>.container{max-width:var(--width)}.page--contact .hero__copy:only-child{max-width:65ch}
.section--breadcrumbs,.section--breadcrumbs:nth-child(odd){background:linear-gradient(135deg,var(--color-amber-hover) 66.6%,var(--color-amber-20) 33.3%);padding-block:.6rem;border-top:1px solid var(--color-amber)}.breadcrumbs__nav{font-size:.88rem;font-weight:600}.breadcrumbs__nav a{color:var(--color-navy-dark)}.breadcrumbs__nav>*{margin-right:.5rem}.breadcrumbs__nav [aria-current]{color:var(--color-navy-dark)}
.icon{display:inline-block;font-style:normal;font-size:30px;line-height:1;flex:0 0 auto}.icon--check{font-family:WdaIonicons;color:var(--color-amber)}.icon--check::before{content:'\f14a'}.icon--check-md::before{content:'\f2bb'}.icon--star{font-family:WdaStars;color:var(--color-ink)}.icon--star::before{content:'\f005'}.services__columns{display:grid;grid-template-columns:1fr 1fr;gap:2rem}.services__lists{margin:0;padding:0!important;list-style:none}.services__item{display:grid;grid-template-columns:30px 1fr;gap:1rem;align-items:center;margin-bottom:1rem}.services__item .content__group{font-size:1.05rem}.content__center{text-align:center}.portfolio__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;margin-block:2rem}.portfolio__card{padding:1.1rem;border:1px solid var(--color-line);border-radius:1rem;background:white;box-shadow:none;text-align:center;transition:transform .3s,box-shadow .3s}.portfolio__card h3,.portfolio__card h4{font-size:1.1rem;padding:1rem 0 0;margin:0;letter-spacing:0}.portfolio__card:hover,.portfolio__card:focus-within{transform:scale(1.04);box-shadow:0 0 10px #0003;position:relative;z-index:2}.portfolio__card img{object-fit:contain;transition:none}.portfolio__card a:hover img{transform:none}
.timeline__line{display:none}.timeline__list{position:relative;padding:0!important;margin:1.25rem 0;list-style:none}.timeline__list::before{content:'';position:absolute;left:19px;top:20px;bottom:20px;border-left:5px solid var(--color-amber)}.timeline__list .services__item{position:relative;display:grid;grid-template-columns:40px 1fr;gap:2rem;align-items:center;min-height:52px;margin:0 0 .75rem;border:0;padding:0}.timeline__badge{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--color-amber);border-radius:50%;z-index:1}.timeline__badge .process__number{color:var(--color-navy-dark);font-size:1.4rem;font-weight:900}.timeline__list h3{font-size:1.05rem;margin:0;letter-spacing:0}.features__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}.features__card{padding:1.5rem;background:var(--color-amber-10);border:1px solid rgba(108,69,21,.1);border-radius:var(--radius)}.features__header{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1rem}.features__heading{font-size:1.3rem;margin:0!important}.features__card .content__group>p:last-child{margin-bottom:0}.team__portrait-frame{width:250px;height:250px;border:5px solid rgba(108,69,21,.2);border-radius:50%;padding:.8rem;background:#f2f2f2;overflow:hidden;margin:0 auto 2rem}.team__portrait{border:1px solid #40404066;border-radius:50%;width:100%;height:100%;object-fit:cover}.content__bubble{border:1px solid #0378a633;border-radius:50%;padding:1rem;background:#b4e0ea66}
.process__container{position:relative;padding-inline:3rem}.process__line{position:absolute;left:3rem;top:8rem;bottom:3rem;border-left:8px solid var(--color-amber)}.process__list{position:relative;display:grid;gap:4rem}.process__step{display:grid;grid-template-columns:70px minmax(0,1fr);gap:2rem;position:relative}.process__badge{width:90px;height:90px;transform:translateX(-41px);background:var(--color-amber);border-radius:50%;display:flex;align-items:center;justify-content:center;z-index:1}.process__badge .process__number{font-size:2.4rem;font-weight:900;color:var(--color-navy-dark)}.process__badge--alt{background:var(--color-blue);border:3px solid var(--color-amber)}.process__badge--alt .process__number{color:white}.process__badge--end{width:45px;height:45px;transform:translateX(-18px)}.process__content h2{font-size:2rem}.process__content h3{font-size:1.4rem}.enquiry{background:var(--gradient-enquiry);color:white}.enquiry__layout{display:block;max-width:760px;text-align:center}.enquiry h2{font-size:3rem}.enquiry .eyebrow{color:white;text-transform:none;letter-spacing:0;font-size:1rem;font-weight:400}.enquiry__phone{font-size:1.35rem;display:inline-block;margin-bottom:1.5rem}.form{background:rgba(3,90,125,.4);border:1px solid rgba(180,224,234,.2);box-shadow:0 0 16px 6px rgba(3,90,125,.2);border-radius:0;color:white;text-align:left}.form__field,.form__preferences legend{text-transform:uppercase;font-size:.85rem;letter-spacing:.025em}.form__hint{color:white;text-transform:none;letter-spacing:0;font-size:.85rem}.form input:not([type=radio]),.form textarea{background:white;color:var(--color-ink);border:1px solid var(--color-blue-dark);font-size:1rem;letter-spacing:0;text-transform:none}.form__notice{background:var(--color-blue-dark);border-color:white}.footer{background:var(--color-blue-ultra-dark);color:#e6f5fa}
@media(max-width:1050px){.header__nav{gap:.65rem}.header__link,.header__link:last-child{padding:.5rem .7rem;font-size:.9rem}.header__link:last-child{margin-left:0}}@media(max-width:900px){.page--home .hero__layout{grid-template-columns:1fr;gap:2rem}.page--home .hero__copy{grid-column:1;grid-row:1;text-align:center}.page--home .hero__layout>img{grid-column:1;grid-row:2;transform:none;max-height:23rem}.page--home #services{padding-top:4rem}.section--hero .hero__copy h1{max-width:none}.header__brand img{width:170px}.header__nav--open{padding-bottom:1rem}.header__link,.header__link:last-child{font-size:1rem}.services__columns{gap:1.5rem}.features__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page:not(.page--home):not(.page--contact) .section--hero>.container{grid-template-columns:1fr}.page--website-design .hero__copy{grid-column:1!important}.page:not(.page--home):not(.page--contact) .section--hero::after{background:rgba(1,30,42,.65)!important}.portfolio__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:550px){.hero__actions{grid-template-columns:1fr}.services__columns,.features__grid,.portfolio__grid{grid-template-columns:1fr}.services__columns{gap:0}.process__container{padding-inline:1.5rem}.process__step{grid-template-columns:40px minmax(0,1fr);gap:1rem}.process__badge{width:50px;height:50px;transform:translateX(-21px)}.process__badge .process__number{font-size:1.5rem}.process__line{left:1.5rem;border-width:5px}.process__content h2{font-size:1.7rem}.process__badge--end{width:30px;height:30px;transform:translateX(-12px)}.timeline__list .services__item{gap:1rem}.form{padding:1.25rem}.page--home .section--hero{padding-block:3rem}.portfolio__card{max-width:100%}}
@media(prefers-reduced-motion:reduce){.portfolio__card:hover,.portfolio__card:focus-within{transform:none}}
/* Keep grid items aligned and the decorative process spine visible. */
.section .container.features__grid>.content__group,.section .portfolio__grid>.content__group,.section .layout>.content__group{margin-top:0}.features__grid{align-items:stretch}.features__card{height:auto}.process__line.content__group:empty{display:block;top:45px;bottom:25px}.process__badge--end.content__group:empty{display:flex}.section .process__list>.process__step{margin-top:0}.process__step .process__badge{margin-top:0}
@media(max-width:550px){.process__line.content__group:empty{top:25px;bottom:15px}}
/* Keep banner overlays above photographs and below readable text. */
.page:not(.page--home):not(.page--contact) .section--hero>.container{z-index:auto}.page:not(.page--home):not(.page--contact) .hero__layout>img{z-index:0}.page:not(.page--home):not(.page--contact) .section--hero::after{z-index:1}.page:not(.page--home):not(.page--contact) .hero__copy{position:relative;z-index:2}.page--home .hero__copy{color:var(--color-navy-dark)}
/* Near-original orange: white labels at 19px bold give 3.11:1 large-text contrast. */
:root {
  --button-background: #cd8125;
  --button-text: #ffffff;
  --button-hover-background: var(--color-navy);
  --button-active-background: var(--color-navy-dark);
  --button-border: #ffffff;
  --button-focus-inner: #ffffff;
  --button-focus-outer: var(--color-navy-dark);
}
.button,
.header__link,
.header__link:last-child,
.header__toggle {
  background-color: var(--button-background);
  color: var(--button-text);
  border-color: var(--button-border);
  font-size: max(19px, 1.1875rem);
  font-weight: 700;
  text-shadow: none;
}
.header__link[aria-current] {
  background-color: var(--button-hover-background);
  color: var(--button-text);
  text-decoration: underline;
}
.button:hover,
.button:focus-visible,
.header__link:hover,
.header__link:focus-visible,
.header__toggle:hover,
.header__toggle:focus-visible {
  background-color: var(--button-hover-background);
  color: var(--button-text);
}
.button:active,
.header__link:active,
.header__toggle:active {
  background-color: var(--button-active-background);
  color: var(--button-text);
}
.button:focus-visible,
.header__link:focus-visible,
.header__toggle:focus-visible {
  outline: 3px solid var(--button-focus-outer);
  outline-offset: 3px;
  box-shadow: 0 0 0 3px var(--button-focus-inner);
}



/* Separate the closing invitation from the service-card grid. */
.section .container>.content__group.features__closing{margin-top:var(--space-4)}
/* Centre the service-features introduction and closing invitation. */
.section .container > .features__title {
  max-width: none;
  width: 100%;
  text-align: center;
}
.features__closing {
  text-align: center;
}

/* Shared layout corrections: nested wrappers share the page gutter;
   grid gaps, rather than flow margins, control column alignment. */
.container .container {
  width: 100%;
}
.section .content__center > h2 {
  max-width: none;
  width: 100%;
}
.section .content__center > .content__group > p {
  margin-inline: auto;
}
.layout > .content__group > :is(h2, h3):first-child {
  margin-top: 0;
}
@media (max-width: 550px) {
  .header__inner { gap: var(--space-2); }
  .header__brand { flex-basis: min(170px, 45vw); }
  .header__brand img { width: 100%; }
}
/* Keep the shared enquiry heading proportionate on smaller screens. */
.enquiry h2 {
  font-size: clamp(2rem, 4vw, 3rem);
}
.section.contact__callback {
  padding-block: var(--space-4);
  text-align: center;
}
/* WCAG AA: readable text surfaces preserve the original surrounding gradients. */
:root { --color-readable-blue: #035a7d; --color-error: #9c231b; }
.page:not(.page--contact) .hero__copy {
  background-color: var(--color-readable-blue);
  color: var(--color-paper);
  padding: clamp(1.25rem, 2vw, 2rem);
  border-radius: var(--radius);
}
.enquiry__layout {
  background-color: var(--color-readable-blue);
  padding: clamp(1.25rem, 3vw, 2.5rem);
  border-radius: var(--radius);
}
.enquiry .form { background-color: var(--color-readable-blue); }
.section--blue, .section--blue:nth-child(odd) { background-color: var(--color-blue); }
.process__list { list-style: none; padding: 0; margin: 0; }
.process__step { margin: 0; }
.process__content > h3 { font-size: 2rem; }
.process__content > h4 { font-size: 1.4rem; }
.timeline__list h4 { font-size: 1.05rem; margin: 0; letter-spacing: 0; }
.form__error { color: var(--color-paper); font-weight: 700; text-transform: none; letter-spacing: 0; margin: 0; }
.form [aria-invalid="true"] { border: 3px solid var(--color-error); }
.form__notice h3 { font-size: 1.4rem; margin-top: 0; }
.form__notice ul { margin: 0; padding-left: 1.5rem; }
.form__field label { cursor: pointer; }
.form__field .form__hint { margin: 0; }
.form__field .form__hint, .form__preferences .form__hint { font-weight: 400; }
.footer__sitemap { white-space: nowrap; }
:focus-visible { outline: 3px solid var(--color-navy-dark); outline-offset: 3px; box-shadow: 0 0 0 3px var(--color-paper); }
@media (max-width:550px) {
  .process__content > h3 { font-size: 1.7rem; }
  .process__content > h4 { font-size: 1.3rem; }
  .enquiry .form { padding: var(--space-2); }
}

.page:not(.page--home):not(.page--contact) .section--hero::after { content: none; }
.process__container > .process__line.content__group:empty { display: none; }
.process__step:not(:last-child)::before {
  content: ''; position: absolute; left: 0; top: 45px;
  height: calc(100% + var(--space-5)); border-left: 8px solid var(--color-amber);
}
.process__closing { margin-top: var(--space-4); text-align: center; }
@media (max-width:550px) {
  .process__step:not(:last-child)::before { left: 1.5px; top: 25px; border-width: 5px; }
}
/* Let navigation and timeline markers grow with enlarged text. */
.header__inner { flex-wrap: wrap; gap: var(--space-2) var(--space-3); padding-block: var(--space-2); }
.header__nav { flex: 1 1 40rem; min-width: 0; flex-wrap: wrap; justify-content: flex-end; }
.timeline__badge { width: 2.5rem; height: 2.5rem; }
.timeline__badge .process__number { line-height: 1; }
.timeline__list .services__item { grid-template-columns: 2.5rem minmax(0, 1fr); }
.timeline__list::before { left: calc(1.25rem - 2.5px); }
.process__step { grid-template-columns: 4.375rem minmax(0, 1fr); }
.process__badge { width: 5.625rem; height: 5.625rem; transform: translateX(-2.5625rem); }
.process__badge .process__number { line-height: 1; }
.process__step:not(:last-child)::before { top: 2.8125rem; }
:is(h1,h2,h3,h4,p,a,label,.content__group) { overflow-wrap: anywhere; }
@media (max-width:550px) {
  .process__step { grid-template-columns: 2.5rem minmax(0, 1fr); }
  .process__badge { width: 3.125rem; height: 3.125rem; transform: translateX(-1.3125rem); }
  .process__step:not(:last-child)::before { top: 1.5625rem; }
}
/* The homepage copy sits directly on a three-stop brand gradient. */
:root {
  --gradient-home-hero: linear-gradient(180deg, var(--color-blue) 0%, var(--color-readable-blue) 72%, var(--color-aqua) 100%);
}
.page--home .section--hero { background: var(--gradient-home-hero) !important; }
.page.page--home .hero__copy { background: transparent; }
/* Inner-page photography uses a full-width gradient scrim, not a text box. */
.page:not(.page--contact) .hero__copy { background: transparent; }
.page:not(.page--home):not(.page--contact) .section--hero::after {
  content: '';
  pointer-events: none;
}
/* Banner gradients follow each photograph's composition. */
.page--website-design .section--hero {
  --hero-photo-gradient: linear-gradient(90deg, transparent 0%, rgba(3,90,125,.08) 18%, rgba(3,90,125,.85) 55%, rgba(3,90,125,.9) 100%);
}
.page--our-process .section--hero {
  --hero-photo-gradient: linear-gradient(90deg, rgba(3,90,125,.9) 0%, rgba(3,90,125,.85) 44%, rgba(3,90,125,.08) 88%, transparent 100%);
}
.page--our-work .section--hero {
  --hero-photo-gradient: linear-gradient(90deg, rgba(3,90,125,.85) 0%, rgba(3,90,125,.85) 48%, rgba(3,90,125,.06) 69%, transparent 100%);
}
.page--about-us .section--hero {
  --hero-photo-gradient: linear-gradient(90deg, rgba(3,90,125,.9) 0%, rgba(3,90,125,.85) 44%, rgba(3,90,125,.08) 92%, transparent 100%);
}
.page:not(.page--home):not(.page--contact) .section--hero::after {
  background: var(--hero-photo-gradient) !important;
}
.form, .form__field, .form__preferences { min-width: 0; min-inline-size: 0; }
.form legend { max-width: 100%; white-space: normal; }
.form input, .form textarea { min-width: 0; }
.form > .button { max-width: 100%; }
/* Keep photography and copy in one banner at every viewport width. */
@media (max-width:900px) {
  .page:not(.page--home):not(.page--contact) .section--hero {
    min-height: 26rem;
    padding-block: var(--space-4);
    --hero-photo-gradient: linear-gradient(90deg, rgba(3,90,125,.9) 0%, rgba(3,90,125,.85) 60%, transparent 100%);
  }
  .page:not(.page--home):not(.page--contact) .section--hero > .hero__layout {
    grid-template-columns: minmax(0,1fr);
    min-height: 20rem;
    gap: 0;
  }
  .page:not(.page--home):not(.page--contact) .hero__copy {
    width: 62%;
    max-width: none;
    grid-column: 1 !important;
    grid-row: 1;
    padding: var(--space-2);
  }
  .page--website-design .hero__copy { margin-left: auto; }
  .page.page--website-design:not(.page--home):not(.page--contact) .section--hero {
    --hero-photo-gradient: linear-gradient(90deg, transparent 0%, rgba(3,90,125,.85) 40%, rgba(3,90,125,.9) 100%);
  }
  .page--website-design .hero__layout > img { object-position: 35% center; }
  .page--our-process .hero__layout > img { object-position: 55% center; }
  .page--our-work .hero__layout > img { object-position: 65% center; }
  .page--about-us .hero__layout > img { object-position: right center; }
}
@media (max-width:550px) {
  .page:not(.page--home):not(.page--contact) .section--hero {
    min-height: 0;
    padding-block: var(--space-4);
    --hero-photo-gradient: linear-gradient(90deg, rgba(0,62,77,.84) 0%, rgba(0,62,77,.72) 84%, rgba(0,62,77,.4) 100%);
  }
  .page:not(.page--home):not(.page--contact) .hero__copy {
    width: 84%;
    padding: var(--space-1);
  }
  .page:not(.page--home):not(.page--contact) .hero__copy h1 {
    font-size: clamp(2rem,7vw,2.4rem);
  }
  .page:not(.page--home):not(.page--contact) .hero__copy h2 {
    font-size: clamp(1.3rem,4.5vw,1.6rem);
  }
  .page.page--website-design:not(.page--home):not(.page--contact) .section--hero {
    --hero-photo-gradient: linear-gradient(90deg, rgba(0,62,77,.4) 0%, rgba(0,62,77,.72) 16%, rgba(0,62,77,.84) 100%);
  }
  .page--website-design .hero__layout > img { object-position: 28% center; }
  .page--about-us .hero__layout > img { object-fit: contain !important; object-position: right center; }
}

.hero__copy .button { max-width: 100%; }

/* Google's permitted alternative: visible privacy/terms attribution is in the form.
   Hide its floating badge so it does not collide with the UserWay control. */
.grecaptcha-badge { visibility: hidden; }
.form .button:disabled { cursor: progress; }
