:root {
    --ink: #0d0d0d;
    --charcoal: #151513;
    --paper: #f3f0e8;
    --white: #fffdf8;
    --gold: #d6a73f;
    --gold-light: #f0ce78;
    --muted: #a7a397;
    --line: rgba(214, 167, 63, 0.28);
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
    margin: 0;
    color: var(--ink);
    background: var(--paper);
    font-family: "Manrope", sans-serif;
    font-size: 16px;
    line-height: 1.75;
    overflow-x: hidden;
}

a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button { font: inherit; }

h1, h2, h3, blockquote {
    margin: 0;
    font-family: "Cormorant Garamond", serif;
    font-weight: 600;
    line-height: 1.02;
}

.site-header {
    position: absolute;
    z-index: 20;
    top: 0;
    left: 0;
    display: grid;
    width: 100%;
    grid-template-columns: auto 1fr;
    align-items: center;
    padding: 20px clamp(24px, 5vw, 78px);
    border-bottom: 1px solid rgba(255,255,255,.12);
    color: var(--white);
}

.brand { display: grid; grid-template-columns: 62px auto; align-items: center; gap: 14px; }
.brand-mark { display: grid; height: 54px; align-items: center; overflow: hidden; }
.brand-mark img { width: 64px; transform: scale(1.3); }
.brand-copy { display: grid; line-height: 1.15; }
.brand-copy strong { color: var(--white); font-family: "Cormorant Garamond", serif; font-size: 25px; letter-spacing: 0; }
.brand-copy small { margin-top: 4px; color: #bbb7ae; font-size: 8px; letter-spacing: 1.5px; text-transform: uppercase; }

.site-nav { display: grid; grid-auto-flow: column; justify-content: end; align-items: center; gap: clamp(24px, 3vw, 52px); font-size: 12px; letter-spacing: 1px; text-transform: uppercase; }
.site-nav a { transition: color .25s ease; }
.site-nav a:hover { color: var(--gold-light); }
.site-nav .nav-cta { padding: 8px 0; border-bottom: 1px solid var(--gold); color: var(--gold-light); }
.menu-toggle { display: none; width: 42px; height: 42px; border: 1px solid var(--line); background: transparent; color: var(--white); cursor: pointer; }

.hero {
    position: relative;
    display: grid;
    min-height: 100vh;
    grid-template-columns: minmax(0, 1fr) minmax(230px, .32fr);
    align-items: end;
    padding: 165px clamp(24px, 8vw, 130px) 100px;
    color: var(--white);
    background:
        radial-gradient(circle at 74% 42%, rgba(214,167,63,.15), transparent 24%),
        linear-gradient(90deg, rgba(7,7,6,.96) 0%, rgba(10,10,9,.85) 48%, rgba(8,8,7,.62) 100%),
        url("template/goldbg.jpg") center 45% / cover no-repeat;
    overflow: hidden;
}

.hero::after { content: ""; position: absolute; inset: 0 28% 0 auto; width: 1px; background: linear-gradient(transparent, var(--line), transparent); }
.hero-pattern { position: absolute; inset: -15%; opacity: .45; background-image: linear-gradient(115deg, transparent 48%, rgba(214,167,63,.13) 49%, transparent 50%), repeating-linear-gradient(90deg, transparent 0 99px, rgba(255,255,255,.025) 100px); }
.hero-content { position: relative; z-index: 2; max-width: 860px; }
.eyebrow { display: grid; grid-template-columns: 40px auto; align-items: center; gap: 14px; margin: 0 0 25px; color: var(--gold-light); font-size: 11px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; }
.eyebrow span { height: 1px; background: var(--gold); }
.eyebrow.dark { color: #745a21; }
.hero h1 { max-width: 850px; font-size: clamp(58px, 7.2vw, 110px); }
.hero h1 em { color: var(--gold-light); font-weight: 500; }
.hero-copy { max-width: 630px; margin: 30px 0 36px; color: #c8c5bc; font-size: 16px; }
.hero-actions { display: grid; grid-auto-flow: column; justify-content: start; align-items: center; gap: 34px; }
.button { display: inline-grid; min-height: 52px; grid-auto-flow: column; align-items: center; justify-content: center; gap: 20px; padding: 0 25px; font-size: 11px; font-weight: 600; letter-spacing: 1.2px; text-transform: uppercase; transition: background .3s ease, color .3s ease, transform .3s ease; }
.button:hover { transform: translateY(-3px); }
.button-gold { background: var(--gold); color: #111; }
.button-gold:hover { background: var(--gold-light); }
.text-link { color: #d1cec5; font-size: 11px; letter-spacing: 1px; text-transform: uppercase; }
.text-link i { margin-left: 10px; color: var(--gold); }
.hero-stat { position: relative; z-index: 2; display: grid; grid-template-columns: 54px auto; align-items: center; gap: 18px; justify-self: end; padding-bottom: 20px; }
.stat-icon { display: grid; width: 54px; height: 54px; place-items: center; border: 1px solid var(--line); color: var(--gold-light); }
.hero-stat div { display: grid; }
.hero-stat strong { font-family: "Cormorant Garamond", serif; font-size: 24px; }
.hero-stat small { color: var(--muted); font-size: 10px; letter-spacing: 1px; text-transform: uppercase; }
.scroll-cue { position: absolute; z-index: 3; bottom: 28px; left: 50%; display: grid; width: 24px; height: 40px; place-items: center; border: 1px solid rgba(255,255,255,.25); border-radius: 14px; }
.scroll-cue span { width: 3px; height: 7px; border-radius: 3px; background: var(--gold); animation: scroll 1.7s infinite; }

.section { position: relative; display: grid; grid-template-columns: minmax(120px, .22fr) minmax(0, 1fr); gap: clamp(30px, 5vw, 80px); padding: 120px clamp(24px, 8vw, 130px); }
.section-label { padding-top: 10px; color: #817b6e; font-size: 9px; letter-spacing: 1.8px; text-transform: uppercase; }
.intro { grid-template-areas: "label heading" ". copy" ". principles"; }
.intro .section-label { grid-area: label; }
.intro-heading { grid-area: heading; max-width: 860px; }
.intro-heading h2, .approach-content h2 { font-size: clamp(44px, 5vw, 72px); }
.intro-copy { grid-area: copy; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 50px; max-width: 950px; color: #57544d; }
.intro-copy p { margin: 0; }
.intro-copy p:first-child { color: #22211e; font-size: 19px; }
.principles { grid-area: principles; display: grid; grid-template-columns: repeat(3, 1fr); max-width: 950px; margin-top: 25px; border-top: 1px solid #cec7b9; border-bottom: 1px solid #cec7b9; }
.principles div { display: grid; gap: 3px; padding: 25px 20px; border-right: 1px solid #cec7b9; }
.principles div:first-child { padding-left: 0; }
.principles div:last-child { border: 0; }
.principles strong { font-family: "Cormorant Garamond", serif; font-size: 25px; }
.principles span { color: #777166; font-size: 10px; letter-spacing: .8px; text-transform: uppercase; }

.dark-section {
    color: var(--white);
    background:
        linear-gradient(rgba(12,12,10,.84), rgba(12,12,10,.84)),
        url("template/bgcontact.jpg") center / cover no-repeat;
    overflow: hidden;
}
.dark-section .section-label { color: #757268; }
.gold-grid { position: absolute; inset: -20%; opacity: .22; background: linear-gradient(135deg, transparent 0 46%, rgba(214,167,63,.18) 47%, transparent 48% 100%), repeating-linear-gradient(90deg, transparent 0 179px, rgba(214,167,63,.08) 180px); }
.solutions { grid-template-areas: "label heading" ". cards"; }
.solutions .section-label { grid-area: label; position: relative; }
.solutions-heading { grid-area: heading; position: relative; display: grid; grid-template-columns: 1fr .55fr; align-items: end; gap: 55px; }
.solutions-heading .eyebrow { grid-column: 1 / -1; margin-bottom: -25px; }
.solutions-heading h2 { font-size: clamp(50px, 5.5vw, 80px); }
.solutions-heading > p:last-child { color: #aaa69c; }
.solution-grid { grid-area: cards; position: relative; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 1px; margin-top: 35px; background: var(--line); }
.solution-card { position: relative; min-height: 390px; padding: 45px 36px; background: #171714; transition: background .3s ease; overflow: hidden; }
.solution-card:hover { background: #211e16; }
.solution-card::after { content: ""; position: absolute; right: -65px; bottom: -65px; width: 130px; height: 130px; border: 1px solid var(--line); transform: rotate(45deg); }
.card-number { position: absolute; top: 25px; right: 28px; color: #6e695e; font-family: "Cormorant Garamond", serif; }
.solution-card > i { margin: 35px 0 45px; color: var(--gold-light); font-size: 29px; }
.solution-card h3 { margin-bottom: 18px; font-size: 29px; }
.solution-card p { margin: 0; color: #a9a59b; font-size: 13px; }
.card-line { position: absolute; bottom: 0; left: 0; width: 0; height: 2px; background: var(--gold); transition: width .4s ease; }
.solution-card:hover .card-line { width: 100%; }

.approach { grid-template-areas: "label quote" ". content"; background: #e8e3d8; }
.approach .section-label { grid-area: label; }
.approach-quote { grid-area: quote; display: grid; grid-template-columns: 55px 1fr; gap: 28px; max-width: 900px; padding-bottom: 65px; border-bottom: 1px solid #c8c0b2; }
.approach-quote i { color: var(--gold); font-size: 29px; }
.approach-quote blockquote { font-size: clamp(38px, 4vw, 60px); }
.approach-content { grid-area: content; display: grid; grid-template-columns: .75fr 1fr; gap: 70px; padding-top: 30px; }
.approach-content > p { color: #5d5950; }
.value-list { grid-column: 2; display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid #c8c0b2; }
.value-list div { display: grid; grid-template-columns: 35px 1fr; align-items: center; padding: 20px 0; border-bottom: 1px solid #c8c0b2; }
.value-list div:nth-child(odd) { margin-right: 30px; }
.value-list span { color: #937532; font-size: 10px; }
.value-list strong { font-family: "Cormorant Garamond", serif; font-size: 22px; }

.contact {
    isolation: isolate;
    min-height: 700px;
    grid-template-columns: 1fr .7fr;
    align-items: center;
    color: var(--white);
    background:
        linear-gradient(90deg, rgba(7,7,6,.97), rgba(7,7,6,.78)),
        url("template/bggold2.jpg") center / cover no-repeat;
    overflow: hidden;
}
.contact-pattern { position: absolute; z-index: 0; inset: 0; opacity: .3; background: radial-gradient(circle at 20% 50%, rgba(214,167,63,.24), transparent 28%), repeating-linear-gradient(135deg, transparent 0 75px, rgba(214,167,63,.07) 76px); }
.contact-heading, .contact-details, .contact-form-wrap { position: relative; z-index: 2; }
.contact-heading h2 { font-size: clamp(52px, 6vw, 86px); }
.contact-heading > p:not(.eyebrow) { max-width: 550px; margin: 28px 0 35px; color: #aaa69c; }
.contact-details { display: grid; align-content: center; gap: 0; border: 1px solid var(--line); background: rgba(18,18,16,.82); backdrop-filter: blur(8px); }
.detail-item { display: grid; grid-template-columns: 45px 1fr; gap: 18px; padding: 28px; border-bottom: 1px solid var(--line); }
.detail-item:last-child { border: 0; }
.detail-item > i { margin-top: 8px; color: var(--gold-light); }
.detail-item div { display: grid; }
.detail-item small { margin-bottom: 5px; color: #77746d; font-size: 9px; letter-spacing: 1.5px; text-transform: uppercase; }
.detail-item strong, .detail-item a, .detail-item address { color: #e2ded4; font-family: "Cormorant Garamond", serif; font-size: 19px; font-style: normal; line-height: 1.5; }
.detail-item a { color: var(--gold-light); }
.contact-form-wrap { grid-column: 1 / -1; display: grid; grid-template-columns: .55fr 1fr; gap: clamp(35px, 7vw, 100px); margin-top: 45px; padding-top: 70px; border-top: 1px solid var(--line); }
.form-intro span, .form-field label { color: var(--gold-light); font-size: 9px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; }
.form-intro h3 { max-width: 410px; margin: 14px 0 20px; font-size: clamp(34px, 4vw, 52px); }
.form-intro p { max-width: 390px; color: #aaa69c; font-size: 13px; }
.contact-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.form-field { display: grid; gap: 8px; }
.form-wide { grid-column: 1 / -1; }
.form-field input, .form-field textarea { width: 100%; border: 1px solid rgba(214,167,63,.25); border-radius: 0; outline: 0; padding: 13px 15px; color: var(--white); background: rgba(12,12,10,.78); font: inherit; font-size: 14px; transition: border-color .25s ease, background .25s ease; }
.form-field input { min-height: 50px; }
.form-field textarea { resize: vertical; }
.form-field input:focus, .form-field textarea:focus { border-color: var(--gold); background: rgba(20,19,15,.95); }
.captcha-field { align-content: end; }
.captcha-control { display: grid; grid-template-columns: 130px 42px minmax(100px, 1fr); gap: 8px; }
.captcha-control img { width: 130px; height: 50px; object-fit: contain; background: var(--white); }
.captcha-refresh { display: grid; width: 42px; height: 50px; place-items: center; border: 1px solid var(--line); color: var(--gold-light); background: transparent; cursor: pointer; }
.form-submit { grid-column: 1 / -1; display: grid; align-content: end; justify-items: start; gap: 8px; }
.form-submit .button { border: 0; cursor: pointer; }
.form-submit .button:disabled { cursor: wait; opacity: .6; }
.form-status { min-height: 22px; margin: 0; color: #c7c2b7; font-size: 12px; }
.form-status.error { color: #f0a89d; }
.form-status.success { color: var(--gold-light); }

footer { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 35px; padding: 28px clamp(24px, 5vw, 78px); color: #aaa69c; background: #050505; border-top: 1px solid #24231f; }
.footer-brand { grid-template-columns: 45px auto; }
.footer-brand .brand-mark { height: 38px; }
.footer-brand .brand-mark img { width: 45px; }
.footer-brand .brand-copy strong { font-size: 18px; }
.footer-brand .brand-copy small { font-size: 6px; }
footer p { justify-self: center; font-size: 9px; letter-spacing: 1.2px; text-transform: uppercase; }
.back-top { display: grid; width: 42px; height: 42px; place-items: center; border: 1px solid var(--line); color: var(--gold-light); }

.reveal { opacity: 0; transform: translateY(28px); transition: opacity .8s ease, transform .8s ease; }
.reveal.visible { opacity: 1; transform: translateY(0); }

@keyframes scroll { 0%, 100% { transform: translateY(-5px); opacity: .4; } 50% { transform: translateY(5px); opacity: 1; } }

@media (max-width: 900px) {
    .site-header { grid-template-columns: 1fr auto; }
    .menu-toggle { display: grid; place-items: center; }
    .site-nav { position: absolute; top: 95px; right: 20px; display: none; width: min(300px, calc(100vw - 40px)); grid-auto-flow: row; justify-content: stretch; gap: 0; padding: 18px 25px; background: #11110f; border: 1px solid var(--line); }
    .site-nav.open { display: grid; }
    .site-nav a { padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,.08); }
    .hero { grid-template-columns: 1fr; }
    .hero::after { display: none; }
    .hero-stat { display: none; }
    .section { grid-template-columns: 1fr; gap: 35px; padding-top: 85px; padding-bottom: 85px; }
    .intro, .solutions, .approach { grid-template-areas: "label" "heading" "copy" "principles"; }
    .solutions { grid-template-areas: "label" "heading" "cards"; }
    .approach { grid-template-areas: "label" "quote" "content"; }
    .solutions-heading { grid-template-columns: 1fr; gap: 25px; }
    .solutions-heading .eyebrow { margin-bottom: 0; }
    .solution-grid { grid-template-columns: 1fr; }
    .solution-card { min-height: 330px; }
    .approach-content { grid-template-columns: 1fr; gap: 25px; }
    .value-list { grid-column: 1; }
    .contact { grid-template-columns: 1fr; }
    .contact-form-wrap { grid-column: 1; grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
    .site-header { padding: 14px 18px; }
    .brand { grid-template-columns: 48px auto; gap: 10px; }
    .brand-mark { height: 45px; }
    .brand-mark img { width: 50px; }
    .brand-copy strong { font-size: 21px; }
    .brand-copy small { max-width: 155px; font-size: 6.5px; }
    .site-nav { top: 75px; }
    .hero { min-height: 760px; padding: 145px 24px 80px; align-items: center; }
    .hero h1 { font-size: 52px; }
    .hero-copy { font-size: 14px; }
    .hero-actions { grid-auto-flow: row; justify-items: start; gap: 22px; }
    .scroll-cue { display: none; }
    .section { padding: 75px 24px; }
    .intro-copy { grid-template-columns: 1fr; gap: 20px; }
    .principles { grid-template-columns: 1fr; }
    .principles div, .principles div:first-child { padding: 17px 0; border-right: 0; border-bottom: 1px solid #cec7b9; }
    .principles div:last-child { border-bottom: 0; }
    .solution-card { padding: 35px 28px; }
    .approach-quote { grid-template-columns: 1fr; gap: 18px; }
    .value-list { grid-template-columns: 1fr; }
    .value-list div:nth-child(odd) { margin-right: 0; }
    .contact { min-height: auto; }
    .contact-heading h2 { font-size: 50px; }
    .detail-item { padding: 22px 18px; grid-template-columns: 30px 1fr; gap: 10px; }
    .contact-form { grid-template-columns: 1fr; }
    .form-wide { grid-column: 1; }
    .captcha-control { grid-template-columns: 112px 42px minmax(80px, 1fr); }
    .captcha-control img { width: 112px; }
    footer { grid-template-columns: 1fr auto; }
    footer p { display: none; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
    .reveal { opacity: 1; transform: none; }
}