header { position: sticky; top: 0; z-index: 5; backdrop-filter: blur(10px); background: #1b1c1e; border-bottom: 1px solid rgba(246, 200, 107, 0.25); box-shadow: 0 10px 24px rgba(6, 20, 24, 0.22); } .nav { max-width: 1100px; margin: 0 auto; padding: 18px 24px; display: flex; position: relative; align-items: center; justify-content: space-between; gap: 24px; } .logo { font-family: "Playfair Display", serif; font-size: 3rem; letter-spacing: 0.08em; text-transform: uppercase; display: grid; gap: 6px; position: relative; padding-left: 12px; color: var(--cream, #f7f1e7); } .logo-title { display: inline-block; font-size: 1em; } .logo .est { font-size: 1rem; letter-spacing: 0.4em; color: rgba(247, 244, 239, 0.7); font-weight: 600; } .logo::before { content: ""; position: absolute; left: 0; top: 6px; width: 6px; height: calc(100% - 12px); border-radius: 999px; background: linear-gradient(180deg, var(--gold, #d8a45a), var(--copper, #c6684a)); } .logo-image { display: none; max-height: 64px; width: auto; } .logo.has-image .logo-image { display: block; } .logo.has-image::before { display: none; } .logo.has-image .logo-title, .logo.has-image .est { display: none; } .logo[data-style="coastal"] { font-family: "Work Sans", "Helvetica Neue", Arial, sans-serif; letter-spacing: 0.32em; font-weight: 600; } .logo[data-style="coastal"] .logo-title { font-size: 0.85em; } .logo[data-style="coastal"] .est { font-size: 0.7rem; letter-spacing: 0.45em; color: rgba(247, 244, 239, 0.65); } .logo[data-style="sunset"]::before { background: linear-gradient(180deg, #f2b86a, #b5622f); } .logo[data-style="sunset"] .logo-title { letter-spacing: 0.18em; font-size: 2.1rem; font-weight: 700; } .logo[data-style="sunset"] .est { letter-spacing: 0.45em; color: rgba(247, 201, 140, 0.85); } .nav-links { display: flex; gap: 0; font-size: 0.95rem; font-weight: 600; align-items: center; justify-content: center; flex-wrap: wrap; color: rgba(247, 244, 239, 0.92); } .nav-links a { display: inline-flex; align-items: center; padding: 6px 14px; color: inherit; letter-spacing: 0.02em; transition: color 0.2s ease, transform 0.2s ease, opacity 0.2s ease; opacity: 0.9; position: relative; } .nav-links a:hover { color: #ffffff; opacity: 1; transform: translateY(-1px); } .nav-links a::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: 2px; height: 1px; background: linear-gradient(90deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0)); transform: scaleX(0.35); transform-origin: center; opacity: 0; transition: transform 0.2s ease, opacity 0.2s ease; } .nav-links a:hover::after { transform: scaleX(1); opacity: 1; } .nav-links a + a::before { content: ""; width: 1px; height: 20px; background: rgba(255, 255, 255, 0.75); border-radius: 999px; position: absolute; left: 0; top: 50%; transform: translateY(-50%); } .nav-links a + a { padding-left: 16px; } .language-switch { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; min-width: 56px; padding: 0 14px; border-radius: 16px; border: 1px solid rgba(255, 255, 255, 0.14); background: linear-gradient(180deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.03)), rgba(9, 20, 28, 0.88); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08), 0 16px 28px rgba(2, 10, 16, 0.34); font-size: 0.74rem; font-weight: 700; color: var(--cream, #f7f1e7); white-space: nowrap; line-height: 1; backdrop-filter: blur(12px); } .language-switch::before { content: var(--language-flag, "🇬🇧"); display: inline-flex; align-items: center; justify-content: center; width: auto; height: auto; background: transparent; color: inherit; font-size: 1.15rem; letter-spacing: 0; box-shadow: none; flex: 0 0 auto; pointer-events: none; } .language-switch label { display: none; } .language-switch select { position: absolute; inset: 0; width: 100%; height: 100%; padding: 0; border-radius: inherit; border: none; background: transparent; font-family: inherit; font-weight: 700; font-size: 0; color: transparent; cursor: pointer; appearance: none; line-height: 1; outline: none; opacity: 0; } .visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); border: 0; white-space: nowrap; } .nav-login { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; min-width: 56px; padding: 0 14px; border-radius: 16px; border: 1px solid rgba(255, 255, 255, 0.14); background: linear-gradient(180deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.03)), rgba(9, 20, 28, 0.88); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08), 0 16px 28px rgba(2, 10, 16, 0.34); color: var(--cream, #f7f1e7); backdrop-filter: blur(12px); transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease; cursor: pointer; appearance: none; font: inherit; } .nav-login:hover { transform: translateY(-1px); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 18px 30px rgba(2, 10, 16, 0.38); } .nav-login:focus-visible, .menu-modal-close:focus-visible, .menu-modal-link:focus-visible { outline: 2px solid rgba(247, 191, 98, 0.95); outline-offset: 3px; } .nav-login-lines { display: inline-grid; gap: 4px; } .nav-login-lines span { display: block; width: 18px; height: 2px; border-radius: 999px; background: currentColor; opacity: 0.88; } .menu-modal { position: fixed; inset: 0; padding: 0; background: rgba(14, 18, 22, 0.96); backdrop-filter: blur(8px); z-index: 20; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity 0.22s ease, visibility 0.22s ease; } .menu-modal.is-open { opacity: 1; visibility: visible; pointer-events: auto; } .menu-modal-panel { width: 100%; min-height: 100vh; padding: 28px 22px 40px; display: flex; flex-direction: column; justify-content: flex-start; border: none; border-radius: 0; background: transparent; box-shadow: none; color: var(--cream, #f7f1e7); } .menu-modal-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 28px; } .menu-modal-title { margin: 0; font-family: "Playfair Display", serif; font-size: 1.55rem; letter-spacing: 0.08em; text-transform: uppercase; } .menu-modal-close { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, 0.12); background: transparent; color: var(--cream, #f7f1e7); cursor: pointer; appearance: none; font-size: 1.6rem; line-height: 1; } .menu-modal-list { display: grid; gap: 12px; width: 100%; margin-top: 8px; justify-items: center; } .menu-modal-link { display: flex; align-items: center; justify-content: center; gap: 14px; min-height: 64px; padding: 10px 0; border: none; background: transparent; transition: transform 0.2s ease, opacity 0.2s ease; width: 100%; text-align: center; } button.menu-modal-link { width: 100%; border: none; background: transparent; color: inherit; cursor: pointer; text-align: center; font: inherit; } .menu-modal-link:hover { transform: translateY(-1px); opacity: 0.82; } .menu-modal-link-text { font-size: 1.22rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.09em; } .nav-utility { display: inline-flex; align-items: center; gap: 10px; margin-left: 4px; } @media (min-width: 1181px) { .nav { max-width: 1420px; padding: 18px 28px; display: grid; grid-template-columns: auto minmax(280px, 1fr) auto; align-items: center; gap: 28px; } .logo { justify-self: start; } .nav-links { display: flex; justify-content: center; align-items: center; flex-wrap: nowrap; gap: 0; font-size: 0.92rem; } .nav-links a { padding: 6px 14px; min-height: auto; } .nav-links a + a { padding-left: 16px; } .nav-actions { justify-self: end; justify-content: flex-end; gap: 10px; } .nav-primary-actions, .nav-contacts, .nav-contact-group, .nav-utility { display: inline-flex; align-items: center; gap: 10px; } .nav-utility { margin-left: 6px; padding-left: 10px; border-left: 1px solid rgba(255, 255, 255, 0.12); } .nav-login { min-width: 112px; gap: 8px; } } .nav-actions { display: flex; flex-direction: row; align-items: center; justify-content: center; gap: 12px; flex-wrap: nowrap; } .nav-primary-actions { display: inline-flex; align-items: center; gap: 12px; } .nav-contacts { width: auto; justify-content: center; } .nav-contacts { display: contents; } .nav-contact-group { display: contents; } .nav-contact { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 8px 16px; border-radius: 16px; border: 1px solid rgba(255, 255, 255, 0.14); background: linear-gradient(180deg, rgba(255, 255, 255, 0.09), rgba(255, 255, 255, 0.03)), rgba(9, 20, 28, 0.9); font-weight: 700; font-size: 0.8rem; color: rgba(255, 248, 239, 0.96); white-space: nowrap; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08), 0 14px 24px rgba(2, 10, 16, 0.3); transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease; } .nav-contact svg { width: 14px; height: 14px; fill: currentColor; opacity: 0.88; } .nav-contact:hover { transform: translateY(-2px); border-color: rgba(255, 255, 255, 0.22); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 18px 28px rgba(2, 10, 16, 0.36); } .nav-contact.whatsapp svg { fill: currentColor; } .nav-actions .cta { background: linear-gradient(180deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.03)), rgba(9, 20, 28, 0.9); border-color: rgba(255, 255, 255, 0.14); color: #f7f4ef; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08), 0 16px 28px rgba(2, 10, 16, 0.3); text-transform: uppercase; letter-spacing: 0.12em; } .nav-actions .cta:hover { background: linear-gradient(180deg, rgba(255, 255, 255, 0.14), rgba(255, 255, 255, 0.04)), rgba(12, 25, 34, 0.94); border-color: rgba(255, 255, 255, 0.22); } .nav-actions .nav-contact { color: #f7f4ef; text-transform: uppercase; letter-spacing: 0.12em; } @media (max-width: 720px) { .nav { gap: 14px; } .logo { position: relative; z-index: 1; } .nav-links { flex-wrap: wrap; justify-content: center; row-gap: 6px; } .nav-links a { padding: 4px 12px; font-size: 0.84rem; } .nav-links a + a { padding-left: 14px; } .nav-links a + a::before { left: 0; height: 16px; } .nav-actions { gap: 6px; flex-wrap: nowrap; justify-content: center; align-items: center; width: 100%; } .nav-utility { position: absolute; top: 16px; left: 16px; right: 16px; width: auto; margin-left: 0; padding-left: 0; border-left: none; justify-content: space-between; gap: 0; pointer-events: none; z-index: 2; } .nav-utility > * { pointer-events: auto; } .language-switch { min-height: 42px; min-width: 48px; padding: 0 12px; border-radius: 14px; } .language-switch::before { font-size: 1rem; } .nav-login { min-height: 42px; min-width: 48px; padding: 0 12px; border-radius: 14px; } .nav-login-lines span { width: 16px; } .menu-modal-panel { padding: 20px 16px 36px; min-height: 100dvh; } .menu-modal-link { min-height: 64px; padding: 10px 0; } .menu-modal-link-text { font-size: 1.22rem; } }