:root{--tcc-background:#fff;--tcc-text-color:#302b27;--tcc-border-color:#e5e1dc;--tcc-primary-color:#700000;--tcc-primary-text:#fff;--tcc-action-color:#700000;--tcc-radius:12px;--tcc-shadow:0 12px 42px #0002;--tcc-panel-width:390px;--tcc-offset-x:25px;--tcc-offset-y:25px}
.tcc-banner[hidden],.tcc-overlay[hidden]{display:none!important}.tcc-banner,.tcc-overlay{box-sizing:border-box;color:var(--tcc-text-color);font:inherit;z-index:2147483000}.tcc-banner *,.tcc-overlay *{box-sizing:border-box}.tcc-banner{position:fixed;width:min(var(--tcc-panel-width),calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow-y:auto;background:var(--tcc-background);box-shadow:var(--tcc-shadow);padding:20px;border:1px solid var(--tcc-border-color);border-radius:var(--tcc-radius);font-size:14px;line-height:1.55}.tcc-banner--bottom-right{bottom:var(--tcc-offset-y);right:var(--tcc-offset-x)}.tcc-banner--bottom-left{bottom:var(--tcc-offset-y);left:var(--tcc-offset-x)}.tcc-banner--top-right{top:var(--tcc-offset-y);right:var(--tcc-offset-x)}.tcc-banner--top-left{top:var(--tcc-offset-y);left:var(--tcc-offset-x)}.tcc-banner--bottom,.tcc-banner--top{width:100%;max-width:none;left:0;right:0;border-radius:0;display:flex;align-items:center;gap:24px}.tcc-banner--bottom{bottom:0}.tcc-banner--top{top:0}.tcc-banner--bottom .tcc-banner__content,.tcc-banner--top .tcc-banner__content{flex:1}.tcc-banner__content p{font-size:inherit;line-height:inherit;margin:0}.tcc-legal{font-size:12px;margin-top:8px}.tcc-legal a{color:inherit;text-decoration:underline;text-underline-offset:2px}.tcc-actions{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}.tcc-banner--bottom .tcc-actions,.tcc-banner--top .tcc-actions{margin-top:0}.tcc-button{font:inherit;font-size:12px;line-height:1.3;cursor:pointer;padding:9px 10px;border:1px solid var(--tcc-primary-color);border-radius:7px;background:transparent;color:var(--tcc-action-color);white-space:nowrap;flex:1;min-width:max-content;transition:background .15s ease}.tcc-button:hover{background:color-mix(in srgb,var(--tcc-primary-color) 8%,transparent)}.tcc-banner--actions-filled .tcc-actions .tcc-button{background:var(--tcc-primary-color);color:var(--tcc-primary-text)}.tcc-banner--actions-links .tcc-actions{gap:12px}.tcc-banner--actions-links .tcc-actions .tcc-button{border:0;border-radius:0;padding:6px 0;text-decoration:underline;text-underline-offset:3px;background:transparent}.tcc-manage{background:transparent;border:0;cursor:pointer;padding:0;color:inherit;text-decoration:underline;font:inherit}.tcc-button:focus-visible,.tcc-manage:focus-visible,.tcc-close:focus-visible,.tcc-overlay input:focus-visible,.tcc-legal a:focus-visible{outline:3px solid #397ded;outline-offset:3px}.tcc-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;padding:16px}.tcc-dialog{background:var(--tcc-background);border-radius:var(--tcc-radius);box-shadow:var(--tcc-shadow);width:min(100%,540px);max-height:90dvh;overflow-y:auto;padding:24px}.tcc-dialog__head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.tcc-dialog h2{font-size:1.45rem;margin:0}.tcc-dialog p{margin:15px 0}.tcc-close{font-size:28px;line-height:1;cursor:pointer;background:transparent;border:0;color:inherit}.tcc-category{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 0;border-bottom:1px solid var(--tcc-border-color)}.tcc-category input{height:20px;width:20px;accent-color:var(--tcc-primary-color)}.tcc-dialog__actions{margin-top:22px;display:flex;justify-content:flex-end}.tcc-embed{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;min-height:220px;padding:24px;background:#f5f3ef;border:1px solid #ddd;border-radius:8px;text-align:center}.tcc-embed p{margin:0}.tcc-embed .tcc-button{flex:none}.tcc-embed iframe{display:block;max-width:100%}@media(max-width:650px){.tcc-banner{max-width:calc(100vw - 24px);width:calc(100vw - 24px);left:12px!important;right:12px!important;bottom:12px;top:auto}.tcc-banner--bottom,.tcc-banner--top{width:100%;left:0!important;right:0!important;bottom:0;top:auto;display:block}.tcc-banner .tcc-actions{margin-top:14px}.tcc-dialog{padding:18px}}@media(max-width:370px){.tcc-actions{flex-direction:column}}
/* v0.2.1: keep action contrast regardless of Elementor/theme button selectors. */
.tcc-banner .tcc-actions .tcc-button,
.tcc-banner .tcc-actions .tcc-button:link,
.tcc-banner .tcc-actions .tcc-button:visited {
  color: var(--tcc-action-color) !important;
}
.tcc-banner--actions-links .tcc-actions .tcc-button,
.tcc-banner--actions-links .tcc-actions .tcc-button:hover,
.tcc-banner--actions-links .tcc-actions .tcc-button:focus-visible {
  color: var(--tcc-action-color) !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  opacity: 1;
}
.tcc-banner--actions-filled .tcc-actions .tcc-button,
.tcc-banner--actions-filled .tcc-actions .tcc-button:hover {
  color: var(--tcc-primary-text) !important;
  background: var(--tcc-primary-color) !important;
}
.tcc-banner--actions-outline .tcc-actions .tcc-button {
  background: transparent !important;
  color: var(--tcc-action-color) !important;
}

/* v0.3 subtle motion, respectful of reduced motion preference. */
@media (prefers-reduced-motion: no-preference){
.tcc-banner:not([hidden]){animation:tcc-fade-in .22s ease-out both}
.tcc-overlay:not([hidden]){animation:tcc-fade-in .18s ease-out both}
.tcc-overlay:not([hidden]) .tcc-dialog{animation:tcc-dialog-in .22s ease-out both}
.tcc-banner.tcc-leaving,.tcc-overlay.tcc-leaving{animation:tcc-fade-out .18s ease-in both}
@keyframes tcc-fade-in{from{opacity:0}to{opacity:1}}
@keyframes tcc-fade-out{from{opacity:1}to{opacity:0}}
@keyframes tcc-dialog-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
}

/* v0.3.6: compact modal heading, independently of theme / Elementor typography. */
.tcc-overlay .tcc-dialog .tcc-dialog__head #tcc-heading {
  font-family: inherit !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* v1.0: scoped responsive policy tables; generated figures only.
   Scroll stays inside the table figure; table semantics and columns remain intact. */
figure.tcc-policy-table {
  display: block;
  max-width: 100%;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  margin-inline: 0;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}
figure.tcc-policy-table table {
  width: 100%;
  border-collapse: collapse;
  table-layout: auto;
}
figure.tcc-policy-table th,
figure.tcc-policy-table td {
  overflow-wrap: anywhere;
  vertical-align: top;
}
@media (max-width: 767px) {
  figure.tcc-policy-table {
    overflow-x: auto !important;
    overscroll-behavior-inline: contain;
  }
  figure.tcc-policy-table table {
    min-width: 610px;
    width: max(100%, 610px);
  }
  figure.tcc-policy-table th,
  figure.tcc-policy-table td {
    padding: 10px 12px;
    white-space: normal;
  }
}



/* v1.0.2: tables are independent blocks and never expand the containing layout. */
figure.tcc-policy-table {max-width:100%;min-width:0;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;margin:1.25rem 0;}
figure.tcc-policy-table table {border-collapse:collapse;}
figure.tcc-policy-table code {white-space:nowrap;overflow-wrap:normal;word-break:normal;}
@media(max-width:767px){figure.tcc-policy-table table{min-width:640px;width:640px;}figure.tcc-policy-table{width:100%;max-width:100%;}}

/* Dynamic policy: tables scroll within content and never enlarge the page. */
.tcc-policy-dynamic{max-width:100%;min-width:0;width:100%;box-sizing:border-box}
.tcc-policy-dynamic figure.tcc-policy-table{max-width:100%;min-width:0;overflow-x:auto;-webkit-overflow-scrolling:touch}
.tcc-policy-dynamic figure.tcc-policy-table table{min-width:600px;width:100%;border-collapse:collapse}
.tcc-policy-dynamic h3{font-size:inherit;line-height:1.35}
