/* Public theme for vanilla-cookieconsent: TM58887 orange accent as the site buttons use it (custom.css --brand-orange #F26921, hover #D9551A, text-on-white #C4470D). */
#cc-main {
  --cc-font-family: "Montserrat", sans-serif;
  --cc-bg: #fff;
  --cc-primary-color: #1f2933;
  --cc-secondary-color: #4f5966;
  --cc-link-color: #c4470d;
  --cc-modal-border-radius: 18px;
  --cc-btn-border-radius: 12px;
  --cc-modal-margin: 16px;
  /* Accept all and Reject all share the primary style on purpose (equal prominence); no brand Red: reads as a stop colour. */
  --cc-btn-primary-bg: #f26921;
  --cc-btn-primary-color: #fff;
  --cc-btn-primary-border-color: #f26921;
  --cc-btn-primary-hover-bg: #d9551a;
  --cc-btn-primary-hover-color: #fff;
  --cc-btn-primary-hover-border-color: #d9551a;
  --cc-btn-secondary-bg: #eef1f4;
  --cc-btn-secondary-color: #1f2933;
  --cc-btn-secondary-border-color: #eef1f4;
  --cc-btn-secondary-hover-bg: #e1e6eb;
  --cc-btn-secondary-hover-color: #1f2933;
  --cc-btn-secondary-hover-border-color: #e1e6eb;
  --cc-separator-border-color: #e3e7ec;
  --cc-toggle-on-bg: #f26921;
  --cc-toggle-off-bg: #7b8794;
  --cc-toggle-on-knob-bg: #fff;
  --cc-toggle-off-knob-bg: #fff;
  --cc-toggle-enabled-icon-color: #f26921;
  --cc-toggle-disabled-icon-color: #7b8794;
  /* Always-on "necessary" toggle: neutral grey, a pink outline read as an error state. */
  --cc-toggle-readonly-bg: #d3d9e0;
  --cc-toggle-readonly-knob-bg: #fff;
  --cc-toggle-readonly-knob-icon-color: #7b8794;
  --cc-section-category-border: #e3e7ec;
  --cc-cookie-category-block-bg: #f6f7f9;
  --cc-cookie-category-block-border: #f6f7f9;
  --cc-cookie-category-block-hover-bg: #eef1f4;
  --cc-cookie-category-block-hover-border: #eef1f4;
  --cc-cookie-category-expanded-block-bg: transparent;
  --cc-cookie-category-expanded-block-hover-bg: #e1e6eb;
  --cc-overlay-bg: rgba(16, 22, 30, .45);
  --cc-footer-bg: #f6f7f9;
  --cc-footer-color: #4f5966;
  --cc-footer-border-color: #e3e7ec;
  --cc-webkit-scrollbar-bg: #d3d9e0;
  --cc-webkit-scrollbar-hover-bg: #b4bcc6;
}
/* iOS-style surface: soft layered shadow, hairline border. */
#cc-main .cm, #cc-main .pm {
  border: 1px solid rgba(16, 22, 30, .06);
  box-shadow: 0 2px 6px rgba(16, 22, 30, .06), 0 18px 48px rgba(16, 22, 30, .18);
}
#cc-main .cm__title, #cc-main .pm__title { font-weight: 700; letter-spacing: -.2px; }
#cc-main .cm__desc, #cc-main .pm__section-desc { line-height: 1.55; }
#cc-main .cm__btn, #cc-main .pm__btn { min-height: 44px; font-weight: 600; font-size: 14px; }
#cc-main .cm__desc a, #cc-main .cm__links a, #cc-main .pm__section-desc a { font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
/* Library focuses the modal/title (tabindex=-1) on open; Chrome marks that :focus-visible, so ring only real controls. */
#cc-main :focus, #cc-main :focus-visible { outline: none; }
#cc-main :is(button, a):focus-visible { outline: 2px solid #f26921; outline-offset: 2px; }
#cc-main .section__toggle:focus-visible ~ .toggle__icon { box-shadow: 0 0 0 2px #fff, 0 0 0 4px #f26921; }
#cc-main .cm__btn--secondary:focus-visible, #cc-main .pm__btn--secondary:focus-visible { outline-color: #1f2933; }
@supports (backdrop-filter: blur(1px)) {
  #cc-main .pm-overlay { backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
}
@media (prefers-reduced-motion: reduce) {
  #cc-main { --cc-modal-transition-duration: 0s; }
}

/* Map placeholder: fills the map box the loader reserved, so consent does not shift the layout. */
.cc-map-ph {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px;
  box-sizing: border-box; width: 100%; height: 100%; min-height: 220px; padding: 20px;
  border-radius: inherit; background: #f3f5f8; color: #3e4852;
  font-family: "Montserrat", sans-serif; text-align: center;
}
.cc-map-ph::before {
  content: ""; width: 36px; height: 36px; opacity: .55;
  background: center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233e4852' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11.5A7 7 0 0 1 19 9.5C19 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E");
}
.cc-map-ph__note { max-width: 34em; margin: 0; font-size: 14px; line-height: 1.5; }
.cc-map-ph__note span { display: block; }
.cc-map-ph__note span:first-child { font-weight: 600; color: #1f2933; }
.cc-map-ph__note a { color: #c4470d; text-decoration: underline; }
.cc-map-ph__btn {
  min-height: 44px; padding: 0 20px; border: 0; border-radius: 12px;
  background: #f26921; color: #fff; font: 600 14px/44px "Montserrat", sans-serif; cursor: pointer;
  transition: background-color .18s cubic-bezier(.32, .72, 0, 1);
}
.cc-map-ph__btn:hover { background: #d9551a; }
.cc-map-ph__btn:focus-visible, .cc-map-ph__link:focus-visible { outline: 2px solid #f26921; outline-offset: 2px; }
.cc-map-ph__link {
  padding: 4px 8px; border: 0; background: none; color: #c4470d; cursor: pointer;
  font: 600 13px/1.4 "Montserrat", sans-serif; text-decoration: underline; text-underline-offset: 2px;
}
/* Placeholder sits above absolutely positioned map layers (footer iframe covered it and ate the click). */
.cc-map-ph { position: absolute; inset: 0; z-index: 5; min-height: 0; overflow: auto; }
iframe[data-cc-src]:not([src]) { display: none; }

/* Floating reopen button, hidden while the banner or the settings modal is open (library html classes). */
.cc-fab {
  position: fixed; left: 16px; bottom: 16px; z-index: 990; display: grid; place-items: center;
  width: 44px; height: 44px; padding: 0; border: 1px solid rgba(16, 22, 30, .08); border-radius: 50%;
  background: rgba(255, 255, 255, .92); color: #f26921; cursor: pointer;
  box-shadow: 0 2px 6px rgba(16, 22, 30, .08), 0 8px 24px rgba(16, 22, 30, .16);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  transition: transform .18s cubic-bezier(.32, .72, 0, 1), background-color .18s;
}
.cc-fab:hover { transform: translateY(-2px); background: #fff; }
.cc-fab:focus { outline: none; }
.cc-fab:focus-visible { outline: 2px solid #f26921; outline-offset: 2px; }
.cc-fab::after {
  content: attr(data-tip); position: absolute; left: calc(100% + 10px); top: 50%; transform: translateY(-50%);
  padding: 6px 10px; border-radius: 8px; background: #1f2933; color: #fff; white-space: nowrap;
  font: 600 12px/1.3 "Montserrat", sans-serif; opacity: 0; pointer-events: none; transition: opacity .15s;
}
.cc-fab:hover::after, .cc-fab:focus-visible::after { opacity: 1; }
html.show--consent .cc-fab, html.show--preferences .cc-fab { display: none; }
@media print { .cc-fab { display: none; } }

/* Theme sets html{font-size:10px}; vendor rem sizes (box 24rem = 240px) collapse; restate in px. */
#cc-main .cm--box { max-width: 384px; }

/* Bar inline: one row on desktop (text left, buttons right), floating rounded sheet. */
#cc-main .cm--bar.cm--inline {
  left: 16px; right: 16px; bottom: 16px; width: auto; max-width: 1200px; margin: 0 auto;
  border-radius: 18px;
}
/* Buttons sit on the last line of the description (user request), not centred on the title+text block. */
#cc-main .cm--bar.cm--inline .cm__body { max-width: none; align-items: flex-end; gap: 24px; padding: 20px 24px; }
#cc-main .cm--bar.cm--inline .cm__texts { padding: 0; flex: 1 1 auto; }
#cc-main .cm--bar.cm--inline .cm__title { padding: 0 0 4px; font-size: 16px; }
#cc-main .cm--bar.cm--inline .cm__desc { padding: 0; font-size: 14px; max-height: none; }
/* Order Settings -> Reject -> Accept: groups flattened so buttons from both vendor groups share one grid. */
#cc-main .cm--bar.cm--inline .cm__btns {
  flex: 0 0 auto; display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 8px; max-width: none; padding: 0; border: 0;
}
#cc-main .cm__btn-group, #cc-main .pm__btn-group { display: contents !important; }
#cc-main [data-role="show"], #cc-main [data-role="save"] { order: 1; }
#cc-main [data-role="necessary"] { order: 2; }
#cc-main [data-role="all"] { order: 3; }
#cc-main .cm--bar.cm--inline .cm__btn { margin: 0 !important; min-width: 0; padding: 0 20px; white-space: nowrap; }
#cc-main .pm__footer { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 8px; }
/* Beat vendor mobile .pm__btn+.pm__btn margin-top (it stretched the grid row unevenly). */
#cc-main .pm__footer .pm__btn, #cc-main .pm__footer .pm__btn + .pm__btn { margin: 0 !important; }

/* Row layout only from 992: below it the text column wraps to 6-8 lines (pl); stack text over one button row. */
@media (max-width: 991px) {
  #cc-main .cm--bar.cm--inline { left: 8px; right: 8px; bottom: 8px; }
  #cc-main .cm--bar.cm--inline .cm__body { flex-direction: column; align-items: stretch; gap: 10px; padding: 14px 16px; }
  #cc-main .cm--bar.cm--inline .cm__btn { white-space: normal; padding: 0 12px; }
}
/* Vendor @media(max-width:640px) uses !important on body/btns/groups, so these must too. */
@media screen and (max-width: 640px) {
  #cc-main .cm--bar.cm--inline .cm__body { padding: 12px 16px 6px !important; gap: 8px; }
  #cc-main .cm--bar.cm--inline .cm__title, #cc-main .cm--bar.cm--inline .cm__desc { padding-left: 0 !important; padding-right: 0 !important; }
  #cc-main .cm--bar.cm--inline .cm__title { font-size: 15px; padding-bottom: 2px; }
  #cc-main .cm--bar.cm--inline .cm__desc { font-size: 13px; line-height: 1.45; margin-top: 4px !important; }
  /* Mobile: Settings full width, then Reject | Accept; ~30% height budget. */
  #cc-main .cm--bar.cm--inline .cm__btns, #cc-main .pm__footer {
    display: grid !important; grid-auto-flow: row; grid-template-columns: 1fr 1fr; gap: 6px; padding: 0 !important; border-top: 0 !important;
  }
  #cc-main .pm__footer { padding: 16px !important; border-top: 1px solid var(--cc-separator-border-color) !important; }
  #cc-main .cm--bar.cm--inline .cm__btn, #cc-main .pm__btn { min-height: 38px; font-size: 13px; width: auto !important; }
  #cc-main [data-role="show"], #cc-main [data-role="save"] { grid-column: 1 / -1; }
  #cc-main .cm--bar.cm--inline [data-role="show"] { min-height: 34px; }
  #cc-main .cm__links a, #cc-main .cm__link-group > * { font-size: 13px; line-height: 1.3; }
  #cc-main .cm--bar.cm--inline .cm__footer { padding: 2px 0 8px; }
  #cc-main .cm--bar.cm--inline .cm__link-group { gap: 2px 14px; flex-wrap: wrap; }
  #cc-main .cm--bar.cm--inline .cm__links { padding: 0 8px !important; }
  #cc-main .cm--bar.cm--inline .cm__link-group > * { white-space: nowrap; }
}

/* Banner edges = theme .container steps (750/970/1170/1250 at 768/992/1200/1280, custom.css HOME canon). */
@media (min-width: 768px) {
  #cc-main .cm--bar.cm--inline { left: 0; right: 0; width: 750px; max-width: none; margin: 0 auto; }
}
@media (min-width: 992px) { #cc-main .cm--bar.cm--inline { width: 970px; } }
@media (min-width: 1200px) { #cc-main .cm--bar.cm--inline { width: 1170px; } }
@media (min-width: 1280px) { #cc-main .cm--bar.cm--inline { width: 1250px; } }
