/*
Theme Name: BoxOffice Child Theme
Template: boxoffice
Theme URI: https://boxoffice.axiomthemes.com/
Description: BoxOffice Child Theme
Author: AxiomThemes
Author URI: https://axiomthemes.com/
Version: 1.0.1
Tested up to: 6.8
Requires at least: 5.5
Requires PHP: 7.4
License: GPLv2 or later
Text Domain: boxoffice
*/

/* =Child-Theme customization starts here
------------------------------------------------------------ */


/* =======================================================================
   Single Event gallery/slider: FULL content width + exact 3:2 (1920×1280)
   crop, NO border radius. Works for both em_* and ep_* post types.
   ======================================================================= */

/* 0) Uncap EventPrime/Slick widths so the gallery can use full CONTENT width */
.single-em_event .ep-single-event-image,
.single-ep_event .ep-single-event-image,
.single-em_event #ep_single_event_image_gallery,
.single-ep_event #ep_single_event_image_gallery,
.single-em_event .ep-single-event-image .slick-list,
.single-ep_event .ep-single-event-image .slick-list,
.single-em_event .ep-single-event-image .slick-track,
.single-ep_event .ep-single-event-image .slick-track,
.single-em_event .dv-up-single_event_image_box,
.single-ep_event .dv-up-single_event_image_box {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* 1) Constrain the outer container to a 3:2 box and remove rounding */
.single-em_event .ep-single-event-image,
.single-ep_event .ep-single-event-image,
.single-em_event .ep-single-event-slide-container,
.single-ep_event .ep-single-event-slide-container {
  position: relative;
  width: 100%;
  aspect-ratio: 3 / 2;          /* 1920 : 1280 */
  overflow: hidden;
  border-radius: 0 !important;
}

/* 2) Make all Slick internals and slides fill the 3:2 box vertically */
.single-em_event .ep-single-event-image .slick-list,
.single-ep_event .ep-single-event-image .slick-list,
.single-em_event .ep-single-event-image .slick-track,
.single-ep_event .ep-single-event-image .slick-track,
.single-em_event .ep-single-event-image .slick-slide,
.single-ep_event .ep-single-event-image .slick-slide,
.single-em_event .ep-single-event-image .slick-slide > div,
.single-ep_event .ep-single-event-image .slick-slide > div,
.single-em_event #ep_single_event_image_gallery,
.single-ep_event #ep_single_event_image_gallery,
.single-em_event #ep_single_event_image_gallery li,
.single-ep_event #ep_single_event_image_gallery li,
.single-em_event #ep_single_event_image_gallery li > *,
.single-ep_event #ep_single_event_image_gallery li > * {
  height: 100% !important;
}

/* 3) Crop images so every slide renders the same width/height (3:2) */
.single-em_event .ep-single-event-image img,
.single-ep_event .ep-single-event-image img,
.single-em_event #ep_single_event_image_gallery img,
.single-ep_event #ep_single_event_image_gallery img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  object-position: center;
  display: block;
  border-radius: 0 !important;
}

/* 4) Fallback when aspect-ratio is unsupported */
@supports not (aspect-ratio: 3 / 2) {
  .single-em_event .ep-single-event-image,
  .single-ep_event .ep-single-event-image,
  .single-em_event .ep-single-event-slide-container,
  .single-ep_event .ep-single-event-slide-container {
    height: 640px;
  }
  .single-em_event .ep-single-event-image .slick-list,
  .single-ep_event .ep-single-event-image .slick-list { position: absolute; inset: 0; }
}

/* === Uncap all EP wrappers so the gallery can use the full content width === */
.single-em_event .ep-slide-align-center,
.single-ep_event .ep-slide-align-center,
.single-em_event .dv-up-single_event_image_box,
.single-ep_event .dv-up-single_event_image_box,
.single-em_event .dv-up-single_event_image_box-col-12,
.single-ep_event .dv-up-single_event_image_box-col-12,
.single-em_event .ep-single-event-image,
.single-ep_event .ep-single-event-image,
.single-em_event #ep_single_event_image_gallery,
.single-ep_event #ep_single_event_image_gallery {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  display: block !important;
  text-align: initial !important;
}
.single-em_event .dv-up-single_event_image_box > *,
.single-ep_event .dv-up-single_event_image_box > * {
  width: 100% !important;
  max-width: none !important;
}


/* =====================================================================
   Single Event — ONE image hero: full content width + 3:2 crop (1920×1280)
   Safe for both em_* and ep_* post types. Won't affect the gallery.
   ===================================================================== */

/* Uncap the column that holds the hero image */
.single-em_event  #ep_single_event_image,
.single-ep_event  #ep_single_event_image{
  width:100% !important;
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
}

/* Make the slide container a fixed 3:2 box with no rounding */
.single-em_event  #ep_single_event_image .ep-single-event-slide-container,
.single-ep_event  #ep_single_event_image .ep-single-event-slide-container{
  position:relative;
  display:block !important;
  width:100% !important;
  aspect-ratio:3 / 2;          /* 1920 : 1280 */
  overflow:hidden;
  border-radius:0 !important;
  text-align:initial !important;   /* kill center gaps */
}

/* Fill & crop the single IMG only (gallery uses lists, so this won't match) */
.single-em_event  #ep_single_event_image .ep-single-event-slide-container > img,
.single-ep_event  #ep_single_event_image .ep-single-event-slide-container > img{
  width:100% !important;
  height:100% !important;
  object-fit:cover;
  object-position:center;
  display:block;
  border-radius:0 !important;
}

/* Fallback for old browsers without aspect-ratio */
@supports not (aspect-ratio: 3 / 2){
  .single-em_event  #ep_single_event_image .ep-single-event-slide-container,
  .single-ep_event  #ep_single_event_image .ep-single-event-slide-container{
    height:640px;               /* pick the height you prefer */
  }
}


/* =========================================================================
   Full-width layout ONLY for EventPrime pages
   (uses our custom body class added in functions.php: .ep-fullwidth)
   ========================================================================= */
.ep-fullwidth .content_wrap .content,
.ep-fullwidth .page_content_wrap .content {
  width: 100% !important;
  max-width: 1290px;  /* match site container */
  margin: 0 auto;
}
.ep-fullwidth .content_wrap .sidebar,
.ep-fullwidth .page_content_wrap .sidebar { display: none !important; }

/* Safety net */
.post-type-archive-em_performer .content_wrap .content,
.post-type-archive-ep_performer .content_wrap .content,
.post-type-archive-em_venue .content_wrap .content,
.post-type-archive-ep_venue .content_wrap .content,
.post-type-archive-em_organizer .content_wrap .content,
.post-type-archive-ep_organizer .content_wrap .content,
.tax-em_event_type .content_wrap .content,
.tax-ep_event_type .content_wrap .content,
.single-em_performer .content_wrap .content,
.single-ep_performer .content_wrap .content,
.single-em_venue .content_wrap .content,
.single-ep_venue .content_wrap .content,
.single-em_organizer .content_wrap .content,
.single-ep_organizer .content_wrap .content {
  width: 100% !important; max-width: 1290px; margin: 0 auto;
}
.post-type-archive-em_performer .content_wrap .sidebar,
.post-type-archive-ep_performer .content_wrap .sidebar,
.post-type-archive-em_venue .content_wrap .sidebar,
.post-type-archive-ep_venue .content_wrap .sidebar,
.post-type-archive-em_organizer .content_wrap .sidebar,
.post-type-archive-ep_organizer .content_wrap .sidebar,
.tax-em_event_type .content_wrap .sidebar,
.tax-ep_event_type .content_wrap .sidebar,
.single-em_performer .content_wrap .sidebar,
.single-ep_performer .content_wrap .sidebar,
.single-em_venue .content_wrap .sidebar,
.single-ep_venue .content_wrap .sidebar,
.single-em_organizer .content_wrap .sidebar,
.single-ep_organizer .content_wrap .sidebar { display: none !important; }


/* Hide empty social box on Performer & Organizer pages (CSS version) */
.single-em_performer .ep-single-box-social:not(:has(a)),
.single-ep_performer .ep-single-box-social:not(:has(a)),
.single-em_organizer .ep-single-box-social:not(:has(a)),
.single-ep_organizer .ep-single-box-social:not(:has(a)) { display: none !important; }


/* =========================================================================
   Hide BoxOffice post-meta UI on EventPrime views only
   ========================================================================= */
.ep-isolate :is(
  .post_meta,
  .post_meta_single,
  .post_meta_other,
  .entry-footer,
  .post_footer,
  .post_meta .post_share,
  .socials_share,
  .nav-links,
  .nav-links-single,
  .related_wrap,
  .related_posts,
  .related_content
){
  display: none !important;
}


/* =========================================================================
   EP ISOLATION — neutralize BoxOffice input/table overrides on EP pages,
   then rely on EP + Select2 defaults.
   Scope: body.ep-isolate …
   ========================================================================= */

/* Base reset for form controls */
.ep-isolate :where(
  input[type="text"], input[type="search"], input[type="email"], input[type="url"],
  input[type="number"], input[type="tel"], input[type="password"], textarea, select
){
  font: inherit; color: inherit; background: #fff;
  border: 1px solid var(--theme-font_bd_color, #e2e5ea);
  border-radius: 8px; box-shadow: none; height: 44px;
  padding: 10px 12px; box-sizing: border-box;
}

/* Select2 single */
.ep-isolate .select2-container--default .select2-selection--single{
  height: 44px; border: 1px solid #e2e5ea; border-radius: 8px;
  display: flex; align-items: center; padding: 0 10px; box-shadow: none;
}
.ep-isolate .select2-container--default .select2-selection--single .select2-selection__rendered{
  line-height: 1.2; padding-left: 0; color: inherit;
}
.ep-isolate .select2-container--default .select2-selection--single .select2-selection__arrow{
  height: 100%; right: 8px;
}

/* Select2 MULTI (Actors) */
.ep-isolate .select2-container{ width: 100% !important; }
.ep-isolate .select2-container--default .select2-selection--multiple{
  min-height: 44px; border: 1px solid #e2e5ea; border-radius: 8px; background: #fff;
  display: flex; align-items: center; flex-wrap: wrap; gap: 6px;
  padding: 6px 10px; box-shadow: none;
}
.ep-isolate .select2-selection--multiple .select2-selection__rendered{
  display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0;
}
.ep-isolate .select2-selection__choice{
  background: #f1f3f5; border: 0; border-radius: 999px; padding: 2px 8px; color: inherit;
}
.ep-isolate .select2-selection__choice__remove{ margin-right: 6px; opacity: .6; }
.ep-isolate .select2-selection--multiple .select2-search__field{
  height: 28px; line-height: 28px; margin: 0; border: 0 !important; outline: 0 !important;
}
.ep-isolate .select2-container--open .select2-dropdown{ z-index: 9999; }

/* Datepickers: avoid theme table overrides */
.ep-isolate .ui-datepicker,
.ep-isolate .flatpickr-calendar,
.ep-isolate .datepicker{ font: inherit; }
.ep-isolate .ui-datepicker,
.ep-isolate .ui-datepicker table,
.ep-isolate .ui-datepicker th,
.ep-isolate .ui-datepicker td{
  background: transparent; color: inherit; border: 0;
}
.ep-isolate .ui-datepicker .ui-datepicker-header{
  background: #f5f7fa; border: 1px solid #e2e5ea; border-radius: 8px 8px 0 0;
}
.ep-isolate .ui-datepicker table{ width: 100%; border-collapse: separate; }
.ep-isolate .ui-datepicker th{ font-weight: 600; color: #111; }
.ep-isolate .ui-datepicker td a{ border-radius: 6px; }

/* Optional: better contrast for agenda link text */
.ep-isolate .ep-agenda-content .ep-agenda-event-title a { color: #111; }


/* =======================================================================
   EP ISOLATION – Datepicker polish (jQuery UI) for EventPrime pages only
   Scoped with body.ep-isolate so BoxOffice can't override it
   ======================================================================= */

.ep-isolate .ui-datepicker {
  --dp-border: #e2e5ea;
  --dp-bg: #fff;
  --dp-head-bg: #f6f8fb;
  --dp-text: #111;
  --dp-muted: #6b7280;
  --dp-accent: #a22d2d;

  position: absolute;                /* jQuery UI inline */
  z-index: 100000 !important;        /* above EP filter popover */
  background: var(--dp-bg);
  color: var(--dp-text);
  border: 1px solid var(--dp-border);
  border-radius: 10px;
  box-shadow: 0 10px 30px rgba(0,0,0,.08);
  padding: 8px;
  font: inherit;
}

.ep-isolate .ui-datepicker .ui-datepicker-header{
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--dp-head-bg);
  border: 1px solid var(--dp-border);
  border-radius: 8px;
  padding: 8px 12px;
  margin: -4px -4px 8px;
}

.ep-isolate .ui-datepicker .ui-datepicker-title{
  font-weight: 600;
  color: var(--dp-text);
  margin: 0 36px;                    /* space for nav buttons */
}

/* Prev/Next – replace missing jQuery UI icons with our own */
.ep-isolate .ui-datepicker-prev,
.ep-isolate .ui-datepicker-next{
  position: absolute;
  top: 10px;
  width: 28px;
  height: 28px;
  border-radius: 6px;
  cursor: pointer;
  display: grid;
  place-items: center;
  color: var(--dp-text);
}
.ep-isolate .ui-datepicker-prev{ left: 10px; }
.ep-isolate .ui-datepicker-next{ right: 10px; }
.ep-isolate .ui-datepicker-prev span,
.ep-isolate .ui-datepicker-next span{ display:none; }     /* hide default icon */
.ep-isolate .ui-datepicker-prev::after{ content: '‹'; font-size: 20px; line-height: 1; }
.ep-isolate .ui-datepicker-next::after{ content: '›'; font-size: 20px; line-height: 1; }
.ep-isolate .ui-datepicker-prev:hover,
.ep-isolate .ui-datepicker-next:hover{ background: rgba(0,0,0,.05); }

/* Calendar grid */
.ep-isolate .ui-datepicker table{
  width: 100%;
  border-collapse: separate;
  border-spacing: 6px 6px;
}
.ep-isolate .ui-datepicker th{
  text-transform: uppercase;
  font-size: 11px;
  letter-spacing: .02em;
  color: var(--dp-muted);
  padding: 4px 0;
  font-weight: 600;
}
.ep-isolate .ui-datepicker td{ padding: 0; }
.ep-isolate .ui-datepicker td a,
.ep-isolate .ui-datepicker td span{
  display: block;
  text-align: center;
  padding: 6px 0;
  border: 1px solid var(--dp-border);
  border-radius: 8px;
  color: var(--dp-text);
  background: #fff;
}
.ep-isolate .ui-datepicker td a:hover{
  background: #f0f4f8;
}

/* Today / selected */
.ep-isolate .ui-datepicker .ui-datepicker-today a{
  border-color: var(--dp-accent);
}
.ep-isolate .ui-datepicker .ui-state-active{
  background: var(--dp-accent) !important;
  color: #fff !important;
  border-color: var(--dp-accent) !important;
}

/* Disabled days */
.ep-isolate .ui-datepicker .ui-state-disabled,
.ep-isolate .ui-datepicker .ui-state-disabled a{
  opacity: .45;
  pointer-events: none;
  color: var(--dp-muted);
  background: #fafbfc;
}


/* Datepicker compact sizing so everything fits inside the EP filter */
.ep-isolate .ui-datepicker{
  font-size: 12px;                 /* was inherited; make the whole widget smaller */
}

/* Tighter header + arrows */
.ep-isolate .ui-datepicker .ui-datepicker-title{
  font-size: 13px;
  margin: 0 30px;                  /* leave room for the arrows */
}
.ep-isolate .ui-datepicker-prev,
.ep-isolate .ui-datepicker-next{
  width: 24px;
  height: 24px;
  top: 8px;
}
.ep-isolate .ui-datepicker-prev::after,
.ep-isolate .ui-datepicker-next::after{ font-size: 18px; }

/* Compact grid */
.ep-isolate .ui-datepicker table{ border-spacing: 4px 4px; }
.ep-isolate .ui-datepicker th{
  font-size: 10px;
  letter-spacing: .01em;
}
.ep-isolate .ui-datepicker td a,
.ep-isolate .ui-datepicker td span{
  padding: 4px 0;                  /* was 6px; tighten */
  border-radius: 6px;              /* slightly smaller corners */
}

/* Optional: make it even tighter on small screens */
@media (max-width: 782px){
  .ep-isolate .ui-datepicker{ font-size: 11px; }
}


/* ===== EP filters: keep your styling for non-Select2 controls to match Select2 ===== */
.ep-search-filter-overlay,
.dv-ep-search-filters {
  --ep-fctl-height: 42px; --ep-fctl-radius: 8px;
  --ep-fctl-border: #dfe3e8; --ep-fctl-bg: #fff; --ep-fctl-focus: #a22d2d;
}
.ep-search-filter-overlay .ep-form-control,
.dv-ep-search-filters .ep-form-control {
  width: 100% !important;
  height: var(--ep-fctl-height) !important;
  padding: 8px 12px !important;
  border: 1px solid var(--ep-fctl-border) !important;
  border-radius: var(--ep-fctl-radius) !important;
  background: var(--ep-fctl-bg) !important;
  box-shadow: none !important;
  outline: none !important;
}
.ep-search-filter-overlay .ep-form-control::placeholder,
.dv-ep-search-filters .ep-form-control::placeholder { color: #9096a2; }
.ep-search-filter-overlay .ep-input-group:focus-within .ep-form-control,
.dv-ep-search-filters .ep-input-group:focus-within .ep-form-control {
  border-color: var(--ep-fctl-focus) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--ep-fctl-focus), transparent 85%);
}
.ep-search-filter-overlay .select2-container,
.dv-ep-search-filters .select2-container { width: 100% !important; }
.ep-search-filter-overlay .select2-container .select2-selection--single,
.dv-ep-search-filters .select2-container .select2-selection--single {
  height: var(--ep-fctl-height) !important;
  border: 1px solid var(--ep-fctl-border) !important;
  border-radius: var(--ep-fctl-radius) !important;
}
.ep-search-filter-overlay .select2-container .select2-selection__rendered,
.dv-ep-search-filters .select2-container .select2-selection__rendered {
  line-height: calc(var(--ep-fctl-height) - 2px) !important;
  padding-left: 12px !important;
}
.ep-search-filter-overlay .select2-container .select2-selection__arrow,
.dv-ep-search-filters .select2-container .select2-selection__arrow {
  height: var(--ep-fctl-height) !important;
}
.ep-search-filter-overlay .select2-dropdown,
.dv-ep-search-filters .select2-dropdown {
  border: 1px solid var(--ep-fctl-border) !important;
  border-radius: var(--ep-fctl-radius) !important;
  overflow: hidden;
}
/* restore full box borders in case theme flattened inputs */
.ep-search-filter-overlay .ep-form-control,
.dv-ep-search-filters .ep-form-control,
.ep-search-filter-overlay .select2-container .select2-selection--single,
.dv-ep-search-filters .select2-container .select2-selection--single {
  border-bottom: 1px solid var(--ep-fctl-border) !important;
  background-clip: padding-box !important;
}


/* Hide the orange Event Type line in all EP list/grid cards */
.ep-box-title .ep-text-warning,
.ep-box-list-title .ep-text-warning,
.dv-ep-box-title .ep-text-warning,
.ep-box-title .ep-text-small.ep-text-uppercase.ep-text-warning.ep-fw-bold,
.ep-box-list-title .ep-text-small.ep-text-uppercase.ep-text-warning.ep-fw-bold {
  display: none !important;
}



/* Complianz cookie banner: prevent BoxOffice global transforms/spacing,
   keep Complianz colors/layout intact. */
.cmplz-cookiebanner,
.cmplz-cookiebanner * {
  box-sizing: border-box;
}

/* Some themes force uppercase/letter-spacing/line-height on buttons/links */
.cmplz-cookiebanner,
.cmplz-cookiebanner .cmplz-message,
.cmplz-cookiebanner .cmplz-title,
.cmplz-cookiebanner .cmplz-links a,
.cmplz-cookiebanner .cmplz-btn {
  text-transform: none !important;
  letter-spacing: normal !important;
  line-height: 1.5 !important;
  font-style: normal !important;
}



/* === Complianz document -> use BoxOffice typography exactly === */
body.cmplz-document #cmplz-document{
  max-width: none !important;
  width: 100% !important;

  /* Base body text from theme vars (with fallbacks) */
  font-family: var(--theme-font-p_font-family, inherit) !important;
  font-size:   var(--theme-font-p_font-size, 1rem) !important;
  font-weight: var(--theme-font-p_font-weight, 400) !important;
  font-style:  var(--theme-font-p_font-style, normal) !important;
  line-height: var(--theme-font-p_line-height, 1.6) !important;
  text-transform: var(--theme-font-p_text-transform, none) !important;
  letter-spacing:  var(--theme-font-p_letter-spacing, normal) !important;
  color: var(--theme-color-text, inherit) !important;
}

/* Body copy elements follow the base (override plugin's 14px) */
body.cmplz-document #cmplz-document :where(p, li, td, th, blockquote, table, ul, ol){
  font: inherit !important;               /* covers family/size/weight/style/line-height */
  letter-spacing: inherit !important;
  color: var(--theme-color-text, inherit) !important;

  /* Theme rhythm with safe fallbacks */
  margin-top:    var(--theme-font-p_margin-top, 0) !important;
  margin-bottom: var(--theme-font-p_margin-bottom, 1.15em) !important;
}

/* Headings: theme color and remove plugin padding/borders */
body.cmplz-document #cmplz-document :where(h1,h2,h3,h4,h5,h6){
  color: var(--theme-color-title, currentColor) !important;
  padding: 0 !important;                 /* kill Complianz padding */
  border: 0 !important;                  /* kill Complianz bottom border */
}

/* Individual heading scales (all with fallbacks) */
body.cmplz-document #cmplz-document h1{
  font-family: var(--theme-font-h1_font-family, inherit) !important;
  font-size:   var(--theme-font-h1_font-size, clamp(2.25rem,4vw,3rem)) !important;
  font-weight: var(--theme-font-h1_font-weight, 700) !important;
  font-style:  var(--theme-font-h1_font-style, normal) !important;
  line-height: var(--theme-font-h1_line-height, 1.15) !important;
  text-decoration: var(--theme-font-h1_text-decoration, none) !important;
  text-transform:  var(--theme-font-h1_text-transform, none) !important;
  letter-spacing:  var(--theme-font-h1_letter-spacing, normal) !important;
  margin-top:    var(--theme-font-h1_margin-top, 2.2rem) !important;
  margin-bottom: var(--theme-font-h1_margin-bottom, 1rem) !important;
}
body.cmplz-document #cmplz-document h2{
  font-family: var(--theme-font-h2_font-family, inherit) !important;
  font-size:   var(--theme-font-h2_font-size, clamp(1.9rem,3.2vw,2.4rem)) !important;
  font-weight: var(--theme-font-h2_font-weight, 700) !important;
  font-style:  var(--theme-font-h2_font-style, normal) !important;
  line-height: var(--theme-font-h2_line-height, 1.2) !important;
  text-decoration: var(--theme-font-h2_text-decoration, none) !important;
  text-transform:  var(--theme-font-h2_text-transform, none) !important;
  letter-spacing:  var(--theme-font-h2_letter-spacing, normal) !important;
  margin-top:    var(--theme-font-h2_margin-top, 2rem) !important;
  margin-bottom: var(--theme-font-h2_margin-bottom, .9rem) !important;
}
body.cmplz-document #cmplz-document h3{
  font-family: var(--theme-font-h3_font-family, inherit) !important;
  font-size:   var(--theme-font-h3_font-size, clamp(1.6rem,2.6vw,2rem)) !important;
  font-weight: var(--theme-font-h3_font-weight, 700) !important;
  font-style:  var(--theme-font-h3_font-style, normal) !important;
  line-height: var(--theme-font-h3_line-height, 1.25) !important;
  text-decoration: var(--theme-font-h3_text-decoration, none) !important;
  text-transform:  var(--theme-font-h3_text-transform, none) !important;
  letter-spacing:  var(--theme-font-h3_letter-spacing, normal) !important;
  margin-top:    var(--theme-font-h3_margin-top, 1.7rem) !important;
  margin-bottom: var(--theme-font-h3_margin-bottom, .8rem) !important;
}
body.cmplz-document #cmplz-document h4{
  font-family: var(--theme-font-h4_font-family, inherit) !important;
  font-size:   var(--theme-font-h4_font-size, 1.5rem) !important;
  font-weight: var(--theme-font-h4_font-weight, 700) !important;
  font-style:  var(--theme-font-h4_font-style, normal) !important;
  line-height: var(--theme-font-h4_line-height, 1.3) !important;
  text-decoration: var(--theme-font-h4_text-decoration, none) !important;
  text-transform:  var(--theme-font-h4_text-transform, none) !important;
  letter-spacing:  var(--theme-font-h4_letter-spacing, normal) !important;
  margin-top:    var(--theme-font-h4_margin-top, 1.4rem) !important;
  margin-bottom: var(--theme-font-h4_margin-bottom, .7rem) !important;
}
body.cmplz-document #cmplz-document h5{
  font-family: var(--theme-font-h5_font-family, inherit) !important;
  font-size:   var(--theme-font-h5_font-size, 1.125rem) !important;
  font-weight: var(--theme-font-h5_font-weight, 700) !important;
  font-style:  var(--theme-font-h5_font-style, normal) !important;
  line-height: var(--theme-font-h5_line-height, 1.4) !important;
  text-decoration: var(--theme-font-h5_text-decoration, none) !important;
  text-transform:  var(--theme-font-h5_text-transform, none) !important;
  letter-spacing:  var(--theme-font-h5_letter-spacing, normal) !important;
  margin-top:    var(--theme-font-h5_margin-top, 1.2rem) !important;
  margin-bottom: var(--theme-font-h5_margin-bottom, .6rem) !important;
}
body.cmplz-document #cmplz-document h6{
  font-family: var(--theme-font-h6_font-family, inherit) !important;
  font-size:   var(--theme-font-h6_font-size, 1rem) !important;
  font-weight: var(--theme-font-h6_font-weight, 700) !important;
  font-style:  var(--theme-font-h6_font-style, normal) !important;
  line-height: var(--theme-font-h6_line-height, 1.5) !important;
  text-decoration: var(--theme-font-h6_text-decoration, none) !important;
  text-transform:  var(--theme-font-h6_text-transform, none) !important;
  letter-spacing:  var(--theme-font-h6_letter-spacing, normal) !important;
  margin-top:    var(--theme-font-h6_margin-top, 1.1rem) !important;
  margin-bottom: var(--theme-font-h6_margin-bottom, .6rem) !important;
}

/* Heading links follow theme palette */
body.cmplz-document #cmplz-document :where(h1,h2,h3,h4,h5,h6) a{
  color: var(--theme-color-title) !important;
}
body.cmplz-document #cmplz-document :where(h1,h2,h3,h4,h5,h6) a:hover{
  color: var(--theme-color-link) !important;
}

/* Links: theme palette */
body.cmplz-document #cmplz-document a{
  color: var(--theme-color-link) !important;
  text-decoration: underline;
}
body.cmplz-document #cmplz-document a:hover{
  color: var(--theme-color-hover) !important;
}

/* --- Placed cookies accordion tweaks only --- */
#cmplz-document .cmplz-dropdown summary div{
  align-items: center !important;
}
#cmplz-document .cmplz-dropdown summary p{
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  margin: 0 !important;
  color: var(--theme-color-meta) !important;
}
/* Keep cookie row titles compact */
#cmplz-document .cmplz-dropdown summary h3{
  font-family: var(--theme-font-p_font-family, inherit) !important;
  font-size: 1rem !important;
  line-height: 1.3 !important;
  font-weight: 700 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  color: var(--theme-color-title) !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}



/* Let the theme control link styling inside Complianz docs */
:where(body.cmplz-document #cmplz-document, #cmplz-cookies-overview) a{
  text-decoration: none !important; /* Complianz sets underline */
}
/* Dropdown text (p + a) should inherit the theme’s text size */
:where(#cmplz-document,#cmplz-cookies-overview,.editor-styles-wrapper .cmplz-unlinked-mode)
.cmplz-dropdown :is(p,a){
  font-size: inherit !important;
}



/* Complianz lists: use BoxOffice native spacing */
body.cmplz-document #cmplz-document ul,
body.cmplz-document #cmplz-document ol {
  padding-left: 1.2em !important; /* match theme */
  margin: 0 0 var(--theme-font-p_margin-bottom) !important;
}

body.cmplz-document #cmplz-document li {
  margin-bottom: calc(var(--theme-font-p_margin-bottom) * 0) !important; /* tighten to match theme */
  line-height: inherit !important;
}



/* Complianz cookie service description: align headings with paragraphs */
#cmplz-document .cmplz-service-description h1,
#cmplz-document .cmplz-service-description h2,
#cmplz-document .cmplz-service-description h3,
#cmplz-document .cmplz-service-description h4,
#cmplz-document .cmplz-service-description h5,
#cmplz-document .cmplz-service-description h6 {
  padding: 0 15px !important;
}

/* Complianz cookie sharing data: align headings with paragraphs */
#cmplz-document .cmplz-sharing-data h1,
#cmplz-document .cmplz-sharing-data h2,
#cmplz-document .cmplz-sharing-data h3,
#cmplz-document .cmplz-sharing-data h4,
#cmplz-document .cmplz-sharing-data h5,
#cmplz-document .cmplz-sharing-data h6 {
  padding: 0 15px !important;
}

/* Complianz cookie purpost: align headings with paragraphs */
#cmplz-document .cookies-per-purpose .purpose h1,
#cmplz-document .cookies-per-purpose .purpose h2,
#cmplz-document .cookies-per-purpose .purpose h3,
#cmplz-document .cookies-per-purpose .purpose h4,
#cmplz-document .cookies-per-purpose .purpose h5,
#cmplz-document .cookies-per-purpose .purpose h6 {
  padding: 0 15px !important;
}

/* Ensure consistency across edge cases */
#cmplz-document .cmplz-service-description h1,
#cmplz-document .cmplz-service-description h2,
#cmplz-document .cmplz-service-description h3,
#cmplz-document .cmplz-service-description h4,
#cmplz-document .cmplz-service-description h5,
#cmplz-document .cmplz-service-description h6,
#cmplz-document .cmplz-sharing-data h1,
#cmplz-document .cmplz-sharing-data h2,
#cmplz-document .cmplz-sharing-data h3,
#cmplz-document .cmplz-sharing-data h4,
#cmplz-document .cmplz-sharing-data h5,
#cmplz-document .cmplz-sharing-data h6,
#cmplz-document .cookies-per-purpose .purpose h1,
#cmplz-document .cookies-per-purpose .purpose h2,
#cmplz-document .cookies-per-purpose .purpose h3,
#cmplz-document .cookies-per-purpose .purpose h4,
#cmplz-document .cookies-per-purpose .purpose h5,
#cmplz-document .cookies-per-purpose .purpose h6 {
  margin-top: var(--theme-font-h4_margin-top, 0) !important;
  margin-bottom: var(--theme-font-h4_margin-bottom, 0.5em) !important;
}



/* Complianz Cookie Policy: restore native consent checkboxes */
#cmplz-manage-consent-container.cmplz-manage-consent-container
  .cmplz-category:not(.cmplz-functional)
  .cmplz-banner-checkbox {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 14px !important;
  width: 14px !important;
  min-width: 14px !important;
  height: 14px !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Show the actual native checkbox */
#cmplz-manage-consent-container.cmplz-manage-consent-container
  .cmplz-category:not(.cmplz-functional)
  .cmplz-banner-checkbox
  input.cmplz-consent-checkbox {
  position: static !important;
  display: inline-block !important;
  visibility: visible !important;
  opacity: 1 !important;

  clip: auto !important;
  clip-path: none !important;

  width: 14px !important;
  min-width: 14px !important;
  height: 14px !important;

  margin: 0 !important;
  padding: 0 !important;

  transform: none !important;
  vertical-align: middle !important;
  cursor: pointer !important;

  -webkit-appearance: checkbox !important;
  -moz-appearance: checkbox !important;
  appearance: auto !important;
}

/* Preserve the accessible label, but remove the theme's fake checkbox */
#cmplz-manage-consent-container.cmplz-manage-consent-container
  .cmplz-category:not(.cmplz-functional)
  .cmplz-banner-checkbox
  label.cmplz-label {
  position: static !important;
  display: inline-block !important;

  width: 0 !important;
  min-width: 0 !important;
  height: 0 !important;

  margin: 0 !important;
  padding: 0 !important;
}

#cmplz-manage-consent-container.cmplz-manage-consent-container
  .cmplz-category:not(.cmplz-functional)
  .cmplz-banner-checkbox
  label.cmplz-label::before,
#cmplz-manage-consent-container.cmplz-manage-consent-container
  .cmplz-category:not(.cmplz-functional)
  .cmplz-banner-checkbox
  label.cmplz-label::after {
  content: none !important;
  display: none !important;
}



/* Complianz 7.6+: restore the native slider appearance inside BoxOffice.
   BoxOffice styles generic checkboxes; these rules isolate the current
   Complianz markup (.cmplz-banner-checkbox wrapper + .cmplz-consent-checkbox input). */
.cmplz-cookiebanner .cmplz-categories .cmplz-category:not(.cmplz-functional)
  .cmplz-banner-checkbox {
  position: relative !important;
  display: block !important;
  flex: 0 0 28px !important;
  width: 28px !important;
  height: 15px !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
}

.cmplz-cookiebanner .cmplz-categories .cmplz-category:not(.cmplz-functional)
  .cmplz-banner-checkbox input.cmplz-consent-checkbox {
  position: absolute !important;
  z-index: 3 !important;
  top: 0 !important;
  left: 0 !important;
  width: 28px !important;
  height: 15px !important;
  margin: 0 !important;
  padding: 0 !important;
  opacity: 0 !important;
  cursor: pointer !important;
  appearance: none !important;
  -webkit-appearance: none !important;
}

.cmplz-cookiebanner .cmplz-categories .cmplz-category:not(.cmplz-functional)
  .cmplz-banner-checkbox .cmplz-label {
  position: relative !important;
  display: block !important;
  width: 28px !important;
  height: 15px !important;
  min-width: 28px !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1 !important;
  cursor: pointer !important;
  overflow: visible !important;
}

/* Slider track */
.cmplz-cookiebanner .cmplz-categories .cmplz-category:not(.cmplz-functional)
  .cmplz-banner-checkbox .cmplz-label::before {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  z-index: 1 !important;
  top: 0 !important;
  left: 0 !important;
  right: auto !important;
  width: 28px !important;
  height: 15px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 10px !important;
  background: var(--cmplz_slider_inactive_color, #f56e28) !important;
  box-shadow: none !important;
  transform: none !important;
  transition: background-color .3s ease !important;
}

/* White slider bullet */
.cmplz-cookiebanner .cmplz-categories .cmplz-category:not(.cmplz-functional)
  .cmplz-banner-checkbox .cmplz-label::after {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  z-index: 2 !important;
  top: 2px !important;
  left: 4px !important;
  right: auto !important;
  width: 11px !important;
  height: 11px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 50% !important;
  background: var(--cmplz_slider_bullet_color, #fff) !important;
  box-shadow: none !important;
  transform: none !important;
  transition: left .3s ease !important;
}

.cmplz-cookiebanner .cmplz-categories .cmplz-category:not(.cmplz-functional)
  .cmplz-banner-checkbox input.cmplz-consent-checkbox:checked + .cmplz-label::before {
  background: var(--cmplz_slider_active_color, #1e73be) !important;
}

.cmplz-cookiebanner .cmplz-categories .cmplz-category:not(.cmplz-functional)
  .cmplz-banner-checkbox input.cmplz-consent-checkbox:checked + .cmplz-label::after {
  left: 14px !important;
}

.cmplz-cookiebanner .cmplz-categories .cmplz-category:not(.cmplz-functional)
  .cmplz-banner-checkbox input.cmplz-consent-checkbox:focus-visible + .cmplz-label::before {
  box-shadow: 0 0 0 2px #245fcc !important;



