

/* 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%);
}

