:root {
    --navy-primary: #061A3A;
    --navy-dark: #031126;
    --navy-light: #102C55;
    --gold-primary: #D8A83E;
    --gold-light: #F2C75C;
    --gold-dark: #B88724;
    --white: #FFFFFF;
    --background-light: #F7F8FA;
    --background-warm: #FBF9F4;
    --text-dark: #111827;
    --text-body: #5B6472;
    --border-light: #E4E7EC;
    --success: #198754;
    --error: #B42318;
    --container: min(1200px, calc(100% - 2rem));
    --shadow-soft: 0 20px 60px rgba(6, 26, 58, 0.12);
    --shadow-card: 0 12px 30px rgba(3, 17, 38, 0.09);
    --radius-lg: 28px;
    --radius-md: 18px;
    --radius-sm: 12px;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    font-family: "Manrope", sans-serif;
    color: var(--text-body);
    background: var(--white);
    line-height: 1.6;
}

body.menu-open {
    overflow: hidden;
}

img {
    display: block;
    max-width: 100%;
    height: auto;
}

a {
    color: inherit;
    text-decoration: none;
}

button,
input,
select,
textarea {
    font: inherit;
}

button {
    cursor: pointer;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.skip-link {
    position: absolute;
    top: 1rem;
    left: 1rem;
    transform: translateY(-200%);
    background: var(--navy-primary);
    color: var(--white);
    padding: 0.85rem 1rem;
    border-radius: 999px;
    z-index: 1000;
}

.skip-link:focus {
    transform: translateY(0);
}

:focus-visible {
    outline: 3px solid var(--gold-primary);
    outline-offset: 3px;
}

.container {
    width: var(--container);
    margin: 0 auto;
}

.section {
    padding: 5.5rem 0;
}

.section--light {
    background: var(--background-light);
}

.section--warm {
    background: var(--background-warm);
}

.section--dark {
    background: linear-gradient(180deg, rgba(6, 26, 58, 0.96), rgba(3, 17, 38, 0.98));
    color: var(--white);
}

.section-eyebrow {
    margin: 0 0 0.8rem;
    color: var(--gold-primary);
    font-size: 0.85rem;
    font-weight: 800;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

h1,
h2,
h3,
h4 {
    margin: 0 0 1rem;
    color: var(--navy-primary);
    font-family: "Playfair Display", serif;
    line-height: 1.1;
}

.section--dark h1,
.section--dark h2,
.section--dark h3,
.hero h1,
.hero h2 {
    color: var(--white);
}

p {
    margin: 0 0 1rem;
}

.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0.95rem 1.45rem;
    border: 1px solid transparent;
    border-radius: 10px;
    font-weight: 800;
    transition: transform 0.25s ease, background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease;
}

.button:hover {
    transform: translateY(-2px);
}

.button--gold {
    background: linear-gradient(135deg, var(--gold-light), var(--gold-primary));
    color: var(--navy-dark);
}

.button--gold:hover {
    background: linear-gradient(135deg, #f6cf69, #d19a2b);
}

.button--outline,
.button--outline-light {
    border-color: rgba(6, 26, 58, 0.16);
    color: var(--navy-primary);
    background: rgba(255, 255, 255, 0.85);
}

.button--outline-light {
    border-color: rgba(255, 255, 255, 0.4);
    color: var(--white);
    background: transparent;
}

.site-header {
    position: sticky;
    top: 0;
    z-index: 100;
    transition: background-color 0.3s ease, box-shadow 0.3s ease;
}

.site-header.is-scrolled,
.site-header--solid {
    background: rgba(6, 26, 58, 0.96);
    box-shadow: 0 10px 40px rgba(6, 26, 58, 0.18);
}

.site-header--overlay {
    background: linear-gradient(180deg, rgba(3, 17, 38, 0.9), rgba(3, 17, 38, 0));
}

.topbar {
    color: rgba(255, 255, 255, 0.86);
    font-size: 0.9rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.topbar__inner,
.header-shell,
.hero__actions,
.trust-points,
.intro-grid,
.stats-grid,
.card-grid,
.process-steps,
.footer-grid,
.footer-bottom,
.cta-band__inner,
.split-content,
.project-layout,
.gallery-grid,
.filter-bar,
.contact-grid,
.meta-grid,
.detail-grid,
.news-grid,
.references-grid,
.values-grid {
    display: grid;
    gap: 1.5rem;
}

.topbar__inner {
    grid-template-columns: repeat(3, auto);
    justify-content: space-between;
    padding: 0.75rem 0;
}

.header-shell {
    grid-template-columns: auto 1fr auto auto;
    align-items: center;
    padding: 1rem 0;
    gap: 1.25rem;
}

.brand img,
.footer-brand img {
    width: 220px;
}

.desktop-nav ul,
.mobile-nav ul,
.footer-grid ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.desktop-nav ul {
    display: flex;
    justify-content: center;
    gap: 1.35rem;
    flex-wrap: wrap;
}

.desktop-nav a,
.mobile-nav a {
    position: relative;
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    color: var(--white);
    font-weight: 700;
}

.desktop-nav a::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0.4rem;
    width: 100%;
    height: 2px;
    background: var(--gold-primary);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.25s ease;
}

.desktop-nav a:hover::after,
.desktop-nav a.is-active::after {
    transform: scaleX(1);
}

.menu-toggle,
.mobile-nav__close {
    display: none;
    align-items: center;
    justify-content: center;
    min-width: 48px;
    min-height: 48px;
    border-radius: 12px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    background: transparent;
    color: var(--white);
}

.menu-toggle span {
    display: block;
    width: 20px;
    height: 2px;
    margin: 2px 0;
    background: currentColor;
}

.mobile-nav {
    position: fixed;
    inset: 0;
    background: rgba(3, 17, 38, 0.7);
}

.mobile-nav__panel {
    max-width: 360px;
    height: 100%;
    margin-left: auto;
    padding: 1.5rem;
    background: var(--navy-dark);
    overflow-y: auto;
}

.mobile-nav__close {
    display: inline-flex;
    margin-left: auto;
    font-size: 2rem;
}

.mobile-nav a {
    width: 100%;
    padding: 0.35rem 0;
}

.mobile-nav__meta {
    display: grid;
    gap: 0.75rem;
    margin-top: 1.5rem;
}

.hero {
    position: relative;
    min-height: 92vh;
    display: flex;
    align-items: center;
    color: var(--white);
    background:
        linear-gradient(90deg, rgba(3, 17, 38, 0.9) 0%, rgba(3, 17, 38, 0.78) 42%, rgba(3, 17, 38, 0.35) 100%),
        url("../images/hero/hero-premium-construction.svg") center/cover no-repeat;
}

.hero__content {
    max-width: 720px;
    padding: 10rem 0 8rem;
}

.hero h1 {
    font-size: clamp(2.8rem, 5vw, 5rem);
    max-width: 12ch;
}

.hero p {
    max-width: 62ch;
    font-size: 1.08rem;
    color: rgba(255, 255, 255, 0.85);
}

.hero__actions,
.trust-points {
    grid-template-columns: repeat(2, minmax(0, max-content));
    align-items: center;
}

.trust-points {
    margin-top: 2.5rem;
    gap: 1rem 2rem;
}

.trust-points div {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    font-weight: 700;
}

.trust-points span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border: 1px solid rgba(242, 199, 92, 0.55);
    border-radius: 50%;
    color: var(--gold-light);
    position: relative;
    font-size: 0;
    line-height: 0;
}

.trust-points span::before,
.home-hero__trust span::before {
    content: "";
    display: block;
    width: 16px;
    height: 16px;
    background-color: currentColor;
    -webkit-mask-position: center;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    mask-position: center;
    mask-repeat: no-repeat;
    mask-size: contain;
}

.trust-points div:nth-child(1) span::before,
.home-hero__trust div:nth-child(1) span::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 2 14.7 7.3 20.5 8.1 16.2 12.2 17.2 18 12 15.2 6.8 18 7.8 12.2 3.5 8.1 9.3 7.3Z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 2 14.7 7.3 20.5 8.1 16.2 12.2 17.2 18 12 15.2 6.8 18 7.8 12.2 3.5 8.1 9.3 7.3Z'/%3E%3C/svg%3E");
}

.trust-points div:nth-child(2) span::before,
.home-hero__trust div:nth-child(2) span::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 2a6.5 6.5 0 0 1 6.5 6.5c0 4.6-6.5 11.5-6.5 11.5S5.5 13.1 5.5 8.5A6.5 6.5 0 0 1 12 2Zm0 3a3.5 3.5 0 1 0 0 7 3.5 3.5 0 0 0 0-7Z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 2a6.5 6.5 0 0 1 6.5 6.5c0 4.6-6.5 11.5-6.5 11.5S5.5 13.1 5.5 8.5A6.5 6.5 0 0 1 12 2Zm0 3a3.5 3.5 0 1 0 0 7 3.5 3.5 0 0 0 0-7Z'/%3E%3C/svg%3E");
}

.trust-points div:nth-child(3) span::before,
.home-hero__trust div:nth-child(3) span::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M7 3h8l4 4v14H7V3Zm8 1.5V8h3.5M10 12h6M10 15h6M10 18h4'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M7 3h8l4 4v14H7V3Zm8 1.5V8h3.5M10 12h6M10 15h6M10 18h4'/%3E%3C/svg%3E");
}

.trust-points div:nth-child(4) span::before,
.home-hero__trust div:nth-child(4) span::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 3a9 9 0 1 1 0 18 9 9 0 0 1 0-18Zm0 3v6l4 2'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 3a9 9 0 1 1 0 18 9 9 0 0 1 0-18Zm0 3v6l4 2'/%3E%3C/svg%3E");
}

.scroll-indicator {
    position: absolute;
    left: 50%;
    bottom: 2rem;
    transform: translateX(-50%);
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.9rem;
}

.intro-grid,
.split-content,
.contact-grid,
.project-layout {
    grid-template-columns: 1.05fr 0.95fr;
    align-items: center;
}

.image-stack {
    position: relative;
    min-height: 520px;
}

.image-card {
    overflow: hidden;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-soft);
}

.image-card--main {
    max-width: 76%;
}

.image-card--offset {
    position: absolute;
    right: 0;
    bottom: 1.25rem;
    width: 56%;
    border: 8px solid var(--white);
}

.badge-year {
    position: absolute;
    left: 1rem;
    bottom: 1rem;
    padding: 1rem;
    background: linear-gradient(135deg, var(--gold-light), var(--gold-primary));
    color: var(--navy-dark);
    border-radius: 18px;
    font-weight: 800;
    box-shadow: var(--shadow-card);
}

.feature-list,
.service-points,
.value-list {
    display: grid;
    gap: 1rem;
    padding: 0;
    margin: 2rem 0;
    list-style: none;
}

.feature-list li,
.value-list li {
    display: flex;
    align-items: start;
    gap: 0.85rem;
}

.feature-list span,
.value-list span {
    flex: 0 0 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: rgba(216, 168, 62, 0.14);
    color: var(--gold-dark);
    font-weight: 800;
}

.stats-band {
    padding: 1.4rem 0;
    background: var(--navy-primary);
}

.stats-grid {
    grid-template-columns: repeat(4, 1fr);
}

.stat-card {
    padding: 1.5rem 1rem;
    border-right: 1px solid rgba(255, 255, 255, 0.12);
    color: var(--white);
}

.stat-card:last-child {
    border-right: 0;
}

.stat-card strong {
    display: block;
    font-size: 1.9rem;
    color: var(--gold-light);
}

.section-heading {
    display: flex;
    justify-content: space-between;
    gap: 1.5rem;
    align-items: end;
    margin-bottom: 2rem;
}

.section-heading p {
    max-width: 54ch;
}

.card-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.service-card,
.project-card,
.info-card,
.reference-card,
.news-card,
.testimonial-placeholder,
.meta-card {
    padding: 1.5rem;
    background: var(--white);
    border: 1px solid var(--border-light);
    border-radius: 20px;
    box-shadow: var(--shadow-card);
}

.service-card img,
.project-card img,
.news-card img,
.gallery-tile img,
.image-card img,
.detail-hero img {
    width: 100%;
    border-radius: 16px;
}

.service-card h3,
.project-card h3,
.info-card h3,
.reference-card h3,
.news-card h3 {
    font-size: 1.5rem;
}

.service-card a,
.project-card a,
.news-card a,
.text-link {
    font-weight: 800;
    color: var(--navy-primary);
}

.filter-bar {
    grid-template-columns: 1fr auto;
    align-items: center;
    margin-bottom: 1.5rem;
}

.filter-pills {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.filter-pills button {
    min-height: 44px;
    padding: 0.7rem 1rem;
    border-radius: 999px;
    border: 1px solid var(--border-light);
    background: var(--white);
    font-weight: 700;
}

.filter-pills button.is-active {
    background: var(--navy-primary);
    color: var(--white);
    border-color: var(--navy-primary);
}

.search-field {
    min-height: 48px;
    padding: 0.85rem 1rem;
    border: 1px solid var(--border-light);
    border-radius: 12px;
    min-width: 280px;
}

.project-card__meta,
.meta-list,
.article-meta {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
    font-size: 0.92rem;
}

.pill {
    display: inline-flex;
    align-items: center;
    padding: 0.35rem 0.7rem;
    background: rgba(216, 168, 62, 0.14);
    color: var(--gold-dark);
    border-radius: 999px;
    font-weight: 800;
}

.why-grid,
.values-grid,
.references-grid,
.news-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
}

.process-steps {
    grid-template-columns: repeat(6, 1fr);
    align-items: start;
}

.process-step {
    position: relative;
    text-align: center;
    padding-top: 1rem;
}

.process-step::before {
    content: "";
    position: absolute;
    top: 2.1rem;
    left: 50%;
    width: calc(100% + 1.5rem);
    height: 1px;
    background: rgba(216, 168, 62, 0.4);
}

.process-step:last-child::before {
    display: none;
}

.process-step span {
    position: relative;
    z-index: 1;
    display: inline-flex;
    width: 44px;
    height: 44px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--gold-light), var(--gold-primary));
    color: var(--navy-dark);
    font-weight: 800;
    margin-bottom: 1rem;
}

.gallery-grid {
    grid-template-columns: repeat(12, 1fr);
}

.gallery-tile {
    position: relative;
    overflow: hidden;
    border-radius: 18px;
    min-height: 220px;
    cursor: pointer;
}

.gallery-tile:nth-child(1),
.gallery-tile:nth-child(6) {
    grid-column: span 4;
}

.gallery-tile:nth-child(2),
.gallery-tile:nth-child(5) {
    grid-column: span 3;
}

.gallery-tile:nth-child(3),
.gallery-tile:nth-child(4) {
    grid-column: span 5;
}

.gallery-tile button {
    position: absolute;
    inset: 0;
    border: 0;
    background: linear-gradient(180deg, rgba(3, 17, 38, 0) 0%, rgba(3, 17, 38, 0.62) 100%);
    color: var(--white);
    display: flex;
    align-items: end;
    padding: 1rem;
    text-align: left;
}

.cta-panel {
    padding: 4rem 0;
    background:
        linear-gradient(90deg, rgba(3, 17, 38, 0.92), rgba(6, 26, 58, 0.85)),
        url("../images/hero/hero-premium-construction.svg") center/cover no-repeat;
    color: var(--white);
    text-align: center;
}

.page-hero,
.detail-hero {
    padding: 11rem 0 4.5rem;
    background:
        linear-gradient(180deg, rgba(3, 17, 38, 0.92), rgba(6, 26, 58, 0.84)),
        url("../images/hero/page-banner-construction.svg") center/cover no-repeat;
    color: var(--white);
}

.page-hero h1,
.detail-hero h1 {
    font-size: clamp(2.3rem, 4vw, 4rem);
}

.breadcrumbs ol {
    list-style: none;
    margin: 0 0 1.5rem;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    color: rgba(255, 255, 255, 0.8);
}

.breadcrumbs li:not(:last-child)::after {
    content: "/";
    margin-left: 0.75rem;
}

.detail-grid,
.meta-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.article-content,
.rich-text {
    display: grid;
    gap: 1rem;
}

.contact-card,
.form-card {
    padding: 2rem;
    background: var(--white);
    border-radius: 24px;
    box-shadow: var(--shadow-soft);
    border: 1px solid var(--border-light);
}

.contact-list,
.scope-list,
.related-list,
.footer-grid ul,
.check-list {
    display: grid;
    gap: 0.75rem;
    padding: 0;
    list-style: none;
}

.contact-form,
.form-grid {
    display: grid;
    gap: 1rem;
}

.form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.form-field {
    display: grid;
    gap: 0.45rem;
}

.form-field--full {
    grid-column: 1 / -1;
}

.form-field input,
.form-field select,
.form-field textarea {
    width: 100%;
    min-height: 50px;
    padding: 0.85rem 1rem;
    border: 1px solid var(--border-light);
    border-radius: 12px;
    background: #fff;
}

.form-field textarea {
    min-height: 160px;
    resize: vertical;
}

.form-note,
.status-note {
    font-size: 0.95rem;
}

.error-summary,
.success-summary {
    padding: 1rem 1.1rem;
    border-radius: 14px;
    margin-bottom: 1rem;
}

.error-summary {
    background: rgba(180, 35, 24, 0.08);
    color: var(--error);
}

.success-summary {
    background: rgba(25, 135, 84, 0.08);
    color: var(--success);
}

body.modal-open {
    overflow: hidden;
}

.enquiry-modal {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: grid;
    place-items: center;
    padding: 2rem;
}

.enquiry-modal[hidden] {
    display: none;
}

.enquiry-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(4, 17, 38, 0.72);
    backdrop-filter: blur(10px);
}

.enquiry-modal__dialog {
    position: relative;
    z-index: 1;
    width: min(100%, 860px);
    max-height: min(88vh, 920px);
    overflow-y: auto;
    padding: 2.2rem;
    border-radius: 28px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(249, 246, 238, 0.98));
    box-shadow: 0 36px 120px rgba(3, 17, 38, 0.28);
    border: 1px solid rgba(216, 168, 62, 0.18);
}

.enquiry-modal__close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: 50%;
    background: rgba(6, 26, 58, 0.08);
    color: var(--navy-primary);
    font-size: 1.8rem;
    line-height: 1;
    cursor: pointer;
}

.enquiry-modal__intro {
    margin-bottom: 1.4rem;
    padding-right: 3rem;
}

.enquiry-modal__intro h2 {
    margin-bottom: 0.6rem;
}

.enquiry-modal__form .button {
    width: 100%;
}

.enquiry-modal__honey {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.cta-band {
    padding: 2rem 0;
    background: var(--navy-primary);
    color: var(--white);
}

.cta-band__inner {
    grid-template-columns: 1fr auto;
    align-items: center;
}

.cta-band__actions {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
}

.site-footer {
    padding: 4rem 0 2rem;
    background: var(--navy-dark);
    color: rgba(255, 255, 255, 0.82);
}

.footer-grid {
    grid-template-columns: 1.3fr 0.8fr 0.9fr 1fr;
    padding-bottom: 2rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.site-footer h3,
.site-footer strong {
    color: var(--white);
}

.social-links {
    display: flex;
    gap: 0.7rem;
    flex-wrap: wrap;
}

.social-links a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.18);
}

.footer-bottom {
    grid-template-columns: 1fr auto;
    align-items: center;
    padding-top: 1.5rem;
}

.footer-bottom__links {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
}

.lightbox {
    position: fixed;
    inset: 0;
    background: rgba(3, 17, 38, 0.9);
    z-index: 120;
    display: grid;
    place-items: center;
    padding: 2rem;
}

.lightbox figure {
    max-width: 960px;
    margin: 0;
    text-align: center;
    color: var(--white);
}

.lightbox__close,
.lightbox__nav {
    position: absolute;
    min-width: 48px;
    min-height: 48px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.08);
    color: var(--white);
}

.lightbox__close {
    top: 1rem;
    right: 1rem;
    font-size: 2rem;
}

.lightbox__nav {
    top: 50%;
    transform: translateY(-50%);
    font-size: 2rem;
}

.lightbox__nav--prev {
    left: 1rem;
}

.lightbox__nav--next {
    right: 1rem;
}

.map-embed {
    min-height: 320px;
    border: 0;
    width: 100%;
    border-radius: 18px;
}

.thank-you {
    text-align: center;
}

.utility-note {
    padding: 1rem 1.25rem;
    border-left: 4px solid var(--gold-primary);
    background: rgba(216, 168, 62, 0.08);
    border-radius: 12px;
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation: none !important;
        transition: none !important;
    }
}

body.home {
    background: #f7f4ec;
}

.button--navy {
    background: var(--navy-primary);
    color: var(--white);
}

.button--navy:hover {
    background: #0c2a58;
}

.topbar {
    display: none;
}

.site-header {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    background: transparent;
    box-shadow: none;
}

.site-header.is-scrolled,
.site-header--solid {
    position: sticky;
    background: rgba(6, 26, 58, 0.96);
    box-shadow: 0 18px 45px rgba(3, 17, 38, 0.16);
}

.header-shell {
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 1.65rem;
    padding: 0.85rem 0 0;
}

.brand img,
.footer-brand img {
    width: 188px;
    object-fit: contain;
}

.desktop-nav ul {
    gap: 1.55rem;
}

.desktop-nav a {
    color: rgba(255, 255, 255, 0.88);
    font-size: 0.82rem;
}

.desktop-nav a::after {
    bottom: 0.3rem;
}

.header-cta {
    min-width: 166px;
    min-height: 44px;
    border-radius: 8px;
    font-size: 0.76rem;
}

.home-hero {
    position: relative;
    overflow: hidden;
    min-height: 456px;
    padding: 4.85rem 0 0;
    background:
        linear-gradient(90deg, rgba(4, 18, 42, 0.99) 0%, rgba(6, 26, 58, 0.96) 41%, rgba(6, 26, 58, 0.62) 61%, rgba(6, 26, 58, 0.2) 100%);
}

.home-hero::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 86px;
    background: linear-gradient(180deg, rgba(4, 17, 38, 0), rgba(4, 17, 38, 0.45));
}

.home-hero__grid,
.home-about__grid,
.home-stats__grid,
.home-projects__grid,
.home-why__grid,
.home-process__timeline,
.home-gallery__row,
.home-testimonials__grid,
.home-hero__trust,
.home-about__features,
.home-heading,
.home-projects__filters {
    display: grid;
    gap: 1.5rem;
}

.home-hero__grid {
    position: relative;
    z-index: 1;
    grid-template-columns: 0.42fr 0.58fr;
    align-items: end;
    gap: 1.35rem;
    min-height: 378px;
}

.home-hero__copy {
    padding: 1rem 0 1.45rem;
    color: rgba(255, 255, 255, 0.82);
    align-self: center;
}

.home-hero__copy .section-eyebrow,
.home-heading .section-eyebrow,
.home-about__content .section-eyebrow,
.home-why__eyebrow {
    color: var(--gold-primary);
}

.home-hero__copy h1 {
    max-width: 500px;
    margin-bottom: 0.9rem;
    color: var(--white);
    font-size: 2.75rem;
    line-height: 1.04;
}

.home-hero__copy h1 span {
    color: var(--gold-light);
}

.home-hero__copy p {
    max-width: 390px;
    font-size: 0.88rem;
}

.home-hero__actions {
    display: flex;
    gap: 0.95rem;
    margin: 1.35rem 0 1.45rem;
    flex-wrap: wrap;
}

.home-hero__trust {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    padding: 0.65rem 0 0;
    gap: 0.75rem;
}

.home-hero__trust div {
    display: flex;
    gap: 0.6rem;
    align-items: flex-start;
    color: var(--white);
}

.home-hero__trust span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border: 1px solid rgba(216, 168, 62, 0.45);
    border-radius: 50%;
    color: var(--gold-light);
    position: relative;
    font-size: 0;
    line-height: 0;
}

.home-hero__trust strong {
    font-size: 0.78rem;
    line-height: 1.35;
}

.home-hero__visual {
    align-self: stretch;
    display: flex;
    align-items: flex-start;
    justify-content: end;
    min-height: 100%;
}

.home-hero__visual img {
    width: 100%;
    height: 395px;
    max-height: 395px;
    object-fit: cover;
    object-position: center top;
}

.home-about {
    padding: 2.9rem 0 3.2rem;
    background: linear-gradient(180deg, #fffdfa 0%, #fff 100%);
}

.home-about__grid {
    grid-template-columns: 0.95fr 1.05fr;
    align-items: center;
    gap: 3rem;
}

.home-about__media {
    position: relative;
    min-height: 430px;
}

.home-about__main,
.home-about__offset {
    overflow: hidden;
    border-radius: 0;
    box-shadow: 0 20px 60px rgba(3, 17, 38, 0.12);
}

.home-about__main {
    max-width: 54%;
}

.home-about__main img {
    aspect-ratio: 0.7;
    object-fit: cover;
}

.home-about__offset {
    position: absolute;
    right: 0;
    bottom: 1.8rem;
    width: 54%;
    border: 10px solid #fff;
}

.home-about__badge {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 128px;
    padding: 1rem;
    background: linear-gradient(180deg, #f1c85f, #d6a136);
    color: var(--navy-dark);
    box-shadow: 0 14px 30px rgba(3, 17, 38, 0.12);
}

.home-about__badge strong {
    display: block;
    font-size: 2.2rem;
    line-height: 1;
}

.home-about__badge span {
    display: block;
    margin-top: 0.35rem;
    font-weight: 700;
    font-size: 0.9rem;
}

.home-about__content h2 {
    max-width: 14ch;
    margin-bottom: 1rem;
    font-size: 2.35rem;
    line-height: 1.08;
}

.home-about__features {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin: 1.8rem 0 2rem;
}

.home-about__features article {
    padding: 1rem 0.6rem 0 0;
}

.home-about__features span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    margin-bottom: 0.85rem;
    border-radius: 50%;
    background: rgba(216, 168, 62, 0.12);
    color: var(--gold-dark);
    font-weight: 800;
}

.home-about__features h3 {
    margin-bottom: 0;
    font-size: 1rem;
    font-family: "Manrope", sans-serif;
    line-height: 1.4;
}

.home-stats {
    padding: 1.5rem 0;
    background: #061a3a;
}

.home-stats__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.home-stats__grid article {
    display: grid;
    gap: 0.35rem;
    padding: 0 1.25rem;
    border-right: 1px solid rgba(255, 255, 255, 0.12);
    color: rgba(255, 255, 255, 0.86);
}

.home-stats__grid article:last-child {
    border-right: 0;
}

.home-stats__grid span {
    color: var(--gold-light);
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.home-stats__grid strong {
    font-size: 2.25rem;
    line-height: 1;
    color: var(--white);
}

.home-stats__grid p {
    margin: 0;
}

.home-projects {
    background: #fff;
}

.home-heading {
    grid-template-columns: 1fr auto;
    align-items: end;
    margin-bottom: 1.85rem;
}

.home-heading h2 {
    font-size: 2rem;
    line-height: 1.1;
}

.home-projects__filters {
    grid-auto-flow: column;
    gap: 0.75rem;
}

.home-projects__filters button {
    min-height: 42px;
    padding: 0.7rem 1rem;
    border: 1px solid #dde3eb;
    background: #fff;
    border-radius: 8px;
    color: var(--navy-primary);
    font-weight: 700;
}

.home-projects__filters .is-active {
    background: var(--navy-primary);
    border-color: var(--navy-primary);
    color: #fff;
}

.home-projects__grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 1rem;
}

.home-project-card {
    border: 1px solid #e4e7ec;
    background: #fff;
    box-shadow: 0 12px 30px rgba(3, 17, 38, 0.06);
}

.home-project-card__image {
    position: relative;
}

.home-project-card__image img {
    width: 100%;
    aspect-ratio: 1.28;
    object-fit: cover;
}

.home-project-card__image span {
    position: absolute;
    top: 0.6rem;
    left: 0.6rem;
    padding: 0.32rem 0.55rem;
    background: #f0b83a;
    color: var(--navy-dark);
    font-size: 0.66rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.home-project-card__body {
    padding: 1rem;
}

.home-project-card__body h3 {
    margin-bottom: 0.15rem;
    font-size: 1.15rem;
}

.home-project-card__body small {
    display: block;
    margin-bottom: 0.65rem;
    color: #707b8f;
    font-weight: 600;
}

.home-project-card__body p {
    margin-bottom: 0.8rem;
    font-size: 0.92rem;
}

.home-project-card__body a {
    color: var(--navy-primary);
    font-weight: 800;
}

.home-why {
    padding: 0 0 2.2rem;
    background: #fff;
}

.home-why__eyebrow {
    text-align: center;
    margin-bottom: 1rem;
}

.home-why__grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 1rem;
}

.home-why__card {
    padding: 1.4rem 1rem;
    border: 1px solid #e4e7ec;
    background: #fff;
    min-height: 180px;
}

.home-why__card span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    margin-bottom: 0.8rem;
    border-radius: 50%;
    background: rgba(216, 168, 62, 0.12);
    color: var(--gold-dark);
    font-size: 0.78rem;
    font-weight: 800;
}

.home-why__card h3 {
    font-size: 1rem;
    font-family: "Manrope", sans-serif;
    font-weight: 800;
    line-height: 1.35;
}

.home-why__card p {
    margin: 0;
    font-size: 0.9rem;
}

.home-banner {
    padding: 3rem 0;
    text-align: center;
    background:
        linear-gradient(180deg, rgba(4, 17, 38, 0.88), rgba(4, 17, 38, 0.92)),
        url("../images/hero/hero-premium-construction.svg") center/cover no-repeat;
    color: #fff;
}

.home-banner h2 {
    color: #fff;
    font-size: clamp(2.2rem, 4vw, 3.6rem);
}

.home-banner h2::first-letter {
    color: var(--gold-primary);
}

.home-banner p {
    max-width: 60ch;
    margin: 0 auto 1.25rem;
    color: rgba(255, 255, 255, 0.84);
}

.home-process {
    background: #fff;
}

.home-process__timeline {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 1.2rem;
    position: relative;
}

.home-process__timeline::before {
    content: "";
    position: absolute;
    top: 62px;
    left: 5%;
    right: 5%;
    height: 1px;
    background: #d7dce5;
}

.home-process__step {
    position: relative;
    text-align: center;
    padding-top: 0.2rem;
}

.home-process__step h3 {
    margin-bottom: 2rem;
    font-size: 1rem;
    font-family: "Manrope", sans-serif;
    font-weight: 700;
    line-height: 1.4;
}

.home-process__step span {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #f1c85f;
    color: var(--navy-dark);
    font-weight: 800;
}

.home-gallery {
    padding-top: 0;
    background: #fff;
}

.home-gallery__row {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 0.9rem;
}

.home-gallery__item img,
.home-gallery__more {
    width: 100%;
    height: 100%;
    min-height: 210px;
}

.home-gallery__item img {
    object-fit: cover;
}

.home-gallery__more {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--navy-primary);
    color: #fff;
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-align: center;
    padding: 1rem;
}

.home-testimonials {
    padding-top: 0.5rem;
    background: #fff;
}

.home-testimonials__grid {
    grid-template-columns: 1fr 1fr 0.95fr;
    align-items: stretch;
}

.home-testimonial-card {
    padding: 1.8rem;
    border: 1px solid #e4e7ec;
    background: #fff;
    min-height: 240px;
}

.home-testimonial-card strong {
    display: block;
    margin-bottom: 0.9rem;
    color: var(--navy-primary);
    font-size: 1.15rem;
}

.home-testimonial-card small {
    display: block;
    color: #7d8698;
    font-weight: 700;
}

.home-testimonials__image img {
    width: 100%;
    height: 100%;
    min-height: 240px;
    object-fit: cover;
}

.cta-band {
    padding: 2.2rem 0;
    background: #061a3a;
    color: #fff;
}

.cta-band__inner {
    grid-template-columns: 1.2fr auto;
    align-items: center;
}

.cta-band__inner h2 {
    color: #f1c85f;
    font-size: clamp(2rem, 4vw, 3.2rem);
}

.cta-band__inner p {
    max-width: 58ch;
    color: var(--lux-gold);
}

.cta-band__actions {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
}

.site-footer {
    padding: 3.4rem 0 2rem;
    background: #041126;
    color: rgba(255, 255, 255, 0.8);
}

.footer-grid {
    grid-template-columns: 1.2fr 0.8fr 0.9fr 1fr;
    gap: 2rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    padding-bottom: 2rem;
}

.site-footer h3,
.site-footer strong {
    color: #f1c85f;
    font-family: "Manrope", sans-serif;
    font-size: 1rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.footer-grid p,
.footer-grid li,
.footer-grid address {
    font-size: 0.94rem;
}

.footer-bottom {
    grid-template-columns: 1fr auto;
    align-items: center;
    padding-top: 1.4rem;
}

/* Premium inner pages */
body:not(.is-homepage) {
    background: #fffdfa;
}

body:not(.is-homepage) .site-header {
    position: sticky;
    background: rgba(4, 18, 42, 0.98);
    box-shadow: 0 16px 38px rgba(3, 17, 38, 0.18);
}

body:not(.is-homepage) .header-shell {
    padding: 0.75rem 0;
}

body:not(.is-homepage) .brand img {
    width: 178px;
}

.page-hero,
.detail-hero {
    position: relative;
    overflow: hidden;
    padding: 5.2rem 0 4.4rem;
    background:
        linear-gradient(90deg, rgba(3, 17, 38, 0.98) 0%, rgba(6, 26, 58, 0.92) 48%, rgba(6, 26, 58, 0.7) 100%),
        url("../images/reference-crops/hero-building.png") center/cover no-repeat;
    color: var(--white);
}

.page-hero::after,
.detail-hero::after {
    content: "";
    position: absolute;
    right: -7rem;
    bottom: -9rem;
    width: 24rem;
    height: 24rem;
    border: 1px solid rgba(216, 168, 62, 0.25);
    border-radius: 50%;
}

.page-hero .container,
.detail-hero .container {
    position: relative;
    z-index: 1;
}

.page-hero h1,
.detail-hero h1 {
    max-width: 780px;
    color: #fff;
    font-family: var(--lux-serif);
    font-size: 3.15rem;
    font-weight: 600;
    letter-spacing: -0.035em;
    line-height: 1.08;
}

.page-hero p:not(.section-eyebrow),
.detail-hero p:not(.section-eyebrow) {
    max-width: 660px;
    color: rgba(255, 255, 255, 0.82);
}

.breadcrumbs {
    margin-bottom: 1.1rem;
}

.breadcrumbs ol {
    margin-bottom: 0;
    font-size: 0.82rem;
}

.section-heading h2,
.split-content h2,
.contact-card h2,
.form-card h2,
.rich-text h2,
.article-content h2,
.thank-you h2 {
    color: var(--navy-primary);
    font-size: 2.1rem;
    line-height: 1.12;
}

.split-content {
    align-items: center;
}

.image-card {
    overflow: hidden;
    border: 10px solid var(--white);
    border-radius: 0;
    box-shadow: 0 22px 60px rgba(3, 17, 38, 0.14);
}

.image-card img {
    min-height: 360px;
    object-fit: cover;
}

.card-grid {
    gap: 1.3rem;
}

.service-card,
.project-card,
.info-card,
.reference-card,
.news-card,
.testimonial-placeholder,
.meta-card {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(6, 26, 58, 0.08);
    border-radius: 8px;
    box-shadow: 0 18px 42px rgba(3, 17, 38, 0.08);
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.service-card:hover,
.project-card:hover,
.info-card:hover,
.reference-card:hover,
.news-card:hover {
    transform: translateY(-4px);
    border-color: rgba(216, 168, 62, 0.42);
    box-shadow: 0 24px 54px rgba(3, 17, 38, 0.13);
}

.service-card::before,
.project-card::before,
.info-card::before,
.reference-card::before,
.news-card::before,
.meta-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 54px;
    height: 3px;
    background: var(--gold-primary);
}

.service-card img,
.project-card img,
.news-card img {
    height: 205px;
    margin: -1.5rem -1.5rem 1.2rem;
    width: calc(100% + 3rem);
    max-width: none;
    border-radius: 0;
    object-fit: cover;
}

.service-card h3,
.project-card h3,
.info-card h3,
.reference-card h3,
.news-card h3 {
    color: var(--navy-primary);
    font-size: 1.15rem;
    line-height: 1.25;
}

.service-card a,
.project-card a,
.news-card a,
.text-link {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    color: var(--navy-primary);
}

.service-card a::after,
.project-card a::after,
.news-card a::after,
.text-link::after {
    content: "->";
    color: var(--gold-dark);
}

.filter-bar {
    margin-bottom: 1.7rem;
    padding: 1rem;
    border: 1px solid rgba(6, 26, 58, 0.09);
    border-radius: 8px;
    background: var(--white);
    box-shadow: 0 12px 30px rgba(3, 17, 38, 0.06);
}

.filter-pills button {
    border-radius: 6px;
    border: 1px solid rgba(6, 26, 58, 0.14);
    background: var(--white);
    color: var(--navy-primary);
    font-weight: 800;
}

.filter-pills .is-active,
.filter-pills button:hover {
    border-color: var(--navy-primary);
    background: var(--navy-primary);
    color: var(--white);
}

.search-field {
    border-radius: 6px;
}

.gallery-grid {
    gap: 0.65rem;
}

.gallery-tile {
    border-radius: 0;
    box-shadow: 0 18px 42px rgba(3, 17, 38, 0.1);
}

.gallery-tile img {
    height: 100%;
    min-height: 260px;
    border-radius: 0;
    object-fit: cover;
}

.gallery-tile button {
    font-weight: 800;
    letter-spacing: 0.02em;
}

.contact-grid {
    align-items: start;
}

.contact-card,
.form-card {
    border-radius: 8px;
    box-shadow: 0 22px 56px rgba(3, 17, 38, 0.1);
}

.contact-list li {
    padding-left: 1rem;
    border-left: 3px solid rgba(216, 168, 62, 0.55);
}

.map-embed {
    margin-top: 1.4rem;
    border-radius: 8px;
    filter: saturate(0.9);
}

.form-field input,
.form-field select,
.form-field textarea {
    border-radius: 6px;
    background: #fffdfa;
}

.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus {
    border-color: var(--gold-primary);
    outline: 3px solid rgba(216, 168, 62, 0.16);
}

.rich-text,
.article-content,
.thank-you .info-card {
    max-width: 860px;
    padding: 2.4rem;
    border: 1px solid rgba(6, 26, 58, 0.08);
    border-radius: 8px;
    background: var(--white);
    box-shadow: 0 18px 42px rgba(3, 17, 38, 0.08);
}

.values-grid {
    gap: 1.2rem;
}

.process-steps {
    gap: 1rem;
}

.process-step {
    border-radius: 8px;
}

.detail-grid,
.meta-grid {
    gap: 1.25rem;
}

.check-list li {
    position: relative;
    padding-left: 1.65rem;
}

.check-list li::before {
    content: "";
    position: absolute;
    top: 0.55rem;
    left: 0;
    width: 0.65rem;
    height: 0.65rem;
    border: 2px solid var(--gold-primary);
    border-radius: 50%;
}

/* Architectural Luxury in Motion */
:root {
    --lux-midnight: #06152F;
    --lux-deep: #020B19;
    --lux-blue: #102B4E;
    --lux-gold: #D5A442;
    --lux-warm-gold: #E8C477;
    --lux-champagne: #EBD9B1;
    --lux-ivory: #F8F5EF;
    --lux-stone: #E8E5DE;
    --lux-charcoal: #171A1F;
    --lux-muted: #69717D;
    --lux-max: min(1440px, calc(100% - 48px));
    --lux-content: min(1320px, calc(100% - 48px));
    --lux-serif: "Cormorant Garamond", serif;
    --lux-sans: "Manrope", sans-serif;
    --lux-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

body {
    background: var(--lux-ivory);
}

.lux-container {
    width: var(--lux-content);
    margin: 0 auto;
}

.luxury-home .site-header {
    position: fixed;
    background: linear-gradient(180deg, rgba(2, 11, 25, 0.78), rgba(2, 11, 25, 0));
    border-bottom: 1px solid rgba(235, 217, 177, 0);
    backdrop-filter: blur(0);
}

.site-header.is-scrolled {
    background: rgba(2, 11, 25, 0.78);
    border-bottom-color: rgba(235, 217, 177, 0.16);
    backdrop-filter: blur(18px);
}

.luxury-home .header-shell,
body:not(.is-homepage) .header-shell {
    width: var(--lux-max);
    #padding: 0.8rem 0;
}

.brand img,
body:not(.is-homepage) .brand img {
    width: 350px;
	padding-left:50px;
}

.desktop-nav ul {
    gap: 1.4rem;
}

.desktop-nav a {
    font-size: 1.0rem;
    font-weight: 700;
    letter-spacing: 0.015em;
}

.header-cta {
    min-width: 126px;
    min-height: 42px;
    border-radius: 0;
    font-size: 0.72rem;
}

.lux-eyebrow {
    margin: 0 0 1rem;
    color: var(--lux-gold);
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.28em;
    text-transform: uppercase;
}

.lux-hero {
    position: relative;
    min-height: 88vh;
    overflow: hidden;
    display: grid;
    align-items: center;
    color: #fff;
    background: var(--lux-deep);
}

.lux-hero__image {
    position: absolute;
    inset: 0;
}

.lux-hero__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 72% center;
    transform: scale(1.03);
    animation: luxHeroScale 1800ms var(--lux-ease) forwards;
}

.lux-hero__image::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(2, 11, 25, 0.98) 0%, rgba(6, 21, 47, 0.92) 34%, rgba(6, 21, 47, 0.48) 58%, rgba(2, 11, 25, 0.24) 100%),
        linear-gradient(180deg, rgba(2, 11, 25, 0.42), rgba(2, 11, 25, 0.2) 58%, rgba(2, 11, 25, 0.8));
}

.lux-hero__grid {
    position: absolute;
    inset: 0;
    opacity: 0.28;
    background-image:
        linear-gradient(rgba(232, 196, 119, 0.18) 1px, transparent 1px),
        linear-gradient(90deg, rgba(232, 196, 119, 0.16) 1px, transparent 1px);
    background-size: 16.666% 100%, 100% 20%;
    mask-image: linear-gradient(90deg, #000 0%, transparent 62%);
}

.lux-hero__content {
    position: relative;
    z-index: 1;
    padding-top: 6rem;
    padding-bottom: 6rem;
}

.lux-hero h1,
.lux-statement h2,
.lux-about h2,
.lux-section-head h2,
.lux-philosophy h2,
.lux-lifestyle h2,
.lux-process h2,
.lux-legacy h2,
.lux-final-cta h2 {
    font-family: var(--lux-serif);
    font-weight: 600;
    letter-spacing: -0.045em;
}

.lux-hero h1 {
    max-width: 720px;
    margin: 0;
    color: #fff;
    font-size: clamp(3.8rem, 6.4vw, 5.9rem);
    line-height: 0.9;
}

.lux-hero h1 span {
    display: block;
}

.lux-hero h1 em {
    color: var(--lux-warm-gold);
    font-style: normal;
}

.lux-hero__content > p:not(.lux-eyebrow) {
    max-width: 520px;
    margin: 1.25rem 0 0;
    color: rgba(255, 255, 255, 0.78);
    font-size: clamp(0.98rem, 1.08vw, 1.08rem);
    line-height: 1.7;
}

.lux-hero__actions {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    margin-top: 1.9rem;
}

.lux-button {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0 1.35rem;
    overflow: hidden;
    border: 1px solid transparent;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    transition: transform 0.25s var(--lux-ease), border-color 0.25s var(--lux-ease), background 0.25s var(--lux-ease);
}

.lux-button::after {
    content: "->";
    margin-left: 0.85rem;
    transition: transform 0.25s var(--lux-ease);
}

.lux-button:hover {
    transform: translateY(-2px);
}

.lux-button:hover::after {
    transform: translateX(4px);
}

.lux-button--primary {
    background: var(--lux-gold);
    color: var(--lux-deep);
}

.lux-button--secondary {
    border-color: rgba(235, 217, 177, 0.45);
    color: #fff;
    background: rgba(255, 255, 255, 0.02);
}

.lux-button--dark {
    border-color: rgba(6, 21, 47, 0.28);
    color: var(--lux-midnight);
}

.lux-hero__rail {
    position: absolute;
    right: 2rem;
    bottom: 2rem;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(3, auto);
    border: 1px solid rgba(235, 217, 177, 0.22);
    background: rgba(2, 11, 25, 0.56);
    backdrop-filter: blur(14px);
}

.lux-hero__rail span {
    padding: 0.85rem 1rem;
    border-right: 1px solid rgba(235, 217, 177, 0.18);
    color: rgba(255, 255, 255, 0.82);
    font-size: 0.72rem;
    font-weight: 700;
}

.lux-hero__rail span:last-child {
    border-right: 0;
}

.lux-scroll {
    position: absolute;
    left: 2rem;
    bottom: 2rem;
    z-index: 1;
    display: inline-flex;
    gap: 0.8rem;
    align-items: center;
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.75rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.lux-scroll span {
    width: 64px;
    height: 1px;
    background: var(--lux-gold);
    transform-origin: left;
    animation: luxLine 1600ms var(--lux-ease) infinite;
}

.lux-statement,
.lux-about,
.lux-developments,
.lux-craft,
.lux-process,
.lux-legacy,
.lux-gallery {
    padding: clamp(5rem, 8vw, 9rem) 0;
}

.lux-statement {
    position: relative;
    overflow: hidden;
    background: var(--lux-ivory);
}

.lux-statement__grid {
    position: relative;
    display: grid;
    grid-template-columns: 0.95fr 1.05fr;
    gap: 5vw;
    align-items: end;
}

.lux-statement h2 {
    max-width: 680px;
    color: var(--lux-midnight);
    font-size: clamp(3.4rem, 6vw, 6rem);
    line-height: 0.95;
}

.lux-statement p:not(.lux-eyebrow) {
    max-width: 630px;
    color: var(--lux-charcoal);
    font-size: clamp(1.08rem, 1.45vw, 1.35rem);
    line-height: 1.75;
}

.lux-statement strong {
    position: absolute;
    right: -2vw;
    bottom: -5.5rem;
    color: rgba(6, 21, 47, 0.05);
    font-family: var(--lux-serif);
    font-size: clamp(10rem, 22vw, 22rem);
    line-height: 0.8;
}

.lux-about {
    background: linear-gradient(180deg, var(--lux-ivory), #fff);
}

.lux-about__grid {
    display: grid;
    grid-template-columns: 0.95fr 1.05fr;
    gap: 5vw;
    align-items: center;
}

.lux-about__media {
    position: relative;
    min-height: 620px;
}

.lux-about__main,
.lux-about__detail {
    position: absolute;
    object-fit: cover;
    box-shadow: 0 28px 90px rgba(2, 11, 25, 0.18);
}

.lux-about__main {
    left: 0;
    top: 0;
    width: 68%;
    height: 80%;
}

.lux-about__detail {
    right: 0;
    bottom: 10%;
    width: 52%;
    height: 32%;
    border: 12px solid var(--lux-ivory);
}

.lux-about__media span {
    position: absolute;
    left: 9%;
    bottom: 0;
    padding: 1.05rem 1.2rem;
    background: var(--lux-midnight);
    color: var(--lux-warm-gold);
    font-size: 0.8rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.lux-about h2,
.lux-section-head h2,
.lux-philosophy h2,
.lux-lifestyle h2,
.lux-process h2,
.lux-legacy h2,
.lux-final-cta h2 {
    color: var(--lux-midnight);
    font-size: clamp(3.2rem, 5.5vw, 5.8rem);
    line-height: 0.94;
}

.lux-about__copy > p:not(.lux-eyebrow) {
    max-width: 680px;
    font-size: 1.08rem;
    line-height: 1.8;
}

.lux-principles {
    margin-top: 3rem;
    display: grid;
    gap: 1.6rem;
}

.lux-principles article {
    display: grid;
    grid-template-columns: 72px 1fr;
    gap: 1.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid rgba(6, 21, 47, 0.14);
    align-items: start;
}

.lux-principles span,
.lux-project__panel > span,
.lux-process__steps span,
.lux-expertise-list article > span {
    color: var(--lux-gold);
    font-family: var(--lux-serif);
    font-size: 2.2rem;
    line-height: 1;
}

.lux-principles span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    border: 1px solid rgba(213, 164, 66, 0.32);
    border-radius: 50%;
    grid-row: 1 / span 2;
}

.lux-principles span svg {
    width: 22px;
    height: 22px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.lux-principles h3 {
    margin: 0 0 0.35rem;
    color: var(--lux-midnight);
    font-size: 1.1rem;
    grid-column: 2;
}

.lux-principles p {
    margin: 0;
    grid-column: 2;
    max-width: 30rem;
}

.lux-developments {
    background: var(--lux-deep);
    color: #fff;
}

.lux-developments .lux-section-head h2,
.lux-philosophy h2,
.lux-process h2,
.lux-final-cta h2 {
    color: #fff;
}

.lux-section-head {
    margin-bottom: 4rem;
}

.lux-section-head--split {
    display: grid;
    grid-template-columns: 1fr minmax(280px, 480px);
    gap: 3rem;
    align-items: end;
}

.lux-section-head--split > p {
    color: var(--lux-muted);
    font-size: 1.05rem;
    line-height: 1.8;
}

.lux-projects,
.lux-inner-showcase .lux-container {
    display: grid;
    gap: 5rem;
}

.lux-project {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(360px, 0.75fr);
    min-height: 580px;
}

.lux-project:nth-child(even) {
    grid-template-columns: minmax(360px, 0.75fr) minmax(0, 1.5fr);
}

.lux-project:nth-child(even) .lux-project__image {
    order: 2;
}

.lux-project__image {
    overflow: hidden;
}

.lux-project__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 700ms var(--lux-ease);
}

.lux-project:hover .lux-project__image img {
    transform: scale(1.04);
}

.lux-project__panel {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(2rem, 4vw, 4.5rem);
    background: var(--lux-midnight);
    border: 1px solid rgba(235, 217, 177, 0.12);
}

.lux-project__panel h3 {
    margin: 1rem 0;
    color: #fff;
    font-family: var(--lux-serif);
    font-size: clamp(2.6rem, 4vw, 4.6rem);
    font-weight: 600;
    line-height: 0.96;
}

.lux-project__panel p {
    color: rgba(255, 255, 255, 0.74);
}

.lux-project__panel small {
    display: inline-flex;
    width: fit-content;
    margin: 0.8rem 0 1.6rem;
    padding: 0.45rem 0.6rem;
    border: 1px solid rgba(232, 196, 119, 0.28);
    color: var(--lux-champagne);
    font-size: 0.72rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.lux-link {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    gap: 0.65rem;
    color: var(--lux-warm-gold);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.lux-link::after {
    content: "->";
    transition: transform 0.25s var(--lux-ease);
}

.lux-link:hover::after {
    transform: translateX(5px);
}

.lux-philosophy {
    position: relative;
    overflow: hidden;
    min-height: 720px;
    display: grid;
    align-items: center;
    color: #fff;
    background: var(--lux-deep);
}

.lux-philosophy__image {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(2, 11, 25, 0.96), rgba(2, 11, 25, 0.62)),
        url("../images/reference-crops/gallery-3.png") center/cover no-repeat;
}

.lux-philosophy .lux-container {
    position: relative;
    z-index: 1;
}

.lux-philosophy p:not(.lux-eyebrow) {
    max-width: 690px;
    color: rgba(255, 255, 255, 0.78);
    font-size: 1.2rem;
    line-height: 1.8;
}

.lux-philosophy::after {
    content: "";
    position: absolute;
    right: 10vw;
    top: 50%;
    width: 360px;
    height: 360px;
    border: 1px solid rgba(213, 164, 66, 0.42);
    border-radius: 50%;
    transform: translateY(-50%);
}

.lux-craft {
    background: #fff;
}

.lux-craft__strip {
    display: flex;
    gap: 0.8rem;
    min-height: 480px;
}

.lux-craft__strip figure {
    position: relative;
    flex: 1;
    overflow: hidden;
    margin: 0;
    transition: flex 500ms var(--lux-ease);
}

.lux-craft__strip figure:hover {
    flex: 1.7;
}

.lux-craft__strip img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.lux-craft__strip figcaption {
    position: absolute;
    left: 1.1rem;
    bottom: 1.1rem;
    color: #fff;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.lux-lifestyle {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    min-height: 760px;
    background: var(--lux-ivory);
}

.lux-lifestyle__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.lux-lifestyle__copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(3rem, 6vw, 7rem);
}

.lux-lifestyle__copy p:not(.lux-eyebrow) {
    max-width: 560px;
    font-size: 1.08rem;
    line-height: 1.8;
}

.lux-process {
    background: var(--lux-midnight);
    color: #fff;
}

.lux-process__grid {
    display: grid;
    grid-template-columns: 0.85fr 1.15fr;
    gap: 7vw;
    align-items: start;
}

.lux-process__sticky {
    position: sticky;
    top: 120px;
}

.lux-process__steps {
    display: grid;
    gap: 0;
}

.lux-process__steps article {
    padding: 2.2rem 0;
    border-top: 1px solid rgba(235, 217, 177, 0.16);
}

.lux-process__steps h3 {
    margin: 0.2rem 0 0.7rem;
    color: #fff;
    font-family: var(--lux-serif);
    font-size: 3rem;
    font-weight: 600;
}

.lux-process__steps p {
    max-width: 560px;
    color: rgba(255, 255, 255, 0.72);
}

.lux-legacy {
    background: var(--lux-ivory);
}

.lux-legacy__grid {
    display: grid;
    grid-template-columns: 0.2fr 1.2fr 0.6fr;
    gap: 3rem;
    align-items: start;
}

.lux-legacy p:not(.lux-eyebrow) {
    font-size: 1.03rem;
    line-height: 1.8;
}

.lux-gallery {
    background: #fff;
}

.lux-gallery__grid {
    display: grid;
    grid-template-columns: 1.1fr 0.75fr 1fr;
    grid-auto-rows: 260px;
    gap: 0.75rem;
}

.lux-gallery__grid a {
    position: relative;
    overflow: hidden;
    color: #fff;
}

.lux-gallery__grid a:nth-child(1) {
    grid-row: span 2;
}

.lux-gallery__grid a:nth-child(3) {
    grid-column: span 1;
    grid-row: span 2;
}

.lux-gallery__grid img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 700ms var(--lux-ease);
}

.lux-gallery__grid a::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent, rgba(2, 11, 25, 0.62));
}

.lux-gallery__grid a:hover img {
    transform: scale(1.04);
}

.lux-gallery__grid span {
    position: absolute;
    left: 1.1rem;
    bottom: 1rem;
    z-index: 1;
    color: var(--lux-champagne);
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.lux-final-cta {
    position: relative;
    overflow: hidden;
    padding: clamp(6rem, 12vw, 12rem) 0;
    color: #fff;
    background:
        linear-gradient(90deg, rgba(2, 11, 25, 0.96), rgba(2, 11, 25, 0.65)),
        url("../images/reference-crops/hero-building.png") center/cover no-repeat;
}

.lux-final-cta p:not(.lux-eyebrow) {
    max-width: 610px;
    color: rgba(255, 255, 255, 0.78);
    font-size: 1.08rem;
}

.site-footer {
    position: relative;
    overflow: hidden;
    padding-top: 5.5rem;
    background: var(--lux-deep);
}

.site-footer__wordmark {
    position: absolute;
    left: 3vw;
    top: 1.5rem;
    color: rgba(255, 255, 255, 0.035);
    font-family: var(--lux-serif);
    font-size: clamp(7rem, 18vw, 18rem);
    line-height: 0.75;
    z-index: 0;
    pointer-events: none;
    user-select: none;
    -webkit-user-select: none;
}

.cta-band {
    background: var(--lux-midnight);
}

.cta-band__inner h2 {
    color: var(--lux-champagne);
    font-family: var(--lux-serif);
    font-size: clamp(2.4rem, 4.5vw, 4.6rem);
}

.lux-expertise-list .lux-container {
    display: grid;
    gap: 0;
}

.lux-expertise-list article {
    display: grid;
    grid-template-columns: 100px 320px 1fr;
    gap: 2.5rem;
    align-items: center;
    padding: 2.2rem 0;
    border-top: 1px solid rgba(6, 21, 47, 0.12);
}

.lux-expertise-list img {
    width: 100%;
    height: 220px;
    object-fit: cover;
}

.lux-expertise-list h2 {
    max-width: 780px;
    color: var(--lux-midnight);
    font-family: var(--lux-serif);
    font-size: clamp(2rem, 3vw, 3.6rem);
    line-height: 1;
}

.lux-page-intro {
    padding-bottom: 0;
}

.lux-page-grid {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 4rem;
    align-items: start;
}

.lux-page-grid--balanced {
    grid-template-columns: 1fr 1fr;
}

.lux-page-copy h2 {
    max-width: 780px;
    margin-bottom: 1rem;
    color: var(--lux-midnight);
    font-family: var(--lux-serif);
    font-size: clamp(2.6rem, 4vw, 4.5rem);
    line-height: 0.98;
}

.lux-page-copy p:not(.lux-eyebrow) {
    max-width: 680px;
    font-size: 1.04rem;
    line-height: 1.85;
}

.lux-page-media--stacked {
    position: relative;
    min-height: 680px;
}

.lux-page-media__primary,
.lux-page-media__secondary {
    position: absolute;
    object-fit: cover;
    box-shadow: 0 26px 70px rgba(2, 11, 25, 0.16);
}

.lux-page-media__primary {
    left: 0;
    top: 0;
    width: 70%;
    height: 84%;
}

.lux-page-media__secondary {
    right: 0;
    bottom: 7%;
    width: 52%;
    height: 34%;
    border: 10px solid var(--lux-ivory);
}

.lux-note {
    display: grid;
    gap: 0.75rem;
    width: fit-content;
    max-width: 360px;
    padding: 1.2rem 1.25rem;
    border-left: 2px solid var(--lux-gold);
    background: rgba(6, 21, 47, 0.05);
}

.lux-note--light {
    align-self: end;
    background: #fff;
    box-shadow: 0 18px 44px rgba(2, 11, 25, 0.08);
}

.lux-note span {
    color: var(--lux-gold);
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.lux-note p {
    margin: 0;
    color: var(--lux-charcoal);
    line-height: 1.7;
}

.lux-page-media .lux-note {
    position: absolute;
    left: 7%;
    bottom: 0;
}

.lux-milestones {
    background: linear-gradient(180deg, #fff, var(--lux-ivory));
}

.lux-milestones__list {
    display: grid;
    gap: 0;
}

.lux-milestone {
    display: grid;
    grid-template-columns: 180px 1fr;
    gap: 2rem;
    padding: 2rem 0;
    border-top: 1px solid rgba(6, 21, 47, 0.12);
}

.lux-milestone span {
    color: var(--lux-gold);
    font-family: var(--lux-serif);
    font-size: clamp(2rem, 3vw, 3.1rem);
    line-height: 1;
}

.lux-milestone h3 {
    margin: 0 0 0.5rem;
    color: var(--lux-midnight);
    font-size: 1.2rem;
}

.lux-milestone p {
    margin: 0;
    max-width: 740px;
    line-height: 1.8;
}

.lux-values-band {
    background: var(--lux-midnight);
    color: rgba(255, 255, 255, 0.76);
}

.lux-values-band h2 {
    max-width: 840px;
    color: #fff;
    font-family: var(--lux-serif);
    font-size: clamp(2.8rem, 4.6vw, 4.8rem);
    line-height: 0.98;
}

.lux-value-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.4rem;
    margin-top: 2.5rem;
}

.lux-value-list article {
    padding-top: 1.5rem;
    border-top: 1px solid rgba(235, 217, 177, 0.16);
}

.lux-value-list h3 {
    margin: 0 0 0.55rem;
    color: var(--lux-champagne);
    font-size: 1.08rem;
}

.lux-inner-showcase {
    padding-top: 2.5rem;
}

.lux-icon-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    border: 1px solid rgba(213, 164, 66, 0.28);
    border-radius: 50%;
    color: var(--lux-gold);
}

.lux-icon-badge svg {
    width: 24px;
    height: 24px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.lux-gallery-page {
    padding-top: 2rem;
}

.lux-gallery-page__grid {
    display: grid;
    grid-template-columns: 1.15fr 0.85fr 1fr;
    grid-auto-rows: 270px;
    gap: 0.9rem;
}

.lux-gallery-card {
    position: relative;
    overflow: hidden;
    background: var(--lux-deep);
}

.lux-gallery-card:nth-child(1) {
    grid-row: span 2;
}

.lux-gallery-card:nth-child(3) {
    grid-row: span 2;
}

.lux-gallery-card:nth-child(6) {
    grid-column: span 2;
}

.lux-gallery-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 600ms var(--lux-ease);
}

.lux-gallery-card button {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: end;
    gap: 0.35rem;
    padding: 1.1rem;
    border: 0;
    background: linear-gradient(180deg, rgba(2, 11, 25, 0) 34%, rgba(2, 11, 25, 0.72) 100%);
    color: #fff;
    text-align: left;
}

.lux-gallery-card button span {
    color: var(--lux-warm-gold);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.lux-gallery-card button strong {
    font-size: 1rem;
}

.lux-gallery-card:hover img {
    transform: scale(1.04);
}

.lux-contact-layout {
    display: grid;
    grid-template-columns: 0.88fr 1.12fr;
    gap: 2rem;
    align-items: start;
}

.lux-contact-aside {
    display: grid;
    gap: 1rem;
}

.lux-contact-panel {
    padding: 2rem;
    background: var(--lux-midnight);
    color: rgba(255, 255, 255, 0.78);
}

.lux-contact-panel h2 {
    margin-bottom: 1rem;
    color: #fff;
    font-family: var(--lux-serif);
    font-size: clamp(2rem, 3vw, 3rem);
    line-height: 1;
}

.lux-keyline-list {
    display: grid;
    gap: 1rem;
    padding: 0;
    margin: 0;
    list-style: none;
}

.lux-keyline-list li {
    padding-left: 1rem;
    border-left: 2px solid rgba(213, 164, 66, 0.42);
    line-height: 1.8;
}

.lux-keyline-list a {
    color: #fff;
}

.lux-inline-points {
    display: flex;
    gap: 0.6rem;
    flex-wrap: wrap;
    margin-top: 1.5rem;
}

.lux-inline-points span {
    padding: 0.42rem 0.68rem;
    border: 1px solid rgba(235, 217, 177, 0.18);
    color: var(--lux-champagne);
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.lux-contact-page .form-card {
    padding: 2.2rem;
}

/* Light luxury refresh */
:root {
    --lux-paper: #fcfaf6;
    --lux-cloud: #f4efe7;
    --lux-line: rgba(20, 32, 51, 0.12);
    --lux-soft-shadow: 0 26px 72px rgba(20, 32, 51, 0.08);
}

body,
body:not(.is-homepage) {
    background: linear-gradient(180deg, #fffdfa 0%, var(--lux-paper) 100%);
    color: #5e6470;
}

.luxury-home .site-header,
body:not(.is-homepage) .site-header,
.site-header.is-scrolled,
.site-header--solid {
    background: rgba(252, 250, 246, 0.92);
    border-bottom: 1px solid rgba(20, 32, 51, 0.08);
    box-shadow: 0 14px 42px rgba(20, 32, 51, 0.08);
    backdrop-filter: blur(18px);
}

.site-header--overlay {
    background: rgba(252, 250, 246, 0.88);
}

.topbar {
    color: rgba(20, 32, 51, 0.72);
    background: rgba(244, 239, 231, 0.9);
    border-bottom: 1px solid rgba(20, 32, 51, 0.08);
}

.topbar a,
.desktop-nav a,
.mobile-nav a,
.mobile-nav__meta a {
    color: var(--lux-midnight);
}

.desktop-nav a::after {
    background: var(--lux-gold);
}

.menu-toggle,
.mobile-nav__close {
    border-color: rgba(20, 32, 51, 0.12);
    color: var(--lux-midnight);
    background: rgba(255, 255, 255, 0.72);
}

.mobile-nav {
    background: rgba(20, 32, 51, 0.2);
}

.mobile-nav__panel {
    background: linear-gradient(180deg, #fffdf9, #f4efe7);
}

.button--outline-light {
    border-color: rgba(20, 32, 51, 0.18);
    color: var(--lux-midnight);
    background: rgba(255, 255, 255, 0.72);
}

.page-hero,
.detail-hero {
    background:
        linear-gradient(90deg, rgba(252, 250, 246, 0.96) 0%, rgba(252, 250, 246, 0.9) 44%, rgba(252, 250, 246, 0.5) 72%, rgba(252, 250, 246, 0.24) 100%),
        url("../images/reference-crops/hero-building.png") center/cover no-repeat;
    color: var(--lux-midnight);
}

.page-hero::after,
.detail-hero::after {
    border-color: rgba(213, 164, 66, 0.18);
}

.page-hero h1,
.detail-hero h1,
.page-hero p:not(.section-eyebrow),
.detail-hero p:not(.section-eyebrow),
.breadcrumbs ol {
    color: var(--lux-midnight);
}

.lux-hero {
    color: var(--lux-midnight);
    background: linear-gradient(180deg, #fcfaf6 0%, #f5eee4 100%);
}

.lux-hero__image::after {
    background:
        linear-gradient(90deg, rgba(252, 250, 246, 0.92) 0%, rgba(252, 250, 246, 0.84) 30%, rgba(252, 250, 246, 0.52) 52%, rgba(252, 250, 246, 0.16) 72%, rgba(252, 250, 246, 0.08) 100%),
        linear-gradient(180deg, rgba(252, 250, 246, 0.04), rgba(252, 250, 246, 0.08) 54%, rgba(252, 250, 246, 0.22));
}

.lux-hero__grid {
    opacity: 0.18;
    background-image:
        linear-gradient(rgba(213, 164, 66, 0.14) 1px, transparent 1px),
        linear-gradient(90deg, rgba(213, 164, 66, 0.12) 1px, transparent 1px);
}

.lux-hero h1 {
    color: var(--lux-midnight);
}

.lux-hero__content > p:not(.lux-eyebrow) {
    color: rgba(20, 32, 51, 0.72);
}

.lux-button--secondary {
    border-color: rgba(20, 32, 51, 0.18);
    color: var(--lux-midnight);
    background: rgba(255, 255, 255, 0.58);
}

.lux-button--dark {
    background: rgba(255, 255, 255, 0.75);
}

.lux-hero__rail {
    border-color: rgba(20, 32, 51, 0.08);
    background: rgba(255, 255, 255, 0.72);
    box-shadow: var(--lux-soft-shadow);
}

.lux-hero__rail span {
    border-right-color: rgba(20, 32, 51, 0.08);
    color: rgba(20, 32, 51, 0.74);
}

.lux-scroll {
    color: rgba(20, 32, 51, 0.65);
}

[data-reveal] {
    opacity: 1;
    transform: none;
    animation: none;
}

.lux-statement,
.lux-about,
.lux-craft,
.lux-legacy,
.lux-gallery,
.lux-page-intro,
.lux-gallery-page,
.lux-milestones {
    background: transparent;
}

.lux-statement strong,
.site-footer__wordmark {
    color: rgba(20, 32, 51, 0.04);
}

.lux-about__main,
.lux-about__detail,
.lux-page-media__primary,
.lux-page-media__secondary,
.lux-note--light,
.contact-card,
.form-card,
.info-card,
.rich-text,
.article-content {
    box-shadow: var(--lux-soft-shadow);
}

.lux-about__detail,
.lux-page-media__secondary {
    border-color: #fffaf3;
}

.lux-about__media span {
    background: #fff;
    color: var(--lux-gold);
    box-shadow: 0 18px 38px rgba(20, 32, 51, 0.12);
}

.lux-principles article,
.lux-milestone,
.lux-expertise-list article,
.lux-value-list article,
.lux-process__steps article {
    border-top-color: var(--lux-line);
}

.lux-developments {
    background: linear-gradient(180deg, #fff 0%, #f7f2ea 100%);
    color: var(--lux-midnight);
}

.lux-developments .lux-section-head h2,
.lux-philosophy h2,
.lux-process h2,
.lux-final-cta h2 {
    color: var(--lux-midnight);
}

.lux-project {
    align-items: stretch;
}

.lux-project__panel {
    background: linear-gradient(180deg, #fffdf9 0%, #f4eee4 100%);
    border-color: rgba(20, 32, 51, 0.08);
}

.lux-project__panel h3 {
    color: var(--lux-midnight);
}

.lux-project__panel p {
    color: rgba(20, 32, 51, 0.7);
}

.lux-project__panel small {
    border-color: rgba(213, 164, 66, 0.3);
    color: var(--lux-gold);
    background: rgba(213, 164, 66, 0.08);
}

.lux-link {
    color: var(--lux-gold);
}

.lux-section-head--split > p,
.lux-page-copy p:not(.lux-eyebrow),
.lux-note p,
.lux-milestone p,
.lux-legacy p:not(.lux-eyebrow),
.lux-lifestyle__copy p:not(.lux-eyebrow),
.lux-about__copy > p:not(.lux-eyebrow),
.lux-statement p:not(.lux-eyebrow) {
    color: rgba(20, 32, 51, 0.72);
}

.lux-philosophy,
.lux-final-cta {
    color: var(--lux-midnight);
    background: linear-gradient(180deg, #f8f3ea 0%, #fffdf9 100%);
}

.lux-philosophy__image,
.lux-final-cta {
    background:
        linear-gradient(90deg, rgba(252, 250, 246, 0.92), rgba(252, 250, 246, 0.68)),
        url("../images/reference-crops/gallery-3.png") center/cover no-repeat;
}

.lux-final-cta {
    background:
        linear-gradient(90deg, rgba(252, 250, 246, 0.92), rgba(252, 250, 246, 0.64)),
        url("../images/reference-crops/hero-building.png") center/cover no-repeat;
}

.lux-philosophy p:not(.lux-eyebrow),
.lux-final-cta p:not(.lux-eyebrow) {
    color: rgba(20, 32, 51, 0.72);
}

.lux-philosophy::after {
    border-color: rgba(213, 164, 66, 0.18);
}

.lux-lifestyle {
    background: linear-gradient(180deg, #fffdf9 0%, #f6f0e7 100%);
}

.lux-process {
    background: linear-gradient(180deg, #fff 0%, #f7f2ea 100%);
    color: var(--lux-midnight);
}

.lux-process__steps h3 {
    color: var(--lux-midnight);
}

.lux-process__steps p {
    color: rgba(20, 32, 51, 0.72);
}

.lux-process__steps span,
.lux-project__panel > span {
    color: var(--lux-gold);
}

.lux-gallery__grid a::after,
.lux-gallery-card button {
    background: linear-gradient(180deg, rgba(20, 32, 51, 0.02), rgba(20, 32, 51, 0.54));
}

.lux-values-band,
.lux-contact-panel,
.cta-band,
.site-footer {
    background: linear-gradient(180deg, #fbf8f2 0%, #f0e9dd 100%);
    color: rgba(20, 32, 51, 0.72);
}

.lux-values-band h2,
.lux-contact-panel h2,
.cta-band__inner h2,
.site-footer h3,
.site-footer strong,
.lux-keyline-list a {
    color: var(--lux-midnight);
}

.lux-value-list h3,
.lux-inline-points span,
.site-footer .footer-bottom__links a {
    color: var(--lux-gold);
}

.lux-inline-points span {
    border-color: rgba(213, 164, 66, 0.24);
    background: rgba(213, 164, 66, 0.08);
}

.lux-keyline-list li {
    border-left-color: rgba(213, 164, 66, 0.36);
}

.site-footer {
    border-top: 1px solid rgba(20, 32, 51, 0.06);
}

.footer-grid,
.footer-bottom {
    position: relative;
    z-index: 1;
}

.cookie-consent {
    position: fixed;
    right: 24px;
    bottom: 24px;
    left: 24px;
    z-index: 60;
}

.cookie-consent__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1.5rem;
    align-items: center;
    padding: 1.35rem 1.5rem;
    border: 1px solid rgba(20, 32, 51, 0.08);
    background: rgba(255, 253, 249, 0.96);
    box-shadow: 0 22px 60px rgba(20, 32, 51, 0.14);
    backdrop-filter: blur(16px);
}

.cookie-consent__eyebrow {
    margin: 0 0 0.45rem;
    color: var(--lux-gold);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.cookie-consent__copy h2 {
    margin: 0 0 0.45rem;
    color: var(--lux-midnight);
    font-family: var(--lux-serif);
    font-size: clamp(1.45rem, 2.1vw, 2rem);
    line-height: 1;
}

.cookie-consent__copy p:last-child {
    margin: 0;
    color: rgba(20, 32, 51, 0.72);
    font-size: 0.95rem;
    line-height: 1.7;
}

.cookie-consent__copy a {
    color: var(--lux-gold);
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

.cookie-consent__actions {
    display: flex;
    gap: 0.8rem;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
}

[data-reveal] {
    opacity: 1;
    transform: none;
    animation: none;
}

@keyframes luxHeroScale {
    to {
        transform: scale(1);
    }
}

@keyframes luxReveal {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes luxLine {
    0%, 100% {
        transform: scaleX(0.45);
    }
    50% {
        transform: scaleX(1);
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.001ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: 0.001ms !important;
    }
}
.social-links {
  display: flex;
  gap: 12px;
}

.social-links a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background-color: #eeeeee; /* The light grey circle background */
  transition: all 0.3s ease;
  text-decoration: none;
}

/* Force the icon inside the link to be visible and colored */
.social-links a i {
  color: #101a2e; /* Use your dark theme blue/black color */
  font-size: 16px;
  display: inline-block;
}

/* Hover effects to make it interactive */
.social-links a:hover {
  background-color: #e5b84d; /* Vistara Builders gold/orange accent */
}

.social-links a:hover i {
  color: #ffffff; /* Turns white on hover */
}