.pre-footer { position: relative; overflow: hidden; padding: var(--sec) 0; isolation: isolate; }
.pre-footer__bg { position: absolute; inset: 0; z-index: -2; background: url("../images/textures/marble-1.jpg") center / cover fixed; opacity: .5; }
.pre-footer::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, var(--black) 0%, rgba(16,15,14,.55) 30%, rgba(16,15,14,.55) 70%, var(--black) 100%); }
.pre-footer__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 5vw, 80px); align-items: center; }
.pre-footer__copy .h-display { font-size: clamp(3rem, 6.5vw, 6rem); }
.contact-list { display: grid; gap: 18px; margin-top: 32px; }
.contact-list a, .contact-list div { display: flex; align-items: center; gap: 16px; color: var(--white); }
.contact-list .icon-wrap { width: 48px; height: 48px; border-radius: 12px; display: grid; place-items: center; background: rgba(218,166,32,.12); border: 1px solid rgba(218,166,32,.3); color: var(--gold); flex-shrink: 0; }
.contact-list b { display: block; font-family: var(--f-cond); font-size: 1.35rem; letter-spacing: .02em; line-height: 1.1; }
.contact-list small { display: block; font-family: var(--f-sub); font-size: .68rem; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); margin-bottom: 2px; }
.contact-list a:hover b { color: var(--gold-lt); }

.site-footer { position: relative; background: var(--black); border-top: 1px solid var(--line); overflow: hidden; }
.footer-wordmark { position: relative; padding: clamp(32px, 5vw, 64px) 0 0; overflow: hidden; -webkit-mask-image: linear-gradient(180deg, #000 30%, transparent 100%); mask-image: linear-gradient(180deg, #000 30%, transparent 100%); }
.footer-wordmark svg { width: 100%; height: auto; display: block; }
.footer-wordmark img { width: 100%; opacity: .12; }
.footer-main { padding: clamp(40px, 6vw, 72px) 0; display: grid; grid-template-columns: 1.6fr 1fr 1fr 1.2fr; gap: clamp(32px, 4vw, 64px); }
.footer-brand img { width: 200px; }
.footer-brand p { color: var(--muted); font-size: .95rem; margin-top: 20px; max-width: 38ch; }
.footer-col h4 { font-family: var(--f-sub); font-size: .72rem; letter-spacing: .2em; text-transform: uppercase; color: var(--gold); margin-bottom: 18px; }
.footer-col ul { display: grid; gap: 10px; }
.footer-col a { color: var(--silver); font-size: .95rem; transition: color .2s, padding-left .2s; }
.footer-col a:hover { color: var(--white); padding-left: 4px; }
.footer-social { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.footer-social a { width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid var(--line-2); border-radius: 50%; color: var(--white); transition: border-color .2s, color .2s, transform .3s var(--ease-out), background .2s; }
.footer-social a:hover { border-color: var(--gold); color: var(--black); background: var(--gold); transform: translateY(-3px); }
.footer-photos { display: grid; grid-template-columns: repeat(6, 1fr); gap: 2px; }
.footer-photos img { aspect-ratio: 1; object-fit: cover; width: 100%; filter: grayscale(.4) contrast(1.05); transition: filter .4s, transform .5s var(--ease-out); }
.footer-photos a { overflow: hidden; display: block; }
.footer-photos a:hover img { filter: none; transform: scale(1.06); }
.footer-bottom { border-top: 1px solid var(--line); padding: 22px 0; display: flex; flex-wrap: wrap; gap: 12px 28px; align-items: center; justify-content: space-between; font-size: .8rem; color: var(--muted); }
.footer-bottom ul { display: flex; flex-wrap: wrap; gap: 6px 18px; }
.footer-bottom a:hover { color: var(--gold); }
.footer-credit a { color: var(--silver); }
.back-top { position: fixed; right: 22px; bottom: 22px; z-index: 890; width: 50px; height: 50px; border-radius: 50%; background: var(--black-3); border: 1px solid var(--line-2); color: var(--gold); display: grid; place-items: center; opacity: 0; transform: translateY(12px); transition: opacity .3s, transform .3s var(--ease-out), background .2s; }
.back-top.show { opacity: 1; transform: none; }
.back-top:hover { background: var(--gold); color: var(--black); border-color: var(--gold); }
