/* ccf-components build: 2026-10-15 r18 (r17 + .ccf-sheet--rules: light gray rule between rows) */
/* ============================================================
   CCF COMPONENTS CSS
   - Loaded non-blocking by the loader (unless you disable that)
   - Sticky bar, clients/gallery/blog/knowledge, trust blocks
   - Footer + modals + cookie notice
   ============================================================ */

/* ============================================================
   Sticky Bar
   ============================================================ */
.my-sticky-element {
  position: fixed !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 100%;
  height: 36px;
  background: #151515;
  border-top: 2px solid rgba(255, 255, 255, .29);
  z-index: 2147483647 !important;

  transform: translateY(100%);
  opacity: 0;
  pointer-events: none;
  transition: transform 0.3s ease-out, opacity 0.3s ease-out;
}

body.scrolled .my-sticky-element {
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
}

.sticky_css {
  display: flex !important;
  align-items: center;
  justify-content: center;
  height: 100%;
  width: 100%;
  gap: 15px;
  color: #f1f0f0;
}

.sticky_css a {
  color: #f1f0f0 !important;
  text-decoration: none;
  font-size: 16px;
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
  cursor: pointer;
  transition: color 0.2s ease;
}

.sticky_css a:hover {
  color: #ea6d00 !important;
  opacity: 1 !important;
}

.sticky_css a:visited {
  color: #f1f0f0 !important;
}

.sticky_css a:visited:hover {
  color: #ea6d00 !important;
}

.sticky_css br { display: none; }

@media (prefers-reduced-motion: reduce) {
  .my-sticky-element {
    transition: none !important;
    transform: none !important;
  }
}

/* ============================================================
   Clients Grid (v2)
   ============================================================ */
.ccf-v2{ overflow-x: hidden; }

.ccf-v2 .ccf-clients__logos-grid{
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  display: grid;
  gap: 24px;
  align-items: center;
}

/* MOBILE: 4 columns */
@media (max-width: 767px){
  .ccf-v2 .ccf-clients__logos-grid{
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
  }

  .ccf-v2 .ccf-clients__content{
    padding-left: 15px !important;
    padding-right: 15px !important;
  }
  .ccf-v2 .ccf-clients__col--logos{
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

/* DESKTOP: 10 columns */
@media (min-width: 768px){
  .ccf-v2 .ccf-clients__logos-grid{
    grid-template-columns: repeat(10, minmax(0, 1fr));
    gap: 16px;
  }
}

.ccf-v2 .ccf-clients__logo{
  max-width: 100%;
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
  max-height: 120px;
  filter: grayscale(100%);
  opacity: .7;
  transition: all .15s ease;
  mix-blend-mode: multiply;
}

@media (hover: hover) and (pointer: fine) {
  .ccf-v2 .ccf-clients__logo:hover{
    filter: none !important;
    opacity: 1 !important;
    transform: scale(1.04);
    mix-blend-mode: normal;
  }
}

/* ============================================================
   Gallery headings spacing
   ============================================================ */
.ccf-v2 .ccf-gallery__header{
  padding-top: 55px;
  padding-bottom: 0;
}

@media (max-width: 767px){
  .ccf-v2 .ccf-gallery__header{
    padding-top: 25px;
    padding-bottom: 0;
    padding-left: 7px;
  }
}

/* ============================================================
   Gallery panel + inner rail
   ============================================================ */
.ccf-v2 .ccf-bleed{
  width: 100%;
  max-width: 100%;
}

.ccf-v2 .ccf-gallery__panel{
  background: #f1f0f0;
  border: 5px solid #f1f0f0;
}

@media (max-width: 767px){
  .ccf-v2 .ccf-gallery__panel{
    padding-left: 0px;
    padding-right: 0px;
  }
}

.ccf-v2 .ccf-gallery__panel > .gb-inside-container{
  max-width: none;
  padding: 0;
  margin: 0;
}

.ccf-v2 .ccf-gallery__set{
  --ccf-content-max: 2130px;
  max-width: var(--ccf-content-max);
  margin-left: auto;
  margin-right: auto;
  width: 100%;
  padding-left: 3%;
  padding-right: 3%;
}

@media (max-width: 767px){
  .ccf-v2 .ccf-gallery__set{
    padding-left: 0;
    padding-right: 0;
  }
}

@media (min-width: 768px){
.ccf-esd-ads .ccf-gallery__set.ccf-gallery__set--commercial {
    padding-bottom: 50px;
}
}
@media (max-width: 767px){
.ccf-esd-ads .ccf-gallery__set.ccf-gallery__set--commercial {
    padding-bottom: 20px;
}
}


/* ============================================================
   Gallery grid (v2)
   ============================================================ */
.ccf-v2 .ccf-gallery-grid{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 5px;
  margin: 0;
  padding: 0;
}

@media (max-width: 767px){
  .ccf-v2 .ccf-gallery-grid{
    grid-template-columns: repeat(2, 1fr);
  }
}

.ccf-v2 .ccf-gallery-grid .ccf-gallery__item,
.ccf-v2 .ccf-gallery-grid .ccf-gallery-grid__item{
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  display: block;
}

.ccf-v2 .ccf-gallery-grid .ccf-gallery__item img,
.ccf-v2 .ccf-gallery-grid .ccf-gallery-grid__item img{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .3s ease, opacity .3s ease;
}

.ccf-v2 .ccf-gallery-grid .ccf-gallery__item::after,
.ccf-v2 .ccf-gallery-grid .ccf-gallery-grid__item::after{
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255,119,0,0.2);
  opacity: 0;
  transition: opacity .3s ease;
}

.ccf-v2 .ccf-gallery-grid .ccf-gallery__item:hover img,
.ccf-v2 .ccf-gallery-grid .ccf-gallery-grid__item:hover img{
  transform: scale(1.02);
  opacity: .85;
}

.ccf-v2 .ccf-gallery-grid .ccf-gallery__item:hover::after,
.ccf-v2 .ccf-gallery-grid .ccf-gallery-grid__item:hover::after{
  opacity: 1;
}

/* ============================================================
   Legacy gallery block replacement
   ============================================================ */
.ccf-figure__img{
  display: block;
  width: 100%;
  height: auto;
}

.ccf-gallery-grid{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
  padding: 0;
}

@media (max-width: 767px){
  .ccf-gallery-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.ccf-gallery-grid__item{
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
}

.ccf-gallery-grid__item img,
.ccf-gallery-grid__item img.ccf-gallery-grid__img{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .3s ease, opacity .3s ease;
}

.ccf-gallery-grid__item::after{
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255,119,0,0.2);
  opacity: 0;
  transition: opacity .3s ease;
}

@media (hover: hover) and (pointer: fine){
  .ccf-gallery-grid__item:hover img,
  .ccf-gallery-grid__item:hover img.ccf-gallery-grid__img{
    transform: scale(1.02);
    opacity: .85;
  }
  .ccf-gallery-grid__item:hover::after{
    opacity: 1;
  }
}

/* Legacy clients gallery override */
.ccf-gallery-grid.clients-gallery{
  grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
  gap: 16px;
  align-items: center;
}

.ccf-gallery-grid.clients-gallery .ccf-gallery-grid__item{
  aspect-ratio: auto;
  overflow: visible;
}

.ccf-gallery-grid.clients-gallery .ccf-gallery-grid__item img,
.ccf-gallery-grid.clients-gallery .ccf-gallery-grid__item img.ccf-gallery-grid__img{
  position: static !important;
  inset: auto !important;
  width: 100% !important;
  height: auto !important;
  max-height: 120px !important;
  object-fit: contain !important;
  display: block;
  margin: 0 auto;
  transition: none !important;
}

.ccf-gallery-grid.clients-gallery .ccf-gallery-grid__item::after{
  display: none !important;
}

.ccf-gallery-grid.clients-gallery img{
  filter: grayscale(100%);
  opacity: 0.7;
}

@media (hover: hover) and (pointer: fine){
  .ccf-gallery-grid.clients-gallery img:hover{
    filter: none;
    opacity: 1;
  }
}

/* ============================================================
   Blog grid cards
   ============================================================ */
@media (max-width: 767px){
  .ccf-v2 .ccf-section.ccf-blog{
    margin-top: 0px !important;
  }
}

.ccf-v2,
.ccf-v2 .ccf-section,
.ccf-v2 .ccf-content,
.ccf-v2 .ccf-blog,
.ccf-v2 .ccf-blog__content,
.ccf-v2 .ccf-blog__grid,
.ccf-v2 .ccf-blog__grid .gb-grid-wrapper,
.ccf-v2 .ccf-blog__grid .gb-grid-column{
  box-sizing: border-box;
}

.ccf-v2 .ccf-blog__grid .gb-grid-wrapper{
  width: 100%;
}

.ccf-v2 .ccf-blog__card{
  border: 2px solid #000;
  box-shadow: none;
  transition: transform .15s ease, box-shadow .15s ease;
}

.ccf-v2 .ccf-blog__card:hover{
  transform: scale(1.01);
  box-shadow: 14px 14px 0 #d3d3d3;
}

.ccf-v2 .ccf-blog__card h5{
  line-height: 20px !important;
  padding-top: 7px !important;
  margin-bottom: 0px;
}
.ccf-v2 .ccf-blog__card .gb-headline{
  padding-left: 20px;
  padding-right: 20px;
  line-height: 24px;
  padding-bottom: 7px;
}

@media (max-width: 767px){
  .ccf-v2 .ccf-blog__card .gb-headline,
  .ccf-v2 .ccf-blog__card h5{
    padding-left: 10px;
    padding-right: 10px;
  }
}

.ccf-v2 .ccf-blog__cta-row{
  display: flex;
  justify-content: flex-start;
  width: 100%;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Blog CTA button: match Knowledge CTA colors/border, keep existing small type */
.ccf-v2 .ccf-blog__cta-row .ccf-btn.ccf-btn--primary{
  background: #f4f4f4 !important;
  border: 1px solid #000 !important;
}

.ccf-v2 .ccf-blog__cta-row .ccf-btn.ccf-btn--primary a{
  color: #000 !important;
  text-decoration: none;
  display: block; /* makes the click target fill the button */
}

/* optional hover */
.ccf-v2 .ccf-blog__cta-row .ccf-btn.ccf-btn--primary:hover{
  background: #000 !important;
}

.ccf-v2 .ccf-blog__cta-row .ccf-btn.ccf-btn--primary:hover a{
  color: #fff !important;
}
/* Blog CTA button wrapper */
.ccf-v2 .ccf-blog__cta-row .ccf-btn.ccf-btn--primary{
  background: #f4f4f4 !important;
  border: 1px solid #000 !important;
  color: #000 !important; /* key */
}

/* Make the link use the wrapper color (beats the old white link rule) */
.ccf-v2 .ccf-blog__cta-row .ccf-btn.ccf-btn--primary > a,
.ccf-v2 .ccf-blog__cta-row .ccf-btn.ccf-btn--primary > a:visited{
  color: inherit !important;
  text-decoration: none;
  display: block;
}

/* Optional hover */
.ccf-v2 .ccf-blog__cta-row .ccf-btn.ccf-btn--primary:hover{
  background: #000 !important;
  color: #fff !important;
}
.ccf-v2 .ccf-blog__cta-row .ccf-btn.ccf-btn--primary:hover > a{
  color: inherit !important;
}

.gb-container-dc3da39a > .gb-inside-container {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* case-study card blurb only (not the title) */
.ccf-v2 .ccf-blog__card div.gb-headline.gb-headline-text {
  white-space: pre-line;
  line-height: 22px;
}

/* make each card a positioning context */
.ccf-v2 .ccf-blog__card{
  position: relative;
  cursor: pointer;
}

/* turn the title link into a full-card clickable overlay */
.ccf-v2 .ccf-blog__card h3.gb-headline a::after{
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
}

/* keep the title text visually above (optional, but nice) */
.ccf-v2 .ccf-blog__card h3.gb-headline{
  position: relative;
  z-index: 3;
}

/* keyboard focus clarity */
.ccf-v2 .ccf-blog__card:focus-within{
  outline: 2px solid #111;
  outline-offset: 2px;
}

/* Case studies: title link should be black (override GP accent) */
.ccf-v2 .ccf-blog__card h3.gb-headline a,
.ccf-v2 .ccf-blog__card h5.gb-headline a {
  color: #111 !important;
  text-decoration: none;
}

.ccf-v2 .ccf-blog__card h3.gb-headline a:hover,
.ccf-v2 .ccf-blog__card h5.gb-headline a:hover {
  text-decoration: underline;

}

/* desaturate case study cards
@media (hover: hover) and (pointer: fine) {
  .ccf-blog__card {
    filter: saturate(0.55) contrast(1.02);
    transition: filter 160ms ease-in-out;
  }
  .ccf-blog__card:hover,
  .ccf-blog__card:focus-within {
    filter: none;
  }
}  */

/* Hide next/prev post navigation on Case Study posts */
body.single-post.is-case-study .paging-navigation{
  display: none !important;
}

/* ============================================================
   Knowledge Center (v2)
   ============================================================ */
@media (max-width: 767px){
  .ccf-v2 .ccf-section.ccf-knowledge{
    margin-top: 0px !important;
  }
}

.ccf-v2 .ccf-knowledge .cluster-cards{
  display: grid !important;
  grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  gap: 24px !important;
  margin: 16px 0 0 !important;
  padding: 0 !important;
}

@media (max-width: 1399px){
  .ccf-v2 .ccf-knowledge .cluster-cards{
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 767px){
  .ccf-v2 .ccf-knowledge .cluster-cards{
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }
}

.ccf-v2 .ccf-knowledge .cluster-card{
  background: #fff !important;
  border: 2px solid #000 !important;
  padding: 16px !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  transition: transform .2s ease, box-shadow .2s ease !important;
}

.ccf-v2 .ccf-knowledge .cluster-card:hover{
  transform: translate(-4px, -4px) !important;
  box-shadow: 8px 8px 0 #d3d3d3 !important;
}

.ccf-v2 .ccf-knowledge .cluster-card h3{
  margin: 0 0 .75rem !important;
  font-size: 20px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: .1em !important;
}

.ccf-v2 .ccf-knowledge .cluster-card ul{
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.ccf-v2 .ccf-knowledge .cluster-card li{
  margin: 0 0 .5rem !important;
  line-height: 1.25 !important;
}

.ccf-v2 .ccf-knowledge .cluster-card a{
  color: #000 !important;
  text-decoration: underline !important;
  text-underline-offset: 2px !important;
  text-decoration-thickness: 1px !important;
  transition: color 0.2s ease !important;
}
.ccf-v2 .ccf-knowledge .cluster-card a:hover,
.ccf-v2 .ccf-knowledge .ccf-knowledge__cta a:hover{
  color: #ea6d00 !important;
  text-decoration-color: #ea6d00 !important;
}

/* ============================================================
   Location Trust Grids
   ============================================================ */
.trust-local__grid,
.trust-national__grid,
.ccf-v2 .trust-local__grid,
.ccf-v2 .trust-national__grid{
  display: grid;
  grid-template-columns: 1.3fr 0.7fr;
  column-gap: 1.5rem;
  row-gap: 1.25rem;
  align-items: start;
}
.ccf-v2 .trust-national {
  font-size: 17px;
  line-height: 1.45;
}
.trust-local__bullets,
.trust-national__bullets,
.ccf-v2 .trust-local__bullets,
.ccf-v2 .trust-national__bullets{
  margin: 0;
  padding-left: 1.15rem;
}

.trust-local__bullets li,
.ccf-v2 .trust-local__bullets li{
  margin: 0 0 .4rem;
}

.ccf-v2 .trust-national__bullets li{
  margin: 0 0 5px;
}
.ccf-v2 .trust-national{
  line-height: 1.45 !important;
}
.ccf-v2 .trust-national__subbullets li{
  line-height: 1.35 !important;
  margin: 0 0 2px;
}
.trust-local__nap,
.trust-national__nap,
.ccf-v2 .trust-local__nap,
.ccf-v2 .trust-national__nap{
  margin: 0;
  font-style: normal;
}

.trust-local__nap p,
.trust-national__nap p,
.ccf-v2 .trust-local__nap p,
.ccf-v2 .trust-national__nap p{
  margin: 0 0 .4rem;
}

.trust-local__nap a,
.trust-national__nap a,
.ccf-v2 .trust-local__nap a,
.ccf-v2 .trust-national__nap a{
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-thickness: 1px;
}

@media (max-width: 900px){
  .trust-local__grid,
  .trust-national__grid,
  .ccf-v2 .trust-local__grid,
  .ccf-v2 .trust-national__grid{
    grid-template-columns: 1fr;
    column-gap: 0;
  }

  .trust-local__bullets,
  .trust-national__bullets,
  .ccf-v2 .trust-local__bullets,
  .ccf-v2 .trust-national__bullets{
    padding-left: 1.15rem;
    font-size: 17px;
  }
}

.trust-national__subbullets{
  margin: .35rem 0 0;
  padding-left: 0;
  list-style: none;
}
.trust-national__subbullets li{
  margin: 0 0 .25rem;
}
.trust-national__subkey{
  font-weight: 600;
}

/* Case Study Trust Block (variant of trust-national)*/
.ccf-v2 .trust-national.trust-case .trust-national__grid{
  grid-template-columns: 1fr 320px;
  column-gap: 48px;
}

/* Optional: tighter bullets for case studies (project facts are shorter) */
.ccf-v2 .trust-national.trust-case .trust-national__bullets li{
  margin: 0 0 6px;
}

/* Optional CTA row inside NAP column */
.ccf-v2 .trust-national.trust-case .trust-case__actions{
  margin-top: 14px;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

/* Secondary button style (matches your knowledge CTA vibe) */
.ccf-v2 .trust-national.trust-case .ccf-btn--secondary{
  background: #f4f4f4;
  border: 1px solid #000;
  color: #000;
}

/* ============================================================
   Pre-Qualification Checklist (scoped)
   Apply to: <div class="checklist ccf-checklist"> ... </div>
   ============================================================ */

.ccf-v2 .ccf-checklist{
  border: 2px solid #111;
  padding: 24px 28px;
  max-width: 980px;
}

.ccf-v2 .ccf-checklist .checklist-title{
  font-family: "Bebas Neue","Bebas Neue Fallback", Arial, sans-serif;
  font-size: 22px;
  letter-spacing: 2px;
  text-transform: uppercase;
  margin: 0 0 14px 0;
  padding-bottom: 12px;
  border-bottom: 2px solid #e6ad00; /* your orange */
}

.ccf-v2 .ccf-checklist ul{
  list-style: none;
  margin: 0;
  padding: 0;
}

.ccf-v2 .ccf-checklist li{
  position: relative;
  padding: 12px 0 12px 22px;
  border-bottom: 1px solid #e9e9e9;
  line-height: 1.4;
  font-size: 16px;
}

.ccf-v2 .ccf-checklist li:last-child{
  border-bottom: 0;
}

.ccf-v2 .ccf-checklist li::before{
  content: "";
  position: absolute;
  left: 0;
  top: 20px;
  width: 10px;
  height: 2px;
  background: #e6ad00; /* orange tick line */
}

/* Optional: tighten on mobile */
@media (max-width: 767px){
  .ccf-v2 .ccf-checklist{
    padding: 18px 18px;
  }
  .ccf-v2 .ccf-checklist .checklist-title{
    font-size: 20px;
  }
  .ccf-v2 .ccf-checklist li{
    font-size: 15px;
    padding-left: 20px;
  }
}
/* ============================================================
   Checklist + Standards Card (scoped)
   ============================================================ */
.ccf-v2 .ccf-checkcard__body{
  border: 2px solid #111;
  background: #fff;
}

/* checklist area */
.ccf-v2 .ccf-checkcard .ccf-checklist{
  border: 0;
  max-width: none;
  padding: 22px 26px;
}

/* whitespace + separator between checklist and bar */
.ccf-v2 .ccf-checkcard .ccf-standards-bar{
  margin-top: 25px;
  border-top: 1px solid #e9e9e9;
}

/* black bar look */
.ccf-v2 .ccf-checkcard .ccf-standards-bar{
  background: #111;
  padding: 18px 26px;
  display: grid;
  grid-template-columns: 90px 1fr;
  column-gap: 26px;
  align-items: start;
}

/* label */
.ccf-v2 .ccf-checkcard .ccf-standards-bar .sb-label{
  font-family: "Bebas Neue","Bebas Neue Fallback", Arial, sans-serif;
  font-size: 18px;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: #e6ad00;
  line-height: 1;
  margin-top: 2px;
}

/* value */
.ccf-v2 .ccf-checkcard .ccf-standards-bar .sb-value{
  font-size: 18px;
  line-height: 1.55;
  color: rgba(255,255,255,0.55);
}

/* mobile */
@media (max-width: 767px){
  .ccf-v2 .ccf-checkcard .ccf-checklist{
    padding: 18px 18px;
  }
  .ccf-v2 .ccf-checkcard .ccf-standards-bar{
    grid-template-columns: 1fr;
    row-gap: 10px;
    padding: 16px 18px;
    margin-top: 12px;
  }
  .ccf-v2 .ccf-checkcard .ccf-standards-bar .sb-value{
    font-size: 16px;
  }
}
/* Table card interior — matches ccf-checklist card styling */
.ccf-spec-table {
  padding: 22px 26px;
  max-width: none;
}

.ccf-spec-table .checklist-title {
  /* Should already inherit from your existing .checklist-title rule */
}

.ccf-spec-table table {
  width: 100%;
  border-collapse: collapse;
  font-size: inherit;
}

.ccf-spec-table thead th {
  text-align: left;
  font-weight: 600;
  text-transform: uppercase;
  font-size: 0.75em;
  letter-spacing: 0.05em;
  color: var(--contrast);
  padding: 10px 12px;
  border-bottom: 2px solid #f111;
}

.ccf-spec-table tbody td {
  padding: 10px 12px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  vertical-align: top;
}

.ccf-spec-table tbody td:first-child {
  font-weight: 600;
  white-space: nowrap;
  width: 30%;
}
.ccf-checkcard:has(.ccf-spec-table) {
  border: none;
  background: #fafafa;
  border-radius: 4px;
}
/* Fix STANDAR DS / REGULAT ORY wrapping */
.ccf-standards-bar .sb-label {
  white-space: nowrap;
  flex-shrink: 0;
}

/* ============================================================
   Footer (v2)
   ============================================================ */
.ccf-v2.ccf-footer{
  background: #2c2c2c;
  color: #f1f0f0;
}

.ccf-v2.ccf-footer .ccf-footer__inner{
  padding: 2%;
  max-width: 2130px;
  margin-left: auto;
  margin-right: auto;
}

@media (max-width: 767px){
  .ccf-v2.ccf-footer .ccf-footer__brand a {
    font-size: 24px !important;
    letter-spacing: 2px !important;
    font-weight: 800 !important;
    margin-top: 20px !important;
    color: #f1f0f0 !important;
    line-height: 26px !important;
  }
}

@media (min-width: 768px){
  .ccf-v2.ccf-footer .ccf-footer__brand a {
    font-size: 30px !important;
    letter-spacing: 2px !important;
    font-weight: 800 !important;
    margin-top: 15px !important;
    margin-bottom: 15px !important;
    color: #f1f0f0 !important;
  }
}

.ccf-v2.ccf-footer .ccf-footer__brand-link{
  color: #f1f0f0;
  text-decoration: none;
  letter-spacing: .02em;
}

.ccf-v2.ccf-footer .ccf-footer__grid{
  row-gap: 18px;
  justify-content: space-between;
}

.ccf-v2.ccf-footer .ccf-footer__col{
  box-sizing: border-box;
}

.ccf-v2.ccf-footer .ccf-footer__title{
  margin: 0 0 10px;
  font-size: 24px;
  color: #f1f0f0;
}

.ccf-v2.ccf-footer .ccf-footer__list{
  margin: 0;
  padding: 0;
  list-style: none;
}

.ccf-v2.ccf-footer .ccf-footer__item{
  margin: 0 0 8px;
  color: #f1f0f0;
  line-height: 1.35;
}

.ccf-v2.ccf-footer .ccf-footer__list a{
  color: #f1f0f0;
  text-decoration: none;
}
.ccf-v2.ccf-footer .ccf-footer__list a:hover{
  text-decoration: underline;
}

.ccf-v2.ccf-footer .ccf-footer__contact{
  margin: 0 0 6px;
  font-size: 18px;
  line-height: 1.35;
}

.ccf-v2.ccf-footer .ccf-footer__contact-link{
  color: rgba(255,255,255,.92);
  text-decoration: none;
}
.ccf-v2.ccf-footer .ccf-footer__contact-link:hover{
  text-decoration: underline;
}

.ccf-v2.ccf-footer .ccf-footer__address{
  margin: 0 0 6px;
  color: #f1f0f0;
}

.ccf-v2.ccf-footer .ccf-footer__bottom{
  border-top: 2px solid rgba(255,255,255,.29);
  padding: 15px 0;
  margin-bottom: 35px;
}

.ccf-v2.ccf-footer .ccf-footer__bottom-inner{
  max-width: 2130px;
  margin-left: auto;
  margin-right: auto;
  padding: 0 3%;
}

.ccf-v2.ccf-footer .ccf-footer__legal{
  margin: 0;
  font-size: 15px;
  color: #f1f0f0;
}

.ccf-v2.ccf-footer .ccf-footer__legal-link{
  color: #f1f0f0;
  text-decoration: none;
}
.ccf-v2.ccf-footer .ccf-footer__legal-link:hover{
  text-decoration: underline;
}

@media (max-width: 767px){
  .ccf-v2.ccf-footer .ccf-footer__brand{
    margin-bottom: 10px;
  }

  .ccf-v2.ccf-footer .ccf-footer__list-wrap{
    padding-left: 0;
    font-size: 17px;
  }

  .ccf-v2.ccf-footer .ccf-footer__bottom{
    padding: 15px 0px 20px;
  }
  .ccf-v2.ccf-footer .ccf-footer__bottom-inner {
    padding: 0 15px;
  }
  .ccf-v2.ccf-footer .ccf-footer__inner{
    padding: 15px 15px;
  }
  .ccf-v2.ccf-footer .ccf-footer__title{
    margin: 0 0 7px;
    font-size: 24px;
    color: #f1f0f0;
  }
  .ccf-v2.ccf-footer .ccf-footer__item{
    margin: 0 0 10px !important;
    color: #f1f0f0;
    line-height: 1.25;
  }
}

.ccf-v2.ccf-footer .gb-grid-wrapper .gb-grid-column-e4f30c90 {
  max-width: 135px;
}

/* ============================================================
   Modals + Cookie Notice
   ============================================================ */
.modal{
  display:none;
  position:fixed;
  inset:0;
  width:100vw;
  height:100vh;
  overflow:hidden;
  z-index:2147483647 !important;
}
.modal[aria-hidden="false"]{
  display:block !important;
}

.modal__overlay{
  position:fixed;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(0,0,0,.96) !important;
  z-index:2147483647 !important;
}

#ccf-image-modal .modal__container{
  position:relative;
  width:95vw !important;
  max-width:3000px !important;
  height:95vh !important;
  background:transparent !important;
  outline:none;
  z-index:2147483647 !important;
  display:flex !important;
  align-items:center;
  justify-content:center;
  padding:0 !important;
  margin:auto !important;
}

#ccf-image-modal .modal-img{
  display:block;
  width:100% !important;
  height:100% !important;
  max-width:3000px !important;
  margin:0 auto;
  object-fit:contain !important;
  box-shadow:none !important;
}

.modal__container--form{
  background:#fff !important;
  width:94% !important;
  max-width:600px !important;
  height:auto !important;
  display:block !important;
  padding:20px !important;
  overflow-y:auto !important;
  border:3px solid #000 !important;
  border-radius:0 !important;
  box-shadow:10px 10px 0 #000 !important;
}

.modal__close{
  position:fixed;
  top:20px;
  right:20px;
  width:50px;
  height:50px;
  line-height:46px;
  padding:0;
  border-radius:50%;
  text-align:center;
  cursor:pointer;
  font-size:30px;
  color:#fff;
  background:rgba(0,0,0,.5);
  border:2px solid rgba(255,255,255,.3);
  z-index:2147483648;
  transition:all .2s;
}
.modal__close:hover{
  background:#ea6d00;
  border-color:#ea6d00;
  color:#000;
}

.modal__prev,
.modal__next{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  color:#fff;
  background:rgba(0,0,0,.4);
  border:none;
  font-size:2.5rem;
  padding:10px 15px;
  cursor:pointer;
  z-index:2147483648;
  transition:background .2s;
  border-radius:4px;
}
.modal__prev:hover,
.modal__next:hover{
  background:#ea6d00;
  color:#000;
}
.modal__prev{ left:0; }
.modal__next{ right:0; }

@media (max-width:768px){
  .modal__prev,
  .modal__next{
    font-size:1.5rem;
    padding:10px;
    background:rgba(0,0,0,.6);
  }
  .modal__close{
    top:10px;
    right:10px;
  }
}

body.mm-open{ overflow:hidden !important; }

/* Cookie Notice */
#cookieNotice{
  position: fixed;
  bottom: 30px;
  right: max(30px, calc(50vw - 1000px + 30px));
  left: auto;
  z-index: 2147483646;
  display: block;
  width: auto;
  max-width: 400px;
  padding: 25px;

  background: #f1f0f0;
  border: 3px solid #000;
  border-radius: 0;
  box-shadow: 8px 8px 0 #000;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
}

#cookieNotice .msg-wrap{
  position: relative;
  display: block;
  width: 100%;
}

#cookieNotice img{
  display: none;
}

#cookieNotice .cookieNotice__text{
  margin: 0;
  padding-right: 40px;
  color: #000;
  font-size: 13px;
  font-weight: 800;
  text-transform: uppercase;
  line-height: 1.5;
  letter-spacing: 0.5px;
}

#cookieNotice .cookieNotice__link{
  color: #ea6d00;
  font-weight: 800;
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}

#cookieNotice .cookieNotice__close{
  position: absolute;
  top: 10px;
  right: 10px;

  width: 24px;
  height: 24px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #000;

  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;

  transition: transform 0.2s ease;
}

#cookieNotice .cookieNotice__close:hover{
  transform: scale(1.2);
}

/* Minor bit you pasted */
@media (max-width: 767px) {
  .msg-wrap {
    display: inline-block !important;
  }
}

/* Trust nap micro rules */
.ccf-v2 .trust-local__nap { margin: 0; }
.ccf-v2 .trust-local__nap p { margin: 0 0 6px 0; }
.ccf-v2 .trust-local__nap .trust-local__cta { margin-top: 10px; display: flex; gap: 10px; flex-wrap: wrap; }
.ccf-v2 .trust-local__nap .trust-local__aux { margin-top: 10px; }
.ccf-v2 .trust-local__nap a { text-decoration: underline; }

/* ============================================================
   New form / trust block (.ccf-index-draft)
   Moved here from the inline <style> inside each page's form block.
   ============================================================ */
.ccf-about.ccf-index-draft { border-top: 0 !important; padding: 58px 0 72px; background: #fff; }
.ccf-index-draft + .ccf-clients { border-top: 0 !important; }
.ccf-index-draft__inner { max-width: 2130px; margin: 0 auto; padding: 0 72px; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr); gap: clamp(44px, 5vw, 100px); align-items: start; }
.ccf-index-draft h2, .ccf-index-draft h3 { font-family: 'Bebas Neue', 'Bebas Neue Fallback', Arial, sans-serif; font-weight: 500; text-transform: uppercase; color: #161616; }
.ccf-index-draft h2 { font-size: clamp(42px, 3vw, 58px); line-height: 1.08; margin: 0 0 12px; }
.ccf-index-draft h3 { font-size: 36px; line-height: 1.15; margin: 0 0 18px; }
.ccf-index-draft__form { max-width: 760px; }
.ccf-index-draft .ccf-index-draft__form .ff-el-group { margin-bottom: 16px; }
.ccf-index-draft__trust { border-left: 3px solid #d97527; padding: 8px 0 4px 32px; }
.ccf-index-draft__trust ul { list-style: none; padding: 0; margin: 0 0 28px; }
.ccf-index-draft__trust li { position: relative; padding: 0 0 0 16px; margin: 0 0 16px; font-size: 18px; line-height: 1.45; }
.ccf-index-draft__trust li::before { content: ''; position: absolute; left: 0; top: 10px; width: 4px; height: 4px; border-radius: 50%; background: #c66b20; }
.ccf-index-draft__contact { margin: 0; padding-top: 24px; border-top: 1px solid #d7d7d7; font-style: normal; font-size: 17px; line-height: 1.7; }
.ccf-index-draft__contact p { margin: 0 0 6px; }
.ccf-index-draft__contact a { color: #161616; text-decoration: underline; }
@media (max-width: 900px) { .ccf-index-draft__inner { grid-template-columns: 1fr; gap: 44px; padding: 0 28px; } .ccf-index-draft__trust { border-left: 0; border-top: 3px solid #d97527; padding: 28px 0 0; } }
@media (max-width: 600px) { .ccf-index-draft { padding: 40px 0 50px; } .ccf-index-draft__inner { padding: 0 20px; gap: 38px; } .ccf-index-draft h2 { font-size: 42px; } .ccf-index-draft h3 { font-size: 32px; } .ccf-index-draft__trust li { font-size: 16px; } }

/* =====================================================================
   CCF v2 — DATA SHEET PAGES  (.ccf-datasheet)
   Append to the end of ccf-components.css (must load after ccf-base.css).

   Opt a page in by giving the GenerateBlocks "Body" container:
     className: "ccf-v2 ccf-datasheet"
   Every rule below is scoped to that wrapper. Element-level p/a styles only
   apply inside .ccf-sheet and .ccf-glance-section, so the form, clients,
   gallery, FAQ and blog components on the same page are untouched.

   Markup contract
   section.ccf-section.ccf-glance-section > .ccf-content
       h2.ccf-overview-sub
       .ccf-glance-wrap > table.ccf-glance  (td > ul.ccf-opts > li)
       [p]                                   (optional lead-in)
       p.ccf-glance-note | div.ccf-glance-note > p…   (optional summary panel)
       table.ccf-glance.ccf-glance--2col|--3col|--4col   (column-width presets)
   section.ccf-section.ccf-sheet#id > .ccf-content > .ccf-sheet__grid
       header.ccf-sheet__lead   h2.gb-headline.gb-headline-text.ccf-block__title
                                + optional intro <p>…
       .ccf-sheet__body         .ccf-sheet__head > span + span
                                article.ccf-sheet__row#id
                                  .ccf-sheet__term  h3 [+ span.ccf-tag inside h3]
                                                    [.ccf-tags > span.ccf-tag(--ghost)]
                                                    [dl.ccf-attrs > div > dt + dd]
                                                    [figure.ccf-sheet__media > img]
                                  .ccf-sheet__def   <p>… [ul|ol] [.ccf-subtable-wrap > table.ccf-subtable]
                                                    [.ccf-pricebox > p > strong + lines]
                                .ccf-sheet__def directly in .ccf-sheet__body = prose-only section
   ===================================================================== */
.ccf-datasheet .ccf-sheet[id],.ccf-datasheet .ccf-sheet__row[id]{scroll-margin-top:65px}
.ccf-datasheet :where(.ccf-sheet,.ccf-glance-section) p{font-size:17px;line-height:1.6;color:#888;margin:0 0 20px}
.ccf-datasheet :where(.ccf-sheet,.ccf-glance-section) a{color:#b96b2b;text-decoration:underline;text-underline-offset:3px}
.ccf-datasheet :where(.ccf-sheet,.ccf-glance-section) a:hover{color:#ea6d00}
.ccf-datasheet h2.ccf-block__title{margin:0 0 18px!important}
.ccf-datasheet .ccf-overview-sub{font-family:"Bebas Neue","Bebas Neue Fallback",Arial,sans-serif;font-weight:400;font-size:25px;line-height:1.25;letter-spacing:1px;text-transform:uppercase;color:#161616;margin:0}
.ccf-datasheet .ccf-glance-wrap{overflow-x:auto;margin-top:16px;border:2px solid #111;border-bottom:0}
.ccf-datasheet .ccf-glance{width:100%;border:0;border-collapse:collapse;margin:0;table-layout:fixed;font-size:16px;line-height:1.5}
.ccf-datasheet .ccf-glance th,.ccf-datasheet .ccf-glance td{padding:18px 22px;vertical-align:top;text-align:left;border:0;border-bottom:1px solid #e9e9e9}
.ccf-datasheet .ccf-glance thead th{font-family:"Bebas Neue","Bebas Neue Fallback",Arial,sans-serif;font-size:22px;font-weight:400;letter-spacing:2px;text-transform:uppercase;border-bottom:2px solid #e6ad00;background:#111;color:#fff}
.ccf-datasheet .ccf-glance th:first-child{width:24%}
.ccf-datasheet .ccf-glance th:nth-child(2){width:40%}
.ccf-datasheet .ccf-glance tbody th{font-weight:600}
.ccf-datasheet .ccf-glance tbody tr:last-child>*{border-bottom:0}
.ccf-datasheet .ccf-opts{list-style:none;margin:0;padding:0}
.ccf-datasheet .ccf-opts li{display:inline-block;position:relative;white-space:nowrap;margin:0 18px 0 0;padding:0}
.ccf-datasheet .ccf-opts li:not(:last-child)::after{content:"\00B7";position:absolute;right:-12px;color:#b5b5b5}
.ccf-datasheet .ccf-opts b{font-weight:600;color:#111}
.ccf-datasheet .ccf-glance-note{margin:0;padding:20px 22px;background:#f2f2ef;border:2px solid #111;border-top:1px solid #d6d6d0;font-size:17px;line-height:1.6;color:#555}
.ccf-datasheet .ccf-sheet__grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(32px,4vw,64px);align-items:start}
.ccf-datasheet .ccf-sheet__lead{min-width:0}
@media (min-width:1024px) and (min-height:700px){.ccf-datasheet .ccf-sheet__lead{position:sticky;top:80px}}
.ccf-datasheet .ccf-sheet__body{border:2px solid #111;background:#fff;min-width:0;padding:22px 26px 8px}
.ccf-datasheet .ccf-sheet__head{display:grid;grid-template-columns:minmax(200px,32%) 1fr;gap:28px;padding:0 0 12px;border-bottom:2px solid #e6ad00}
.ccf-datasheet .ccf-sheet__head span{font-family:"Bebas Neue","Bebas Neue Fallback",Arial,sans-serif;font-size:22px;letter-spacing:2px;line-height:1.2;text-transform:uppercase;color:#111}
.ccf-datasheet .ccf-sheet__row{display:grid;grid-template-columns:minmax(200px,32%) 1fr;gap:28px;padding:16px 0}
.ccf-datasheet .ccf-sheet__head+.ccf-sheet__row{padding-top:22px}
.ccf-datasheet .ccf-sheet__row:last-child{border-bottom:0}
.ccf-datasheet .ccf-sheet__term{min-width:0}
.ccf-datasheet .ccf-sheet__term h3{position:relative;margin:0;padding:0;font-family:"Bebas Neue","Bebas Neue Fallback",Arial,sans-serif;font-weight:400;font-size:25px;line-height:1.08;letter-spacing:.5px;text-transform:uppercase;color:#161616}
.ccf-datasheet .ccf-sheet__row:target .ccf-sheet__term h3{color:#ea6d00}
.ccf-datasheet .ccf-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ccf-datasheet .ccf-tags{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 0}
.ccf-datasheet .ccf-tag{display:inline-block;font-family:"Bebas Neue","Bebas Neue Fallback",Arial,sans-serif;font-size:16px;letter-spacing:2px;line-height:1;padding:6px 8px 5px;background:transparent;color:#111;box-shadow:inset 0 0 0 1px #111;text-transform:uppercase}
.ccf-datasheet .ccf-tag--ghost{background:transparent;color:#888;box-shadow:inset 0 0 0 1px #cfcfcf}
.ccf-datasheet .ccf-sheet__term h3 .ccf-tag{display:table;margin:10px 0 0}
.ccf-datasheet .ccf-sheet__term h3+.ccf-tags{margin-top:6px}
.ccf-datasheet .ccf-attrs{margin:12px 0 0;padding:0;font-size:13px;line-height:1.35}
.ccf-datasheet .ccf-attrs div{display:grid;grid-template-columns:96px 1fr;gap:10px;padding:3px 0}
.ccf-datasheet .ccf-attrs dt{margin:0;font-weight:600;text-transform:uppercase;letter-spacing:.06em;font-size:11px;line-height:1.6;color:#888}
.ccf-datasheet .ccf-attrs dd{margin:0;color:#161616}
.ccf-datasheet .ccf-sheet__def{min-width:0}
.ccf-datasheet .ccf-sheet__def p{font-size:16px;line-height:1.65;color:#555;margin:0 0 14px;max-width:72ch}
.ccf-datasheet .ccf-sheet__def p:last-child{margin-bottom:0}
.ccf-datasheet .ccf-subtable-wrap{overflow-x:auto;margin:20px 0 0}
.ccf-datasheet .ccf-sheet__def>.ccf-subtable-wrap:first-child{margin-top:0}
.ccf-datasheet .ccf-subtable{width:100%;border:0;border-collapse:collapse;margin:0;font-size:15px;line-height:1.45}
.ccf-datasheet .ccf-subtable caption{caption-side:top;text-align:left;font-family:"Bebas Neue","Bebas Neue Fallback",Arial,sans-serif;font-size:20px;letter-spacing:2px;text-transform:uppercase;color:#111;padding:0 0 8px}
.ccf-datasheet .ccf-subtable th,.ccf-datasheet .ccf-subtable td{padding:12px;text-align:left;vertical-align:top;border:0;border-bottom:1px solid #e9e9e9}
.ccf-datasheet .ccf-subtable thead th{font-weight:600;color:#111;border-bottom:2px solid #e6ad00;white-space:nowrap}
.ccf-datasheet .ccf-subtable thead td{border-bottom:2px solid #e6ad00}
.ccf-datasheet .ccf-subtable tbody th{font-weight:600;white-space:nowrap}
.ccf-datasheet .ccf-subtable tbody tr:last-child>*{border-bottom:0}
.ccf-datasheet .ccf-subtable td{color:#555}
.ccf-datasheet .ccf-meter{display:inline-flex;gap:3px;margin-left:10px;vertical-align:-1px}
.ccf-datasheet .ccf-meter i{display:block;width:7px;height:13px;background:#dcdcdc}
.ccf-datasheet .ccf-meter[data-level="1"] i:nth-child(-n+1),.ccf-datasheet .ccf-meter[data-level="2"] i:nth-child(-n+2),.ccf-datasheet .ccf-meter[data-level="3"] i:nth-child(-n+3),.ccf-datasheet .ccf-meter[data-level="4"] i:nth-child(-n+4){background:#111}
@media (max-width:1023px){.ccf-datasheet .ccf-sheet__grid{grid-template-columns:minmax(0,1fr);gap:20px}.ccf-datasheet .ccf-glance-note--cols{grid-template-columns:1fr}}
@media (max-width:767px){
.ccf-datasheet h2.ccf-block__title{font-size:32px;line-height:1.15}
.ccf-datasheet .ccf-glance{min-width:680px;font-size:15px}
.ccf-datasheet .ccf-glance th,.ccf-datasheet .ccf-glance td{padding:14px 16px}
.ccf-datasheet .ccf-glance thead th{font-size:20px}
.ccf-datasheet .ccf-glance-note{padding:16px;font-size:16px}
.ccf-datasheet .ccf-sheet__body{padding:18px 18px 4px}
.ccf-datasheet .ccf-sheet__head{grid-template-columns:1fr}
.ccf-datasheet .ccf-sheet__head span{font-size:20px}
.ccf-datasheet .ccf-sheet__head span+span{display:none}
.ccf-datasheet .ccf-sheet__row{grid-template-columns:1fr;gap:12px;padding:14px 0}
.ccf-datasheet .ccf-sheet__term h3{font-size:23px}
.ccf-datasheet .ccf-attrs{margin-top:10px}
.ccf-datasheet .ccf-subtable{font-size:14px}
.ccf-datasheet .ccf-subtable th,.ccf-datasheet .ccf-subtable td{padding:10px 8px}
.ccf-datasheet .ccf-subtable tbody th,.ccf-datasheet .ccf-subtable thead th{white-space:normal}
.ccf-datasheet .ccf-meter{display:flex;margin:6px 0 0}
}

/* ---------- additions for multi-page use ---------- */
/* glance: optional lead-in paragraph under the heading */
.ccf-datasheet .ccf-overview-sub+p{margin:12px 0 0;max-width:1100px}
/* glance: two-column tables (label | value) */
.ccf-datasheet .ccf-glance--2col th:first-child{width:34%}
.ccf-datasheet .ccf-glance--2col th:nth-child(2){width:auto}
.ccf-datasheet .ccf-glance th[rowspan]{vertical-align:top}
/* glance note holding more than one paragraph */
.ccf-datasheet div.ccf-glance-note p{font-size:inherit;line-height:inherit;color:inherit;margin:0 0 12px}
.ccf-datasheet div.ccf-glance-note p:last-child{margin-bottom:0}
/* sheet body with prose only (no label row / H3 rows) */
.ccf-datasheet .ccf-sheet__body>.ccf-sheet__def{padding:0 0 14px}
/* lists inside a definition cell */
.ccf-datasheet .ccf-sheet__def ul{margin:0 0 14px;padding-left:20px;font-size:16px;line-height:1.6;color:#555;max-width:72ch}
.ccf-datasheet .ccf-sheet__def li{margin:0 0 6px}
/* price panel: label (strong) + published price lines */
.ccf-datasheet .ccf-pricebox{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px 28px;margin:18px 0 0;padding:16px 20px;background:#f2f2ef;max-width:72ch}
.ccf-datasheet .ccf-sheet__def .ccf-pricebox p{margin:0;max-width:none;font-size:15px;line-height:1.5;color:#161616}
.ccf-datasheet .ccf-pricebox strong{display:block;margin:0 0 4px;font-family:"Bebas Neue","Bebas Neue Fallback",Arial,sans-serif;font-weight:400;font-size:18px;line-height:1.2;letter-spacing:1.5px;text-transform:uppercase;color:#111}
.ccf-datasheet .ccf-sheet__def .ccf-pricebox+p{margin-top:14px}
/* glance: more than one lead-in paragraph */
.ccf-datasheet .ccf-overview-sub~p:not(.ccf-glance-note){margin:12px 0 0;max-width:1100px}
/* glance: three- and four-column tables */
.ccf-datasheet .ccf-glance--3col th:first-child{width:22%}
.ccf-datasheet .ccf-glance--3col th:nth-child(2){width:28%}
.ccf-datasheet .ccf-glance--4col th:first-child{width:19%}
.ccf-datasheet .ccf-glance--4col th:nth-child(2){width:auto}
/* ordered lists (steps) inside a definition cell */
.ccf-datasheet .ccf-sheet__def ol{margin:0 0 14px;padding-left:22px;font-size:16px;line-height:1.6;color:#555;max-width:72ch}
/* glance table with no summary panel under it */
.ccf-datasheet .ccf-glance-wrap:last-child{border-bottom:2px solid #111}
/* figures (charts) inside a definition cell */
.ccf-datasheet .ccf-figure{margin:18px 0 20px;max-width:560px}
.ccf-datasheet .ccf-figure img{display:block;width:100%;height:auto;border:1px solid #e9e9e9}
/* color swatch grids (stain charts) */
.ccf-datasheet ul.ccf-swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:14px 12px;max-width:none;margin:20px 0 22px;padding:0;list-style:none}
.ccf-datasheet ul.ccf-swatches li{margin:0;padding:0;min-width:0}
.ccf-datasheet ul.ccf-swatches img{display:block;width:100%;height:auto}
.ccf-datasheet ul.ccf-swatches span{display:block;margin:6px 0 0;font-size:12px;line-height:1.3;color:#555}
.ccf-datasheet .ccf-sheet__def>ul.ccf-swatches:first-child{margin-top:4px}
.ccf-datasheet ul.ccf-swatches--wide{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}
/* glance: short yes/no last column */
.ccf-datasheet .ccf-glance--flag th:last-child{width:12%}
/* image under the H3 in the left (term) column */
.ccf-datasheet .ccf-sheet__media{margin:16px 0 0;max-width:260px}
.ccf-datasheet .ccf-sheet__media img{display:block;width:100%;height:auto}
/* attribute list: label column sizes to the longest label, never breaks a word */
.ccf-datasheet .ccf-attrs{display:grid;grid-template-columns:minmax(min-content,max-content) minmax(0,1fr);gap:6px 14px}
.ccf-datasheet .ccf-attrs div{display:contents}
.ccf-datasheet .ccf-attrs dt{overflow-wrap:normal;word-break:keep-all;hyphens:none}
.ccf-datasheet .ccf-attrs dd{overflow-wrap:break-word}
/* stand-alone intro panel (no table above): gray note with its own top border, paragraphs side by side */
.ccf-datasheet .ccf-glance-note--solo{margin-top:16px;border-top:2px solid #111}
.ccf-datasheet .ccf-glance-note--cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px clamp(28px,3vw,56px);padding:26px 28px}
.ccf-datasheet div.ccf-glance-note--cols p{margin:0}
/* PDF data sheet embed (core/file block sitting directly in the Body) */
.ccf-datasheet>.wp-block-file{max-width:2130px;margin:10px auto 0;padding:0 3%;display:flex;flex-wrap:wrap;align-items:center;gap:16px 20px;box-sizing:border-box}
.ccf-datasheet>.wp-block-file object{flex:0 0 100%;width:100%!important;height:min(1400px,90vh)!important;border:2px solid #111;background:#f2f2ef}
.ccf-datasheet>.wp-block-file>a:not(.wp-block-file__button){position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* Download button matches the "View all Blog Posts" button */
.ccf-datasheet>.wp-block-file .wp-block-file__button{display:inline-flex!important;align-items:center;justify-content:center;margin:0!important;padding:1em 1.75em!important;border:1px solid #000!important;border-radius:0!important;background:#f4f4f4!important;color:#000!important;font-family:futura-pt,sans-serif!important;font-size:14px!important;font-weight:600!important;line-height:1!important;letter-spacing:2px!important;text-transform:uppercase!important;text-decoration:none!important;box-shadow:none;transition:background-color .3s ease-in-out,color .3s ease-in-out,transform .15s ease,box-shadow .15s ease}
.ccf-datasheet>.wp-block-file .wp-block-file__button:hover,.ccf-datasheet>.wp-block-file .wp-block-file__button:focus{background:#000!important;color:#fff!important;transform:translate(-4px,-4px);box-shadow:8px 8px 0 #d3d3d3}
/* breathing room under the gallery when the next section starts right after it (e.g. Knowledge Center) */
.ccf-datasheet .ccf-gallery+.ccf-section{margin-top:60px}
/* hard rule above the FAQ (between the gallery or services and the FAQ) */
.ccf-datasheet .ccf-section.ccf-faq{border-top:4px solid #000;margin-top:60px}
/* Knowledge Center sits directly under the FAQ with no rule between */
.ccf-datasheet .ccf-faq+.ccf-knowledge{border-top:0;padding-top:0}
@media (max-width:767px){
.ccf-datasheet .ccf-glance--2col{min-width:0}
.ccf-datasheet .ccf-gallery+.ccf-section{margin-top:30px!important}
.ccf-datasheet>.wp-block-file{padding:0 15px}
.ccf-datasheet .ccf-section.ccf-faq{border-top-width:3px;margin-top:30px!important;padding-top:25px!important}
.ccf-datasheet .ccf-sheet__media{max-width:200px;margin-top:10px}
.ccf-datasheet .ccf-opts li{white-space:normal}
.ccf-datasheet ul.ccf-swatches{grid-template-columns:repeat(auto-fill,minmax(80px,1fr))}
.ccf-datasheet .ccf-glance--4col{min-width:820px}
.ccf-datasheet .ccf-pricebox{padding:14px 16px;gap:12px}
}

/* ---------- stub pages (r11): one combined data-sheet section, no gallery ----------
   section.ccf-section.ccf-sheet.ccf-stub > .ccf-content > .ccf-sheet__grid
     header.ccf-sheet__lead   h2.ccf-block__title + p  (the short answer, a normal lead paragraph)
     .ccf-sheet__body         .ccf-sheet__head + article.ccf-sheet__row x 2-5
   Page order: form, clients, stub section, FAQ, Blog. No gallery, no glance table. */
/* FAQ runs straight into the Blog on stubs: no second bar */
.ccf-datasheet .ccf-stub~.ccf-faq+.ccf-blog{border-top:0}
/* lists in a section lead (e.g. a stub intro that ends in a list) match the lead paragraphs */
.ccf-datasheet .ccf-sheet__lead :is(ul,ol){margin:0 0 20px;padding-left:20px;font-size:17px;line-height:1.6;color:#888}
.ccf-datasheet .ccf-sheet__lead li{margin:0 0 6px}
/* sub-tables fit their column (r14): no horizontal scroll on desktop
   - every header cell wraps (column headers were nowrap and forced the scroll)
   - tables with 4+ columns run a size tighter
   - a row whose table still can't fit beside its H3 stacks (H3 over detail), measured on the sheet box:
     3+ columns stack under 590px of box content (~1024-1090px screens), 5 columns under 720px (~1024-1300px screens)
   - phones keep the scroll wrapper as the last resort */
.ccf-datasheet .ccf-subtable :is(thead,tbody) th{white-space:normal}
.ccf-datasheet .ccf-subtable tbody th{min-width:9em}
.ccf-datasheet .ccf-subtable:has(thead th:nth-child(4)){font-size:14px}
.ccf-datasheet .ccf-subtable:has(thead th:nth-child(4)) :is(th,td){padding:10px 8px}
.ccf-datasheet .ccf-subtable:has(thead th:nth-child(4)) tbody th{min-width:7em}
.ccf-datasheet .ccf-sheet__body{container:ccf-sheet/inline-size}
@container ccf-sheet (max-width:589px){.ccf-datasheet .ccf-sheet__row:has(.ccf-subtable thead th:nth-child(3)){grid-template-columns:minmax(0,1fr);gap:12px}}
@container ccf-sheet (max-width:719px){.ccf-datasheet .ccf-sheet__row:has(.ccf-subtable thead th:nth-child(5)){grid-template-columns:minmax(0,1fr);gap:12px}}

/* ---------- standard cards (r15): .ccf-std ----------
   One section per standard: kicker, H2, official title, then a two-column grid.
   Left: gray "governs" box + "How we address it" copy. Right: .ccf-checkcard (deliverables + applies-to bar).
   Stacks below 1100px. Markup: section.ccf-section.ccf-std > .ccf-content > header.ccf-std__head + .ccf-std__grid */
.ccf-v2 .ccf-std .ccf-std__head{margin:0 0 32px}
.ccf-v2 .ccf-std .ccf-std__kicker{font-family:"Bebas Neue","Bebas Neue Fallback",Arial,sans-serif;font-size:18px;line-height:1.2;letter-spacing:.15em;text-transform:uppercase;color:#e6ad00;margin:0 0 8px}
.ccf-v2 .ccf-std h2.ccf-std__title{font-family:"Bebas Neue","Bebas Neue Fallback",Arial,sans-serif;font-weight:400;font-size:clamp(36px,3.6vw,56px);line-height:1;letter-spacing:0;text-transform:uppercase;color:#111;margin:0 0 12px}
.ccf-v2 .ccf-std .ccf-std__sub{font-size:16px;line-height:1.5;letter-spacing:.02em;color:#777;margin:0;max-width:80ch}
.ccf-v2 .ccf-std .ccf-std__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:clamp(32px,4vw,72px);align-items:start}
.ccf-v2 .ccf-std .ccf-std__main,.ccf-v2 .ccf-std .ccf-std__aside{min-width:0}
.ccf-v2 .ccf-std .ccf-std__governs{background:#ebebeb;border-left:4px solid #e6ad00;padding:22px 26px;margin:0 0 36px}
.ccf-v2 .ccf-std h3.ccf-std__label{font-family:"Bebas Neue","Bebas Neue Fallback",Arial,sans-serif;font-weight:400;font-size:20px;line-height:1.2;letter-spacing:.1em;text-transform:uppercase;color:#111;margin:0 0 16px}
.ccf-v2 .ccf-std .ccf-std__governs h3.ccf-std__label{color:#e6ad00;margin-bottom:12px}
.ccf-v2 .ccf-std .ccf-std__governs p{color:#111;margin:0}
.ccf-v2 .ccf-std .ccf-std__main>p{color:#767676;margin:0 0 20px}
.ccf-v2 .ccf-std .ccf-std__main>p:last-child{margin-bottom:0}
.ccf-v2 .ccf-std .ccf-std__main>p strong{color:#111;font-weight:600}
.ccf-v2 .ccf-std .ccf-std__main a{color:#b96b2b;text-decoration:underline;text-underline-offset:3px}
.ccf-v2 .ccf-std .ccf-checkcard{width:100%;box-sizing:border-box}
.ccf-v2 .ccf-std .ccf-checkcard .ccf-standards-bar{margin-top:0;grid-template-columns:max-content minmax(0,1fr)}
.ccf-v2 .ccf-std .ccf-checkcard li{overflow-wrap:anywhere}
@media (max-width:1100px){
.ccf-v2 .ccf-std .ccf-std__grid{grid-template-columns:minmax(0,1fr)}
.ccf-v2 .ccf-std .ccf-std__aside{margin-top:32px}
}
@media (max-width:767px){
.ccf-v2 .ccf-std .ccf-std__head{margin-bottom:24px}
.ccf-v2 .ccf-std .ccf-std__sub{font-size:14px}
.ccf-v2 .ccf-std .ccf-std__governs{padding:18px;margin-bottom:28px}
.ccf-v2 .ccf-std .ccf-checkcard .ccf-standards-bar{grid-template-columns:minmax(0,1fr)}
}

/* ---------- r16: glance row labels on phones ---------- */
/* long single words in the label column hyphenate instead of breaking mid-word */
@media (max-width:600px){.ccf-datasheet .ccf-glance--2col th:first-child{width:40%}.ccf-datasheet .ccf-glance tbody th{-webkit-hyphens:auto;hyphens:auto}}

/* ---------- r17: merged prose sheet (.ccf-sheet--merged) ----------
   section.ccf-section.ccf-sheet.ccf-sheet--merged > .ccf-content > .ccf-sheet__body   (no lead column: the box spans the content width)
     article.ccf-sheet__row#section-id > .ccf-sheet__term h2.ccf-overview-sub + .ccf-sheet__def
   Several short prose sections share one box; each H2 is a row title in the glance-heading style. r17 adds the gold rule between rows. */
.ccf-datasheet .ccf-sheet--merged .ccf-sheet__row{padding:22px 0}
.ccf-datasheet .ccf-sheet--merged .ccf-sheet__row:first-child{padding-top:4px}
.ccf-datasheet .ccf-sheet--merged .ccf-sheet__row:last-child{padding-bottom:16px}
.ccf-datasheet .ccf-sheet--merged .ccf-sheet__row+.ccf-sheet__row{border-top:2px solid #e6ad00}
.ccf-datasheet .ccf-sheet--merged .ccf-sheet__row:target .ccf-overview-sub{color:#ea6d00}
@media (max-width:767px){.ccf-datasheet .ccf-sheet--merged .ccf-sheet__row{padding:16px 0}.ccf-datasheet .ccf-sheet--merged .ccf-sheet__row:first-child{padding-top:4px}}
/* merged rows holding a 3+ column subtable stack (title above content) while the box is narrow, as the separate prose boxes did below 1024px */
@container ccf-sheet (max-width:959px){.ccf-datasheet .ccf-sheet--merged .ccf-sheet__row:has(.ccf-subtable thead th:nth-child(3)){grid-template-columns:minmax(0,1fr);gap:12px}}
/* box text fills its box at any width (was capped at 72ch, which left a narrow column inside wide boxes when zoomed out) */
.ccf-datasheet .ccf-sheet__def :is(p,ul,ol){max-width:none}

/* ---------- r18: light gray rule between rows (.ccf-sheet--rules) ----------
   section.ccf-section.ccf-sheet.ccf-sheet--rules > ... > .ccf-sheet__body > article.ccf-sheet__row x n
   Opt-in: a 1px light gray line between rows (people on /leadership/), with the merged-sheet row spacing. */
.ccf-datasheet .ccf-sheet--rules .ccf-sheet__row{padding:22px 0}
.ccf-datasheet .ccf-sheet--rules .ccf-sheet__head+.ccf-sheet__row{padding-top:22px}
.ccf-datasheet .ccf-sheet--rules .ccf-sheet__row:last-child{padding-bottom:16px}
.ccf-datasheet .ccf-sheet--rules .ccf-sheet__row+.ccf-sheet__row{border-top:1px solid #e9e9e9}
@media (max-width:767px){.ccf-datasheet .ccf-sheet--rules .ccf-sheet__row{padding:16px 0}}
