/**
 * Emerald - Global Stylesheet
 * All values from Figma CSS export. Frame: 1440px.
 * @package Emerald
 * @since 2.0.0
 */

/* RESET & FLATSOME HIDE */
#wrapper, #header, #footer, .header-wrapper, .footer-wrapper,
header.header, footer.footer, .absolute-footer,
.page-title, .page-title-inner, #main { display: none !important; }

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
a { color: inherit; text-decoration: none; }
ul, ol, li { list-style: none; margin: 0; padding: 0; }
button { font-family: inherit; }

body.emerald-page {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    background: #080705; color: #F5F5EF; min-height: 100vh;
    -webkit-font-smoothing: antialiased;
}

/* CSS VARIABLES */
:root {
    --em-bg: #080705;
    --em-cream: #F0E8A8;
    --em-white: #FDFDFC;
    --em-light: #F5F5EF;
    --em-dark: #0E0D0A;
    --em-dark-text: #23221A;
    --em-card-bg: #0E0D0A;
    --em-container-bg: #0E0D0A;
    --em-copyright: #EDECE3;
    --em-glow: 0px 0px 8px 2px rgba(236,226,147,0.25), inset 0px 0px 8px 2px rgba(237,226,130,0.35);
    --em-drop: 0px 8px 16px -2px rgba(20,22,31,0.4);
    --em-transition: 0.3s cubic-bezier(0.4,0,0.2,1);
}

/* =================================================================
   NAV HOLDER - gradient container
   Figma: padding 20px, gap 10px, gradient bg
   ================================================================= */
.em-nav-holder {
    position: sticky; top: 0; z-index: 999;
    display: flex; flex-direction: column; align-items: flex-start;
    padding: 20px; gap: 10px;
    max-width: 2560px;
    background: linear-gradient(180deg, #080705 85%, rgba(8,7,5,0) 100%);
}

/* =================================================================
   TOP BAR - cream pill
   Figma: h40, padding 4px 64px, bg #F0E8A8, radius 16px
   ================================================================= */
.em-topbar {
    width: 100%; height: 40px;
    display: flex !important; flex-wrap: nowrap !important;
    justify-content: space-between; align-items: center;
    padding: 4px 64px;
    background: var(--em-cream);
    box-shadow: var(--em-drop);
    border-radius: 16px;
    color: var(--em-dark-text);
}
.em-topbar__left {
    display: flex !important; flex-wrap: nowrap; align-items: center; gap: 32px;
    height: 32px; flex-shrink: 0;
}
.em-topbar__right {
    display: flex !important; flex-wrap: nowrap; align-items: center;
    justify-content: flex-end; gap: 32px; height: 32px; flex-shrink: 0;
}
.em-topbar__phone {
    display: flex; align-items: center; gap: 8px;
    color: var(--em-dark-text); transition: opacity var(--em-transition);
}
.em-topbar__phone span {
    font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 400;
    line-height: 150%; letter-spacing: -0.01em;
}
.em-topbar__phone svg { stroke: var(--em-dark-text); width: 24px; height: 24px; }
.em-topbar__phone:hover { color: #4A4730; }
.em-topbar__phone:hover svg { stroke: #4A4730; }
.em-topbar__schedule {
    display: flex; align-items: center; gap: 8px; color: var(--em-dark-text);
}
.em-topbar__schedule span {
    font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 400;
    line-height: 150%; letter-spacing: -0.01em;
}
.em-topbar__schedule svg { stroke: var(--em-dark-text); width: 24px; height: 24px; }
.em-topbar__love {
    display: inline-flex; align-items: center; gap: 8px;
    color: var(--em-dark-text); transition: opacity var(--em-transition);
    line-height: 1; padding: 0; margin: 0;
}
.em-topbar__love-text {
    font-family: 'Inter', sans-serif; font-size: 16px; font-weight: 400;
    line-height: 1; letter-spacing: -0.01em;
}
.em-topbar__love svg { stroke: var(--em-dark-text); width: 20px; height: 20px; vertical-align: middle; }
.em-topbar__love:hover { color: #4A4730; }
.em-topbar__love:hover svg { stroke: #4A4730; }
.em-topbar__lang {
    display: inline-flex; align-items: center; gap: 4px;
    position: relative; line-height: 1; padding: 0; margin: 0;
}
.em-topbar__lang-label {
    font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 400;
    line-height: 1; letter-spacing: -0.01em; color: var(--em-dark-text);
}
.em-topbar__lang-btn {
    display: inline-flex; align-items: center; gap: 4px;
    background: none; border: none; cursor: pointer;
    padding: 0; margin: 0; color: var(--em-dark-text); line-height: 1;
    vertical-align: middle;
}
.em-topbar__lang-btn span {
    font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 700; line-height: 1;
}
.em-topbar__lang-btn svg { stroke: var(--em-dark-text); width: 12px; height: 12px; vertical-align: middle; }
.em-topbar__lang-btn:hover { color: #4A4730; }
.em-topbar__lang-btn:hover svg { stroke: #4A4730; }

/* Mobile-only topbar elements - hidden on desktop */
.em-topbar__mob-heart,
.em-topbar__mob-schedule,
.em-topbar__mob-lang { display: none; }

.em-topbar__lang-drop {
    position: absolute; top: calc(100% + 8px); right: 0;
    background: var(--em-cream); border-radius: 8px; padding: 6px 0;
    min-width: 120px; z-index: 1000; box-shadow: var(--em-drop);
    opacity: 0; visibility: hidden; transform: translateY(-4px);
    transition: opacity var(--em-transition), visibility var(--em-transition), transform var(--em-transition);
}
.em-topbar__lang-drop.is-open { opacity: 1; visibility: visible; transform: translateY(0); }
.em-topbar__lang-drop a {
    display: block; padding: 6px 16px;
    font-family: 'Inter', sans-serif; font-size: 14px; color: var(--em-dark-text);
    transition: background var(--em-transition);
}
.em-topbar__lang-drop a:hover { background: rgba(8,7,5,0.08); }
.em-topbar__lang-drop li.is-active a { font-weight: 700; }

/* =================================================================
   HEADER - dark bar with inner glow
   Figma: padding 16px 64px, h58, bg #1B1A14, radius 16px
   ================================================================= */
.em-header {
    width: 100%;
    background: var(--em-dark);
    box-shadow: var(--em-glow);
    border-radius: 16px;
    filter: drop-shadow(0px 2px 4px rgba(0,0,0,0.2));
}
.em-header__inner {
    display: flex !important; flex-wrap: nowrap;
    justify-content: space-between; align-items: center;
    padding: 12px 64px; min-height: 58px;
}
.em-header__logo {
    font-family: 'Engravers MT', 'Georgia', 'Times New Roman', serif;
    font-size: 24px; font-weight: 500; line-height: 1;
    letter-spacing: -0.02em; text-transform: uppercase; color: var(--em-cream);
    margin: 0; padding: 0;
}
.em-header__logo img,
.em-header__logo-img { height: auto; max-height: 100%; width: auto; display: block; }
.em-header__nav { display: none; }
.em-header__menu {
    display: flex !important; align-items: center !important; gap: 40px;
    margin: 0 !important; padding: 0 !important;
}
.em-header__menu li {
    margin: 0 !important; padding: 0 !important; line-height: 1;
}
.em-header__menu a {
    font-family: 'Inter', sans-serif; font-size: 16px; font-weight: 700;
    line-height: 1; color: var(--em-cream);
    transition: opacity var(--em-transition); position: relative;
    padding: 0 !important; margin: 0 !important;
    display: inline-flex; align-items: center;
}
.em-header__menu a span {
    line-height: 1;
}
.em-header__menu a::after {
    content: ''; position: absolute; bottom: -2px; left: 0; width: 0; height: 1px;
    background: var(--em-cream); transition: width var(--em-transition);
}
.em-header__menu a:hover::after { width: 100%; }
.em-header__toggle {
    display: flex; flex-direction: column; justify-content: center; gap: 5px;
    width: 28px; height: 28px; background: none; border: none; cursor: pointer; padding: 0;
}
.em-header__bar {
    display: block; width: 100%; height: 2px;
    background: var(--em-cream); transition: transform var(--em-transition), opacity var(--em-transition);
}
.em-header__toggle.is-active .em-header__bar:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.em-header__toggle.is-active .em-header__bar:nth-child(2) { opacity: 0; }
.em-header__toggle.is-active .em-header__bar:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.em-mobile-menu {
    display: none; background: var(--em-dark);
    border-top: 1px solid rgba(240,232,168,0.15);
    padding: 16px 64px; border-radius: 0 0 16px 16px;
}
.em-mobile-menu.is-open { display: block; }
.em-mobile-menu li { border-bottom: 1px solid rgba(240,232,168,0.1); }
.em-mobile-menu li:last-child { border-bottom: none; }
.em-mobile-menu a {
    display: block; padding: 14px 0;
    font-family: 'Inter', sans-serif; font-size: 16px; font-weight: 700;
    color: var(--em-cream); transition: opacity var(--em-transition);
}
.em-mobile-menu a:hover { opacity: 0.7; }

/* =================================================================
   FOOTER
   Figma: padding 120px 64px 64px, gap 64px, bg #080705
   ================================================================= */
.em-footer {
    display: flex; flex-direction: column; justify-content: flex-end;
    align-items: center; padding: 120px 64px 64px; gap: 64px;
    background: var(--em-bg);
}
.em-footer__inner {
    max-width: 1312px; width: 100%;
    display: flex; flex-direction: column; align-items: center; gap: 64px;
}
.em-footer__columns {
    width: 100%; display: flex; justify-content: space-between; align-items: flex-start;
}
/* Desktop layout wrapper */
.em-footer__desktop {
    width: 100%; display: flex; justify-content: space-between; align-items: flex-start;
}
/* Mobile layout wrapper - hidden on desktop */
.em-footer__mobile { display: none; }
/* Left column: 244px, gap 24px */
.em-footer__brand-col {
    display: flex; flex-direction: column; align-items: flex-start;
    width: 244px; flex-shrink: 0; gap: 24px;
}
.em-footer__brand {
    font-family: 'Engravers MT', 'Georgia', 'Times New Roman', serif;
    font-size: 24px; font-weight: 500; line-height: 110%;
    letter-spacing: -0.02em; text-transform: uppercase; color: var(--em-cream);
}
/* Address info: gap 10px */
.em-footer__info {
    display: flex; flex-direction: column; align-items: flex-start; gap: 10px; width: 100%;
}
.em-footer__label {
    font-family: 'Inter', sans-serif; font-size: 16px; font-weight: 700;
    line-height: 140%; color: var(--em-white);
}
.em-footer__label--cream { color: var(--em-cream); }
.em-footer__text {
    font-family: 'Inter', sans-serif; font-size: 16px; font-weight: 400;
    line-height: 140%; color: var(--em-light);
}
/* Contact: gap 4px */
.em-footer__contact {
    display: flex; flex-direction: column; align-items: flex-start; gap: 4px; width: 100%;
}
.em-footer__contact a {
    font-family: 'Inter', sans-serif; font-size: 16px; font-weight: 400;
    line-height: 140%; color: var(--em-light); transition: opacity var(--em-transition);
}
.em-footer__contact a:hover { opacity: 0.7; }
/* Right columns: gap 64px */
.em-footer__links {
    display: flex; flex-direction: row; align-items: flex-start; gap: 64px;
}
.em-footer__col {
    display: flex; flex-direction: column; align-items: flex-start; gap: 24px;
}
/* Col title: Bricolage Grotesque 20px 500 #F0E8A8 */
.em-footer__col-title {
    font-family: 'Bricolage Grotesque', 'Georgia', serif;
    font-size: 20px; font-weight: 500; line-height: 98%; color: var(--em-cream);
    margin: 0; padding: 0;
}
/* Col links: gap 16px */
.em-footer__col-list {
    display: flex; flex-direction: column; align-items: flex-start; gap: 16px;
}
.em-footer__col-list a {
    font-family: 'Inter', sans-serif; font-size: 16px; font-weight: 400;
    line-height: 150%; letter-spacing: -0.01em; color: var(--em-light);
    transition: opacity var(--em-transition);
}
.em-footer__col-list a:hover { opacity: 0.7; }
/* Watermark */
.em-footer__watermark {
    font-family: 'Engravers MT', 'Georgia', serif;
    font-size: clamp(60px, 10vw, 140px); font-weight: 500;
    letter-spacing: -0.02em; text-transform: uppercase;
    color: var(--em-card-bg); text-align: center; width: 100%;
    overflow: hidden; user-select: none; line-height: 1;
}
/* Copyright */
.em-footer__copyright { text-align: center; width: 100%; }
.em-footer__copyright p {
    font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 300;
    line-height: 145%; letter-spacing: -0.02em; color: var(--em-copyright); margin: 0;
}

/* =================================================================
   DESKTOP (768px+)
   ================================================================= */
@media (min-width: 768px) {
    .em-header__nav {
        display: flex !important; align-items: center !important; height: 100%;
        margin: 0 !important; padding: 0 !important;
    }
    .em-header__nav ul {
        margin: 0 !important; padding: 0 !important;
    }
    .em-header__toggle { display: none; }
    .em-footer__mobile { display: none !important; }
    .em-footer__desktop { display: flex !important; }
}

/* =================================================================
   MOBILE (<768px)
   ================================================================= */
@media (max-width: 767px) {
    .em-nav-holder { padding: 12px 12px 8px; }

    /* Topbar mobile: hide left/right groups, show topbar as 3-col layout */
    .em-topbar {
        padding: 4px 16px; border-radius: 12px; height: 44px;
        display: flex !important; justify-content: space-between; align-items: center;
    }
    .em-topbar__left { display: none !important; }
    .em-topbar__right { display: none !important; }

    /* Mobile-specific elements inside topbar */
    .em-topbar__mob-heart,
    .em-topbar__mob-schedule,
    .em-topbar__mob-lang {
        display: flex !important;
        align-items: center;
    }
    .em-topbar__mob-heart { flex-shrink: 0; }
    .em-topbar__mob-heart svg { stroke: var(--em-dark); width: 24px; height: 24px; }
    .em-topbar__mob-schedule {
        gap: 8px; color: var(--em-dark);
        font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 400;
        line-height: 1;
    }
    .em-topbar__mob-schedule svg { stroke: var(--em-dark); width: 20px; height: 20px; }
    .em-topbar__mob-lang {
        gap: 4px; flex-shrink: 0;
        font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 700;
        line-height: 1; color: var(--em-dark);
    }
    .em-topbar__mob-lang svg { stroke: var(--em-dark); width: 14px; height: 14px; }
    .em-topbar__mob-lang a {
        display: inline-flex; align-items: center; gap: 4px;
        color: var(--em-dark); font-weight: 700;
    }

    .em-header { border-radius: 12px; }
    .em-header__inner {
        padding: 10px 16px; min-height: 52px;
        display: flex !important; align-items: center !important;
    }
    .em-header__logo { line-height: 1; margin: 0 !important; padding: 0 !important; }
    .em-header__toggle {
        margin: 0 !important; padding: 0 !important;
        align-self: center !important;
    }
    .em-mobile-menu { padding: 16px; border-radius: 0 0 12px 12px; }

    /* Footer mobile */
    .em-footer { padding: 48px 20px 32px; gap: 40px; }
    .em-footer__inner { gap: 40px; }
    .em-footer__desktop { display: none !important; }
    .em-footer__mobile {
        display: flex !important;
        flex-direction: column;
        width: 100%;
        gap: 0;
    }
    .em-footer__watermark { font-size: clamp(40px, 15vw, 80px); }

    /* Brand - centered */
    .em-footer__mob-brand {
        display: flex; justify-content: center;
        text-align: center;
        padding: 0 0 32px;
        border-bottom: 1px solid rgba(240, 232, 168, 0.12);
    }
    .em-footer__mob-brand .em-footer__logo-img { margin: 0 auto; }

    /* Accordion sections */
    .em-footer__mob-section {
        border-bottom: 1px solid rgba(240, 232, 168, 0.12);
    }
    .em-footer__mob-toggle {
        display: flex;
        align-items: center;
        justify-content: space-between;
        width: 100%;
        padding: 16px 0;
        background: none;
        border: none;
        cursor: pointer;
        font-family: 'Bricolage Grotesque', 'Georgia', serif;
        font-size: 18px;
        font-weight: 500;
        line-height: 98%;
        color: var(--em-cream);
    }
    .em-footer__mob-chevron {
        stroke: var(--em-cream);
        transition: transform var(--em-transition);
        flex-shrink: 0;
    }
    .em-footer__mob-toggle[aria-expanded="true"] .em-footer__mob-chevron {
        transform: rotate(180deg);
    }
    .em-footer__mob-content {
        display: flex;
        flex-direction: column;
        gap: 10px;
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1),
                    padding 0.4s cubic-bezier(0.4, 0, 0.2, 1);
        padding: 0;
    }
    .em-footer__mob-content.is-open {
        max-height: 300px;
        padding: 0 0 16px;
    }
    .em-footer__mob-content a {
        font-family: 'Inter', sans-serif;
        font-size: 16px;
        font-weight: 400;
        line-height: 150%;
        letter-spacing: -0.01em;
        color: var(--em-light);
        transition: opacity var(--em-transition);
    }
    .em-footer__mob-content a:hover { opacity: 0.7; }

    /* Follow us - centered, always visible */
    .em-footer__mob-follow {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 16px;
        padding: 24px 0 0;
    }
    .em-footer__mob-follow .em-footer__col-title {
        font-size: 18px;
        text-align: center;
    }
    .em-footer__mob-follow .em-footer__col-list {
        align-items: center;
    }
}