:root {
  --night: #164653;
  --deep: #1f5966;
  --deep-soft: #2a6872;
  --lagoon: #2e7181;
  --aqua: #a8d2ce;
  --sand: #d2c4a5;
  --sand-deep: #c4d5d1;
  --cream: #f0eee6;
  --ink: #153f49;
  --line-light: rgba(240, 238, 230, .24);
  --line-dark: rgba(21, 63, 73, .18);
  --shadow: 0 30px 80px rgba(12, 50, 59, .18);
  --shell: min(1240px, calc(100% - 64px));
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--night);
  color: var(--cream);
  font-family: Arial, Helvetica, sans-serif;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
.shell { width: var(--shell); margin-inline: auto; }
.skip-link { position: fixed; left: 16px; top: -80px; z-index: 1000; background: var(--sand); color: var(--night); padding: 10px 14px; }
.skip-link:focus { top: 16px; }

h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: Georgia, 'Times New Roman', serif; font-weight: 400; letter-spacing: -.038em; line-height: 1.03; }
h1 { font-size: clamp(3.5rem, 7vw, 7.3rem); }
h2 { font-size: clamp(2.7rem, 5vw, 5rem); }
h3 { font-size: clamp(1.55rem, 2.2vw, 2.25rem); }
.section-pad { padding: 145px 0; }
.eyebrow { margin: 0 0 20px; font-size: .7rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--sand); }
.eyebrow-blue { color: var(--lagoon); }

.site-header { position: absolute; inset: 0 0 auto; z-index: 20; color: var(--cream); }
.nav-shell { min-height: 96px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 44px; border-bottom: 1px solid var(--line-light); }
.brand { display: inline-flex; align-items: center; gap: 12px; }
.brand-symbol { width: 44px; height: 44px; border: 1px solid currentColor; border-radius: 50%; display: grid; place-items: center; }
.brand-symbol svg { width: 29px; fill: currentColor; }
.brand strong, .brand small { display: block; line-height: 1; }
.brand strong { font-family: Georgia, 'Times New Roman', serif; font-size: 1.35rem; font-weight: 400; letter-spacing: -.03em; }
.brand small { margin-top: 5px; font-size: .61rem; letter-spacing: .24em; text-transform: uppercase; }
.main-nav { display: flex; justify-content: center; gap: 36px; font-size: .82rem; letter-spacing: .05em; }
.main-nav a { position: relative; padding: 12px 0; }
.main-nav a::after { content: ''; position: absolute; left: 0; right: 100%; bottom: 5px; height: 1px; background: currentColor; transition: right .25s ease; }
.main-nav a:hover::after, .main-nav a:focus-visible::after { right: 0; }
.nav-contact { text-align: right; line-height: 1.2; }
.nav-contact small, .nav-contact strong { display: block; }
.nav-contact small { font-size: .65rem; letter-spacing: .12em; text-transform: uppercase; opacity: .72; margin-bottom: 4px; }
.nav-contact strong { font-size: .88rem; }
.menu-toggle { display: none; background: none; border: 0; color: currentColor; width: 44px; height: 44px; padding: 8px; }
.menu-toggle span { display: block; height: 1px; background: currentColor; margin: 8px 0; }

.hero { position: relative; min-height: 900px; height: 100svh; max-height: 1080px; overflow: hidden; background: var(--night); }
.hero-photo, .hero-shade { position: absolute; inset: 0; }
.hero-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 52%; transform: scale(1.01); }
.hero-shade { background: linear-gradient(90deg, rgba(18, 64, 76, .83) 0%, rgba(23, 78, 90, .48) 48%, rgba(23, 78, 90, .08) 78%), linear-gradient(0deg, rgba(19, 60, 70, .62) 0%, transparent 44%); }
.hero-layout { position: relative; z-index: 2; height: 100%; padding-top: 188px; padding-bottom: 138px; display: flex; align-items: center; }
.hero-copy { max-width: 890px; }
.hero-copy h1 { margin-bottom: 30px; }
.hero-intro { max-width: 640px; margin-bottom: 40px; color: rgba(229, 220, 196, .82); font-size: 1.08rem; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 14px; }
.button { min-height: 54px; display: inline-flex; align-items: center; justify-content: center; padding: 0 25px; border: 1px solid transparent; font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; transition: transform .2s ease, background .2s ease, color .2s ease; cursor: pointer; }
.button:hover { transform: translateY(-2px); }
.button-solid { background: var(--sand); color: var(--night); }
.button-solid:hover { background: var(--cream); }
.button-outline { border-color: rgba(229, 220, 196, .52); color: var(--cream); }
.button-outline:hover { background: rgba(229, 220, 196, .1); }
.button-full { width: 100%; }
.hero-rail { position: absolute; z-index: 3; left: 50%; bottom: 0; transform: translateX(-50%); display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line-light); }
.hero-rail span { min-height: 76px; display: flex; align-items: center; padding: 0 24px; border-right: 1px solid var(--line-light); font-family: Georgia, 'Times New Roman', serif; font-size: 1.06rem; }
.hero-rail span:first-child { border-left: 1px solid var(--line-light); }

.statement { background: #d8e4e1; color: var(--ink); padding: 76px 0 82px; }
.statement-layout { display: grid; grid-template-columns: .95fr 1.05fr; gap: 78px; align-items: center; }
.statement-copy h2 { margin: 0 0 22px; max-width: 650px; font-size: clamp(2.55rem, 4vw, 4.35rem); }
.statement-copy > p { margin: 0; max-width: 590px; color: rgba(21, 63, 73, .75); font-size: 1rem; }
.statement-points { display: grid; grid-template-columns: repeat(3, 1fr); border-left: 1px solid var(--line-dark); }
.statement-points > div { min-height: 190px; padding: 22px 24px 18px; border-right: 1px solid var(--line-dark); display: flex; flex-direction: column; }
.statement-points span { font-size: .66rem; color: var(--lagoon); }
.statement-points strong { margin: auto 0 10px; font-family: Georgia, 'Times New Roman', serif; font-size: 1.42rem; font-weight: 400; line-height: 1.08; }
.statement-points small { color: rgba(21, 63, 73, .68); font-size: .82rem; line-height: 1.5; }

.services { display: grid; grid-template-columns: 47% 53%; min-height: 1040px; background: #215c69; }
.services-photo { position: relative; min-height: 760px; overflow: hidden; }
.services-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.services-photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(7, 28, 32, .72), transparent 55%); }
.photo-label { position: absolute; z-index: 2; left: 48px; right: 48px; bottom: 44px; border-top: 1px solid rgba(229,220,196,.45); padding-top: 20px; }
.photo-label span, .photo-label strong { display: block; }
.photo-label span { margin-bottom: 7px; font-size: .67rem; letter-spacing: .15em; text-transform: uppercase; color: var(--sand); }
.photo-label strong { font-family: Georgia, 'Times New Roman', serif; font-size: 1.55rem; font-weight: 400; }
.services-panel { display: flex; align-items: center; padding: 110px 8vw; }
.services-inner { width: min(680px, 100%); }
.services-inner > h2 { margin-bottom: 56px; max-width: 630px; }
.service-list { border-top: 1px solid var(--line-light); }
.service-item { display: grid; grid-template-columns: 44px 1fr; gap: 28px; padding: 30px 0; border-bottom: 1px solid var(--line-light); }
.service-item > span { padding-top: 5px; font-size: .67rem; color: var(--aqua); }
.service-item h3 { margin: 0 0 11px; font-size: 1.75rem; }
.service-item p { margin: 0; color: rgba(229, 220, 196, .68); max-width: 570px; }
.text-link { display: inline-flex; gap: 12px; align-items: center; margin-top: 36px; padding-bottom: 5px; border-bottom: 1px solid currentColor; font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.text-link span { font-size: 1rem; }

.feature-image { position: relative; min-height: 760px; display: flex; align-items: flex-end; overflow: hidden; }
.feature-image > img, .feature-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.feature-image > img { object-fit: cover; object-position: center 52%; }
.feature-shade { background: linear-gradient(90deg, rgba(22, 70, 83, .72), rgba(22, 70, 83, .12) 72%), linear-gradient(0deg, rgba(22, 70, 83, .42), transparent 55%); }
.feature-copy { position: relative; z-index: 2; padding-bottom: 90px; }
.feature-copy h2 { max-width: 780px; margin-bottom: 36px; }

.projects { background: var(--sand-deep); color: var(--ink); }
.projects-head { display: grid; grid-template-columns: 1fr .48fr; gap: 90px; align-items: end; margin-bottom: 65px; }
.projects-head h2 { margin: 0; max-width: 800px; }
.projects-note { margin: 0 0 8px; color: rgba(22, 54, 58, .72); }
.project-layout { display: grid; grid-template-columns: 1.35fr .65fr; gap: 24px; min-height: 790px; }
.project-main, .project-small { position: relative; overflow: hidden; box-shadow: var(--shadow); }
.project-main img, .project-small img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease; }
.project-main:hover img, .project-small:hover img { transform: scale(1.035); }
.project-main::after, .project-small::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(7, 28, 32, .84), transparent 58%); }
.project-side { display: grid; grid-template-rows: 1.2fr .8fr; gap: 24px; }
.project-caption { position: absolute; z-index: 2; left: 34px; right: 34px; bottom: 30px; color: var(--cream); }
.project-caption span { display: block; margin-bottom: 6px; font-size: .66rem; letter-spacing: .14em; text-transform: uppercase; color: var(--sand); }
.project-caption h3 { margin: 0; font-size: 2rem; }
.project-quote { display: flex; flex-direction: column; justify-content: space-between; background: #2f7480; color: var(--cream); padding: 42px; }
.quote-mark { font-family: Georgia, 'Times New Roman', serif; font-size: 5rem; line-height: .7; color: var(--aqua); }
.project-quote p { margin: 30px 0; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(1.7rem, 2.5vw, 2.7rem); line-height: 1.15; }
.light-link { margin-top: auto; align-self: flex-start; }

.process { background: #1b5360; padding: 120px 0 130px; }
.process-head { display: grid; grid-template-columns: .55fr 1fr; gap: 70px; align-items: end; margin-bottom: 65px; }
.process-head h2 { margin: 0; max-width: 760px; }
.process-line { list-style: none; margin: 0 auto; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line-light); }
.process-line li { min-height: 265px; padding: 32px 26px 20px 0; border-right: 1px solid var(--line-light); }
.process-line li:not(:first-child) { padding-left: 28px; }
.process-line li:last-child { border-right: 0; }
.process-line span { font-size: .67rem; color: var(--aqua); }
.process-line h3 { margin: 52px 0 14px; font-size: 1.85rem; }
.process-line p { margin: 0; color: rgba(229, 220, 196, .66); }

.contact { background: #286774; padding: 140px 0; }
.contact-grid { display: grid; grid-template-columns: .84fr 1fr; gap: 120px; align-items: start; }
.contact-copy h2 { margin-bottom: 28px; }
.contact-copy > p:not(.eyebrow) { max-width: 540px; color: rgba(229, 220, 196, .7); }
.contact-details { display: grid; gap: 20px; margin-top: 52px; }
.contact-details a { display: block; padding-bottom: 18px; border-bottom: 1px solid var(--line-light); }
.contact-details small, .contact-details strong { display: block; }
.contact-details small { margin-bottom: 6px; font-size: .65rem; letter-spacing: .14em; text-transform: uppercase; color: var(--aqua); }
.contact-details strong { font-family: Georgia, 'Times New Roman', serif; font-size: 1.28rem; font-weight: 400; }
.enquiry-form { padding: 42px 44px 45px; border: 1px solid var(--line-light); background: rgba(18, 68, 80, .3); }
.field-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.enquiry-form label { display: block; margin-bottom: 18px; }
.enquiry-form label > span { display: block; margin-bottom: 7px; font-size: .65rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--aqua); }
input, select, textarea { width: 100%; border: 0; border-bottom: 1px solid rgba(229, 220, 196, .32); border-radius: 0; background: transparent; color: var(--cream); padding: 11px 0 12px; outline: none; }
select option { color: var(--night); }
input::placeholder, textarea::placeholder { color: rgba(229,220,196,.42); }
input:focus, select:focus, textarea:focus { border-color: var(--sand); }
textarea { resize: vertical; }
.enquiry-form .button-solid { margin-top: 9px; }
.form-note { margin: 14px 0 0; text-align: center; font-size: .7rem; color: rgba(229, 220, 196, .48); }
.form-note.success { color: var(--aqua); }

.site-footer { background: #123c47; }
.footer-top { display: grid; grid-template-columns: auto 1fr auto; gap: 70px; align-items: center; padding: 58px 0; border-bottom: 1px solid var(--line-light); }
.footer-top > p { margin: 0; max-width: 500px; color: rgba(229, 220, 196, .62); }
.footer-links { display: flex; gap: 24px; font-size: .76rem; }
.footer-bottom { display: flex; justify-content: space-between; padding: 22px 0 30px; color: rgba(229, 220, 196, .45); font-size: .69rem; }
.floating-call { position: fixed; right: 22px; bottom: 22px; z-index: 30; width: 56px; height: 56px; display: grid; place-items: center; border-radius: 50%; background: var(--sand); color: #174653; box-shadow: 0 14px 35px rgba(0,0,0,.22); }
.floating-call svg { width: 23px; fill: currentColor; }

.reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s ease, transform .7s ease; }
.reveal.visible { opacity: 1; transform: none; }
.delay-1 { transition-delay: .13s; }

@media (max-width: 1000px) {
  :root { --shell: min(100% - 42px, 790px); }
  .nav-shell { grid-template-columns: auto auto; justify-content: space-between; min-height: 82px; }
  .menu-toggle { display: block; order: 3; }
  .main-nav { position: absolute; top: 82px; left: 21px; right: 21px; display: none; flex-direction: column; gap: 0; padding: 18px; background: var(--night); border: 1px solid var(--line-light); box-shadow: var(--shadow); }
  .main-nav.open { display: flex; }
  .main-nav a { padding: 14px 8px; border-bottom: 1px solid var(--line-light); }
  .main-nav a:last-child { border-bottom: 0; }
  .nav-contact { display: none; }
  .statement-layout, .projects-head, .process-head, .contact-grid { grid-template-columns: 1fr; gap: 46px; }
  .statement-points { border-left: 0; border-top: 1px solid var(--line-dark); }
  .services { grid-template-columns: 1fr; min-height: 0; }
  .services-photo { min-height: 720px; }
  .services-panel { padding: 100px max(21px, calc((100vw - min(100% - 42px, 790px))/2)); }
  .project-layout { grid-template-columns: 1fr; min-height: 0; }
  .project-main { min-height: 620px; }
  .project-side { grid-template-columns: 1fr 1fr; grid-template-rows: 520px; }
  .process-line { grid-template-columns: 1fr 1fr; }
  .process-line li:nth-child(2) { border-right: 0; }
  .process-line li:nth-child(n+3) { border-top: 1px solid var(--line-light); }
  .footer-top { grid-template-columns: 1fr; gap: 28px; }
}

@media (max-width: 680px) {
  :root { --shell: calc(100% - 32px); }
  .section-pad { padding: 92px 0; }
  h1 { font-size: clamp(3.05rem, 15vw, 4.8rem); }
  h2 { font-size: clamp(2.55rem, 12vw, 4rem); }
  .nav-shell { min-height: 74px; }
  .brand-symbol { width: 38px; height: 38px; }
  .brand strong { font-size: 1.15rem; }
  .main-nav { top: 74px; left: 16px; right: 16px; }
  .hero { min-height: 790px; height: 100svh; max-height: none; }
  .hero-shade { background: linear-gradient(90deg, rgba(18, 64, 76, .86), rgba(18,64,76,.38)), linear-gradient(0deg, rgba(18,60,70,.68), transparent 55%); }
  .hero-layout { padding-top: 122px; padding-bottom: 135px; }
  .hero-copy h1 br { display: none; }
  .hero-intro { font-size: .98rem; }
  .hero-actions { flex-direction: column; }
  .button { width: 100%; }
  .hero-rail { grid-template-columns: 1fr 1fr; }
  .hero-rail span { min-height: 48px; padding: 0 12px; font-size: .9rem; }
  .hero-rail span:nth-child(3), .hero-rail span:nth-child(4) { display: none; }
  .statement { padding: 68px 0 72px; }
  .statement-layout { gap: 38px; }
  .statement-copy > p { font-size: .98rem; }
  .statement-points { grid-template-columns: 1fr; }
  .statement-points > div { min-height: 0; padding: 22px 0; border-right: 0; border-bottom: 1px solid var(--line-dark); }
  .statement-points strong { margin: 22px 0 8px; }
  .services-photo { min-height: 560px; }
  .photo-label { left: 24px; right: 24px; bottom: 24px; }
  .services-panel { padding: 85px 16px 95px; }
  .services-inner > h2 { margin-bottom: 42px; }
  .service-item { grid-template-columns: 34px 1fr; gap: 14px; padding: 26px 0; }
  .service-item h3 { font-size: 1.55rem; }
  .feature-image { min-height: 640px; }
  .feature-copy { padding-bottom: 62px; }
  .project-main { min-height: 510px; }
  .project-side { grid-template-columns: 1fr; grid-template-rows: 460px auto; }
  .project-quote { min-height: 360px; padding: 32px 26px; }
  .project-caption { left: 24px; right: 24px; bottom: 24px; }
  .process { padding: 92px 0 102px; }
  .process-line { grid-template-columns: 1fr; }
  .process-line li, .process-line li:not(:first-child) { min-height: 0; padding: 28px 0; border-right: 0; border-top: 1px solid var(--line-light); }
  .process-line li:first-child { border-top: 0; }
  .process-line h3 { margin: 30px 0 10px; }
  .contact { padding: 95px 0; }
  .enquiry-form { padding: 28px 22px; }
  .field-pair { grid-template-columns: 1fr; gap: 0; }
  .footer-bottom { flex-direction: column; gap: 5px; }
  .floating-call { right: 16px; bottom: 16px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
  .reveal { opacity: 1; transform: none; }
}


body{background:#f3f4ef;color:#153f49}.inner-header{position:relative;background:#245f6c;color:#f0eee6}.inner-header .nav-shell{border-bottom-color:rgba(240,238,230,.2)}.site-footer{background:#174b57}.footer-columns{display:grid;grid-template-columns:1.35fr repeat(3,1fr);gap:55px;padding:68px 0 55px}.footer-columns h2{font-family:Arial,Helvetica,sans-serif;font-size:.68rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;margin:0 0 18px}.footer-columns p,.footer-columns span{color:rgba(240,238,230,.62)}.footer-columns a:not(.brand){display:block;margin:9px 0;color:rgba(240,238,230,.76);font-size:.82rem}.button-blue{background:#2e7181;color:#f0eee6}.button-blue:hover{background:#245f6c}.breadcrumbs{padding:20px 0;display:flex;flex-wrap:wrap;gap:10px;font-size:.72rem;color:rgba(21,63,73,.65)}.inner-hero{position:relative;min-height:540px;display:flex;align-items:flex-end;overflow:hidden;background:#245f6c;color:#f0eee6}.inner-hero>img,.inner-hero-shade{position:absolute;inset:0;width:100%;height:100%}.inner-hero>img{object-fit:cover}.inner-hero-shade{background:linear-gradient(90deg,rgba(25,80,92,.86),rgba(25,80,92,.3)),linear-gradient(0deg,rgba(18,58,68,.55),transparent 55%)}.inner-hero-copy{position:relative;z-index:2;padding:85px 0 70px}.inner-hero-copy h1{max-width:980px;margin-bottom:22px;font-size:clamp(3rem,6vw,6rem)}.inner-hero-copy>p:last-child{max-width:720px;color:rgba(240,238,230,.8)}.index-hero{background:#245f6c;color:#f0eee6;padding:82px 0 68px}.index-hero h1{max-width:980px;margin-bottom:22px}.index-hero p:last-child{max-width:760px;color:rgba(240,238,230,.78)}.index-section,.content-section,.contact-page{padding:78px 0 108px}.content-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:80px;align-items:start}.prose{max-width:800px}.prose>.lead{font-family:Georgia,'Times New Roman',serif;font-size:clamp(1.55rem,2.5vw,2.25rem);line-height:1.28;color:#153f49}.prose h2{margin:58px 0 17px;font-size:clamp(2rem,3.2vw,3.25rem)}.prose p,.prose li{color:rgba(21,63,73,.78)}.sidebar-card{position:sticky;top:24px;padding:28px;background:#d8e4e1;border:1px solid rgba(21,63,73,.16)}.sidebar-card h2{font-size:1.7rem}.sidebar-card .button{width:100%;margin-top:12px}.directory-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.directory-card{min-height:245px;padding:27px;background:#edf3f1;border:1px solid rgba(21,63,73,.16);display:flex;flex-direction:column;transition:transform .2s ease,box-shadow .2s ease}.directory-card:hover{transform:translateY(-4px);box-shadow:0 24px 70px rgba(15,67,77,.15)}.directory-card>span:first-child{color:#2e7181;font-size:.63rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.directory-card h2{font-size:1.72rem;margin:48px 0 12px}.directory-card p{color:rgba(21,63,73,.7)}.directory-card .text-link{margin-top:auto;align-self:flex-start}.filter-bar{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;margin-bottom:32px}.filter-bar input{width:100%;padding:15px 17px;background:#edf3f1;border:1px solid rgba(21,63,73,.16);color:#153f49}.filter-count{font-size:.75rem;color:rgba(21,63,73,.65)}.related{padding:88px 0;background:#d8e4e1}.mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.mini-card{padding:27px;min-height:225px;background:#f3f4ef;border:1px solid rgba(21,63,73,.16)}.mini-card span{color:#2e7181;font-size:.63rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.mini-card h3{margin:48px 0 12px;font-size:1.55rem}.mini-card p{color:rgba(21,63,73,.68)}.area-facts{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:32px 0}.area-fact{padding:20px;background:#edf3f1;border:1px solid rgba(21,63,73,.16)}.area-fact span{display:block;color:#2e7181;font-size:.62rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;margin-bottom:7px}.guide-answer{padding:25px 27px;margin:28px 0 42px;background:#d8e4e1;border-left:4px solid #2e7181}.guide-answer strong{display:block;font-family:Georgia,'Times New Roman',serif;font-size:1.35rem;font-weight:400;margin-bottom:8px}.project-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.project-card{position:relative;min-height:500px;overflow:hidden;color:#f0eee6}.project-card img{width:100%;height:100%;object-fit:cover}.project-card:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(13,52,61,.82),transparent 60%)}.project-card-copy{position:absolute;z-index:2;left:28px;right:28px;bottom:26px}.project-card-copy span{color:#d6c7a6;font-size:.64rem;letter-spacing:.13em;text-transform:uppercase}.project-card-copy h2{font-size:2rem;margin:8px 0 0}.contact-grid{display:grid;grid-template-columns:.8fr 1fr;gap:90px}.contact-details{display:grid;gap:14px;margin-top:38px}.contact-details a,.contact-details div{padding:18px 0;border-bottom:1px solid rgba(21,63,73,.16)}.contact-details small,.contact-details strong{display:block}.contact-details small{color:#2e7181;font-size:.63rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.contact-details strong{font-family:Georgia,'Times New Roman',serif;font-size:1.25rem;font-weight:400;margin-top:5px}.enquiry-form{padding:36px;background:#d8e4e1;border:1px solid rgba(21,63,73,.16)}.enquiry-form label{display:block;margin-bottom:16px}.enquiry-form label>span{display:block;color:#2e7181;font-size:.63rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;margin-bottom:7px}.enquiry-form input,.enquiry-form select,.enquiry-form textarea{width:100%;padding:12px;background:#f3f4ef;border:1px solid rgba(21,63,73,.16);color:#153f49}.enquiry-form textarea{resize:vertical}.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:16px}.enquiry-form .button{width:100%}.form-note{text-align:center;font-size:.72rem;color:rgba(21,63,73,.65)}.home-directory{padding:112px 0;background:#edf3f1}.home-directory.alt{background:#f3f4ef}.home-directory-head{display:grid;grid-template-columns:1fr .55fr;gap:70px;align-items:end;margin-bottom:50px}.home-directory-head h2{margin-bottom:0}.home-directory-head p{color:rgba(21,63,73,.72)}.home-card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.home-card{display:block;min-height:260px;padding:29px;background:#f3f4ef;border:1px solid rgba(21,63,73,.16)}.alt .home-card{background:#edf3f1}.home-card span{color:#2e7181;font-size:.63rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.home-card h3{margin:55px 0 12px}.home-card p{color:rgba(21,63,73,.7)}.home-cta{padding:105px 0;background:#2e7181;color:#f0eee6}.home-cta-grid{display:grid;grid-template-columns:1fr .65fr;gap:85px;align-items:end}.home-cta-grid h2{margin-bottom:0}.home-cta-grid p{color:rgba(240,238,230,.74)}
@media(max-width:1000px){.footer-columns{grid-template-columns:1fr 1fr}.content-layout,.contact-grid,.home-directory-head,.home-cta-grid{grid-template-columns:1fr;gap:42px}.directory-grid,.home-card-grid{grid-template-columns:repeat(2,1fr)}.sidebar-card{position:static}}
@media(max-width:680px){.footer-columns,.directory-grid,.home-card-grid,.mini-grid,.project-grid,.area-facts{grid-template-columns:1fr}.footer-columns{gap:28px}.inner-hero{min-height:460px}.inner-hero-copy{padding:62px 0 52px}.index-section,.content-section,.contact-page,.related,.home-directory{padding:70px 0 82px}.field-pair{grid-template-columns:1fr;gap:0}.enquiry-form{padding:24px 20px}.filter-bar{grid-template-columns:1fr}.project-card{min-height:430px}}


.project-card img{transition:transform .55s ease}
.project-card:hover img{transform:scale(1.025)}

/* Final readability and layout polish */
:root {
  --night: #164b56;
  --deep: #1e5f6c;
  --deep-soft: #2b7180;
  --lagoon: #2b7280;
  --aqua: #c6e2de;
  --sand: #e1d6bb;
  --sand-deep: #d8e5e2;
  --cream: #f7f5ef;
  --ink: #123f49;
  --line-light: rgba(255, 255, 255, .3);
  --line-dark: rgba(18, 63, 73, .18);
  --shadow: 0 20px 55px rgba(12, 50, 59, .14);
}

body {
  background: #f4f6f3;
  color: var(--ink);
  font-size: 16px;
}

h1, h2, h3 { line-height: 1.08; }
h1 { font-size: clamp(3.35rem, 5.7vw, 5.8rem); }
h2 { font-size: clamp(2.35rem, 4vw, 4.1rem); }
h3 { font-size: clamp(1.35rem, 1.8vw, 1.85rem); }
.section-pad { padding: 96px 0; }
.eyebrow { margin-bottom: 14px; }

.site-header:not(.inner-header) {
  background: linear-gradient(180deg, rgba(8, 39, 47, .58), transparent);
}
.site-header:not(.inner-header) .nav-shell {
  text-shadow: 0 1px 10px rgba(0, 0, 0, .55);
}
.nav-shell { min-height: 84px; }
.main-nav { gap: 30px; font-size: .84rem; }
.nav-contact strong { font-size: .92rem; }

.hero {
  height: 820px;
  min-height: 720px;
  max-height: none;
  color: #fff;
}
.hero-photo img { object-position: center 54%; }
.hero-shade {
  background:
    linear-gradient(90deg, rgba(7, 42, 50, .86) 0%, rgba(14, 63, 74, .48) 50%, rgba(18, 73, 84, .08) 78%),
    linear-gradient(0deg, rgba(8, 43, 51, .48) 0%, transparent 48%);
}
.hero-layout {
  padding-top: 140px;
  padding-bottom: 70px;
}
.hero-copy {
  max-width: 660px;
  padding: 30px 34px 32px;
  background: rgba(8, 46, 55, .76);
  border: 1px solid rgba(255, 255, 255, .24);
  box-shadow: 0 20px 55px rgba(4, 25, 30, .22);
  -webkit-backdrop-filter: blur(5px);
  backdrop-filter: blur(5px);
}
.hero-copy h1 {
  margin-bottom: 20px;
  color: #fff;
  font-size: clamp(3.25rem, 5.5vw, 5.4rem);
  text-shadow: 0 2px 16px rgba(0, 0, 0, .36);
}
.hero-copy .eyebrow { color: #d9eeea; }
.hero-intro {
  max-width: 570px;
  margin-bottom: 28px;
  color: rgba(255, 255, 255, .92);
  font-size: 1rem;
  line-height: 1.65;
}
.hero-actions { gap: 11px; }
.button { min-height: 48px; padding: 0 21px; }
.button-outline { border-color: rgba(255, 255, 255, .62); color: #fff; }
.button-outline:hover { background: rgba(255, 255, 255, .12); }

.statement {
  padding: 64px 0 68px;
  background: #e0ebe8;
}
.statement-layout { display: block; }
.statement-copy {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 54px;
  align-items: end;
}
.statement-copy .eyebrow { grid-column: 1 / -1; margin-bottom: -22px; }
.statement-copy h2 {
  margin: 0;
  max-width: 570px;
  font-size: clamp(2.4rem, 3.5vw, 3.65rem);
}
.statement-copy > p {
  max-width: 650px;
  margin: 0 0 4px;
  color: #315f68;
  font-size: 1.02rem;
  line-height: 1.75;
}
.statement-points {
  margin-top: 42px;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--line-dark);
  border-left: 0;
  border-bottom: 1px solid var(--line-dark);
}
.statement-points > div {
  min-height: 128px;
  padding: 20px 22px;
}
.statement-points strong { margin: 18px 0 7px; font-size: 1.3rem; }
.statement-points small { color: #4b7077; font-size: .84rem; }

.services {
  grid-template-columns: 42% 58%;
  min-height: 0;
  background: #236775;
  color: #fff;
}
.services h2, .services h3, .services .text-link { color: #fff; }
.services-photo { min-height: 720px; }
.services-panel { padding: 68px 5vw 72px; }
.services-inner { width: min(760px, 100%); }
.services-inner > h2 {
  max-width: 680px;
  margin-bottom: 28px;
  font-size: clamp(2.45rem, 3.7vw, 3.85rem);
}
.service-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 30px;
  border-top: 0;
}
.service-item {
  grid-template-columns: 28px 1fr;
  gap: 12px;
  padding: 20px 0;
  border-top: 1px solid rgba(255, 255, 255, .3);
  border-bottom: 0;
}
.service-item > span { color: #cce6e2; }
.service-item h3 {
  margin-bottom: 8px;
  color: #fff;
  font-size: 1.36rem;
  line-height: 1.18;
}
.service-item p {
  color: rgba(255, 255, 255, .8);
  font-size: .9rem;
  line-height: 1.55;
}
.services .eyebrow { color: #d9eeea; }
.services .text-link { margin-top: 28px; }
.photo-label { left: 34px; right: 34px; bottom: 32px; }
.photo-label strong { color: #fff; }

.feature-image {
  min-height: 520px;
  color: #fff;
}
.feature-shade {
  background:
    linear-gradient(90deg, rgba(8, 45, 54, .88), rgba(15, 67, 77, .24) 74%),
    linear-gradient(0deg, rgba(8, 45, 54, .56), transparent 58%);
}
.feature-copy { padding-bottom: 62px; }
.feature-copy h2 {
  max-width: 680px;
  margin-bottom: 26px;
  color: #fff;
  font-size: clamp(2.65rem, 4.2vw, 4.25rem);
  text-shadow: 0 2px 18px rgba(0, 0, 0, .34);
}
.feature-copy .eyebrow { color: #d9eeea; }

.home-directory {
  padding: 78px 0 86px;
  background: #eef3f1;
}
.home-directory.alt { background: #f7f6f1; }
.home-directory-head {
  grid-template-columns: 1fr .7fr;
  gap: 54px;
  margin-bottom: 34px;
}
.home-directory-head h2 {
  max-width: 720px;
  font-size: clamp(2.35rem, 3.5vw, 3.55rem);
}
.home-directory-head > p {
  color: #416970;
  line-height: 1.7;
}
.home-card-grid { gap: 14px; }
.home-card {
  min-height: 205px;
  padding: 23px;
  background: #f8f8f4;
  border-color: rgba(18, 63, 73, .15);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.alt .home-card { background: #eef3f1; }
.home-card:hover {
  transform: translateY(-3px);
  border-color: rgba(43, 114, 128, .42);
  box-shadow: 0 14px 35px rgba(12, 50, 59, .1);
}
.home-card h3 { margin: 34px 0 10px; font-size: 1.55rem; }
.home-card p { color: #456c73; font-size: .92rem; line-height: 1.58; }
.button-blue { background: #286f7d; color: #fff; }
.button-blue:hover { background: #205e6a; }

.home-cta {
  padding: 78px 0;
  background: #2b7482;
  color: #fff;
}
.home-whatsapp-layout {
  display: grid;
  grid-template-columns: .72fr 1fr;
  gap: 58px;
  align-items: start;
}
.home-whatsapp-copy h2 {
  margin-bottom: 18px;
  color: #fff;
  font-size: clamp(2.5rem, 4vw, 4rem);
}
.home-whatsapp-copy > p:not(.eyebrow) {
  max-width: 510px;
  color: rgba(255, 255, 255, .84);
  line-height: 1.7;
}
.home-cta .eyebrow { color: #d9eeea; }
.text-link-light { color: #fff; border-bottom-color: rgba(255, 255, 255, .5); }
.home-whatsapp-form {
  padding: 30px;
  background: #f7f8f5;
  color: var(--ink);
  border: 0;
  box-shadow: 0 18px 45px rgba(8, 43, 51, .18);
}
.home-whatsapp-form label > span { color: #286f7d; }
.home-whatsapp-form input,
.home-whatsapp-form select,
.home-whatsapp-form textarea {
  background: #fff;
  color: var(--ink);
  border: 1px solid rgba(18, 63, 73, .2);
}
.home-whatsapp-form input::placeholder,
.home-whatsapp-form textarea::placeholder { color: #71888d; }
.home-whatsapp-form .form-note { color: #557178; }
.home-whatsapp-form .button-solid { background: #e1d6bb; color: #123f49; }

/* Explicit contrast for every dark and image-backed section */
.services,
.feature-image,
.home-cta,
.inner-hero,
.index-hero,
.site-footer { color: #fff; }
.inner-hero h1,
.index-hero h1,
.site-footer h2,
.site-footer h3 { color: #fff; }
.inner-hero-copy > p:last-child,
.index-hero p:last-child { color: rgba(255, 255, 255, .86); }
.inner-hero-shade {
  background: linear-gradient(90deg, rgba(8, 45, 54, .9), rgba(17, 72, 83, .34)), linear-gradient(0deg, rgba(8, 45, 54, .58), transparent 58%);
}
.index-hero { background: #246876; }
.inner-hero { min-height: 500px; }
.inner-hero-copy { padding: 70px 0 58px; }
.inner-hero-copy h1 { font-size: clamp(3rem, 5vw, 5.2rem); }

.content-section,
.index-section,
.contact-page { background: #f7f8f5; }
.prose { max-width: 830px; }
.prose > .lead { color: #123f49; }
.prose p,
.prose li {
  color: #365f67;
  font-size: 1rem;
  line-height: 1.75;
}
.prose h2 { color: #123f49; }
.sidebar-card,
.enquiry-form { background: #e2ece9; }
.directory-card,
.mini-card,
.area-fact { color: #123f49; }
.directory-card p,
.mini-card p { color: #456c73; }

.site-footer { background: #154d58; }
.footer-columns { padding: 58px 0 48px; }
.footer-columns h2 { color: #d9eeea; font-size: .72rem; }
.footer-columns p,
.footer-columns span { color: rgba(255, 255, 255, .76); }
.footer-columns a:not(.brand) { color: rgba(255, 255, 255, .86); font-size: .88rem; }
.footer-bottom { color: rgba(255, 255, 255, .66); }

@media (max-width: 1000px) {
  .nav-shell { min-height: 76px; }
  .main-nav { top: 76px; }
  .hero { height: 760px; min-height: 700px; }
  .hero-layout { padding-top: 118px; }
  .statement-copy { grid-template-columns: 1fr; gap: 18px; }
  .statement-copy .eyebrow { margin-bottom: 0; }
  .statement-points { grid-template-columns: repeat(2, 1fr); }
  .services { grid-template-columns: 1fr; }
  .services-photo { min-height: 480px; }
  .services-panel { padding: 62px max(21px, calc((100vw - min(100% - 42px, 790px))/2)); }
  .home-whatsapp-layout { grid-template-columns: 1fr; gap: 36px; }
}

@media (max-width: 680px) {
  :root { --shell: calc(100% - 28px); }
  body { font-size: 15px; }
  h1 { font-size: clamp(2.75rem, 13vw, 4rem); }
  h2 { font-size: clamp(2.2rem, 10vw, 3.2rem); }
  .section-pad { padding: 68px 0; }
  .nav-shell { min-height: 70px; }
  .main-nav { top: 70px; left: 14px; right: 14px; }
  .hero {
    height: 700px;
    min-height: 680px;
  }
  .hero-layout {
    padding-top: 102px;
    padding-bottom: 42px;
    align-items: center;
  }
  .hero-copy {
    width: 100%;
    padding: 23px 21px 24px;
    background: rgba(7, 43, 51, .82);
  }
  .hero-copy h1 {
    margin-bottom: 16px;
    font-size: clamp(2.75rem, 13vw, 3.75rem);
  }
  .hero-intro { margin-bottom: 21px; font-size: .94rem; line-height: 1.55; }
  .hero-actions { flex-direction: row; }
  .hero-actions .button { width: auto; flex: 1 1 150px; padding-inline: 13px; }
  .statement { padding: 54px 0 58px; }
  .statement-copy h2 { font-size: 2.5rem; }
  .statement-points { grid-template-columns: repeat(2, 1fr); margin-top: 30px; }
  .statement-points > div,
  .statement-points > div:nth-child(2) {
    min-height: 122px;
    padding: 17px 14px;
    border-top: 0;
    border-right: 1px solid var(--line-dark);
  }
  .statement-points > div:nth-child(even) { border-right: 0; }
  .statement-points > div:nth-child(n+3) { border-top: 1px solid var(--line-dark); }
  .statement-points strong { margin: 14px 0 5px; font-size: 1.15rem; }
  .statement-points small { font-size: .77rem; }
  .services-photo { min-height: 350px; }
  .services-panel { padding: 54px 14px 60px; }
  .services-inner > h2 { margin-bottom: 22px; font-size: 2.65rem; }
  .service-list { grid-template-columns: 1fr; }
  .service-item { padding: 18px 0; }
  .service-item h3 { font-size: 1.32rem; }
  .feature-image { min-height: 430px; }
  .feature-copy { padding-bottom: 46px; }
  .feature-copy h2 { font-size: 2.8rem; }
  .home-directory,
  .home-directory.alt { padding: 60px 0 66px; }
  .home-directory-head { gap: 17px; margin-bottom: 25px; }
  .home-directory-head h2 { font-size: 2.65rem; }
  .home-card { min-height: 0; padding: 20px; }
  .home-card h3 { margin: 24px 0 8px; }
  .home-cta { padding: 60px 0; }
  .home-whatsapp-copy h2 { font-size: 2.75rem; }
  .home-whatsapp-form { padding: 22px 18px; }
  .home-whatsapp-form .button { width: 100%; }
  .inner-hero { min-height: 430px; }
  .inner-hero-copy { padding: 54px 0 45px; }
  .inner-hero-copy h1 { font-size: 3rem; }
  .index-hero { padding: 64px 0 54px; }
  .index-section,
  .content-section,
  .contact-page,
  .related { padding: 60px 0 72px; }
  .footer-columns { padding: 48px 0 38px; }
}

/* Hero panel reduction */
.hero-shade {
  background:
    linear-gradient(90deg, rgba(6, 38, 46, .94) 0%, rgba(9, 50, 60, .72) 38%, rgba(15, 67, 78, .28) 67%, rgba(18, 73, 84, .06) 84%),
    linear-gradient(0deg, rgba(7, 42, 50, .46) 0%, transparent 48%);
}
.hero-copy {
  max-width: 620px;
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
.hero-copy h1 { font-size: clamp(3.2rem, 5.1vw, 5.05rem); }
.floating-call { background: #25d366; color: #fff; }

@media (max-width: 680px) {
  .hero-shade {
    background:
      linear-gradient(90deg, rgba(5, 35, 43, .9), rgba(8, 49, 59, .7)),
      linear-gradient(0deg, rgba(5, 35, 43, .58), transparent 58%);
  }
  .hero-copy {
    width: 94%;
    max-width: 560px;
    padding: 0;
    background: transparent;
    border: 0;
  }
  .hero-copy h1 { font-size: clamp(2.7rem, 12.5vw, 3.6rem); }
}

.enquiry-form input::placeholder,
.enquiry-form textarea::placeholder {
  color: #6d858a;
  opacity: 1;
}
