/* ==================================================================
   PRIMEVISTA — SITE CHROME
   Shared by every page: skip link, pre-header bar, compact navigation,
   honeypot field and small accessibility helpers.
   (Previously copy-pasted as inline <style> blocks in ~20 files.)
   ================================================================== */

/* ---------- Accessibility ---------- */
.skip-link {
    position: absolute;
    left: -9999px;
    top: 0;
    z-index: 99999;
    background: var(--gold, #D4AF37);
    color: #030d10;
    padding: 12px 20px;
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
    border-radius: 0 0 4px 0;
}
.skip-link:focus { left: 0; }

.sr-only {
    position: absolute !important;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0, 0, 0, 0);
    white-space: nowrap; border: 0;
}

:focus-visible { outline: 2px solid var(--gold, #D4AF37); outline-offset: 2px; }

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

/* ---------- Pre-header ---------- */
.pre-header {
    position: relative;
    z-index: 9999;
    background: #000;
    border-bottom: 1px solid #111;
    padding: 10px 5%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    font-family: 'Cormorant Garamond', Georgia, serif;
}
.pre-group { display: flex; gap: 20px; align-items: center; }
.pre-meta {
    font-size: 12px;
    font-weight: 500;
    color: #8a8a8a;
    letter-spacing: 2px;
    text-transform: uppercase;
}
.pre-meta i { color: var(--gold, #D4AF37); margin-right: 5px; }
.pre-meta--time { border-left: 1px solid #222; padding-left: 20px; }
.pre-value { color: #fff; }
.pre-value--gold { color: var(--gold, #D4AF37); }
.pre-tagline {
    font-size: 12px;
    color: var(--gold, #D4AF37);
    letter-spacing: 3px;
    text-transform: uppercase;
    font-style: italic;
    opacity: .75;
}
.pre-back {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    letter-spacing: 3px;
    text-transform: uppercase;
    font-style: italic;
    color: var(--gold, #D4AF37);
    opacity: .75;
    text-decoration: none;
}
.pre-back:hover { opacity: 1; }
.lang-switcher { display: flex; gap: 10px; border-right: 1px solid #222; padding-right: 20px; }
.pre-link {
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: #8a8a8a;
    transition: color .3s;
}
.pre-link.is-active { color: var(--gold, #D4AF37); }
.pre-link--account { color: #fff; display: flex; align-items: center; }
.pre-link--account i { color: var(--gold, #D4AF37); margin-right: 8px; font-size: 11px; }
.pre-link:hover { color: var(--gold, #D4AF37) !important; }

.pre-header--compact .pre-meta,
.pre-header--compact .pre-tagline,
.pre-header--compact .pre-back,
.pre-header--compact .pre-link { font-size: 11px; }

@media (max-width: 900px) {
    .pre-header { flex-wrap: wrap; justify-content: center; gap: 8px 16px; text-align: center; padding: 10px 4%; }
    .pre-group { gap: 10px; flex-wrap: wrap; justify-content: center; }
    /* Simplified mobile bar: keep time, back link and log-in */
    .pre-meta--hub, .pre-tagline, .lang-switcher { display: none; }
    .pre-meta--time { border-left: 0; padding-left: 0; }
}
@media (max-width: 560px) {
    .pre-meta, .pre-link, .pre-back { font-size: 11px; }
}

/* ---------- Compact navigation (packages, blog, destinations) ---------- */
.pv-compact-nav {
    position: sticky;
    top: 0;
    z-index: 500;
    background: rgba(3, 13, 16, 0.92);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    border-bottom: 1px solid rgba(212, 175, 55, 0.15);
    padding: 16px 5%;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.pv-compact-nav .pv-logo { display: flex; align-items: center; gap: 10px; text-decoration: none; }
.pv-compact-nav .pv-logo img { height: 80px; width: 80px; object-fit: contain; }
.pv-compact-links { display: flex; align-items: center; gap: 28px; }
.pv-compact-links a {
    color: #ccc;
    text-decoration: none;
    font-size: 10px;
    letter-spacing: 2px;
    text-transform: uppercase;
    font-family: 'Cormorant Garamond', serif;
    transition: color .2s;
}
.pv-compact-links a:hover { color: #D4AF37; }
.pv-compact-links a.pv-book-btn { background: #D4AF37; color: #030d10; padding: 10px 20px; font-weight: 600; }

.pv-compact-nav .nav-hamburger {
    display: none;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 34px; height: 34px;
    background: none; border: none;
    cursor: pointer;
    z-index: 9999;
    position: relative;
}
.pv-compact-nav .nav-hamburger span { display: block; width: 100%; height: 2px; background: #fff; border-radius: 2px; transition: transform .25s ease, opacity .2s ease; }
.pv-compact-nav .nav-hamburger.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.pv-compact-nav .nav-hamburger.is-open span:nth-child(2) { opacity: 0; }
.pv-compact-nav .nav-hamburger.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 900px) {
    .pv-compact-links.nav-center { display: none; }
    .pv-compact-nav .nav-hamburger { display: flex; }
    .pv-compact-links.nav-center.mobile-open {
        display: flex !important;
        position: fixed;
        inset: 0;
        background: rgba(3, 13, 16, 0.98);
        -webkit-backdrop-filter: blur(6px);
        backdrop-filter: blur(6px);
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 30px;
        z-index: 9997;
    }
    .pv-compact-links.nav-center.mobile-open a { font-size: 15px; letter-spacing: 3px; }
}
body.nav-locked { overflow: hidden; }

/* ---------- Breadcrumbs (visible trail on deep pages) ---------- */
.pv-breadcrumbs { padding: 14px 5% 0; font-family: 'Cormorant Garamond', Georgia, serif; font-size: 12px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; }
.pv-breadcrumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; }
.pv-breadcrumbs li { color: #8a8a8a; }
.pv-breadcrumbs li + li::before { content: '/'; margin-right: 8px; color: #444; }
.pv-breadcrumbs a { color: #bbb; text-decoration: none; }
.pv-breadcrumbs a:hover { color: var(--gold, #D4AF37); }
.pv-breadcrumbs [aria-current] { color: var(--gold, #D4AF37); }

/* ---------- Form feedback (review form) ---------- */
.form-note { font-size: 11px; margin: 0 0 10px; padding: 10px 12px; border: 1px solid rgba(212,175,55,.3); color: #ddd; }
.form-note--error { border-color: rgba(255,118,117,.4); color: #ff9c9b; }

/* ---------- Cookie consent banner (all pages) ---------- */
#cookie-banner {
    position: fixed;
    bottom: 0; left: 0; right: 0;
    z-index: 9999;
    background: #071418;
    border-top: 1px solid rgba(212,175,55,.25);
    padding: 24px 5%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    transform: translateY(100%);
    transition: transform .5s cubic-bezier(.165,.84,.44,1);
}
#cookie-banner.visible { transform: translateY(0); }
#cookie-banner .cookie-text { font-family: 'Cormorant Garamond', serif; font-size: 13px; line-height: 1.6; color: rgba(255,255,255,.75); max-width: 680px; flex: 1; margin: 0; }
#cookie-banner .cookie-text a { color: #D4AF37; text-decoration: none; border-bottom: 1px solid rgba(212,175,55,.3); }
#cookie-banner .cookie-actions { display: flex; gap: 14px; flex-shrink: 0; }
#cookie-banner .btn-cookie-accept,
#cookie-banner .btn-cookie-decline { padding: 12px 24px; font-family: 'Cormorant Garamond', serif; font-size: 11px; letter-spacing: 2px; text-transform: uppercase; cursor: pointer; transition: all .3s ease; }
#cookie-banner .btn-cookie-accept { background: #D4AF37; color: #030d10; border: none; font-weight: 700; }
#cookie-banner .btn-cookie-accept:hover { background: #fff; }
#cookie-banner .btn-cookie-decline { background: transparent; color: rgba(255,255,255,.6); border: 1px solid rgba(255,255,255,.2); }
#cookie-banner .btn-cookie-decline:hover { border-color: rgba(255,255,255,.4); color: #fff; }
@media (max-width: 600px) {
    #cookie-banner { flex-direction: column; align-items: flex-start; gap: 20px; }
    #cookie-banner .cookie-actions { width: 100%; }
    #cookie-banner .btn-cookie-accept, #cookie-banner .btn-cookie-decline { flex: 1; text-align: center; }
}

/* ---------- Slim footer (package & destination pages) ---------- */
.pv-mini-footer {
    background: #030d10;
    border-top: 1px solid rgba(212,175,55,.18);
    padding: 34px 5% 30px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 14px 30px;
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 14px;
    color: rgba(255,255,255,.6);
}
.pv-mini-footer p { margin: 0; }
.pv-mini-footer a { color: rgba(255,255,255,.75); text-decoration: none; transition: color .25s; }
.pv-mini-footer a:hover { color: #D4AF37; }
.pv-mini-footer__links { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.pv-mini-footer__links a { font-size: 12px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; }
.pv-mini-footer__credit a { color: #D4AF37; }
@media (max-width: 760px) {
    .pv-mini-footer { flex-direction: column; text-align: center; }
    .pv-mini-footer__links { justify-content: center; }
}

/* ---------- Top breadcrumb bar (pages without the main menu) ---------- */
.pv-breadcrumbs--top {
    position: sticky; top: 0; z-index: 500;
    padding: 18px 5%;
    background: rgba(3,13,16,.92);
    -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
    border-bottom: 1px solid rgba(212,175,55,.15);
}
.pv-breadcrumbs--top li:first-child a::before {
    content: '\2190'; margin-right: 8px; color: #D4AF37;
}
