

/* Navigation polish */
.wp-block-navigation .wp-block-navigation-item__content {
  border-radius: 999px;
  padding: .55rem .8rem;
  text-decoration: none;
  transition: transform .16s ease, background-color .16s ease, box-shadow .16s ease, color .16s ease;
}
.wp-block-navigation .wp-block-navigation-item__content:hover {
  transform: translateY(-1px);
  background: rgba(255,255,255,.06);
  box-shadow: 0 10px 24px rgba(0,0,0,.12);
}
.wp-block-navigation .wp-block-navigation__submenu-container {
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(12,16,28,.92);
  box-shadow: 0 20px 55px rgba(0,0,0,.30);
  padding: 12px;
  min-width: 260px;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
  border-radius: 12px;
  padding: .55rem .7rem;
  width: 100%;
  display: block;
}

/* Mega menu optional pattern */
.idp-mega {
  padding: 10px 4px 4px 4px;
}
.idp-mega .wp-block-columns {
  gap: 18px;
  margin: 0;
}
.idp-mega h4 {
  margin: 6px 0 10px 0;
  font-size: .95rem;
  opacity: .85;
}
.idp-mega .wp-block-navigation-item__content {
  border-radius: 12px;
  padding: .55rem .7rem;
}
.idp-mega-card {
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.06);
  padding: 14px;
}
.idp-mega-card p { opacity: .85; }

@media (min-width: 783px){
  /* Core Navigation mega parent: center a wider panel */
  .wp-block-navigation.idp-nav--mega .idp-mega-parent > .wp-block-navigation__submenu-container{
    width: min(980px, 92vw);
    left: 50%;
    transform: translateX(-50%);
    padding: 16px;
  }
}


/* IDP Deluxe polish */
:root {
  --idp-radius-lg: 18px;
  --idp-shadow-soft: 0 10px 28px rgba(0,0,0,.08);
  --idp-shadow: 0 18px 55px rgba(0,0,0,.18);
  --idp-border: rgba(17,24,39,.10);
}

/* Better default spacing between blocks */
.wp-site-blocks > * + * { margin-block-start: 1.25rem; }

/* Cards */
.idp-card, .is-style-idp-card {
  border-radius: var(--idp-radius-lg);
  border: 1px solid var(--idp-border);
  box-shadow: var(--idp-shadow-soft);
  overflow: hidden;
}

/* CTA button style (used in header) */
.wp-block-button.is-style-idp-cta .wp-block-button__link,
.is-style-idp-cta .wp-block-button__link {
  background: var(--wp--preset--gradient--idp-sky, var(--wp--preset--gradient--ocean));
  color: #fff;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.16);
  box-shadow: 0 14px 34px rgba(37,99,235,.25);
  transition: transform .16s ease, filter .16s ease, box-shadow .16s ease;
}
.wp-block-button.is-style-idp-cta .wp-block-button__link:hover,
.is-style-idp-cta .wp-block-button__link:hover {
  transform: translateY(-2px);
  filter: brightness(1.02);
  box-shadow: 0 20px 55px rgba(37,99,235,.30);
}

/* Navigation: dropdown + hover */
.wp-block-navigation .wp-block-navigation-item__content {
  border-radius: 999px;
  padding: .55rem .8rem;
  text-decoration: none;
}
.wp-block-navigation .wp-block-navigation-item__content:hover {
  background: rgba(255,255,255,.06);
  transform: translateY(-1px);
  box-shadow: 0 10px 24px rgba(0,0,0,.12);
}
.wp-block-navigation .wp-block-navigation__submenu-container {
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(12,16,28,.92);
  box-shadow: 0 22px 60px rgba(0,0,0,.30);
  padding: 12px;
  min-width: 260px;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
  border-radius: 12px;
  padding: .55rem .7rem;
  width: 100%;
  display: block;
  box-shadow: none;
  transform: none;
}

/* Mobile overlay menu polish */
.wp-block-navigation__responsive-container.is-menu-open {
  background: rgba(8,12,22,.92);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog {
  border-radius: 18px;
}


/* IDP WOW Pack */
.idp-eyebrow { letter-spacing:.12em; text-transform:uppercase; font-size:.82rem; opacity:.75; }
.idp-muted { opacity:.78; }
.idp-badge {
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.35rem .7rem; border-radius:999px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
}
.idp-badge::before{
  content:""; width:10px; height:10px; border-radius:999px;
  background: var(--wp--preset--color--idp-cyan);
  box-shadow: 0 0 0 6px rgba(0,214,204,.12);
}

/* Mega submenu styling for demo content (works with normal Navigation) */
.idp-nav--mega .wp-block-navigation__submenu-container {
  width: min(860px, calc(100% - 64px));
  padding: 16px;
}
.idp-nav--mega .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
  padding: .6rem .75rem;
}
.idp-nav--mega .wp-block-navigation__submenu-container {
  column-count: 2;
  column-gap: 10px;
}
.idp-nav--mega .wp-block-navigation__submenu-container .wp-block-navigation-item {
  break-inside: avoid;
  margin-bottom: 6px;
}
@media (max-width: 782px){
  .idp-nav--mega .wp-block-navigation__submenu-container { column-count: 1; width: auto; }
}

/* Better section rhythm */
.wp-site-blocks > * + * { margin-block-start: 1.6rem; }
.alignwide { max-width: var(--wp--style--global--wide-size); }


/* IDP Style Pack */
.is-style-idp-card,
.idp-card {
  border-radius: 18px;
  border: 1px solid rgba(17,24,39,.10);
  background: rgba(255,255,255,.85);
  box-shadow: 0 10px 28px rgba(0,0,0,.06);
}
body .is-style-idp-glass {
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(12,16,28,.55);
  box-shadow: 0 22px 60px rgba(0,0,0,.25);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

/* Buttons */
.wp-block-button.is-style-idp-ghost .wp-block-button__link,
.is-style-idp-ghost .wp-block-button__link {
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.14);
  color: rgba(255,255,255,.92);
  box-shadow: none;
}
.wp-block-button.is-style-idp-ghost .wp-block-button__link:hover,
.is-style-idp-ghost .wp-block-button__link:hover {
  transform: translateY(-1px);
  background: rgba(255,255,255,.08);
  box-shadow: 0 16px 45px rgba(0,0,0,.18);
}
.wp-block-button.is-style-idp-outline-dark .wp-block-button__link,
.is-style-idp-outline-dark .wp-block-button__link {
  background: transparent;
  border: 1px solid rgba(17,24,39,.22);
  color: rgba(17,24,39,.92);
}
.wp-block-button.is-style-idp-outline-dark .wp-block-button__link:hover,
.is-style-idp-outline-dark .wp-block-button__link:hover {
  transform: translateY(-1px);
  box-shadow: 0 16px 45px rgba(0,0,0,.10);
}

/* Icon list utility (for patterns) */
.idp-icon-list li { margin-bottom: .35rem; }
.idp-icon-list li::marker { color: var(--wp--preset--color--idp-cyan); }

/* Classic menu block styling (Appearance → Menus) */
.idpbd-classic-menu,
.idpbd-classic-menu ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.idpbd-classic-menu {
  display: flex;
  gap: 18px;
  align-items: center;
  flex-wrap: wrap;
}
.idpbd-classic-menu a {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  padding: .55rem .8rem;
  border-radius: 999px;
  transition: transform .16s ease, background-color .16s ease, box-shadow .16s ease, color .16s ease;
}
.idpbd-classic-menu a:hover {
  transform: translateY(-1px);
  background: rgba(255,255,255,.06);
  box-shadow: 0 10px 24px rgba(0,0,0,.12);
}
.idpbd-classic-menu .sub-menu {
  position: absolute;
  display: none;
  padding: 12px;
  min-width: 240px;
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(12,16,28,.92);
  box-shadow: 0 20px 55px rgba(0,0,0,.30);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.idpbd-classic-menu li { position: relative; }
.idpbd-classic-menu li:hover > .sub-menu { display: block; }
.idpbd-classic-menu .sub-menu a { width: 100%; border-radius: 12px; }

/* Header Mega Classic: show Classic Mega on desktop, WP drawer on mobile */
@media (min-width: 783px){
  .idp-header-mobile-menu{ display:none; }
}
@media (max-width: 782px){
  .idp-header-desktop-menu{ display:none; }
}

/* Classic Mega Menu variant (use with the idpbd/classic-menu block + class idpbd-mega-menu)
   - Mega parent: add menu item CSS class idp-mega-parent
   - Icons: use Title Attribute (attr_title) on submenu items, e.g. ⚡
   - Microcopy: use Description on submenu items
*/
.idpbd-classic-menu.idpbd-mega-menu{ gap: 14px; }

.idpbd-classic-menu.idpbd-mega-menu li.idp-mega-parent > .sub-menu{
  width: min(980px, 92vw);
  left: 50%;
  transform: translateX(-50%);
  top: calc(100% + 10px);
  padding: 16px;
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
@media (min-width: 1100px){
  .idpbd-classic-menu.idpbd-mega-menu li.idp-mega-parent > .sub-menu{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.idpbd-classic-menu.idpbd-mega-menu li.idp-mega-parent > .sub-menu > li > a{
  width: 100%;
  border-radius: 16px;
  padding: 12px 14px;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.10);
  box-shadow: none;
  display: flex;
  gap: 12px;
  align-items: flex-start;
  transform: none;
}

.idpbd-classic-menu.idpbd-mega-menu .idp-nav-icon{
  width: 34px;
  height: 34px;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  box-shadow: 0 18px 40px rgba(0,0,0,.20);
}

.idpbd-classic-menu.idpbd-mega-menu .idp-nav-text{
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.idpbd-classic-menu.idpbd-mega-menu .idp-nav-title{
  font-weight: 650;
  line-height: 1.1;
}
.idpbd-classic-menu.idpbd-mega-menu .idp-nav-desc{
  font-size: .92rem;
  opacity: .82;
  line-height: 1.2;
}

.idpbd-classic-menu.idpbd-mega-menu li.idp-mega-parent > .sub-menu > li > a:hover{
  transform: translateY(-2px);
  background: rgba(255,255,255,.08);
  border-color: rgba(255,255,255,.16);
  box-shadow: 0 22px 65px rgba(0,0,0,.34);
}

/* Optional promo card: add menu item CSS class idp-promo */
.idpbd-classic-menu.idpbd-mega-menu li.idp-mega-parent > .sub-menu > li.idp-promo{ grid-column: span 2; }
.idpbd-classic-menu.idpbd-mega-menu li.idp-mega-parent > .sub-menu > li.idp-promo > a{
  background: rgba(37,99,235,.12);
  border-color: rgba(37,99,235,.20);
}

/* Full-width sanity (no mysterious side padding) */
body { margin: 0; }
.wp-site-blocks { padding-left: 0; padding-right: 0; }



/* IDP Kit Variants */
.idp-topbar {
  display:flex; gap:.6rem; align-items:center; justify-content:space-between;
  padding:.5rem .75rem; border-radius:14px;
  border:1px solid rgba(17,24,39,.10);
  background: rgba(255,255,255,.75);
  box-shadow: 0 10px 28px rgba(0,0,0,.04);
}
.idp-pill {
  display:inline-flex; align-items:center; gap:.45rem;
  padding:.35rem .65rem; border-radius:999px;
  border:1px solid rgba(17,24,39,.14);
  background: rgba(255,255,255,.65);
  font-size:.92rem;
}
.idp-pill a { text-decoration:none; }
.idp-kit-local .idp-pill { border-color: rgba(0,214,204,.35); }
.idp-kit-coach .idp-pill { border-color: rgba(124,58,237,.30); }
.idp-footer-grid h3 { margin-top:0; }
.idp-footer-grid a { text-decoration:none; opacity:.9; }
.idp-footer-grid a:hover { opacity:1; text-decoration:underline; }


/* Sticky Header option */
.idp-header--sticky {
  position: sticky;
  top: 0;
  z-index: 999;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}


/* Header builder options */
.idp-header--transparent {
  position: absolute;
  left: 0; right: 0;
  top: 0;
  z-index: 999;
  background: transparent;
}
.idp-header--transparent .idp-topbar,
.idp-header--transparent .wp-block-group {
  background: rgba(255,255,255,.08);
  border-color: rgba(255,255,255,.16);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.idp-nav--tight .wp-block-navigation-item__content { padding-left:.55rem; padding-right:.55rem; }
.idp-nav--comfy .wp-block-navigation-item__content { padding-left:.85rem; padding-right:.85rem; }


/* Sections: full width background, boxed inner content */
.idp-section {
  padding-top: 3rem;
  padding-bottom: 3rem;
}
.idp-section--tight { padding-top: 2rem; padding-bottom: 2rem; }
.idp-section--loose { padding-top: 4.25rem; padding-bottom: 4.25rem; }


/* IDP Section Rhythm */
:root {
  --idp-section-pad-y: clamp(2.25rem, 3.5vw, 4rem);
  --idp-section-pad-y-tight: clamp(1.5rem, 2.5vw, 2.75rem);
  --idp-section-pad-y-loose: clamp(3rem, 4.5vw, 5.25rem);
  --idp-card-radius: 18px;
  --idp-card-shadow: 0 18px 50px rgba(0,0,0,.06);
  --idp-border: 1px solid rgba(17,24,39,.10);
  --idp-tint: rgba(17,24,39,.03);
}

.idp-section {
  padding-top: var(--idp-section-pad-y);
  padding-bottom: var(--idp-section-pad-y);
}
.idp-section--tight {
  padding-top: var(--idp-section-pad-y-tight);
  padding-bottom: var(--idp-section-pad-y-tight);
}
.idp-section--loose {
  padding-top: var(--idp-section-pad-y-loose);
  padding-bottom: var(--idp-section-pad-y-loose);
}
.idp-section--tint {
  background: var(--idp-tint);
}
.idp-section--tint .wp-block-group,
.idp-section--tint .wp-block-columns {
  background: transparent;
}

/* Better vertical rhythm inside common section wrappers */
.idp-stack > * + * { margin-top: 1rem; }
.idp-stack--lg > * + * { margin-top: 1.5rem; }
.idp-stack--xl > * + * { margin-top: 2rem; }

/* Premium card baseline */
.idp-card {
  border-radius: var(--idp-card-radius);
  box-shadow: var(--idp-card-shadow);
  border: var(--idp-border);
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

/* Tighten default paragraph spacing in sections */
.idp-section p { line-height: 1.6; }


/* IDP Layout Width + Overflow Guard */
/* Critical: prevent padding from increasing element width (a common source of right-side overflow). */
*, *::before, *::after { box-sizing: border-box; }

html, body {
  max-width: 100%;
  overflow-x: clip;
}

/* Keep top-level wrappers from exceeding the viewport (do NOT clip children; clipping breaks alignfull). */
.wp-site-blocks { width: 100%; max-width: 100%; }

/* Consistent padding for KPI / tile cards */
:root { --idp-card-pad: clamp(16px, 2vw, 24px); }
.idp-tile { padding: var(--idp-card-pad); }

/*
  Default card padding for tiles/cards used in templates (not just post content).
  Scope to main content + editor wrapper to avoid padding header/footer template parts.
*/
:where(main, .wp-block-post-content, .editor-styles-wrapper) :where(
  .wp-block-group.has-background,
  .wp-block-group.has-border-color,
  .wp-block-column.has-background,
  .wp-block-column.has-border-color
):not(.alignfull):not(.idp-section):not(.idp-hero-card){
  padding: var(--idp-card-pad) !important;
}

/* Never let media create horizontal scroll */
.wp-site-blocks img,
.wp-site-blocks video,
.wp-site-blocks iframe,
.wp-site-blocks svg {
  max-width: 100%;
}

/* Keep default constrained layout for normal blocks */
.wp-site-blocks > :where(:not(.alignfull):not(.alignwide)) {
  max-width: var(--wp--style--global--content-size, 1200px);
  margin-left: auto;
  margin-right: auto;
}

/* Full and wide alignments */
.wp-site-blocks > .alignfull {
  max-width: none;
}
.wp-site-blocks > .alignwide {
  max-width: var(--wp--style--global--wide-size, 1400px);
  margin-left: auto;
  margin-right: auto;
}

.wp-block-post-content,
main.wp-block-group,
main.wp-block-post-content {
  width: 100%;
  box-sizing: border-box;
}


/* IDP Boxed Parts (Header/Footer) */
:root{
  --idp-shell-pad-x: clamp(1rem, 3vw, 2rem);
  --idp-shell-pad-y: 1rem;
  --idp-shell-max: 1200px;
  --idp-shell-radius: 18px;
  --idp-shell-shadow: 0 22px 70px rgba(0,0,0,.08);
  --idp-shell-border: 1px solid rgba(17,24,39,.10);
}

/* Make template parts full-width, but inner content boxed */
header.wp-block-template-part,
footer.wp-block-template-part{
  width: 100%;
}

/* A reusable boxed bar */
.idp-boxed-bar{
  max-width: var(--idp-shell-max);
  margin-left: auto;
  margin-right: auto;
  padding: var(--idp-shell-pad-y) var(--idp-shell-pad-x);
  border-radius: var(--idp-shell-radius);
  border: var(--idp-shell-border);
  box-shadow: var(--idp-shell-shadow);
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

/* Header wrapper spacing */
.idp-header-shell{
  padding: 1.25rem var(--idp-shell-pad-x);
}

/* Footer spacing and typography */
.idp-footer-shell{
  padding: 2.75rem var(--idp-shell-pad-x);
}
.idp-footer-shell .wp-block-navigation-item__content{
  padding: .35rem 0;
}


/* IDP Pattern Polish */
.idp-hero-card{
  max-width: var(--idp-shell-max);
  margin-left: auto;
  margin-right: auto;
  border-radius: var(--idp-shell-radius);
  border: var(--idp-shell-border);
  box-shadow: 0 18px 60px rgba(0,0,0,.06);
  background: rgba(255,255,255,.96);
  padding: clamp(1.25rem, 2.5vw, 2rem);
}


/* IDP v2.2.9 Visual System (fixes 'looks bad' default layout) */
:root{
  --idp-shell-max: 1240px;
  --idp-shell-radius: 16px;
  --idp-shell-shadow: 0 14px 40px rgba(0,0,0,.07);
  --idp-shell-border: 1px solid rgba(17,24,39,.10);
  --idp-shell-pad-x: clamp(1rem, 3vw, 2rem);

  --idp-section-pad-y: clamp(1.75rem, 2.8vw, 3rem);
  --idp-section-pad-y-tight: clamp(1.25rem, 2.2vw, 2.25rem);
  --idp-section-pad-y-loose: clamp(2.25rem, 3.6vw, 4rem);
  --idp-page-bg: #F6F7FB;
}

/* Page background (stop the 'floating white on white' look) */
body{ background: var(--idp-page-bg); }
.wp-site-blocks{ background: transparent; }

/* Make the site feel anchored */
header.wp-block-template-part{ margin-top: 0; }
.idp-header-shell{ padding: .9rem var(--idp-shell-pad-x); }
.idp-boxed-bar{
  box-shadow: var(--idp-shell-shadow);
  border-radius: var(--idp-shell-radius);
  border: var(--idp-shell-border);
}

/* Global container safety */
.alignwide{ max-width: var(--idp-shell-max) !important; margin-left:auto; margin-right:auto; }
.alignfull{ width: 100%; }

/* Sections: reduce giant whitespace */
.idp-section{ padding-top: var(--idp-section-pad-y); padding-bottom: var(--idp-section-pad-y); }
.idp-section--tight{ padding-top: var(--idp-section-pad-y-tight); padding-bottom: var(--idp-section-pad-y-tight); }
.idp-section--loose{ padding-top: var(--idp-section-pad-y-loose); padding-bottom: var(--idp-section-pad-y-loose); }

/* Alternating band that actually reads */
.idp-section--tint{ background: rgba(15,23,42,.035); }

/* Cards: stop the overboxing and make them consistent */
.idp-card, .is-style-idp-card{
  border-radius: var(--idp-shell-radius);
  border: var(--idp-shell-border);
  box-shadow: 0 10px 28px rgba(0,0,0,.06);
  background: rgba(255,255,255,.95);
}

/* Hero: remove double-card effect (outer becomes a container only) */
.idp-hero-card{
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}
.idp-hero-card .is-style-idp-card,
.idp-hero-card .idp-card{
  padding: clamp(1.25rem, 2.5vw, 2.25rem) !important;
}

/* Typography polish (less 'random') */
h1, h2, h3{ letter-spacing: -0.02em; }
h1{ font-size: clamp(2rem, 3.2vw, 3rem); line-height: 1.08; }
h2{ font-size: clamp(1.5rem, 2.2vw, 2.1rem); line-height: 1.15; }

/* Buttons feel premium */
.wp-block-button .wp-block-button__link{
  border-radius: 999px;
  padding: .85rem 1.25rem;
  box-shadow: 0 10px 24px rgba(37,99,235,.18);
  transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
.wp-block-button .wp-block-button__link:hover{
  transform: translateY(-1px);
  box-shadow: 0 14px 30px rgba(37,99,235,.22);
  filter: saturate(1.05);
}

/* Make feature rows less "boxed into nothing" */
.wp-block-columns{ gap: clamp(1rem, 2.2vw, 2rem); }


/* IDP KPI Row */
.idp-kpi-row{
  box-shadow: 0 16px 45px rgba(0,0,0,.06);
}
.idp-kpi-row h3{
  margin-top: 0;
  margin-bottom: .5rem;
  font-size: 1.1rem;
}
.idp-kpi-row p{
  margin-top: 0;
  margin-bottom: 0;
}


/* IDP Content Width Safety */
.wp-block-post-content{
  max-width: var(--wp--style--global--content-size);
  margin-left: auto;
  margin-right: auto;
  padding-left: clamp(1rem, 3vw, 2rem);
  padding-right: clamp(1rem, 3vw, 2rem);
}


/* IDP Panel Spacing */
.idp-section--tight{ padding-top: clamp(2rem, 4vw, 3.5rem); padding-bottom: clamp(2rem, 4vw, 3.5rem); }
.idp-card, .is-style-idp-card{
  border: 1px solid rgba(15,23,42,.08);
}
.idp-card.wp-block-group, .is-style-idp-card.wp-block-group{
  padding: clamp(1.25rem, 2.5vw, 2rem);
}


/* IDP Agency Kit */
.idp-section{padding-top: clamp(2.5rem, 6vw, 5rem); padding-bottom: clamp(2.5rem, 6vw, 5rem);}
.idp-section--tint{background: rgba(0,0,0,.03);}
.idp-eyebrow{letter-spacing:.08em; text-transform:uppercase; opacity:.75; margin-bottom:.75rem;}
.idp-hero-title{font-size: clamp(2.2rem, 4.4vw, 4rem); line-height:1.05; margin-top:0; margin-bottom:1rem;}
.idp-hero-lede{max-width: 58ch; opacity:.9; margin-bottom:1.75rem;}
.idp-tile{border:1px solid rgba(0,0,0,.10); padding:1.25rem; border-radius:0; background:#fff;}
.idp-tile h3{margin-top:0; margin-bottom:.5rem; font-size:1.15rem;}
.idp-panel{border:1px solid rgba(0,0,0,.10); padding:1.5rem; background:#fff;}
.idp-logo-chip{border:1px solid rgba(0,0,0,.12); padding:.35rem .6rem; margin:.25rem; background:#fff;}
.idp-quote{border-left:3px solid rgba(0,0,0,.35); padding-left:1rem;}
.idp-quote-text{font-size:1.05rem; margin-top:0; margin-bottom:.5rem;}
.idp-quote-meta{opacity:.8; margin:0;}
.idp-work-tile{border:1px solid rgba(0,0,0,.10); padding:1.25rem; background:#fff;}
.idp-work-tile h3{margin-top:0; margin-bottom:.5rem;}


/* IDP Modern Kit (neutral, not niche-specific) */
.idp-faq{border:1px solid rgba(0,0,0,.12); padding:.9rem 1rem; margin:.75rem 0; background:#fff;}
.idp-faq summary{cursor:pointer; font-weight:600;}
.idp-faq p{margin-top:.6rem; margin-bottom:0;}


/* IDP Header Polish */
.idp-header-shell{padding-top:1rem; padding-bottom:1rem; border-bottom:1px solid rgba(0,0,0,.08); background:#fff;}
.idp-header-row{gap:1rem;}
.idp-header-shell .wp-block-site-title{margin:0; font-weight:700; letter-spacing:-0.02em;}
.idp-header-shell .wp-block-navigation .wp-block-navigation-item__content{padding:.5rem .6rem;}
.idp-header-shell .wp-block-navigation .wp-block-navigation-item__content:hover{background:rgba(0,0,0,.04);}
.idp-header-shell .idp-header-cta .wp-element-button{padding:.85rem 1.1rem;}
.idp-header-shell .idp-header-cta .wp-element-button:hover{transform: translateY(-1px);}
@media (max-width: 900px){
  .idp-header-row{justify-content:flex-start;}
  .idp-header-shell .wp-block-navigation{flex-basis:100%;}
  .idp-header-shell .wp-block-buttons{flex-basis:100%; justify-content:flex-start;}
}


/* Modern section rhythm */
.idp-section{padding-top: clamp(2.25rem, 5.5vw, 4.5rem); padding-bottom: clamp(2.25rem, 5.5vw, 4.5rem);}
.idp-tile{border-color: rgba(0,0,0,.12);}
.idp-panel{border-color: rgba(0,0,0,.12);}


/* Clean Black default: square edges, minimal chrome */
:root{
  --idp-border: rgba(0,0,0,.14);
  --idp-muted: rgba(0,0,0,.62);
}
.idp-rule{border:0; border-top:1px solid var(--idp-border); margin:1.5rem 0;}
.idp-mini-title{margin-top:0; margin-bottom:.35rem; letter-spacing:-0.02em;}
.idp-outline{border:1px solid var(--idp-border); padding:1.25rem; background:transparent;}
.idp-checklist{padding-left:1.1rem;}
.idp-quote{border-left:3px solid var(--idp-border); padding-left:1rem; margin:0;}
.idp-quote cite{display:block; margin-top:.6rem; color:var(--idp-muted); font-style:normal;}
/* Kill “KPI card” feel for the modern kit */
.idp-modern-hero, .idp-modern-features, .idp-modern-testimonials, .idp-modern-cta{background:transparent;}
/* Ensure any leftover tiles/panels are square and shadowless unless Soft Cards variation */
.idp-tile, .idp-panel, .idp-quote, .idp-faq{border-radius:0 !important; box-shadow:none !important;}

/* ===============================
   IDPBD v2.5.8 – Layout hardening
   Fixes: horizontal overflow + KPI card padding
   =============================== */

.idp-card{
  padding: var(--idp-card-pad) !important;
}

/* Pattern card class used throughout IDP templates */
.idpbd-card{padding:var(--idp-card-pad) !important;}

/* Builder plugin card class (IDP WP Builder) */
.idpwb-card{padding:var(--idp-card-pad) !important;}
body.idpwb-dark .idpwb-card{padding:var(--idp-card-pad) !important;}

/* Allow flex/grid children to shrink so text/cards don't force horizontal scroll */
.wp-block-columns{max-width:100%;}
.wp-block-column{min-width:0;}

/* Robust full-bleed blocks (fixes scrollbar-width overflow without breaking out of constrained parents) */
:root{ --idp-scrollbar: calc(100vw - 100%); }

.alignfull{
  width: calc(100vw - var(--idp-scrollbar)) !important;
  max-width: calc(100vw - var(--idp-scrollbar)) !important;
  margin-left: calc(50% - 50vw + (var(--idp-scrollbar) / 2)) !important;
  margin-right: calc(50% - 50vw + (var(--idp-scrollbar) / 2)) !important;
}

/* NOTE: do NOT neutralize nested .alignfull.
   Nested full-bleed blocks are common in Site Editor (Cover inside Group etc).
   Neutralizing them causes “clipped hero backgrounds”.
   Our alignfull calc is idempotent when the parent is already full-bleed. */

/* Last-resort: prevent any remaining 1–2px overflow from rounding/scrollbar width */

@supports (overflow: clip){ html, body { overflow-x: clip; } }
@supports not (overflow: clip){ html, body { overflow-x: hidden; } }


/* Guardrail: prevent site wrapper from causing horizontal scroll
   NOTE: Do not clip .wp-site-blocks; clipping breaks full-bleed alignfull backgrounds.
   Scrollbar prevention is handled at html/body level. */
.wp-site-blocks{max-width:100%;overflow-x:visible;}

/* ===============================
   IDPBD v2.5.19 – Full-bleed hero + premium motion (IDP WP Builder dark templates)
   Fixes: hero background not full-width (clipped) + adds subtle "wow" interactions
   =============================== */

/* Dark mode backdrop (plugin adds body.idpwb-dark) */
body.idpwb-dark{
  background:
    radial-gradient(1200px 700px at 18% 12%, rgba(99,102,241,.28), transparent 55%),
    radial-gradient(1000px 650px at 85% 40%, rgba(14,165,233,.22), transparent 60%),
    radial-gradient(900px 550px at 55% 88%, rgba(0,214,204,.18), transparent 62%),
    #050814;
  color: rgba(255,255,255,.92);
}
body.idpwb-dark .wp-site-blocks{ background: transparent; }

/* Full-bleed cover/hero should feel intentional */
body.idpwb-dark .idpwb-hero-dark{ position: relative; isolation: isolate; }
body.idpwb-dark .idpwb-hero-dark .wp-block-cover.alignfull{ min-height: clamp(520px, 72vh, 860px); }

/* Soft glow overlay (adds depth without changing content) */
body.idpwb-dark .idpwb-hero-dark::before{
  content:"";
  position:absolute;
  inset:-1px;
  background:
    radial-gradient(900px 520px at 25% 35%, rgba(99,102,241,.25), transparent 62%),
    radial-gradient(900px 520px at 78% 55%, rgba(0,214,204,.18), transparent 62%),
    linear-gradient(180deg, rgba(5,8,20,.18), rgba(5,8,20,.70));
  pointer-events:none;
  z-index:0;
}
body.idpwb-dark .idpwb-hero-dark > *{ position:relative; z-index:1; }

/* Cards feel premium: hover lift + subtle border glow */
body.idpwb-dark :where(.idpwb-card, .idp-card, .is-style-idp-glass){
  border-color: rgba(255,255,255,.10);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background-color .18s ease;
}
body.idpwb-dark :where(.idpwb-card, .idp-card, .is-style-idp-glass):hover{
  transform: translateY(-2px);
  box-shadow: 0 26px 70px rgba(0,0,0,.35);
  border-color: rgba(255,255,255,.18);
}

/* Buttons: more tactile */
body.idpwb-dark .wp-block-button .wp-block-button__link{
  box-shadow: 0 18px 44px rgba(37,99,235,.28);
  transition: transform .16s ease, box-shadow .16s ease, filter .16s ease;
}
body.idpwb-dark .wp-block-button .wp-block-button__link:hover{
  transform: translateY(-2px);
  box-shadow: 0 26px 70px rgba(37,99,235,.32);
  filter: brightness(1.03);
}

/* Headings: slightly more modern */
body.idpwb-dark h1, body.idpwb-dark h2, body.idpwb-dark h3{ letter-spacing: -0.02em; }



/* ===============================
   IDPBD v2.5.20 – Premium motion pack
   - Animated gradients + subtle noise (hero + CTA / gradient groups)
   - Bento tiles (icons + microcopy + hover)
   - Logo marquee strip
   - Testimonials depth
   =============================== */

@keyframes idpGradientShift{
  0%{ background-position: 0% 50%, 100% 50%, 0 0; }
  50%{ background-position: 100% 50%, 0% 50%, 0 0; }
  100%{ background-position: 0% 50%, 100% 50%, 0 0; }
}
@keyframes idpMarquee{
  0%{ transform: translateX(0); }
  100%{ transform: translateX(-50%); }
}
@keyframes idpIconFloat{
  0%,100%{ transform: translateY(0); }
  50%{ transform: translateY(-2px); }
}

/* SVG noise tile (very light) */
:root{
  --idp-noise-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");
}

/* 1) Animated gradient + noise on plugin hero (idpwb) */
body.idpwb-dark .idpwb-hero-dark{
  position: relative;
  isolation: isolate;
}
body.idpwb-dark .idpwb-hero-dark::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(1100px 620px at 22% 36%, rgba(99,102,241,.30), transparent 62%),
    radial-gradient(1100px 620px at 78% 58%, rgba(0,214,204,.22), transparent 62%),
    linear-gradient(180deg, rgba(5,8,20,.20), rgba(5,8,20,.78));
  background-size: 200% 200%, 200% 200%, 100% 100%;
  animation: idpGradientShift 18s ease-in-out infinite;
  pointer-events:none;
  z-index:0;
}
body.idpwb-dark .idpwb-hero-dark::after{
  content:"";
  position:absolute;
  inset:0;
  background-image: var(--idp-noise-svg);
  background-size: 220px 220px;
  opacity: .08;
  mix-blend-mode: overlay;
  pointer-events:none;
  z-index:0;
}
body.idpwb-dark .idpwb-hero-dark > *{ position:relative; z-index:1; }

/* 1b) Animated sheen + noise for any gradient group (CTA blocks often use inline gradients) */
body.idpwb-dark :where(.wp-site-blocks) :where(.wp-block-group, .wp-block-cover):is([style*="linear-gradient"],[style*="--wp--preset--gradient"]){
  position: relative;
  isolation: isolate;
}
body.idpwb-dark :where(.wp-site-blocks) :where(.wp-block-group, .wp-block-cover):is([style*="linear-gradient"],[style*="--wp--preset--gradient"])::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(900px 480px at 20% 30%, rgba(255,255,255,.10), transparent 60%),
    radial-gradient(900px 480px at 80% 70%, rgba(255,255,255,.08), transparent 60%);
  background-size: 200% 200%, 200% 200%;
  animation: idpGradientShift 22s ease-in-out infinite;
  opacity: .55;
  mix-blend-mode: overlay;
  pointer-events:none;
  z-index:0;
}
body.idpwb-dark :where(.wp-site-blocks) :where(.wp-block-group, .wp-block-cover):is([style*="linear-gradient"],[style*="--wp--preset--gradient"])::after{
  content:"";
  position:absolute;
  inset:0;
  background-image: var(--idp-noise-svg);
  background-size: 220px 220px;
  opacity: .06;
  mix-blend-mode: overlay;
  pointer-events:none;
  z-index:0;
}
body.idpwb-dark :where(.wp-site-blocks) :where(.wp-block-group, .wp-block-cover):is([style*="linear-gradient"],[style*="--wp--preset--gradient"]) > *{ position:relative; z-index:1; }

/* 2) Bento tiles (theme patterns use .idp-tile) */
.idp-tile,
body.idpwb-dark .idpwb-card{
  border-radius: var(--idp-radius-lg, 18px);
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
  box-shadow: 0 18px 54px rgba(0,0,0,.42);
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease, background-color .16s ease;
}
.idp-tile:hover,
body.idpwb-dark .idpwb-card:hover{
  transform: translateY(-2px);
  border-color: rgba(255,255,255,.16);
  background: rgba(255,255,255,.04);
  box-shadow: 0 22px 70px rgba(0,0,0,.52);
}
.idp-bento-icon{
  width: 44px;
  height: 44px;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: rgba(255,255,255,.96);
  background: linear-gradient(135deg, rgba(99,102,241,.95), rgba(14,165,233,.92));
  box-shadow: 0 16px 44px rgba(37,99,235,.32);
  border: 1px solid rgba(255,255,255,.18);
  margin-bottom: 10px;
  animation: idpIconFloat 3.6s ease-in-out infinite;
}
.idp-bento-icon svg{ width: 22px; height: 22px; display:block; fill: currentColor; }

.idp-tile h3{
  margin-top: 0;
  margin-bottom: .35rem;
}
.idp-microcopy{
  font-size: .88rem;
  opacity: .72;
  margin-top: .55rem;
}

/* Optional: bento grid class */
.idp-bento-grid{
  gap: 1rem;
}
@media (min-width: 960px){
  .idp-bento-grid{
    display: grid !important;
    grid-template-columns: repeat(12, 1fr) !important;
    align-items: stretch;
  }
  .idp-bento-grid > .wp-block-column{ grid-column: span 4; }
}

/* 3) Logo strip motion */
.idp-logo-marquee{
  position: relative;
  overflow: hidden;
  max-width: 100%;
  mask-image: linear-gradient(90deg, transparent 0%, #000 10%, #000 90%, transparent 100%);
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 10%, #000 90%, transparent 100%);
}
.idp-logo-track{
  display: flex;
  gap: 12px;
  width: max-content;
  will-change: transform;
  animation: idpMarquee 22s linear infinite;
}
.idp-logo-track > .wp-block-columns{ flex: 0 0 auto; width: auto !important; margin: 0 !important; }
.idp-auto-logo-marquee .wp-block-columns{ flex-wrap: nowrap !important; }
.idp-auto-logo-marquee .wp-block-column{ flex: 0 0 auto !important; width: auto !important; }
.idp-logo-marquee:hover .idp-logo-track{ animation-play-state: paused; }
@media (prefers-reduced-motion: reduce){
  .idp-logo-track{ animation: none; }
}
.idp-logo-chip{
  padding: .55rem .9rem;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.04);
  backdrop-filter: blur(10px);
  box-shadow: 0 12px 40px rgba(0,0,0,.35);
  transition: transform .16s ease, border-color .16s ease, background-color .16s ease;
  white-space: nowrap;
}
.idp-logo-chip:hover{
  transform: translateY(-1px);
  border-color: rgba(255,255,255,.20);
  background: rgba(255,255,255,.06);
}

/* 4) Testimonials depth */
.idp-quote{
  position: relative;
  padding: 22px;
  border-radius: var(--idp-radius-lg, 18px);
  border: 1px solid rgba(255,255,255,.10);
  background:
    radial-gradient(600px 240px at 20% 10%, rgba(99,102,241,.14), transparent 60%),
    rgba(255,255,255,.03);
  box-shadow: 0 18px 54px rgba(0,0,0,.42);
  overflow: hidden;
}
.idp-quote::before{
  content: "“";
  position: absolute;
  top: -12px;
  left: 14px;
  font-size: 72px;
  line-height: 1;
  color: rgba(255,255,255,.10);
  pointer-events:none;
}
.idp-quote::after{
  content:"";
  position:absolute;
  inset:0;
  background-image: var(--idp-noise-svg);
  background-size: 220px 220px;
  opacity: .05;
  mix-blend-mode: overlay;
  pointer-events:none;
}
.idp-quote > *{ position:relative; z-index:1; }
.idp-quote-text{
  font-size: 1.05rem;
  line-height: 1.55;
  margin: 0 0 12px 0;
}
.idp-quote-meta{
  margin: 0;
  font-size: .9rem;
  opacity: .85;
}
.idp-quote-meta strong{
  display: inline-block;
  padding: .2rem .55rem;
  border-radius: 999px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.10);
  margin-right: .4rem;
}

/* 5) Slightly more premium hero typography */
body.idpwb-dark .idpwb-hero-dark h1,
.idp-agency-hero .idp-hero-title{
  letter-spacing: -0.03em;
}
body.idpwb-dark .idpwb-hero-dark h1{
  background: linear-gradient(90deg, rgba(255,255,255,.98), rgba(200,240,255,.92));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}


/* Theme patterns: hero + CTA surfaces (non-plugin pages) */
.idp-agency-hero,
.idp-agency-cta{
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background-color: #050814;
  /* Optional hero image layer (set in Appearance → IDP Theme Tools) */
  background-image: var(--idpbd-hero-image, none);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: rgba(255,255,255,.92);
}
.idp-agency-hero::before,
.idp-agency-cta::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(1100px 620px at 18% 22%, rgba(99,102,241,.32), transparent 60%),
    radial-gradient(1100px 620px at 82% 58%, rgba(14,165,233,.22), transparent 62%),
    linear-gradient(180deg, rgba(5,8,20,.15), rgba(5,8,20,.82));
  background-size: 200% 200%, 200% 200%, 100% 100%;
  animation: idpGradientShift 18s ease-in-out infinite;
  pointer-events:none;
  z-index:0;
}
.idp-agency-hero::after,
.idp-agency-cta::after{
  content:"";
  position:absolute;
  inset:0;
  background-image: var(--idp-noise-svg);
  background-size: 220px 220px;
  opacity: .08;
  mix-blend-mode: overlay;
  pointer-events:none;
  z-index:0;
}
.idp-agency-hero > *, .idp-agency-cta > *{ position:relative; z-index:1; }

/* Agency Hero: KPI tiles (prevents "no padding" + fixes small-screen overflow) */
.idp-hero-kpis{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 1rem;
}
.idp-hero-kpi{
  padding: var(--idp-card-pad);
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  box-shadow: 0 18px 55px rgba(0,0,0,.25);
  min-width: 0;
}
.idp-hero-kpi .label{
  font-size: .85rem;
  opacity: .75;
  margin: 0 0 .2rem 0;
}
.idp-hero-kpi .value{
  font-size: 1.15rem;
  font-weight: 750;
  letter-spacing: -0.01em;
  line-height: 1.1;
}
@media (max-width: 560px){
  .idp-hero-kpis{ grid-template-columns: 1fr; }
}


.idp-cta-card{
  border-radius: 28px;
  border: 1px solid rgba(255,255,255,.14);
  box-shadow: 0 28px 90px rgba(0,0,0,.45);
  overflow: hidden;
}
.idp-cta-card :where(h2){ margin-top: 0; }

/* Plugin feature cards: add a tiny "icon chip" before the first heading for bento feel */
body.idpwb-dark .idpwb-card :where(h2,h3,h4){
  display: flex;
  align-items: center;
  gap: .6rem;
}
body.idpwb-dark .idpwb-card :where(h2,h3,h4)::before{
  content:"";
  width: 28px;
  height: 28px;
  border-radius: 10px;
  background: linear-gradient(135deg, rgba(99,102,241,.95), rgba(14,165,233,.92));
  border: 1px solid rgba(255,255,255,.18);
  box-shadow: 0 16px 44px rgba(37,99,235,.28);
  flex: 0 0 28px;
}

/* ============================================================
   IDPBD v2.5.21 – Premium Pack 2
   - Reveal-on-scroll (opt-in via .idp-reveal)
   - Auto animated gradients (JS adds .idp-anim-gradient)
   - Subtle card shine (JS adds .idp-has-shine)
   - Deeper testimonial + bento styling in dark mode
   ============================================================ */

@media (prefers-reduced-motion: no-preference){
  .idp-reveal{
    opacity: 0;
    transform: translateY(10px);
    filter: saturate(1.02);
    transition: opacity .5s ease, transform .6s cubic-bezier(.2,.8,.2,1);
    will-change: opacity, transform;
  }
  .idp-reveal.is-inview{
    opacity: 1;
    transform: translateY(0);
  }
}

/* Only animate blocks that already use gradients (class added by ui.js) */
@media (prefers-reduced-motion: no-preference){
  .idp-anim-gradient{
    background-size: 220% 220% !important;
    animation: idpGradientShift 22s ease-in-out infinite;
  }
}

/* Optional noise overlay (class added by ui.js) */
.idp-noise{
  position: relative;
  isolation: isolate;
}
.idp-noise::after{
  content:"";
  position:absolute;
  inset:0;
  background-image: var(--idp-noise-svg);
  background-size: 220px 220px;
  opacity: .07;
  mix-blend-mode: overlay;
  pointer-events:none;
  z-index: 0;
}
.idp-noise > *{ position: relative; z-index: 1; }

/* Subtle shine layer (pointer-tracked) */
.idp-has-shine{
  position: relative;
  overflow: hidden;
}
.idp-has-shine::after{
  content:"";
  position:absolute;
  inset:-2px;
  background: radial-gradient(520px circle at var(--idp-mx, 50%) var(--idp-my, 50%), rgba(255,255,255,.16), transparent 60%);
  opacity: 0;
  transition: opacity .18s ease;
  pointer-events:none;
  mix-blend-mode: overlay;
  z-index: 0;
}
.idp-has-shine:hover::after{ opacity: 1; }
.idp-has-shine > *{ position: relative; z-index: 1; }

/* Dark mode: upgrade IDP WP Builder cards (more depth + gradient border) */
body.idpwb-dark :where(.idpwb-card, .idp-card, .is-style-idp-card){
  position: relative;
  border-radius: 22px;
  background: linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.035));
  border: 1px solid rgba(255,255,255,.10);
  box-shadow: 0 24px 72px rgba(0,0,0,.42);
  backdrop-filter: blur(14px);
}

@supports ((-webkit-mask-composite: xor) or (mask-composite: exclude)){
  body.idpwb-dark :where(.idpwb-card, .idp-card, .is-style-idp-card)::before{
    content:"";
    position:absolute;
    inset:0;
    padding:1px;
    border-radius: inherit;
    background: linear-gradient(135deg, rgba(99,102,241,.55), rgba(14,165,233,.38), rgba(34,211,238,.25));
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    pointer-events:none;
    opacity: .45;
    z-index: 1;
  }
  body.idpwb-dark :where(.idpwb-card, .idp-card, .is-style-idp-card):hover::before{ opacity: .75; }
}

/* Dark mode: typography polish inside cards */
body.idpwb-dark :where(.idpwb-card, .idp-card, .is-style-idp-card) :where(h2,h3){
  letter-spacing: -0.02em;
}
body.idpwb-dark :where(.idpwb-card, .idp-card, .is-style-idp-card) :where(p){
  color: rgba(255,255,255,.78);
}

/* Testimonials: less flat, more depth */
body.idpwb-dark .idp-card{
  position: relative;
}
body.idpwb-dark .idp-card :where(p){ color: rgba(255,255,255,.80); }
body.idpwb-dark .idp-card::before{
  content:"“";
  position:absolute;
  top: 10px;
  right: 14px;
  font-size: 52px;
  line-height: 1;
  color: rgba(255,255,255,.10);
  pointer-events:none;
}

/* Logo marquee: smoother motion + fade edges + pause on hover */
.idp-logo-marquee{
  position: relative;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(to right, transparent, #000 10%, #000 90%, transparent);
  mask-image: linear-gradient(to right, transparent, #000 10%, #000 90%, transparent);
}
.idp-logo-track{
  width: max-content;
  gap: .6rem;
  animation: idpMarquee 20s linear infinite;
}
.idp-logo-marquee:hover .idp-logo-track{ animation-play-state: paused; }
body.idpwb-dark .idp-logo-chip{
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.88);
  padding: .45rem .85rem;
  box-shadow: 0 16px 36px rgba(0,0,0,.25);
}

/* Bento tiles: icon chip + hover lift */
body.idpwb-dark .idp-bento-item{
  position: relative;
  padding: 1.15rem;
  border-radius: 22px;
  background: linear-gradient(180deg, rgba(255,255,255,.09), rgba(255,255,255,.03));
  border: 1px solid rgba(255,255,255,.10);
  box-shadow: 0 20px 60px rgba(0,0,0,.38);
  transition: transform .18s ease, box-shadow .18s ease;
}
body.idpwb-dark .idp-bento-item:hover{
  transform: translateY(-4px);
  box-shadow: 0 28px 78px rgba(0,0,0,.46);
}
body.idpwb-dark .idp-bento-icon{
  width: 42px;
  height: 42px;
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(99,102,241,.95), rgba(14,165,233,.92));
  border: 1px solid rgba(255,255,255,.18);
  box-shadow: 0 22px 60px rgba(37,99,235,.24);
  display: grid;
  place-items: center;
  margin-bottom: .65rem;
}
body.idpwb-dark .idp-bento-icon svg{
  width: 20px;
  height: 20px;
  fill: rgba(255,255,255,.92);
}
body.idpwb-dark .idp-microcopy{ color: rgba(255,255,255,.62); }

/* Buttons: a touch more premium (without changing markup) */
body.idpwb-dark .wp-element-button{
  box-shadow: 0 18px 44px rgba(0,0,0,.32);
}
body.idpwb-dark .wp-element-button:hover{
  box-shadow: 0 26px 70px rgba(0,0,0,.40);
}

/* Quote typography helpers */
.idp-quote-text{ font-size: 1.05rem; line-height: 1.55; margin: 0; }
.idp-quote-meta{ margin: .9rem 0 0 0; font-size: .95rem; color: rgba(255,255,255,.72); }


/* ===============================
   IDPBD v2.5.22 – Premium polish pass
   - Restore true full-bleed nested heroes (no clipped cover)
   - Stronger hero typography + glow
   - Auto bento grid rows for .idpwb-card columns
   - Subtle testimonial depth upgrade
   =============================== */

@keyframes idpNoiseDrift{ 0%{ background-position: 0 0; } 100%{ background-position: 220px 220px; } }

/* Subtle moving noise for sections that already use the noise layer */
body.idpwb-dark .idpwb-hero-dark::after,
body.idpwb-dark :where(.wp-site-blocks) :where(.wp-block-group, .wp-block-cover):is([style*="linear-gradient"],[style*="--wp--preset--gradient"])::after{
  animation: idpNoiseDrift 26s linear infinite;
}
@media (prefers-reduced-motion: reduce){
  body.idpwb-dark .idpwb-hero-dark::after,
  body.idpwb-dark :where(.wp-site-blocks) :where(.wp-block-group, .wp-block-cover):is([style*="linear-gradient"],[style*="--wp--preset--gradient"])::after{ animation: none; }
}

/* Hero headline: more premium by default */
body.idpwb-dark .idpwb-hero-dark :where(h1){
  font-size: clamp(2.55rem, 4.4vw, 4.35rem);
  line-height: 1.04;
  letter-spacing: -0.035em;
  text-shadow: 0 18px 60px rgba(0,0,0,.55);
}
body.idpwb-dark .idpwb-hero-dark :where(h1) strong{ font-weight: 800; }

/* Gradient title style (works anywhere when applied in editor) */
.is-style-idp-gradient{
  background: linear-gradient(135deg, rgba(99,102,241,1), rgba(14,165,233,1), rgba(0,214,204,1));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* Auto bento layout: when JS adds .idpwb-bento-row to a Columns block */
body.idpwb-dark .wp-block-columns.idpwb-bento-row{ gap: 1rem; }
@media (min-width: 960px){
  body.idpwb-dark .wp-block-columns.idpwb-bento-row{
    display: grid !important;
    grid-template-columns: repeat(12, 1fr) !important;
    align-items: stretch;
    gap: 1.25rem;
  }
  body.idpwb-dark .wp-block-columns.idpwb-bento-row > .wp-block-column{
    width: auto !important;
    flex: none !important;
    grid-column: span 4;
  }
}

/* Slightly richer feature-card styling (microcopy + varied icon chip) */
body.idpwb-dark .idpwb-card :where(p){
  font-size: .95rem;
  line-height: 1.55;
  color: rgba(255,255,255,.78);
}
body.idpwb-dark .wp-block-columns.idpwb-bento-row > .wp-block-column:nth-child(1) .idpwb-card :where(h2,h3,h4)::before{
  background: linear-gradient(135deg, rgba(99,102,241,.95), rgba(14,165,233,.92));
}
body.idpwb-dark .wp-block-columns.idpwb-bento-row > .wp-block-column:nth-child(2) .idpwb-card :where(h2,h3,h4)::before{
  background: linear-gradient(135deg, rgba(0,214,204,.95), rgba(59,130,246,.92));
}
body.idpwb-dark .wp-block-columns.idpwb-bento-row > .wp-block-column:nth-child(3) .idpwb-card :where(h2,h3,h4)::before{
  background: linear-gradient(135deg, rgba(244,114,182,.95), rgba(99,102,241,.92));
}

/* Testimonials: a bit more depth without changing markup */
body.idpwb-dark :where(.idp-quote, .wp-block-group.is-style-idp-card, .idp-card){
  background:
    radial-gradient(700px 260px at 20% 12%, rgba(99,102,241,.12), transparent 60%),
    radial-gradient(700px 260px at 85% 70%, rgba(0,214,204,.10), transparent 60%),
    rgba(255,255,255,.03);
}

/* ------------------------------------------------------------------
   IDP Header + Footer Builder (easy-to-use, looks premium)
------------------------------------------------------------------ */

/* Sticky glass header: tighten + add a little depth */
.idp-header-shell{ margin-top: 0; }
.idp-header-bar{ gap: 14px; }
.idp-header-brand .wp-block-site-title a{ text-decoration:none; }

/* Transparent header becomes solid once scrolled */
.idp-header-shell.is-scrolled .idp-boxed-bar{
  background: rgba(255,255,255,.96);
  border-color: rgba(17,24,39,.12);
}

/* Footer typography */
.idp-footer-shell{ padding: var(--idp-section-pad-y-tight) 0; }
.idp-footer-note{ margin: .65rem 0 0 0; opacity: .78; font-size: .95rem; }
.idp-footer-bar h4{ margin-top: 0; margin-bottom: .75rem; }
.idp-footer-bar ul{ margin: 0; padding-left: 1.1rem; }
.idp-footer-bar li{ margin-bottom: .4rem; }
.idp-footer-bar a{ text-decoration:none; }
.idp-footer-bar a:hover{ text-decoration:underline; }

/* Navigation style: underline */
.wp-block-navigation.is-style-idp-underline .wp-block-navigation-item__content{
  border-radius: 0;
  padding: .35rem .25rem;
  background: transparent;
  box-shadow: none;
  transform: none;
  position: relative;
}
.wp-block-navigation.is-style-idp-underline .wp-block-navigation-item__content::after{
  content:"";
  position:absolute;
  left: .25rem;
  right: .25rem;
  bottom: .18rem;
  height: 2px;
  border-radius: 999px;
  opacity: 0;
  transform: scaleX(.6);
  transform-origin: center;
  background: var(--idpbd-accent, var(--wp--preset--color--idp-cyan, #0ea5e9));
  transition: opacity .16s ease, transform .16s ease;
}
.wp-block-navigation.is-style-idp-underline .wp-block-navigation-item__content:hover::after{ opacity: 1; transform: scaleX(1); }
.wp-block-navigation.is-style-idp-underline .wp-block-navigation-item__content[aria-current="page"]::after,
.wp-block-navigation.is-style-idp-underline .current-menu-item > .wp-block-navigation-item__content::after{ opacity: 1; transform: scaleX(1); }

/* Navigation style: glow-active */
.wp-block-navigation.is-style-idp-glow .wp-block-navigation-item__content[aria-current="page"],
.wp-block-navigation.is-style-idp-glow .current-menu-item > .wp-block-navigation-item__content{
  background: rgba(14,165,233,.14);
  border: 1px solid rgba(14,165,233,.20);
  box-shadow: 0 14px 40px rgba(14,165,233,.18);
}

/* Classic menu active state */
.idpbd-classic-menu .current-menu-item > a,
.idpbd-classic-menu .current_page_item > a{
  background: rgba(14,165,233,.12);
  border: 1px solid rgba(14,165,233,.18);
  box-shadow: 0 14px 40px rgba(14,165,233,.16);
}

/* Mobile: turn WP Navigation overlay into a clean right-side drawer */
@media (max-width: 782px){
  body.idp-nav-open{ overflow: hidden; }

  .idp-nav--drawer.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open{
    display: block;
    padding: 0;
    background: rgba(8,12,22,.65);
  }

  .idp-nav--drawer.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog{
    position: fixed;
    top: 0;
    right: 0;
    height: 100vh;
    width: min(360px, 86vw);
    margin: 0;
    border-radius: 0;
    border-left: 1px solid rgba(255,255,255,.10);
    background: rgba(12,16,28,.96);
    box-shadow: 0 30px 80px rgba(0,0,0,.45);
    padding: 18px;
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    animation: idp-drawer-in .16s ease both;
  }

  .idp-nav--drawer.wp-block-navigation .wp-block-navigation__responsive-container-content{
    height: calc(100vh - 36px);
    overflow: auto;
    padding-top: 10px;
  }

  .idp-nav--drawer.wp-block-navigation .wp-block-navigation-item__content{
    font-size: 1.1rem;
    padding: .75rem .9rem;
    border-radius: 14px;
  }
}

@keyframes idp-drawer-in{
  from{ transform: translateX(20px); opacity: .9; }
  to{ transform: translateX(0); opacity: 1; }
}

/* ============================================================
   IDPBD v2.5.26 – Header/Footer premium pass
   - Dark mode header/footer glass
   - Optional hero overlay header
   - Compact-on-scroll support
   ============================================================ */

/* Compact header on scroll (JS adds .is-compact) */
.idp-header-shell.is-compact .idp-boxed-bar{
  padding-top: .75rem;
  padding-bottom: .75rem;
}
.idp-header-shell.is-compact .wp-block-navigation-item__content{
  padding-top: .45rem;
  padding-bottom: .45rem;
}

/* Optional hero overlay (JS adds body.idp-header-overlay + header.idp-header--overlay) */
body.idp-header-overlay .idp-header-shell.idp-header--overlay{
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  background: transparent;
  border: 0;
  margin: 0;
  z-index: 9999;
}
body.idp-header-overlay .idp-header-shell.idp-header--overlay .idp-boxed-bar{
  background: rgba(12,16,28,.35);
  border-color: rgba(255,255,255,.14);
}
body.idp-header-overlay .idp-header-shell.idp-header--overlay.is-scrolled .idp-boxed-bar{
  background: rgba(12,16,28,.70);
  border-color: rgba(255,255,255,.18);
  box-shadow: 0 28px 90px rgba(0,0,0,.45);
}

/* Give hero sections breathing room when header overlays */
body.idp-header-overlay .idp-agency-hero,
body.idp-header-overlay .idpwb-hero-dark{
  padding-top: calc(var(--idp-section-pad-y, 3rem) + 72px);
}

/* Dark mode: header/footer should be glass, not white */
body.idpwb-dark .idp-boxed-bar{
  background: rgba(12,16,28,.62);
  border-color: rgba(255,255,255,.12);
  box-shadow: 0 26px 80px rgba(0,0,0,.40);
}
body.idpwb-dark .idp-header-shell{ border-bottom: 0; background: transparent; }
body.idpwb-dark .idp-header-shell .wp-block-site-title,
body.idpwb-dark .idp-header-shell .wp-block-site-title a{
  color: rgba(255,255,255,.92);
}
body.idpwb-dark .idp-header-shell .wp-block-navigation-item__content{
  color: rgba(255,255,255,.86);
}
body.idpwb-dark .idp-header-shell .wp-block-navigation-item__content:hover{
  background: rgba(255,255,255,.08);
  box-shadow: none;
}
body.idpwb-dark .idp-footer-shell{ background: transparent; }
body.idpwb-dark .idp-footer-shell .idp-footer-note,
body.idpwb-dark .idp-footer-shell a{ color: rgba(255,255,255,.78); }
body.idpwb-dark .idp-footer-shell a:hover{ color: rgba(255,255,255,.92); }

/* Active/current nav indicators */
:where(.wp-block-navigation-item.current-menu-item > a,
       .wp-block-navigation-item.current_page_item > a,
       .idpbd-classic-menu .current-menu-item > a,
       .idpbd-classic-menu .current_page_item > a){
  background: rgba(37,99,235,.10);
  box-shadow: inset 0 0 0 1px rgba(37,99,235,.22);
}
body.idpwb-dark :where(.wp-block-navigation-item.current-menu-item > a,
       .wp-block-navigation-item.current_page_item > a,
       .idpbd-classic-menu .current-menu-item > a,
       .idpbd-classic-menu .current_page_item > a){
  background: rgba(255,255,255,.10);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.18);
}

/* ============================================================
   IDPBD v2.5.27 – Premium footer base + mega menu polish
   - Gradient floor + subtle noise
   - Social row + tighter link rhythm
   ============================================================ */

/* Premium footer floor (works for template-part footers and pattern footers) */
.idp-footer-floor,
.idp-footer-grid{
  position: relative;
  overflow: hidden;
}

.idp-footer-floor::before,
.idp-footer-grid::before{
  content: "";
  position: absolute;
  inset: -2px;
  pointer-events: none;
  opacity: 1;
  background:
    radial-gradient(900px 520px at 18% 18%, rgba(37,99,235,.10), transparent 60%),
    radial-gradient(880px 520px at 82% 12%, rgba(99,102,241,.10), transparent 58%),
    radial-gradient(1100px 640px at 50% 120%, rgba(14,165,233,.10), transparent 62%),
    linear-gradient(180deg, rgba(2,6,23,0) 0%, rgba(2,6,23,.20) 40%, rgba(2,6,23,.42) 100%);
}

/* Noise overlay using the theme’s SVG noise tile */
.idp-footer-floor::after,
.idp-footer-grid::after{
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .10;
  background-image: var(--idp-noise-svg);
  background-size: 220px 220px;
  mix-blend-mode: overlay;
}

.idp-footer-floor > *,
.idp-footer-grid > *{
  position: relative;
  z-index: 1;
}

/* Footer inner bar: looks premium in dark + light */
.idp-footer-bar{
  position: relative;
}

.idp-footer-top{
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
}

.idp-footer-top .idp-footer-brand{
  display: flex;
  align-items: center;
  gap: 12px;
}

/* Social links: pill icons, subtle hover */
.idp-footer-social{ margin: 0; }
.idp-footer-social.wp-block-social-links{
  gap: 10px;
}

.idp-footer-social .wp-social-link{
  border-radius: 999px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.10);
  transition: transform .18s ease, background-color .18s ease, border-color .18s ease;
}

.idp-footer-social .wp-social-link:hover{
  transform: translateY(-2px);
  background: rgba(255,255,255,.10);
  border-color: rgba(255,255,255,.16);
}

/* Link system: tighter rhythm, no bullets, better hover */
.idp-footer-links{
  list-style: none;
  padding-left: 0;
  margin: 0;
}
.idp-footer-links li{ margin: .35rem 0; }
.idp-footer-links a{ text-decoration: none; opacity: .88; }
.idp-footer-links a:hover{ opacity: 1; text-decoration: underline; }

/* Footer nav block (if used) */
.idp-footer-nav :where(.wp-block-navigation-item__content){
  padding: .35rem 0;
  text-decoration: none;
}

/* Bottom/legal row */
.idp-footer-bottom{
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}

.idp-footer-legal{
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  align-items: center;
}

.idp-footer-legal a{ text-decoration: none; opacity: .82; }
.idp-footer-legal a:hover{ opacity: 1; text-decoration: underline; }

/* Dark mode: richer floor and clearer text */
body.idpwb-dark .idp-footer-floor::before,
body.idpwb-dark .idp-footer-grid::before{
  background:
    radial-gradient(900px 520px at 18% 18%, rgba(37,99,235,.16), transparent 60%),
    radial-gradient(880px 520px at 82% 12%, rgba(99,102,241,.14), transparent 58%),
    radial-gradient(1100px 640px at 50% 120%, rgba(14,165,233,.16), transparent 62%),
    linear-gradient(180deg, rgba(2,6,23,0) 0%, rgba(2,6,23,.34) 45%, rgba(2,6,23,.72) 100%);
}

body.idpwb-dark .idp-footer-shell .idp-footer-note{ opacity: .78; }

/* Light mode: keep it subtle */
body:not(.idpwb-dark) .idp-footer-floor::before,
body:not(.idpwb-dark) .idp-footer-grid::before{
  background:
    radial-gradient(900px 520px at 18% 18%, rgba(37,99,235,.06), transparent 60%),
    radial-gradient(880px 520px at 82% 12%, rgba(99,102,241,.05), transparent 58%),
    radial-gradient(1100px 640px at 50% 120%, rgba(14,165,233,.06), transparent 62%),
    linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(15,23,42,.03) 40%, rgba(15,23,42,.06) 100%);
}



/* ============================================================
   IDP Theme v2.6.0 – standalone rebuild + readability hardening
   - Dark premium baseline for clean_black mode
   - Auto dark-surface text contrast
   - Better footer/header readability and alignment
   ============================================================ */

body.idpbd-mode-clean_black{
  --idp-page-bg: transparent;
}

body.idpbd-mode-clean_black .idp-header-shell{
  border-bottom-color: rgba(255,255,255,.08);
}

body.idpbd-mode-clean_black .idp-boxed-bar{
  background: rgba(6,11,24,.72);
  border-color: rgba(255,255,255,.10);
  box-shadow: 0 26px 90px rgba(0,0,0,.38);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

body.idpbd-mode-clean_black .idp-header-shell .wp-block-navigation-item__content:hover{
  background: rgba(255,255,255,.08);
}

body.idpbd-mode-clean_black .idp-card,
body.idpbd-mode-clean_black .is-style-idp-card,
body.idpbd-mode-clean_black .idp-panel,
body.idpbd-mode-clean_black .idp-outline,
body.idpbd-mode-clean_black .idp-faq{
  background: rgba(9,15,34,.62);
  border-color: rgba(255,255,255,.08);
  box-shadow: 0 18px 60px rgba(0,0,0,.30);
}

.idp-dark-surface,
.idp-dark-surface :where(h1,h2,h3,h4,h5,h6,p,li,dt,dd,label,legend,figcaption,blockquote,cite,summary,strong,small,span){
  color: rgba(255,255,255,.94);
}

.idp-dark-surface .idp-muted,
.idp-dark-surface :where(.idp-muted,.has-text-color.idp-muted){
  color: rgba(255,255,255,.72) !important;
}

.idp-dark-surface a,
.idp-dark-surface .wp-element-caption{
  color: #7dd3fc;
}

.idp-dark-surface a:hover{
  color: #bae6fd;
}

.idp-dark-surface .wp-block-button.is-style-outline .wp-block-button__link,
.idp-dark-surface .wp-block-button.is-style-idp-outline .wp-block-button__link,
.idp-dark-surface .wp-block-button.is-style-idp-outline-dark .wp-block-button__link{
  border-color: rgba(255,255,255,.18);
  color: rgba(255,255,255,.94);
}

.idp-dark-surface .wp-block-separator{
  border-color: rgba(255,255,255,.12);
}

.idp-footer-shell,
.idp-footer-shell .wp-block-site-title a,
.idp-footer-shell h4,
.idp-footer-shell p,
.idp-footer-shell li,
.idp-footer-shell a,
.idp-footer-shell .wp-block-navigation-item__content{
  color: rgba(255,255,255,.90);
}

.idp-footer-shell .idp-footer-note{
  opacity: .84;
}

.idp-footer-shell .idp-boxed-bar{
  padding-top: clamp(1.25rem, 2.5vw, 1.75rem);
  padding-bottom: clamp(1.25rem, 2.5vw, 1.75rem);
}

.idp-footer-bar .wp-block-columns{
  align-items: start;
}

.idp-footer-bar .wp-block-column{
  min-width: 0;
}

.idp-footer-bar .wp-block-site-title,
.idp-footer-top .wp-block-site-title{
  margin: 0;
}

.idp-footer-links a,
.idp-footer-legal a,
.idp-footer-note a{
  text-underline-offset: 0.18em;
}

.idp-surface-lift{
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.idp-surface-lift:hover{
  transform: translateY(-3px);
  box-shadow: 0 22px 70px rgba(0,0,0,.28);
  border-color: rgba(125,211,252,.24);
}

@media (max-width: 900px){
  .idp-footer-bottom,
  .idp-footer-legal,
  .idp-footer-top{
    align-items: flex-start;
  }

  .idp-footer-shell .idp-boxed-bar{
    border-radius: 18px;
  }
}


/* ============================================================
   IDP Theme v2.6.2 – real cleanup pass
   - readable text on dark content rows
   - equal-height Gutenberg cards
   - stronger footer/header contrast
   ============================================================ */

body.idpbd-mode-clean_black{
  --idp-clean-text: rgba(255,255,255,.94);
  --idp-clean-muted: rgba(255,255,255,.74);
  --idp-clean-border: rgba(255,255,255,.12);
  --idp-clean-card-bg: linear-gradient(180deg, rgba(11,18,40,.86), rgba(6,12,28,.78));
  --idp-clean-card-shadow: 0 24px 72px rgba(0,0,0,.34);
}

body.idpbd-mode-clean_black .wp-site-blocks,
body.idpbd-mode-clean_black main,
body.idpbd-mode-clean_black .wp-block-post-content{
  color: var(--idp-clean-text);
}

body.idpbd-mode-clean_black :where(main, .wp-block-post-content) :where(h1,h2,h3,h4,h5,h6,p,li,dt,dd,figcaption,blockquote,cite,label,legend,summary,strong,small){
  color: inherit;
}

body.idpbd-mode-clean_black :where(main, .wp-block-post-content) :where(.idp-card,.is-style-idp-card,.idp-panel,.idp-outline,.idp-faq,.idp-tile,.idp-quote,.idp-logo-chip,.wp-block-group.has-background,.wp-block-column.has-background,.wp-block-cover){
  color: var(--idp-clean-text);
}

body.idpbd-mode-clean_black :where(main, .wp-block-post-content) :where(.idp-card,.is-style-idp-card,.idp-panel,.idp-outline,.idp-faq,.idp-tile,.idp-quote,.idp-logo-chip,.wp-block-group.has-background,.wp-block-column.has-background,.wp-block-cover) :where(h1,h2,h3,h4,h5,h6,p,li,dt,dd,figcaption,blockquote,cite,label,legend,summary,strong,small,span){
  color: inherit !important;
}

body.idpbd-mode-clean_black :where(main, .wp-block-post-content) :where(.idp-muted,.idp-microcopy,.wp-element-caption){
  color: var(--idp-clean-muted) !important;
}

body.idpbd-mode-clean_black .idp-card,
body.idpbd-mode-clean_black .is-style-idp-card,
body.idpbd-mode-clean_black .idp-panel,
body.idpbd-mode-clean_black .idp-outline,
body.idpbd-mode-clean_black .idp-faq,
body.idpbd-mode-clean_black .idp-tile,
body.idpbd-mode-clean_black .idp-quote,
body.idpbd-mode-clean_black .idp-logo-chip,
body.idpbd-mode-clean_black .wp-block-group.has-background,
body.idpbd-mode-clean_black .wp-block-column.has-background{
  background: var(--idp-clean-card-bg) !important;
  border-color: var(--idp-clean-border) !important;
  box-shadow: var(--idp-clean-card-shadow) !important;
}

body.idpbd-mode-clean_black .idp-card::before{
  content: none !important;
}

body.idpbd-mode-clean_black .idp-bento-item{
  min-height: 100%;
}

body.idpbd-mode-clean_black .idp-boxed-bar,
body.idpbd-mode-clean_black .idp-header-shell .idp-boxed-bar,
body.idpbd-mode-clean_black .idp-footer-shell .idp-boxed-bar{
  color: var(--idp-clean-text);
  background: linear-gradient(180deg, rgba(7,14,30,.84), rgba(4,10,24,.78)) !important;
  border-color: var(--idp-clean-border) !important;
  box-shadow: 0 28px 88px rgba(0,0,0,.38) !important;
}

body.idpbd-mode-clean_black .idp-header-shell .wp-block-site-title a,
body.idpbd-mode-clean_black .idp-header-shell .wp-block-navigation-item__content,
body.idpbd-mode-clean_black .idp-footer-shell,
body.idpbd-mode-clean_black .idp-footer-shell :where(h1,h2,h3,h4,h5,h6,p,li,a,span,strong,.wp-block-navigation-item__content){
  color: var(--idp-clean-text) !important;
}

body.idpbd-mode-clean_black .idp-footer-shell .idp-footer-note,
body.idpbd-mode-clean_black .idp-footer-shell .idp-muted{
  color: var(--idp-clean-muted) !important;
}

body.idpbd-mode-clean_black .wp-block-button.is-style-idp-outline-dark .wp-block-button__link,
body.idpbd-mode-clean_black .wp-block-button.is-style-idp-outline .wp-block-button__link,
body.idpbd-mode-clean_black .wp-block-button.is-style-outline .wp-block-button__link{
  background: rgba(255,255,255,.03) !important;
  border: 1px solid rgba(255,255,255,.18) !important;
  color: var(--idp-clean-text) !important;
  box-shadow: none !important;
}

body.idpbd-mode-clean_black .wp-block-button.is-style-idp-outline-dark .wp-block-button__link:hover,
body.idpbd-mode-clean_black .wp-block-button.is-style-idp-outline .wp-block-button__link:hover,
body.idpbd-mode-clean_black .wp-block-button.is-style-outline .wp-block-button__link:hover{
  background: rgba(255,255,255,.07) !important;
  border-color: rgba(255,255,255,.28) !important;
}

body.idpbd-mode-clean_black .wp-block-separator,
body.idpbd-mode-clean_black .idp-rule{
  border-color: rgba(255,255,255,.12) !important;
}

body.idpbd-mode-clean_black :where(main, .wp-block-post-content) .wp-block-columns.idp-auto-equal-cards,
body.idpbd-mode-clean_black :where(main, .wp-block-post-content) .wp-block-columns:has(> .wp-block-column > :is(.idp-card,.is-style-idp-card,.idp-tile,.idp-panel,.idp-outline,.wp-block-group.idp-card,.wp-block-group.is-style-idp-card)){
  align-items: stretch !important;
}

body.idpbd-mode-clean_black :where(main, .wp-block-post-content) .wp-block-columns.idp-auto-equal-cards > .wp-block-column,
body.idpbd-mode-clean_black :where(main, .wp-block-post-content) .wp-block-columns:has(> .wp-block-column > :is(.idp-card,.is-style-idp-card,.idp-tile,.idp-panel,.idp-outline,.wp-block-group.idp-card,.wp-block-group.is-style-idp-card)) > .wp-block-column{
  display: flex;
  flex-direction: column;
}

body.idpbd-mode-clean_black :where(main, .wp-block-post-content) .wp-block-columns.idp-auto-equal-cards > .wp-block-column > :is(.idp-card,.is-style-idp-card,.idp-tile,.idp-panel,.idp-outline,.wp-block-group.idp-card,.wp-block-group.is-style-idp-card),
body.idpbd-mode-clean_black :where(main, .wp-block-post-content) .wp-block-columns:has(> .wp-block-column > :is(.idp-card,.is-style-idp-card,.idp-tile,.idp-panel,.idp-outline,.wp-block-group.idp-card,.wp-block-group.is-style-idp-card)) > .wp-block-column > :is(.idp-card,.is-style-idp-card,.idp-tile,.idp-panel,.idp-outline,.wp-block-group.idp-card,.wp-block-group.is-style-idp-card){
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  justify-content: flex-start;
  height: 100%;
}

body.idpbd-mode-clean_black :where(main, .wp-block-post-content) .wp-block-columns > .wp-block-column{
  min-width: 0;
}

body.idpbd-mode-clean_black :where(main, .wp-block-post-content) a{
  color: #7dd3fc;
}

body.idpbd-mode-clean_black :where(main, .wp-block-post-content) a:hover{
  color: #bae6fd;
}

body.idpbd-mode-clean_black .idp-bento-icon{
  box-shadow: 0 18px 54px rgba(37,99,235,.32);
}

@media (max-width: 900px){
  body.idpbd-mode-clean_black .idp-boxed-bar{
    border-radius: 18px;
  }
}


/* ===============================
   IDP Theme v2.6.3 – real body shell + stacked-card alignment
   - keep post content full width so inner shells match header width
   - add boxed inner body shell on full-width sections
   - force right-column stacked cards to share the same left edge/width
   =============================== */

/* Let page/post content span full width; constrain children intentionally instead of constraining the wrapper */
.wp-block-post-content,
main .wp-block-post-content,
main.wp-block-post-content{
  width: 100%;
  max-width: none !important;
  margin-left: 0;
  margin-right: 0;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box;
}

/* Default content remains readable */
.wp-block-post-content > :where(:not(.alignfull):not(.alignwide)){
  max-width: var(--wp--style--global--content-size, 1200px);
  margin-left: auto;
  margin-right: auto;
  padding-left: clamp(1rem, 3vw, 2rem);
  padding-right: clamp(1rem, 3vw, 2rem);
  box-sizing: border-box;
}

/* Wide/full sections now use the same shell width as the header */
.wp-block-post-content > .alignwide,
.wp-block-post-content > .wp-block-group.alignwide{
  max-width: var(--idp-shell-max) !important;
  margin-left: auto;
  margin-right: auto;
}

.wp-block-post-content > .alignfull > .alignwide,
.wp-block-post-content > .wp-block-group.alignfull > .alignwide,
.wp-block-post-content > .alignfull > .wp-block-group.alignwide,
.wp-block-post-content > .wp-block-group.alignfull > .wp-block-group.alignwide{
  max-width: var(--idp-shell-max) !important;
  margin-left: auto;
  margin-right: auto;
  border-radius: var(--idp-shell-radius);
  overflow: clip;
}

/* Give the main body shell the same edge rhythm as the boxed header/footer */
.wp-block-post-content > .alignfull,
.wp-block-post-content > .wp-block-group.alignfull{
  padding-left: var(--idp-shell-pad-x);
  padding-right: var(--idp-shell-pad-x);
  box-sizing: border-box;
}

/* Do not crush full-bleed covers/sliders nested inside the content */
.wp-block-post-content > .alignfull .alignfull,
.wp-block-post-content > .wp-block-group.alignfull .alignfull{
  width: calc(100vw - var(--idp-scrollbar)) !important;
  max-width: calc(100vw - var(--idp-scrollbar)) !important;
  margin-left: calc(50% - 50vw + (var(--idp-scrollbar) / 2)) !important;
  margin-right: calc(50% - 50vw + (var(--idp-scrollbar) / 2)) !important;
}

/* Columns: let direct group children actually fill the column */
.wp-block-column > .wp-block-group,
.wp-block-column > .wp-block-cover,
.wp-block-column > .wp-block-group.has-background,
.wp-block-column > .is-style-idp-card,
.wp-block-column > .idp-card{
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  box-sizing: border-box;
}

/* Hero/right-column stacked cards should share the same left edge */
.idp-agency-hero .wp-block-columns,
.wp-block-post-content > .alignfull:first-child .wp-block-columns{
  align-items: stretch;
}

.idp-agency-hero .wp-block-column:last-child,
.wp-block-post-content > .alignfull:first-child .wp-block-columns > .wp-block-column:last-child{
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
}

.idp-agency-hero .wp-block-column:last-child > *,
.wp-block-post-content > .alignfull:first-child .wp-block-columns > .wp-block-column:last-child > *{
  width: 100%;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  align-self: stretch;
}

.idp-agency-hero .wp-block-column:last-child .idp-card,
.idp-agency-hero .wp-block-column:last-child .is-style-idp-card,
.idp-agency-hero .wp-block-column:last-child .is-style-idp-glass,
.wp-block-post-content > .alignfull:first-child .wp-block-columns > .wp-block-column:last-child .idp-card,
.wp-block-post-content > .alignfull:first-child .wp-block-columns > .wp-block-column:last-child .is-style-idp-card,
.wp-block-post-content > .alignfull:first-child .wp-block-columns > .wp-block-column:last-child .is-style-idp-glass{
  width: 100%;
  max-width: none !important;
}

@media (max-width: 900px){
  .wp-block-post-content > .alignfull,
  .wp-block-post-content > .wp-block-group.alignfull{
    padding-left: 1rem;
    padding-right: 1rem;
  }
}


/* ============================================================
   IDP Theme v2.6.4 – boxed hero width + header-width shell match
   - Keep agency hero/CTA boxed, not full-bleed
   - Match shell width to header boxed bar
   - Preserve rounded corners and internal padding
   ============================================================ */

.idp-agency-hero.alignfull,
.idp-agency-cta.alignfull{
  width: min(calc(100% - (2 * var(--idp-shell-pad-x))), var(--idp-shell-max));
  max-width: var(--idp-shell-max);
  margin-left: auto !important;
  margin-right: auto !important;
  border-radius: var(--idp-shell-radius);
  overflow: hidden;
}

.idp-agency-hero.alignfull > .alignwide,
.idp-agency-cta.alignfull > .alignwide{
  width: 100%;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: var(--idp-shell-pad-x);
  padding-right: var(--idp-shell-pad-x);
  box-sizing: border-box;
}

.idp-agency-hero.alignfull > .alignwide > .wp-block-columns,
.idp-agency-cta.alignfull > .alignwide > .wp-block-columns{
  width: 100%;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

@media (max-width: 781px){
  .idp-agency-hero.alignfull,
  .idp-agency-cta.alignfull{
    width: min(calc(100% - 1.25rem), var(--idp-shell-max));
  }
}


/* ============================================================
   IDP Theme v2.6.5 – real nested section shell fix + KPI cleanup
   - saved homepage sections inside a wrapper now box correctly
   - hero/logos/services bands match the header shell width
   - KPI rows/cards get cleaner structure and equal heights
   ============================================================ */

/* When a saved front page wraps sections in one outer alignfull group,
   keep inner IDP sections boxed instead of letting the generic nested
   .alignfull rule blow them back out to full bleed. */
.wp-block-post-content > .alignfull > .alignfull.idp-section,
.wp-block-post-content > .wp-block-group.alignfull > .alignfull.idp-section,
.wp-block-post-content > .alignfull > .wp-block-group.alignfull.idp-section,
.wp-block-post-content > .wp-block-group.alignfull > .wp-block-group.alignfull.idp-section{
  width: min(calc(100% - (2 * var(--idp-shell-pad-x))), var(--idp-shell-max)) !important;
  max-width: var(--idp-shell-max) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  border-radius: var(--idp-shell-radius);
  overflow: hidden;
  box-sizing: border-box;
}

.wp-block-post-content > .alignfull > .alignfull.idp-section > .alignwide,
.wp-block-post-content > .wp-block-group.alignfull > .alignfull.idp-section > .alignwide,
.wp-block-post-content > .alignfull > .wp-block-group.alignfull.idp-section > .alignwide,
.wp-block-post-content > .wp-block-group.alignfull > .wp-block-group.alignfull.idp-section > .alignwide,
.wp-block-post-content > .alignfull > .alignfull.idp-section > .wp-block-group.alignwide,
.wp-block-post-content > .wp-block-group.alignfull > .alignfull.idp-section > .wp-block-group.alignwide,
.wp-block-post-content > .alignfull > .wp-block-group.alignfull.idp-section > .wp-block-group.alignwide,
.wp-block-post-content > .wp-block-group.alignfull > .wp-block-group.alignfull.idp-section > .wp-block-group.alignwide{
  width: 100%;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: var(--idp-shell-pad-x);
  padding-right: var(--idp-shell-pad-x);
  box-sizing: border-box;
}

.wp-block-post-content > .alignfull > .alignfull.idp-section > :is(.alignwide,.wp-block-group.alignwide) > .wp-block-columns,
.wp-block-post-content > .wp-block-group.alignfull > .alignfull.idp-section > :is(.alignwide,.wp-block-group.alignwide) > .wp-block-columns,
.wp-block-post-content > .alignfull > .wp-block-group.alignfull.idp-section > :is(.alignwide,.wp-block-group.alignwide) > .wp-block-columns,
.wp-block-post-content > .wp-block-group.alignfull > .wp-block-group.alignfull.idp-section > :is(.alignwide,.wp-block-group.alignwide) > .wp-block-columns{
  width: 100%;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Tighten the shared homepage rhythm between hero, trust strip, and KPI rows. */
.wp-block-post-content .idp-agency-hero{
  padding-top: clamp(2rem, 4.4vw, 3.5rem) !important;
  padding-bottom: clamp(2rem, 4.4vw, 3.2rem) !important;
}

.wp-block-post-content .idp-agency-logos{
  padding-top: clamp(1rem, 2.4vw, 1.5rem) !important;
  padding-bottom: clamp(1rem, 2.4vw, 1.5rem) !important;
}

/* KPI / short-stat rows: cleaner alignment and equal-height tiles. */
body.idpbd-mode-clean_black :where(main, .wp-block-post-content) .wp-block-columns.idp-auto-equal-cards{
  align-items: stretch !important;
}

body.idpbd-mode-clean_black :where(main, .wp-block-post-content) .wp-block-columns.idp-auto-equal-cards > .wp-block-column > :is(.idp-card,.is-style-idp-card,.idp-tile,.idp-panel,.idp-outline,.wp-block-group.idp-card,.wp-block-group.is-style-idp-card){
  padding: clamp(1.1rem, 2vw, 1.45rem) !important;
}

body.idpbd-mode-clean_black :where(main, .wp-block-post-content) .wp-block-columns.idp-auto-equal-cards > .wp-block-column > :is(.idp-card,.is-style-idp-card,.idp-tile,.idp-panel,.idp-outline,.wp-block-group.idp-card,.wp-block-group.is-style-idp-card) :where(h1,h2,h3,h4){
  margin-top: 0;
  margin-bottom: .45rem;
}

body.idpbd-mode-clean_black :where(main, .wp-block-post-content) .wp-block-columns.idp-auto-equal-cards > .wp-block-column > :is(.idp-card,.is-style-idp-card,.idp-tile,.idp-panel,.idp-outline,.wp-block-group.idp-card,.wp-block-group.is-style-idp-card) p:last-child{
  margin-bottom: 0;
}

/* Better mobile shell matching. */
@media (max-width: 781px){
  .wp-block-post-content > .alignfull > .alignfull.idp-section,
  .wp-block-post-content > .wp-block-group.alignfull > .alignfull.idp-section,
  .wp-block-post-content > .alignfull > .wp-block-group.alignfull.idp-section,
  .wp-block-post-content > .wp-block-group.alignfull > .wp-block-group.alignfull.idp-section{
    width: min(calc(100% - 1.25rem), var(--idp-shell-max)) !important;
  }
}


/* ============================================================
   IDP Theme v2.6.8 – dark header band for clean homepage shell
   - make the full-width area behind the boxed nav dark
   - keep the boxed menu floating inside a matching top band
   - leave page content control to the page itself
   ============================================================ */
body.idpbd-mode-clean_black .idp-header-shell{
  background:
    radial-gradient(900px 420px at 18% 8%, rgba(59,130,246,.18), transparent 60%),
    radial-gradient(860px 360px at 82% 20%, rgba(14,165,233,.14), transparent 62%),
    linear-gradient(180deg,#040814 0%, #071120 58%, #06101d 100%) !important;
  border-bottom: 1px solid rgba(255,255,255,.06) !important;
}
body.idpbd-mode-clean_black .wp-site-blocks > header + main,
body.idpbd-mode-clean_black .wp-site-blocks > header + .wp-block-group,
body.idpbd-mode-clean_black .wp-site-blocks > header + .wp-block-post-content{
  background: transparent !important;
}
body.idpbd-mode-clean_black .idp-header-shell .idp-boxed-bar{
  margin-top: .1rem;
  margin-bottom: .1rem;
}


/* ============================================================
   IDP Theme v2.6.10 – brand logo + hide title + robust sticky
   ============================================================ */
.idp-header-brand .wp-block-site-logo,
.idp-footer-brand .wp-block-site-logo{
  flex-shrink:0;
  line-height:0;
}
.idp-header-brand .wp-block-site-logo img,
.idp-footer-brand .wp-block-site-logo img{
  width:auto !important;
  height:auto !important;
  max-width:var(--idpbd-logo-width,168px) !important;
  max-height:76px !important;
  display:block;
}
.idp-footer-brand .wp-block-site-logo img{
  max-height:58px !important;
}
body.idpbd-hide-title-when-logo.idpbd-has-logo .idp-header-brand .wp-block-site-title,
body.idpbd-hide-title-when-logo.idpbd-has-logo .idp-footer-brand .wp-block-site-title,
body.idpbd-hide-title-when-logo.idpbd-has-logo .idp-footer-site-title{
  display:none !important;
}
body.idpbd-sticky-header header.wp-block-template-part{
  position:sticky;
  top:0;
  z-index:1001;
}
body.admin-bar.idpbd-sticky-header header.wp-block-template-part{ top:32px; }
@media (max-width:782px){
  body.admin-bar.idpbd-sticky-header header.wp-block-template-part{ top:46px; }
}
body.idpbd-sticky-header .idp-header-shell.idp-header--sticky{
  position:static;
  top:auto;
}
body.idpbd-sticky-header .idp-header-shell.is-scrolled .idp-boxed-bar{
  box-shadow:0 22px 70px rgba(0,0,0,.34);
}


/* ============================================================
   IDP Theme v2.6.11 – consistent page shells + sticky full-width header
   ============================================================ */
body.idpbd-mode-clean_black .wp-site-blocks > header.wp-block-template-part,
body.idpbd-mode-clean_black .wp-site-blocks > footer.wp-block-template-part{
  background: transparent;
}

body.idpbd-sticky-header .wp-site-blocks > header.wp-block-template-part,
body.idpbd-sticky-header .wp-site-blocks > .wp-block-template-part:has(.idp-header-shell){
  position: sticky !important;
  top: 0;
  z-index: 1100;
  display: block;
  width: 100%;
}
body.admin-bar.idpbd-sticky-header .wp-site-blocks > header.wp-block-template-part,
body.admin-bar.idpbd-sticky-header .wp-site-blocks > .wp-block-template-part:has(.idp-header-shell){
  top: 32px;
}
@media (max-width:782px){
  body.admin-bar.idpbd-sticky-header .wp-site-blocks > header.wp-block-template-part,
  body.admin-bar.idpbd-sticky-header .wp-site-blocks > .wp-block-template-part:has(.idp-header-shell){
    top: 46px;
  }
}
body.idpbd-sticky-header .idp-header-shell{
  position: relative !important;
  width: 100%;
  margin: 0 !important;
  z-index: 1;
}
body.idpbd-sticky-header .idp-header-shell .idp-boxed-bar{
  width: min(calc(100% - 2rem), var(--idp-shell-max));
  margin-left: auto;
  margin-right: auto;
}
body.idpbd-mode-clean_black .idp-header-shell{
  box-shadow: 0 18px 50px rgba(0,0,0,.18);
}

body.idpbd-mode-clean_black .idp-page-main{
  background:
    radial-gradient(900px 480px at 18% 10%, rgba(59,130,246,.16), transparent 62%),
    radial-gradient(820px 360px at 84% 24%, rgba(14,165,233,.13), transparent 62%),
    linear-gradient(180deg, #040814 0%, #06101d 54%, #071120 100%);
}
body.idpbd-mode-clean_black .idp-page-main + footer,
body.idpbd-mode-clean_black .idp-page-main + .wp-block-template-part{
  background: transparent;
}
body.idpbd-mode-clean_black .idp-page-shell{
  max-width: var(--idp-shell-max);
  margin-left: auto;
  margin-right: auto;
  border-radius: 26px;
  border: 1px solid rgba(255,255,255,.06);
  background:
    radial-gradient(640px 320px at 10% 10%, rgba(99,102,241,.18), transparent 62%),
    radial-gradient(540px 260px at 82% 78%, rgba(14,165,233,.11), transparent 64%),
    linear-gradient(180deg, rgba(4,8,20,.98) 0%, rgba(5,10,22,.98) 100%);
  box-shadow: 0 28px 90px rgba(0,0,0,.32);
}
body.idpbd-mode-clean_black .idp-page-title,
body.idpbd-mode-clean_black .idp-page-shell .wp-block-query-title,
body.idpbd-mode-clean_black .idp-page-shell h1{
  color: #f8fbff !important;
  font-size: clamp(2.35rem, 5vw, 4.5rem) !important;
  line-height: 1.02;
  letter-spacing: -.03em;
  margin-top: 0;
  margin-bottom: .9rem;
}
body.idpbd-mode-clean_black .idp-page-meta,
body.idpbd-mode-clean_black .idp-page-meta a,
body.idpbd-mode-clean_black .idp-page-shell .wp-block-post-date,
body.idpbd-mode-clean_black .idp-page-shell .wp-block-post-terms{
  color: rgba(226,232,240,.78) !important;
}
body.idpbd-mode-clean_black .idp-page-shell .wp-block-post-content,
body.idpbd-mode-clean_black .idp-page-shell .wp-block-query,
body.idpbd-mode-clean_black .idp-page-shell .wp-block-term-description{
  max-width: none;
  padding-left: 0;
  padding-right: 0;
  margin-left: 0;
  margin-right: 0;
}
body.idpbd-mode-clean_black .idp-page-shell .wp-block-post-content > :where(:not(.alignfull):not(.alignwide)){
  max-width: none;
}
body.idpbd-mode-clean_black .idp-page-shell .wp-block-post-content > :first-child,
body.idpbd-mode-clean_black .idp-page-shell .wp-block-query > :first-child{
  margin-top: 0;
}
body.idpbd-mode-clean_black .idp-page-shell .wp-block-post-content > :last-child,
body.idpbd-mode-clean_black .idp-page-shell .wp-block-query > :last-child{
  margin-bottom: 0;
}
body.idpbd-mode-clean_black .idp-page-shell .wp-block-search{
  margin-top: .75rem;
  margin-bottom: 1.25rem;
}
body.idpbd-mode-clean_black .idp-page-shell .wp-block-search__input,
body.idpbd-mode-clean_black .idp-page-shell input[type="search"]{
  background: rgba(10,18,34,.9);
  border: 1px solid rgba(255,255,255,.12);
  color: #f8fbff;
  border-radius: 999px;
}

body.idpbd-mode-clean_black .idp-page-main--404 .idp-404-search{
  margin-top: .9rem;
  margin-bottom: 1rem;
}
body.idpbd-mode-clean_black .idp-page-main--404 .idp-404-search .wp-block-search__inside-wrapper{
  gap: .75rem;
  border: 0;
  padding: 0;
}
body.idpbd-mode-clean_black .idp-page-main--404 .idp-404-search .wp-block-search__input,
body.idpbd-mode-clean_black .idp-page-main--404 .idp-404-search input[type="search"]{
  min-height: 54px;
  padding-inline: 1rem;
}
body.idpbd-mode-clean_black .idp-page-main--404 .idp-404-search .wp-block-search__button{
  min-height: 54px;
  padding: .85rem 1.25rem;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.16);
  background: var(--wp--preset--gradient--idp-sky, var(--wp--preset--gradient--ocean));
  color: #fff;
  box-shadow: 0 14px 34px rgba(37,99,235,.25);
  transition: transform .16s ease, filter .16s ease, box-shadow .16s ease;
}
body.idpbd-mode-clean_black .idp-page-main--404 .idp-404-search .wp-block-search__button:hover{
  transform: translateY(-2px);
  filter: brightness(1.02);
  box-shadow: 0 20px 55px rgba(37,99,235,.30);
}
body.idpbd-mode-clean_black .idp-page-main--404 .idp-404-actions{
  margin-bottom: 1.75rem;
}
@media (max-width: 640px){
  body.idpbd-mode-clean_black .idp-page-main--404 .idp-404-search .wp-block-search__inside-wrapper{
    flex-wrap: wrap;
  }
  body.idpbd-mode-clean_black .idp-page-main--404 .idp-404-search .wp-block-search__button{
    width: 100%;
    justify-content: center;
  }
}
body.idpbd-mode-clean_black .idp-page-shell .is-style-idp-card,
body.idpbd-mode-clean_black .idp-page-shell .idp-card,
body.idpbd-mode-clean_black .idp-page-shell .wp-block-group.has-background,
body.idpbd-mode-clean_black .idp-page-shell .wp-block-column.has-background{
  background: rgba(9,16,30,.82) !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  box-shadow: 0 18px 42px rgba(0,0,0,.22);
}
body.idpbd-mode-clean_black .idp-page-shell .wp-block-query-pagination{
  margin-top: 1.5rem;
}
body.idpbd-mode-clean_black .idp-page-shell .wp-block-button .wp-block-button__link{
  box-shadow: 0 14px 32px rgba(37,99,235,.24);
}
@media (max-width: 900px){
  body.idpbd-sticky-header .idp-header-shell .idp-boxed-bar{
    width: min(calc(100% - 1rem), var(--idp-shell-max));
  }
  body.idpbd-mode-clean_black .idp-page-shell{
    border-radius: 22px;
  }
}


/* Default header now uses the classic Primary Menu for predictable management */
.idp-header-main-nav{ flex-wrap: nowrap; }
.idp-header-main-nav > li > a{ white-space: nowrap; }
@media (max-width: 900px){
  .idp-header-right{ width:100%; justify-content:space-between; }
  .idp-header-main-nav{ gap: 10px; flex-wrap: wrap; }
}
@media (max-width: 640px){
  .idp-header-main-nav{ width:100%; justify-content:flex-start; }
  .idp-header-main-nav > li > a{ padding:.5rem .7rem; }
}


/* ============================================================
   IDP Theme v2.6.13 – page body card language
   - reusable rounded KPI cards inside standard pages
   - page-body sections that feel like the homepage
   ============================================================ */
body.idpbd-mode-clean_black .idp-page-shell .idp-page-section{
  border-radius: 24px;
  border: 1px solid rgba(255,255,255,.08);
  background:
    radial-gradient(520px 240px at 12% 14%, rgba(99,102,241,.12), transparent 62%),
    radial-gradient(480px 220px at 84% 82%, rgba(14,165,233,.10), transparent 62%),
    linear-gradient(180deg, rgba(7,13,28,.88) 0%, rgba(5,10,24,.82) 100%);
  box-shadow: 0 24px 72px rgba(0,0,0,.26);
  padding: clamp(1.15rem, 2.4vw, 1.6rem);
}
body.idpbd-mode-clean_black .idp-page-shell .idp-page-stack{
  display: grid;
  gap: clamp(1rem, 2vw, 1.35rem);
}
body.idpbd-mode-clean_black .idp-page-shell .idp-page-stack > *{
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
body.idpbd-mode-clean_black .idp-page-shell .idp-page-body-intro{
  color: rgba(226,232,240,.82);
  max-width: 72ch;
}
body.idpbd-mode-clean_black .idp-page-shell .idp-auto-equal-cards{
  align-items: stretch;
}
body.idpbd-mode-clean_black .idp-page-shell .idp-auto-equal-cards > .wp-block-column{
  display: flex;
}
body.idpbd-mode-clean_black .idp-page-shell .idp-auto-equal-cards > .wp-block-column > *{
  width: 100%;
}
body.idpbd-mode-clean_black .idp-page-shell .idp-kpi-card,
body.idpbd-mode-clean_black .idp-page-shell .is-style-idp-kpi-card{
  min-height: 100%;
  text-align: center;
  border-radius: 22px;
  border: 1px solid rgba(255,255,255,.09);
  background: linear-gradient(180deg, rgba(9,16,30,.92), rgba(6,12,26,.84)) !important;
  box-shadow: 0 18px 52px rgba(0,0,0,.24);
}
body.idpbd-mode-clean_black .idp-page-shell .idp-kpi-card .idp-kpi-label,
body.idpbd-mode-clean_black .idp-page-shell .is-style-idp-kpi-card .idp-kpi-label{
  margin: 0 0 .4rem;
  color: rgba(226,232,240,.70);
  font-size: .9rem;
}
body.idpbd-mode-clean_black .idp-page-shell .idp-kpi-card .idp-kpi-value,
body.idpbd-mode-clean_black .idp-page-shell .is-style-idp-kpi-card .idp-kpi-value{
  margin: 0;
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  line-height: 1.02;
  letter-spacing: -.03em;
}
body.idpbd-mode-clean_black .idp-page-shell .idp-section-title{
  margin-top: 0;
  margin-bottom: .45rem;
}
body.idpbd-mode-clean_black .idp-page-shell .idp-card-list{
  margin: 0;
  padding-left: 1.05rem;
}
@media (max-width: 900px){
  body.idpbd-mode-clean_black .idp-page-shell .idp-page-section{
    border-radius: 20px;
  }
}


/* ============================================================
   IDP Theme v2.6.16 – force full-width header band on WooCommerce pages
   ============================================================ */
body.woocommerce-page header.wp-block-template-part,
body.woocommerce header.wp-block-template-part,
body.woocommerce-page .wp-block-template-part:has(.idp-header-shell),
body.woocommerce .wp-block-template-part:has(.idp-header-shell){
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  left: auto !important;
  right: auto !important;
}
body.woocommerce-page .idp-header-shell,
body.woocommerce .idp-header-shell{
  width: 100% !important;
  max-width: none !important;
}
body.woocommerce-page .idp-header-shell .idp-boxed-bar,
body.woocommerce .idp-header-shell .idp-boxed-bar{
  width: min(calc(100% - 2rem), var(--idp-shell-max)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}


/* IDP Theme v2.6.17 – footer navigation cleanup */
.idp-footer-nav{
  display:block;
}
.idp-footer-nav .wp-block-navigation{
  display:block;
}
.idp-footer-nav .wp-block-navigation__container{
  display:block;
}
.idp-footer-nav .wp-block-navigation-item{
  display:block;
  width:100%;
  margin:0;
}
.idp-footer-nav .wp-block-navigation-item__content{
  display:inline-block;
  width:auto;
  padding:.22rem 0 !important;
  border:none !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  text-decoration:none;
  opacity:.88;
}
.idp-footer-nav .wp-block-navigation-item__content:hover{
  background:transparent !important;
  text-decoration:underline;
  opacity:1;
  transform:none;
}
.idp-footer-nav :where(.current-menu-item > .wp-block-navigation-item__content,
.current_page_item > .wp-block-navigation-item__content,
.current-page-ancestor > .wp-block-navigation-item__content,
.wp-block-navigation-item__content[aria-current="page"]){
  background:transparent !important;
  color:inherit !important;
  box-shadow:none !important;
  border:none !important;
  opacity:1;
}
.idp-footer-nav .wp-block-navigation-item__content::after{
  display:none !important;
}


/* ============================================================
   IDP Theme v2.6.20 – responsive classic header menu
   - restore real mobile behavior for the Appearance > Menus primary nav
   - convert desktop nav into a clean mobile dropdown under the boxed bar
   ============================================================ */
.idp-header-mobile-toggle{
  display:none;
  appearance:none;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.04);
  color:inherit;
  border-radius:16px;
  padding:.72rem .9rem;
  align-items:center;
  justify-content:center;
  gap:.7rem;
  min-height:50px;
  box-shadow:0 10px 24px rgba(0,0,0,.18);
}
.idp-header-mobile-toggle__icon{
  display:inline-flex;
  width:18px;
  height:14px;
  position:relative;
  flex-direction:column;
  justify-content:space-between;
}
.idp-header-mobile-toggle__icon span{
  display:block;
  height:2px;
  width:18px;
  border-radius:999px;
  background:currentColor;
  transform-origin:center;
  transition:transform .18s ease, opacity .18s ease;
}
.idp-header-mobile-toggle__label{ font-weight:700; letter-spacing:-.01em; }
.idp-header-bar.is-mobile-open .idp-header-mobile-toggle__icon span:nth-child(1){ transform:translateY(6px) rotate(45deg); }
.idp-header-bar.is-mobile-open .idp-header-mobile-toggle__icon span:nth-child(2){ opacity:0; }
.idp-header-bar.is-mobile-open .idp-header-mobile-toggle__icon span:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

@media (max-width: 900px){
  .idp-header-mobile-toggle{ display:inline-flex; margin-left:auto; }
  .idp-header-shell .idp-header-bar{
    position:relative;
    align-items:center !important;
    row-gap:0 !important;
  }
  .idp-header-shell .idp-header-brand{ flex:1 1 auto; min-width:0; }
  .idp-header-right{
    display:none !important;
    width:100%;
    flex-direction:column !important;
    align-items:stretch !important;
    justify-content:flex-start !important;
    gap:12px !important;
    padding-top:14px;
    margin-top:14px;
    border-top:1px solid rgba(255,255,255,.08);
  }
  .idp-header-bar.is-mobile-open .idp-header-right{ display:flex !important; }

  .idp-header-main-nav{
    width:100%;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:8px !important;
    flex-wrap:nowrap !important;
  }
  .idp-header-main-nav > li{
    width:100%;
  }
  .idp-header-main-nav > li > a{
    display:flex;
    width:100%;
    justify-content:flex-start;
    padding:.9rem 1rem !important;
    border-radius:16px;
    background:rgba(255,255,255,.04);
  }
  .idp-header-main-nav .sub-menu{
    position:static;
    display:block;
    min-width:0;
    padding:8px 0 0 14px;
    margin-top:6px;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
  .idp-header-main-nav .sub-menu li + li{ margin-top:6px; }
  .idp-header-main-nav .sub-menu a{
    padding:.7rem .85rem;
    background:rgba(255,255,255,.03);
  }

  .idp-header-right .wp-block-buttons,
  .idp-header-right .wp-block-button,
  .idp-header-right .wp-block-button__link{
    width:100%;
  }
  .idp-header-right .wp-block-buttons{ justify-content:stretch !important; }
  .idp-header-right .wp-block-button__link{ text-align:center; justify-content:center; }
}
