/* ==========================================================================
   OAshis Unified Corporate Stylesheet (theme-oashi.css)
   Fully WCAG 2.1 AA Compliant & Accessible
   ========================================================================== */

/* --- SECTION 1: GLOBAL ACCESSIBILITY & CORE UTILITIES --- */

/* Accessibility Keyboard Skip-Link (WCAG 2.4.1 Compliance) */
.skip-link {
  position: absolute;
  top: -100px;
  left: 10px;
  background: #ee691b;
  color: #ffffff !important;
  padding: 12px 24px;
  z-index: 10050;
  transition: top 0.2s ease-in-out;
  font-weight: bold;
  border-radius: 0 0 8px 8px;
  text-decoration: none !important;
}

.skip-link:focus {
  top: 0;
  outline: 3px solid #2563eb;
  outline-offset: 2px;
}

/* Force highly-legible Slate-700 & normal weight on standard gray text (Prevents Windows Chrome subpixel wash-out) */
body .text-muted,
body .text-secondary,
body p.text-secondary,
body p.text-muted,
body small.text-secondary,
body text-secondary {
  color: #334155 !important;
  /* Slate-700 yields > 5.8:1 contrast on light backgrounds */
  font-weight: 400 !important;
}

/* Ensures inline text links are distinguishable without relying solely on color (WCAG 1.4.1 / EAA) */
main p a:not(.btn):not(.card-block-link),
main address a:not(.btn):not(.card-block-link),
main div.card-body a:not(.btn):not(.card-block-link),
main dl a:not(.btn):not(.card-block-link) {
  color: #1d4ed8 !important;
  /* Safe high-contrast blue */
  text-decoration: underline !important;
  font-style: normal;
  font-weight: 600;
}

main p a:not(.btn):not(.card-block-link):hover,
main p a:not(.btn):not(.card-block-link):focus,
main address a:not(.btn):not(.card-block-link):hover,
main address a:not(.btn):not(.card-block-link):focus {
  color: #1e3a8a !important;
  /* Deep Navy on hover */
  text-decoration: none !important;
}

/* Deep High-Contrast compliance colors for tiny text on light backgrounds */
.text-compliance-orange {
  color: #b43c08 !important;
}

/* Contrast > 4.9:1 against white */
.text-compliance-red {
  color: #b91c1c !important;
}

/* Dark crimson red (Contrast > 5.2:1) */
.text-compliance-green {
  color: #15803d !important;
}

/* Dark forest green (Contrast > 4.8:1) */
.text-compliance-amber {
  color: #854d0e !important;
}

/* Dark Siena amber (Contrast > 4.7:1) */

/* Custom Color-Semantic Hooks for icons */
.color-orange {
  color: #b43c08 !important;
}

.color-blue {
  color: #2563eb !important;
}

.color-amber {
  color: #854d0e !important;
}

/* Custom Bootstrap Shadows */
.shadow-sm {
  box-shadow: 0 .125rem .25rem rgba(0, 0, 0, .4) !important;
}


/* --- SECTION 2: GLOBAL NAVIGATION & LANGUAGE SWITCHER --- */

.navbar {
  background-color: #2a4d93 !important;
  border: none;
}

.navbar-dark .navbar-nav .nav-link {
  color: #fff;
}

/* Desktop-specific Language Switcher Pill styles (Forced High-Contrast) */
@media (min-width: 992px) {
  #language-switcher {
    margin-left: 20px;
    display: flex;
    align-items: center;
  }

  /* Standard: Clean white on dark blue (Contrast > 15:1) */
  #main-nav #language-switcher-control {
    background: rgba(255, 255, 255, 0.1) !important;
    border: 1px solid rgba(255, 255, 255, 0.4) !important;
    color: #ffffff !important;
    border-radius: 30px;
    padding: 6px 14px !important;
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    display: inline-flex;
    align-items: center;
    transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  }

  #main-nav #language-switcher-control i {
    color: #ffffff !important;
    transition: color 0.25s ease;
  }

  /* Hover & Active: solid white with dark slate text (Contrast 21:1) */
  #main-nav #language-switcher-control:hover,
  #main-nav #language-switcher-control:focus,
  #main-nav #language-switcher.show #language-switcher-control {
    background: #ffffff !important;
    border-color: #ffffff !important;
    color: #0f172a !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.15);
  }

  #main-nav #language-switcher-control:hover i,
  #main-nav #language-switcher-control:focus i,
  #main-nav #language-switcher.show #language-switcher-control i {
    color: #ee691b !important;
    /* Globe icon pops in orange on hover */
  }

  #language-switcher .dropdown-menu {
    min-width: 90px !important;
    border: 1px solid rgba(15, 23, 42, 0.08) !important;
    border-radius: 8px !important;
    box-shadow: 0 10px 25px -5px rgba(15, 23, 42, 0.1) !important;
    margin-top: 10px !important;
    background-color: #ffffff !important;
    padding: 6px 0 !important;
  }

  #language-switcher .dropdown-item {
    font-size: 0.8rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    padding: 8px 16px !important;
    color: #475569 !important;
    transition: background-color 0.2s ease, color 0.2s ease !important;
    display: block !important;
    width: 100% !important;
    border-radius: 0 !important;
  }

  #language-switcher .dropdown-item:hover {
    background-color: #f1f5f9 !important;
    color: #ee691b !important;
  }
}

/* Mobile layout adjustments */
@media (max-width: 991.98px) {
  #language-switcher {
    margin-top: 12px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    padding-top: 12px;
  }

  #language-switcher-control {
    font-weight: 700;
    text-transform: uppercase;
    display: inline-flex;
    align-items: center;
  }

  #language-switcher .dropdown-menu {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding-left: 15px !important;
  }

  #language-switcher .dropdown-item {
    color: rgba(255, 255, 255, 0.7) !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    padding: 8px 0 !important;
  }

  #language-switcher .dropdown-item:hover {
    color: #ee691b !important;
    background: transparent !important;
  }
}


/* --- SECTION 3: COMMON ACCESSIBLE BUTTONS & BADGES --- */

.btn-hero-primary {
  background-color: #b43c08 !important;
  /* Compliance Orange */
  border-color: #b43c08 !important;
  color: #ffffff !important;
  border-radius: 8px;
  box-shadow: 0 4px 14px rgba(180, 60, 8, 0.35);
  transition: all 0.2s ease;
}

.btn-hero-primary:hover,
.btn-hero-primary:focus {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(180, 60, 8, 0.5);
  outline: 3px solid #2563eb;
  outline-offset: 2px;
}

.btn-hero-secondary {
  border-color: #0f172a !important;
  color: #0f172a !important;
  background: transparent !important;
  border-radius: 8px;
  transition: all 0.2s ease;
}

.btn-hero-secondary:hover,
.btn-hero-secondary:focus {
  background-color: #0f172a !important;
  color: #ffffff !important;
  transform: translateY(-2px);
  outline: 3px solid #2563eb;
  outline-offset: 2px;
}

/* Interactive Custom Outline CTAs */
.btn-outline-custom {
  background-color: #ffffff !important;
  border: 2px solid #2563eb !important;
  color: #2563eb !important;
  font-weight: bold;
  border-radius: 8px;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  display: inline-block;
  text-decoration: none !important;
}

.btn-outline-custom:hover,
.btn-outline-custom:focus {
  background-color: #2563eb !important;
  color: #ffffff !important;
  transform: translateY(-2px);
  box-shadow: 0 8px 15px rgba(37, 99, 235, 0.15);
  outline: 3px solid #2563eb;
  outline-offset: 2px;
}

/* Secondary Action Button - Guaranteed Contrast (> 15:1) */
.btn-support-secondary {
  background-color: #ffffff !important;
  border: 1px solid #cbd5e1 !important;
  color: #0f172a !important;
  font-weight: 600;
  border-radius: 8px;
  transition: all 0.2s ease;
  display: inline-block;
  text-decoration: none !important;
}

.btn-support-secondary:hover,
.btn-support-secondary:focus {
  background-color: #f8fafc !important;
  border-color: #0f172a !important;
  color: #0f172a !important;
  outline: 3px solid #2563eb;
  outline-offset: 2px;
}

/* Accessible soft badges */
.badge-primary-soft {
  background-color: rgba(37, 99, 235, 0.1);
  color: #2563eb;
  font-weight: 700;
  padding: 6px 12px;
  border-radius: 50px;
  text-transform: uppercase;
  font-size: 0.7rem;
  letter-spacing: 0.05em;
}

@media (min-width: 768px) {
  .badge-primary-soft {
    padding: 8px 16px;
    font-size: 0.75rem;
  }
}


/* --- SECTION 4: HOMEPAGE SPECIFIC STYLES (index.gsp) --- */

.pos-hero-wrapper {
  padding-top: 80px;
}

.hero-light-canvas {
  background: linear-gradient(135deg, #fcfcfb 0%, #f4f3ef 60%, #eae8e2 100%);
  min-height: 520px;
  display: flex;
  align-items: center;
  border-bottom: 2px solid #cbd5e1;
  box-shadow: inset 0 -15px 30px -15px rgba(15, 23, 42, 0.05);
}

.hero-light-title {
  color: #0f172a !important;
  font-size: 2.85rem;
  line-height: 1.15;
  letter-spacing: -1.5px;
}

.hero-light-lead {
  color: #334155 !important;
  line-height: 1.7;
  font-weight: 400;
  max-width: 600px;
}

.hero-logo-column {
  align-self: flex-start !important;
  margin-top: 3rem !important;
  display: flex;
  justify-content: flex-end;
}

/* Premium Floating Brand Cards (No Rotation/Tilt) */
.hero-brand-card {
  transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1), filter 0.5s ease;
  mix-blend-mode: multiply;
  filter: drop-shadow(0 4px 6px rgba(15, 23, 42, 0.04));
}

.pos-hero-wrapper:hover .hero-brand-card {
  transform: translateY(-6px) scale(1.02);
  filter: drop-shadow(0 15px 25px rgba(15, 23, 42, 0.1));
}

/* Product Card Interactive Grid Styles */
.product-card-interactive {
  position: relative;
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.4s ease, border-color 0.4s ease;
  border: 1px solid #e2e8f0 !important;
  overflow: hidden;
  background-color: #ffffff;
}

.product-card-interactive.has-link {
  cursor: pointer;
}

.product-card-interactive:focus-within {
  outline: 3px solid #2563eb;
  outline-offset: 2px;
}

.product-card-interactive:hover {
  transform: translateY(-8px);
  box-shadow: 0 20px 25px -5px rgba(15, 23, 42, 0.08), 0 10px 10px -5px rgba(15, 23, 42, 0.04) !important;
  border-color: #2563eb !important;
}

/* High-contrast Icon Containers (Hover inverts colors) */
.icon-box {
  transition: background-color 0.3s ease, color 0.3s ease, transform 0.3s ease;
  background-color: #f1f5f9 !important;
  color: #475569 !important;
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
}

.product-card-interactive:hover .icon-box {
  transform: scale(1.08);
  background-color: #2563eb !important;
  color: #ffffff !important;
}

.product-card-interactive:hover .icon-box i,
.product-card-interactive:hover .icon-box svg {
  color: #ffffff !important;
  fill: #ffffff !important;
}

/* Screenreader-safe hidden absolute links */
.card-block-link {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 5;
  text-indent: -9999px;
  overflow: hidden;
}

.card-block-link:focus {
  outline: none;
}

/* Subtitle click prompts */
.learn-more-prompt {
  font-size: 11.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: #1d4ed8;
  transition: color 0.3s ease, transform 0.3s ease;
  display: inline-block;
}

.product-card-interactive:hover .learn-more-prompt {
  color: #1e3a8a;
  transform: translateX(4px);
  text-decoration: underline;
}


/* --- SECTION 5: PRODUCT PAGES SPECIFIC STYLES (pos / punchclock) --- */

.pos-landingpage {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  color: #1e293b;
  line-height: 1.6;
}

/* --- 1. Fullscreen Product Hero Images & Layout --- */
.punchclock-hero-image {
  background-image: url("/assets/images/punchclock_hero.webp");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position: relative;
  width: 100vw;
  min-height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
}

.pos-hero-image {
  background-image: url("/assets/images/pos_hero.webp");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position: relative;
  width: 100vw;
  min-height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
}

.erp-hero-image {
  background-image: url("/assets/images/erp_hero.webp");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position: relative;
  width: 100vw;
  min-height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
}

/* Bulletproof EAA Compliant Overlays & Hero Typography */
.hero-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(to right, rgba(0, 0, 0, 0.75) 0%, rgba(0, 0, 0, 0.4) 50%, rgba(0, 0, 0, 0.75) 100%);
  align-self: stretch;
  z-index: 1;
}

.hero-text-box {
  background: rgba(15, 23, 42, 0.65);
  backdrop-filter: blur(8px);
  padding: 2rem 1rem 1rem 1rem;
  border-radius: 12px;
}

.product-hero-text {
  position: relative;
  z-index: 2;
  color: #ffffff;
  text-align: center;
  max-width: 60%;
  padding: 0 20px;
}

@media (max-width: 768px) {
  .product-hero-text {
    max-width: 100%;
  }
}

.hero-title {
  font-size: 1.85rem;
  font-weight: 800;
  letter-spacing: -0.025em;
  line-height: 1.25;
  margin-bottom: 16px;
  text-shadow: 0 4px 10px rgba(0, 0, 0, 0.9);
}

.hero-subtitle {
  font-size: 1.05rem;
  font-weight: 300;
  color: #e2e8f0;
  line-height: 1.45;
  margin-bottom: 24px;
  text-shadow: 0 4px 10px rgba(0, 0, 0, 0.9);
}

@media (max-width: 768px) {

  .pos-hero-image,
  .punchclock-hero-image {
    min-height: 400px;
    background-position: center center;
  }

  .hero-overlay {
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.5) 100%);
  }
}

/* --- 2. High-Contrast Primary & Secondary CTA Buttons --- */

/* Force high-contrast cobalt blue on primary call-to-action buttons (WCAG AA) */
.btn-primary.btn-cta {
  background-color: #2563eb !important;
  /* Solid brand blue prevents contrast washouts */
  border-color: #2563eb !important;
  color: #ffffff !important;
  /* Crisp white text */
  opacity: 1 !important;
  /* Overrides legacy bootstrap transparency settings */
  font-weight: 700;
  padding: 12px 28px;
  font-size: 0.95rem;
  border-radius: 8px;
  box-shadow: 0 4px 15px rgba(37, 99, 235, 0.3) !important;
  transition: all 0.2s ease-in-out;
  white-space: normal !important;
  word-wrap: break-word;
  max-width: 100%;
  display: inline-block;
}

.btn-primary.btn-cta:hover,
.btn-primary.btn-cta:active,
.btn-primary.btn-cta:focus {
  background-color: #1d4ed8 !important;
  /* Deep corporate blue on hover */
  border-color: #1d4ed8 !important;
  color: #ffffff !important;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(37, 99, 235, 0.45) !important;
  outline: 3px solid #2563eb !important;
  /* Explicit keyboard focus ring */
  outline-offset: 2px !important;
}

@media (min-width: 768px) {
  .btn-primary.btn-cta {
    padding: 14px 32px;
    font-size: 1rem;
  }
}

/* Core-Area Inner Section CTA Buttons */
.btn-cta-sub {
  font-weight: 600;
  padding: 8px 18px;
  font-size: 0.85rem;
  border-radius: 6px;
  transition: all 0.2s ease-in-out;
  border: 1.5px solid #2563eb !important;
  color: #2563eb !important;
  background: transparent !important;
  white-space: normal !important;
  word-wrap: break-word;
  max-width: 100%;
  display: inline-block;
}

.btn-cta-sub:hover,
.btn-cta-sub:focus {
  background-color: #2563eb !important;
  color: #ffffff !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(37, 99, 235, 0.15);
}

/* --- 3. Grid Spaces, Typography & Icons --- */
.content-section {
  padding: 48px 0;
}

@media (min-width: 768px) {
  .content-section {
    padding: 80px 0;
  }
}

.section-title {
  font-size: 1.75rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #0f172a;
}

@media (min-width: 768px) {
  .section-title {
    font-size: 2.25rem;
  }
}

/* Icon & Pictogram Wrappers */
.icon-wrapper {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background-color: #f1f5f9;
  padding: 10px;
  margin-bottom: 12px;
}

@media (min-width: 768px) {
  .icon-wrapper {
    width: 64px;
    height: 64px;
    border-radius: 16px;
    padding: 12px;
    margin-bottom: 20px;
  }
}

.svg-icon {
  width: 24px !important;   /* Garantiert eine feste, saubere Icon-Größe im 48px-Wrapper */
  height: 24px !important;  /* Verhindert jegliche vertikale oder horizontale Verzerrung */
  flex-shrink: 0 !important; /* Verhindert, dass Flexbox das SVG bei Platzmangel zusammenquetscht */
  stroke-width: 1.75;
  display: block;
}

@media (min-width: 768px) {
  .svg-icon {
    width: 32px !important;  /* Skaliert sauber hoch im größeren 64px-Dekorations-Wrapper */
    height: 32px !important;
  }
}

.text-primary .svg-icon {
  color: #2563eb;
}

.text-success .svg-icon {
  color: #10b981;
}

.text-warning .svg-icon {
  color: #f59e0b;
}

.text-info .svg-icon {
  color: #06b6d4;
}

.text-danger .svg-icon {
  color: #ef4444;
}

.text-purple .svg-icon {
  color: #8b5cf6;
}

/* --- 4. Structural Lists & Custom Boxes --- */

/* Custom Feature Bullet Lists */
.feature-list {
  list-style: none;
  padding-left: 0;
  margin-bottom: 0;
}

.feature-list li {
  position: relative;
  padding-left: 24px;
  margin-bottom: 14px;
  font-size: 0.95rem;
  color: #334155;
  text-align: left;
}

@media (min-width: 768px) {
  .feature-list li {
    padding-left: 28px;
    margin-bottom: 18px;
    font-size: 1rem;
  }
}

.feature-list li:last-child {
  margin-bottom: 0;
}

.feature-list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 1px;
  color: #10b981;
  font-weight: 900;
  font-size: 1rem;
}

@media (min-width: 768px) {
  .feature-list li::before {
    font-size: 1.1rem;
  }
}

.feature-list li strong {
  color: #0f172a;
  display: block;
  margin-bottom: 2px;
}

/* Info Boxes: Server selection & migration */
.server-choice-box {
  background-color: #f0fdf4 !important;
  border: 1px solid #bbf7d0 !important;
  border-left: 4px solid #10b981 !important;
  border-radius: 8px;
  text-align: left;
  padding: 24px !important;
  margin-top: 32px;
}

.migration-box {
  background-color: #fef2f2 !important;
  border: 1px solid #fecaca !important;
  border-left: 4px solid #ef4444 !important;
  border-radius: 8px;
  text-align: left;
  padding: 24px !important;
  margin-top: 32px;
}

.server-options-list,
.migration-options-list {
  list-style-type: none !important;
  padding-left: 0 !important;
  margin-bottom: 0 !important;
}

.server-options-list li,
.migration-options-list li {
  position: relative;
  padding-left: 20px !important;
  font-size: 0.95rem;
  margin-bottom: 8px;
  color: #475569;
}

@media (min-width: 768px) {

  .server-options-list li,
  .migration-options-list li {
    font-size: 1rem;
  }
}

.server-options-list li::before,
.migration-options-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 9px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
}

.server-options-list li::before {
  background-color: #10b981;
}

.migration-options-list li::before {
  background-color: #ef4444;
}


/* --- SECTION 6: GLOBAL FOOTER & CALLOUT BANNERS --- */

.cta-bottom-bar {
  background-color: #1e293b !important;
  color: #ffffff !important;
  border-top: 1px solid #334155;
  border-bottom: 1px solid #334155;
}

.cta-bottom-lead {
  color: #cbd5e1 !important;
  max-width: 800px;
}

.btn-cta-blue {
  background-color: #2563eb !important;
  border-color: #2563eb !important;
  color: #ffffff !important;
  border-radius: 8px;
  box-shadow: 0 4px 14px rgba(37, 99, 235, 0.35);
  transition: all 0.2s ease;
  text-decoration: none !important;
}

.btn-cta-blue:hover,
.btn-cta-blue:focus {
  background-color: #1d4ed8 !important;
  border-color: #1d4ed8 !important;
  color: #ffffff !important;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(29, 78, 216, 0.5);
  outline: 3px solid #2563eb;
  outline-offset: 2px;
}


/* ==========================================================================
   SECTION 7: FOOTER & COOKIE CONSENT CONTRAST FIXES (WCAG 2.1 AA compliant)
   ========================================================================== */

/* --- 1. Global Footer Contrast & Links --- */
#main-footer.bg-primary {
  background-color: #1e293b !important;
  /* Switch from old navy to high-contrast slate dark */
  color: #f1f5f9 !important;
  /* Clean ice-white text color */
}

/* Hard-enforce accessible contrast for footer utility links */
#main-footer a {
  color: #38bdf8 !important;
  /* Vibrant sky blue (> 5.5:1 against slate-800) */
  text-decoration: underline !important;
  font-weight: 500;
}

#main-footer a:hover,
#main-footer a:focus {
  color: #7dd3fc !important;
  text-decoration: none !important;
}

/* --- 2. Cookie Consent Banner General Styles --- */
.cc-window {
  background-color: #0f172a !important;
  /* Deep charcoal black background */
  color: #f8fafc !important;
  /* Perfect crisp bone-white text */
  border-top: 3px solid #2563eb !important;
  /* Clean modern branding line */
}

/* Text message inside cookie dialog */
.cc-window .cc-message {
  color: #f8fafc !important;
  font-size: 0.95rem !important;
  line-height: 1.5 !important;
}

/* Inline text links inside cookie banner */
.cc-window .cc-link {
  color: #38bdf8 !important;
  text-decoration: underline !important;
  font-weight: 600 !important;
}

.cc-window .cc-link:hover,
.cc-window .cc-link:focus {
  color: #7dd3fc !important;
}

/* Action Buttons inside cookie consent (e.g., Decline / Ablehnen) */
.cc-window .cc-btn {
  padding: 10px 24px !important;
  font-weight: 700 !important;
  border-radius: 6px !important;
  transition: all 0.2s ease !important;
}

/* --- 3. Decline Action Button specific overrides --- */
.cc-window .cc-deny {
  background-color: #334155 !important;
  /* Dark Slate background */
  color: #f8fafc !important;
  /* Crisp contrast white text */
  border: 1px solid #475569 !important;
}

.cc-window .cc-deny:hover,
.cc-window .cc-deny:focus {
  background-color: #475569 !important;
  color: #ffffff !important;
}

/* --- 4. Accept / Allow Action Button specific overrides --- */
/* Hard-enforced override to bypass plugin-level specificity and inline styles */
#cookieconsent-container .cc-window .cc-btn.cc-allow,
body .cc-window .cc-btn.cc-allow,
a.cc-btn.cc-allow {
  background-color: #2563eb !important;
  /* Solid brand blue (> 5.3:1 contrast against white text) */
  color: #ffffff !important;
  /* Crisp white text */
  border: 1px solid #2563eb !important;
  opacity: 1 !important;
  /* Prevents opacity-based contrast wash-outs */
}

#cookieconsent-container .cc-window .cc-btn.cc-allow:hover,
#cookieconsent-container .cc-window .cc-btn.cc-allow:focus,
body .cc-window .cc-btn.cc-allow:hover,
body .cc-window .cc-btn.cc-allow:focus,
a.cc-btn.cc-allow:hover,
a.cc-btn.cc-allow:focus {
  background-color: #1d4ed8 !important;
  /* Deep corporate blue on hover/focus */
  border-color: #1d4ed8 !important;
  color: #ffffff !important;
}

/* --- 5. Persistent Cookie Policy Revoke Button ("Cookie Policy" Tab) --- */
/* Force high-contrast style on the floating/hovering "Cookie Policy" tab at the bottom-left */
.cc-revoke,
body .cc-revoke,
#cookieconsent-container .cc-revoke {
  background-color: #1e293b !important;
  /* Dark Slate to perfectly blend with our new footer */
  color: #f8fafc !important;
  /* Perfect crisp white text for 100% contrast compliance */
  border: 1px solid #475569 !important;
  border-bottom: none !important;
  /* Seamlessly sits flat on the screen edge */
  padding: 10px 16px !important;
  font-weight: 600 !important;
  font-size: 0.85rem !important;
  border-radius: 6px 6px 0 0 !important;
  /* Clean, modern rounded top corners */
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1) !important;
  opacity: 1 !important;
  /* Prevents contrast wash-outs through transparency */
  box-shadow: 0 -4px 12px rgba(15, 23, 42, 0.15) !important;
  text-decoration: none !important;
}

/* Accessible hover and keyboard-focus states */
.cc-revoke:hover,
.cc-revoke:focus,
body .cc-revoke:hover,
body .cc-revoke:focus {
  background-color: #2563eb !important;
  /* Transitions to vivid brand blue on hover */
  border-color: #2563eb !important;
  color: #ffffff !important;
  transform: translateY(-3px) !important;
  /* Soft interactive lift-up effect */
  outline: 3px solid #2563eb !important;
  /* Explicit keyboard focus ring */
  outline-offset: 2px !important;
}