@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;600&family=Playfair+Display:ital,wght@0,400;0,700;1,400&display=swap');

:root {
    --gold: #bfa86a;
    --dark: #121212;
    --grey: #757575;
    --soft-white: #fafafa;
    --white: #ffffff;
    --transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { font-family: 'Montserrat', sans-serif; color: var(--dark); background: var(--white); line-height: 1.8; }

/* Navigation */
header {
    display: flex; justify-content: space-between; align-items: center;
    padding: 10px 8%; background: rgba(255,255,255,0.98);
    position: fixed; width: 100%; top: 0; z-index: 1000;
    border-bottom: 1px solid rgba(0,0,0,0.05);
}
.logo img { height: 150px; transition: var(--transition); }
nav a { text-decoration: none; color: var(--dark); margin-left: 40px; font-weight: 900; text-transform: uppercase; font-size: 1.0rem; letter-spacing: 2px; transition: var(--transition); }
nav a:hover { color: var(--gold); }

/* Typography */
h1, h2, h3 { font-family: 'Playfair Display', serif; font-weight: 400; }
.section-title { font-size: 3rem; margin-bottom: 10px; text-align: center; }
.section-subtitle { display: block; text-align: center; color: var(--gold); text-transform: uppercase; letter-spacing: 4px; font-size: 0.8rem; margin-bottom: 60px; }

/* Layout */
.container { max-width: 1200px; margin: 0 auto; padding: 0 20px; }
section { padding: 140px 0; }
.btn { display: inline-block; padding: 18px 40px; border: 1px solid var(--dark); text-decoration: none; color: var(--dark); text-transform: uppercase; font-size: 0.7rem; letter-spacing: 2px; transition: var(--transition); }
.btn:hover { background: var(--dark); color: var(--white); }

/* Grid Systems */
.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.grid-3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 40px; }

/* Footer */
footer { background: var(--dark); color: var(--white); padding: 80px 0 40px; text-align: center; }
.footer-logo { height: 180px; margin-bottom: 20px; filter: brightness(0) invert(1); }
.footer-text { font-weight: 300; font-size: 0.8rem; color: #888; letter-spacing: 1px; }

@media (max-width: 768px) {
    .grid-2 { grid-template-columns: 1fr; gap: 40px; }
    h1 { font-size: 2.5rem !important; }
}