/*
 * Theme Name:   cycure Kadence Child
 * Theme URI:    https://www.cycure.io
 * Description:  Apple-inspired clean child theme for cycure.io
 * Author:       cycure
 * Author URI:   https://www.cycure.io
 * Template:     kadence
 * Version:      4.3.0
 * License:      GPL-2.0-or-later
 * Text Domain:  kadence-child
 */

/* ==========================================================================
   TABLE OF CONTENTS
   ==========================================================================
   1.  Design Tokens (CSS Custom Properties)
   2.  Reset & Base
   3.  Typography
   4.  Links
   5.  Header (Fixed Frosted Glass — 44px)
   6.  Header Inner Wrappers (Kadence Overrides)
   7.  Logo / Branding
   8.  Navigation Links
   9.  Dropdown / Sub-Menus
   10. Buttons
   11. Content Layout
   12. Hero (Cover Block)
   13. Sections (Dark / Light)
   14. Cards / Columns
   15. Service Grid (Apple-Style)
   16. Images
   17. Separator / Blockquote / Lists
   18. Forms
   19. CTA Section
   20. Stats Section
   21. Page Header & Page CTA
   22. Footer (Unified)
   23. Scroll Animations
   24. Scrollbar
   25. Selection
   26. Utilities
   27. Responsive (Tablet)
   28. Responsive (Mobile)
   29. Responsive (Small Mobile)
   30. Print
   31. Blog Archive
   32. Latest Posts (Front Page)
   33. Dark Mode (prefers-color-scheme: dark)
   ========================================================================== */


/* ==========================================================================
   1. DESIGN TOKENS
   ========================================================================== */

:root {
  /* Color scheme — declare support for light + dark, so native controls adapt */
  color-scheme: light dark;

  /* Colors */
  --c-black:          #1d1d1f;
  --c-dark:           #1a1a2e;
  --c-dark-surface:   #16213e;
  --c-gray-700:       #424245;
  --c-gray-500:       #6e6e73;
  --c-gray-400:       #86868b;
  --c-gray-200:       #d2d2d7;
  --c-gray-100:       #f5f5f7;
  --c-warm-bg:        #fbfbfd;
  --c-white:          #ffffff;
  --c-accent:         #008a30; /* Darkened from #00b341 — passes WCAG 2.1 AA (5.2:1 on white) */
  --c-accent-hover:   #007028;
  --c-accent-light:   rgba(0, 138, 48, 0.08);
  --c-accent-glow:    rgba(0, 138, 48, 0.15);
  --c-gradient-start: #0a1628;
  --c-gradient-end:   #1a1a2e;

  /* Fonts — System stack (SF Pro on Apple, Segoe UI on Windows, Roboto on Android) */
  --font-primary: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI',
                  Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-display: -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Segoe UI',
                  'Helvetica Neue', sans-serif;

  /* Easing */
  --ease-out:    cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --ease-apple:  cubic-bezier(0.4, 0, 0.2, 1);
  --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);

  /* Layout */
  --max-width:        1200px;
  --max-width-narrow: 860px;

  /* Spacing — Fluid vertical rhythm (Apple-style: ~60–80px desktop, ~40–48px mobile) */
  --space-section:    clamp(3.5rem, 5vw, 5rem);     /* 56–80px — primary section padding */
  --space-section-sm: clamp(2.5rem, 3.5vw, 3.5rem); /* 40–56px — smaller sections, headings, CTA */
  --space-block:      clamp(1.5rem, 2.5vw, 2.5rem); /* 24–40px — between blocks within sections */
  --space-inline:     clamp(1.25rem, 4vw, 2.5rem);  /* 20–40px — horizontal content padding */

  /* Radius */
  --radius-sm: 12px;
  --radius-md: 16px;
  --radius-lg: 24px;
  --radius-xl: 28px;

  /* Shadows */
  --shadow-sm:         0 2px 8px rgba(0, 0, 0, 0.04);
  --shadow-md:         0 4px 20px rgba(0, 0, 0, 0.06);
  --shadow-lg:         0 8px 40px rgba(0, 0, 0, 0.08);
  --shadow-xl:         0 12px 60px rgba(0, 0, 0, 0.12);
  --shadow-card:       0 2px 16px rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.02);
  --shadow-card-hover: 0 12px 40px rgba(0, 0, 0, 0.1), 0 0 0 1px rgba(0, 0, 0, 0.04);
  --shadow-glow:       0 0 40px rgba(0, 138, 48, 0.15);

  /* Navigation & dropdown color tokens — toggled in [data-theme="dark"] */
  --nav-link-color:         rgba(0, 0, 0, 0.8);
  --nav-link-color-hover:   rgba(0, 0, 0, 0.56);
  --nav-link-color-current: rgba(0, 0, 0, 1.0);
  --dropdown-bg:            rgba(251, 251, 253, 0.98);
  --dropdown-border:        rgba(0, 0, 0, 0.08);
  --dropdown-link:          rgba(0, 0, 0, 0.8);
  --dropdown-link-hover-bg: rgba(0, 0, 0, 0.04);

  /* Footer color tokens — toggled in [data-theme="dark"] */
  --footer-bg:              #f8f8fa;
  --footer-border:          rgba(0, 0, 0, 0.04);
  --footer-copyright-border: rgba(0, 0, 0, 0.06);

  /* Header */
  --header-height: 44px;

  /* Buttons */
  --btn-min-h:     46px;
  --btn-pad-y:     0.72rem;
  --btn-pad-x:     1.6rem;
  --btn-font-size: 0.95rem;
}


/* ==========================================================================
   2. RESET & BASE
   ========================================================================== */

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  overflow-y: auto;
}

body {
  margin: 0;
  padding-top: var(--header-height) !important;
  font-family: var(--font-primary);
  font-weight: 400;
  font-size: 17px;
  line-height: 1.65;
  color: var(--c-black);
  background: var(--c-warm-bg);
  letter-spacing: -0.01em;
  overflow-x: clip;
}

body.is-front-page {
  padding-top: 0 !important;
}


/* ==========================================================================
   3. TYPOGRAPHY
   ========================================================================== */

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display) !important;
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.1;
  color: var(--c-black);
  margin-top: 0;
  overflow-wrap: break-word;
  -webkit-font-smoothing: antialiased;
}

h1,
.entry-content h1 {
  font-size: clamp(2.25rem, 5vw, 3.75rem) !important;
  font-weight: 800;
  letter-spacing: -0.04em;
  line-height: 1.06;
  margin-bottom: 1.5rem;
  hyphens: none !important;
  -webkit-hyphens: none !important;
  word-break: normal !important;
}

h2,
.entry-content h2 {
  font-size: clamp(1.85rem, 3.8vw, 3rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  margin-bottom: 1.25rem;
}

h3,
.entry-content h3 {
  font-size: clamp(1.15rem, 2vw, 1.5rem);
  font-weight: 600;
  letter-spacing: -0.02em;
  margin-bottom: 0.85rem;
}

h4,
.entry-content h4 {
  font-size: clamp(1.05rem, 1.5vw, 1.3rem);
  font-weight: 600;
  letter-spacing: -0.015em;
}

.entry-title,
.wp-block-heading {
  font-family: var(--font-display) !important;
}

p {
  font-size: 1.0625rem;
  line-height: 1.65;
  color: var(--c-gray-700);
  margin-bottom: 1.25rem;
}

.lead,
.entry-content > p:first-of-type {
  font-size: clamp(1.15rem, 1.9vw, 1.35rem);
  line-height: 1.5;
  color: var(--c-gray-500);
  font-weight: 400;
}


/* ==========================================================================
   4. LINKS
   ========================================================================== */

a {
  color: var(--c-accent);
  text-decoration: none;
  transition: color 0.2s var(--ease-apple);
}

a:hover,
a:focus {
  color: var(--c-accent-hover);
}

/* WCAG 2.1 AA — visible keyboard focus ring */
:focus-visible {
  outline: 3px solid var(--c-accent);
  outline-offset: 3px;
  border-radius: 4px;
}

/* Suppress focus ring for mouse/touch interactions */
:focus:not(:focus-visible) {
  outline: none;
}

/* ==========================================================================
   5. HEADER — Fixed Frosted Glass (Apple-Style, 44px)
   ========================================================================== */

.site-header,
#masthead {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  z-index: 99999 !important;
  height: var(--header-height) !important;
  min-height: var(--header-height) !important;
  max-height: var(--header-height) !important;
  overflow: visible !important;
  background: rgba(255, 255, 255, 0.8) !important;
  -webkit-backdrop-filter: saturate(180%) blur(20px) !important;
  backdrop-filter: saturate(180%) blur(20px) !important;
  border-bottom: 0.5px solid rgba(0, 0, 0, 0.1) !important;
  box-shadow: none !important;
  transition: background 0.36s var(--ease-apple),
              border-color 0.36s var(--ease-apple);
}

/* Front-page: same frosted glass (no transparent-to-glass transition) */
.is-front-page .site-header,
.is-front-page .site-header:not(.scrolled),
.is-front-page #masthead,
.is-front-page #masthead:not(.scrolled) {
  background: rgba(255, 255, 255, 0.8) !important;
}

/* Scrolled state: slightly more opaque */
.site-header.scrolled,
#masthead.scrolled,
.is-front-page .site-header.scrolled,
.is-front-page #masthead.scrolled {
  background: rgba(251, 251, 253, 0.9) !important;
  border-bottom-color: rgba(0, 0, 0, 0.12) !important;
}

/* Admin bar offset */
.admin-bar .site-header,
.admin-bar #masthead {
  top: 32px !important;
}

/* Content z-order below header */
.site-content,
.entry-content-wrap,
#inner-wrap,
.site-main {
  position: relative;
  z-index: 1;
}


/* ==========================================================================
   6. HEADER INNER WRAPPERS — Override Kadence Inline Styles
   ========================================================================== */

/* All inner wrappers: transparent, 44px, centered */
#masthead .site-header-wrap,
#masthead .site-header-inner-wrap,
#masthead .site-header-upper-wrap,
#masthead .site-header-upper-inner-wrap,
#masthead .site-main-header-wrap,
#masthead .site-main-header-inner-wrap,
#masthead .site-header-row-container,
#masthead .site-header-row-container-inner {
  position: relative !important;
  top: 0 !important;
  width: 100% !important;
  height: var(--header-height) !important;
  min-height: var(--header-height) !important;
  max-height: var(--header-height) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-grow: 1 !important;
  overflow: visible !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  background: transparent !important;
  border-bottom: none !important;
  box-shadow: none !important;
}

/* Kadence sticky placeholder */
.site-header-upper-inner-wrap.child-is-fixed {
  height: var(--header-height) !important;
  min-height: var(--header-height) !important;
  max-height: var(--header-height) !important;
}

/* Kadence sticky header inner wrapper: force transparent */
#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) > .site-header-row-container-inner,
#masthead .kadence-sticky-header > .site-header-row-container-inner {
  background: transparent !important;
}

/* Site container centered within header (Apple ~1024px) */
#masthead .site-header-row-container-inner > .site-container {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  width: 100% !important;
  max-width: 1024px !important;
  margin: 0 auto !important;
  padding-left: 22px !important;
  padding-right: 22px !important;
  box-sizing: border-box !important;
}

/* Header row: single centered flex row for logo + nav */
#masthead .site-header-row.site-header-row-has-sides,
#masthead .site-main-header-inner-wrap.site-header-row {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  width: 100% !important;
  flex-grow: 1 !important;
  height: var(--header-height) !important;
  gap: 0 !important;
}

/* Section left (Logo) */
#masthead .site-header-main-section-left.site-header-section {
  position: static !important;
  display: flex !important;
  align-items: center !important;
  flex: 0 0 auto !important;
  width: auto !important;
  height: var(--header-height) !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Section right (Nav) */
#masthead .site-header-main-section-right.site-header-section {
  position: static !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 auto !important;
  width: auto !important;
  height: var(--header-height) !important;
  margin: 0 !important;
  padding: 0 !important;
}


/* ==========================================================================
   7. LOGO / BRANDING
   ========================================================================== */

#masthead .site-branding,
.site-header .site-branding {
  display: flex !important;
  align-items: center !important;
  height: var(--header-height) !important;
  padding: 0 !important;
  margin: 0 !important;
}

#masthead .site-branding a,
#masthead .site-branding .site-title,
#masthead .site-branding .site-title a,
.site-branding .site-title,
.site-branding .site-title a,
.is-front-page .site-branding .site-title,
.is-front-page .site-branding .site-title a {
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  letter-spacing: -0.01em !important;
  color: rgba(0, 0, 0, 0.9) !important;
  text-decoration: none !important;
  padding-right: 16px !important;
}

.site-branding .site-description {
  display: none;
}


/* ==========================================================================
   8. NAVIGATION LINKS
   ========================================================================== */

/* Nav containers */
#masthead .main-navigation,
#masthead .header-navigation,
#masthead .main-navigation .primary-menu-container,
#masthead .header-navigation .header-menu-container,
#masthead .main-navigation .primary-menu-container > ul,
#masthead .header-navigation .header-menu-container > ul,
#masthead .header-navigation .menu {
  height: var(--header-height) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* Nav list items */
#masthead .header-navigation .header-menu-container > ul > li.menu-item,
#masthead .main-navigation .primary-menu-container > ul > li.menu-item,
#masthead .navigation .menu > li {
  display: flex !important;
  align-items: center !important;
  height: var(--header-height) !important;
}

/* Nav links */
#masthead .header-navigation .header-menu-container > ul > li.menu-item > a,
#masthead .main-navigation .primary-menu-container > ul > li.menu-item > a,
#masthead .navigation .menu > li > a,
.is-front-page #masthead .navigation .menu > li > a,
.is-front-page .site-header:not(.scrolled) .header-navigation .menu > li > a,
.is-front-page .site-header:not(.scrolled) .primary-navigation .menu > li > a {
  height: var(--header-height) !important;
  display: inline-flex !important;
  align-items: center !important;
  line-height: 1 !important;
  padding: 0 16px !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  letter-spacing: 0.02em !important;
  color: var(--nav-link-color) !important;
  text-shadow: none !important;
  text-decoration: none !important;
  opacity: 1 !important;
  white-space: nowrap !important;
  transition: color 0.3s ease !important;
}

/* Nav links: hover */
#masthead .header-navigation .header-menu-container > ul > li.menu-item > a:hover,
#masthead .main-navigation .primary-menu-container > ul > li.menu-item > a:hover,
#masthead .navigation .menu > li > a:hover,
.is-front-page .site-header .header-navigation .menu > li > a:hover,
.is-front-page .site-header .primary-navigation .menu > li > a:hover {
  color: var(--nav-link-color-hover) !important;
  background: transparent !important;
}

/* Nav links: current page */
#masthead .navigation .menu > li.current-menu-item > a,
.is-front-page .site-header .header-navigation .menu > li.current-menu-item > a,
.is-front-page .site-header .primary-navigation .menu > li.current-menu-item > a {
  color: var(--nav-link-color-current) !important;
  font-weight: 500 !important;
}

/* Dropdown toggle arrow */
.header-navigation .menu > li .dropdown-nav-toggle,
.primary-navigation .menu > li .dropdown-nav-toggle {
  fill: var(--nav-link-color-hover) !important;
  color: var(--nav-link-color-hover) !important;
}

/* Kadence sub-menu toggle button */
#masthead .header-navigation .header-menu-container > ul > li.menu-item button.dropdown-nav-toggle {
  color: var(--nav-link-color-hover) !important;
  background: transparent !important;
  border: none !important;
}


/* ==========================================================================
   9. DROPDOWN / SUB-MENUS
   ========================================================================== */

.header-navigation .sub-menu,
.primary-navigation .sub-menu,
#masthead .navigation .sub-menu {
  top: var(--header-height) !important;
  background: var(--dropdown-bg) !important;
  -webkit-backdrop-filter: saturate(180%) blur(20px) !important;
  backdrop-filter: saturate(180%) blur(20px) !important;
  border: 1px solid var(--dropdown-border) !important;
  border-radius: 0 !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08) !important;
  padding: 0 !important;
  min-width: 220px;
  overflow: hidden;
}

.header-navigation .sub-menu li,
.primary-navigation .sub-menu li,
#masthead .navigation .sub-menu li {
  padding: 0 !important;
  margin: 0 !important;
  list-style: none;
  width: 100% !important;
}

.header-navigation .sub-menu a,
.primary-navigation .sub-menu a,
#masthead .navigation .sub-menu a {
  color: var(--dropdown-link) !important;
  font-size: 11px !important;
  padding: 0.5rem 1rem;
  border-radius: 0;
  display: block;
  width: 100% !important;
  box-sizing: border-box !important;
  transition: background 0.15s var(--ease-apple), color 0.15s var(--ease-apple);
}

.header-navigation .sub-menu a:hover,
.primary-navigation .sub-menu a:hover,
#masthead .navigation .sub-menu a:hover {
  color: #fff !important;
  background: #1d1d1f !important;
}

.header-navigation .sub-menu .current-menu-item > a,
.primary-navigation .sub-menu .current-menu-item > a,
#masthead .navigation .sub-menu .current-menu-item > a {
  color: #fff !important;
  background: #1d1d1f !important;
}


/* ==========================================================================
   10. BUTTONS — Apple Pill Style
   ========================================================================== */

.wp-block-button__link,
.wp-element-button,
.kb-button,
a.button,
button.button,
input[type="submit"],
input[type="button"],
input[type="reset"] {
  font-family: var(--font-primary) !important;
  font-size: var(--btn-font-size) !important;
  font-weight: 500 !important;
  letter-spacing: 0;
  min-height: var(--btn-min-h);
  padding: var(--btn-pad-y) var(--btn-pad-x) !important;
  border-radius: 980px !important;
  border: none;
  cursor: pointer;
  line-height: 1.2 !important;
  text-decoration: none !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  white-space: nowrap;
  transition: all 0.3s var(--ease-apple);
}

/* Primary CTA */
.wp-block-button:not(.is-style-outline) .wp-block-button__link,
.kb-button:not(.kb-btn-outline),
a.button,
input[type="submit"],
.wp-element-button {
  background: var(--c-accent) !important;
  color: var(--c-white) !important;
}

.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover,
.kb-button:not(.kb-btn-outline):hover,
a.button:hover,
input[type="submit"]:hover,
.wp-element-button:hover {
  background: var(--c-accent-hover) !important;
  color: var(--c-white) !important;
  transform: scale(1.04);
  box-shadow: 0 6px 24px rgba(0, 179, 65, 0.3);
}

.wp-block-button__link:active,
.kb-button:active,
a.button:active {
  transform: scale(0.97);
}

/* Outline / Secondary */
.wp-block-button.is-style-outline .wp-block-button__link,
.kb-button.kb-btn-outline {
  background: transparent !important;
  color: var(--c-accent) !important;
  border: 1.5px solid var(--c-accent) !important;
  padding: calc(var(--btn-pad-y) - 1.5px) calc(var(--btn-pad-x) - 1.5px) !important;
  min-height: var(--btn-min-h);
}

.wp-block-button.is-style-outline .wp-block-button__link:hover,
.kb-button.kb-btn-outline:hover {
  background: var(--c-accent-light) !important;
  color: var(--c-accent-hover) !important;
  box-shadow: none;
}


/* ==========================================================================
   11. CONTENT LAYOUT
   ========================================================================== */

/* Full-width content wrapper — allows .alignfull children to span viewport
   Scoped to single posts & pages — must NOT override blog archive cards */
.single .entry-content-wrap,
.page .entry-content-wrap {
  max-width: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin: 0 !important;
}

/* Constrain non-full-width content */
.entry-content > *:not(.alignfull):not(.alignwide):not(.wp-block-cover):not(.cycure-dark-section):not(.cycure-light-section) {
  max-width: var(--max-width);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--space-inline);
  padding-right: var(--space-inline);
}

/* Full-width blocks */
.entry-content > .alignfull {
  max-width: none !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Constrain text blocks for readability */
.entry-content > h1,
.entry-content > h2,
.entry-content > h3,
.entry-content > h4,
.entry-content > p,
.entry-content > ul,
.entry-content > ol,
.entry-content > blockquote,
.entry-content > .wp-block-separator {
  max-width: var(--max-width-narrow);
  margin-left: auto;
  margin-right: auto;
}

/* Single post header — align with content width so title + meta
   sit at exactly the same width as the body text below */
.single .entry-header,
.page:not(.home) .entry-header {
  max-width: var(--max-width-narrow);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--space-inline);
  padding-right: var(--space-inline);
}


/* ==========================================================================
   12. HERO (Cover Block)
   ========================================================================== */

.wp-block-cover {
  min-height: 85vh !important;
  display: flex;
  align-items: center;
  border-radius: 0;
  position: relative;
  overflow: hidden;
}

.wp-block-cover .wp-block-cover__inner-container {
  max-width: var(--max-width-narrow);
  text-align: center;
  position: relative;
  z-index: 2;
}

.wp-block-cover h1,
.wp-block-cover h2 {
  color: var(--c-white) !important;
  text-shadow: none;
}

.wp-block-cover p {
  color: rgba(255, 255, 255, 0.85) !important;
  font-size: 1.25rem;
}

/* Full-width layout spacing */
.content-width-fullwidth .wp-site-blocks .alignwide {
  margin-top: 80px;
}

.content-style-unboxed .entry:not(.loop-entry) {
  margin-top: 80px;
}

/* Front-page hero: full bleed */
.is-front-page .entry-content > .wp-block-cover:first-child {
  margin-top: calc(var(--header-height) * -1) !important;
  min-height: calc(100vh + var(--header-height)) !important;
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  margin-bottom: 0 !important;
  overflow: hidden; /* Clip oversized image for parallax travel */
}

.is-front-page .entry-content > .wp-block-cover:first-child .wp-block-cover__image-background {
  width: 100% !important;
  height: 160% !important;  /* Oversized for parallax travel room */
  min-height: 160% !important;
  object-fit: cover !important;
  will-change: transform;
}

/* --- Scroll-driven Parallax Animation --- */
@keyframes parallax-hero {
  from { transform: translateY(-10%); }
  to   { transform: translateY(-55%); }
}

/* CSS Scroll-driven Animation (Chrome 115+, Edge 115+, Safari 16.4+) */
@supports (animation-timeline: scroll()) {
  .is-front-page .entry-content > .wp-block-cover:first-child .wp-block-cover__image-background {
    animation: parallax-hero linear both;
    animation-timeline: scroll(root);
  }
}

/* Hero image visible + light overlay for readability */
.cycure-hero .wp-block-cover__image-background {
  opacity: 1 !important;
  object-position: center 46% !important;
}

.cycure-hero.wp-block-cover .wp-block-cover__background,
.wp-block-cover.cycure-hero .wp-block-cover__background {
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.42) 0%,
    rgba(248, 250, 252, 0.30) 45%,
    rgba(240, 245, 250, 0.24) 75%,
    rgba(248, 250, 252, 0.36) 100%
  ) !important;
  opacity: 1 !important;
  animation: none !important;
}

/* Hero text: dark on bright image */
.cycure-hero h1,
.cycure-hero .wp-block-heading,
.cycure-hero h1.has-text-align-center {
  color: var(--c-black) !important;
  text-shadow: none !important;
  font-weight: 700 !important;
  letter-spacing: -0.03em !important;
  font-size: clamp(2.2rem, 5vw, 3.5rem) !important;
}

.cycure-hero p,
.cycure-hero .wp-block-cover__inner-container > p {
  color: var(--c-gray-700) !important;
  text-shadow: none !important;
}

/* Hero outline button: frosted white */
.cycure-hero .is-style-outline .wp-block-button__link,
.is-front-page .wp-block-cover .wp-block-button.is-style-outline .wp-block-button__link {
  background: rgba(255, 255, 255, 0.8) !important;
  color: var(--c-black) !important;
  border: 1.5px solid rgba(0, 0, 0, 0.12) !important;
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
}

.cycure-hero .is-style-outline .wp-block-button__link:hover,
.is-front-page .wp-block-cover .wp-block-button.is-style-outline .wp-block-button__link:hover {
  background: rgba(255, 255, 255, 1) !important;
  color: var(--c-black) !important;
  border-color: rgba(0, 0, 0, 0.18) !important;
  transform: scale(1.04);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}

/* Hero primary button hover */
.cycure-hero .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover {
  transform: scale(1.02);
  box-shadow: 0 8px 30px rgba(0, 179, 65, 0.25);
}

/* Hero button sizing */
.is-front-page .wp-block-cover .wp-block-buttons {
  gap: 0.75rem;
}

.is-front-page .wp-block-cover .wp-block-button__link {
  min-width: 220px;
}

.is-front-page .wp-block-cover .wp-block-cover__inner-container > p {
  margin-bottom: 1.5rem;
  font-size: clamp(1.05rem, 1.5vw, 1.3rem);
}

/* Breathing room after hero — handled by
   .is-front-page .entry-content > .wp-block-cover:first-child
   (margin-bottom: var(--space-section)) */


/* ==========================================================================
   13. SECTIONS — Dark / Light (Apple-Style Alternating)
   ========================================================================== */

/* Dark section */
.cycure-dark-section {
  background: linear-gradient(135deg, var(--c-gradient-start) 0%, var(--c-gradient-end) 100%) !important;
  color: var(--c-white) !important;
  padding: var(--space-section) var(--space-inline) !important;
  position: relative;
  overflow: hidden;
}

.cycure-dark-section::before {
  content: '';
  position: absolute;
  top: -50%;
  right: -20%;
  width: 600px;
  height: 600px;
  background: radial-gradient(circle, rgba(0, 179, 65, 0.08) 0%, transparent 70%);
  pointer-events: none;
}

.cycure-dark-section h2,
.cycure-dark-section h3 {
  color: var(--c-white) !important;
}

.cycure-dark-section p {
  color: rgba(255, 255, 255, 0.7) !important;
}

.cycure-dark-section a:not(.wp-block-button__link) {
  color: var(--c-accent) !important;
}

/* Cards inside dark section */
.cycure-dark-section .wp-block-column {
  background: rgba(255, 255, 255, 0.05) !important;
  border: 1px solid rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(10px);
}

.cycure-dark-section .wp-block-column:hover {
  background: rgba(255, 255, 255, 0.08) !important;
  border-color: rgba(255, 255, 255, 0.12);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
}

.cycure-dark-section .wp-block-column h3 {
  color: var(--c-white) !important;
}

.cycure-dark-section .wp-block-column p {
  color: rgba(255, 255, 255, 0.65) !important;
}

/* Buttons in dark section */
.cycure-dark-section .wp-block-button:not(.is-style-outline) .wp-block-button__link {
  background: var(--c-white) !important;
  color: var(--c-black) !important;
}

.cycure-dark-section .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover {
  background: var(--c-gray-100) !important;
  transform: scale(1.04);
  box-shadow: 0 6px 24px rgba(255, 255, 255, 0.2);
}

.cycure-dark-section .wp-block-button.is-style-outline .wp-block-button__link {
  color: var(--c-white) !important;
  border-color: rgba(255, 255, 255, 0.4) !important;
}

.cycure-dark-section .wp-block-button.is-style-outline .wp-block-button__link:hover {
  background: rgba(255, 255, 255, 0.1) !important;
  border-color: rgba(255, 255, 255, 0.6) !important;
  color: var(--c-white) !important;
}

/* Light section */
.cycure-light-section {
  background: var(--c-gray-100) !important;
  padding: var(--space-section) var(--space-inline) !important;
}

/* Unified section spacing — consistent vertical rhythm (Apple-style)
   Columns get padding (no own internal padding).
   Groups use 0 — they define their own padding via class (e.g. .cycure-cta-section). */
.entry-content > .wp-block-columns {
  padding-top: var(--space-section-sm);
  padding-bottom: var(--space-section-sm);
}

.entry-content > .wp-block-group {
  padding-top: 0;
  padding-bottom: 0;
}

/* Remove double-spacing when columns follow each other */
.entry-content > .wp-block-columns + .wp-block-columns {
  padding-top: 0;
}

/* Section headings (centered) */
.cycure-section-heading {
  text-align: center;
  max-width: var(--max-width-narrow);
  margin: 0 auto var(--space-section-sm);
}

.cycure-section-heading h2 {
  margin-bottom: 0.75rem;
}

.cycure-section-heading p {
  font-size: clamp(1.05rem, 1.6vw, 1.2rem);
  color: var(--c-gray-500);
}


/* ==========================================================================
   14. CARDS / COLUMNS
   ========================================================================== */

.wp-block-columns {
  gap: 1.75rem;
  align-items: stretch;
}

.wp-block-column {
  background: var(--c-white);
  border-radius: var(--radius-lg);
  padding: 2.25rem 2rem;
  box-shadow: var(--shadow-card);
  transition: box-shadow 0.4s var(--ease-apple), transform 0.4s var(--ease-apple);
  text-align: center;
  border: 1px solid rgba(0, 0, 0, 0.03);
  display: flex;
  flex-direction: column;
}

.wp-block-column:hover {
  box-shadow: var(--shadow-card-hover);
  transform: translateY(-6px);
}

.wp-block-column h3 {
  font-size: clamp(1rem, 1.6vw, 1.25rem) !important;
  word-break: keep-all;
  overflow-wrap: break-word;
  hyphens: none;
  -webkit-hyphens: none;
  line-height: 1.25;
}

.wp-block-column p {
  font-size: 0.9375rem;
  line-height: 1.6;
}

.wp-block-column a {
  font-weight: 500;
  font-size: 0.9375rem;
}

/* Push buttons to bottom of card */
.wp-block-column .wp-block-buttons {
  margin-top: auto !important;
  padding-top: 1rem;
}

.wp-block-column > p,
.wp-block-column > .wp-block-list {
  flex-grow: 1;
}

/* Card images */
.wp-block-column .wp-block-image {
  margin-bottom: 1.25rem;
}

.wp-block-column .wp-block-image img {
  border-radius: var(--radius-md);
  width: 100%;
  height: 180px;
  object-fit: cover;
}

/* Flat columns (no card style) */
.wp-block-columns.is-style-plain .wp-block-column,
.wp-block-columns[class*="no-card"] .wp-block-column {
  box-shadow: none;
  padding: 1rem;
  border-radius: 0;
  border: none;
}

.wp-block-columns.is-style-plain .wp-block-column:hover {
  transform: none;
  box-shadow: none;
}


/* ==========================================================================
   15. SERVICE GRID — Apple-Style (Leistungen Page)
   ========================================================================== */

/* --- Grid layout --- */
.cycure-service-grid {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 8px !important;
  max-width: 100% !important;
  width: 100% !important;
  padding: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  margin-bottom: 8px !important;
}

.cycure-service-grid.wp-block-columns {
  flex-wrap: nowrap !important;
}

.entry-content > .cycure-service-grid {
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* --- Shared card base --- */
.cycure-card-dark,
.cycure-card-light {
  border-radius: 0 !important;
  padding: 0 !important;
  min-height: 600px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  align-items: center !important;
  text-align: center !important;
  overflow: hidden !important;
  position: relative !important;
}

/* --- Text content area (top portion) --- */
.cycure-card-dark > .wp-block-heading,
.cycure-card-dark > .wp-block-list,
.cycure-card-dark > .wp-block-buttons,
.cycure-card-light > .wp-block-heading,
.cycure-card-light > .wp-block-list,
.cycure-card-light > .wp-block-buttons {
  position: relative;
  z-index: 2;
}

/* --- Card image container (bottom portion) --- */
.cycure-card-dark > .wp-block-image,
.cycure-card-light > .wp-block-image {
  margin-top: auto !important;
  width: 85% !important;
  max-width: 520px !important;
  flex-shrink: 0;
  z-index: 1;
}

.cycure-card-dark > .wp-block-image img,
.cycure-card-light > .wp-block-image img {
  border-radius: 12px 12px 0 0 !important;
  width: 100% !important;
  height: auto !important;
  display: block !important;
  object-fit: cover !important;
  box-shadow: 0 -4px 40px rgba(0, 0, 0, 0.15) !important;
  transition: transform 0.6s var(--ease-apple) !important;
}

.cycure-card-dark:hover > .wp-block-image img,
.cycure-card-light:hover > .wp-block-image img {
  transform: scale(1.02) !important;
}

/* --- Dark card --- */
.cycure-card-dark {
  background: var(--c-black) !important;
  color: var(--c-gray-100) !important;
}

.cycure-card-dark h2 {
  color: var(--c-gray-100) !important;
  font-size: clamp(1.8rem, 3.5vw, 2.8rem) !important;
  font-weight: 700 !important;
  letter-spacing: -0.03em !important;
  margin-bottom: 0.25rem !important;
  padding-top: clamp(2.5rem, 5vw, 3.5rem) !important;
}

.cycure-card-dark h3 {
  color: var(--c-gray-400) !important;
  font-size: clamp(1rem, 2vw, 1.25rem) !important;
  font-weight: 400 !important;
  margin-bottom: 1.5rem !important;
}

.cycure-card-dark ul {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 auto 1.5rem !important;
  width: fit-content !important;
  text-align: left !important;
}

.cycure-card-dark ul li {
  color: var(--c-gray-400) !important;
  font-size: 0.95rem !important;
  padding: 0.4rem 0 !important;
  position: relative;
  padding-left: 1.2rem !important;
}

.cycure-card-dark ul li::before {
  content: '' !important;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--c-accent) !important;
}

.cycure-card-dark .wp-block-buttons {
  margin-bottom: 2rem !important;
}

.cycure-card-dark .wp-block-button:not(.is-style-outline) .wp-block-button__link {
  background: var(--c-accent) !important;
  color: #fff !important;
}

.cycure-card-dark .is-style-outline .wp-block-button__link {
  color: #f5f5f7 !important;
  border-color: rgba(245, 245, 247, 0.3) !important;
  background: transparent !important;
}

.cycure-card-dark .is-style-outline .wp-block-button__link:hover {
  border-color: var(--c-accent) !important;
  color: var(--c-accent) !important;
}

/* --- Light card --- */
.cycure-card-light {
  background: var(--c-gray-100) !important;
  color: var(--c-black) !important;
}

.cycure-card-light h2 {
  color: var(--c-black) !important;
  font-size: clamp(1.8rem, 3.5vw, 2.8rem) !important;
  font-weight: 700 !important;
  letter-spacing: -0.03em !important;
  margin-bottom: 0.25rem !important;
  padding-top: clamp(2.5rem, 5vw, 3.5rem) !important;
}

.cycure-card-light h3 {
  color: var(--c-gray-500) !important;
  font-size: clamp(1rem, 2vw, 1.25rem) !important;
  font-weight: 400 !important;
  margin-bottom: 1.5rem !important;
}

.cycure-card-light ul {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 auto 1.5rem !important;
  width: fit-content !important;
  text-align: left !important;
}

.cycure-card-light ul li {
  color: var(--c-gray-500) !important;
  font-size: 0.95rem !important;
  padding: 0.4rem 0 !important;
  position: relative;
  padding-left: 1.2rem !important;
}

.cycure-card-light ul li::before {
  content: '' !important;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--c-accent) !important;
}

.cycure-card-light .wp-block-buttons {
  margin-bottom: 2rem !important;
}

.cycure-card-light .is-style-outline .wp-block-button__link {
  color: var(--c-black) !important;
  border-color: rgba(29, 29, 31, 0.25) !important;
  background: transparent !important;
}

.cycure-card-light .is-style-outline .wp-block-button__link:hover {
  border-color: var(--c-accent) !important;
  color: var(--c-accent) !important;
}

/* --- Card images inside cards stay flat --- */
.cycure-card-dark .wp-block-image img,
.cycure-card-light .wp-block-image img {
  border-radius: 12px 12px 0 0 !important;
}


/* ==========================================================================
   16. IMAGES
   ========================================================================== */

.wp-block-image img,
.entry-content img {
  border-radius: var(--radius-lg);
  transition: transform 0.5s var(--ease-apple);
}

.wp-block-image.is-style-rounded img {
  border-radius: 50%;
}

.wp-block-image.cycure-glow img {
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15);
}


/* ==========================================================================
   17. SEPARATOR / BLOCKQUOTE / LISTS
   ========================================================================== */

/* Separator */
.wp-block-separator {
  border: none !important;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--c-gray-200), transparent) !important;
  opacity: 0.6;
  margin: 4rem auto;
  max-width: 200px;
}

.wp-block-separator.is-style-wide {
  max-width: 100%;
}

/* Blockquote */
.wp-block-quote,
blockquote {
  border-left: 3px solid var(--c-accent);
  padding: 1.5rem 2rem;
  margin: 2.5rem 0;
  background: var(--c-gray-100);
  border-radius: 0 var(--radius-md) var(--radius-md) 0;
  font-style: normal;
}

.wp-block-quote p {
  font-size: 1.15rem;
  color: var(--c-gray-700);
  line-height: 1.6;
}

.wp-block-quote cite {
  font-size: 0.875rem;
  color: var(--c-gray-400);
  font-style: normal;
  font-weight: 500;
}

/* Lists */
.entry-content ul,
.entry-content ol {
  padding-left: 1.5rem;
  color: var(--c-gray-700);
}

.entry-content li {
  margin-bottom: 0.5rem;
  line-height: 1.6;
}

.entry-content ul li::marker {
  color: var(--c-accent);
}


/* ==========================================================================
   18. FORMS
   ========================================================================== */

input[type="text"],
input[type="email"],
input[type="url"],
input[type="tel"],
input[type="search"],
textarea,
select {
  font-family: var(--font-primary);
  font-size: 1rem;
  padding: 0.85rem 1.15rem;
  border: 1.5px solid var(--c-gray-200);
  border-radius: var(--radius-sm);
  background: var(--c-white);
  color: var(--c-black);
  width: 100%;
  transition: border-color 0.2s var(--ease-apple), box-shadow 0.2s var(--ease-apple);
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="tel"]:focus,
textarea:focus {
  outline: none;
  border-color: var(--c-accent);
  box-shadow: 0 0 0 3px rgba(0, 179, 65, 0.12);
}

textarea {
  min-height: 160px;
  resize: vertical;
}


/* ==========================================================================
   19. CTA SECTION
   ========================================================================== */

.cycure-cta-section {
  text-align: center;
  padding: var(--space-section) 0;
  margin-bottom: var(--space-section);
}

.cycure-cta-section h2 {
  font-size: clamp(2rem, 4vw, 3rem);
  margin-bottom: 1rem;
}

.cycure-cta-section p {
  font-size: 1.15rem;
  color: var(--c-gray-500);
  max-width: 580px;
  margin: 0 auto 2rem;
}


/* ==========================================================================
   20. STATS SECTION
   ========================================================================== */

.cycure-stats {
  display: flex;
  gap: 3rem;
  justify-content: center;
  flex-wrap: wrap;
  padding: 2rem 0;
}

.cycure-stat {
  text-align: center;
}

.cycure-stat-number {
  font-size: clamp(2.5rem, 5vw, 3.5rem);
  font-weight: 800;
  color: var(--c-accent);
  letter-spacing: -0.04em;
  line-height: 1;
  display: block;
}

.cycure-stat-label {
  font-size: 0.9375rem;
  color: var(--c-gray-500);
  margin-top: 0.5rem;
}


/* ==========================================================================
   21. PAGE HEADER & PAGE CTA
   ========================================================================== */

.cycure-page-header {
  max-width: 100% !important;
  padding: var(--space-section) var(--space-inline) var(--space-section-sm) !important;
  text-align: center;
}

.cycure-page-header h1 {
  font-size: clamp(2.5rem, 6vw, 4rem) !important;
  font-weight: 700 !important;
  letter-spacing: -0.04em !important;
  margin-bottom: 0.5rem !important;
}

.cycure-page-header p {
  font-size: clamp(1rem, 2vw, 1.2rem) !important;
  color: var(--c-gray-500) !important;
  max-width: 680px;
  margin: 0 auto !important;
}

.cycure-page-cta {
  text-align: center;
  padding: var(--space-section-sm) var(--space-inline) !important;
  max-width: 680px !important;
  margin: var(--space-block) auto !important;
}

.cycure-page-cta h2 {
  margin-bottom: 0.75rem;
}

.cycure-page-cta p {
  color: var(--c-gray-500);
  max-width: 520px;
  margin: 0 auto 2rem;
}


/* ==========================================================================
   22. FOOTER — Unified (3-Column Nav + Copyright)
   ========================================================================== */

/* Container — no extra margin; last section’s own padding provides the gap */
.cycure-footer {
  background: var(--footer-bg);
  border-top: 1px solid var(--footer-border);
  margin-top: 0;
  padding: 0;
}

.cycure-footer-inner {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 24px;
}

/* 4-Column grid */
.cycure-footer-columns {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 48px;
  padding: 56px 0 48px;
}

/* Column headings */
.cycure-footer-col h4 {
  font-family: var(--font-display);
  font-size: 12px;
  font-weight: 600;
  color: var(--c-black);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin: 0 0 20px;
}

/* Column lists */
.cycure-footer-col ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.cycure-footer-col ul li {
  margin: 0 0 10px;
}

.cycure-footer-col ul li:last-child {
  margin-bottom: 0;
}

/* Column links */
.cycure-footer-col ul li a,
.cycure-footer-col p a {
  font-size: 13px;
  color: var(--c-gray-500);
  text-decoration: none;
  transition: color 0.2s ease;
}

.cycure-footer-col ul li a:hover,
.cycure-footer-col p a:hover {
  color: var(--c-black);
  text-decoration: none;
}

/* Column paragraphs (address, contact) */
.cycure-footer-col p {
  font-size: 13px;
  color: var(--c-gray-500);
  line-height: 1.7;
  margin: 0 0 10px;
}

.cycure-footer-col p:last-child {
  margin-bottom: 0;
}

/* Copyright bar */
.cycure-footer-copyright {
  border-top: 1px solid var(--footer-copyright-border);
  padding: 24px 0;
  text-align: center;
}

.cycure-footer-copyright p {
  font-size: 12px;
  color: var(--c-gray-400);
  margin: 0;
  letter-spacing: 0.01em;
}


/* ==========================================================================
   23. SCROLL ANIMATIONS
   ========================================================================== */

/* Fade in (from bottom) */
.cycure-fade-in {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.7s var(--ease-apple), transform 0.7s var(--ease-apple);
}

.cycure-fade-in.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Stagger children */
.cycure-fade-in:nth-child(2) { transition-delay: 0.12s; }
.cycure-fade-in:nth-child(3) { transition-delay: 0.24s; }
.cycure-fade-in:nth-child(4) { transition-delay: 0.36s; }

/* Slide from left */
.cycure-slide-left {
  opacity: 0;
  transform: translateX(-40px);
  transition: opacity 0.7s var(--ease-apple), transform 0.7s var(--ease-apple);
}

.cycure-slide-left.is-visible {
  opacity: 1;
  transform: translateX(0);
}

/* Slide from right */
.cycure-slide-right {
  opacity: 0;
  transform: translateX(40px);
  transition: opacity 0.7s var(--ease-apple), transform 0.7s var(--ease-apple);
}

.cycure-slide-right.is-visible {
  opacity: 1;
  transform: translateX(0);
}

/* Scale in */
.cycure-scale-in {
  opacity: 0;
  transform: scale(0.92);
  transition: opacity 0.6s var(--ease-apple), transform 0.6s var(--ease-apple);
}

.cycure-scale-in.is-visible {
  opacity: 1;
  transform: scale(1);
}


/* ==========================================================================
   24. SCROLLBAR (minimal, transparent track)
   ========================================================================== */

html,
body {
  scrollbar-color: rgba(110, 110, 115, 0.55) transparent;
}

::-webkit-scrollbar {
  width: 8px;
  background: transparent;
}

::-webkit-scrollbar-track {
  background: transparent;
}

::-webkit-scrollbar-thumb {
  background: rgba(110, 110, 115, 0.55);
  border-radius: 8px;
  border: 2px solid transparent;
  background-clip: padding-box;
}

::-webkit-scrollbar-thumb:hover {
  background: rgba(110, 110, 115, 0.75);
}


/* ==========================================================================
   25. SELECTION
   ========================================================================== */

::selection {
  background: rgba(0, 179, 65, 0.15);
  color: var(--c-black);
}


/* ==========================================================================
   26. UTILITIES
   ========================================================================== */

.text-center { text-align: center; }
.text-left   { text-align: left; }
.text-accent { color: var(--c-accent); }
.text-muted  { color: var(--c-gray-500); }
.text-small  { font-size: 0.875rem; }
.text-white  { color: var(--c-white) !important; }

.bg-white { background: var(--c-white); }
.bg-alt   { background: var(--c-gray-100); }
.bg-dark  { background: var(--c-black); color: var(--c-white); }

.rounded { border-radius: var(--radius-lg); }
.shadow  { box-shadow: var(--shadow-md); }

.mt-0  { margin-top: 0; }
.mb-0  { margin-bottom: 0; }
.pt-lg { padding-top: var(--space-section); }
.pb-lg { padding-bottom: var(--space-section); }

/* Apple-style frosted glass card — intended for use on dark-section or image backgrounds.
   Text inside must use light colours (var(--c-white) or rgba(255,255,255,0.9)) for
   sufficient contrast. */
.cycure-glass-card {
  background: rgba(255, 255, 255, 0.10);
  -webkit-backdrop-filter: saturate(180%) blur(20px);
  backdrop-filter: saturate(180%) blur(20px);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: var(--radius-xl);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
  color: var(--c-white);
}

/* Skip-to-content accessibility link */
.skip-to-content {
  position: absolute;
  top: -100%;
  left: 1rem;
  z-index: 100000;
  background: var(--c-black);
  color: var(--c-white);
  padding: 0.75rem 1.5rem;
  border-radius: var(--radius-sm);
  font-size: 0.9rem;
  font-weight: 600;
  text-decoration: none;
  transition: top 0.2s var(--ease-apple);
}

.skip-to-content:focus {
  top: calc(var(--header-height) + 8px);
  outline: 3px solid var(--c-accent);
}


/* ==========================================================================
   27. RESPONSIVE — Tablet (max-width: 1024px)
   ========================================================================== */

@media (max-width: 1024px) {
  /* Apple pattern: 48px header for touch devices (44px desktop only) */
  :root {
    --header-height: 48px;
  }

  body {
    font-size: 16px;
  }

  .wp-block-column {
    padding: 1.75rem 1.5rem;
  }

  #masthead .site-header-row-container-inner > .site-container {
    max-width: 100% !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  /* Hide desktop header on tablet — mobile header with burger takes over */
  #masthead #main-header,
  #masthead #main-header.site-header-wrap {
    display: none !important;
  }

  /* Ensure mobile header displays on tablet */
  #masthead #mobile-header,
  #masthead #mobile-header.site-mobile-header-wrap {
    display: block !important;
    height: var(--header-height) !important;
    min-height: var(--header-height) !important;
    max-height: var(--header-height) !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }

  /* Mobile header wrappers: 44px, flex center */
  #masthead #mobile-header .site-header-inner-wrap,
  #masthead #mobile-header .site-header-upper-wrap,
  #masthead #mobile-header .site-header-upper-inner-wrap,
  #masthead #mobile-header .site-main-header-wrap,
  #masthead #mobile-header .site-header-row-container-inner,
  #masthead #mobile-header .site-main-header-inner-wrap {
    display: flex !important;
    align-items: center !important;
    height: var(--header-height) !important;
    min-height: 0 !important;
    max-height: none !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  /* Mobile header row: logo left, burger right */
  #masthead #mobile-header .site-header-row.site-header-row-has-sides,
  #masthead #mobile-header .site-main-header-inner-wrap.site-header-row {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    width: 100% !important;
    height: var(--header-height) !important;
    padding: 0 24px !important;
    gap: 0 !important;
  }

  /* Site-container full width */
  #masthead #mobile-header .site-header-row-container-inner > .site-container {
    display: flex !important;
    align-items: center !important;
    max-width: 100% !important;
    height: var(--header-height) !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* Logo left */
  #masthead #mobile-header .site-header-main-section-left.site-header-section {
    display: flex !important;
    align-items: center !important;
    flex: 0 0 auto !important;
    justify-content: flex-start !important;
    height: var(--header-height) !important;
  }

  /* Burger / toggle right */
  #masthead #mobile-header .site-header-main-section-right.site-header-section {
    display: flex !important;
    align-items: center !important;
    flex: 0 0 auto !important;
    justify-content: flex-end !important;
    margin-left: auto !important;
    height: var(--header-height) !important;
  }

  /* Branding + toggle vertically centered */
  #masthead #mobile-header .site-branding,
  #masthead #mobile-header .site-header-item,
  #masthead #mobile-header .mobile-toggle-open-container {
    display: flex !important;
    align-items: center !important;
    height: var(--header-height) !important;
  }

  /* Override Kadence responsive-visibility: force logo visible on tablet */
  #masthead #mobile-header .site-title.vs-md-false,
  #masthead #mobile-header .site-branding.vs-md-false,
  #masthead #mobile-header .mobile-site-branding .site-title,
  #masthead #mobile-header .site-title-wrap {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
}


/* ==========================================================================
   28. RESPONSIVE — Mobile (max-width: 768px)
   ========================================================================== */

@media (max-width: 768px) {
  body {
    font-size: 15px;
  }

  h1,
  .entry-content h1 {
    font-size: 2.25rem !important;
  }

  h2,
  .entry-content h2 {
    font-size: 1.6rem;
  }

  .wp-block-columns {
    gap: 1rem;
  }

  .wp-block-column {
    padding: 1.5rem 1.25rem;
  }

  .wp-block-column h3 {
    font-size: 1.1rem !important;
  }

  .wp-block-cover {
    min-height: 60vh !important;
  }

  .is-front-page .entry-content > .wp-block-cover:first-child {
    min-height: calc(100vh + var(--header-height)) !important;
    margin-top: calc(var(--header-height) * -1) !important;
  }

  .cycure-dark-section,
  .cycure-light-section {
    padding: var(--space-section-sm) 0 !important;
  }

  .admin-bar .site-header,
  .admin-bar #masthead {
    top: 46px !important;
  }

  /* Desktop header + mobile header visibility handled in 1024px breakpoint above */
  /* Mobile header layout rules also in 1024px breakpoint — shared by tablet + mobile */

  /* Hero buttons: full-width */
  .is-front-page .wp-block-cover .wp-block-button__link {
    min-width: 0;
    width: 100%;
  }

  .is-front-page .wp-block-cover .wp-block-buttons {
    width: 100%;
  }

  /* Hero text */
  .cycure-hero h1 {
    font-size: clamp(1.75rem, 6vw, 2.5rem) !important;
    letter-spacing: -0.02em !important;
  }

  .cycure-hero p {
    font-size: clamp(0.95rem, 3vw, 1.1rem) !important;
  }

  /* Service grid: single column */
  .cycure-service-grid {
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }

  .entry-content > .cycure-service-grid {
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .cycure-card-dark,
  .cycure-card-light {
    min-height: 480px !important;
  }

  /* Footer: 2x2 grid on tablet */
  .cycure-footer-columns {
    grid-template-columns: 1fr 1fr;
    gap: 36px 40px;
  }
}


/* ==========================================================================
   29. RESPONSIVE — Small Mobile (max-width: 480px)
   ========================================================================== */

@media (max-width: 480px) {
  .wp-block-button__link,
  .kb-button,
  a.button {
    width: 100%;
    justify-content: center;
    padding: 1rem 1.5rem;
  }

  /* Footer: single column on small mobile */
  .cycure-footer-columns {
    grid-template-columns: 1fr;
    gap: 32px;
    padding: 40px 0 32px;
  }
}


/* ==========================================================================
   30. PRINT
   ========================================================================== */

@media print {
  .site-header,
  .site-footer {
    display: none;
  }

  body {
    font-size: 12pt;
    color: #000;
    background: #fff;
    padding-top: 0;
  }

  .cycure-dark-section {
    background: #f5f5f5 !important;
    color: #000 !important;
  }
}

/* ==========================================================================
   31. BLOG ARCHIVE — Standardized card layout
   ========================================================================== */

/* --- Grid container --- */
#archive-container.grid-cols {
  gap: 2rem;
}

/* --- Grid item (li): stretch to fill grid cell --- */
#archive-container.grid-cols > .entry-list-item {
  display: flex;
}

/* --- Article card: fill li, stack vertically --- */
article.entry.loop-entry {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  background: var(--c-white);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-card);
  border: 1px solid rgba(0, 0, 0, 0.03);
  transition: box-shadow 0.4s var(--ease-apple), transform 0.4s var(--ease-apple);
}

article.entry.loop-entry:hover {
  box-shadow: var(--shadow-card-hover);
  transform: translateY(-4px);
}

/* --- Thumbnail: fixed aspect ratio, no shrink --- */
article.entry.loop-entry > .post-thumbnail {
  flex-shrink: 0;
  display: block;
  overflow: hidden;
  aspect-ratio: 16 / 9;
}

article.entry.loop-entry > .post-thumbnail img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 0;
  transition: transform 0.5s var(--ease-apple);
}

article.entry.loop-entry:hover > .post-thumbnail img {
  transform: scale(1.03);
}

/* --- Content wrap: padding + flex column --- */
article.entry.loop-entry > .entry-content-wrap {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  padding: 1.5rem 1.75rem 1.75rem !important;
}

/* --- Header: FIXED HEIGHT so category/title/meta always align --- */
article.entry.loop-entry .entry-header {
  flex-shrink: 0;
  /* Reserve space: category(~22px) + title(3 lines ~4.4em) + meta(~22px) + gaps */
  min-height: 10.5rem;
  display: flex;
  flex-direction: column;
  margin-bottom: 0.75rem;
}

/* Category label — always reserve 1.4rem height even when absent */
article.entry.loop-entry .entry-taxonomies {
  flex-shrink: 0;
  min-height: 1.4rem;
  margin-bottom: 0.4rem;
  display: flex;
  align-items: flex-end;
}

article.entry.loop-entry .entry-taxonomies .category-links a {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--c-accent);
  text-decoration: none;
}

/* When no taxonomy div exists, add matching space via header pseudo-element */
article.entry.loop-entry .entry-header > .entry-title:first-child {
  margin-top: calc(1.4rem + 0.4rem); /* = taxonomy height + gap */
}

/* Title: clamped to exactly 3 lines */
article.entry.loop-entry .entry-title {
  font-size: clamp(1.1rem, 1.8vw, 1.3rem) !important;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -0.02em;
  margin-bottom: 0.5rem;
  flex-shrink: 0;
  /* Fixed 3-line box */
  height: calc(1.3em * 3);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

article.entry.loop-entry .entry-title a {
  color: var(--c-black);
  text-decoration: none;
}

article.entry.loop-entry .entry-title a:hover {
  color: var(--c-accent);
}

/* Author / Date meta: sits at bottom of header */
article.entry.loop-entry .entry-meta {
  font-size: 0.8rem;
  color: var(--c-gray-400);
  margin-top: auto; /* push to bottom of header */
  flex-shrink: 0;
}

article.entry.loop-entry .entry-meta a {
  color: var(--c-gray-400);
  text-decoration: none;
}

article.entry.loop-entry .entry-meta .meta-label {
  margin-right: 0.2em;
}

/* --- Excerpt: FIXED HEIGHT (4 lines), no grow --- */
article.entry.loop-entry .entry-summary {
  flex-shrink: 0;
  /* Exactly 4 lines: font-size 0.9375rem × line-height 1.6 × 4 lines */
  height: calc(0.9375rem * 1.6 * 4);
  overflow: hidden;
  margin-bottom: 1.25rem;
}

article.entry.loop-entry .entry-summary p {
  font-size: 0.9375rem;
  line-height: 1.6;
  color: var(--c-gray-500);
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* --- Footer / Read More: pinned to bottom --- */
article.entry.loop-entry .entry-footer {
  margin-top: auto;
  border-top: 1px solid rgba(0, 0, 0, 0.05);
  padding-top: 1rem;
}

article.entry.loop-entry .entry-actions .more-link-wrap {
  margin: 0;
}

article.entry.loop-entry .post-more-link {
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--c-black);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  transition: color 0.2s var(--ease-apple), gap 0.2s var(--ease-apple);
}

article.entry.loop-entry .post-more-link:hover {
  color: var(--c-accent);
  gap: 0.5rem;
}

article.entry.loop-entry .post-more-link .kadence-svg-iconset {
  font-size: 0.75em;
}

/* --- Mobile adjustments --- */
@media (max-width: 768px) {
  article.entry.loop-entry > .entry-content-wrap {
    padding: 1.25rem 1.25rem 1.5rem;
  }

  article.entry.loop-entry .entry-header {
    min-height: 9.5rem;
  }

  article.entry.loop-entry .entry-title {
    font-size: 1.05rem !important;
  }

  article.entry.loop-entry .entry-summary {
    height: calc(0.9375rem * 1.6 * 3);
  }

  article.entry.loop-entry .entry-summary p {
    -webkit-line-clamp: 3;
  }
}


/* ==========================================================================
   32. LATEST POSTS — Front Page Section
   ========================================================================== */

.cycure-latest-posts {
  padding: var(--space-section) 0;
  background: var(--c-gray-100);
}

.cycure-latest-posts-inner {
  max-width: var(--max-width-content, 1200px);
  margin: 0 auto;
  padding: 0 var(--space-inline);
}

.cycure-latest-posts .cycure-section-heading {
  margin-bottom: 3rem;
}

/* --- 3-column grid --- */
.cycure-latest-posts-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}

/* --- Card --- */
.cycure-latest-post-card {
  display: flex;
  flex-direction: column;
  background: var(--c-white);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-card);
  border: 1px solid rgba(0, 0, 0, 0.03);
  transition: box-shadow 0.4s var(--ease-apple), transform 0.4s var(--ease-apple);
}

.cycure-latest-post-card:hover {
  box-shadow: var(--shadow-card-hover);
  transform: translateY(-4px);
}

/* --- Thumbnail --- */
.cycure-latest-post-thumb {
  display: block;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  flex-shrink: 0;
}

.cycure-latest-post-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s var(--ease-apple);
}

.cycure-latest-post-card:hover .cycure-latest-post-thumb img {
  transform: scale(1.03);
}

.cycure-latest-post-thumb--empty {
  background: linear-gradient(135deg, var(--c-gradient-start), var(--c-gradient-end));
}

.cycure-latest-post-thumb-placeholder {
  display: block;
  width: 100%;
  height: 100%;
}

/* --- Content --- */
.cycure-latest-post-content {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  padding: 1.5rem 1.75rem 1.75rem;
}

.cycure-latest-post-category {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--c-accent);
  margin-bottom: 0.5rem;
  display: inline-block;
}

.cycure-latest-post-title {
  font-size: clamp(1.1rem, 1.8vw, 1.3rem) !important;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -0.02em;
  margin: 0 0 0.5rem;
  /* Clamp to 3 lines */
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  height: calc(1.3em * 3);
}

.cycure-latest-post-title a {
  color: var(--c-black);
  text-decoration: none;
  transition: color 0.2s var(--ease-apple);
}

.cycure-latest-post-title a:hover {
  color: var(--c-accent);
}

.cycure-latest-post-date {
  font-size: 0.8rem;
  color: var(--c-gray-400);
  margin-bottom: 0.75rem;
  display: block;
}

.cycure-latest-post-excerpt {
  font-size: 0.9375rem;
  line-height: 1.6;
  color: var(--c-gray-500);
  margin: 0 0 1.25rem;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.cycure-latest-post-link {
  margin-top: auto;
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--c-black);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  transition: color 0.2s var(--ease-apple), gap 0.2s var(--ease-apple);
}

.cycure-latest-post-link:hover {
  color: var(--c-accent);
  gap: 0.5rem;
}

/* --- CTA button --- */
.cycure-latest-posts-cta {
  text-align: center;
  margin-top: 2.5rem;
}

.cycure-btn--outline {
  display: inline-block;
  padding: 0.75rem 2rem;
  font-size: 0.9375rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--c-black);
  border: 2px solid var(--c-gray-200);
  border-radius: var(--radius-full, 100px);
  text-decoration: none;
  transition: all 0.3s var(--ease-apple);
}

.cycure-btn--outline:hover {
  color: var(--c-accent);
  border-color: var(--c-accent);
  background: var(--c-accent-light);
}

/* --- Responsive: tablet → 2 columns, hide 3rd card --- */
@media (max-width: 1024px) {
  .cycure-latest-posts-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .cycure-latest-post-card:nth-child(3) {
    display: none;
  }
}

/* --- Responsive: mobile → 1 column, show all visible cards --- */
@media (max-width: 768px) {
  .cycure-latest-posts-grid {
    grid-template-columns: 1fr;
  }

  .cycure-latest-post-card:nth-child(3) {
    display: flex;
  }

  .cycure-latest-post-content {
    padding: 1.25rem 1.25rem 1.5rem;
  }
}


/* ==========================================================================
   33. DARK MODE — Toggle + System Preference
   ==========================================================================
   Strategy:
   • JS sets data-theme="dark|light" on <html> (localStorage → system pref fallback)
   • All dark overrides use [data-theme="dark"] prefix
   • --c-white is NOT flipped — used as text on dark sections/cover blocks
   • Toggle button injected by functions.php into header
   ========================================================================== */

/* --- Design token overrides --- */
html[data-theme="dark"] {
  color-scheme: dark;
  --c-black:          #f5f5f7;
  --c-gray-700:       #a1a1a6;
  --c-gray-500:       #8e8e93;
  --c-gray-400:       #98989d;
  --c-gray-200:       #38383a;
  --c-gray-100:       #1c1c1e;
  --c-warm-bg:        #000000;
  --c-accent-light:   rgba(0, 138, 48, 0.15);
  --shadow-card:       0 2px 16px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(255, 255, 255, 0.06);
  --shadow-card-hover: 0 12px 40px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(255, 255, 255, 0.1);
  --shadow-glow:       0 0 40px rgba(0, 138, 48, 0.25);

  /* Navigation & dropdown token overrides */
  --nav-link-color:         rgba(255, 255, 255, 0.8);
  --nav-link-color-hover:   rgba(255, 255, 255, 0.56);
  --nav-link-color-current: rgba(255, 255, 255, 1.0);
  --dropdown-bg:            rgba(44, 44, 46, 0.98);
  --dropdown-border:        rgba(255, 255, 255, 0.1);
  --dropdown-link:          rgba(255, 255, 255, 0.8);
  --dropdown-link-hover-bg: rgba(255, 255, 255, 0.08);

  /* Footer token overrides */
  --footer-bg:               #0c0c0c;
  --footer-border:           rgba(255, 255, 255, 0.06);
  --footer-copyright-border: rgba(255, 255, 255, 0.08);

  /* Kadence global palette overrides */
  --global-palette3:  #f5f5f7;
  --global-palette4:  #a1a1a6;
  --global-palette5:  #8e8e93;
  --global-palette6:  #636366;
  --global-palette7:  #2c2c2e;
  --global-palette8:  #000000;
  --global-palette9:  #1c1c1e;
}

html[data-theme="light"] {
  color-scheme: light;
}


/* --- Body & wrappers --- */
[data-theme="dark"] body,
[data-theme="dark"] body.content-style-unboxed .site,
[data-theme="dark"] .content-bg {
  background: #000000 !important;
  color: #f5f5f7 !important;
}


/* --- Header: dark frosted glass --- */
[data-theme="dark"] .site-header,
[data-theme="dark"] #masthead {
  background: rgba(28, 28, 30, 0.82) !important;
  border-bottom-color: rgba(255, 255, 255, 0.08) !important;
}

[data-theme="dark"] .is-front-page .site-header,
[data-theme="dark"] .is-front-page .site-header:not(.scrolled),
[data-theme="dark"] .is-front-page #masthead,
[data-theme="dark"] .is-front-page #masthead:not(.scrolled) {
  background: rgba(28, 28, 30, 0.82) !important;
}

[data-theme="dark"] .site-header.scrolled,
[data-theme="dark"] #masthead.scrolled,
[data-theme="dark"] .is-front-page .site-header.scrolled,
[data-theme="dark"] .is-front-page #masthead.scrolled {
  background: rgba(28, 28, 30, 0.94) !important;
  border-bottom-color: rgba(255, 255, 255, 0.1) !important;
}

/* Kadence sticky header override */
[data-theme="dark"] #masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) > .site-header-row-container-inner {
  background: transparent !important;
}


/* --- Logo / Branding --- */
[data-theme="dark"] #masthead .site-branding a,
[data-theme="dark"] #masthead .site-branding .site-title,
[data-theme="dark"] #masthead .site-branding .site-title a,
[data-theme="dark"] .site-branding .site-title,
[data-theme="dark"] .site-branding .site-title a,
[data-theme="dark"] .is-front-page .site-branding .site-title,
[data-theme="dark"] .is-front-page .site-branding .site-title a {
  color: rgba(255, 255, 255, 0.9) !important;
}


/* --- Navigation links & Dropdown / Sub-menus ---
   Colors handled by CSS custom properties in [data-theme="dark"] token block above.
   Only non-token overrides remain here. */

/* Dropdown: dark box-shadow (not covered by token) */
[data-theme="dark"] .header-navigation .sub-menu,
[data-theme="dark"] .primary-navigation .sub-menu,
[data-theme="dark"] #masthead .navigation .sub-menu {
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4) !important;
}


/* --- Cards / Columns --- */
[data-theme="dark"] .wp-block-column {
  background: #1c1c1e;
  border-color: rgba(255, 255, 255, 0.06) !important;
}

[data-theme="dark"] .wp-block-column:hover {
  border-color: rgba(255, 255, 255, 0.1) !important;
}


/* --- Hero: dark overlay --- */
[data-theme="dark"] .cycure-hero.wp-block-cover .wp-block-cover__background,
[data-theme="dark"] .wp-block-cover.cycure-hero .wp-block-cover__background {
  background: linear-gradient(
    180deg,
    rgba(0, 0, 0, 0.52) 0%,
    rgba(0, 0, 0, 0.38) 45%,
    rgba(0, 0, 0, 0.30) 75%,
    rgba(0, 0, 0, 0.48) 100%
  ) !important;
}

/* Hero outline button: frosted dark */
[data-theme="dark"] .cycure-hero .is-style-outline .wp-block-button__link,
[data-theme="dark"] .is-front-page .wp-block-cover .wp-block-button.is-style-outline .wp-block-button__link {
  background: rgba(44, 44, 46, 0.7) !important;
  color: #f5f5f7 !important;
  border-color: rgba(255, 255, 255, 0.18) !important;
}

[data-theme="dark"] .cycure-hero .is-style-outline .wp-block-button__link:hover,
[data-theme="dark"] .is-front-page .wp-block-cover .wp-block-button.is-style-outline .wp-block-button__link:hover {
  background: rgba(44, 44, 46, 0.9) !important;
  color: #f5f5f7 !important;
  border-color: rgba(255, 255, 255, 0.3) !important;
}


/* --- Light section → dark surface --- */
[data-theme="dark"] .cycure-light-section {
  background: #1c1c1e !important;
}


/* --- Dark section: button text fix --- */
[data-theme="dark"] .cycure-dark-section .wp-block-button:not(.is-style-outline) .wp-block-button__link {
  color: #1d1d1f !important;
}


/* --- Service grid: light card → dark --- */
[data-theme="dark"] .cycure-card-light {
  background: #2c2c2e !important;
  color: #f5f5f7 !important;
}

[data-theme="dark"] .cycure-card-light h2 { color: #f5f5f7 !important; }
[data-theme="dark"] .cycure-card-light h3 { color: #a1a1a6 !important; }
[data-theme="dark"] .cycure-card-light ul li { color: #a1a1a6 !important; }

[data-theme="dark"] .cycure-card-light .is-style-outline .wp-block-button__link {
  color: #f5f5f7 !important;
  border-color: rgba(245, 245, 247, 0.3) !important;
}

[data-theme="dark"] .cycure-card-light .is-style-outline .wp-block-button__link:hover {
  border-color: var(--c-accent) !important;
  color: var(--c-accent) !important;
}


/* --- Separator --- */
[data-theme="dark"] .wp-block-separator {
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.15), transparent) !important;
}


/* --- Blockquote --- */
[data-theme="dark"] .wp-block-quote,
[data-theme="dark"] blockquote {
  background: #1c1c1e;
}


/* --- Forms --- */
[data-theme="dark"] input[type="text"],
[data-theme="dark"] input[type="email"],
[data-theme="dark"] input[type="url"],
[data-theme="dark"] input[type="tel"],
[data-theme="dark"] input[type="search"],
[data-theme="dark"] textarea,
[data-theme="dark"] select {
  background: #1c1c1e;
  color: #f5f5f7;
  border-color: #38383a;
}


/* --- Footer --- Handled by --footer-bg / --footer-border / --footer-copyright-border tokens above */


/* --- Blog archive cards --- */
[data-theme="dark"] article.entry.loop-entry {
  background: #1c1c1e;
  border-color: rgba(255, 255, 255, 0.06);
}

[data-theme="dark"] article.entry.loop-entry .entry-footer {
  border-top-color: rgba(255, 255, 255, 0.06);
}


/* --- Latest posts section (front page) --- */
[data-theme="dark"] .cycure-latest-posts {
  background: #0c0c0c;
}

[data-theme="dark"] .cycure-latest-post-card {
  background: #1c1c1e;
  border-color: rgba(255, 255, 255, 0.06);
}


/* --- Mobile header: icons/burger --- */
[data-theme="dark"] #masthead .kadence-svg-iconset {
  color: rgba(255, 255, 255, 0.85) !important;
}


/* --- Kadence mobile navigation drawer --- */
[data-theme="dark"] .popup-drawer,
[data-theme="dark"] .popup-drawer .drawer-inner,
[data-theme="dark"] .popup-drawer .drawer-content,
[data-theme="dark"] .mobile-navigation-container {
  background: #1c1c1e !important;
}

[data-theme="dark"] .popup-drawer a,
[data-theme="dark"] .mobile-navigation-container a {
  color: rgba(255, 255, 255, 0.8) !important;
}

[data-theme="dark"] .popup-drawer a:hover,
[data-theme="dark"] .mobile-navigation-container a:hover {
  color: var(--c-accent) !important;
}

[data-theme="dark"] .popup-drawer .drawer-header .drawer-toggle,
[data-theme="dark"] .popup-drawer .close-toggle {
  color: rgba(255, 255, 255, 0.8) !important;
}

/* Dropdown expand/collapse arrow in mobile drawer */
[data-theme="dark"] .popup-drawer .dropdown-nav-toggle,
[data-theme="dark"] .mobile-navigation-container .dropdown-nav-toggle,
[data-theme="dark"] .popup-drawer button.dropdown-nav-toggle,
[data-theme="dark"] .popup-drawer span.dropdown-nav-toggle,
[data-theme="dark"] .popup-drawer .nav-drop-title-wrap .dropdown-nav-toggle,
[data-theme="dark"] .popup-drawer .menu-item .dropdown-nav-toggle {
  color: rgba(255, 255, 255, 0.8) !important;
  fill: rgba(255, 255, 255, 0.8) !important;
}

[data-theme="dark"] .popup-drawer .dropdown-nav-toggle svg,
[data-theme="dark"] .mobile-navigation-container .dropdown-nav-toggle svg,
[data-theme="dark"] .popup-drawer .nav-drop-title-wrap .dropdown-nav-toggle svg,
[data-theme="dark"] .popup-drawer .menu-item .dropdown-nav-toggle svg,
[data-theme="dark"] .popup-drawer .kadence-svg-icon,
[data-theme="dark"] .popup-drawer .kadence-svg-iconset svg {
  fill: rgba(255, 255, 255, 0.8) !important;
  stroke: rgba(255, 255, 255, 0.8) !important;
  color: rgba(255, 255, 255, 0.8) !important;
}


/* --- Scrollbar --- */
html[data-theme="dark"],
[data-theme="dark"] body {
  scrollbar-color: rgba(255, 255, 255, 0.3) transparent;
}

html[data-theme="dark"] ::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.3);
}

html[data-theme="dark"] ::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.45);
}


/* --- Selection --- */
[data-theme="dark"] ::selection {
  background: rgba(0, 179, 65, 0.25);
  color: #f5f5f7;
}


/* --- Utility overrides --- */
[data-theme="dark"] .bg-white { background: #1c1c1e; }
[data-theme="dark"] .bg-alt   { background: #1c1c1e; }
[data-theme="dark"] .bg-dark  { background: #1d1d1f; color: var(--c-white); }

/* Glass card: brighter tint on dark backgrounds */
[data-theme="dark"] .cycure-glass-card {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.15);
}


/* ==========================================================================
   33. THEME TOGGLE BUTTON — Fixed Bottom-Right
   ========================================================================== */

.cycure-theme-toggle {
  position: fixed;
  bottom: 1.5rem;
  right: 1.5rem;
  z-index: 9999;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid rgba(0, 0, 0, 0.12);
  background: rgba(255, 255, 255, 0.7);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s var(--ease-apple);
  padding: 0;
  color: rgba(0, 0, 0, 0.8);
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
  -webkit-tap-highlight-color: transparent;
}

.cycure-theme-toggle:hover {
  border-color: var(--cycure-green, #16a34a);
  transform: scale(1.08);
  box-shadow: 0 4px 20px rgba(22, 163, 74, 0.15);
}

.cycure-theme-toggle svg {
  width: 18px;
  height: 18px;
  overflow: visible;
  transition: transform 0.4s var(--ease-apple);
}

.cycure-theme-toggle:hover svg {
  transform: rotate(15deg);
}

/* Icon states — moon visible in light, sun in dark */
.cycure-theme-toggle .toggle-moon {
  opacity: 1;
  transform: rotate(0deg);
  transform-origin: center;
  transition: opacity 0.35s var(--ease-apple), transform 0.35s var(--ease-apple);
}

.cycure-theme-toggle .toggle-sun,
.cycure-theme-toggle .toggle-rays {
  opacity: 0;
  transform: rotate(-45deg) scale(0.7);
  transform-origin: center;
  transition: opacity 0.35s var(--ease-apple), transform 0.35s var(--ease-apple);
}

[data-theme="dark"] .cycure-theme-toggle {
  color: rgba(255, 255, 255, 0.85);
  background: rgba(30, 30, 30, 0.7);
  border-color: rgba(255, 255, 255, 0.12);
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.25);
}

[data-theme="dark"] .cycure-theme-toggle:hover {
  border-color: var(--cycure-green, #16a34a);
  box-shadow: 0 4px 20px rgba(22, 163, 74, 0.25);
}

[data-theme="dark"] .cycure-theme-toggle .toggle-moon {
  opacity: 0;
  transform: rotate(45deg) scale(0.7);
}

[data-theme="dark"] .cycure-theme-toggle .toggle-sun,
[data-theme="dark"] .cycure-theme-toggle .toggle-rays {
  opacity: 1;
  transform: rotate(0deg) scale(1);
}
