/* ESPAVEL Widget v17 - isolated first-party cookie controls. Does not restyle the theme. */
.hb-cookie-launcher[hidden], .hb-cookie-modal [hidden] { display: none !important; }
.hb-cookie-launcher {
    position: fixed; z-index: 1045; right: 20px; bottom: calc(20px + env(safe-area-inset-bottom));
    width: 56px; height: 56px; border-radius: 50%;
    display: grid; place-items: center;
    background: var(--hotel-surface, #fff); color: #c7791e;
    border: 1px solid var(--hotel-border-color, #e5e9ec);
    box-shadow: 0 8px 32px rgba(18,34,45,.18);
    cursor: pointer; font-size: 27px; transition: transform .2s, box-shadow .2s;
}
.hb-cookie-launcher:hover { transform: translateY(-2px); box-shadow: 0 12px 35px rgba(18,34,45,.24); }
.hb-cookie-launcher:focus-visible { outline: 3px solid var(--hotel-secondary,#a8804d); outline-offset: 4px; }
body.hb-results-page .hb-cookie-launcher { bottom: calc(20px + env(safe-area-inset-bottom)); }
@media (max-width: 991.98px) { body.hb-results-page .hb-cookie-launcher { bottom: calc(104px + env(safe-area-inset-bottom)); } }
.hb-cookie-modal {
    --hb-consent-accent: #ff5933;
    --hb-consent-ink: #16314b;
    --hb-consent-subtle: #60748b;
    --hb-consent-border: #e1e7eb;
    font-family: var(--hotel-font-body, 'Manrope', sans-serif);
    color: var(--hb-consent-ink);
}
.hb-cookie-modal .modal-dialog { --bs-modal-width: 940px; max-width: min(940px, calc(100vw - 32px)); }
.hb-cookie-modal .modal-content {
    overflow: hidden; border: 1px solid var(--hb-consent-border); border-radius: 26px;
    background: #fff; box-shadow: 0 24px 80px rgba(16,33,49,.28);
}
.hb-cookie-modal .hb-cookie-heading {
    border-bottom: 1px solid var(--hb-consent-border);
    padding: 28px 32px 24px; gap: 16px; align-items: flex-start;
    background: #fff;
}
.hb-cookie-heading-main { display:flex; gap:20px; align-items:flex-start; flex: 1; min-width:0; }
.hb-cookie-title-icon {
    display:grid;place-items:center; flex:0 0 64px; height:64px; border-radius:19px;
    background:#fff0ea;color:var(--hb-consent-accent);font-size:30px;
}
.hb-cookie-title { font-size:29px; font-weight:800; letter-spacing:-.03em; line-height:1.18; margin:0 0 7px; color:var(--hb-consent-ink);font-family:var(--hotel-font-body,'Manrope',sans-serif); }
.hb-cookie-intro { font-size:14.5px; line-height:1.7; color:var(--hb-consent-subtle); margin:0; max-width:75ch; }
.hb-cookie-close { display:grid;place-items:center; width:46px;height:46px; flex-shrink:0; background:#fff;border:1px solid var(--hb-consent-border); border-radius:15px; color:var(--hb-consent-ink); font-size:22px; cursor:pointer; }
.hb-cookie-close:hover { background:#f5f7f9; }
.hb-cookie-modal .hb-cookie-body { padding:24px 32px 18px; overflow-y:auto; }
.hb-cookie-category { display:flex; align-items:center; gap:16px; padding:20px; border:1px solid var(--hb-consent-border); border-radius:19px; margin-bottom:12px; background:#fff; }
.hb-cookie-category-icon { width:54px;height:54px; flex:0 0 54px; border-radius:15px; display:grid;place-items:center; background:#f5f7f9; color:var(--hb-consent-accent); font-size:23px; }
.hb-cookie-category-copy { flex:1; min-width:0; }
.hb-cookie-category-head { display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:7px; }
.hb-cookie-category-head h3 { font-size:16px; font-weight:800; margin:0; letter-spacing:0; color:var(--hb-consent-ink);font-family:var(--hotel-font-body,'Manrope',sans-serif); }
.hb-cookie-category-copy p { margin:0; font-size:13.5px; line-height:1.6; color:var(--hb-consent-subtle); }
.hb-cookie-required-tag { font-size:11.5px; font-weight:800; background:#e8f8ed; border-radius:999px; color:#16753f; padding:4px 10px; }
.hb-cookie-switch { position:relative;display:block;flex:0 0 60px;width:60px;height:32px;cursor:pointer; }
.hb-cookie-switch input { position:absolute; width:100%;height:100%;opacity:0;margin:0;cursor:pointer; }
.hb-cookie-switch > span { position:absolute;inset:0;border-radius:99px;background:#d5d9df;transition:background .2s;pointer-events:none; }
.hb-cookie-switch > span::before { content:""; position:absolute; width:25px;height:25px;left:4px;top:3.5px; border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.18);transition:transform .2s; }
.hb-cookie-switch input:checked + span { background:var(--hb-consent-accent); }
.hb-cookie-switch input:checked + span::before { transform:translateX(27px); }
.hb-cookie-switch input:focus-visible + span { outline:3px solid #1b3a4b;outline-offset:3px; }
.hb-cookie-switch input:disabled { cursor:not-allowed; }
.hb-cookie-policy-row { margin-top:16px;padding-top:18px; border-top:1px solid var(--hb-consent-border); }
.hb-cookie-policy-link, .hb-cookie-policy-pending { display:inline-flex;gap:9px;align-items:center;font-weight:700;font-size:13.5px;border-radius:12px; }
.hb-cookie-policy-link { border:1px solid var(--hb-consent-border); padding:11px 14px; text-decoration:none;color:var(--hb-consent-ink); }
.hb-cookie-policy-link:hover { color:var(--hb-consent-accent); background:#f9fafb; }
.hb-cookie-policy-link .bi:first-child { color:var(--hb-consent-accent); }
.hb-cookie-policy-pending { color:var(--hb-consent-subtle); font-weight:500; }
.hb-cookie-modal .hb-cookie-actions { background:#f9fafb;border-top:1px solid var(--hb-consent-border);padding:18px 32px 22px;display:flex;justify-content:flex-end;gap:10px; }
.hb-cookie-action { min-height:46px;padding:10px 17px;font-size:13px;font-weight:800;border-radius:12px; cursor:pointer; font-family:var(--hotel-font-body,'Manrope',sans-serif);display:inline-flex;align-items:center;justify-content:center;gap:9px;transition:background .2s; }
.hb-cookie-only { color:var(--hb-consent-ink);background:#f3f5f7;border:1px solid #e0e5e9; }
.hb-cookie-only:hover { background:#e7ebef; }
.hb-cookie-save { color:var(--hb-consent-accent);background:#fff;border:1px solid var(--hb-consent-accent); }
.hb-cookie-save:hover { background:#fff2ed; }
.hb-cookie-accept { color:#fff;background:var(--hb-consent-accent);border:1px solid var(--hb-consent-accent); }
.hb-cookie-accept:hover { background:#e64b27; }
@media (max-width: 767.98px) {
    .hb-cookie-modal .modal-dialog { margin: 12px auto; max-width:calc(100vw - 24px); }
    .hb-cookie-modal .modal-content { border-radius:20px; max-height:calc(100dvh - 24px); }
    .hb-cookie-modal .hb-cookie-heading { padding:18px; }
    .hb-cookie-heading-main { gap:12px; }
    .hb-cookie-title-icon { width:46px;height:46px;flex-basis:46px;border-radius:14px;font-size:22px; }
    .hb-cookie-title {font-size:21px;}
    .hb-cookie-intro {font-size:12.5px;line-height:1.55;}
    .hb-cookie-close {width:36px;height:36px;border-radius:11px;font-size:17px;}
    .hb-cookie-modal .hb-cookie-body {padding:14px 16px;}
    .hb-cookie-category {padding:14px;gap:10px;border-radius:14px;}
    .hb-cookie-category-icon {flex-basis:38px;width:38px;height:38px;font-size:18px;border-radius:10px;}
    .hb-cookie-category-head h3 {font-size:13.5px;}
    .hb-cookie-category-copy p {font-size:11.5px;}
    .hb-cookie-required-tag {font-size:10px;padding:3px 7px;}
    .hb-cookie-switch {flex-basis:49px;width:49px;height:28px;}
    .hb-cookie-switch > span::before {width:21px;height:21px;top:3.5px;left:3px;}
    .hb-cookie-switch input:checked + span::before {transform:translateX(22px);}
    .hb-cookie-modal .hb-cookie-actions {padding:12px 16px 16px;display:grid;grid-template-columns:1fr 1fr;}
    .hb-cookie-only {grid-column:1 / -1;}
    .hb-cookie-action {font-size:12px;padding:8px;}
    .hb-cookie-launcher {width:50px;height:50px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));font-size:25px;}
}

.hb-cookie-svg {width:1em;height:1em;display:block;stroke:currentColor;flex-shrink:0;}
