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

body {
  margin: 0;
  font-family: var(--font-body);
  background-color: var(--background);
  color: var(--foreground);
}

/* Headings carry the display face. Elementor's heading widget renders into
   .elementor-heading-title rather than a bare h1-h6 in several places (image
   boxes, icon boxes, counters), so both selectors are needed to cover the
   page. Only the family is set here - size, weight and line-height stay
   wherever they were already measured against the Lovable original. */
h1,
h2,
h3,
h4,
h5,
h6,
.elementor-heading-title,
.elementor-image-box-title,
.elementor-icon-box-title,
.elementor-counter-number-wrapper {
  font-family: var(--font-heading);
}

img,
video {
  max-width: 100%;
  height: auto;
  display: block;
}

.container {
  width: 100%;
  max-width: var(--container-max-width);
  margin-inline: auto;
  padding-inline: 1rem;
}

.elementor-icon-wrapper {
  line-height: 0;
}

html {
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

.lwc-carousel-slide {
  opacity: 0;
  transition: opacity 700ms ease-out;
}

.lwc-carousel-slide--active {
  opacity: 1;
}

.ank-result-card {
  border: 1px solid transparent;
  transition: border-color 300ms ease;
}

.ank-result-card:hover {
  border-color: hsl(44, 89%, 59%);
}


/* Services page number badges: gold bg, black text, no hover variant */
.elementor-widget-counter .elementor-counter-number-wrapper{background-color:#F3C239}
.elementor-widget-counter .elementor-counter-number,
.elementor-widget-counter .elementor-counter-number-prefix,
.elementor-widget-counter .elementor-counter-number-suffix{color:#171717!important}


/* Homepage 'Our Services' preview card number badges: gold bg + black text normal; card turns solid gold on hover, so badge flips to black bg + white text to stay visible */
.elementor-element-lwc000049,
.elementor-element-lwc00004l,
.elementor-element-lwc00004x,
.elementor-element-lwc000059{background-color:#F3C239!important;border-color:#F3C239!important}
.elementor-element-lwc000049 span,
.elementor-element-lwc00004l span,
.elementor-element-lwc00004x span,
.elementor-element-lwc000059 span{color:#171717!important}
.elementor-element-lwc00004h:hover .elementor-element-lwc000049,
.elementor-element-lwc00004t:hover .elementor-element-lwc00004l,
.elementor-element-lwc000055:hover .elementor-element-lwc00004x,
.elementor-element-lwc00005h:hover .elementor-element-lwc000059{background-color:#FFFFFF!important;border-color:#FFFFFF!important}
.elementor-element-lwc00004h:hover .elementor-element-lwc000049 span,
.elementor-element-lwc00004t:hover .elementor-element-lwc00004l span,
.elementor-element-lwc000055:hover .elementor-element-lwc00004x span,
.elementor-element-lwc00005h:hover .elementor-element-lwc000059 span{color:#171717!important}


/* Services page 'What We Do' checklist: circular icon badges (2026-08-18 redesign) */
.ank-checklist .elementor-icon-list-item{align-items:flex-start;gap:16px;padding-block:6px}
.ank-checklist .elementor-icon-list-icon{
  display:inline-flex;align-items:center;justify-content:center;
  width:44px;height:44px;min-width:44px;flex:0 0 44px;
  border-radius:50%;background-color:rgba(243,194,57,.16);
  margin-right:0;
}
.ank-checklist .elementor-icon-list-icon svg{width:20px!important;height:20px!important;stroke:#171717!important;color:#171717}
.ank-checklist .elementor-icon-list-text{padding-top:4px}


/* Services page card compaction: fit each card in one viewport, equal heights (2026-08-18) */
.elementor-49 .space-y-8 > :not(:last-child){margin-block-end:16px!important}
.elementor-49 .ank-checklist,
.elementor-49 .ank-chiprow{padding:16px!important}
.elementor-49 .ank-checklist .elementor-icon-list-item{padding-block:3px!important}
.elementor-49 .ank-checklist .elementor-icon-list-items{row-gap:4px!important}
.elementor-49 .ank-checklist .elementor-icon-list-icon{width:36px!important;height:36px!important;min-width:36px!important;flex:0 0 36px!important}
.elementor-49 .ank-checklist .elementor-icon-list-icon svg{width:16px!important;height:16px!important}



/* Homepage Growth Framework step numbers: match the 'Our Services' preview card badge pattern — gold circle/black text normal, white circle/black text on step hover (2026-08-18) */
.elementor-element-lwc00006l .text-tertiary,
.elementor-element-lwc00006q .text-tertiary,
.elementor-element-lwc00006v .text-tertiary,
.elementor-element-lwc000070 .text-tertiary,
.elementor-element-lwc000075 .text-tertiary,
.elementor-element-lwc00007a .text-tertiary{
  display:inline-flex;align-items:center;justify-content:center;
  width:40px;height:40px;min-width:40px;border-radius:50%;
  background-color:#F3C239;color:#171717!important;
  margin-bottom:16px;transition:background-color .3s var(--ank-ease),color .3s var(--ank-ease);
}
.elementor-element-lwc00006o,
.elementor-element-lwc00006t,
.elementor-element-lwc00006y,
.elementor-element-lwc000073,
.elementor-element-lwc000078,
.elementor-element-lwc00007d{
  border-top-color:rgba(23,23,23,0.15)!important;
  transition:border-top-color .3s var(--ank-ease);
}
.elementor-element-lwc00006o:hover,
.elementor-element-lwc00006t:hover,
.elementor-element-lwc00006y:hover,
.elementor-element-lwc000073:hover,
.elementor-element-lwc000078:hover,
.elementor-element-lwc00007d:hover{
  border-top-color:#F3C239!important;
}
.elementor-element-lwc00006o:hover span.text-tertiary,
.elementor-element-lwc00006t:hover span.text-tertiary,
.elementor-element-lwc00006y:hover span.text-tertiary,
.elementor-element-lwc000073:hover span.text-tertiary,
.elementor-element-lwc000078:hover span.text-tertiary,
.elementor-element-lwc00007d:hover span.text-tertiary{
  background-color:#FFFFFF!important;color:#171717!important;
  border:2px solid #171717;
}


/* Services page card illustrations: feather the edges so the image's own cream background dissolves into the white card instead of showing a hard rectangle (2026-08-18) */
.ank-svc-illo-blend img{
  -webkit-mask-image: radial-gradient(ellipse 94% 94% at center, black 62%, transparent 100%);
  mask-image: radial-gradient(ellipse 94% 94% at center, black 62%, transparent 100%);
}


/* Brands page tagline: stretch to fill the full container width edge-to-edge (2026-08-18) */
.ank-brand-tagline{
  display:block;
  width:100%;
  text-align:justify;
  text-align-last:justify;
  -webkit-text-justify:inter-word;
  text-justify:inter-word;
}
@media (max-width:767px){
  .ank-brand-tagline{text-align:left;text-align-last:left}
}


/* Brands page logo marquee: increase logo prominence within the fixed 4/3-visible tile widths (2026-08-18 UX pass) */
@media (min-width:1024px){
  .ank-brand-marquee-wrap{padding:40px!important;}
  .ank-brand-logo-tile img{height:115px!important;max-width:240px!important;}
}
@media (max-width:1023.98px) and (min-width:768px){
  .ank-brand-marquee-wrap{padding:32px!important;}
  .ank-brand-logo-tile img{height:80px!important;max-width:170px!important;}
}
@media (max-width:767.98px){
  .ank-brand-logo-tile img{height:80px!important;max-width:118px!important;}
}


/* --- Home 'Our Growth Framework' section: fit one desktop viewport (added 2026-08-18) --- */
@media (min-width:1024px){
  .elementor-element-lwc00007k{padding-top:36px!important;padding-bottom:36px!important;}
  .elementor-element-lwc00006k{margin-bottom:24px!important;}
  .elementor-element-lwc00007f{row-gap:16px!important;}
  .elementor-element-lwc00006o,.elementor-element-lwc00006t,.elementor-element-lwc00006y,
  .elementor-element-lwc000073,.elementor-element-lwc000078,.elementor-element-lwc00007d{
    padding-top:12px!important;row-gap:10px!important;gap:10px!important;
  }
  .elementor-element-lwc00007k .text-tertiary{margin-bottom:8px!important;}
  .elementor-element-lwc00007k h5,.elementor-element-lwc00007k .elementor-heading-title{line-height:1.2!important;margin-bottom:0px!important;}
  .elementor-element-lwc00007k p{line-height:1.35!important;}
}
