/* =============================================================================
   CUSTOM.CSS — OEyachting Premium Theme
   Współdzielone style dla wszystkich podstron.
   Wyciągnięte z js/config.js (injectPremiumTheme) w celu eliminacji
   redundancji i szybszego ładowania.
   ============================================================================= */

/* ── CSS Custom Properties (Theme Variables) ── */
:root {
    /* Gold RGB channel for rgba() usage */
    --gold-channel: 212, 175, 55;
    /* 🎨 Dark Navy Theme (default) */
    --bg-body: #0a1628;
    --bg-section-dark: #0a1628;
    --bg-section-darker: #050c18;
    --bg-glass: rgba(255,255,255,0.04);
    --bg-glass-hover: rgba(255,255,255,0.08);
    --bg-glass-light: rgba(255,255,255,0.06);
    --bg-glass-header: rgba(11, 26, 48, 0.85);
    --bg-input: rgba(255,255,255,0.06);
    --bg-input-focus: rgba(255,255,255,0.1);
    --bg-card-blog: rgba(255,255,255,0.04);
    --bg-mobile-menu: rgba(11,26,48,0.95);
    --bg-mobile-menu-overlay: rgba(10,22,40,0.85);
    --bg-cookie: rgba(11, 26, 48, 0.97);
    --bg-page-transition: #0a1628;
    --bg-scrollbar-track: #0B1A30;
    --bg-blog-img: #050c18;
    --bg-locale-option: #0B1A30;

    /* Text */
    --text-primary: #f9fafb;
    --text-secondary: #d1d5db;
    --text-muted: #6b7280;
    --text-muted2: #9ca3af;
    --text-gray-400: #9ca3af;
    --text-gray-500: #6b7280;
    --text-cookie: #d1d5db;

    /* Borders */
    --border-glass: rgba(212,175,55,0.1);
    --border-glass-hover: rgba(212,175,55,0.3);
    --border-glass-light: rgba(255,255,255,0.08);
    --border-glass-input: rgba(255,255,255,0.1);
    --border-glass-input-focus: rgba(212,175,55,0.5);
    --border-mobile-menu: rgba(212,175,55,0.15);
    --border-cookie: rgba(212,175,55,0.15);
    --border-btn-secondary: rgba(255,255,255,0.1);

    /* Shadows */
    --shadow-glass: 0 15px 30px rgba(0,0,0,0.3);
    --shadow-cookie: 0 -8px 30px rgba(0,0,0,0.3);

    /* Hover states */
    --hover-bg: rgba(255,255,255,0.06);
    --hover-text: white;
    --hover-btn-secondary-bg: rgba(255,255,255,0.1);
    --hover-btn-secondary-text: #d1d5db;

    /* Mobile menu specifics */
    --mobile-menu-link-color: #d1d5db;
    --mobile-menu-link-hover-bg: rgba(255,255,255,0.06);
    --mobile-menu-link-hover-color: white;
    --mobile-menu-divider: rgba(255,255,255,0.08);
    --mobile-menu-locale-bg: rgba(255,255,255,0.04);
    --mobile-menu-locale-border: rgba(255,255,255,0.06);
    --mobile-menu-locale-text: #d1d5db;
    --mobile-menu-close-border: rgba(255,255,255,0.15);
    --mobile-menu-close-bg: rgba(255,255,255,0.05);

    /* Hamburger */
    --hamburger-bg: rgba(255,255,255,0.08);
    --hamburger-border: rgba(255,255,255,0.12);
    --hamburger-hover-bg: rgba(212,175,55,0.15);
    --hamburger-hover-border: rgba(212,175,55,0.3);
    --hamburger-span-bg: #D4AF37;

    /* Cookie */
    --cookie-btn-secondary-bg: rgba(255,255,255,0.06);
    --cookie-btn-secondary-color: #9ca3af;
    --cookie-btn-secondary-border: rgba(255,255,255,0.1);

    /* Gold — never change */
    --gold: #D4AF37;
    --gold-light: #e8c966;
    --gold-dark: #aa8c2c;

    /* Utility */
    --placeholder-color: #6b7280;
}

/* ── Smooth Transition for Theme Switching (scoped to avoid jank) ── */
html.theme-transitioning,
html.theme-transitioning *,
html.theme-transitioning *::before,
html.theme-transitioning *::after {
    transition: background-color 0.4s ease, color 0.4s ease, border-color 0.4s ease !important;
}
/* Fallback: style transition on key layout elements */
body, section, nav, footer, header, div, span, p, a, h1, h2, h3, h4, h5, h6,
button, input, textarea, select, li, li *, table, th, td, label {
    transition: background-color 0.5s ease, color 0.5s ease, border-color 0.5s ease;
}

/* ── Ivory Premium Theme ── */
[data-theme="ivory"] {
    --bg-body: #FDF8F0;
    --bg-section-dark: #F5EDE0;
    --bg-section-darker: #EDE3D3;
    --bg-glass: rgba(255,248,240,0.6);
    --bg-glass-hover: rgba(255,248,240,0.85);
    --bg-glass-light: rgba(255,248,240,0.7);
    --bg-glass-header: rgba(253, 248, 240, 0.9);
    --bg-input: rgba(26,26,46,0.04);
    --bg-input-focus: rgba(26,26,46,0.08);
    --bg-card-blog: rgba(255,248,240,0.7);
    --bg-mobile-menu: rgba(253,248,240,0.97);
    --bg-mobile-menu-overlay: rgba(245,237,224,0.85);
    --bg-cookie: rgba(253, 248, 240, 0.97);
    --bg-page-transition: #FDF8F0;
    --bg-scrollbar-track: #E8DCC8;
    --bg-blog-img: #F0E8D8;
    --bg-locale-option: #F5EDE0;

    /* Text */
    --text-primary: #1a1a2e;
    --text-secondary: #4a4a5a;
    --text-muted: #7a7a8a;
    --text-muted2: #6a6a7a;
    --text-gray-400: #6a6a7a;
    --text-gray-500: #8a8a9a;
    --text-cookie: #4a4a5a;

    /* Borders */
    --border-glass: rgba(212,175,55,0.15);
    --border-glass-hover: rgba(212,175,55,0.4);
    --border-glass-light: rgba(26,26,46,0.08);
    --border-glass-input: rgba(26,26,46,0.12);
    --border-glass-input-focus: rgba(212,175,55,0.5);
    --border-mobile-menu: rgba(212,175,55,0.2);
    --border-cookie: rgba(212,175,55,0.2);
    --border-btn-secondary: rgba(26,26,46,0.12);

    /* Shadows */
    --shadow-glass: 0 15px 30px rgba(0,0,0,0.08);
    --shadow-cookie: 0 -8px 30px rgba(0,0,0,0.06);

    /* Hover states */
    --hover-bg: rgba(212,175,55,0.08);
    --hover-text: #1a1a2e;
    --hover-btn-secondary-bg: rgba(212,175,55,0.1);
    --hover-btn-secondary-text: #1a1a2e;

    /* Mobile menu specifics */
    --mobile-menu-link-color: #4a4a5a;
    --mobile-menu-link-hover-bg: rgba(212,175,55,0.08);
    --mobile-menu-link-hover-color: #1a1a2e;
    --mobile-menu-divider: rgba(26,26,46,0.08);
    --mobile-menu-locale-bg: rgba(26,26,46,0.04);
    --mobile-menu-locale-border: rgba(26,26,46,0.06);
    --mobile-menu-locale-text: #4a4a5a;
    --mobile-menu-close-border: rgba(26,26,46,0.15);
    --mobile-menu-close-bg: rgba(26,26,46,0.05);

    /* Hamburger */
    --hamburger-bg: rgba(26,26,46,0.06);
    --hamburger-border: rgba(26,26,46,0.12);
    --hamburger-hover-bg: rgba(212,175,55,0.15);
    --hamburger-hover-border: rgba(212,175,55,0.3);
    --hamburger-span-bg: #D4AF37;

    /* Cookie */
    --cookie-btn-secondary-bg: rgba(26,26,46,0.06);
    --cookie-btn-secondary-color: #6a6a7a;
    --cookie-btn-secondary-border: rgba(26,26,46,0.12);

    /* Utility */
    --placeholder-color: #9a9aaa;
}

/* ── Tailwind Class Overrides for Ivory Theme ── */
/* These override hardcoded Tailwind utility classes that don't use CSS variables */

[data-theme="ivory"] .text-white { color: #1a1a2e !important; }
[data-theme="ivory"] .text-gray-200 { color: #3a3a4a !important; }
[data-theme="ivory"] .text-gray-300 { color: #5a5a6a !important; }
[data-theme="ivory"] .text-gray-400 { color: #6a6a7a !important; }
[data-theme="ivory"] .text-gray-500 { color: #767687 !important; }
[data-theme="ivory"] .text-gray-600 { color: #9a9aaa !important; }
[data-theme="ivory"] .text-navy { color: #1a1a2e !important; }

[data-theme="ivory"] .bg-navy { background-color: #FDF8F0 !important; }
[data-theme="ivory"] .bg-navy-dark { background-color: var(--bg-section-darker) !important; }
[data-theme="ivory"] .bg-navy-light { background-color: #FFF8F0 !important; }
[data-theme="ivory"] .bg-navy\/80 { background-color: rgba(253,248,240,0.8) !important; }
[data-theme="ivory"] .bg-navy\/90 { background-color: rgba(253,248,240,0.9) !important; }
[data-theme="ivory"] .bg-navy\/30 { background-color: rgba(253,248,240,0.3) !important; }
[data-theme="ivory"] .bg-navy\/50 { background-color: rgba(253,248,240,0.5) !important; }
[data-theme="ivory"] .bg-navy-light\/50 { background-color: rgba(250,245,235,0.5) !important; }
[data-theme="ivory"] .bg-white\/5 { background-color: rgba(26,26,46,0.04) !important; }
[data-theme="ivory"] .bg-white\/10 { background-color: rgba(26,26,46,0.08) !important; }
[data-theme="ivory"] .bg-white\/15 { background-color: rgba(26,26,46,0.1) !important; }
[data-theme="ivory"] .bg-white\/20 { background-color: rgba(26,26,46,0.12) !important; }

[data-theme="ivory"] .border-white\/5 { border-color: rgba(26,26,46,0.05) !important; }
[data-theme="ivory"] .border-white\/10 { border-color: rgba(26,26,46,0.08) !important; }
[data-theme="ivory"] .border-white\/20 { border-color: rgba(26,26,46,0.12) !important; }
[data-theme="ivory"] .border-gray-800 { border-color: rgba(26,26,46,0.12) !important; }
[data-theme="ivory"] .border-white\/5 { border-color: rgba(26,26,46,0.05) !important; }

[data-theme="ivory"] .from-navy { --tw-gradient-from: #FDF8F0 !important; }
[data-theme="ivory"] .to-navy { --tw-gradient-to: #FDF8F0 !important; }
[data-theme="ivory"] .via-navy { --tw-gradient-via: #FDF8F0 !important; }
[data-theme="ivory"] .from-navy\/90 { --tw-gradient-from: rgba(253,248,240,0.95) !important; }
[data-theme="ivory"] .via-navy\/70 { --tw-gradient-via: rgba(253,248,240,0.88) !important; }
[data-theme="ivory"] .to-navy\/90 { --tw-gradient-to: rgba(253,248,240,0.9) !important; }
[data-theme="ivory"] .via-navy\/95 { --tw-gradient-via: rgba(253,248,240,0.95) !important; }
[data-theme="ivory"] .to-navy\/95 { --tw-gradient-to: rgba(253,248,240,0.95) !important; }



/* Opacity/glass utility overrides */
[data-theme="ivory"] .bg-gold\/5 { background-color: rgba(212,175,55,0.08) !important; }
[data-theme="ivory"] .bg-gold\/10 { background-color: rgba(212,175,55,0.12) !important; }
[data-theme="ivory"] .bg-gold\/3 { background-color: rgba(212,175,55,0.05) !important; }
[data-theme="ivory"] .bg-gold\/20 { background-color: rgba(212,175,55,0.15) !important; }

/* Component utilities that are intentionally dark in the navy theme. */
[data-theme="ivory"] .glass,
[data-theme="ivory"] .glass-card,
[data-theme="ivory"] .premium-card,
[data-theme="ivory"] .marketplace-item,
[data-theme="ivory"] .blog-card {
    background: var(--bg-glass) !important;
    border-color: var(--border-glass) !important;
    box-shadow: var(--shadow-glass);
}
[data-theme="ivory"] .glass-card-accent {
    background: linear-gradient(135deg, rgba(212,175,55,0.12), rgba(212,175,55,0.04)) !important;
    border-color: var(--border-glass) !important;
}
[data-theme="ivory"] .glass-input,
[data-theme="ivory"] .filter-select,
[data-theme="ivory"] .search-input {
    background: var(--bg-input) !important;
    border-color: var(--border-glass-input) !important;
    color: var(--text-primary) !important;
}
[data-theme="ivory"] .filter-select option,
[data-theme="ivory"] select option {
    background: var(--bg-locale-option) !important;
    color: var(--text-primary) !important;
}
[data-theme="ivory"] .section-navy,
[data-theme="ivory"] .section-dark,
[data-theme="ivory"] .bg-navy-lighter {
    background-color: var(--bg-section-dark) !important;
}
[data-theme="ivory"] .legal-content h2 { color: var(--text-primary); }
[data-theme="ivory"] .legal-content p,
[data-theme="ivory"] .legal-content li { color: var(--text-secondary); }
[data-theme="ivory"] .legal-content strong { color: var(--text-primary); }
[data-theme="ivory"] .spec-item { border-bottom-color: var(--border-glass-light); }
[data-theme="ivory"] .carousel-fade-left {
    background: linear-gradient(to right, rgba(253,248,240,1), rgba(253,248,240,0)) !important;
}
[data-theme="ivory"] .carousel-fade-right {
    background: linear-gradient(to left, rgba(253,248,240,1), rgba(253,248,240,0)) !important;
}
[data-theme="ivory"] .skeleton {
    background: linear-gradient(90deg, rgba(26,26,46,0.04) 25%, rgba(26,26,46,0.10) 50%, rgba(26,26,46,0.04) 75%) !important;
}



/* ── Dark Base ── */
body {
    background-color: var(--bg-body) !important;
    color: var(--text-primary) !important;
}

/* ── Theme Toggle Button ── */
.theme-toggle-btn {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: rgba(255,255,255,0.08);
    backdrop-filter: blur(8px);
    border: 1px solid rgba(255,255,255,0.12);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
    color: var(--gold);
    font-size: 0.9rem;
    flex-shrink: 0;
}
.theme-toggle-btn:hover {
    background: rgba(212,175,55,0.15);
    border-color: rgba(212,175,55,0.3);
    transform: scale(1.08);
}

/* Navigation controls must remain visible when the CDN/Tailwind layer is unavailable. */
.desktop-nav-controls {
    display: flex;
    align-items: center;
    gap: 1rem;
}
.mobile-nav-actions {
    display: none;
    align-items: center;
    gap: 0.5rem;
}
.mobile-language-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    min-height: 40px;
    padding: 0 0.65rem;
    border: 1px solid var(--hamburger-border);
    border-radius: 999px;
    background: var(--hamburger-bg);
    color: var(--gold);
    cursor: pointer;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}
.mobile-language-pill:focus-within {
    outline: 2px solid var(--gold);
    outline-offset: 2px;
}
.mobile-language-pill select {
    appearance: none;
    -webkit-appearance: none;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--text-primary);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    cursor: pointer;
}
.mobile-language-pill select option {
    background: var(--bg-locale-option);
    color: var(--text-primary);
}
.mobile-menu-locale-label {
    color: var(--mobile-menu-locale-text);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}
.service-nav .desktop-nav-controls {
    margin-left: auto;
}
.mobile-theme-toggle {
    width: 100%;
    height: auto;
    min-height: 42px;
    border-radius: 12px;
    justify-content: flex-start;
    gap: 10px;
    padding: 12px 16px;
    margin-top: 10px;
    color: var(--mobile-menu-link-color);
    background: var(--mobile-menu-locale-bg);
    border-color: var(--mobile-menu-locale-border);
}
.mobile-menu-locale select {
    background: transparent;
    color: var(--mobile-menu-link-color);
    border: 0;
    outline: 0;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.12em;
}
.mobile-menu-locale select option {
    background: var(--bg-locale-option);
    color: var(--text-primary);
}
.mobile-menu-locale .mobile-theme-toggle {
    width: 36px;
    min-height: 36px;
    margin-top: 0;
    padding: 0;
    justify-content: center;
}
.newsletter-form {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.75rem;
}
@media (min-width: 640px) {
    .newsletter-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .newsletter-form > * { grid-column: span 2; }
}
@media (max-width: 767px) {
    .desktop-nav-controls { display: none; }
    .mobile-nav-actions { display: inline-flex; }
}
.theme-toggle-btn:active {
    transform: scale(0.92);
}
[data-theme="ivory"] .theme-toggle-btn {
    background: rgba(26,26,46,0.06);
    border-color: rgba(26,26,46,0.12);
}
[data-theme="ivory"] .theme-toggle-btn:hover {
    background: rgba(212,175,55,0.12);
    border-color: rgba(212,175,55,0.3);
}

/* ── Glass Cards ── */
.glass-card {
    background: var(--bg-glass);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid var(--border-glass);
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.glass-card:hover {
    transform: translateY(-4px);
    border-color: var(--border-glass-hover);
    box-shadow: var(--shadow-glass);
}
.glass-card-light {
    background: var(--bg-glass-light);
    backdrop-filter: blur(12px);
    border: 1px solid var(--border-glass-light);
    transition: all 0.3s ease;
}
.glass-card-light:hover {
    border-color: rgba(212,175,55,0.2);
}
.glass-input {
    background: var(--bg-input) !important;
    border: 1px solid var(--border-glass-input) !important;
    color: var(--text-primary) !important;
    transition: all 0.3s ease !important;
}
.glass-input:focus {
    border-color: var(--border-glass-input-focus) !important;
    box-shadow: 0 0 0 3px rgba(212,175,55,0.1) !important;
    outline: none !important;
}
.glass-input::placeholder {
    color: var(--placeholder-color) !important;
}
.section-dark {
    background-color: var(--bg-section-dark) !important;
}
.section-darker {
    background-color: var(--bg-section-darker) !important;
}

/* ── Animated Background Gradient ── */
.animated-bg {
    background: linear-gradient(-45deg, var(--bg-section-darker), var(--bg-section-dark), var(--bg-section-darker), var(--bg-section-darker));
    background-size: 400% 400%;
    animation: gradient 15s ease infinite;
}
@keyframes gradient {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

/* ── Scroll Progress Bar ── */
#scroll-progress {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 9999;
    height: 2px;
    background: linear-gradient(90deg, var(--gold), var(--gold-light), var(--gold));
    background-size: 200% 100%;
    width: 0%;
    transition: width 0.1s linear;
    box-shadow: 0 0 10px rgba(212,175,55,0.5);
}

/* ── Scroll Reveal (progressive enhancement) ── */
/* Default: always visible — safe fallback if JS fails */
.reveal { opacity: 1; transform: translateY(0); transition: all 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94); }
.reveal-left { opacity: 1; transform: translateX(0); transition: all 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94); }
.reveal-right { opacity: 1; transform: translateX(0); transition: all 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94); }
.reveal-scale { opacity: 1; transform: scale(1); transition: all 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94); }
/* When JS confirmed: hide and animate on scroll */
.js-ready .reveal { opacity: 0; transform: translateY(40px); }
.js-ready .reveal.visible { opacity: 1; transform: translateY(0); }
.js-ready .reveal-left { opacity: 0; transform: translateX(-40px); }
.js-ready .reveal-left.visible { opacity: 1; transform: translateX(0); }
.js-ready .reveal-right { opacity: 0; transform: translateX(40px); }
.js-ready .reveal-right.visible { opacity: 1; transform: translateX(0); }
.js-ready .reveal-scale { opacity: 0; transform: scale(0.92); }
.js-ready .reveal-scale.visible { opacity: 1; transform: scale(1); }
.reveal-delay-1 { transition-delay: 0.1s; }
.reveal-delay-2 { transition-delay: 0.2s; }
.reveal-delay-3 { transition-delay: 0.3s; }
.reveal-delay-4 { transition-delay: 0.4s; }
.reveal-delay-5 { transition-delay: 0.5s; }

/* ── Hero Typewriter (letter stagger) ── */
.hero-stagger span {
    display: inline-block;
    opacity: 0;
    animation: staggerFadeIn 0.5s ease forwards;
}
@keyframes staggerFadeIn {
    from { opacity: 0; transform: translateY(20px) rotateX(-20deg); }
    to { opacity: 1; transform: translateY(0) rotateX(0); }
}

/* ── Gold Shimmer for Buttons ── */
.btn-shimmer {
    position: relative;
    overflow: hidden;
}
.btn-shimmer::after {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: linear-gradient(
        45deg,
        transparent 30%,
        rgba(255,255,255,0.15) 50%,
        transparent 70%
    );
    animation: shimmer 3s ease-in-out infinite;
}
@keyframes shimmer {
    0% { transform: translateX(-100%) rotate(45deg); }
    100% { transform: translateX(100%) rotate(45deg); }
}

/* ── Liquid Glass Blobs (background decoration) ── */
.blob {
    position: absolute;
    border-radius: 50%;
    filter: blur(100px);
    opacity: 0.08;
    pointer-events: none;
    animation: blobFloat 20s ease-in-out infinite;
}
.blob:nth-child(1) {
    background: var(--gold);
    width: 600px;
    height: 600px;
    top: -200px;
    left: -200px;
    animation-duration: 25s;
}
.blob:nth-child(2) {
    background: var(--gold);
    width: 400px;
    height: 400px;
    bottom: -150px;
    right: -150px;
    animation-duration: 20s;
    animation-delay: -5s;
}
.blob:nth-child(3) {
    background: var(--bg-section-dark);
    width: 500px;
    height: 500px;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    animation-duration: 30s;
    animation-delay: -10s;
}
@keyframes blobFloat {
    0%, 100% { transform: translate(0, 0) scale(1); }
    25% { transform: translate(100px, -80px) scale(1.1); }
    50% { transform: translate(-50px, 100px) scale(0.9); }
    75% { transform: translate(80px, 50px) scale(1.05); }
}

/* ── 3D Tilt on Hover ── */
.tilt-3d {
    perspective: 1000px;
    transform-style: preserve-3d;
    transition: transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.tilt-3d:hover {
    transform: rotateY(4deg) rotateX(-3deg);
}
.tilt-3d .tilt-content {
    transform: translateZ(20px);
    transition: transform 0.5s ease;
}
.tilt-3d:hover .tilt-content {
    transform: translateZ(30px);
}

/* ── Glow Hover (mouse-follow glow) ── */
.glow-card {
    position: relative;
}
.glow-card::before {
    content: '';
    position: absolute;
    top: var(--mouse-y, 50%);
    left: var(--mouse-x, 50%);
    transform: translate(-50%, -50%);
    width: 300px;
    height: 300px;
    background: radial-gradient(circle, rgba(212,175,55,0.08), transparent 70%);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.5s ease;
    border-radius: 50%;
}
.glow-card:hover::before {
    opacity: 1;
}

/* ── Counter Animation ── */
.counter-value {
    display: inline-block;
}
.counter-value.animate {
    animation: countPop 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
@keyframes countPop {
    0% { transform: scale(1); }
    50% { transform: scale(1.15); }
    100% { transform: scale(1); }
}

/* ── Subtle gold pulse for badges ── */
.badge-pulse {
    animation: badgePulse 2s ease-in-out infinite;
}
@keyframes badgePulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(212,175,55,0.4); }
    50% { box-shadow: 0 0 0 8px rgba(212,175,55,0); }
}

/* ── Image cinematic reveal ── */
.cinematic-reveal {
    clip-path: inset(0 0 0 0);
    transition: clip-path 1.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.cinematic-reveal.hidden {
    clip-path: inset(0 50% 0 50%);
}

/* ── Custom Cursor (gold dot) ── */
#custom-cursor {
    position: fixed;
    pointer-events: none;
    z-index: 99999;
    width: 8px;
    height: 8px;
    background: rgba(212,175,55,0.6);
    border-radius: 50%;
    transform: translate(-50%, -50%);
    transition: width 0.3s, height 0.3s, background 0.3s, opacity 0.3s;
    opacity: 0;
    box-shadow: 0 0 10px rgba(212,175,55,0.3);
}
#custom-cursor.active {
    opacity: 1;
}
#custom-cursor.hovering {
    width: 24px;
    height: 24px;
    background: rgba(212,175,55,0.3);
    border: 2px solid var(--gold);
}

/* ── Mobile Hamburger Menu ── */
.mobile-menu-overlay {
    position: fixed;
    inset: 0;
    background: var(--bg-mobile-menu-overlay);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    z-index: 40;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.4s ease;
}
.mobile-menu-overlay.open {
    opacity: 1;
    pointer-events: auto;
}
.mobile-menu-panel {
    position: fixed;
    top: 0;
    right: 0;
    width: 300px;
    max-width: 85vw;
    height: 100vh;
    background: var(--bg-mobile-menu);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border-left: 1px solid var(--border-mobile-menu);
    z-index: 41;
    transform: translateX(100%);
    transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    overflow-y: auto;
    padding: 2rem 1.5rem;
    display: flex;
    flex-direction: column;
}
.mobile-menu-panel.open {
    transform: translateX(0);
}
.mobile-menu-panel .menu-close {
    align-self: flex-end;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 1px solid var(--mobile-menu-close-border);
    background: var(--mobile-menu-close-bg);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--gold);
    cursor: pointer;
    transition: all 0.3s ease;
    margin-bottom: 1.5rem;
}
.mobile-menu-panel .menu-close:hover {
    background: rgba(212,175,55,0.15);
    transform: rotate(90deg);
}
.mobile-menu-panel a {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    border-radius: 12px;
    color: var(--mobile-menu-link-color);
    font-size: 0.9rem;
    font-weight: 500;
    transition: all 0.3s ease;
    border: 1px solid transparent;
}
.mobile-menu-panel a i {
    width: 20px;
    text-align: center;
    color: var(--gold);
    font-size: 0.9rem;
}
.mobile-menu-panel a:hover {
    background: var(--mobile-menu-link-hover-bg);
    border-color: rgba(212,175,55,0.2);
    color: var(--mobile-menu-link-hover-color);
}
.mobile-menu-panel .menu-divider {
    height: 1px;
    background: var(--mobile-menu-divider);
    margin: 12px 0;
}
.mobile-menu-panel .menu-locale {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 16px;
    border-radius: 12px;
    background: var(--mobile-menu-locale-bg);
    border: 1px solid var(--mobile-menu-locale-border);
    margin-top: auto;
}
.mobile-menu-panel .menu-locale select {
    background: transparent;
    color: var(--mobile-menu-locale-text);
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    border: none;
    outline: none;
    padding: 4px;
}
.mobile-menu-panel .menu-locale select option { background: var(--bg-locale-option); color: var(--text-primary); }
.hamburger-btn {
    display: none;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--hamburger-bg);
    backdrop-filter: blur(8px);
    border: 1px solid var(--hamburger-border);
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    cursor: pointer;
    transition: all 0.3s ease;
    margin-left: auto;
}
.hamburger-btn:hover {
    background: var(--hamburger-hover-bg);
    border-color: var(--hamburger-hover-border);
}
.hamburger-btn span {
    display: block;
    width: 18px;
    height: 2px;
    background: var(--hamburger-span-bg);
    border-radius: 2px;
    transition: all 0.3s ease;
}
.hamburger-btn.open span:nth-child(1) {
    transform: rotate(45deg) translate(4px, 4px);
}
.hamburger-btn.open span:nth-child(2) {
    opacity: 0;
}
.hamburger-btn.open span:nth-child(3) {
    transform: rotate(-45deg) translate(4px, -4px);
}
@media (max-width: 767px) {
    .hamburger-btn { display: flex; }
}

/* ── Page transition ── */
#page-transition {
    position: fixed;
    inset: 0;
    z-index: 99998;
    background: var(--bg-page-transition);
    transform: translateY(0);
    transition: transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    pointer-events: none;
    visibility: visible;
}
#page-transition.closed {
    transform: translateY(-100%);
    visibility: visible;
}

/* ── Wishlist / Favorite Button ── */
.wishlist-btn {
    transition: all 0.3s ease !important;
    z-index: 5 !important;
}
.wishlist-btn i {
    transition: all 0.3s ease !important;
}
.wishlist-btn:hover i {
    transform: scale(1.2) !important;
    color: #ef4444 !important;
}
.wishlist-btn.active {
    background: rgba(239,68,68,0.3) !important;
    border-color: rgba(239,68,68,0.5) !important;
}
.wishlist-btn.active i {
    color: #ef4444 !important;
}
.wishlist-btn:disabled {
    opacity: 0.6 !important;
    cursor: not-allowed !important;
}
/* Heart pulse animation on toggle */
@keyframes heartPop {
    0% { transform: scale(1); }
    30% { transform: scale(1.4); }
    60% { transform: scale(0.9); }
    100% { transform: scale(1); }
}
.wishlist-btn.active i {
    animation: heartPop 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

/* ── Scroll-to-Top FAB ── */
.scroll-to-top-fab {
    position: fixed;
    bottom: 2rem;
    right: 2rem;
    z-index: 9997;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--gold), var(--gold-dark));
    color: white;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    box-shadow: 0 4px 16px rgba(212,175,55,0.3);
    opacity: 0;
    transform: translateY(16px) scale(0.9);
    transition: opacity 0.3s ease, transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275), background 0.3s ease, box-shadow 0.3s ease;
    pointer-events: none;
}
.scroll-to-top-fab.visible {
    opacity: 1;
    transform: translateY(0) scale(1);
    pointer-events: auto;
}
.scroll-to-top-fab:hover {
    background: linear-gradient(135deg, var(--gold-light), var(--gold));
    box-shadow: 0 6px 20px rgba(212,175,55,0.4);
    transform: translateY(-2px) scale(1.05);
}
.scroll-to-top-fab:active {
    transform: translateY(0) scale(0.95);
}
@media (max-width: 640px) {
    .scroll-to-top-fab {
        bottom: 1.25rem;
        right: 1.25rem;
        width: 40px;
        height: 40px;
        font-size: 0.9rem;
    }
}

/* ── Cookie Consent Banner ── */
.cookie-consent-banner {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 9996;
    background: var(--bg-cookie);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-top: 1px solid var(--border-cookie);
    padding: 1rem 1.5rem;
    transform: translateY(100%);
    opacity: 0;
    transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94), opacity 0.4s ease;
    box-shadow: var(--shadow-cookie);
}
.cookie-consent-banner.visible {
    transform: translateY(0);
    opacity: 1;
}
.cookie-consent-content {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    flex-wrap: wrap;
}
.cookie-consent-text {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--text-cookie);
    font-size: 0.8rem;
    font-weight: 300;
    line-height: 1.5;
    flex: 1;
    min-width: 240px;
}
.cookie-consent-actions {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-shrink: 0;
}
.cookie-btn {
    padding: 0.6rem 1.25rem;
    border-radius: 0.375rem;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    cursor: pointer;
    transition: all 0.3s ease;
    border: none;
}
.cookie-btn-primary {
    background: linear-gradient(135deg, var(--gold), var(--gold-dark));
    color: white;
}
.cookie-btn-primary:hover {
    opacity: 0.9;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(212,175,55,0.3);
}
.cookie-btn-secondary {
    background: var(--cookie-btn-secondary-bg);
    color: var(--cookie-btn-secondary-color);
    border: 1px solid var(--cookie-btn-secondary-border);
}
.cookie-btn-secondary:hover {
    background: var(--hover-btn-secondary-bg);
    color: var(--hover-btn-secondary-text);
}
.cookie-btn-ghost {
    background: transparent;
    color: var(--text-cookie);
    border: 1px solid var(--border-cookie);
}
.cookie-btn-ghost:hover,
.cookie-btn:focus-visible,
.cookie-settings-link:focus-visible,
.cookie-preferences-close:focus-visible {
    outline: 2px solid var(--gold-light);
    outline-offset: 3px;
}
.cookie-consent-text a {
    color: var(--gold-light);
    text-decoration: underline;
    text-underline-offset: 2px;
    white-space: nowrap;
}
.cookie-settings-link {
    display: block;
    margin: 0.65rem auto 0;
    border: 0;
    background: transparent;
    color: var(--gold);
    font-size: 0.72rem;
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
}
.cookie-preferences {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: grid;
    place-items: center;
    padding: 1rem;
    background: rgba(4, 12, 24, 0.72);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease;
}
.cookie-preferences.visible {
    opacity: 1;
    pointer-events: auto;
}
.cookie-preferences-card {
    width: min(100%, 560px);
    max-height: min(92vh, 680px);
    overflow: auto;
    padding: clamp(1.25rem, 4vw, 2rem);
    border: 1px solid var(--border-cookie);
    border-radius: 1rem;
    background: var(--bg-cookie);
    color: var(--text-cookie);
    box-shadow: 0 24px 70px rgba(0, 0, 0, 0.35);
}
.cookie-preferences-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.75rem;
}
.cookie-preferences-kicker {
    margin: 0 0 0.35rem;
    color: var(--gold);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}
.cookie-preferences-card h2 {
    margin: 0;
    color: var(--text-cookie);
    font-family: Georgia, serif;
    font-size: clamp(1.45rem, 3vw, 2rem);
}
.cookie-preferences-close {
    border: 0;
    background: transparent;
    color: var(--text-cookie);
    font-size: 1.8rem;
    line-height: 1;
    cursor: pointer;
}
.cookie-preferences-intro {
    margin: 0 0 1.15rem;
    color: var(--text-cookie);
    font-size: 0.9rem;
    line-height: 1.55;
    opacity: 0.82;
}
.cookie-preference-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 0;
    border-top: 1px solid var(--border-cookie);
}
.cookie-preference-row strong { color: var(--text-cookie); font-size: 0.95rem; }
.cookie-preference-row p { margin: 0.3rem 0 0; color: var(--text-cookie); opacity: 0.72; font-size: 0.78rem; line-height: 1.4; }
.cookie-preference-status { color: var(--gold); font-size: 0.72rem; font-weight: 700; white-space: nowrap; }
.cookie-preference-toggle { position: relative; cursor: pointer; }
.cookie-preference-toggle input { position: absolute; opacity: 0; pointer-events: none; }
.cookie-switch { width: 44px; height: 24px; flex: 0 0 auto; border-radius: 999px; background: rgba(148, 163, 184, 0.45); transition: background 0.2s ease; }
.cookie-switch::after { content: ''; display: block; width: 18px; height: 18px; margin: 3px; border-radius: 50%; background: #fff; transition: transform 0.2s ease; }
.cookie-preference-toggle input:checked + .cookie-switch { background: var(--gold); }
.cookie-preference-toggle input:checked + .cookie-switch::after { transform: translateX(20px); }
.cookie-preferences-actions { display: flex; flex-wrap: wrap; gap: 0.7rem; justify-content: flex-end; padding-top: 1.25rem; }
@media (max-width: 640px) {
    .cookie-consent-content {
        flex-direction: column;
        text-align: center;
    }
    .cookie-consent-actions {
        width: 100%;
        justify-content: stretch;
        flex-wrap: wrap;
    }
    .cookie-consent-actions .cookie-btn {
        flex: 1 1 140px;
    }
    .cookie-consent-text {
        align-items: flex-start;
        text-align: left;
    }
}

/* ── Blog Card & Image Fill Improvements ── */
.blog-card .blog-img-wrap {
    overflow: hidden !important;
    position: relative !important;
    width: 100% !important;
    aspect-ratio: 16 / 11 !important;
    background-color: var(--bg-blog-img) !important;
}
.blog-card .blog-img-wrap img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    display: block !important;
    transition: transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;
}
.blog-card:hover .blog-img-wrap img {
    transform: scale(1.08) !important;
}

/* Home news section: light editorial surface, with dark readable copy. */
.news-light-section {
    background: #f7f8fa !important;
    color: #1a1a2e;
}
.news-light-section > .absolute.bg-navy-light\/50 {
    background-color: rgba(212,175,55,0.08) !important;
}
.news-light-section .inline-flex {
    background: rgba(26,26,46,0.04) !important;
    border-color: rgba(212,175,55,0.35) !important;
}
.news-light-section h3,
.news-light-section .blog-content h5 {
    color: #1a1a2e !important;
}
.news-light-section .blog-content p.text-sm {
    color: #4b5563 !important;
}
.news-light-section .text-gray-400,
.news-light-section .blog-content .text-gray-500 {
    color: #5a5a6a !important;
}
.news-light-section .blog-card {
    background: #ffffff !important;
    border-color: rgba(26,26,46,0.10) !important;
    box-shadow: 0 8px 24px rgba(26,26,46,0.08);
}
.news-light-section .carousel-fade-left {
    background: linear-gradient(to right, #f7f8fa, rgba(247,248,250,0)) !important;
}
.news-light-section .carousel-fade-right {
    background: linear-gradient(to left, #f7f8fa, rgba(247,248,250,0)) !important;
}

/* ── Homepage News section follows the active site theme ──
   The section keeps the legacy .news-light-section class for layout,
   but its palette must not remain permanently light in the navy theme. */
html:not([data-theme="ivory"]) .news-section.news-light-section {
    background: var(--bg-section-dark) !important;
    color: var(--text-primary) !important;
}
html:not([data-theme="ivory"]) .news-section.news-light-section > .absolute.bg-navy-light\/50 {
    background-color: rgba(212,175,55,0.06) !important;
}
html:not([data-theme="ivory"]) .news-section.news-light-section .inline-flex {
    background: rgba(255,255,255,0.04) !important;
    border-color: rgba(212,175,55,0.25) !important;
}
html:not([data-theme="ivory"]) .news-section.news-light-section h3,
html:not([data-theme="ivory"]) .news-section.news-light-section .blog-content h5 {
    color: var(--text-primary) !important;
}
html:not([data-theme="ivory"]) .news-section.news-light-section .blog-content p.text-sm,
html:not([data-theme="ivory"]) .news-section.news-light-section .text-gray-400,
html:not([data-theme="ivory"]) .news-section.news-light-section .text-gray-500,
html:not([data-theme="ivory"]) .news-section.news-light-section .blog-content .text-gray-300 {
    color: var(--text-secondary) !important;
}
html:not([data-theme="ivory"]) .news-section.news-light-section .blog-card {
    background: var(--bg-card-blog) !important;
    border-color: var(--border-glass-light) !important;
    box-shadow: var(--shadow-glass) !important;
}
html:not([data-theme="ivory"]) .news-section.news-light-section .blog-cta {
    border-top-color: var(--border-glass-light) !important;
}
html:not([data-theme="ivory"]) .news-section.news-light-section .carousel-fade-left {
    background: linear-gradient(to right, var(--bg-section-dark), rgba(10,22,40,0)) !important;
}
html:not([data-theme="ivory"]) .news-section.news-light-section .carousel-fade-right {
    background: linear-gradient(to left, var(--bg-section-dark), rgba(10,22,40,0)) !important;
}

/* ── Scrollbar (theme-aware) ── */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: var(--bg-scrollbar-track); }
::-webkit-scrollbar-thumb { background: var(--gold); border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: var(--gold-light); }

/* ── Leaflet Map on ivory theme ── */
[data-theme="ivory"] #service-map,
[data-theme="ivory"] #training-map,
[data-theme="ivory"] #route-map,
[data-theme="ivory"] #map,
[data-theme="ivory"] #bazaMapPickerInner {
    background: #EDE3D3 !important;
}
[data-theme="ivory"] .leaflet-container {
    background: #EDE3D3 !important;
}
[data-theme="ivory"] .leaflet-popup-content-wrapper {
    background: var(--bg-body) !important;
    color: var(--text-primary) !important;
    box-shadow: 0 20px 60px rgba(0,0,0,0.08) !important;
}
[data-theme="ivory"] .leaflet-popup-tip {
    background: var(--bg-body) !important;
}
[data-theme="ivory"] .leaflet-popup-close-button {
    color: var(--text-muted) !important;
}
[data-theme="ivory"] .leaflet-popup-content .marina-stat-value {
    color: #1a1a2e !important;
}
[data-theme="ivory"] .leaflet-control-zoom a {
    background: var(--bg-body) !important;
    color: var(--text-primary) !important;
}
[data-theme="ivory"] .leaflet-bar {
    border-color: var(--border-glass-input) !important;
}

/* ── Modals / toasts on ivory (service pages) ── */
[data-theme="ivory"] #partner-toast,
[data-theme="ivory"] #inquiry-toast,
[data-theme="ivory"] #surveyor-toast,
[data-theme="ivory"] #vip-toast,
[data-theme="ivory"] #training-toast {
    background: var(--bg-body) !important;
    box-shadow: 0 10px 40px rgba(0,0,0,0.06) !important;
}
[data-theme="ivory"] .inquiry-modal-inner {
    background: var(--bg-body) !important;
}

/* ── Service pages: modals with hardcoded navy bg ── */
[data-theme="ivory"] .partner-modal-inner,
[data-theme="ivory"] [style*="rgba(10,22,40,0.97)"],
[data-theme="ivory"] [style*="rgba(10,22,40,0.96)"],
[data-theme="ivory"] [style*="rgba(10,22,40,0.95)"] {
    background: var(--bg-body) !important;
}

/* ── Shadow overrides on ivory ── */
[data-theme="ivory"] .shadow-gold\/20 {
    box-shadow: 0 4px 16px rgba(212,175,55,0.2) !important;
}
[data-theme="ivory"] .shadow-gold\/10 {
    box-shadow: 0 4px 16px rgba(212,175,55,0.1) !important;
}

/* ── Glass dark header (marketplace, serwis, mariny, eventy) ── */
.glass-dark {
    background: var(--bg-glass-header);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border-bottom: 1px solid rgba(var(--gold-channel), 0.1);
}

/* ── Glass header (shared) ── */
.glass-header {
    background: var(--bg-glass-header);
    backdrop-filter: blur(12px);
    border-bottom: 1px solid rgba(var(--gold-channel), 0.2);
}

/* Shared top-nav shell: every public page uses the same home/news chrome. */
nav.site-top-nav,
nav.site-top-nav.glass-dark,
nav.site-top-nav.service-nav {
    background: var(--bg-glass-header) !important;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid rgba(var(--gold-channel), 0.2) !important;
}
nav.site-top-nav > div > div:first-child {
    min-height: 5rem;
}
nav.site-top-nav img {
    width: 100px;
    height: auto;
    object-fit: contain;
}
/* Profile photos inside the client link must not inherit the brand-logo size. */
nav.site-top-nav img[data-auth-avatar] {
    width: 24px !important;
    height: 24px !important;
    min-width: 24px;
    max-width: 24px;
    object-fit: cover;
    border-radius: 9999px;
}
nav.site-top-nav > div > div:first-child > .hidden.md\:flex,
nav.site-top-nav > div > div:first-child > .hidden.lg\:flex,
nav.site-top-nav > div > div:first-child > .desktop-nav-controls {
    align-items: center;
    gap: 1rem;
}
nav.site-top-nav .theme-toggle-btn { flex-shrink: 0; }
nav.site-top-nav a[data-i18n="nav.clientArea"],
nav.site-top-nav a[data-auth-nav],
nav.site-top-nav a[data-service-client-area] {
    color: #ffffff !important;
    align-self: center;
    height: 2.5rem;
    min-height: 2.5rem;
    max-height: 2.5rem;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    line-height: 1.25rem;
    white-space: nowrap;
    box-sizing: border-box;
}
nav.site-top-nav a[data-i18n="nav.clientArea"],
nav.site-top-nav a[data-auth-nav],
nav.site-top-nav a[data-service-client-area] {
    gap: 0.25rem !important;
}
nav.site-top-nav a[data-i18n="nav.clientArea"] i,
nav.site-top-nav a[data-auth-nav] i,
nav.site-top-nav a[data-service-client-area] i {
    color: #ffffff !important;
    margin-right: 0 !important;
}
[data-theme="ivory"] nav.site-top-nav,
[data-theme="ivory"] nav.site-top-nav.glass-dark,
[data-theme="ivory"] nav.site-top-nav.service-nav {
    background: var(--bg-glass-header) !important;
    border-bottom-color: var(--border-glass-hover) !important;
}

/* Dynamic/inline surfaces used by marketplace, maps and account panels. */
[data-theme="ivory"] [style*="background:rgba(10,22,40"],
[data-theme="ivory"] [style*="background: rgba(10,22,40"],
[data-theme="ivory"] [style*="background:#0a1628"],
[data-theme="ivory"] [style*="background:#0B1A30"],
[data-theme="ivory"] [style*="background: #0a1628"],
[data-theme="ivory"] [style*="background: #0B1A30"] {
    background: var(--bg-body) !important;
    color: var(--text-primary) !important;
}
[data-theme="ivory"] #partner-contact-modal {
    background: rgba(245,237,224,0.86) !important;
}
[data-theme="ivory"] #partner-contact-modal input,
[data-theme="ivory"] #partner-contact-modal textarea {
    background: var(--bg-input) !important;
    border-color: var(--border-glass-input) !important;
    color: var(--text-primary) !important;
}
[data-theme="ivory"] #partner-contact-modal input::placeholder,
[data-theme="ivory"] #partner-contact-modal textarea::placeholder {
    color: var(--placeholder-color) !important;
}
[data-theme="ivory"] #si-overlay { background: rgba(245,237,224,0.86) !important; }
[data-theme="ivory"] .leaflet-popup-content-wrapper [style*="background:#0a1628"] {
    background: var(--bg-body) !important;
    color: var(--text-primary) !important;
}

/* Service-page navigation and hero: page-local styles otherwise force navy. */
[data-theme="ivory"] .service-page .service-nav {
    background: var(--bg-glass-header) !important;
    color: var(--text-primary) !important;
    border-bottom-color: var(--border-glass-hover) !important;
}
[data-theme="ivory"] .service-page .service-nav .text-white,
[data-theme="ivory"] .service-page .service-nav .text-white\/20 {
    color: var(--text-primary) !important;
}
[data-theme="ivory"] .service-page .service-nav .text-gray-300 {
    color: var(--text-secondary) !important;
}
[data-theme="ivory"] .service-page .service-hero {
    background: linear-gradient(-45deg, #F5EDE0, #FDF8F0, #EDE3D3, #FDF8F0) !important;
    color: var(--text-primary) !important;
}
[data-theme="ivory"] .service-page .service-hero > div:first-child .bg-gradient-to-b {
    background: linear-gradient(to bottom, rgba(253,248,240,0.96), rgba(245,237,224,0.9), rgba(253,248,240,0.99)) !important;
}
[data-theme="ivory"] .service-page .service-hero .bg-gradient-to-b {
    --tw-gradient-from: rgba(253,248,240,0.96) !important;
    --tw-gradient-via: rgba(253,248,240,0.88) !important;
    --tw-gradient-to: rgba(253,248,240,0.98) !important;
}
[data-theme="ivory"] .service-page .service-hero .text-white {
    color: var(--text-primary) !important;
}
[data-theme="ivory"] .service-page .service-hero .text-gray-300,
[data-theme="ivory"] .service-page .service-hero .text-gray-400,
[data-theme="ivory"] .service-page .service-hero .text-gray-500 {
    color: var(--text-secondary) !important;
}
[data-theme="ivory"] .service-page .marina-hero-overlay,
[data-theme="ivory"] .service-page .marina-partner-overlay {
    background: linear-gradient(to bottom, rgba(253,248,240,0.98), rgba(245,237,224,0.94), rgba(253,248,240,0.99)) !important;
}
[data-theme="ivory"] .service-page .partner-section {
    background: var(--bg-section-dark) !important;
    color: var(--text-primary) !important;
}
[data-theme="ivory"] .service-page .partner-section .glass-card {
    background: var(--bg-glass) !important;
    border-color: var(--border-glass) !important;
}
[data-theme="ivory"] .service-page .partner-section .text-white {
    color: var(--text-primary) !important;
}
[data-theme="ivory"] .service-page .partner-section .text-gray-400,
[data-theme="ivory"] .service-page .partner-section .text-gray-600 {
    color: var(--text-secondary) !important;
}

/* Partner CTA sections are rendered by JavaScript with a dark variant. */
[data-theme="ivory"] .service-page [id^="become-partner-"] > div {
    background: var(--bg-section-dark) !important;
    color: var(--text-primary) !important;
}
[data-theme="ivory"] .service-page [id^="become-partner-"] {
    background: #F5EDE0 !important;
}
[data-theme="ivory"] .service-page [id^="become-partner-"] .bg-gradient-to-b {
    --tw-gradient-from: #F5EDE0 !important;
    --tw-gradient-via: #FDF8F0 !important;
    --tw-gradient-to: #EDE3D3 !important;
}
[data-theme="ivory"] .service-page [id^="become-partner-"] .glass-card {
    background: var(--bg-glass) !important;
    border-color: var(--border-glass) !important;
}
[data-theme="ivory"] .service-page [id^="become-partner-"] .text-white {
    color: var(--text-primary) !important;
}
[data-theme="ivory"] .service-page [id^="become-partner-"] .text-gray-300,
[data-theme="ivory"] .service-page [id^="become-partner-"] .text-gray-400,
[data-theme="ivory"] .service-page [id^="become-partner-"] .text-gray-500,
[data-theme="ivory"] .service-page [id^="become-partner-"] .text-gray-600 {
    color: var(--text-secondary) !important;
}

/* Service & Maintenance report form: remove the dark section/card surfaces in ivory mode. */
[data-theme="ivory"] .service-page .service-report-section {
    background: #F5EDE0 !important;
}
[data-theme="ivory"] .service-page .service-report-section > .absolute .bg-gradient-to-b {
    background: linear-gradient(to bottom, #F5EDE0, #FDF8F0, #F5EDE0) !important;
}
[data-theme="ivory"] .service-page #partner-service-container .partner-form-wrapper h3,
[data-theme="ivory"] .service-page #partner-service-container .partner-form-wrapper .text-white {
    color: var(--text-primary) !important;
}
[data-theme="ivory"] .service-page #partner-service-container .partner-form-wrapper .text-gray-300,
[data-theme="ivory"] .service-page #partner-service-container .partner-form-wrapper .text-gray-400,
[data-theme="ivory"] .service-page #partner-service-container .partner-form-wrapper .text-gray-500 {
    color: var(--text-secondary) !important;
}
[data-theme="ivory"] .service-page #partner-service-container .partner-form-wrapper .glass-card {
    background: rgba(255,255,255,0.72) !important;
    border-color: var(--border-glass) !important;
    box-shadow: 0 12px 32px rgba(26,26,46,0.06) !important;
}
[data-theme="ivory"] .service-page #partner-service-container .partner-form-wrapper input,
[data-theme="ivory"] .service-page #partner-service-container .partner-form-wrapper select,
[data-theme="ivory"] .service-page #partner-service-container .partner-form-wrapper textarea,
[data-theme="ivory"] .service-page #partner-service-container .partner-form-wrapper .radio-option {
    background-color: rgba(255,255,255,0.8) !important;
    border-color: var(--border-glass-input) !important;
    color: var(--text-primary) !important;
}

/* Message fields use navy utility classes in their markup, which otherwise
   remain dark in ivory mode. Keep them warm and readable with the same input
   treatment as the rest of the light theme. */
[data-theme="ivory"] #offer-msg-input,
[data-theme="ivory"] .offer-msg-input {
    background: #FFFDF7 !important;
    border-color: rgba(26,26,46,0.16) !important;
    color: var(--text-primary) !important;
    caret-color: var(--gold-dark) !important;
}
[data-theme="ivory"] #offer-msg-input::placeholder,
[data-theme="ivory"] .offer-msg-input::placeholder {
    color: #767687 !important;
    opacity: 1 !important;
}
[data-theme="ivory"] #offer-msg-input:focus,
[data-theme="ivory"] .offer-msg-input:focus {
    border-color: var(--gold-dark) !important;
    box-shadow: 0 0 0 3px rgba(166,133,35,0.14) !important;
}

/* Light Carto tiles and white Leaflet canvas for ivory mode. */
[data-theme="ivory"] .service-page #service-map,
[data-theme="ivory"] .service-page #training-map,
[data-theme="ivory"] .service-page .leaflet-container {
    background: #ffffff !important;
}
[data-theme="ivory"] .service-page .leaflet-control-zoom a {
    background: #ffffff !important;
    color: #1a1a2e !important;
    border-bottom-color: rgba(26,26,46,0.14) !important;
}
[data-theme="ivory"] .service-page .leaflet-control-zoom a:hover {
    background: #F5EDE0 !important;
    color: var(--gold-dark) !important;
}
[data-theme="ivory"] .service-page .leaflet-bar {
    border-color: rgba(26,26,46,0.16) !important;
    box-shadow: 0 2px 8px rgba(26,26,46,0.08) !important;
}
[data-theme="ivory"] .service-page #results-list .list-item {
    background: rgba(26,26,46,0.025) !important;
    border-color: rgba(26,26,46,0.10) !important;
}
[data-theme="ivory"] .service-page #results-list .list-item.partner {
    background: rgba(212,175,55,0.10) !important;
    border-color: rgba(212,175,55,0.26) !important;
}
[data-theme="ivory"] .service-page #results-list .list-item strong {
    color: var(--text-primary) !important;
}
[data-theme="ivory"] .service-page #results-list .list-item [style*="color:#9ca3af"],
[data-theme="ivory"] .service-page #results-list .list-item [style*="color:#6b7280"] {
    color: var(--text-secondary) !important;
}

/* Final pass for non-service heroes and the homepage news section. */
[data-theme="ivory"] .site-hero {
    background-color: var(--bg-body) !important;
    color: var(--text-primary) !important;
}
[data-theme="ivory"] .site-hero .bg-gradient-to-b {
    background: linear-gradient(to bottom, rgba(253,248,240,0.94), rgba(253,248,240,0.84), rgba(253,248,240,0.98)) !important;
}
[data-theme="ivory"] .site-hero .bg-gradient-to-r {
    background: linear-gradient(to right, rgba(253,248,240,0.72), rgba(253,248,240,0)) !important;
}
[data-theme="ivory"] .site-hero .text-white,
[data-theme="ivory"] .news-section .text-white,
[data-theme="ivory"] .section-dark .text-white,
[data-theme="ivory"] .bg-navy .text-white,
[data-theme="ivory"] .bg-navy-dark .text-white {
    color: var(--text-primary) !important;
}
[data-theme="ivory"] .site-hero .text-gray-300,
[data-theme="ivory"] .site-hero .text-gray-400,
[data-theme="ivory"] .news-section .text-gray-400,
[data-theme="ivory"] .section-dark .text-gray-400,
[data-theme="ivory"] .bg-navy .text-gray-400 {
    color: var(--text-secondary) !important;
}
[data-theme="ivory"] .news-section.news-light-section {
    background-color: #fffdf8 !important;
}
[data-theme="ivory"] .news-section.news-light-section .blog-card {
    background: #ffffff !important;
    border-color: rgba(26,26,46,0.14) !important;
    box-shadow: 0 8px 24px rgba(26,26,46,0.10) !important;
}
[data-theme="ivory"] .news-section.news-light-section .carousel-fade-left {
    background: linear-gradient(to right, #fffdf8, rgba(255,253,248,0)) !important;
}
[data-theme="ivory"] .news-section.news-light-section .carousel-fade-right {
    background: linear-gradient(to left, #fffdf8, rgba(255,253,248,0)) !important;
}
[data-theme="ivory"] .blog-page .blog-card .text-white,
[data-theme="ivory"] .blog-page .blog-card h5 {
    color: var(--text-primary) !important;
}
[data-theme="ivory"] .blog-page .blog-card .text-gray-400,
[data-theme="ivory"] .blog-page .blog-card .text-gray-500 {
    color: var(--text-secondary) !important;
}

/* Dynamic news article reader: the modal is generated by blog-feed.js and
   carries inline navy styles for the dark theme, so ivory overrides must use
   !important to keep the article readable. */
[data-theme="ivory"] .article-reader-modal {
    background: rgba(245, 237, 224, 0.86) !important;
}
[data-theme="ivory"] .article-reader-card {
    background: #FDF8F0 !important;
    border-color: rgba(212, 175, 55, 0.35) !important;
    box-shadow: 0 25px 60px rgba(26, 26, 46, 0.16) !important;
}
[data-theme="ivory"] .article-reader-hero {
    background: #EDE3D3 !important;
}
[data-theme="ivory"] .article-reader-hero-gradient {
    background: linear-gradient(to top, rgba(253,248,240,0.98) 0%, rgba(253,248,240,0.28) 62%, transparent 100%) !important;
}
[data-theme="ivory"] .article-reader-close {
    background: rgba(253,248,240,0.9) !important;
    color: #1a1a2e !important;
    border-color: rgba(26,26,46,0.14) !important;
}
[data-theme="ivory"] .article-reader-title {
    color: #1a1a2e !important;
}
[data-theme="ivory"] .article-reader-date {
    color: #5a5a6a !important;
}
[data-theme="ivory"] .article-reader-body-wrap {
    color: #4a4a5a !important;
}
[data-theme="ivory"] .article-reader-body-wrap .article-content,
[data-theme="ivory"] .article-reader-body-wrap .article-content p,
[data-theme="ivory"] .article-reader-body-wrap .article-content li {
    color: #4a4a5a !important;
}
[data-theme="ivory"] .article-reader-body-wrap .article-content h2,
[data-theme="ivory"] .article-reader-body-wrap .article-content h3,
[data-theme="ivory"] .article-reader-body-wrap .article-content strong {
    color: #1a1a2e !important;
}
[data-theme="ivory"] .article-reader-body-wrap .article-content blockquote {
    color: #6a6a7a !important;
}
[data-theme="ivory"] .article-reader-footer {
    border-top-color: rgba(26,26,46,0.12) !important;
}
[data-theme="ivory"] .article-reader-external {
    background: rgba(212,175,55,0.12) !important;
    color: #8a6d16 !important;
    border-color: rgba(170,140,44,0.35) !important;
}

/* All website top navigation variants, including page-local navy overrides. */
[data-theme="ivory"] nav.glass-header,
[data-theme="ivory"] nav.glass-dark,
[data-theme="ivory"] body > nav.bg-navy,
[data-theme="ivory"] body > header.bg-navy\/90,
[data-theme="ivory"] body > header[style*="rgba(10,22,40"] {
    background: var(--bg-glass-header) !important;
    color: var(--text-primary) !important;
    border-bottom-color: var(--border-glass-hover) !important;
}
[data-theme="ivory"] nav.glass-header .text-white,
[data-theme="ivory"] nav.glass-dark .text-white,
[data-theme="ivory"] body > nav.bg-navy .text-white,
[data-theme="ivory"] body > header.bg-navy\/90 .text-white {
    color: var(--text-primary) !important;
}
[data-theme="ivory"] nav.glass-header .text-gray-200,
[data-theme="ivory"] nav.glass-header .text-gray-300,
[data-theme="ivory"] nav.glass-dark .text-gray-200,
[data-theme="ivory"] nav.glass-dark .text-gray-300 {
    color: var(--text-secondary) !important;
}
[data-theme="ivory"] nav.glass-header .bg-white\/10,
[data-theme="ivory"] nav.glass-dark .bg-white\/10 {
    background: rgba(26,26,46,0.06) !important;
}
[data-theme="ivory"] #msg-chat-header {
    background: var(--bg-glass-header) !important;
    border-bottom-color: var(--border-glass-light) !important;
}

/* Messenger conversation, message list and compose container in ivory mode. */
[data-theme="ivory"] .messenger-page #msg-conversations,
[data-theme="ivory"] .messenger-page #msg-chat,
[data-theme="ivory"] .messenger-page #msg-messages-area,
[data-theme="ivory"] .messenger-page #messageSearchContainer,
[data-theme="ivory"] .messenger-page #msg-chat-content > .shrink-0 {
    background: var(--bg-section-dark) !important;
    color: var(--text-primary) !important;
}
[data-theme="ivory"] .messenger-page .glass-input,
[data-theme="ivory"] .messenger-page #messageSearchInput {
    background: rgba(26,26,46,0.045) !important;
    border-color: var(--border-glass-input) !important;
    color: var(--text-primary) !important;
}
[data-theme="ivory"] .messenger-page .glass-input::placeholder,
[data-theme="ivory"] .messenger-page #messageSearchInput::placeholder {
    color: var(--placeholder-color) !important;
}
[data-theme="ivory"] .messenger-page .msg-bubble-mine {
    background: linear-gradient(135deg, #D4AF37, #E8C966) !important;
    color: #1a1a2e !important;
    border-color: rgba(170,140,44,0.35) !important;
}
[data-theme="ivory"] .messenger-page .msg-bubble-theirs {
    background: #ffffff !important;
    color: var(--text-primary) !important;
    border-color: rgba(26,26,46,0.12) !important;
    box-shadow: 0 4px 14px rgba(26,26,46,0.06);
}
[data-theme="ivory"] .messenger-page .msg-bubble-mine .text-white\/40,
[data-theme="ivory"] .messenger-page .msg-bubble-mine .text-white\/60 {
    color: rgba(26,26,46,0.62) !important;
}
[data-theme="ivory"] .messenger-page .msg-bubble-theirs .text-gray-500 {
    color: var(--text-muted) !important;
}
[data-theme="ivory"] .messenger-page .offer-preview-card {
    background: #ffffff !important;
    border-color: var(--border-glass) !important;
}
[data-theme="ivory"] .marketplace-form-control,
[data-theme="ivory"] .marketplace-upload-label {
    background-color: #FDF8F0 !important;
    color: #1a1a2e !important;
    border-color: rgba(26,26,46,0.14) !important;
}

[data-theme="ivory"] .marketplace-form-control::placeholder {
    color: #767687 !important;
}

[data-theme="ivory"] .marketplace-form-control option {
    background: #FDF8F0 !important;
    color: #1a1a2e !important;
}

[data-theme="ivory"] .location-autocomplete-suggestions {
    background: #FFF8F0 !important;
    border-color: rgba(26,26,46,0.14) !important;
}

[data-theme="ivory"] .location-autocomplete-suggestions button {
    color: #1a1a2e !important;
}

[data-theme="ivory"] .location-autocomplete-suggestions button:hover {
    background: rgba(26,26,46,0.08) !important;
}

.marketplace-form-control,
.marketplace-upload-label {
    background-color: #0B1A30 !important;
    color: #f9fafb !important;
}

.marketplace-form-control option {
    background: #0B1A30 !important;
    color: #f9fafb !important;
}

.location-autocomplete-suggestions {
    background: #10243b !important;
}

#location-map {
    background: #0a1628;
}

[data-theme="ivory"] #location-map {
    background: #F5EDE0 !important;
}

/* Reliable fallback for the X social icon when the Font Awesome brand glyph is unavailable. */
.fa-x-twitter::before {
    content: "X";
    font-family: Arial, sans-serif;
    font-weight: 700;
}

/* ── Mobile app launch section ── */
.site-brand-logo {
    display: block;
    width: 136px;
    height: 58px;
    object-fit: contain;
    object-position: center;
}
.site-footer-logo {
    display: block;
    width: 136px;
    height: 58px;
    object-fit: contain;
    object-position: center;
}
.app-device-logo {
    display: inline-flex;
    width: 72px;
    height: 28px;
    align-items: center;
}
.app-device-logo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: left center;
}
.app-launch-section {
    min-height: 0;
    padding: 6.5rem 0 5.75rem;
    background:
        radial-gradient(circle at 16% 22%, rgba(44,117,150,.18), transparent 18rem),
        radial-gradient(circle at 78% 48%, rgba(212,175,55,.12), transparent 22rem),
        radial-gradient(circle at 48% 100%, rgba(36,92,121,.12), transparent 24rem),
        linear-gradient(135deg, #071426 0%, #0b1a30 52%, #071426 100%);
    isolation: isolate;
}
.app-launch-section::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: .14;
    background-image: linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px);
    background-size: 72px 72px;
    mask-image: linear-gradient(90deg, transparent, #000 25%, #000 75%, transparent);
    pointer-events: none;
}
.app-launch-section::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    opacity: .34;
    pointer-events: none;
    background:
        radial-gradient(circle at 14% 30%, rgba(212,175,55,.65) 0 1px, transparent 2px),
        radial-gradient(circle at 21% 63%, rgba(134,207,225,.55) 0 1px, transparent 2px),
        radial-gradient(circle at 38% 82%, rgba(212,175,55,.45) 0 1px, transparent 2px),
        radial-gradient(circle at 63% 17%, rgba(134,207,225,.42) 0 1px, transparent 2px),
        radial-gradient(circle at 88% 76%, rgba(212,175,55,.52) 0 1px, transparent 2px),
        repeating-radial-gradient(ellipse at 8% 78%, transparent 0 4.5rem, rgba(212,175,55,.09) 4.6rem 4.68rem, transparent 4.75rem 7rem);
}
.app-launch-orbit { position: absolute; border: 1px solid rgba(212,175,55,.16); border-radius: 50%; pointer-events: none; }
.app-launch-orbit-one { width: 38rem; height: 38rem; right: -13rem; top: 50%; transform: translateY(-50%); opacity: .72; }
.app-launch-orbit-two { width: 24rem; height: 24rem; right: -5rem; top: 50%; transform: translateY(-50%); border-color: rgba(255,255,255,.07); opacity: .8; }
.app-launch-kicker { color: #d4af37; font-size: .68rem; letter-spacing: .28em; font-weight: 700; }
.app-live-pill { border: 1px solid rgba(83,209,154,.35); color: #8ce3be; border-radius: 999px; padding: .28rem .55rem; font-size: .6rem; letter-spacing: .15em; font-weight: 700; }
.app-live-pill span, .app-signal-dot { display: inline-block; width: .4rem; height: .4rem; border-radius: 50%; background: #62d8a0; margin-right: .3rem; box-shadow: 0 0 0 .2rem rgba(98,216,160,.13); animation: appPulse 2s infinite; }
@keyframes appPulse { 50% { box-shadow: 0 0 0 .38rem rgba(98,216,160,0); } }
.app-launch-copy { max-width: 35rem; }
.app-launch-copy h3 { max-width: 31rem; letter-spacing: -.025em; }
.app-launch-copy > p { max-width: 31rem; color: #b8c4d1 !important; }
.app-feature-switcher { display: flex; gap: .55rem; flex-wrap: wrap; }
.app-feature-tab { display: inline-flex; align-items: center; gap: .55rem; border: 1px solid rgba(255,255,255,.15); color: #aeb9c7; background: rgba(255,255,255,.045); border-radius: .65rem; padding: .68rem .9rem; font-size: .76rem; font-weight: 600; transition: all .25s ease; cursor: pointer; }
.app-feature-tab:hover, .app-feature-tab.is-active { color: #fff; border-color: rgba(212,175,55,.6); background: rgba(212,175,55,.12); transform: translateY(-2px); }
.app-feature-tab i { color: #d4af37; }
.app-store-buttons { margin-top: 2.2rem; }
.app-store-button { display: inline-flex; align-items: center; gap: .7rem; min-width: 158px; padding: .72rem 1rem; border-radius: .65rem; text-decoration: none; transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.app-store-button:hover { transform: translateY(-3px); }
.app-store-button i { font-size: 1.65rem; }
.app-store-button span { display: flex; flex-direction: column; color: #fff; font-size: .92rem; font-weight: 600; line-height: 1.05; }
.app-store-button small { color: #aab2bf; font-size: .5rem; letter-spacing: .12em; margin-bottom: .24rem; }
.app-store-button-primary { color: #fff; border: 1px solid rgba(212,175,55,.7); background: rgba(212,175,55,.13); box-shadow: 0 10px 30px rgba(0,0,0,.18); }
.app-store-button:disabled { opacity: .48; cursor: not-allowed; filter: saturate(.55); box-shadow: none; transform: none; }
.app-store-button-primary:hover { border-color: #d4af37; box-shadow: 0 14px 35px rgba(212,175,55,.16); }
.app-store-button-soon { opacity: .62; border: 1px solid rgba(255,255,255,.15); cursor: default; }
.app-device-stage { min-height: 475px; position: relative; display: flex; align-items: center; justify-content: center; perspective: 1200px; }
.app-device { position: relative; z-index: 2; width: min(250px, 68vw); height: 510px; padding: 8px; border-radius: 2.45rem; background: linear-gradient(145deg, #4d4d52, #101216 22%, #050609 75%, #404044); box-shadow: 24px 28px 58px rgba(0,0,0,.5), -10px -10px 34px rgba(255,255,255,.05); transform: rotate(5deg) rotateY(-9deg); transition: transform .7s cubic-bezier(.2,.8,.2,1); }
.app-device:hover { transform: rotate(2deg) rotateY(-2deg) translateY(-8px); }
.app-device::after { content: ""; position: absolute; inset: 2px; border-radius: 2.55rem; border: 1px solid rgba(255,255,255,.18); pointer-events: none; }
.app-device-notch { position: absolute; z-index: 4; width: 92px; height: 23px; top: 17px; left: 50%; transform: translateX(-50%); background: #060709; border-radius: 0 0 15px 15px; }
.app-device-screen { height: 100%; overflow: hidden; position: relative; border-radius: 2.35rem; padding: 1.15rem 1.15rem .8rem; color: #fff; background: linear-gradient(180deg, #112944, #0a1829 72%, #071321); }
.app-device-status, .app-device-header { display: flex; justify-content: space-between; align-items: center; font-size: .55rem; color: rgba(255,255,255,.7); }
.app-device-header { margin-top: 1.2rem; margin-bottom: 2rem; font-size: .9rem; }
.app-device-notification { border: 0; padding: 0; color: rgba(255,255,255,.7); background: transparent; cursor: pointer; transition: color .25s ease, transform .25s ease, filter .25s ease; }
.app-device-notification:hover, .app-device-notification.active { color: #d4af37; transform: translateY(-1px); filter: drop-shadow(0 0 6px rgba(212,175,55,.55)); }
.app-device-logo { font-size: 1.1rem; letter-spacing: .12em; font-weight: 800; }.app-device-logo span { color: #d4af37; }
.app-device-greeting { color: #9aaabd; font-size: .65rem; margin-bottom: .45rem; }.app-device-title { font: 600 1.35rem/1.1 'Playfair Display', serif; margin-bottom: 1.2rem; }
.app-device-visual { min-height: 220px; border: 1px solid rgba(255,255,255,.12); border-radius: 1.05rem; position: relative; overflow: hidden; background: #102d46; animation: appCardIn .45s ease; }
@keyframes appCardIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
.app-mini-map-grid { position: absolute; inset: 0; opacity: .35; background: linear-gradient(30deg, transparent 45%, rgba(111,184,208,.38) 46%, transparent 47%), linear-gradient(120deg, transparent 45%, rgba(111,184,208,.3) 46%, transparent 47%), radial-gradient(ellipse at 30% 30%, #2e6680, transparent 42%), #173a52; background-size: 60px 50px, 80px 70px, auto, auto; }
.app-route-line { position: absolute; width: 158px; height: 0; top: 72px; left: 57px; border-top: 2px dashed #d4af37; transform: rotate(45deg); transform-origin: 0 50%; opacity: .95; }.app-map-pin { position: absolute; color: #fff; background: #d4af37; width: 29px; height: 29px; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); display: flex; align-items: center; justify-content: center; box-shadow: 0 5px 12px rgba(0,0,0,.3); }.app-map-pin i { transform: rotate(45deg); font-size: .65rem; }.pin-one { top: 57px; left: 42px; }.pin-two { bottom: 63px; right: 37px; background: #fff; color: #102d46; }.app-map-caption { position: absolute; bottom: 13px; left: 15px; font-size: .52rem; letter-spacing: .1em; color: rgba(255,255,255,.7); }
.app-preview-alerts, .app-preview-concierge, .app-preview-marketplace-detail { padding: 1.3rem 1rem; display: grid; grid-template-columns: 34px 1fr auto; align-content: start; gap: .8rem .6rem; }.app-alert-icon, .app-chat-avatar { width: 32px; height: 32px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: rgba(212,175,55,.2); color: #e8c966; }.app-alert-icon.muted { background: rgba(100,190,220,.16); color: #9edff0; }.app-preview-alerts strong, .app-preview-concierge strong { display: block; font-size: .66rem; }.app-preview-alerts small, .app-preview-concierge small { display: block; color: #9aaabd; font-size: .53rem; margin-top: .28rem; }.app-alert-time { color: #62d8a0; font-size: .5rem; }.app-alert-line { grid-column: 1 / -1; border-top: 1px solid rgba(255,255,255,.1); }.app-chat-bubble { grid-column: 1 / -1; margin-top: 5rem; border-radius: .8rem .8rem .8rem .15rem; background: rgba(255,255,255,.08); padding: .7rem; font-size: .62rem; color: #dbe5ef; }
.app-preview-messages { padding: .8rem .65rem; background: rgba(255,255,255,.035); }
.app-message-search { display: flex; align-items: center; gap: .45rem; padding: .55rem .6rem; border-radius: .55rem; background: rgba(255,255,255,.08); color: #91a1b3; font-size: .5rem; }
.app-message-section { display: flex; justify-content: space-between; align-items: center; margin: .9rem .1rem .45rem; color: #9aaabd; font-size: .48rem; letter-spacing: .12em; font-weight: 700; }
.app-message-section i { color: #d4af37; margin-right: .25rem; }.app-message-section em { color: #6f8194; font-style: normal; letter-spacing: 0; }
.app-message-row { display: grid; grid-template-columns: 27px 1fr auto; gap: .45rem; align-items: start; padding: .5rem .2rem .6rem; border-bottom: 1px solid rgba(255,255,255,.09); position: relative; }
.app-message-avatar { width: 27px; height: 27px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, #d4af37, #765d16); color: #fff; font-size: .47rem; font-weight: 800; }.app-message-avatar.muted { background: linear-gradient(135deg, #4d8194, #18354d); }
.app-message-copy { min-width: 0; }.app-message-copy strong { display: block; color: #f4f7fa; font-size: .58rem; }.app-message-copy small, .app-message-copy p { display: block; color: #9aaabd; font-size: .46rem; margin: .18rem 0 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }.app-message-copy p { font-size: .45rem; }.app-message-row time { color: #718297; font-size: .43rem; }.app-message-row > b { position: absolute; right: .1rem; bottom: .42rem; width: 14px; height: 14px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: #d4af37; color: #15253a; font-size: .43rem; }
.app-preview-marketplace-detail { display: block; padding: .8rem; }
.app-chat-reply { grid-column: 1 / -1; justify-self: end; max-width: 82%; margin-top: .35rem; padding: .62rem .7rem; border-radius: .8rem .8rem .15rem .8rem; background: #d4af37; color: #102238; font-size: .57rem; line-height: 1.35; font-weight: 700; box-shadow: 0 5px 14px rgba(0,0,0,.18); }
.app-market-card-image { height: 112px; border-radius: .8rem; position: relative; display: flex; align-items: center; justify-content: center; overflow: hidden; color: #d4af37; background: radial-gradient(circle at 72% 34%, rgba(126,205,225,.55), transparent 24%), linear-gradient(145deg, #31769a, #0f334d 62%, #091c31); }
.app-market-card-image::after { content: ""; position: absolute; inset: 42% -10% -18%; border-top: 2px solid rgba(255,255,255,.45); border-radius: 50%; transform: rotate(-7deg); }
.app-market-card-image i { font-size: 3.3rem; filter: drop-shadow(0 8px 10px rgba(0,0,0,.25)); }
.app-market-card-image span { position: absolute; z-index: 1; top: .55rem; left: .6rem; padding: .22rem .42rem; border-radius: .35rem; color: #132238; background: #d4af37; font-size: .45rem; font-weight: 800; letter-spacing: .12em; }
.app-market-card-copy { padding: .85rem .1rem .2rem; }.app-market-card-copy strong { display: block; font-size: .73rem; }.app-market-card-copy small { display: block; color: #9aaabd; font-size: .52rem; margin: .35rem 0 .7rem; }.app-market-card-copy b { color: #e8c966; font-size: .7rem; }.app-market-card-copy em { color: #9aaabd; font-style: normal; font-size: .48rem; font-weight: 400; }
.app-device-nav { position: absolute; bottom: .8rem; left: .75rem; right: .75rem; display: flex; justify-content: space-around; padding-top: .8rem; border-top: 1px solid rgba(255,255,255,.1); }.app-device-nav button { border: 0; padding: 0; background: transparent; color: #60738a; font: inherit; font-size: .46rem; display: flex; flex-direction: column; align-items: center; gap: .35rem; cursor: pointer; transition: color .25s ease, transform .25s ease; }.app-device-nav button i { font-size: .78rem; }.app-device-nav button:hover, .app-device-nav button.active { color: #d4af37; transform: translateY(-1px); }
.app-device-shadow { position: absolute; z-index: 1; width: 280px; height: 80px; bottom: 25px; border-radius: 50%; background: rgba(0,0,0,.52); filter: blur(22px); transform: rotate(-6deg); }.app-stage-label { position: absolute; z-index: 3; color: rgba(255,255,255,.5); font-size: .58rem; letter-spacing: .18em; font-weight: 600; }.app-stage-label-top { top: 11%; right: 5%; }.app-stage-label-bottom { bottom: 7%; left: 8%; color: #d4af37; }.app-stage-label-bottom i { margin-right: .35rem; }
@media (max-width: 1023px) { .app-launch-copy { max-width: 40rem; margin-inline: auto; text-align: center; }.app-launch-copy > p { margin-inline: auto; }.app-feature-switcher, .app-store-buttons { justify-content: center; }.app-device-stage { min-height: 540px; margin-top: -1rem; }.app-stage-label-top { right: 12%; }.app-stage-label-bottom { left: 14%; } }
@media (max-width: 640px) { .app-launch-section { padding: 4.5rem 0 3.75rem; }.app-launch-section::before { opacity: .08; background-size: 54px 54px; }.app-launch-orbit-one { width: 27rem; height: 27rem; right: -14rem; }.app-launch-orbit-two { width: 18rem; height: 18rem; right: -8rem; }.app-device { transform: rotate(3deg) rotateY(-6deg) scale(.88); }.app-device-stage { min-height: 515px; margin-top: -.5rem; }.app-stage-label-top { top: 3%; right: 5%; }.app-stage-label-bottom { bottom: 2%; left: 8%; } }
[data-theme="ivory"] .app-launch-section { background: radial-gradient(circle at 78% 48%, rgba(212,175,55,.18), transparent 24rem), linear-gradient(135deg, #17283b 0%, #263b50 52%, #17283b 100%); }
[data-theme="ivory"] .app-launch-section .text-white { color: #fff !important; }
[data-theme="ivory"] .app-launch-section .text-gray-300 { color: #d3dce6 !important; }
[data-theme="ivory"] .app-launch-section .text-gray-500 { color: #aab8c8 !important; }
[data-theme="ivory"] .app-launch-section .text-gray-400 { color: #b9c7d5 !important; }
[data-theme="ivory"] .app-launch-section .app-feature-tab { color: #c7d2df; background: rgba(255,255,255,.07); border-color: rgba(255,255,255,.2); }
[data-theme="ivory"] .app-launch-section .app-feature-tab:hover,
[data-theme="ivory"] .app-launch-section .app-feature-tab.is-active { color: #fff; background: rgba(212,175,55,.18); border-color: rgba(232,201,102,.75); }
[data-theme="ivory"] .app-launch-section .app-store-button-soon { color: #fff; border-color: rgba(255,255,255,.24); }
[data-theme="ivory"] .app-launch-section .app-store-button-soon span { color: #fff; }
[data-theme="ivory"] .app-launch-section .app-store-button-soon small { color: #b9c7d5; }

/* The app launch panel follows the site theme. The phone preview remains navy
   for contrast, while the surrounding presentation becomes warm and light. */
[data-theme="ivory"] .app-launch-section {
    background:
        radial-gradient(circle at 72% 42%, rgba(212,175,55,.16), transparent 24rem),
        linear-gradient(135deg, #f8f1e6 0%, #eee5d5 54%, #f8f1e6 100%);
    color: #1a1a2e;
}
[data-theme="ivory"] .app-launch-section::after {
    opacity: .18;
    background:
        radial-gradient(circle at 14% 30%, rgba(161,125,23,.65) 0 1px, transparent 2px),
        radial-gradient(circle at 21% 63%, rgba(57,117,142,.55) 0 1px, transparent 2px),
        radial-gradient(circle at 38% 82%, rgba(161,125,23,.45) 0 1px, transparent 2px),
        repeating-radial-gradient(ellipse at 8% 78%, transparent 0 4.5rem, rgba(161,125,23,.08) 4.6rem 4.68rem, transparent 4.75rem 7rem);
}
[data-theme="ivory"] .app-launch-section::before {
    opacity: .18;
    background-image: linear-gradient(rgba(26,26,46,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(26,26,46,.08) 1px, transparent 1px);
}
[data-theme="ivory"] .app-launch-section .app-launch-orbit { border-color: rgba(26,26,46,.14); }
[data-theme="ivory"] .app-launch-section .app-launch-orbit-two { border-color: rgba(26,26,46,.08); }
[data-theme="ivory"] .app-launch-section .app-launch-kicker { color: #a17d17; }
[data-theme="ivory"] .app-launch-section .app-live-pill { color: #267858; border-color: rgba(38,120,88,.35); }
[data-theme="ivory"] .app-launch-section .app-launch-copy h3,
[data-theme="ivory"] .app-launch-section .text-white { color: #18273a !important; }
[data-theme="ivory"] .app-launch-section .app-launch-copy > p,
[data-theme="ivory"] .app-launch-section .text-gray-300 { color: #566375 !important; }
[data-theme="ivory"] .app-launch-section .app-feature-tab {
    color: #526174;
    background: rgba(255,255,255,.56);
    border-color: rgba(24,39,58,.14);
}
[data-theme="ivory"] .app-launch-section .app-feature-tab:hover,
[data-theme="ivory"] .app-launch-section .app-feature-tab.is-active {
    color: #18273a;
    background: rgba(212,175,55,.18);
    border-color: rgba(161,125,23,.62);
}
[data-theme="ivory"] .app-launch-section .app-store-button-primary {
    color: #18273a;
    background: rgba(212,175,55,.16);
    border-color: rgba(161,125,23,.68);
}
[data-theme="ivory"] .app-launch-section .app-store-button span { color: #18273a; }
[data-theme="ivory"] .app-launch-section .app-store-button small,
[data-theme="ivory"] .app-launch-section .app-store-button-soon small { color: #687487; }
[data-theme="ivory"] .app-launch-section .app-store-button-soon { border-color: rgba(24,39,58,.16); }
[data-theme="ivory"] .app-launch-section .app-stage-label-top { color: rgba(24,39,58,.54); }
[data-theme="ivory"] .app-launch-section .app-stage-label-bottom { color: #a17d17; }

/* The phone preview mirrors the selected website theme as a miniature app UI. */
[data-theme="ivory"] .app-device {
    background: linear-gradient(145deg, #d8dce0, #7e8790 22%, #313943 75%, #aeb5ba);
    box-shadow: 28px 34px 70px rgba(26,26,46,.28), -12px -12px 40px rgba(255,255,255,.42);
}
[data-theme="ivory"] .app-device-screen {
    color: #18273a;
    background: linear-gradient(180deg, #fffaf2, #f1e9dc 72%, #e7dccb);
}
[data-theme="ivory"] .app-device-status,
[data-theme="ivory"] .app-device-header,
[data-theme="ivory"] .app-device-notification { color: rgba(24,39,58,.68); }
[data-theme="ivory"] .app-device-notification:hover,
[data-theme="ivory"] .app-device-notification.active { color: #a17d17; }
[data-theme="ivory"] .app-device-greeting { color: #69778a; }
[data-theme="ivory"] .app-device-title { color: #18273a; }
[data-theme="ivory"] .app-device-visual { border-color: rgba(24,39,58,.12); }
[data-theme="ivory"] .app-preview-alerts,
[data-theme="ivory"] .app-preview-concierge,
[data-theme="ivory"] .app-preview-marketplace-detail,
[data-theme="ivory"] .app-preview-messages {
    background: rgba(255,255,255,.66);
    box-shadow: inset 0 0 0 1px rgba(24,39,58,.035);
}
[data-theme="ivory"] .app-preview-marketplace {
    background: #e9f0eb;
    box-shadow: inset 0 0 0 1px rgba(24,39,58,.035);
}
[data-theme="ivory"] .app-preview-alerts .app-alert-icon,
[data-theme="ivory"] .app-preview-concierge .app-chat-avatar,
[data-theme="ivory"] .app-message-avatar {
    background: rgba(212,175,55,.22);
    color: #9b7614;
}
[data-theme="ivory"] .app-preview-alerts .app-alert-icon.muted {
    background: rgba(64,132,157,.14);
    color: #39758e;
}
[data-theme="ivory"] .app-alert-time { color: #267858; }
[data-theme="ivory"] .app-message-search { background: rgba(24,39,58,.07); color: #69778a; }
[data-theme="ivory"] .app-message-section { color: #69778a; }.app-message-row { border-color: rgba(24,39,58,.1); }
[data-theme="ivory"] .app-message-copy strong { color: #18273a; }
[data-theme="ivory"] .app-message-copy small, [data-theme="ivory"] .app-message-copy p { color: #69778a; }
[data-theme="ivory"] .app-message-row time { color: #8793a2; }
[data-theme="ivory"] .app-chat-bubble {
    background: rgba(24,39,58,.07);
    color: #31445a;
}
[data-theme="ivory"] .app-chat-reply {
    background: #d4af37;
    color: #18273a;
}
[data-theme="ivory"] .app-mini-map-grid {
    opacity: .58;
    background: linear-gradient(30deg, transparent 45%, rgba(64,132,157,.24) 46%, transparent 47%), linear-gradient(120deg, transparent 45%, rgba(64,132,157,.18) 46%, transparent 47%), radial-gradient(ellipse at 30% 30%, #a7d2d6, transparent 42%), #d4e6e2;
}
[data-theme="ivory"] .app-map-caption,
[data-theme="ivory"] .app-preview-alerts small,
[data-theme="ivory"] .app-preview-concierge small,
[data-theme="ivory"] .app-market-card-copy small { color: #69778a; }
[data-theme="ivory"] .app-preview-alerts strong,
[data-theme="ivory"] .app-preview-concierge strong,
[data-theme="ivory"] .app-market-card-copy strong { color: #18273a; }
[data-theme="ivory"] .app-alert-line { border-color: rgba(24,39,58,.12); }
[data-theme="ivory"] .app-chat-bubble { color: #31445a; background: rgba(24,39,58,.08); }
[data-theme="ivory"] .app-device-nav { border-color: rgba(24,39,58,.12); }
[data-theme="ivory"] .app-device-nav button { color: #8a96a3; }
[data-theme="ivory"] .app-device-nav button:hover,
[data-theme="ivory"] .app-device-nav button.active { color: #a17d17; }

@media (max-width: 640px) {
    .site-brand-logo { width: 112px; height: 50px; }
    .site-footer-logo { width: 124px; height: 54px; }
}
[hidden] {
    /*
     * Google Translate may wrap translated text and add inline display rules
     * while rebuilding parts of the DOM. Keep deliberately hidden UI hidden
     * so mobile/desktop duplicates, previews and closed modals do not become
     * visible after browser translation.
     */
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
}
/* OEyachting deployment tokens and cross-page accessibility fixes. */
:root {
  --oe-navy: #0a1628;
  --oe-navy-soft: #10243a;
  --oe-ivory: #fdf8f0;
  --oe-gold: #d4af37;
  --oe-gold-accessible: #8c6b10;
  --oe-text-light: #263548;
  --oe-muted-light: #4b5563;
}

html[data-theme="ivory"] .text-gold,
html[data-theme="ivory"] .text-yellow-400,
html[data-theme="ivory"] .text-yellow-500 {
  color: var(--oe-gold-accessible) !important;
}

html[data-theme="ivory"] .text-gray-300,
html[data-theme="ivory"] .text-gray-400,
html[data-theme="ivory"] .text-gray-500,
html[data-theme="ivory"] .text-gray-600 {
  color: var(--oe-muted-light) !important;
}

html[data-theme="ivory"] .news-light-section .text-gray-300,
html[data-theme="ivory"] .news-light-section .text-gray-400,
html[data-theme="ivory"] .news-light-section .text-gray-500 {
  color: var(--oe-muted-light) !important;
}

img[data-theme-logo] {
  object-fit: contain;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
  }
}
