/* Cambium polish v1 (staged 2026-11-09, NOT live). One file for the site-wide polish fixes from
   deliverables/seo/polish-audit-2026-11-09/FINDINGS.md. Each block names its finding ID.
   Blocks marked [NAV-CONFLICT] override rules in cambium-nav-active.css / cambium-services-mega.css /
   cambium-hero.css. Review them with whoever owns the nav files before going live. Better long-term
   home for those blocks is the owning file. */

/* P1-01 [NAV-CONFLICT] Header row: full wordmark, full CTA, no overlaps.
   Regression 2026-11-09: cambium-services-mega forced the logo box to 132px with overflow:hidden
   while the img stayed wider, clipping "Cambium Data" to "CambiumD.". Override that with higher
   specificity: logo keeps its natural width (height 28px → ~216px), flex-shrink:0, overflow visible.
   Reclaim space from nav item padding and section margins so the CTA label stays fully visible. */
@media (min-width:1025px){
  .home #main-header .site-branding,
  .home #main-header .site-branding a.brand,
  .home #masthead .site-branding,
  .home #masthead .site-branding a.brand,
  #main-header .site-branding,
  #main-header .site-branding a.brand,
  #main-header .site-branding a.brand.has-logo-image,
  #masthead .site-branding.site-brand-logo-only,
  #masthead .site-branding,
  #masthead .site-branding a.brand,
  #masthead a.brand.has-logo-image,
  #masthead #main-header .site-branding,
  #masthead #main-header .site-branding a.brand.has-logo-image{
    display:flex!important;
    align-items:center!important;
    width:auto!important;
    max-width:none!important;
    min-width:0!important;
    height:auto!important;
    overflow:visible!important;
    flex:0 0 auto!important;
    flex-shrink:0!important;
    background-size:contain!important;
    background-repeat:no-repeat!important;
    background-position:left center!important;
  }
  .home #main-header .site-branding img,
  .home #main-header .site-branding a.brand img,
  #main-header .site-branding img,
  #main-header .site-branding a.brand img,
  #masthead a.brand.has-logo-image img.custom-logo,
  #masthead a.brand.has-logo-image .custom-logo,
  #masthead #main-header .site-branding img.custom-logo{
    width:auto!important;
    max-width:none!important;
    min-width:0!important;
    height:28px!important;
    flex-shrink:0!important;
    overflow:visible!important;
    object-fit:contain!important;
    object-position:left center!important;
  }
  #masthead .site-header-item:has(a.brand.has-logo-image),
  #main-header .site-header-item:has(a.brand.has-logo-image),
  #masthead #main-header .site-header-item:has(a.brand.has-logo-image){
    max-width:none!important;
    width:auto!important;
    flex:0 0 auto!important;
    overflow:visible!important;
    flex-shrink:0!important;
  }
  #main-header .site-header-main-section-left,
  .home #main-header .site-header-main-section-left{
    max-width:none!important;
    overflow:visible!important;
    flex:0 0 auto!important;
    min-width:0!important;
  }
  #masthead .site-header-item-main-navigation,
  #main-header .site-header-item-main-navigation,
  .site-header-item-main-navigation{margin-left:20px!important}
  #main-header .site-header-main-section-right > .site-header-item{margin-left:12px!important}
  #main-header .site-header-main-section-right > .site-header-item-main-navigation{margin-left:20px!important}
  #main-header .primary-menu-container > ul > li > a,
  .home #main-header .header-navigation .header-menu-container > ul > li.menu-item > a{padding-left:9px!important;padding-right:9px!important}
  #main-header .header-button{padding-left:14px!important;padding-right:14px!important;white-space:nowrap!important}
  #main-header .header-html .cd-portal-txt{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  #main-header .header-html .cd-head-portal{padding-left:8px!important;padding-right:8px!important}
}
@media (min-width:1025px) and (max-width:1299px){
  #main-header .site-header-main-section-right{min-width:0}
  #main-header .header-button{white-space:nowrap}
  #main-header .primary-menu-container > ul > li > a,
  .home #main-header .header-navigation .header-menu-container > ul > li.menu-item > a{padding-left:7px!important;padding-right:7px!important;font-size:13.5px!important}
  #main-header .site-header-main-section-right > .site-header-item{margin-left:10px!important}
  #main-header .site-header-main-section-right > .site-header-item-main-navigation{margin-left:16px!important}
}

/* P1-02 [NAV-CONFLICT] Home: hovered/open top-level item shows navy text on the green pill (about 2.3:1).
   cambium-hero.css forces navy with !important; two IDs here beat it. */
@media (min-width:1025px){
  .home #main-header #primary-menu > li:is(:hover,.is-open,[data-open="true"]) > a,
  .home #main-header #primary-menu > li:is(:hover,.is-open,[data-open="true"]) > a *,
  .home #main-header #primary-menu:not(:has(> li:hover)):not(:has(> li.is-open)):not(:has(> li[data-open="true"])) > li > a:focus-visible,
  .home #main-header #primary-menu:not(:has(> li:hover)):not(:has(> li.is-open)):not(:has(> li[data-open="true"])) > li > a:focus-visible *{color:#fff!important}
}

/* P1-04 Open FAQ shows the text "2212" instead of a minus sign (missing backslash in the inline rd-css). */
body .rd-faq[open] > summary::after{content:"\2212"}

/* P1-05 Insights posts: block buttons render navy with blue underlined text (unreadable).
   Match the site primary CTA: green, white text, no underline. */
.ci-body .wp-block-button__link,
.ci-body .wp-block-button__link:visited{background:#24752B!important;color:#fff!important;text-decoration:none!important;border-radius:6px;padding:13px 22px;font-weight:600}
.ci-body .wp-block-button__link:hover,.ci-body .wp-block-button__link:focus-visible{background:#1e6324!important;color:#fff!important}
/* P2-09 Services page hero button is navy while every other primary CTA is green. */
.cd-btn .wp-block-button__link{background:#24752B!important;color:#fff!important;border-radius:6px}
.cd-btn .wp-block-button__link:hover,.cd-btn .wp-block-button__link:focus-visible{background:#1e6324!important}

/* P2-03 [NAV-CONFLICT] Mega panels wider than their columns (Industries 1100px, Resources 980px, About 720px). */
@media (min-width:1280px){
  #main-header .primary-menu-container > ul > li.cambium-mega-industries > .sub-menu{width:min(760px, calc(100vw - 32px))!important}
  #main-header .primary-menu-container > ul > li.cambium-mega-about > .sub-menu{width:min(600px, calc(100vw - 32px))!important}
  #main-header .primary-menu-container > ul > li.cambium-mega-resources > .sub-menu{width:min(860px, calc(100vw - 32px))!important}
}
@media (min-width:900px) and (max-width:1279px){
  #main-header .primary-menu-container > ul > li.cambium-mega-industries > .sub-menu{width:min(740px, calc(100vw - 24px))!important}
  #main-header .primary-menu-container > ul > li.cambium-mega-about > .sub-menu{width:min(580px, calc(100vw - 24px))!important}
  #main-header .primary-menu-container > ul > li.cambium-mega-resources > .sub-menu{width:min(840px, calc(100vw - 24px))!important}
}

/* P2-04 Card grids leave one card alone at the left of the last row. Center it, as the .rd-flex grids already do. */
@media (min-width:1025px){
  .rd-grid.rd-cols-3:not(.rd-flex) > :last-child:nth-child(3n+1){grid-column:2}
}
@media (min-width:641px) and (max-width:1024px){
  .rd-grid.rd-cols-3:not(.rd-flex) > :last-child:nth-child(odd){grid-column:1 / -1;justify-self:center;width:calc((100% - 20px) / 2)}
}
@media (min-width:641px){
  .rd-grid.rd-cols-2:not(.rd-flex) > :last-child:nth-child(odd){grid-column:1 / -1;justify-self:center;width:calc((100% - 20px) / 2)}
}
/* Insights grids are 2 columns only between 641 and 900px (3 columns from 901px), so the rule stops at 900px. */
@media (min-width:641px) and (max-width:900px){
  .ci-grid:not(.ci-grid--hubs) > :last-child:nth-child(odd),
  .ci-grid.ci-grid--hubs > :last-child:nth-child(odd){grid-column:1 / -1;justify-self:center;width:calc((100% - 24px) / 2)}
}

/* P2-05 One-word last lines in headings across the site (for example "(MSP)", "IT", "businesses").
   Balanced wrapping for headings, orphan control for body text. Browsers without support keep today's wrap. */
.entry-content h1,.entry-content h2,.entry-content h3,.entry-content h4,
.rd-sec h1,.rd-sec h2,.rd-sec h3,.ci-hero h1,.ci-body h2,.ci-body h3,.ci-card h3,.ci-grid h3{text-wrap:balance}
.entry-content p,.rd-sec p,.ci-body p,.ci-body li{text-wrap:pretty}

/* P2-06 Tap targets under 44px on phones and tablets (footer links, breadcrumbs, menu button, inline call links, carousel dots). */
@media (max-width:1024px){
  .site-footer .cd-foot-links a,.site-footer .cd-foot-phone a,.site-footer .footer-html-inner a{display:inline-flex;align-items:center;min-height:44px}
  .site-footer .cd-foot-links li{margin-top:0!important;margin-bottom:0!important}
  nav.rd-crumbs a,nav.ci-crumbs a{display:inline-flex;align-items:center;min-height:44px}
  nav.rd-crumbs,nav.ci-crumbs{margin-top:-14px}
  #mobile-toggle{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}
  #mobile-drawer .menu-toggle-close{min-width:44px;min-height:44px}
  #mobile-drawer .cd-head-phone{display:inline-flex;align-items:center;min-height:44px}
  .rd-sec a.rd-call,a.cdp-call{display:inline-flex;align-items:center;min-height:44px}
  .ci-hero a.ci-cat{display:inline-flex;align-items:center;min-height:44px}
  .splide__pagination__page{position:relative}
  .splide__pagination__page::after{content:"";position:absolute;inset:-17px}
  .rd-card h3 > a{display:inline-block;padding:11px 0;margin:-11px 0}
}

/* P3-01 Keyboard focus: most controls fall back to the browser's thin gray ring, Insights card title links have
   outline:none (only a faint card shadow shows). One brand ring everywhere. */
:where(a,button,summary,input,select,textarea,[tabindex]):focus-visible{outline:2px solid #2868a8!important;outline-offset:2px}
.wpforms-container .wpforms-submit:focus-visible{outline:none!important} /* WPForms already draws its own ring with ::after */
.rd-navy :where(a,button):focus-visible,.site-footer :where(a,button):focus-visible,.ci-section--navy :where(a,button):focus-visible{outline-color:#fff!important}
/* WPForms fields: brand focus instead of the WPForms default blue glow */
.wpforms-container input:not([type=submit]):focus,.wpforms-container select:focus,.wpforms-container textarea:focus{border-color:#2868a8!important;box-shadow:0 0 0 1px #2868a8!important;outline:none}

/* P2-07 Mobile menu: CTA wraps to two lines with "review" alone, left aligned. */
@media (max-width:1024px){
  #mobile-drawer .mobile-header-button{justify-content:center;text-align:center;font-size:15px!important;padding-left:12px!important;padding-right:12px!important;line-height:1.25}
}

/* P3-02 Mobile footer bottom bar: "Privacy Policy" breaks across two lines. */
.site-footer .footer-html-inner a{white-space:nowrap}
@media (max-width:640px){
  .site-footer .footer-html-inner .cd-copy{display:block;margin-bottom:6px}
  .site-footer .footer-html-inner .cd-copy + .cd-sep{display:none}
}

/* P3-03 FAQ questions have no hover feedback (they are clickable). */
.rd-faq summary:hover{color:#24752B}

/* P3-07 /ai-consulting-omaha/ "Our demo is our own AI team" band: the 600px-wide skyline panel is stretched to
   1024px at tablet widths and looks pixelated. Hide the decorative art between 641 and 1024px. */
@media (min-width:641px) and (max-width:1024px){ .cdai-aie-band-art{display:none!important} }
