.hero { position: relative; height: min(900px, 100svh); min-height: 690px; overflow: hidden; color: var(--white); background: var(--navy); }
.hero-slides, .hero-slide, .hero-media, .hero-overlay { position: absolute; inset: 0; }
.hero-slide { opacity: 0; visibility: hidden; transition: opacity .85s ease, visibility .85s; }
.hero-slide.is-active { opacity: 1; visibility: visible; }
.hero-media { overflow: hidden; background-color: #092655; background-size: cover; background-position: center; transform: scale(1.025); transition: transform 7s linear; }
.hero-slide.is-active .hero-media { transform: scale(1); }
.hero-media video { width: 100%; height: 100%; object-fit: cover; }
.hero-media-one { background-image: radial-gradient(circle at 74% 34%, rgba(13,116,235,.62), transparent 25%), linear-gradient(120deg,#03152f 15%,#0a376b 52%,#061b3a 100%); }
.hero-media-two { background-image: radial-gradient(circle at 73% 55%, rgba(227,170,40,.45), transparent 22%), linear-gradient(120deg,#071429,#153b65 55%,#422f16); }
.hero-media-three { background-image: linear-gradient(120deg,#091b37,#27425f 50%,#6d6a61); }
.hero-media-four { background-image: radial-gradient(circle at 74% 30%,rgba(31,137,231,.45),transparent 23%),linear-gradient(120deg,#051731,#0a376b 55%,#164978); }
.hero-overlay { background: linear-gradient(90deg,rgba(2,13,30,.89) 0%,rgba(2,18,40,.68) 42%,rgba(2,18,40,.2) 74%,rgba(2,18,40,.42)),linear-gradient(0deg,rgba(2,11,25,.55),transparent 45%); }
.hero-content { position: relative; z-index: 2; height: 100%; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding-top: 64px; }
.eyebrow { margin: 0 0 1.5rem; color: var(--gold-light); font-size: .73rem; font-weight: 800; letter-spacing: .19em; text-transform: uppercase; }
.eyebrow::before { content: ""; display: inline-block; width: 36px; height: 2px; margin: 0 12px 3px 0; background: var(--gold); }
.hero h1, .hero h2 { max-width: 820px; margin: 0; color: var(--white); font-family: var(--font-display); font-size: clamp(3.1rem, 6.2vw, 6.1rem); font-weight: 600; line-height: 1.02; letter-spacing: -.055em; }
.hero h1 span, .hero h2 span { color: transparent; -webkit-text-stroke: 1px rgba(255,255,255,.75); }
.hero .hero-headline-solid {
  max-width: 760px;
  color: var(--white);
  font-size: clamp(3rem, 5vw, 5.2rem);
  line-height: 1.08;
  letter-spacing: -.045em;
}
.hero-lead { max-width: 610px; margin: 2rem 0 2.2rem; color: rgba(255,255,255,.81); font-size: clamp(1rem, 1.35vw, 1.18rem); line-height: 1.7; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .8rem; }
.slide-category { position: absolute; z-index: 3; right: 3.8vw; top: 50%; margin: 0; color: rgba(255,255,255,.65); font-size: .7rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; writing-mode: vertical-rl; transform: translateY(-50%); }
.hero-controls { position: absolute; z-index: 5; left: 50%; bottom: 43px; display: flex; align-items: center; gap: .75rem; transform: translateX(-50%); }
.hero-arrow, .hero-playback { width: 42px; height: 42px; color: var(--white); border: 1px solid rgba(255,255,255,.36); background: rgba(3,18,40,.26); border-radius: 50%; cursor: pointer; }
.hero-arrow:hover, .hero-playback:hover { border-color: var(--gold); color: var(--gold-light); }
.hero-indicators { display: flex; align-items: center; gap: .45rem; margin: 0 .3rem; }
.indicator { width: 32px; height: 24px; padding: 11px 0; border: 0; background: transparent; cursor: pointer; }
.indicator span { display: block; height: 2px; background: rgba(255,255,255,.35); overflow: hidden; }
.indicator.is-active span { background: var(--gold); }
.hero-playback .play-icon { display: none; font-size: .67rem; }
.hero-playback.is-paused .play-icon { display: inline; }
.hero-playback.is-paused .pause-icon { display: none; }
.hero-scroll { position: absolute; z-index: 4; left: 3.8vw; bottom: 50px; display: flex; align-items: center; gap: .8rem; color: rgba(255,255,255,.6); font-size: .66rem; letter-spacing: .14em; text-transform: uppercase; }
.hero-scroll span { width: 42px; height: 1px; background: var(--gold); }
.about-home-grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr); gap: clamp(3rem, 7vw, 7rem); align-items: center; }
.about-home-copy > p:not(.section-kicker, .about-highlight) { margin: 1rem 0 0; color: var(--muted); }
.about-home-copy .section-title { max-width: 720px; margin-bottom: 1.75rem; }
.about-highlight { margin: 1.7rem 0 0; padding-left: 1rem; color: var(--navy); border-left: 3px solid var(--gold); font-family: var(--font-display); font-weight: 700; }
.about-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2rem; }
.about-home-media { position: relative; margin: 0; padding: 0 0 24px 24px; }
.about-home-media::before { content: ""; position: absolute; inset: 24px 24px 0 0; z-index: -1; background: var(--gold); }
.about-home-media video,
.about-home-media > img { width: 100%; aspect-ratio: 6 / 5; object-fit: cover; object-position: center; background: var(--navy); }
.about-home-media figcaption { position: absolute; right: 0; bottom: 24px; max-width: 270px; padding: .8rem 1rem; color: rgba(255,255,255,.76); background: var(--navy); font-size: .76rem; }
.about-values { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 72px; border-top: 1px solid var(--line); }
.about-values article { padding: 28px 28px 0 0; }
.about-values article + article { padding-left: 28px; border-left: 1px solid var(--line); }
.about-values span { color: var(--gold); font-size: .72rem; font-weight: 800; letter-spacing: .12em; }
.about-values h3 { margin: 2rem 0 .45rem; font-family: var(--font-display); font-size: 1.06rem; }
.about-values p { margin: 0; color: var(--muted); font-size: .87rem; }
.product-showcase { display: grid; grid-template-columns: minmax(0, .75fr) minmax(440px, 1.25fr); gap: clamp(3rem, 7vw, 7rem); align-items: center; }
.product-showcase__copy > p:not(.section-kicker, .media-disclaimer) { margin: 1.4rem 0 0; color: var(--muted); font-size: 1.05rem; }
.product-showcase__actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2rem; }
.media-disclaimer { margin: 1.4rem 0 0; color: #788697; font-size: .75rem; }
.product-showcase__media { margin: 0; overflow: hidden; border-radius: 8px; box-shadow: var(--shadow); }
.product-showcase__image { width: 100%; height: auto; aspect-ratio: 595 / 419; object-fit: cover; }
.service-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.service-card { overflow: hidden; background: var(--white); border: 1px solid var(--line); border-radius: 8px; transition: transform .25s, box-shadow .25s, border-color .25s; }
.service-card:hover, .service-card:focus-within { transform: translateY(-6px); border-color: rgba(7,91,199,.35); box-shadow: var(--shadow); }
.service-card > a { display: block; height: 100%; }
.service-card > a:focus-visible { outline-offset: -4px; }
.service-card__media { overflow: hidden; aspect-ratio: 4 / 3; background: var(--surface); }
.service-card__image { width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform .35s; }
.service-card:hover .service-card__image, .service-card:focus-within .service-card__image { transform: scale(1.025); }
.service-card__body { padding: 1.6rem; }
.service-card__body > span { color: var(--gold); font-size: .7rem; font-weight: 800; letter-spacing: .12em; }
.service-card__body h3 { margin: 1.6rem 0 .55rem; font-family: var(--font-display); font-size: 1.25rem; }
.service-card__body p { margin: 0 0 1.35rem; color: var(--muted); font-size: .88rem; }
.service-card__body strong { color: var(--blue); font-size: .8rem; }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 2rem; margin-bottom: 48px; }
.section-heading > p { max-width: 390px; margin: 0; color: var(--muted); }
.product-preview { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); }
.product-preview article { min-height: 250px; padding: 34px 34px 28px; border-right: 1px solid var(--line); transition: background .25s, transform .25s; }
.product-preview article:last-child { border: 0; }
.product-preview article:hover { background: var(--white); transform: translateY(-5px); box-shadow: var(--shadow); }
.product-preview span, .service-list span { color: #9ba8b7; font-size: .7rem; font-weight: 700; letter-spacing: .12em; }
.product-preview h3 { margin: 65px 0 10px; font-family: var(--font-display); font-size: 1.35rem; }
.product-preview p { margin: 0; color: var(--muted); font-size: .9rem; }
.split-feature { display: grid; grid-template-columns: 1fr 1fr; gap: 8vw; align-items: center; }
.feature-visual { position: relative; min-height: 620px; overflow: hidden; background: #edf1f5; }
.paint-arc { position: absolute; width: 470px; height: 470px; left: -80px; top: 68px; border: 84px solid var(--blue); border-right-color: var(--gold); border-radius: 50%; transform: rotate(32deg); }
.paint-arc::after { content: ""; position: absolute; width: 160px; height: 270px; right: -104px; bottom: -100px; background: var(--gold); border-radius: 80% 0 55% 30%; transform: rotate(-30deg); }
.paint-card { position: absolute; right: 0; bottom: 0; width: 48%; padding: 2rem; color: var(--white); background: var(--navy); font-family: var(--font-display); font-size: 1.4rem; line-height: 1.25; }
.paint-card strong { color: var(--gold-light); font-size: 2rem; }
.feature-copy > p:not(.section-kicker) { color: var(--muted); font-size: 1.04rem; margin: 1.8rem 0; }
.service-list { margin: 0 0 2rem; padding: 0; list-style: none; }
.service-list li { display: grid; grid-template-columns: 42px 1fr; padding: .92rem 0; border-bottom: 1px solid var(--line); font-weight: 600; }
.dark-section { color: var(--white); background: var(--navy); overflow: hidden; }
.dark-section .section-title { color: var(--white); }
.narrow-heading { max-width: 780px; text-align: center; }
.narrow-heading .section-kicker::before { display: none; }
.narrow-heading > p:last-child { color: rgba(255,255,255,.64); }
.decorative-strip { width: min(1040px, 86vw); height: 230px; margin: 58px auto -165px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; transform: rotate(-2deg); }
.decorative-strip span { background: linear-gradient(130deg,#234f86,#8aa0b8); }
.decorative-strip span:nth-child(2) { background: linear-gradient(130deg,#8f661e,#efd581,#59401b); }
.decorative-strip span:nth-child(3) { background: linear-gradient(130deg,#d2d0c9,#fff,#4f6278); }
.decorative-showcase { color: var(--white); background: var(--navy); }
.decorative-showcase .section-title { max-width: 760px; color: var(--white); }
.decorative-showcase__heading { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr); gap: clamp(2rem, 7vw, 7rem); align-items: end; margin-bottom: 48px; }
.decorative-showcase__heading > p { max-width: 440px; margin: 0; color: rgba(255,255,255,.66); }
.finish-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.2rem; }
.finish-card { overflow: hidden; color: var(--ink); background: var(--white); border: 1px solid rgba(255,255,255,.14); border-radius: 8px; transition: transform .25s, box-shadow .25s; }
.finish-card:hover, .finish-card:focus-within { transform: translateY(-5px); box-shadow: 0 22px 46px rgba(0,0,0,.24); }
.finish-card__media { aspect-ratio: 4 / 3; overflow: hidden; background: #dfe5eb; }
.finish-card__image { width: 100%; height: 100%; object-fit: cover; }
.finish-card__media-placeholder { height: 100%; display: grid; place-items: center; padding: 1.5rem; color: #5d6c7d; background: linear-gradient(145deg,#e7ebef,#cfd8e1); text-align: center; font-size: .78rem; }
.finish-card__body { padding: 1.5rem; }
.finish-card__category { margin: 0; color: var(--blue); font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.finish-card h3 { margin: .8rem 0 .55rem; font-family: var(--font-display); font-size: 1.28rem; line-height: 1.2; }
.finish-card__description { margin: 0; color: var(--muted); font-size: .87rem; }
.finish-card__colours { margin: .85rem 0 0; color: #768598; font-size: .75rem; }
.finish-card__actions { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; margin-top: 1.35rem; }
.finish-card__actions .button { min-height: 44px; padding: .6rem .75rem; font-size: .75rem; }
.finish-state { grid-column: 1 / -1; padding: clamp(2rem, 6vw, 5rem); color: rgba(255,255,255,.7); border: 1px dashed rgba(255,255,255,.3); border-radius: 8px; text-align: center; }
.finish-state p { margin: 0; }
.project-placeholders { display: grid; grid-template-columns: 1.25fr .75fr; gap: 1.4rem; align-items: start; }
.project-placeholders article:nth-child(2) { margin-top: 100px; }
.project-image { height: 420px; background: #dfe6ec; }
.project-one {
  background:
    linear-gradient(0deg, rgba(6,27,58,.12), rgba(6,27,58,.12)),
    url("../images/backgrounds/hero-02-poster.jpg") center / cover;
}
.project-two {
  height: 340px;
  background:
    linear-gradient(0deg, rgba(6,27,58,.08), rgba(6,27,58,.08)),
    url("../images/backgrounds/hero-03-poster.jpg") center / cover;
}
.project-placeholders article > p { margin: 1.2rem 0 .3rem; color: var(--blue); font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .13em; }
.project-placeholders h3 { margin: 0; font-family: var(--font-display); font-size: 1.4rem; }
.featured-transformation { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr); overflow: hidden; padding: 0; border: 1px solid var(--line); border-radius: 8px; box-shadow: var(--shadow); }
.project-card__image { width: 100%; height: 100%; min-height: 430px; object-fit: cover; object-position: center; }
.featured-transformation__copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(2rem, 4vw, 4rem); background: var(--white); }
.featured-transformation__copy > p:first-child { margin: 0; color: var(--blue); font-size: .7rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.featured-transformation__copy h3 { margin: 1rem 0; font-family: var(--font-display); font-size: clamp(1.8rem, 3vw, 2.7rem); line-height: 1.1; letter-spacing: -.035em; }
.featured-transformation__copy > p:not(:first-child) { margin: 0 0 1.8rem; color: var(--muted); }
.before-after-heading { max-width: 790px; }
.before-after-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; margin-top: 48px; }
.transformation-card { position: relative; margin: 0; overflow: hidden; aspect-ratio: 4 / 3; border: 1px solid var(--line); border-radius: 8px; background: var(--white); box-shadow: 0 12px 34px rgba(6,27,58,.09); }
.transformation-card img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.transformation-label { position: absolute; left: 18px; bottom: 18px; min-width: 92px; padding: .55rem .9rem; color: var(--white); border-radius: 4px; font-family: var(--font-display); font-size: .92rem; font-weight: 800; text-align: center; text-transform: uppercase; letter-spacing: .08em; }
.transformation-label--before { background: rgba(6,27,58,.88); }
.transformation-label--after { color: var(--navy); background: var(--gold); }
.before-after-action { display: flex; justify-content: center; margin-top: 34px; }
.centered-heading { max-width: 690px; text-align: center; }
.centered-heading .section-kicker::before { display: none; }
.centered-heading > p:last-child { color: var(--muted); }
.process-grid { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 54px; padding: 0; list-style: none; counter-reset: process; }
.process-grid li { padding: 30px; border-left: 1px solid var(--line); }
.process-grid li:last-child { border-right: 1px solid var(--line); }
.process-grid span { color: var(--gold); font-family: var(--font-display); font-size: 1.6rem; }
.process-grid h3 { margin: 3.5rem 0 .5rem; font-family: var(--font-display); font-size: 1.1rem; }
.process-grid p { margin: 0; color: var(--muted); font-size: .87rem; }
.why-section { color: var(--white); background: #092d5a; }
.why-section .section-title { color: var(--white); }
.why-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8vw; }
.why-points article { padding: 1.3rem 0; border-top: 1px solid rgba(255,255,255,.2); }
.why-points h3 { margin: 0 0 .5rem; font-family: var(--font-display); }
.why-points p { margin: 0; color: rgba(255,255,255,.65); }
.quote-banner { padding: 84px 0; color: var(--white); background: linear-gradient(110deg,#061b3a,#0b3f7b); }
.quote-inner { display: grid; grid-template-columns: 1.3fr .7fr; gap: 6rem; align-items: end; }
.quote-inner h2 { margin: 0; font-family: var(--font-display); font-size: clamp(2.2rem,4vw,3.8rem); line-height: 1.05; letter-spacing: -.04em; }
.quote-inner > div:last-child p { color: rgba(255,255,255,.68); margin: 0 0 1.4rem; }
