/* Shared utility language: Maison Vitis proportions, VIP Limousine colours. */
:root { --vip-tools-ink:#102a40; --vip-tools-gold:#af8928; --vip-tools-ivory:#faf8f2; --vip-tools-edge:24px; }
.vip-tool, ._access-icon._access {
    position:fixed; bottom:var(--vip-tools-edge)!important; z-index:9998!important;
    display:flex!important; align-items:center; justify-content:center;
    width:52px!important; height:52px!important; padding:0!important; margin:0!important;
    border:1px solid rgba(175,137,40,.28)!important; border-radius:50%!important;
    box-shadow:0 8px 28px rgba(16,42,64,.17)!important; cursor:pointer;
    transition:background .22s,color .22s,transform .22s,box-shadow .22s;
}
.vip-tool svg { width:23px; height:23px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.vip-tool--cookies { right:var(--vip-tools-edge); background:var(--vip-tools-ink); color:var(--vip-tools-ivory); }
.vip-tool--top { left:50%; transform:translateX(-50%); background:var(--vip-tools-ivory); color:var(--vip-tools-ink); }
.vip-tool[hidden] { display:none!important; }
.vip-tool:hover { color:var(--vip-tools-ivory); background:var(--vip-tools-gold); box-shadow:0 12px 30px rgba(16,42,64,.22); }
.vip-tool--cookies:hover { transform:translateY(-3px); }
.vip-tool--top:hover { transform:translate(-50%,-3px); }
.vip-tool:focus-visible, ._access:focus-visible, ._access [role=button]:focus-visible, .vip-cookie-link:focus-visible { outline:3px solid var(--vip-tools-gold)!important; outline-offset:4px; }
.vip-tool__label { position:absolute; bottom:calc(100% + 12px); padding:8px 12px; color:var(--vip-tools-ivory); background:var(--vip-tools-ink); font:12px/1.4 Arial,sans-serif; letter-spacing:.03em; white-space:nowrap; border-radius:4px; opacity:0; pointer-events:none; transition:opacity .2s; }
.vip-tool--cookies .vip-tool__label { right:0; }
.vip-tool:hover .vip-tool__label,.vip-tool:focus-visible .vip-tool__label { opacity:1; }
.vip-cookie-link { border:0; padding:0; background:none; color:inherit; font:inherit; text-decoration:underline; text-underline-offset:4px; }
.vip-footer__preferences { text-align:center; padding:22px 15px 30px; font-size:13px; }

/* Joomla's trigger keeps its own click handler and accessible label. */
._access-icon._access { left:var(--vip-tools-edge)!important; background:var(--vip-tools-gold)!important; font-size:0!important; color:transparent!important; text-indent:0!important; line-height:1!important; opacity:1!important; }
._access-icon._access::before { content:''; width:26px; height:26px; background:var(--vip-tools-ivory); mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='4' r='2'/%3E%3Cpath d='m4 8 8 2 8-2M12 10v5m0 0-4 6m4-6 4 6'/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat; }
._access-icon._access:hover { background:var(--vip-tools-ink)!important; transform:translateY(-3px); }
._access-menu._access {
    left:var(--vip-tools-edge)!important; bottom:90px!important; top:auto!important;
    width:min(360px,calc(100vw - 48px))!important; max-height:calc(100dvh - 115px)!important;
    padding:0!important; margin:0!important; overflow:hidden!important;
    background:var(--vip-tools-ivory)!important; color:var(--vip-tools-ink)!important;
    border:1px solid rgba(175,137,40,.3)!important; border-radius:14px!important;
    box-shadow:0 18px 60px rgba(16,42,64,.22)!important;
    font-family:Arial,sans-serif!important; font-size:14px!important; font-weight:400!important;
    text-shadow:none!important; z-index:10001!important; opacity:1!important;
}
._access-menu._access.close { display:none!important; }
._access-menu._access h3 { display:flex; align-items:center; justify-content:center; position:relative; margin:0!important; min-height:72px; padding:15px 54px!important; background:var(--vip-tools-ink)!important; color:var(--vip-tools-ivory)!important; font:500 15px/1.4 Arial,sans-serif!important; text-align:center; }
._access-menu._access ._menu-btn { position:absolute!important; top:20px!important; width:32px!important; height:32px!important; padding:0!important; display:flex; align-items:center; justify-content:center; border-radius:50%; background:rgba(255,255,255,.12)!important; font-size:0!important; cursor:pointer; }
._access-menu._access ._menu-close-btn { left:12px!important; right:auto!important; }
._access-menu._access ._menu-reset-btn { right:12px!important; left:auto!important; }
._access-menu._access ._menu-btn::before { font:24px/1 Arial,sans-serif; color:var(--vip-tools-ivory); }
._access-menu._access ._menu-close-btn::before { content:'×'; }
._access-menu._access ._menu-reset-btn::before { content:'↻'; }
._access-menu._access ._access-scrollbar { margin:0!important; padding:12px!important; max-height:min(460px,calc(100dvh - 205px))!important; overflow-y:auto!important; }
._access-menu._access li { margin:0 0 7px!important; padding:11px 12px 11px 42px!important; min-height:44px; background:#fff!important; border:1px solid rgba(16,42,64,.09)!important; border-radius:6px!important; color:var(--vip-tools-ink)!important; font:14px/1.5 Arial,sans-serif!important; }
._access-menu._access li:hover { background:#eee8d9!important; }

/* The library handles choices, focus and storage; this file handles presentation. */
#tarteaucitronRoot { --tac-ink:var(--vip-tools-ink); }
#tarteaucitronRoot * { font-family:Arial,sans-serif; }
#tarteaucitronRoot button { box-sizing:border-box!important; }
#tarteaucitronRoot #tarteaucitronAlertBig {
    left:auto!important; right:var(--vip-tools-edge)!important; bottom:90px!important;
    width:440px!important; max-width:calc(100vw - 48px)!important; box-sizing:border-box;
    padding:28px!important; border:1px solid rgba(175,137,40,.28)!important; border-radius:14px!important;
    background:var(--vip-tools-ivory)!important; color:var(--vip-tools-ink)!important;
    box-shadow:0 18px 60px rgba(16,42,64,.2)!important; text-align:left!important;
}
#tarteaucitronRoot #tarteaucitronAlertBig:before { display:block; margin-bottom:14px; color:var(--vip-tools-ink)!important; font-size:21px!important; line-height:1.35!important; font-weight:400!important; letter-spacing:0!important; }
#tarteaucitronRoot #tarteaucitronDisclaimerAlert { display:block!important; margin:0 0 20px!important; color:var(--vip-tools-ink)!important; font-size:14px!important; line-height:1.65!important; }
#tarteaucitronRoot #tarteaucitronDisclaimerAlert strong { display:block; margin-bottom:12px; font-size:21px!important; line-height:1.3; font-weight:400; }
#tarteaucitronRoot #tarteaucitronAlertBig button { margin:4px 0!important; padding:11px 12px!important; border:1px solid var(--vip-tools-ink)!important; border-radius:4px!important; min-height:44px; font-size:12px!important; font-weight:500!important; line-height:1.4!important; }
#tarteaucitronRoot #tarteaucitronPersonalize2,#tarteaucitronRoot #tarteaucitronAllDenied2 { width:calc(50% - 6px)!important; background:var(--vip-tools-ink)!important; color:var(--vip-tools-ivory)!important; }
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPersonalize2 { margin-right:8px!important; }
#tarteaucitronRoot #tarteaucitronCloseAlert { width:100%!important; color:var(--vip-tools-ink)!important; background:transparent!important; }
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPrivacyUrl { border:0!important; padding:6px 0!important; color:#435461!important; background:transparent!important; text-decoration:underline; }
#tarteaucitronRoot button:hover { filter:brightness(1.12); }
#tarteaucitronRoot button:focus-visible { outline:3px solid var(--vip-tools-gold)!important; outline-offset:3px!important; }
#tarteaucitronRoot #tarteaucitron { max-width:calc(100vw - 32px)!important; }
#tarteaucitronRoot #tarteaucitron .tarteaucitronBorder { border:1px solid rgba(175,137,40,.3)!important; border-radius:0 0 12px 12px; overflow:hidden; }
#tarteaucitronRoot #tarteaucitron .tarteaucitronH1 { display:block; color:var(--vip-tools-ink)!important; font-size:24px!important; line-height:1.3!important; padding:0!important; margin:0 0 18px!important; }
#tarteaucitronRoot #tarteaucitron #tarteaucitronInfo { margin:0 0 22px!important; padding:0!important; width:100%!important; max-width:none!important; border:0!important; background:transparent!important; color:var(--vip-tools-ink)!important; }
#tarteaucitronRoot #tarteaucitron #tarteaucitronInfo p { font-size:14px!important; line-height:1.65!important; color:inherit!important; }
#tarteaucitronRoot #tarteaucitron #tarteaucitronInfo br { display:none; }
#tarteaucitronRoot #tarteaucitronPrivacyUrlDialog { display:block; margin:12px auto 0; min-height:32px; font-size:12px!important; color:var(--vip-tools-ink)!important; text-decoration:underline; background:transparent!important; }
#tarteaucitronRoot button span { color:inherit!important; }
#tarteaucitronRoot #tarteaucitron #tarteaucitronClosePanel { position:relative!important; display:block!important; right:0!important; margin-left:auto!important; color:white!important; z-index:1; }
#tarteaucitronRoot #tarteaucitron .tarteaucitronMainLine { padding:24px!important; margin-top:0!important; }
#tarteaucitronRoot #tarteaucitron .tarteaucitronLine { min-height:0!important; }
#tarteaucitronRoot #tarteaucitron .tarteaucitronBorder .tarteaucitronLine { padding:20px!important; }
#tarteaucitronRoot #tarteaucitron #tarteaucitronServices_mandatory .tarteaucitronName { width:100%!important; }
#tarteaucitronRoot #tarteaucitron #tarteaucitronServices { border-radius:10px 0 10px 10px; height:auto!important; max-height:calc(100dvh - 120px)!important; overflow:auto!important; }
#tarteaucitronRoot #tarteaucitron { top:24px!important; }
#tarteaucitronRoot #tarteaucitron .tarteaucitronAllow::before,#tarteaucitronRoot #tarteaucitron .tarteaucitronDeny::before,#tarteaucitronRoot #tarteaucitron .tarteaucitronCheck::before,#tarteaucitronRoot #tarteaucitron .tarteaucitronCross::before { color:inherit!important; }
#tarteaucitronRoot #tarteaucitron #tarteaucitronSave { background:var(--vip-tools-ivory)!important; }
#tarteaucitronRoot #tarteaucitron .tarteaucitronInfoBox { background:var(--vip-tools-ink)!important; color:var(--vip-tools-ivory)!important; border:0!important; font-size:14px; line-height:1.6; }
#tarteaucitronRoot #tarteaucitron .tarteaucitronMainLine { background:var(--vip-tools-ivory)!important; border:0!important; }
#tarteaucitronRoot #tarteaucitron .tarteaucitronTitle button,#tarteaucitronRoot #tarteaucitron .tarteaucitronTitle .asCatToggleBtn { color:var(--vip-tools-ink)!important; background:#eee8d9!important; }
#tarteaucitronRoot #tarteaucitronClosePanel { background:var(--vip-tools-ink)!important; border-radius:6px 6px 0 0; min-height:44px; }
#tarteaucitronRoot #tarteaucitron .tarteaucitronAllow,#tarteaucitronRoot #tarteaucitron .tarteaucitronDeny { min-height:44px; padding:10px 14px; border-radius:4px; background:var(--vip-tools-ink)!important; color:white!important; }
#tarteaucitronRoot #tarteaucitron .tarteaucitronIsAllowed .tarteaucitronAllow[aria-pressed=true],#tarteaucitronRoot #tarteaucitron .tarteaucitronIsDenied .tarteaucitronDeny[aria-pressed=true] { outline:2px solid var(--vip-tools-gold); outline-offset:2px; }
.vip-menu-open .vip-tool,.vip-menu-open ._access,.vip-menu-open #tarteaucitronRoot,.vip-accessibility-open #tarteaucitronAlertBig { visibility:hidden!important; pointer-events:none!important; }
.tarteaucitron-modal-open .vip-tool,.tarteaucitron-modal-open ._access { visibility:hidden!important; pointer-events:none!important; }
@media(max-width:600px) {
    :root { --vip-tools-edge:16px; }
    .vip-tool,._access-icon._access { width:48px!important; height:48px!important; bottom:max(16px,env(safe-area-inset-bottom))!important; }
    #tarteaucitronRoot #tarteaucitronAlertBig { bottom:80px!important; max-width:calc(100vw - 32px)!important; padding:20px!important; max-height:calc(100dvh - 105px); overflow-y:auto; }
    ._access-menu._access { bottom:80px!important; width:calc(100vw - 32px)!important; }
    #tarteaucitronRoot #tarteaucitron { margin:0!important; left:16px!important; width:calc(100vw - 32px)!important; }
}
@media(prefers-reduced-motion:reduce) { .vip-tool,._access-icon._access,.vip-tool__label { transition:none; } }
