/* Timeless Hair & Body — consent-specific tokens inherit the site's local fonts. */
:root {
  --tc-sage: #69776b;
  --tc-sage-dark: #455748;
  --tc-gold: #b49447;
  --tc-cream: #fcfbf7;
  --tc-ink: #27352b;
  --tc-muted: #59655b;
  --tc-line: #dedfd6;
  --tc-focus: #8b671e;
}
.tc-layer, .tc-layer *, .tc-widget, .tc-widget *, .tc-toast { box-sizing: border-box; }
.tc-layer[hidden], .tc-widget[hidden], .tc-toast[hidden], .tc-panel[hidden] { display: none !important; }
.tc-layer {
  position: fixed; inset: 0; z-index: 2147483000;
  display: flex; align-items: center; justify-content: center;
  padding: max(18px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));
  background: rgba(23, 34, 27, .62);
  -webkit-backdrop-filter: blur(7px); backdrop-filter: blur(7px);
  font-family: Lato, Arial, sans-serif; color: var(--tc-ink); line-height: 1.5;
}
.tc-dialog {
  width: min(680px, 100%); max-height: calc(100vh - 36px); max-height: calc(100dvh - 36px);
  display: flex; flex-direction: column; overflow: hidden; position: relative;
  background: var(--tc-cream); border: 1px solid rgba(180, 148, 71, .7);
  border-radius: 14px; box-shadow: 0 25px 100px rgba(0, 0, 0, .28);
  text-align: left; animation: tc-enter .18s ease-out;
}
.tc-header { position: relative; padding: 23px 64px 9px 26px; min-height: 98px; display: flex; align-items: center; justify-content: center; }
.tc-logo { display: block; width: 170px; height: 70px; max-width: 100%; object-fit: contain; object-position: center; filter: none; }
.tc-close {
  position: absolute; right: 15px; top: 15px; display: grid; place-items: center;
  width: 42px; height: 42px; padding: 0; border: 1px solid var(--tc-line);
  border-radius: 50%; background: transparent; color: var(--tc-sage-dark);
  font: 400 29px/1 Arial, sans-serif; cursor: pointer;
}
.tc-close:hover { background: #eeefe7; border-color: var(--tc-sage); }
.tc-title { margin: 0; padding: 4px 28px 20px; font: 500 25px/1.3 Raleway, Lato, sans-serif; color: var(--tc-ink); text-align: center; }
.tc-tabs { display: flex; gap: 0; border-bottom: 1px solid var(--tc-line); margin: 0 26px; flex-shrink: 0; }
.tc-tab {
  flex: 1; min-width: 0; padding: 12px 7px; margin: 0; border: 0; border-bottom: 3px solid transparent;
  background: transparent; font: 700 14px/1.3 Lato, Arial, sans-serif; color: var(--tc-muted); cursor: pointer;
}
.tc-tab[aria-selected="true"] { border-bottom-color: var(--tc-gold); color: var(--tc-sage-dark); }
.tc-tab:hover { background: #f1f2ea; }
.tc-content { overflow: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; min-height: 0; padding: 22px 27px 24px; }
.tc-panel { outline: none; }
.tc-panel p { font: 400 15px/1.6 Lato, Arial, sans-serif; margin: 0 0 15px; color: var(--tc-ink); }
.tc-panel p.tc-muted { font-size: 13px; color: var(--tc-muted); }
.tc-panel p.tc-close-explanation { font-size: 13px; padding-left: 13px; border-left: 2px solid var(--tc-gold); }
.tc-actions { display: flex; gap: 10px; margin-top: 22px; }
.tc-button {
  flex: 1; appearance: none; -webkit-appearance: none; min-height: 46px; border: 1px solid var(--tc-sage-dark);
  border-radius: 7px; padding: 12px 17px; font: 700 14px/1.35 Lato, Arial, sans-serif;
  cursor: pointer; text-align: center; transition: background .15s, color .15s;
}
.tc-primary { background: var(--tc-sage-dark); color: #fff; }
.tc-primary:hover { background: #344738; }
.tc-secondary { background: transparent; color: var(--tc-sage-dark); }
.tc-secondary:hover { background: #e9ede5; }
.tc-button:disabled { cursor: default; opacity: .7; background: #eceee7; color: #505c52; border-color: #bec6ba; }
.tc-category { display: flex; gap: 16px; align-items: flex-start; justify-content: space-between; padding: 17px 0; border-top: 1px solid var(--tc-line); }
.tc-category-copy { min-width: 0; flex: 1; }
.tc-category h3 { margin: 0 0 5px; font: 700 16px/1.3 Raleway, Lato, sans-serif; color: var(--tc-ink); }
.tc-category p { margin: 0; font-size: 13px; line-height: 1.55; color: var(--tc-muted); }
.tc-locked, .tc-status { flex: 0 0 auto; font: 700 12px/1.3 Lato, Arial, sans-serif; white-space: nowrap; padding: 5px 8px; margin-top: 1px; border: 1px solid #d5dacc; border-radius: 5px; background: #eff1e9; color: #53614e; }
.tc-status { color: #5d625a; background: #f0f0eb; border-color: var(--tc-line); }
.tc-is-active { color: #38543a; background: #e7efe2; border-color: #b4c8ad; }
.tc-switch { position: relative; flex: 0 0 46px; width: 46px; height: 28px; margin: 0; cursor: pointer; }
.tc-switch input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; margin: 0; cursor: pointer; z-index: 1; }
.tc-switch-track { display: block; width: 46px; height: 28px; border: 1px solid #8d988e; border-radius: 20px; background: #e2e5dc; transition: .15s; }
.tc-switch-track::after { content: ''; position: absolute; width: 20px; height: 20px; left: 4px; top: 4px; background: #fff; border-radius: 50%; box-shadow: 0 1px 3px rgba(0, 0, 0, .2); transition: transform .15s; }
.tc-switch input:checked + .tc-switch-track { background: var(--tc-sage-dark); border-color: var(--tc-sage-dark); }
.tc-switch input:checked + .tc-switch-track::after { transform: translateX(18px); }
.tc-footer { display: flex; justify-content: center; gap: 24px; flex-shrink: 0; padding: 12px 20px 16px; border-top: 1px solid var(--tc-line); }
.tc-layer a { color: var(--tc-sage-dark) !important; font: 700 12px/1.5 Lato, Arial, sans-serif; text-decoration: underline !important; text-underline-offset: 3px; }
.tc-policy-links { display: flex; flex-wrap: wrap; gap: 20px; margin-top: 20px; }
.tc-widget {
  position: fixed; left: max(17px, env(safe-area-inset-left)); bottom: max(17px, env(safe-area-inset-bottom)); z-index: 2147482999;
  display: flex; align-items: center; gap: 7px; padding: 8px 13px 8px 8px; min-height: 43px;
  border: 1px solid #d0bb79; border-radius: 24px; background: var(--tc-sage-dark); color: #fff;
  font: 700 12px/1 Lato, Arial, sans-serif; box-shadow: 0 3px 12px rgba(0, 0, 0, .18); cursor: pointer;
}
.tc-widget-mark { display: grid; place-items: center; width: 26px; height: 26px; border: 1px solid #d0bb79; border-radius: 50%; color: #efe4bf; font: 500 18px/1 Raleway, sans-serif; }
.tc-widget:hover { background: #344738; }
.tc-toast {
  position: fixed; z-index: 2147483001; left: 50%; bottom: max(24px, env(safe-area-inset-bottom)); transform: translateX(-50%);
  width: max-content; max-width: min(560px, calc(100vw - 32px)); padding: 15px 20px; border-radius: 9px;
  background: var(--tc-sage-dark); border: 1px solid var(--tc-gold); color: #fff;
  font: 400 14px/1.5 Lato, Arial, sans-serif; box-shadow: 0 8px 30px rgba(0, 0, 0, .2); text-align: center;
}
.tc-layer button:focus-visible, .tc-layer a:focus-visible, .tc-panel:focus-visible, .tc-widget:focus-visible { outline: 3px solid var(--tc-focus); outline-offset: 3px; }
.tc-switch input:focus-visible + .tc-switch-track { outline: 3px solid var(--tc-focus); outline-offset: 3px; }
@keyframes tc-enter { from { transform: translateY(7px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
@media (max-width: 480px) {
  .tc-layer { padding: max(11px, env(safe-area-inset-top)) max(11px, env(safe-area-inset-right)) max(11px, env(safe-area-inset-bottom)) max(11px, env(safe-area-inset-left)); }
  .tc-dialog { max-height: calc(100vh - 22px); max-height: calc(100dvh - 22px); border-radius: 11px; }
  .tc-header { min-height: 79px; padding: 13px 48px 5px 20px; }
  .tc-logo { width: 145px; height: 58px; }
  .tc-close { top: 10px; right: 10px; width: 37px; height: 37px; }
  .tc-title { font-size: 21px; padding: 4px 18px 15px; }
  .tc-tabs { margin: 0 17px; }
  .tc-content { padding: 18px; }
  .tc-panel p { font-size: 14px; }
  .tc-category { gap: 10px; }
  .tc-actions { flex-direction: column; gap: 9px; margin-top: 18px; }
  .tc-button { width: 100%; }
  .tc-locked, .tc-status { font-size: 10px; padding: 5px; }
  .tc-category p { font-size: 12px; }
  .tc-widget { left: max(11px, env(safe-area-inset-left)); bottom: max(11px, env(safe-area-inset-bottom)); }
  .tc-toast { bottom: max(65px, env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) { .tc-dialog { animation: none; } .tc-button, .tc-switch-track, .tc-switch-track::after { transition: none; } }

/* Override the legacy site's broad heading declarations. */
.tc-dialog .tc-title { margin: 0 !important; font-family: Raleway, Lato, sans-serif !important; font-size: 25px !important; font-weight: 500 !important; line-height: 1.3 !important; text-transform: none !important; color: var(--tc-ink) !important; }
.tc-dialog .tc-category h3 { margin: 0 0 5px !important; font-family: Raleway, Lato, sans-serif !important; font-size: 16px !important; font-weight: 700 !important; line-height: 1.3 !important; text-transform: none !important; color: var(--tc-ink) !important; }
@media (max-width: 480px) { .tc-dialog .tc-title { font-size: 21px !important; } }

.tc-dialog:focus-visible { outline: 3px solid var(--tc-gold); outline-offset: 3px; }
