@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700&family=Manrope:wght@300;400;500;600;700&family=Outfit:wght@400;500;600;700&display=swap');

:root {
    --lx-font-body: 'Manrope', system-ui, sans-serif;
    --lx-font-display: 'Playfair Display', Georgia, serif;
    --lx-font-alt: 'Outfit', system-ui, sans-serif;
    --lx-navy: #0B192C;
    --lx-navy-deep: #050B14;
    --lx-gold: #C8A97E;
    --lx-gold-light: #E5D3B3;
    --lx-ivory: #F8F5F0;
    --lx-white: #FFFFFF;
    --lx-muted: #6B7280;
    --lx-line: #E8E1D4;
    --lx-success: #059669;
    --lx-danger: #B42318;
    --lx-warning: #9A6700;
    --lx-shadow-sm: 0 12px 34px rgba(11, 25, 44, .08);
    --lx-shadow-lg: 0 24px 70px rgba(11, 25, 44, .13);

    /* Compatibility aliases for the existing Laravel modules. */
    --forest: var(--lx-navy);
    --forest-dark: var(--lx-navy-deep);
    --forest-soft: #20324A;
    --gold: var(--lx-gold);
    --cream: var(--lx-ivory);
    --white: var(--lx-white);
    --text: var(--lx-navy);
    --muted: var(--lx-muted);
    --border: var(--lx-line);
    --danger: var(--lx-danger);
    --success: var(--lx-success);
    --warning: var(--lx-warning);
    --shadow: var(--lx-shadow-lg);
    --lux-forest: var(--lx-navy);
    --lux-forest-dark: var(--lx-navy-deep);
}

*, *::before, *::after { box-sizing: border-box; }
html { min-height: 100%; scroll-behavior: smooth; }
body {
    min-height: 100%;
    margin: 0;
    color: var(--lx-navy);
    background: var(--lx-ivory);
    font-family: var(--lx-font-body);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}
body, button, input, select, textarea { font-family: var(--lx-font-body); }
h1, h2, h3, h4, h5, h6, .font-display { font-family: var(--lx-font-display); font-weight: 400; }
.font-sans-alt { font-family: var(--lx-font-alt); }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
img { display: block; max-width: 100%; }
svg { flex: 0 0 auto; }
.container { width: min(1240px, calc(100% - 40px)); margin-inline: auto; }

.grain::before {
    position: fixed;
    inset: 0;
    z-index: 9999;
    content: "";
    pointer-events: none;
    opacity: .025;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E");
}

.luxenest-logo-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    border-radius: 10px;
    text-decoration: none;
}
.luxenest-logo-link--dark {
    padding: 6px;
    background: var(--lx-ivory);
}
.luxenest-logo { width: auto; object-fit: contain; }
.luxenest-logo--sm { height: 40px; }
.luxenest-logo--md { height: 48px; }
.luxenest-logo--lg { height: 60px; }
.luxenest-logo--xl { height: 100px; }

.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 46px;
    padding: 0 20px;
    border: 1px solid transparent;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
    transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease, border-color .2s ease;
}
.button:hover { transform: translateY(-1px); }
.button-primary, .button-forest {
    border-color: var(--lx-navy);
    background: var(--lx-navy);
    color: var(--lx-ivory);
}
.button-primary:hover, .button-forest:hover { background: var(--lx-navy-deep); box-shadow: var(--lx-shadow-sm); }
.button-secondary, .button-light {
    border-color: var(--lx-line);
    background: var(--lx-white);
    color: var(--lx-navy);
}
.button-secondary:hover, .button-light:hover { border-color: var(--lx-gold); background: #fffdf9; }
.button-quiet { border-color: transparent; background: transparent; color: var(--lx-muted); }
.button-gold {
    border-color: var(--lx-gold);
    background: var(--lx-gold);
    color: var(--lx-navy);
}
.button-gold:hover { background: #B89563; box-shadow: 0 10px 30px rgba(200,169,126,.28); }
.button-outline-light { border-color: rgba(255,255,255,.45); background: transparent; color: #fff; }
.button-block { width: 100%; }

input, select, textarea {
    color: var(--lx-navy);
}
input:focus, select:focus, textarea:focus {
    outline: none;
    border-color: var(--lx-gold) !important;
    box-shadow: 0 0 0 3px rgba(200, 169, 126, .17) !important;
}

.flash {
    margin-bottom: 22px;
    padding: 14px 16px;
    border: 1px solid var(--lx-line);
    border-radius: 12px;
    background: var(--lx-white);
    font-size: 14px;
    line-height: 1.55;
    box-shadow: 0 8px 24px rgba(11,25,44,.04);
}
.flash-success { border-color: rgba(5,150,105,.25); background: #ECFDF5; color: #065F46; }
.flash-error { border-color: rgba(180,35,24,.22); background: #FFF1F2; color: var(--lx-danger); }

.pagination { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.pagination-link {
    display: inline-flex;
    min-height: 40px;
    align-items: center;
    padding: 0 15px;
    border: 1px solid var(--lx-line);
    border-radius: 999px;
    background: var(--lx-white);
    color: var(--lx-navy);
    text-decoration: none;
}
.pagination-link:hover { border-color: var(--lx-gold); }
.pagination-link.is-disabled { opacity: .45; }
.pagination-summary { color: var(--lx-muted); font-size: 13px; }

@media (max-width: 600px) {
    .container { width: min(100% - 28px, 1240px); }
    .pagination-summary { display: none; }
}
