:root {
  --ink: #172433;
  --navy: #153451;
  --navy-deep: #0c2338;
  --bronze: #c48d45;
  --bronze-soft: #d5ae72;
  --paper: #f5f2ec;
  --white: #fff;
  --line: rgba(23, 36, 51, .14);
  --muted: #66717d;
  --dark: #111923;
  --shadow: 0 28px 80px rgba(15, 29, 43, .18);
  --radius: 22px;
  --heading: "Ubuntu", Arial, sans-serif;
  --sans: "Montserrat", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
body.menu-open,
body.mobile-open,
body.lightbox-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.container { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
.container-wide { width: min(1440px, calc(100% - 64px)); margin-inline: auto; }
.section { padding: clamp(84px, 9vw, 145px) 0; }
.section-dark { background: #0e1722; color: #f4f1ea; }
.section-stone { background: #ebe7df; }
.section-white { background: #fff; }
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: var(--bronze);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.eyebrow::before { content: ""; width: 26px; height: 1px; background: currentColor; }
.eyebrow-light { color: #e7c58f; }
.eyebrow-gold { color: var(--bronze-soft); }
h1, h2, h3, h4 { margin: 0; font-family: var(--heading); font-weight: 500; line-height: 1.12; letter-spacing: -.018em; }
h1 { font-size: clamp(3.2rem, 6.1vw, 6.8rem); }
h2 { font-size: clamp(2.45rem, 4.4vw, 4.75rem); }
h3 { font-size: clamp(1.45rem, 2vw, 2.15rem); }
p { margin: 0; }
.lead { font-size: clamp(1.06rem, 1.5vw, 1.28rem); line-height: 1.8; }
.button {
  min-height: 54px;
  padding: 0 27px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  border: 1px solid transparent;
  border-radius: 4px;
  font-size: .74rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  transition: .25s ease;
}
.button:hover { transform: translateY(-2px); }
.button-bronze { background: var(--bronze); color: #fff; border-color: var(--bronze); }
.button-bronze:hover { background: #a97334; border-color: #a97334; }
.button-navy { background: var(--navy); color: #fff; border-color: var(--navy); }
.button-navy:hover { background: #0f2941; }
.button-outline-light { color: #fff; border-color: rgba(255,255,255,.65); background: rgba(4, 15, 25, .12); }
.button-outline-light:hover { background: #fff; color: var(--ink); }
.button-outline-dark { color: var(--ink); border-color: var(--ink); background: transparent; }
.button-outline-dark:hover { background: var(--ink); color: #fff; }

/* Header */
.site-header {
  position: absolute;
  z-index: 1000;
  inset: 0 0 auto;
  height: 100px;
  background: rgba(246, 245, 242, .78);
  border-bottom: 1px solid rgba(255,255,255,.35);
  backdrop-filter: blur(13px);
  -webkit-backdrop-filter: blur(13px);
  transition: .3s ease;
}
.site-header.is-sticky {
  position: fixed;
  height: 82px;
  background: rgba(246,245,242,.96);
  box-shadow: 0 10px 30px rgba(14, 28, 41, .1);
}
.header-inner {
  width: min(1900px, calc(100% - 70px));
  height: 100%;
  margin-inline: auto;
  display: grid;
  grid-template-columns: 250px 1fr auto;
  align-items: center;
  gap: 30px;
}
.site-logo { width: 205px; position: relative; z-index: 2; }
.site-logo img { width: 100%; height: auto; }
.site-logo .logo-light { display: none; }
.main-nav { display: flex; align-items: center; justify-content: center; gap: clamp(17px, 1.8vw, 37px); height: 100%; }
.nav-item { height: 100%; display: flex; align-items: center; }
.nav-link {
  position: relative;
  border: 0;
  background: transparent;
  padding: 10px 0;
  color: #1f2934;
  font-size: .9rem;
  white-space: nowrap;
}
.nav-link::after { content: ""; position: absolute; left: 0; bottom: 3px; width: 0; height: 1px; background: var(--bronze); transition: .25s ease; }
.nav-link:hover::after, .nav-link.is-active::after { width: 100%; }
.nav-caret { display: inline-block; margin-left: 4px; font-size: .66rem; transform: rotate(180deg); transition: .25s ease; }
.has-mega.is-open .nav-caret { transform: rotate(0); }
.header-actions { display: flex; align-items: center; gap: 18px; }
.header-search {
  width: 252px;
  height: 52px;
  padding: 4px 5px 4px 18px;
  display: flex;
  align-items: center;
  background: #fff;
  border: 1px solid rgba(21,52,81,.08);
  border-radius: 17px;
}
.header-search input { min-width: 0; flex: 1; border: 0; outline: 0; color: var(--ink); background: transparent; font-size: .82rem; }
.header-search button { width: 43px; height: 43px; display: grid; place-items: center; border: 0; border-radius: 12px; background: var(--navy); color: #fff; }
.header-search svg { width: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.header-quote { min-height: 48px; padding: 0 21px; display: inline-flex; align-items: center; border-radius: 13px; background: var(--navy); color: #fff; font-size: .8rem; font-weight: 600; letter-spacing: .035em; text-transform: uppercase; }
.mobile-toggle { display: none; width: 48px; height: 48px; border: 0; border-radius: 12px; background: var(--navy); }
.mobile-toggle span { display: block; width: 21px; height: 1px; margin: 5px auto; background: #fff; }
.page-dim { position: fixed; z-index: 900; inset: 0; background: rgba(8, 17, 26, .48); backdrop-filter: blur(6px); opacity: 0; visibility: hidden; transition: .25s ease; }
body.menu-open .page-dim, body.mobile-open .page-dim { opacity: 1; visibility: visible; }

/* Exact style mega menu */
.mega-menu {
  position: fixed;
  z-index: 1001;
  top: 95px;
  left: 50%;
  width: min(1385px, calc(100vw - 72px));
  transform: translate(-50%, -18px);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: .28s ease;
}
.site-header.is-sticky .mega-menu { top: 78px; }
.has-mega.is-open .mega-menu { opacity: 1; visibility: visible; pointer-events: auto; transform: translate(-50%, 0); }
.mega-shell {
  min-height: 520px;
  display: grid;
  grid-template-columns: 410px minmax(520px, 1fr) 390px;
  overflow: hidden;
  background: #fff;
  border-radius: 22px;
  box-shadow: var(--shadow);
}
.mega-categories { padding: 122px 56px; display: flex; flex-direction: column; gap: 16px; background: #fff; }
.mega-category { width: 100%; min-height: 51px; padding: 0; display: flex; align-items: center; justify-content: space-between; border: 0; background: transparent; color: #27313b; text-align: left; font-size: 1rem; transition: .2s ease; }
.mega-category b { color: var(--navy); font-weight: 500; }
.mega-category.is-active { color: var(--bronze); }
.mega-category.is-active b { color: var(--bronze); }
.mega-panels { position: relative; padding: 28px 30px; background: linear-gradient(135deg, #f0f4f7 0%, #fff 60%, #f9f5ee 100%); }
.mega-panel { display: none; padding: 0 0 0 0; }
.mega-panel.is-active { display: block; animation: megaFade .25s ease; }
@keyframes megaFade { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: none; } }
.mega-panel h2 { margin: 0 0 25px; font-size: 2.45rem; color: #202933; }
.mega-panel > p { max-width: 680px; margin-bottom: 22px; color: #64717e; font-size: .88rem; }
.mega-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 19px 50px; }
.mega-links a { color: #576473; font-size: .9rem; transition: .2s ease; }
.mega-links a:hover { color: var(--bronze); transform: translateX(4px); }
.mega-all { margin-top: 38px; display: inline-flex; gap: 36px; color: var(--bronze); font-size: .76rem; letter-spacing: .06em; text-transform: uppercase; }
.mega-feature { position: relative; display: block; min-height: 520px; overflow: hidden; }
.mega-feature img { width: 100%; height: 100%; object-fit: cover; }
.mega-feature-shade { position: absolute; inset: 0; background: linear-gradient(to top, rgba(9,14,20,.88) 0%, rgba(9,14,20,.22) 68%, rgba(9,14,20,.1) 100%); }
.mega-feature-copy { position: absolute; inset: auto 28px 24px; color: #fff; }
.mega-feature-copy small { display: block; margin-bottom: 5px; color: var(--bronze); font-weight: 600; }
.mega-feature-copy strong { display: block; margin-bottom: 14px; font-family: var(--heading); font-size: 2.4rem; line-height: 1.05; font-weight: 500; }
.mega-feature-copy > span { display: block; margin-bottom: 24px; font-size: 1rem; line-height: 1.55; }
.mega-feature-copy b { min-height: 52px; padding: 0 24px; display: inline-flex; align-items: center; gap: 12px; border: 1px solid rgba(255,255,255,.75); border-radius: 14px; color: var(--bronze-soft); font-weight: 500; }
.mega-feature-copy i { font-style: normal; }

/* Mobile menu */
.mobile-menu { position: fixed; z-index: 1200; inset: 0 0 0 auto; width: min(440px, 100%); padding: 24px; background: #f6f4ef; transform: translateX(105%); transition: .3s ease; overflow-y: auto; }
.mobile-menu.is-open { transform: none; }
.mobile-menu-head { padding-bottom: 22px; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--line); }
.mobile-menu-head img { width: 190px; }
.mobile-menu-head button { width: 44px; height: 44px; border: 0; border-radius: 50%; background: var(--navy); color: #fff; font-size: 1.6rem; }
.mobile-menu nav { padding: 25px 0; display: flex; flex-direction: column; }
.mobile-menu nav > a, .mobile-menu summary { padding: 15px 0; border-bottom: 1px solid var(--line); font-size: 1.04rem; }
.mobile-menu details b { display: block; margin: 24px 0 8px; color: var(--bronze); font-size: .7rem; letter-spacing: .11em; text-transform: uppercase; }
.mobile-menu details a { display: block; padding: 8px 10px; color: #4f5b68; font-size: .9rem; }
.mobile-menu summary { list-style: none; display: flex; justify-content: space-between; }
.mobile-menu summary::-webkit-details-marker { display: none; }
.mobile-menu .mobile-all-services { margin-top: 15px; color: var(--navy); font-weight: 600; }

/* Home hero */
.home-hero { position: relative; min-height: 920px; padding: 150px 0 70px; display: flex; align-items: center; overflow: hidden; background: #142230; }
.home-hero > .hero-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.home-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(6,16,25,.44) 0%, rgba(6,16,25,.05) 55%, rgba(6,16,25,.35) 100%); }
.home-hero-inner { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(380px, .58fr); gap: 70px; align-items: center; }
.hero-copy-card { position: relative; max-width: 690px; padding: clamp(38px, 4.5vw, 68px); border-radius: 26px; background: rgba(10,31,49,.78); color: #fff; backdrop-filter: blur(10px); box-shadow: 0 30px 80px rgba(0,0,0,.18); }
.hero-copy-card h1 { margin: 12px 0 22px; font-size: clamp(3.15rem, 5vw, 6.15rem); }
.hero-copy-card > p { max-width: 610px; color: rgba(255,255,255,.88); font-size: 1.02rem; }
.hero-copy-card .button { margin-top: 28px; }
.hero-round-arrow { position: absolute; top: 0; right: -44px; width: 86px; height: 86px; display: grid; place-items: center; border-radius: 50%; background: rgba(245,242,236,.86); color: var(--ink); font-size: 2rem; backdrop-filter: blur(7px); }
.hero-proof { margin-top: 43px; display: grid; grid-template-columns: 1fr 1fr; gap: 22px; align-items: center; }
.hero-audience { display: flex; align-items: center; gap: 14px; }
.avatar-stack { display: flex; flex-shrink: 0; }
.avatar-stack img, .avatar-stack span { width: 42px; height: 42px; margin-right: -11px; border: 2px solid #fff; border-radius: 50%; object-fit: cover; background: #fff; }
.avatar-stack span { display: grid; place-items: center; color: var(--ink); font-size: 1.25rem; }
.hero-audience strong, .hero-audience small { display: block; }
.hero-audience strong { font-size: .73rem; }
.hero-audience small { margin-top: 4px; color: rgba(255,255,255,.68); font-size: .66rem; }
.hero-process { min-height: 74px; padding: 12px 16px; display: flex; align-items: center; gap: 13px; border-radius: 13px; background: #f5f1e9; color: var(--ink); }
.process-seal { width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid var(--bronze); border-radius: 50%; color: var(--bronze); font-family: var(--heading); }
.hero-process small, .hero-process strong { display: block; }
.hero-process small { color: #777e85; font-size: .66rem; }
.hero-process strong { margin-top: 3px; font-size: .72rem; }
.hero-form-wrap { padding: 34px; border-radius: 24px; background: rgba(255,255,255,.95); box-shadow: var(--shadow); backdrop-filter: blur(10px); }
.hero-form-wrap h2 { margin: 8px 0 10px; font-size: clamp(2rem, 3vw, 3.2rem); }
.hero-form-wrap > p { margin-bottom: 20px; color: #65717e; font-size: .88rem; }

/* Forms */
.quote-form { display: grid; gap: 14px; }
.quote-form label { display: grid; gap: 6px; color: #34404c; font-size: .72rem; font-weight: 600; }
.quote-form input, .quote-form select, .quote-form textarea {
  width: 100%; min-height: 50px; padding: 12px 14px; border: 1px solid rgba(23,36,51,.16); border-radius: 6px; outline: 0; background: #fff; color: var(--ink); font-size: .86rem; transition: .2s ease;
}
.quote-form textarea { resize: vertical; }
.quote-form input:focus, .quote-form select:focus, .quote-form textarea:focus { border-color: var(--bronze); box-shadow: 0 0 0 3px rgba(196,141,69,.12); }
.form-grid.two { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.quote-form .button { width: 100%; }
.quote-form label small, .form-note { color: #78818a; font-size: .67rem; font-weight: 400; }
.hp-field { position: absolute !important; left: -9999px !important; opacity: 0 !important; }
.form-success, .form-error { margin: 120px auto 40px; width: min(760px, calc(100% - 40px)); padding: 35px; border-radius: 16px; background: #fff; box-shadow: var(--shadow); text-align: center; }
.form-success h1, .form-error h1 { margin: 12px 0; font-size: 3rem; }

/* General sections */
.trust-strip { background: #101b27; color: #fff; }
.trust-grid { min-height: 104px; display: grid; grid-template-columns: repeat(4, 1fr); }
.trust-grid > div { padding: 25px 30px; display: flex; flex-direction: column; justify-content: center; border-right: 1px solid rgba(255,255,255,.12); }
.trust-grid > div:first-child { border-left: 1px solid rgba(255,255,255,.12); }
.trust-grid strong { font-family: var(--heading); font-size: 1.35rem; font-weight: 500; }
.trust-grid span { margin-top: 4px; color: rgba(255,255,255,.6); font-size: .72rem; }
.split-layout { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: clamp(50px, 7vw, 110px); align-items: center; }
.split-layout.reverse > :first-child { order: 2; }
.split-copy h2 { margin: 14px 0 24px; }
.split-copy p + p { margin-top: 18px; }
.split-copy .button { margin-top: 28px; }
.check-list { margin: 28px 0 0; padding: 0; list-style: none; }
.check-list li { position: relative; padding: 12px 0 12px 30px; border-bottom: 1px solid var(--line); }
.check-list li::before { content: "✓"; position: absolute; left: 0; color: var(--bronze); }
.image-collage { position: relative; min-height: 610px; }
.image-collage .image-main { width: 82%; height: 540px; margin-left: auto; object-fit: cover; border-radius: 8px; }
.image-collage .image-small { position: absolute; left: 0; bottom: 0; width: 46%; height: 270px; object-fit: cover; border: 10px solid var(--paper); border-radius: 8px; }
.image-caption { position: absolute; right: 0; bottom: 0; padding: 18px 22px; background: var(--navy); color: #fff; }
.image-caption small, .image-caption strong { display: block; }
.image-caption small { color: var(--bronze-soft); font-size: .68rem; text-transform: uppercase; letter-spacing: .1em; }
.image-caption strong { margin-top: 5px; font-family: var(--heading); font-size: 1.45rem; font-weight: 500; }
.section-heading { max-width: 820px; margin-bottom: 52px; }
.section-heading.centered { margin-inline: auto; text-align: center; }
.section-heading.centered .eyebrow { justify-content: center; }
.section-heading h2 { margin: 13px 0 18px; }
.section-heading p { color: var(--muted); }

.service-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.service-card { position: relative; min-height: 440px; overflow: hidden; border-radius: 8px; background: #172433; color: #fff; }
.service-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: .55s ease; }
.service-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(8,15,23,.94) 0%, rgba(8,15,23,.18) 68%); }
.service-card:hover img { transform: scale(1.045); }
.service-card-copy { position: absolute; z-index: 2; inset: auto 25px 25px; }
.service-card-copy small { color: var(--bronze-soft); font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; }
.service-card-copy h3 { margin: 8px 0 10px; }
.service-card-copy p { color: rgba(255,255,255,.72); font-size: .82rem; }
.service-card-copy span { margin-top: 18px; display: inline-flex; color: var(--bronze-soft); font-size: .74rem; text-transform: uppercase; letter-spacing: .08em; }

.process-section { background: #182331; color: #fff; }
.process-layout { display: grid; grid-template-columns: .7fr 1.3fr; gap: 80px; }
.process-intro { position: sticky; top: 120px; align-self: start; }
.process-intro h2 { margin: 13px 0 20px; }
.process-intro p { color: rgba(255,255,255,.66); }
.process-list { border-top: 1px solid rgba(255,255,255,.15); }
.process-step { padding: 30px 0; display: grid; grid-template-columns: 90px 1fr; border-bottom: 1px solid rgba(255,255,255,.15); }
.process-step b { color: var(--bronze-soft); font-family: var(--heading); font-size: 2rem; font-weight: 500; }
.process-step h3 { margin-bottom: 8px; }
.process-step p { color: rgba(255,255,255,.62); font-size: .9rem; }

.project-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.project-card { display: block; }
.project-image { position: relative; height: 360px; overflow: hidden; border-radius: 6px; background: #d8d8d4; }
.project-image img { width: 100%; height: 100%; object-fit: cover; transition: .5s ease; }
.project-card:hover .project-image img { transform: scale(1.035); }
.project-card-copy { padding: 15px 2px 0; display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.project-card-copy strong { font-family: var(--heading); font-size: 1.35rem; font-weight: 500; }
.project-card-copy span { color: var(--bronze); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.project-card-copy small { display: block; color: #7a838c; font-size: .72rem; }
.project-card[data-lightbox-item] { cursor: zoom-in; }
.project-code { min-width: 62px; padding: 5px 8px; border: 1px solid var(--line); text-align: center; }
.project-filter { margin: 0 0 38px; display: flex; flex-wrap: wrap; gap: 9px; }
.project-filter button { padding: 9px 15px; border: 1px solid var(--line); border-radius: 20px; background: transparent; color: #4e5a66; font-size: .72rem; }
.project-filter button.is-active { background: var(--navy); color: #fff; border-color: var(--navy); }
.project-card.is-hidden { display: none; }
.load-more-wrap { margin-top: 42px; text-align: center; }

.commercial-band { position: relative; min-height: 690px; display: grid; align-items: center; overflow: hidden; }
.commercial-band > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.commercial-band::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(10,23,35,.92), rgba(10,23,35,.4)); }
.commercial-copy { position: relative; z-index: 2; max-width: 680px; color: #fff; }
.commercial-copy h2 { margin: 14px 0 22px; }
.commercial-copy p { color: rgba(255,255,255,.75); }
.commercial-copy .check-list li { border-color: rgba(255,255,255,.15); }
.commercial-copy .button { margin-top: 28px; }

.area-grid { display: grid; grid-template-columns: repeat(5, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.area-grid span, .area-grid a { min-height: 94px; padding: 20px; display: flex; align-items: center; justify-content: center; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); text-align: center; transition: .2s ease; }
.area-grid a:hover { background: var(--navy); color: #fff; }

.faq-layout { display: grid; grid-template-columns: .72fr 1.28fr; gap: 90px; }
.faq-intro h2 { margin: 12px 0 20px; }
.faq-list { border-top: 1px solid var(--line); }
.faq-item { border-bottom: 1px solid var(--line); }
.faq-question { width: 100%; padding: 23px 0; display: flex; justify-content: space-between; gap: 25px; border: 0; background: transparent; color: var(--ink); text-align: left; font-weight: 500; }
.faq-question span:last-child { color: var(--bronze); font-size: 1.4rem; transition: .2s ease; }
.faq-item.is-open .faq-question span:last-child { transform: rotate(45deg); }
.faq-answer { max-height: 0; overflow: hidden; color: var(--muted); transition: max-height .3s ease; }
.faq-answer p { padding: 0 40px 24px 0; }

/* Inner heroes */
.inner-hero { position: relative; padding: 158px 0 72px; background: #0f1b28; color: #fff; overflow: hidden; }
.inner-hero-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .35; }
.inner-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(10,23,35,.55), rgba(10,23,35,.92)); }
.inner-hero-inner { position: relative; z-index: 2; text-align: center; }
.inner-hero h1 { max-width: 1050px; margin: 12px auto 18px; font-size: clamp(3rem, 5vw, 5.7rem); }
.inner-hero p { max-width: 760px; margin-inline: auto; color: rgba(255,255,255,.75); }
.inner-hero-media { position: relative; z-index: 3; width: min(1120px, calc(100% - 40px)); height: 510px; margin: 48px auto -180px; overflow: hidden; border-radius: 10px; box-shadow: var(--shadow); }
.inner-hero-media img { width: 100%; height: 100%; object-fit: cover; }
.inner-hero + .section { padding-top: 250px; }

/* Services page */
.service-group-block { margin-bottom: 70px; }
.service-group-head { margin-bottom: 28px; display: grid; grid-template-columns: .55fr 1fr; gap: 50px; align-items: end; }
.service-group-head p { color: var(--muted); }
.service-list-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.service-list-item { min-height: 230px; padding: 27px; display: flex; flex-direction: column; justify-content: space-between; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); transition: .25s ease; }
.service-list-item:hover { background: var(--navy); color: #fff; }
.service-list-item small { color: var(--bronze); text-transform: uppercase; letter-spacing: .1em; }
.service-list-item h3 { margin: 14px 0; }
.service-list-item p { color: var(--muted); font-size: .82rem; }
.service-list-item:hover p { color: rgba(255,255,255,.65); }
.service-list-item b { margin-top: 20px; color: var(--bronze-soft); font-weight: 500; }
.material-grid, .value-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid rgba(255,255,255,.17); border-left: 1px solid rgba(255,255,255,.17); }
.material-card, .value-card { min-height: 250px; padding: 28px; border-right: 1px solid rgba(255,255,255,.17); border-bottom: 1px solid rgba(255,255,255,.17); }
.material-card b, .value-card b { display: block; margin-bottom: 55px; color: var(--bronze-soft); font-family: var(--heading); font-size: 2rem; font-weight: 500; }
.material-card p, .value-card p { color: rgba(255,255,255,.65); font-size: .84rem; }
.value-grid { border-color: var(--line); }
.value-card { border-color: var(--line); min-height: 230px; }
.value-card b { color: var(--bronze); margin-bottom: 40px; }
.value-card p { color: var(--muted); }

/* Service detail */
.service-intro-grid { display: grid; grid-template-columns: 1fr .8fr; gap: 80px; }
.service-intro-copy h2 { margin: 13px 0 22px; }
.service-aside { padding: 32px; border: 1px solid var(--line); background: #fff; }
.service-aside h3 { margin-bottom: 22px; }
.service-aside ul { margin: 0; padding: 0; list-style: none; }
.service-aside li { padding: 12px 0; border-bottom: 1px solid var(--line); }
.service-aside li::before { content: "→"; margin-right: 10px; color: var(--bronze); }
.feature-columns { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.feature-column { padding: 30px; border: 1px solid var(--line); background: #fff; }
.feature-column h3 { margin-bottom: 20px; }
.feature-column ul { margin: 0; padding: 0; list-style: none; }
.feature-column li { padding: 10px 0; border-bottom: 1px solid var(--line); color: #5a6672; font-size: .86rem; }
.feature-column li:last-child { border-bottom: 0; }
.service-gallery .project-grid { grid-template-columns: repeat(3, 1fr); }
.related-services { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.related-service { padding: 26px; border: 1px solid rgba(255,255,255,.15); }
.related-service small { color: var(--bronze-soft); }
.related-service h3 { margin: 10px 0 14px; }
.related-service p { color: rgba(255,255,255,.6); font-size: .82rem; }
.related-service span { margin-top: 20px; display: inline-block; color: var(--bronze-soft); }

/* Contact */
.contact-layout { display: grid; grid-template-columns: .72fr 1.28fr; gap: 60px; }
.contact-card { padding: 38px; background: var(--navy); color: #fff; }
.contact-card h2 { margin: 13px 0 18px; }
.contact-card p { color: rgba(255,255,255,.66); }
.contact-details { margin-top: 35px; display: grid; gap: 18px; }
.contact-detail { padding-bottom: 17px; border-bottom: 1px solid rgba(255,255,255,.16); }
.contact-detail small, .contact-detail strong { display: block; }
.contact-detail small { color: var(--bronze-soft); text-transform: uppercase; letter-spacing: .09em; font-size: .65rem; }
.contact-detail strong { margin-top: 5px; font-weight: 500; }
.contact-form-panel { padding: 38px; background: #fff; border: 1px solid var(--line); }

/* Project detail */
.project-detail { padding-top: 150px; }
.project-detail-grid { display: grid; grid-template-columns: 1.25fr .55fr; gap: 55px; align-items: start; }
.project-detail-image { max-height: 820px; width: 100%; object-fit: contain; background: #e7e5df; }
.project-meta { position: sticky; top: 110px; padding: 34px; border: 1px solid var(--line); background: #fff; }
.project-meta h1 { margin: 12px 0 22px; font-size: 3.4rem; }
.project-meta dl { margin: 0; }
.project-meta div { padding: 13px 0; display: grid; grid-template-columns: 100px 1fr; border-bottom: 1px solid var(--line); }
.project-meta dt { color: #7a838c; font-size: .72rem; text-transform: uppercase; }
.project-meta dd { margin: 0; }
.project-meta .button { margin-top: 25px; }

/* Search */
.search-page { min-height: 70vh; padding: 160px 0 100px; }
.search-form-large { margin: 35px 0; display: flex; max-width: 700px; }
.search-form-large input { flex: 1; min-width: 0; height: 58px; padding: 0 18px; border: 1px solid var(--line); }
.search-form-large button { width: 120px; border: 0; background: var(--navy); color: #fff; }
.search-results { display: grid; gap: 10px; }
.search-result { padding: 20px; border: 1px solid var(--line); background: #fff; }
.search-result strong { display: block; font-family: var(--heading); font-size: 1.5rem; }
.search-result p { margin-top: 5px; color: var(--muted); }

/* CTA and footer */
.image-cta { position: relative; min-height: 540px; display: grid; align-items: center; overflow: hidden; color: #fff; }
.image-cta > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.image-cta::after { content: ""; position: absolute; inset: 0; background: rgba(9,22,34,.7); }
.image-cta-copy { position: relative; z-index: 2; max-width: 780px; }
.image-cta-copy h2 { margin: 13px 0 19px; }
.image-cta-copy p { color: rgba(255,255,255,.72); }
.image-cta-copy .button { margin-top: 26px; }
.site-footer { background: #0c1621; color: #fff; }
.footer-cta { padding: 65px 0; border-bottom: 1px solid rgba(255,255,255,.12); background: #111d2a; }
.footer-cta-inner { display: grid; grid-template-columns: 1.2fr .8fr; gap: 80px; align-items: end; }
.footer-cta h2 { max-width: 720px; margin-top: 12px; font-size: clamp(2.4rem, 4vw, 4.2rem); }
.footer-cta p { margin-bottom: 22px; color: rgba(255,255,255,.62); }
.footer-grid { padding: 70px 0 52px; display: grid; grid-template-columns: 1.5fr repeat(3, 1fr); gap: 65px; }
.footer-brand img { width: 220px; filter: brightness(0) invert(1); }
.footer-brand p { max-width: 360px; margin-top: 22px; color: rgba(255,255,255,.56); font-size: .82rem; }
.footer-socials { margin-top: 25px; display: flex; gap: 9px; }
.footer-socials a { width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; font-size: .65rem; }
.footer-grid h3 { margin-bottom: 20px; font-family: var(--sans); font-size: .75rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--bronze-soft); }
.footer-grid section > a, .footer-grid section > p { display: block; margin: 10px 0; color: rgba(255,255,255,.6); font-size: .79rem; }
.footer-grid section > a:hover { color: #fff; }
.footer-admin { margin-top: 22px !important; color: var(--bronze-soft) !important; }
.footer-bottom { min-height: 75px; display: flex; justify-content: space-between; align-items: center; border-top: 1px solid rgba(255,255,255,.12); color: rgba(255,255,255,.45); font-size: .7rem; }
.footer-bottom div { display: flex; gap: 24px; }

/* Lightbox */
.lightbox { position: fixed; z-index: 2000; inset: 0; padding: 55px 90px; display: grid; place-items: center; background: rgba(5,10,15,.94); opacity: 0; visibility: hidden; transition: .25s ease; }
.lightbox.is-open { opacity: 1; visibility: visible; }
.lightbox figure { max-width: min(1200px, 88vw); max-height: 86vh; margin: 0; display: grid; grid-template-rows: minmax(0, 1fr) auto; }
.lightbox figure img { max-height: 78vh; width: auto; max-width: 100%; margin: auto; object-fit: contain; }
.lightbox figcaption { padding: 14px 0; display: flex; justify-content: space-between; color: #fff; }
.lightbox figcaption strong { font-family: var(--heading); font-size: 1.4rem; font-weight: 500; }
.lightbox figcaption span { color: rgba(255,255,255,.58); }
.lightbox-close, .lightbox-nav { position: absolute; border: 0; background: transparent; color: #fff; }
.lightbox-close { top: 22px; right: 28px; font-size: 2.2rem; }
.lightbox-nav { top: 50%; transform: translateY(-50%); width: 52px; height: 52px; border: 1px solid rgba(255,255,255,.3); border-radius: 50%; }
.lightbox-prev { left: 24px; }
.lightbox-next { right: 24px; }

/* Reveal */
.reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s ease, transform .7s ease; }
.reveal.is-visible { opacity: 1; transform: none; }

/* Responsive */
@media (max-width: 1450px) {
  .header-inner { width: calc(100% - 40px); grid-template-columns: 210px 1fr auto; gap: 20px; }
  .site-logo { width: 185px; }
  .main-nav { gap: 20px; }
  .header-search { width: 205px; }
  .mega-shell { grid-template-columns: 330px minmax(440px, 1fr) 340px; }
  .mega-categories { padding-inline: 42px; }
}
@media (max-width: 1200px) {
  .main-nav, .header-search { display: none; }
  .header-inner { grid-template-columns: 1fr auto; }
  .header-actions { justify-content: flex-end; }
  .mobile-toggle { display: block; }
  .home-hero-inner { grid-template-columns: 1fr .72fr; gap: 35px; }
  .hero-proof { grid-template-columns: 1fr; }
  .service-grid, .project-grid { grid-template-columns: repeat(2, 1fr); }
  .area-grid { grid-template-columns: repeat(3, 1fr); }
  .footer-grid { grid-template-columns: 1.3fr repeat(3, 1fr); gap: 35px; }
}
@media (max-width: 900px) {
  .site-header { height: 82px; }
  .header-inner { width: calc(100% - 28px); }
  .header-quote { display: none; }
  .site-logo { width: 180px; }
  .home-hero { min-height: auto; padding: 120px 0 60px; }
  .home-hero-inner { grid-template-columns: 1fr; }
  .hero-copy-card { max-width: none; }
  .hero-round-arrow { right: 18px; top: -36px; width: 72px; height: 72px; }
  .split-layout, .process-layout, .faq-layout, .contact-layout, .service-intro-grid, .project-detail-grid { grid-template-columns: 1fr; gap: 50px; }
  .split-layout.reverse > :first-child { order: initial; }
  .process-intro, .project-meta { position: static; }
  .service-group-head { grid-template-columns: 1fr; gap: 15px; }
  .service-list-grid, .material-grid, .value-grid, .feature-columns, .related-services { grid-template-columns: repeat(2, 1fr); }
  .inner-hero-media { height: 420px; }
  .footer-cta-inner { grid-template-columns: 1fr; gap: 25px; }
  .footer-grid { grid-template-columns: repeat(2, 1fr); }
  .image-collage { min-height: 520px; }
  .image-collage .image-main { height: 460px; }
  .service-gallery .project-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 650px) {
  .container, .container-wide { width: min(100% - 28px, 1180px); }
  .section { padding: 72px 0; }
  h1 { font-size: 3.1rem; }
  h2 { font-size: 2.55rem; }
  .home-hero { padding-top: 105px; }
  .hero-copy-card { padding: 32px 24px; border-radius: 18px; }
  .hero-copy-card h1 { font-size: 3.1rem; }
  .hero-proof { margin-top: 32px; }
  .hero-form-wrap { padding: 26px 20px; border-radius: 18px; }
  .form-grid.two { grid-template-columns: 1fr; }
  .trust-grid { grid-template-columns: repeat(2, 1fr); }
  .trust-grid > div { padding: 20px 14px; }
  .trust-grid > div:first-child { border-left: 0; }
  .service-grid, .project-grid, .service-list-grid, .material-grid, .value-grid, .feature-columns, .related-services, .service-gallery .project-grid { grid-template-columns: 1fr; }
  .service-card { min-height: 390px; }
  .project-image { height: 320px; }
  .image-collage { min-height: 460px; }
  .image-collage .image-main { width: 92%; height: 410px; }
  .image-collage .image-small { width: 54%; height: 210px; border-width: 6px; }
  .process-step { grid-template-columns: 60px 1fr; }
  .area-grid { grid-template-columns: repeat(2, 1fr); }
  .area-grid span, .area-grid a { min-height: 76px; padding: 12px; font-size: .82rem; }
  .inner-hero { padding-top: 125px; }
  .inner-hero h1 { font-size: 3.1rem; }
  .inner-hero-media { height: 290px; margin-bottom: -110px; }
  .inner-hero + .section { padding-top: 170px; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-bottom { padding: 22px 0; flex-direction: column; gap: 10px; align-items: flex-start; }
  .lightbox { padding: 50px 18px; }
  .lightbox-nav { top: auto; bottom: 22px; }
  .lightbox-prev { left: 30px; }
  .lightbox-next { right: 30px; }
  .project-detail { padding-top: 115px; }
}

/* Legal content */
.legal-layout{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(0,1.7fr);gap:clamp(54px,8vw,120px);align-items:start}.legal-aside{position:sticky;top:130px}.legal-aside h2{font-size:clamp(2rem,3.3vw,3.4rem);margin:14px 0 18px}.legal-aside p{color:var(--muted);max-width:320px}.legal-content{max-width:820px}.legal-content>section{padding:0 0 38px;margin:0 0 38px;border-bottom:1px solid var(--line)}.legal-content>section:last-of-type{margin-bottom:26px}.legal-content h2{font-size:clamp(1.65rem,2.4vw,2.5rem);margin:0 0 14px}.legal-content p{color:var(--muted);font-size:1.02rem;line-height:1.85}.legal-notice{padding:24px 26px;border-left:2px solid var(--bronze);background:var(--paper);color:var(--navy);line-height:1.7}@media(max-width:760px){.legal-layout{grid-template-columns:1fr;gap:42px}.legal-aside{position:static}.legal-content>section{padding-bottom:30px;margin-bottom:30px}}

/* Westline V5.2 visual refinement */
.utility-bar {
  position: absolute;
  z-index: 1003;
  inset: 0 0 auto;
  height: 38px;
  color: rgba(255,255,255,.78);
  background: linear-gradient(90deg, #0a1c2c 0%, #153451 58%, #0c2338 100%);
  border-bottom: 1px solid rgba(255,255,255,.11);
  font-size: .67rem;
  letter-spacing: .035em;
}
.utility-inner {
  width: min(1900px, calc(100% - 70px));
  height: 100%;
  margin-inline: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 25px;
}
.utility-quicklinks, .utility-socials { display: flex; align-items: center; }
.utility-quicklinks { gap: 0; height: 100%; }
.utility-quicklinks > * { min-height: 20px; padding: 0 20px; display: inline-flex; align-items: center; gap: 8px; border-right: 1px solid rgba(255,255,255,.13); }
.utility-quicklinks > *:first-child { padding-left: 0; }
.utility-quicklinks svg { width: 14px; height: 14px; fill: none; stroke: var(--bronze-soft); stroke-width: 1.5; }
.utility-quicklinks a:hover { color: #fff; }
.utility-region { color: #fff; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.utility-socials { gap: 7px; }
.utility-socials > span:first-child { margin-right: 7px; color: rgba(255,255,255,.44); text-transform: uppercase; letter-spacing: .1em; }
.social-link { display: grid; place-items: center; }
.social-link svg { width: 15px; height: 15px; fill: currentColor; stroke: currentColor; stroke-width: 1.4; }
.social-link svg rect, .social-link svg circle:not(.social-dot) { fill: none; }
.social-link.is-disabled { opacity: .34; cursor: default; }
.utility-social-link { width: 25px; height: 25px; border-radius: 50%; color: rgba(255,255,255,.72); }
.utility-social-link:not(.is-disabled):hover { color: var(--bronze-soft); background: rgba(255,255,255,.08); }

.site-header { top: 38px; height: 92px; }
.site-header.is-sticky { top: 0; height: 80px; }
.mega-menu { top: 124px; }
.site-header.is-sticky .mega-menu { top: 76px; }
.home-hero { min-height: 900px; padding-top: 178px; }
.hero-copy-card h1 { max-width: 620px; font-size: clamp(2.75rem, 4.35vw, 5.25rem); line-height: 1.08; }
.hero-copy-card { padding: clamp(36px, 4vw, 62px); }

.mobile-contact-strip { padding: 17px 0 5px; display: grid; gap: 4px; font-size: .78rem; color: var(--muted); }
.mobile-socials { margin: 4px 0 24px; display: flex; gap: 8px; }
.mobile-social-link { width: 38px; height: 38px; border: 1px solid var(--line); border-radius: 50%; color: var(--navy); }

/* Refined inner-page hero */
.inner-hero {
  position: relative;
  min-height: 690px;
  padding: 190px 0 54px;
  background:
    radial-gradient(circle at 82% 20%, rgba(196,141,69,.14), transparent 28%),
    linear-gradient(135deg, #071725 0%, #102b42 62%, #0b2134 100%);
  color: #fff;
  overflow: hidden;
}
.inner-hero::after { content: none; }
.inner-hero-grid {
  position: absolute;
  inset: 0;
  opacity: .17;
  background-image: linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px);
  background-size: 86px 86px;
  mask-image: linear-gradient(to right, #000, transparent 72%);
}
.inner-hero-layout { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, .88fr) minmax(460px, 1.12fr); gap: clamp(60px, 8vw, 130px); align-items: center; }
.inner-hero-copy { padding-bottom: 34px; }
.inner-hero h1 { max-width: 720px; margin: 17px 0 22px; font-size: clamp(3rem, 4.65vw, 5.25rem); line-height: 1.02; }
.inner-hero p { max-width: 650px; margin: 0; color: rgba(255,255,255,.7); font-size: 1.02rem; line-height: 1.8; }
.inner-hero-actions { margin-top: 32px; display: flex; align-items: center; gap: 28px; flex-wrap: wrap; }
.inner-hero-text-link { display: inline-flex; align-items: center; gap: 13px; color: rgba(255,255,255,.75); font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; }
.inner-hero-text-link:hover { color: #fff; }
.inner-hero-visual { position: relative; height: 440px; margin: 0; padding: 16px 16px 0 0; }
.inner-hero-visual::before { content: ""; position: absolute; inset: 0 0 18px 18px; border: 1px solid rgba(213,174,114,.6); }
.inner-hero-visual img { position: relative; z-index: 1; width: 100%; height: 100%; object-fit: cover; box-shadow: 0 35px 90px rgba(0,0,0,.26); }
.inner-hero-visual figcaption { position: absolute; z-index: 2; left: -35px; bottom: 28px; min-width: 235px; padding: 19px 23px; display: grid; background: rgba(245,242,236,.96); color: var(--ink); box-shadow: 0 18px 55px rgba(0,0,0,.22); }
.inner-hero-visual figcaption small { color: var(--bronze); font-size: .63rem; letter-spacing: .13em; text-transform: uppercase; }
.inner-hero-visual figcaption strong { margin-top: 4px; font-family: var(--heading); font-size: 1.3rem; font-weight: 500; }
.inner-hero-rail { position: relative; z-index: 2; margin-top: 42px; display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid rgba(255,255,255,.15); border-left: 1px solid rgba(255,255,255,.15); }
.inner-hero-rail span { min-height: 56px; display: grid; place-items: center; border-right: 1px solid rgba(255,255,255,.15); border-bottom: 1px solid rgba(255,255,255,.15); color: rgba(255,255,255,.56); font-size: .69rem; letter-spacing: .11em; text-transform: uppercase; }
.inner-hero-media, .inner-hero-bg { display: none; }
.inner-hero + .section { padding-top: clamp(84px, 9vw, 145px); }

/* Home commercial feature */
.home-commercial-section { background: #f2eee7; overflow: hidden; }
.home-commercial-shell { display: grid; grid-template-columns: minmax(0, 1.06fr) minmax(430px, .94fr); align-items: center; }
.home-commercial-media { position: relative; min-height: 650px; margin-right: -55px; }
.home-commercial-media::before { content: ""; position: absolute; z-index: 0; inset: -28px 48px 52px -48px; border: 1px solid rgba(196,141,69,.35); }
.home-commercial-media img { position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%; object-fit: cover; box-shadow: 0 28px 80px rgba(15,29,43,.14); }
.home-commercial-media::after { content: ""; position: absolute; z-index: 2; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(8,20,31,.56)); }
.home-commercial-stamp { position: absolute; z-index: 3; left: 34px; bottom: 34px; width: 190px; height: 190px; padding: 27px; display: flex; flex-direction: column; justify-content: flex-end; color: #fff; background: rgba(12,35,56,.88); backdrop-filter: blur(8px); }
.home-commercial-stamp small { color: var(--bronze-soft); font-size: .62rem; letter-spacing: .13em; text-transform: uppercase; }
.home-commercial-stamp strong { margin-top: 9px; font-family: var(--heading); font-size: 1.75rem; font-weight: 500; line-height: 1.05; }
.home-commercial-index { position: absolute; z-index: 3; right: 25px; top: 25px; padding: 8px 12px; color: #fff; background: rgba(10,25,38,.76); font-size: .66rem; letter-spacing: .15em; }
.home-commercial-copy { position: relative; z-index: 4; margin-left: -25px; padding: clamp(48px, 5vw, 82px); background: #fff; box-shadow: 0 28px 85px rgba(15,29,43,.12); }
.home-commercial-copy h2 { margin: 15px 0 24px; font-size: clamp(2.6rem, 4vw, 4.35rem); }
.home-commercial-copy .lead { color: var(--muted); font-size: 1rem; }
.home-commercial-points { margin-top: 34px; border-top: 1px solid var(--line); }
.home-commercial-points > div { min-height: 60px; display: grid; grid-template-columns: 46px 1fr; align-items: center; border-bottom: 1px solid var(--line); }
.home-commercial-points b { color: var(--bronze); font-size: .68rem; font-weight: 600; letter-spacing: .08em; }
.home-commercial-points span { color: #384552; font-size: .88rem; }
.home-commercial-actions { margin-top: 31px; display: flex; align-items: center; gap: 25px; flex-wrap: wrap; }
.text-link { display: inline-flex; gap: 10px; color: var(--navy); font-size: .76rem; font-weight: 600; text-transform: uppercase; letter-spacing: .07em; }

/* Home region showcase */
.home-region-section { position: relative; color: #fff; background: #0b2134; overflow: hidden; }
.home-region-section::before { content: ""; position: absolute; width: 720px; height: 720px; right: -240px; top: -240px; border: 1px solid rgba(213,174,114,.22); border-radius: 50%; box-shadow: 0 0 0 85px rgba(213,174,114,.025), 0 0 0 170px rgba(213,174,114,.018); }
.home-region-head { position: relative; z-index: 2; margin-bottom: 52px; display: grid; grid-template-columns: 1.2fr .8fr; gap: 90px; align-items: end; }
.home-region-head h2 { max-width: 760px; margin-top: 13px; }
.home-region-head p { color: rgba(255,255,255,.62); }
.home-region-shell { position: relative; z-index: 2; display: grid; grid-template-columns: .85fr 1.15fr; border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.025); }
.home-region-feature { min-height: 540px; padding: clamp(38px, 5vw, 70px); display: flex; flex-direction: column; justify-content: center; border-right: 1px solid rgba(255,255,255,.14); background: linear-gradient(145deg, rgba(196,141,69,.12), transparent 55%); }
.home-region-kicker { color: var(--bronze-soft); font-size: .66rem; letter-spacing: .16em; }
.home-region-feature > strong { margin: 25px 0 37px; font-family: var(--heading); font-size: clamp(2.4rem, 3.8vw, 4.3rem); font-weight: 500; line-height: 1.04; }
.home-region-stats { margin-bottom: 36px; display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(255,255,255,.14); border-left: 1px solid rgba(255,255,255,.14); }
.home-region-stats span { min-height: 95px; padding: 14px; display: flex; flex-direction: column; justify-content: center; border-right: 1px solid rgba(255,255,255,.14); border-bottom: 1px solid rgba(255,255,255,.14); color: rgba(255,255,255,.48); font-size: .62rem; text-transform: uppercase; letter-spacing: .06em; }
.home-region-stats b { color: #fff; font-family: var(--heading); font-size: 1.65rem; font-weight: 500; }
.home-region-feature .button { align-self: flex-start; }
.home-region-links { display: grid; grid-template-columns: repeat(2, 1fr); align-content: start; }
.home-region-links a { min-height: 72px; padding: 0 24px; display: grid; grid-template-columns: 34px 1fr auto; align-items: center; gap: 13px; border-right: 1px solid rgba(255,255,255,.12); border-bottom: 1px solid rgba(255,255,255,.12); transition: .22s ease; }
.home-region-links a:hover { background: rgba(196,141,69,.14); }
.home-region-links small { color: var(--bronze-soft); font-size: .62rem; }
.home-region-links span { font-size: .88rem; }
.home-region-links b { color: rgba(255,255,255,.4); font-weight: 400; }

/* Home final CTA */
.home-final-cta { padding: clamp(84px, 9vw, 135px) 0; background: #f8f6f1; }
.home-final-shell { display: grid; grid-template-columns: 1.05fr .95fr; min-height: 520px; box-shadow: 0 32px 90px rgba(15,29,43,.14); }
.home-final-image { position: relative; overflow: hidden; }
.home-final-image img { width: 100%; height: 100%; object-fit: cover; }
.home-final-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(8,20,31,.45), transparent 55%); }
.home-final-image > span { position: absolute; z-index: 2; left: 24px; bottom: 20px; color: #fff; font-size: .65rem; letter-spacing: .1em; text-transform: uppercase; }
.home-final-copy { padding: clamp(48px, 6vw, 92px); display: flex; flex-direction: column; justify-content: center; color: #fff; background: linear-gradient(145deg, #0c2338, #153451); }
.home-final-copy h2 { margin: 15px 0 22px; font-size: clamp(2.5rem, 4vw, 4.3rem); }
.home-final-copy p { max-width: 580px; color: rgba(255,255,255,.65); }
.home-final-actions { margin-top: 33px; display: flex; align-items: center; gap: 28px; flex-wrap: wrap; }
.home-final-actions > a:last-child { color: rgba(255,255,255,.72); font-size: .86rem; }

/* Service-area directory */
.area-directory-intro { margin-bottom: 58px; display: grid; grid-template-columns: 1.1fr .9fr; gap: 90px; align-items: end; }
.area-directory-intro h2 { margin-top: 12px; }
.area-directory-intro > p { color: var(--muted); }
.area-cluster-grid { display: grid; grid-template-columns: repeat(5, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.area-cluster { min-height: 390px; padding: 30px 25px; display: flex; flex-direction: column; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #fff; transition: .25s ease; }
.area-cluster:hover { transform: translateY(-6px); box-shadow: 0 24px 65px rgba(15,29,43,.1); border-color: rgba(196,141,69,.42); }
.area-cluster-number { color: var(--bronze); font-size: .68rem; letter-spacing: .1em; }
.area-cluster h3 { margin: 44px 0 25px; font-size: 1.55rem; }
.area-cluster > div { margin-top: auto; }
.area-cluster a { min-height: 42px; display: flex; align-items: center; justify-content: space-between; border-top: 1px solid var(--line); color: #55616d; font-size: .76rem; }
.area-cluster a:hover { color: var(--bronze); }
.area-cluster a b { font-weight: 400; }
.area-region-story { color: #fff; background: #0b2134; }
.area-region-layout { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(65px, 9vw, 140px); align-items: center; }
.area-region-visual { position: relative; aspect-ratio: 1; display: flex; flex-direction: column; justify-content: center; align-items: center; border: 1px solid rgba(255,255,255,.13); overflow: hidden; text-align: center; }
.area-region-visual::before { content: ""; position: absolute; inset: 7%; border: 1px solid rgba(213,174,114,.32); transform: rotate(8deg); }
.area-region-visual small { position: relative; z-index: 2; color: var(--bronze-soft); letter-spacing: .16em; }
.area-region-visual strong { position: relative; z-index: 2; margin: 25px 0; font-family: var(--heading); font-size: clamp(3rem, 6vw, 6.7rem); font-weight: 500; line-height: .82; }
.area-region-visual p { position: relative; z-index: 2; color: rgba(255,255,255,.52); font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; }
.area-orbit { position: absolute; border: 1px solid rgba(255,255,255,.08); border-radius: 50%; }
.area-orbit-one { width: 80%; height: 80%; }
.area-orbit-two { width: 118%; height: 42%; transform: rotate(-32deg); }
.area-region-copy h2 { margin: 14px 0 22px; }
.area-region-copy .lead { color: rgba(255,255,255,.68); }
.area-region-points { margin: 35px 0; border-top: 1px solid rgba(255,255,255,.13); }
.area-region-points > div { min-height: 64px; display: grid; grid-template-columns: 46px 1fr; align-items: center; border-bottom: 1px solid rgba(255,255,255,.13); }
.area-region-points b { color: var(--bronze-soft); font-size: .68rem; }
.area-region-points span { color: rgba(255,255,255,.7); font-size: .85rem; }
.location-card-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.location-card { min-height: 310px; padding: 32px; display: flex; flex-direction: column; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: rgba(255,255,255,.45); transition: .25s ease; }
.location-card:hover { color: #fff; background: var(--navy); }
.location-card > span { color: var(--bronze); font-size: .65rem; letter-spacing: .12em; text-transform: uppercase; }
.location-card strong { margin: 42px 0 16px; font-family: var(--heading); font-size: 2rem; font-weight: 500; }
.location-card p { color: var(--muted); font-size: .78rem; line-height: 1.7; }
.location-card:hover p { color: rgba(255,255,255,.62); }
.location-card b { margin-top: auto; padding-top: 25px; color: var(--bronze-soft); font-size: .7rem; font-weight: 500; text-transform: uppercase; letter-spacing: .07em; }

/* Location detail pages */
.location-intro-visual { position: relative; min-height: 600px; }
.location-intro-visual img { width: 100%; height: 100%; object-fit: cover; }
.location-intro-visual > div { position: absolute; left: -30px; bottom: 30px; min-width: 255px; padding: 25px; display: grid; background: var(--navy); color: #fff; box-shadow: var(--shadow); }
.location-intro-visual small { color: var(--bronze-soft); font-size: .65rem; letter-spacing: .13em; text-transform: uppercase; }
.location-intro-visual strong { margin: 6px 0; font-family: var(--heading); font-size: 1.6rem; font-weight: 500; }
.location-intro-visual span { color: rgba(255,255,255,.58); font-size: .72rem; }
.location-planning-section { color: #fff; background: #0d1e2d; }
.location-planning-layout { display: grid; grid-template-columns: .75fr 1.25fr; gap: 90px; }
.location-planning-copy h2 { margin: 15px 0 20px; }
.location-planning-copy p { color: rgba(255,255,255,.62); }
.location-planning-columns { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid rgba(255,255,255,.14); border-left: 1px solid rgba(255,255,255,.14); }
.location-planning-columns section { padding: 30px; border-right: 1px solid rgba(255,255,255,.14); border-bottom: 1px solid rgba(255,255,255,.14); }
.location-planning-columns small { display: block; margin-bottom: 32px; color: var(--bronze-soft); font-size: .67rem; letter-spacing: .12em; text-transform: uppercase; }
.location-planning-columns div { min-height: 54px; display: grid; grid-template-columns: 25px 1fr; align-items: center; border-top: 1px solid rgba(255,255,255,.11); color: rgba(255,255,255,.7); font-size: .8rem; }
.location-planning-columns div span { color: var(--bronze-soft); }
.location-estimate-section { background: #e9e4dc; }
.not-found-section { min-height: 70vh; padding-top: 210px; }

/* Expanded footer */
.footer-region { position: relative; padding: clamp(90px, 10vw, 155px) 0 90px; overflow: hidden; background: linear-gradient(145deg, #071725, #102b42 72%, #0c2338); border-bottom: 1px solid rgba(255,255,255,.11); }
.footer-region-word { position: absolute; left: -1vw; top: 12px; color: transparent; -webkit-text-stroke: 1px rgba(255,255,255,.04); font-family: var(--heading); font-size: clamp(8rem, 18vw, 22rem); font-weight: 700; line-height: 1; white-space: nowrap; }
.footer-region-orbit { position: absolute; border: 1px solid rgba(213,174,114,.12); border-radius: 50%; }
.footer-region-orbit-one { width: 760px; height: 760px; right: -300px; top: -250px; }
.footer-region-orbit-two { width: 530px; height: 530px; left: -260px; bottom: -280px; }
.footer-region-inner { position: relative; z-index: 2; }
.footer-region-head { margin-bottom: 58px; display: grid; grid-template-columns: 1.15fr .85fr; gap: 100px; align-items: end; }
.footer-region-head h2 { max-width: 760px; margin-top: 14px; font-size: clamp(2.8rem, 5vw, 5.5rem); }
.footer-region-head p { margin-bottom: 24px; color: rgba(255,255,255,.58); }
.footer-location-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid rgba(255,255,255,.13); border-left: 1px solid rgba(255,255,255,.13); }
.footer-location-grid a { min-height: 68px; padding: 0 18px; display: grid; grid-template-columns: 28px 1fr auto; align-items: center; gap: 10px; border-right: 1px solid rgba(255,255,255,.13); border-bottom: 1px solid rgba(255,255,255,.13); color: rgba(255,255,255,.7); transition: .22s ease; }
.footer-location-grid a:hover { color: #fff; background: rgba(196,141,69,.15); }
.footer-location-grid small { color: var(--bronze-soft); font-size: .58rem; }
.footer-location-grid span { font-size: .77rem; }
.footer-location-grid b { color: rgba(255,255,255,.34); font-weight: 400; }
.footer-service-line { min-height: 48px; display: flex; align-items: center; overflow: hidden; color: rgba(255,255,255,.55); background: var(--bronze); }
.footer-service-line > div { min-width: max-content; margin-inline: auto; display: flex; gap: 24px; align-items: center; color: #fff; font-size: .65rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.footer-service-line i { opacity: .45; font-style: normal; }
.footer-cta { padding: 82px 0; }
.footer-grid-power { grid-template-columns: 1.45fr repeat(4, 1fr); }
.footer-grid { padding-top: 78px; }
.footer-socials a, .footer-socials span { width: 40px; height: 40px; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; color: rgba(255,255,255,.65); }
.footer-socials a:hover { color: #fff; border-color: var(--bronze-soft); }
.footer-region-label { margin-top: 30px; display: flex; align-items: center; gap: 10px; color: rgba(255,255,255,.4); font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; }
.footer-region-label span { width: 32px; height: 1px; background: var(--bronze); }
.footer-contact-primary { color: #fff !important; font-family: var(--heading); font-size: 1.35rem !important; }

@media (max-width: 1450px) {
  .utility-inner { width: calc(100% - 40px); }
  .footer-grid-power { grid-template-columns: 1.3fr repeat(4, 1fr); gap: 32px; }
  .area-cluster-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 1200px) {
  .utility-email, .utility-socials > span:first-child { display: none; }
  .inner-hero-layout { grid-template-columns: .9fr 1.1fr; gap: 50px; }
  .inner-hero-visual { height: 390px; }
  .home-commercial-shell { grid-template-columns: 1fr 1fr; }
  .home-commercial-copy { margin-left: -60px; }
  .home-region-shell { grid-template-columns: 1fr; }
  .home-region-feature { min-height: auto; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.14); }
  .footer-location-grid { grid-template-columns: repeat(3, 1fr); }
  .footer-grid-power { grid-template-columns: repeat(3, 1fr); }
  .footer-brand { grid-column: span 3; }
  .location-card-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 900px) {
  .utility-bar { height: 34px; }
  .site-header { top: 34px; height: 82px; }
  .site-header.is-sticky { top: 0; }
  .utility-quicklinks > * { padding-inline: 12px; }
  .utility-socials { display: none; }
  .inner-hero { min-height: auto; padding: 155px 0 45px; }
  .inner-hero-layout { grid-template-columns: 1fr; }
  .inner-hero-copy { padding-bottom: 0; }
  .inner-hero-visual { height: 380px; }
  .inner-hero-rail { grid-template-columns: repeat(2, 1fr); }
  .home-hero { padding-top: 150px; }
  .home-commercial-shell { grid-template-columns: 1fr; }
  .home-commercial-media { min-height: 540px; margin: 0; }
  .home-commercial-copy { margin: -60px 28px 0; }
  .home-region-head, .area-directory-intro, .footer-region-head { grid-template-columns: 1fr; gap: 28px; }
  .home-final-shell { grid-template-columns: 1fr; }
  .home-final-image { min-height: 420px; }
  .area-cluster-grid { grid-template-columns: repeat(2, 1fr); }
  .area-region-layout, .location-planning-layout { grid-template-columns: 1fr; gap: 55px; }
  .area-region-visual { max-width: 600px; width: 100%; margin-inline: auto; }
  .footer-location-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 650px) {
  .utility-inner { width: calc(100% - 24px); justify-content: center; }
  .utility-region { border-right: 0 !important; }
  .utility-quicklinks a { display: none; }
  .site-header { top: 34px; }
  .home-hero { padding-top: 132px; }
  .hero-copy-card h1 { font-size: 2.75rem; }
  .inner-hero { padding-top: 135px; }
  .inner-hero h1 { font-size: 2.8rem; }
  .inner-hero-visual { height: 300px; padding-right: 8px; }
  .inner-hero-visual figcaption { left: 12px; bottom: 12px; min-width: 205px; padding: 15px 18px; }
  .inner-hero-actions { align-items: flex-start; flex-direction: column; gap: 18px; }
  .inner-hero-rail { margin-top: 30px; }
  .inner-hero-rail span { min-height: 49px; font-size: .58rem; }
  .home-commercial-media { min-height: 420px; }
  .home-commercial-stamp { left: 18px; bottom: 18px; width: 150px; height: 150px; padding: 20px; }
  .home-commercial-copy { margin: -35px 14px 0; padding: 35px 24px; }
  .home-commercial-points span { font-size: .78rem; }
  .home-region-head { margin-bottom: 35px; }
  .home-region-feature { padding: 34px 24px; }
  .home-region-stats { grid-template-columns: 1fr; }
  .home-region-stats span { min-height: 68px; }
  .home-region-links { grid-template-columns: 1fr; }
  .home-final-image { min-height: 300px; }
  .home-final-copy { padding: 38px 25px; }
  .area-cluster-grid, .location-card-grid { grid-template-columns: 1fr; }
  .area-cluster { min-height: 330px; }
  .location-planning-columns { grid-template-columns: 1fr; }
  .location-intro-visual { min-height: 420px; }
  .location-intro-visual > div { left: 14px; right: 14px; bottom: 14px; min-width: 0; }
  .footer-region { padding-top: 85px; }
  .footer-location-grid { grid-template-columns: 1fr; }
  .footer-location-grid a { min-height: 58px; }
  .footer-service-line { display: none; }
  .footer-grid-power { grid-template-columns: 1fr; }
  .footer-brand { grid-column: auto; }
  .footer-region-head h2 { font-size: 2.7rem; }
}

/* Westline V5.3: full-height hero, contextual page banners and power footer */
.utility-bar {
  height: 42px;
  background:
    linear-gradient(90deg, rgba(196,141,69,.16), transparent 24%, transparent 76%, rgba(196,141,69,.12)),
    linear-gradient(90deg, #071725 0%, #12334f 52%, #071b2b 100%);
  box-shadow: inset 0 -1px rgba(255,255,255,.08);
}
.utility-bar::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(213,174,114,.72), transparent);
  opacity: .65;
}
.utility-inner { position: relative; z-index: 1; }
.utility-region { padding-left: 14px !important; }
.utility-region::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--bronze-soft);
  box-shadow: 0 0 0 5px rgba(213,174,114,.12);
}
.site-header { top: 42px; }
.mega-menu { top: 128px; }

.home-hero.home-hero-full {
  min-height: 100svh;
  padding: clamp(160px, 17vh, 205px) 0 clamp(55px, 8vh, 88px);
}
.home-hero.home-hero-full::after {
  background:
    linear-gradient(90deg, rgba(4,14,23,.5) 0%, rgba(4,14,23,.12) 51%, rgba(4,14,23,.42) 100%),
    linear-gradient(to top, rgba(6,17,27,.24), transparent 46%);
}
.home-hero-inner {
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, 390px);
  gap: clamp(44px, 6vw, 95px);
}
.hero-copy-card { max-width: 720px; }
.hero-copy-card h1 {
  max-width: 650px;
  font-size: clamp(2.8rem, 4.15vw, 5rem);
  line-height: 1.075;
}
.hero-form-wrap.hero-form-compact {
  width: min(100%, 390px);
  justify-self: end;
  padding: 25px 26px 27px;
  border-radius: 18px;
  background: rgba(255,255,255,.94);
  box-shadow: 0 24px 70px rgba(5,18,28,.28);
}
.hero-form-compact .eyebrow { font-size: .62rem; }
.hero-form-compact h2 { margin: 7px 0 7px; font-size: clamp(1.65rem, 2.2vw, 2.25rem); line-height: 1.08; }
.hero-form-compact > p { margin-bottom: 14px; font-size: .74rem; line-height: 1.55; }
.hero-form-compact .quote-form { gap: 9px; }
.hero-form-compact .form-grid.two { gap: 9px; }
.hero-form-compact .quote-form label { gap: 4px; font-size: .62rem; }
.hero-form-compact .quote-form input,
.hero-form-compact .quote-form select { min-height: 43px; padding: 9px 11px; font-size: .77rem; }
.hero-form-compact .quote-form .button { min-height: 46px; margin-top: 2px; font-size: .67rem; }

.inner-hero.inner-hero-context {
  min-height: 650px;
  padding: 178px 0 46px;
  background:
    radial-gradient(circle at 76% 23%, rgba(196,141,69,.18), transparent 25%),
    linear-gradient(135deg, #061522 0%, #0d2a41 58%, #102d43 100%);
}
.inner-hero-glow {
  position: absolute;
  width: 620px;
  height: 620px;
  right: -240px;
  bottom: -370px;
  border: 1px solid rgba(213,174,114,.14);
  border-radius: 50%;
  box-shadow: 0 0 0 120px rgba(213,174,114,.025), 0 0 0 240px rgba(213,174,114,.018);
}
.inner-hero-layout {
  grid-template-columns: minmax(0, .93fr) minmax(430px, 1.07fr);
  gap: clamp(62px, 8vw, 125px);
}
.inner-hero-copy { padding: 24px 0 30px; }
.inner-hero h1 {
  max-width: 740px;
  margin: 16px 0 22px;
  font-size: clamp(2.75rem, 4.3vw, 4.9rem);
  line-height: 1.04;
}
.inner-hero p { max-width: 610px; font-size: .98rem; }
.inner-hero-visual { height: 410px; padding: 14px 14px 0 0; }
.inner-hero-visual::before { inset: 0 0 18px 18px; border-color: rgba(213,174,114,.5); }
.inner-hero-image-frame { position: relative; z-index: 1; width: 100%; height: 100%; overflow: hidden; }
.inner-hero-visual img { position: static; width: 100%; height: 100%; object-fit: cover; box-shadow: none; transition: transform .8s ease; }
.inner-hero-visual:hover img { transform: scale(1.025); }
.inner-hero-image-frame::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(4,14,23,.36), transparent 48%); }
.inner-hero-image-mark { position: absolute; z-index: 2; top: 18px; right: 18px; padding: 8px 10px; color: rgba(255,255,255,.82); background: rgba(8,24,37,.66); font-size: .55rem; letter-spacing: .12em; text-transform: uppercase; backdrop-filter: blur(8px); }
.inner-hero-visual figcaption {
  left: -36px;
  bottom: 24px;
  min-width: 245px;
  max-width: 330px;
  padding: 18px 22px;
  border-left: 3px solid var(--bronze);
}
.inner-hero-visual figcaption strong { font-size: 1.18rem; line-height: 1.2; }
.inner-hero-visual figcaption span { margin-top: 7px; color: #707b86; font-size: .62rem; letter-spacing: .04em; }
.inner-hero-rail { margin-top: 34px; }
.inner-hero-rail span { min-height: 52px; }

.site-footer-power { background: #07131e; }
.footer-region { padding-bottom: 84px; }
.footer-region-intro { max-width: 520px; justify-self: end; }
.footer-region-actions { display: flex; align-items: center; gap: 25px; flex-wrap: wrap; }
.footer-region-text-link { color: rgba(255,255,255,.62); font-size: .72rem; letter-spacing: .07em; text-transform: uppercase; }
.footer-region-text-link:hover { color: #fff; }
.footer-local-reminder {
  margin-top: 34px;
  padding: 25px 28px;
  display: grid;
  grid-template-columns: 68px 1fr auto;
  gap: 24px;
  align-items: center;
  border: 1px solid rgba(255,255,255,.14);
  background: linear-gradient(100deg, rgba(196,141,69,.15), rgba(255,255,255,.025));
}
.footer-local-reminder-mark { width: 60px; height: 60px; display: grid; place-items: center; border: 1px solid rgba(213,174,114,.52); border-radius: 50%; color: var(--bronze-soft); font-family: var(--heading); font-weight: 700; }
.footer-local-reminder small { display: block; color: var(--bronze-soft); font-size: .61rem; letter-spacing: .12em; text-transform: uppercase; }
.footer-local-reminder strong { display: block; margin: 3px 0 4px; font-family: var(--heading); font-size: 1.25rem; font-weight: 500; }
.footer-local-reminder p { color: rgba(255,255,255,.5); font-size: .74rem; }
.footer-local-reminder > a { color: #fff; font-size: .67rem; font-weight: 600; letter-spacing: .07em; text-transform: uppercase; }
.footer-local-reminder > a span { margin-left: 12px; color: var(--bronze-soft); }

.footer-action-deck { padding: 0; background: #0a1926; border-bottom: 1px solid rgba(255,255,255,.1); }
.footer-action-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-left: 1px solid rgba(255,255,255,.12); }
.footer-action-card { min-height: 230px; padding: 34px 30px; display: flex; flex-direction: column; border-right: 1px solid rgba(255,255,255,.12); color: #fff; background: rgba(255,255,255,.018); transition: .25s ease; }
.footer-action-card:hover { background: rgba(196,141,69,.11); transform: translateY(-5px); }
.footer-action-card.footer-action-primary { background: linear-gradient(145deg, #b87f39, #d2a25f); }
.footer-action-card small { color: var(--bronze-soft); font-size: .61rem; letter-spacing: .13em; text-transform: uppercase; }
.footer-action-card.footer-action-primary small { color: rgba(255,255,255,.75); }
.footer-action-card strong { margin: 28px 0 18px; font-family: var(--heading); font-size: clamp(1.4rem, 2vw, 2rem); font-weight: 500; line-height: 1.12; }
.footer-action-card > span { margin-top: auto; color: rgba(255,255,255,.52); font-size: .73rem; }
.footer-action-card.footer-action-primary > span { color: rgba(255,255,255,.86); }
.footer-action-card b { float: right; color: var(--bronze-soft); font-weight: 400; }
.footer-action-card.footer-action-primary b { color: #fff; }

.footer-trust-section { padding: clamp(82px, 9vw, 135px) 0; background: linear-gradient(145deg, #0b2132, #0f2e45); border-bottom: 1px solid rgba(255,255,255,.1); }
.footer-trust-layout { display: grid; grid-template-columns: .72fr 1.28fr; gap: clamp(60px, 8vw, 125px); align-items: start; }
.footer-trust-intro h2 { margin: 15px 0 22px; max-width: 520px; font-size: clamp(2.4rem, 4vw, 4.3rem); }
.footer-trust-intro p { max-width: 500px; color: rgba(255,255,255,.55); }
.footer-trust-grid { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid rgba(255,255,255,.13); border-left: 1px solid rgba(255,255,255,.13); }
.footer-trust-card { min-height: 245px; padding: 30px; border-right: 1px solid rgba(255,255,255,.13); border-bottom: 1px solid rgba(255,255,255,.13); }
.footer-trust-icon { width: 42px; height: 42px; margin-bottom: 29px; display: grid; place-items: center; border: 1px solid rgba(213,174,114,.38); border-radius: 50%; color: var(--bronze-soft); }
.footer-trust-card small { display: block; color: var(--bronze-soft); font-size: .6rem; letter-spacing: .12em; text-transform: uppercase; }
.footer-trust-card strong { display: block; margin: 7px 0 12px; font-family: var(--heading); font-size: 1.28rem; font-weight: 500; }
.footer-trust-card p { color: rgba(255,255,255,.5); font-size: .75rem; line-height: 1.75; }
.footer-trust-card p a { color: var(--bronze-soft); }

.footer-command-centre { padding: clamp(85px, 9vw, 140px) 0 0; background: #07131e; }
.footer-command-head { padding-bottom: 72px; display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(65px, 9vw, 145px); align-items: end; border-bottom: 1px solid rgba(255,255,255,.12); }
.footer-command-brand img { width: 245px; filter: brightness(0) invert(1); }
.footer-command-brand p { max-width: 430px; margin-top: 23px; color: rgba(255,255,255,.53); font-size: .82rem; }
.footer-command-message h2 { margin: 15px 0 18px; font-size: clamp(2.6rem, 4.6vw, 5rem); }
.footer-command-message > p { max-width: 720px; color: rgba(255,255,255,.56); }
.footer-command-message > div { margin-top: 28px; display: flex; align-items: center; gap: 25px; flex-wrap: wrap; }
.footer-command-message > div > a:last-child { color: rgba(255,255,255,.66); font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; }
.footer-directory { padding: 72px 0 68px; display: grid; grid-template-columns: 1.05fr 1.05fr 1.05fr .85fr 1.15fr 1.05fr; gap: 34px; }
.footer-directory section { min-width: 0; }
.footer-directory h3 { min-height: 42px; margin-bottom: 17px; color: var(--bronze-soft); font-family: var(--sans); font-size: .69rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.footer-directory section > a { display: block; margin: 10px 0; color: rgba(255,255,255,.58); font-size: .74rem; line-height: 1.45; }
.footer-directory section > a:hover { color: #fff; }
.footer-directory section > p { margin-bottom: 17px; color: rgba(255,255,255,.48); font-size: .72rem; }
.footer-project-checklist ul { margin: 0; padding: 0; list-style: none; }
.footer-project-checklist li { position: relative; padding: 8px 0 8px 20px; border-bottom: 1px solid rgba(255,255,255,.09); color: rgba(255,255,255,.62); font-size: .72rem; }
.footer-project-checklist li::before { content: "✓"; position: absolute; left: 0; color: var(--bronze-soft); }
.footer-mini-cta { margin-top: 18px !important; color: var(--bronze-soft) !important; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; }
.footer-contact-primary { margin-bottom: 14px !important; }
.footer-availability { margin: 18px 0; padding: 10px 12px; display: inline-flex; border: 1px solid rgba(213,174,114,.32); color: var(--bronze-soft); font-size: .62rem; letter-spacing: .08em; text-transform: uppercase; }
.footer-legal-bar { min-height: 74px; padding: 18px 0; display: flex; justify-content: space-between; align-items: center; gap: 30px; border-top: 1px solid rgba(255,255,255,.12); }
.footer-legal-bar > div { display: flex; align-items: center; gap: 15px; color: rgba(255,255,255,.46); font-size: .67rem; }
.footer-legal-bar strong { color: rgba(255,255,255,.74); font-weight: 500; }
.footer-legal-bar a { color: rgba(255,255,255,.55); }
.footer-legal-bar a:hover { color: #fff; }
.footer-lock-dot { width: 8px; height: 8px; border-radius: 50%; background: #73c68b; box-shadow: 0 0 0 6px rgba(115,198,139,.12); }
.footer-bottom-final { min-height: 78px; border-top: 0; background: #050d14; }
.footer-bottom-final > .container { min-height: 78px; display: flex; justify-content: space-between; align-items: center; gap: 25px; color: rgba(255,255,255,.38); font-size: .66rem; }
.footer-bottom-final > .container > div { display: flex; gap: 22px; }

@media (max-width: 1380px) {
  .footer-directory { grid-template-columns: repeat(3, 1fr); gap: 50px 35px; }
}
@media (max-width: 1120px) {
  .home-hero-inner { grid-template-columns: minmax(0, 1fr) 360px; gap: 38px; }
  .hero-copy-card h1 { font-size: clamp(2.7rem, 4.5vw, 4.4rem); }
  .inner-hero-layout { grid-template-columns: minmax(0, .9fr) minmax(390px, 1.1fr); gap: 48px; }
  .footer-action-grid { grid-template-columns: repeat(2, 1fr); }
  .footer-trust-layout, .footer-command-head { grid-template-columns: 1fr; gap: 48px; }
  .footer-directory { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 900px) {
  .utility-bar { height: 36px; }
  .site-header { top: 36px; }
  .home-hero.home-hero-full { min-height: auto; padding: 145px 0 72px; }
  .home-hero-inner { grid-template-columns: 1fr; }
  .hero-form-wrap.hero-form-compact { width: min(100%, 520px); justify-self: start; }
  .inner-hero.inner-hero-context { min-height: auto; padding: 150px 0 44px; }
  .inner-hero-layout { grid-template-columns: 1fr; }
  .inner-hero-copy { padding-bottom: 0; }
  .inner-hero-visual { width: min(100%, 700px); height: 390px; }
  .footer-local-reminder { grid-template-columns: 60px 1fr; }
  .footer-local-reminder > a { grid-column: 2; }
  .footer-directory { grid-template-columns: repeat(2, 1fr); }
  .footer-legal-bar { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 650px) {
  .utility-bar { height: 34px; }
  .site-header { top: 34px; }
  .home-hero.home-hero-full { padding: 126px 0 46px; }
  .container-wide { width: min(100% - 24px, 1440px); }
  .hero-copy-card { padding: 32px 25px; border-radius: 18px; }
  .hero-copy-card h1 { font-size: clamp(2.35rem, 10vw, 3.2rem); }
  .hero-proof { grid-template-columns: 1fr; margin-top: 30px; }
  .hero-round-arrow { right: 14px; top: -35px; width: 68px; height: 68px; }
  .hero-form-wrap.hero-form-compact { padding: 23px 20px; }
  .hero-form-compact .form-grid.two { grid-template-columns: 1fr; }
  .inner-hero.inner-hero-context { padding: 128px 0 36px; }
  .inner-hero h1 { font-size: clamp(2.35rem, 10vw, 3.15rem); }
  .inner-hero-visual { height: 285px; padding-right: 8px; }
  .inner-hero-visual figcaption { left: 10px; right: 18px; bottom: 10px; min-width: 0; max-width: none; }
  .inner-hero-image-mark { top: 10px; right: 10px; }
  .inner-hero-rail { grid-template-columns: 1fr 1fr; }
  .footer-local-reminder { padding: 22px; grid-template-columns: 1fr; text-align: left; }
  .footer-local-reminder > a { grid-column: auto; }
  .footer-action-grid, .footer-trust-grid, .footer-directory { grid-template-columns: 1fr; }
  .footer-action-card { min-height: 190px; }
  .footer-trust-section, .footer-command-centre { padding-top: 78px; }
  .footer-command-head { padding-bottom: 52px; }
  .footer-directory { padding-top: 52px; gap: 38px; }
  .footer-directory h3 { min-height: 0; }
  .footer-legal-bar > div { align-items: flex-start; flex-wrap: wrap; }
  .footer-bottom-final > .container { padding: 22px 0; align-items: flex-start; flex-direction: column; }
  .footer-bottom-final > .container > div { flex-direction: column; gap: 5px; }
}

/* Westline V5.4: service-page repair, restrained headings and one-piece footer */

/* Contextual page banners */
.inner-hero.inner-hero-context {
  min-height: 625px;
  padding: 164px 0 52px;
}
.inner-hero-layout {
  grid-template-columns: minmax(0, .86fr) minmax(500px, 1.14fr);
  gap: clamp(55px, 7vw, 105px);
  align-items: center;
}
.inner-hero-copy { padding: 8px 0 18px; }
.inner-hero h1 {
  max-width: 670px;
  margin: 18px 0 24px;
  font-size: clamp(3rem, 4.65vw, 4.9rem);
  line-height: 1.03;
}
.inner-hero p { max-width: 590px; font-size: .98rem; line-height: 1.75; }
.inner-hero-actions { margin-top: 32px; }
.inner-hero-visual { height: 385px; padding: 12px 12px 0 0; }
.inner-hero-visual figcaption { max-width: 315px; padding: 20px 24px; }
.inner-hero-visual figcaption strong { font-size: 1.12rem; }
.inner-hero-image-mark { max-width: calc(100% - 36px); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.inner-hero-rail { margin-top: 29px; }
.inner-hero-rail span { min-height: 48px; padding-inline: 14px; font-size: .6rem; }

/* Home commercial section */
.home-commercial-section { padding: clamp(82px, 8vw, 120px) 0; }
.home-commercial-shell {
  grid-template-columns: minmax(0, 1.06fr) minmax(390px, .94fr);
  align-items: stretch;
  gap: 0;
  box-shadow: 0 28px 78px rgba(15,29,43,.12);
}
.home-commercial-media { min-height: 535px; margin: 0; }
.home-commercial-media::before { inset: -18px 35px 42px -18px; }
.home-commercial-copy {
  margin: 0;
  padding: clamp(42px, 4.5vw, 68px);
  box-shadow: none;
}
.home-commercial-copy h2 {
  max-width: 590px;
  margin: 14px 0 20px;
  font-size: clamp(2.45rem, 3.45vw, 3.55rem);
  line-height: 1.05;
}
.home-commercial-copy .lead { line-height: 1.72; }
.home-commercial-points { margin-top: 26px; }
.home-commercial-points > div { min-height: 54px; }
.home-commercial-stamp { width: 164px; height: 164px; padding: 23px; }
.home-commercial-stamp strong { font-size: 1.5rem; }

/* Home final CTA */
.home-final-shell { min-height: 455px; grid-template-columns: 1.08fr .92fr; }
.home-final-copy { padding: clamp(42px, 5vw, 70px); }
.home-final-copy h2 {
  max-width: 545px;
  margin: 14px 0 20px;
  font-size: clamp(2.35rem, 3.4vw, 3.35rem);
  line-height: 1.07;
}
.home-final-copy p { max-width: 520px; }

/* Rebuilt individual service pages */
.service-page .section { padding: clamp(78px, 8vw, 118px) 0; }
.service-introduction-section { background: var(--paper); }
.service-introduction-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.03fr) minmax(390px, .97fr);
  gap: clamp(58px, 7vw, 105px);
  align-items: center;
}
.service-introduction-media {
  position: relative;
  min-height: 610px;
  margin: 0;
  padding: 18px 18px 0 0;
}
.service-introduction-media::before {
  content: "";
  position: absolute;
  inset: 0 0 28px 28px;
  border: 1px solid rgba(196,141,69,.35);
}
.service-introduction-media img {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 610px;
  object-fit: cover;
  box-shadow: 0 22px 62px rgba(15,29,43,.14);
}
.service-introduction-media figcaption {
  position: absolute;
  z-index: 2;
  left: 0;
  bottom: 0;
  min-width: 220px;
  padding: 24px 27px;
  color: #fff;
  background: rgba(12,35,56,.94);
}
.service-introduction-media figcaption small,
.service-introduction-media figcaption span { display: block; }
.service-introduction-media figcaption small { color: var(--bronze-soft); font-size: .61rem; letter-spacing: .12em; text-transform: uppercase; }
.service-introduction-media figcaption strong { display: block; margin: 6px 0 3px; font-family: var(--heading); font-size: 1.55rem; font-weight: 500; }
.service-introduction-media figcaption span { color: rgba(255,255,255,.55); font-size: .68rem; }
.service-introduction-copy h2 {
  max-width: 650px;
  margin: 15px 0 22px;
  font-size: clamp(2.45rem, 3.65vw, 3.75rem);
  line-height: 1.07;
}
.service-introduction-copy > p:not(.lead) { margin-top: 17px; color: var(--muted); }
.service-application-list { margin-top: 29px; border-top: 1px solid var(--line); }
.service-application-list > div { min-height: 53px; display: grid; grid-template-columns: 45px 1fr; align-items: center; border-bottom: 1px solid var(--line); }
.service-application-list b { color: var(--bronze); font-size: .66rem; letter-spacing: .08em; }
.service-application-list span { color: #354350; font-size: .86rem; }
.service-introduction-actions { margin-top: 31px; display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }

.service-capability-section { padding: 0 0 clamp(80px, 8vw, 118px); background: var(--paper); }
.service-capability-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  color: #fff;
  background: #0c2338;
  border-left: 1px solid rgba(255,255,255,.12);
}
.service-capability-card { min-height: 390px; padding: 38px 34px; border-right: 1px solid rgba(255,255,255,.12); }
.service-capability-card small { color: var(--bronze-soft); font-size: .63rem; letter-spacing: .12em; text-transform: uppercase; }
.service-capability-card h3 { margin: 14px 0 26px; font-size: clamp(1.55rem, 2vw, 2rem); }
.service-capability-card ul { margin: 0; padding: 0; list-style: none; }
.service-capability-card li { position: relative; padding: 11px 0 11px 19px; border-bottom: 1px solid rgba(255,255,255,.09); color: rgba(255,255,255,.66); font-size: .8rem; }
.service-capability-card li::before { content: "→"; position: absolute; left: 0; color: var(--bronze-soft); }

.service-process-section { background: #ebe7df; }
.service-process-layout { grid-template-columns: minmax(280px, .68fr) minmax(0, 1.32fr); gap: clamp(55px, 8vw, 115px); align-items: start; }
.service-process-intro h2 { max-width: 470px; margin: 15px 0 20px; font-size: clamp(2.35rem, 3.45vw, 3.45rem); }
.service-process-intro p { max-width: 470px; color: var(--muted); }
.service-process-list article { min-height: 110px; padding: 24px 0; grid-template-columns: 58px 1fr; border-bottom: 1px solid var(--line); }
.service-process-list article:first-child { border-top: 1px solid var(--line); }
.service-process-list article > b { color: var(--bronze); font-size: .72rem; }
.service-process-list h3 { margin-bottom: 7px; font-size: 1.38rem; }
.service-process-list p { color: var(--muted); font-size: .82rem; }

.service-gallery-heading h2 { max-width: 720px; font-size: clamp(2.45rem, 3.7vw, 3.75rem); }
.service-confidence-section { color: #fff; background: #0c2338; }
.service-confidence-grid { grid-template-columns: minmax(0, 1.05fr) minmax(390px, .95fr); gap: 0; align-items: stretch; }
.service-confidence-image { position: relative; min-height: 570px; overflow: hidden; }
.service-confidence-image img { width: 100%; height: 100%; object-fit: cover; }
.service-confidence-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(5,18,29,.45), transparent 55%); }
.service-confidence-image > span { position: absolute; z-index: 2; left: 26px; bottom: 22px; color: rgba(255,255,255,.78); font-size: .62rem; letter-spacing: .11em; text-transform: uppercase; }
.service-confidence-copy { padding: clamp(46px, 5vw, 76px); display: flex; flex-direction: column; justify-content: center; }
.service-confidence-copy h2 { max-width: 560px; margin: 15px 0 21px; font-size: clamp(2.35rem, 3.45vw, 3.45rem); }
.service-confidence-copy > p { color: rgba(255,255,255,.62); }
.service-confidence-points { margin: 30px 0; border-top: 1px solid rgba(255,255,255,.13); }
.service-confidence-points > div { min-height: 58px; display: grid; grid-template-columns: 45px 1fr; align-items: center; border-bottom: 1px solid rgba(255,255,255,.13); }
.service-confidence-points b { color: var(--bronze-soft); font-size: .67rem; }
.service-confidence-points span { color: rgba(255,255,255,.74); font-size: .82rem; }
.service-faq-layout .faq-intro h2 { max-width: 450px; font-size: clamp(2.35rem, 3.4vw, 3.4rem); }
.related-service-section .section-heading h2 { font-size: clamp(2.3rem, 3.3vw, 3.35rem); }

.service-estimate-section { padding: clamp(82px, 8vw, 120px) 0 !important; }
.service-estimate-layout {
  display: grid;
  grid-template-columns: minmax(320px, .72fr) minmax(0, 1.28fr);
  gap: 0;
  align-items: stretch;
  border: 1px solid var(--line);
  background: #fff;
}
.service-estimate-intro {
  padding: clamp(42px, 4.5vw, 67px);
  color: #fff;
  background: #153451;
}
.service-estimate-service { display: inline-flex; margin-top: 22px; padding: 8px 11px; border: 1px solid rgba(213,174,114,.35); color: var(--bronze-soft); font-size: .63rem; letter-spacing: .1em; text-transform: uppercase; }
.service-estimate-intro h2 { max-width: 445px; margin: 16px 0 20px; font-size: clamp(2.25rem, 3.2vw, 3.15rem); line-height: 1.07; }
.service-estimate-intro p { max-width: 430px; color: rgba(255,255,255,.62); }
.service-estimate-meta { margin-top: 31px; display: flex; gap: 8px; flex-wrap: wrap; }
.service-estimate-meta span { padding: 8px 10px; border: 1px solid rgba(255,255,255,.16); color: rgba(255,255,255,.64); font-size: .61rem; text-transform: uppercase; letter-spacing: .07em; }
.service-form-panel { padding: clamp(34px, 4vw, 56px); border: 0; }

/* One continuous, extensive footer */
.footer-unified {
  position: relative;
  overflow: hidden;
  color: #fff;
  background: #071826;
}
.footer-unified-backdrop {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 10% 7%, rgba(196,141,69,.11), transparent 28%),
    radial-gradient(circle at 91% 35%, rgba(55,107,148,.13), transparent 30%),
    linear-gradient(180deg, rgba(255,255,255,.015), transparent 55%);
}
.footer-unified-inner { position: relative; z-index: 1; }
.footer-unified section { background: transparent; }
.footer-area-block { padding: clamp(88px, 8vw, 128px) 0 68px; border-bottom: 1px solid rgba(255,255,255,.11); }
.footer-area-heading { display: grid; grid-template-columns: 1.02fr .98fr; gap: clamp(55px, 8vw, 120px); align-items: end; }
.footer-area-heading h2 { max-width: 650px; margin-top: 15px; font-size: clamp(2.45rem, 3.7vw, 3.85rem); }
.footer-area-intro { max-width: 560px; justify-self: end; }
.footer-area-intro p { color: rgba(255,255,255,.56); }
.footer-area-intro > div { margin-top: 27px; display: flex; align-items: center; gap: 25px; flex-wrap: wrap; }
.footer-text-link { color: rgba(255,255,255,.62); font-size: .7rem; font-weight: 600; letter-spacing: .07em; text-transform: uppercase; }
.footer-text-link:hover { color: #fff; }
.footer-location-grid-unified { margin-top: 50px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.footer-location-grid-unified a { min-height: 60px; }
.footer-location-reminder { margin-top: 30px; padding: 24px 27px; display: grid; grid-template-columns: 54px 1fr auto; align-items: center; gap: 24px; border: 1px solid rgba(213,174,114,.27); background: rgba(255,255,255,.025); }
.footer-location-reminder-mark { width: 54px; height: 54px; display: grid; place-items: center; border: 1px solid rgba(213,174,114,.46); border-radius: 50%; color: var(--bronze-soft); font-family: var(--heading); font-weight: 700; }
.footer-location-reminder small { display: block; color: var(--bronze-soft); font-size: .58rem; letter-spacing: .12em; text-transform: uppercase; }
.footer-location-reminder strong { display: block; margin: 3px 0; font-family: var(--heading); font-size: 1.18rem; font-weight: 500; }
.footer-location-reminder p { color: rgba(255,255,255,.48); font-size: .72rem; }
.footer-location-reminder > a { color: #fff; font-size: .66rem; font-weight: 600; letter-spacing: .07em; text-transform: uppercase; }
.footer-location-reminder > a span { margin-left: 10px; color: var(--bronze-soft); }

.footer-cta-block { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-bottom: 1px solid rgba(255,255,255,.11); }
.footer-cta-card { min-width: 0; min-height: 190px; padding: 29px 26px; display: flex; flex-direction: column; border-right: 1px solid rgba(255,255,255,.11); background: rgba(255,255,255,.018); transition: .22s ease; }
.footer-cta-card:first-child { border-left: 1px solid rgba(255,255,255,.11); }
.footer-cta-card:hover { background: rgba(196,141,69,.09); transform: translateY(-4px); }
.footer-cta-card-primary { background: linear-gradient(145deg, #b9823e, #cf9c57); }
.footer-cta-card-primary:hover { background: linear-gradient(145deg, #a97132, #c18d49); }
.footer-cta-card small { color: var(--bronze-soft); font-size: .59rem; letter-spacing: .12em; text-transform: uppercase; }
.footer-cta-card-primary small { color: rgba(255,255,255,.78); }
.footer-cta-card strong { max-width: 100%; margin: 24px 0 16px; overflow-wrap: anywhere; font-family: var(--heading); font-size: clamp(1.25rem, 1.65vw, 1.7rem); font-weight: 500; line-height: 1.14; }
.footer-cta-email strong { font-family: var(--sans); font-size: clamp(.95rem, 1.22vw, 1.24rem); letter-spacing: -.01em; }
.footer-cta-card > span { margin-top: auto; color: rgba(255,255,255,.5); font-size: .69rem; line-height: 1.55; }
.footer-cta-card-primary > span { color: rgba(255,255,255,.84); }
.footer-cta-card b { float: right; color: var(--bronze-soft); font-weight: 400; }
.footer-cta-card-primary b { color: #fff; }

.footer-confidence-block { padding: 66px 0; display: grid; grid-template-columns: .62fr 1.38fr; gap: clamp(45px, 7vw, 92px); border-bottom: 1px solid rgba(255,255,255,.11); }
.footer-confidence-heading h2 { max-width: 475px; margin: 13px 0 17px; font-size: clamp(2rem, 2.85vw, 2.85rem); }
.footer-confidence-heading p { max-width: 460px; color: rgba(255,255,255,.5); font-size: .78rem; }
.footer-confidence-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid rgba(255,255,255,.11); border-left: 1px solid rgba(255,255,255,.11); }
.footer-confidence-grid article { min-height: 180px; padding: 25px; display: grid; grid-template-columns: 38px 1fr; gap: 17px; border-right: 1px solid rgba(255,255,255,.11); border-bottom: 1px solid rgba(255,255,255,.11); }
.footer-confidence-grid article > span { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid rgba(213,174,114,.35); border-radius: 50%; color: var(--bronze-soft); }
.footer-confidence-grid small { display: block; color: var(--bronze-soft); font-size: .57rem; letter-spacing: .11em; text-transform: uppercase; }
.footer-confidence-grid strong { display: block; margin: 5px 0 9px; font-family: var(--heading); font-size: 1.08rem; font-weight: 500; }
.footer-confidence-grid p { color: rgba(255,255,255,.48); font-size: .7rem; line-height: 1.65; }
.footer-confidence-grid p a { color: var(--bronze-soft); }

.footer-main-block { padding: 72px 0 0; }
.footer-brand-panel { padding-bottom: 64px; display: grid; grid-template-columns: .72fr 1.28fr; gap: clamp(60px, 8vw, 115px); align-items: end; border-bottom: 1px solid rgba(255,255,255,.11); }
.footer-brand-identity img { width: 225px; filter: brightness(0) invert(1); }
.footer-brand-identity p { max-width: 430px; margin-top: 21px; color: rgba(255,255,255,.5); font-size: .78rem; }
.footer-brand-message h2 { max-width: 690px; margin: 14px 0 17px; font-size: clamp(2.35rem, 3.7vw, 3.75rem); }
.footer-brand-message > p { max-width: 690px; color: rgba(255,255,255,.54); }
.footer-brand-message > div { margin-top: 26px; display: flex; align-items: center; gap: 25px; flex-wrap: wrap; }
.footer-directory-unified { padding: 62px 0; grid-template-columns: 1.05fr 1.05fr 1.05fr .82fr 1fr .98fr; gap: 32px; }
.footer-directory-unified h3 { min-height: 0; }
.footer-directory-unified section > a { margin: 8px 0; }
.footer-legal-unified { min-height: 72px; padding: 18px 0; display: flex; justify-content: space-between; align-items: center; gap: 28px; border-top: 1px solid rgba(255,255,255,.11); }
.footer-legal-unified > div { display: flex; align-items: center; gap: 14px; color: rgba(255,255,255,.43); font-size: .65rem; }
.footer-legal-unified strong { color: rgba(255,255,255,.72); font-weight: 500; }
.footer-legal-unified a { color: rgba(255,255,255,.54); }
.footer-bottom-unified { min-height: 70px; padding: 17px 0; display: flex; justify-content: space-between; align-items: center; gap: 25px; border-top: 1px solid rgba(255,255,255,.08); color: rgba(255,255,255,.34); font-size: .63rem; }
.footer-bottom-unified > div { display: flex; gap: 20px; }

@media (max-width: 1180px) {
  .inner-hero-layout { grid-template-columns: minmax(0, .9fr) minmax(430px, 1.1fr); gap: 48px; }
  .service-introduction-grid { grid-template-columns: 1fr 1fr; gap: 52px; }
  .service-introduction-media, .service-introduction-media img { min-height: 520px; height: 520px; }
  .service-confidence-grid { grid-template-columns: 1fr 1fr; }
  .footer-cta-block { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-cta-card:nth-child(2) { border-right: 1px solid rgba(255,255,255,.11); }
  .footer-directory-unified { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 45px 32px; }
}

@media (max-width: 900px) {
  .inner-hero.inner-hero-context { min-height: auto; padding: 150px 0 46px; }
  .inner-hero-layout { grid-template-columns: 1fr; }
  .inner-hero h1 { max-width: 720px; }
  .inner-hero-visual { width: 100%; height: 380px; }
  .home-commercial-shell, .home-final-shell, .service-introduction-grid, .service-confidence-grid, .service-estimate-layout { grid-template-columns: 1fr; }
  .home-commercial-media { min-height: 480px; }
  .home-commercial-copy { padding: 46px 38px; }
  .home-final-image { min-height: 430px; }
  .service-introduction-media, .service-introduction-media img { min-height: 500px; height: 500px; }
  .service-capability-grid { grid-template-columns: 1fr; }
  .service-capability-card { min-height: auto; border-bottom: 1px solid rgba(255,255,255,.12); }
  .service-process-layout { grid-template-columns: 1fr; gap: 42px; }
  .service-confidence-image { min-height: 500px; }
  .service-estimate-intro { padding: 44px 38px; }
  .footer-area-heading, .footer-confidence-block, .footer-brand-panel { grid-template-columns: 1fr; gap: 38px; }
  .footer-area-intro { justify-self: start; }
  .footer-location-grid-unified { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-location-reminder { grid-template-columns: 54px 1fr; }
  .footer-location-reminder > a { grid-column: 2; }
  .footer-directory-unified { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-legal-unified { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 650px) {
  .inner-hero.inner-hero-context { padding: 128px 0 34px; }
  .inner-hero h1 { margin-top: 14px; font-size: clamp(2.25rem, 10vw, 3rem); }
  .inner-hero p { font-size: .9rem; }
  .inner-hero-actions { align-items: flex-start; flex-direction: column; gap: 17px; }
  .inner-hero-visual { height: 275px; }
  .inner-hero-rail { grid-template-columns: 1fr 1fr; }
  .home-commercial-media { min-height: 380px; }
  .home-commercial-stamp { left: 18px; bottom: 18px; width: 138px; height: 138px; padding: 18px; }
  .home-commercial-copy, .home-final-copy { padding: 34px 24px; }
  .home-commercial-copy h2, .home-final-copy h2 { font-size: clamp(2.15rem, 9vw, 2.75rem); }
  .home-final-image { min-height: 340px; }
  .service-page .section { padding: 72px 0; }
  .service-introduction-media { min-height: 355px; padding-right: 8px; }
  .service-introduction-media img { min-height: 355px; height: 355px; }
  .service-introduction-media figcaption { min-width: 175px; padding: 18px 20px; }
  .service-introduction-copy h2, .service-process-intro h2, .service-confidence-copy h2, .service-gallery-heading h2, .service-faq-layout .faq-intro h2 { font-size: clamp(2.05rem, 9vw, 2.65rem); }
  .service-introduction-actions { align-items: flex-start; flex-direction: column; }
  .service-capability-card { padding: 31px 25px; }
  .service-confidence-image { min-height: 360px; }
  .service-confidence-copy, .service-estimate-intro, .service-form-panel { padding: 33px 24px; }
  .service-estimate-intro h2 { font-size: clamp(2rem, 9vw, 2.55rem); }
  .footer-area-block { padding-top: 78px; }
  .footer-area-heading h2, .footer-brand-message h2 { font-size: clamp(2.2rem, 9vw, 2.85rem); }
  .footer-location-grid-unified, .footer-cta-block, .footer-confidence-grid, .footer-directory-unified { grid-template-columns: 1fr; }
  .footer-location-reminder { grid-template-columns: 1fr; }
  .footer-location-reminder > a { grid-column: auto; }
  .footer-cta-card { min-height: 165px; border-left: 1px solid rgba(255,255,255,.11); }
  .footer-confidence-block { padding: 55px 0; }
  .footer-confidence-heading h2 { font-size: clamp(2rem, 8.5vw, 2.55rem); }
  .footer-confidence-grid article { min-height: 160px; }
  .footer-brand-panel { padding-bottom: 52px; }
  .footer-directory-unified { padding: 50px 0; gap: 34px; }
  .footer-legal-unified > div { align-items: flex-start; flex-wrap: wrap; }
  .footer-bottom-unified { align-items: flex-start; flex-direction: column; }
  .footer-bottom-unified > div { flex-direction: column; gap: 4px; }
}
.service-process-layout,
.service-confidence-grid { display: grid; }
.service-process-list article { display: grid; align-items: start; gap: 18px; }
.service-introduction-copy h2 { font-size: clamp(2.35rem, 3.2vw, 3.25rem); }
