.elementor-kit-6{--e-global-color-primary:#6EC1E4;--e-global-color-secondary:#54595F;--e-global-color-text:#7A7A7A;--e-global-color-accent:#61CE70;--e-global-color-26bb0da:#090A0B;--e-global-color-3c296ed:#18191B;--e-global-color-45a53b4:#678367;--e-global-color-a26814d:#27282A;--e-global-color-78af48e:#98AE98;--e-global-color-6728332:#F4F4F5;--e-global-color-5f20cb0:#D4D6D8;--e-global-color-2365ad2:#F4F4F5;--e-global-color-38e0205:#FAFAFA;--e-global-color-91835cf:#7B7F84;--e-global-color-098a794:#F4F4F5;--e-global-color-f21ee7f:#F8FBFA;--e-global-color-20bf371:#C67E19;--e-global-color-2e9f2c6:#EAE1A1;--e-global-typography-primary-font-family:"Roboto";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Roboto Slab";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Roboto";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Roboto";--e-global-typography-accent-font-weight:500;background-color:var( --e-global-color-26bb0da );background-image:url("https://dev.alexaddison.design/wp-content/uploads/2026/08/Background-Texture.png");background-position:100px 102%;background-repeat:no-repeat;background-size:cover;overscroll-behavior:none;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1440px;}.e-con{--container-max-width:1440px;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.elementor-widget:not(:last-child){--kit-widget-spacing:8px;}.elementor-element{--widgets-spacing:8px 8px;--widgets-spacing-row:8px;--widgets-spacing-column:8px;}{}h1.entry-title{display:var(--page-title-display);}.elementor-kit-6 e-page-transition{background-color:#FFBC7D;}@media(min-width:770px){.elementor-kit-6{background-attachment:fixed;}}@media(max-width:769px){.elementor-kit-6{background-position:0px 0px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:479px){.elementor-kit-6{background-position:0px 0px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS *//*=== QoL ===*/
/*Remove paragraph auto spacing*/
.elementor-kit-6 p {
    margin-bottom: 0;
}

.elementor-kit-6 p + p {
    margin-top: 0.8em;
}

/* Lists */

.elementor-kit-6 li {
    margin-top: 0.5em;
    margin-bottom: 0.5em;
}

.letter-list li {
    list-style-type: lower-alpha;
}


/* ============================================================
   Alex Addison Design — Design Tokens

   Everything is prefixed --aad- to avoid clashing with Elementor's
   own custom properties or other plugins.
   ============================================================ */

:root {

  /* -----------------------------------------------------------
     COLOUR — Primitives
     Raw palette values. Prefer the semantic tokens below in your
     widget CSS; use these only when a semantic token doesn't fit.
  ----------------------------------------------------------- */
  --aad-color-neutral-0:    #ffffff;
  --aad-color-neutral-50:   #fafafa;
  --aad-color-neutral-100:  #f4f4f5;
  --aad-color-neutral-200:  #ede5e7;
  --aad-color-neutral-300:  #d4d6d8;
  --aad-color-neutral-400:  #a1a5aa;
  --aad-color-neutral-500:  #7b7f84;
  --aad-color-neutral-600:  #52565b;
  --aad-color-neutral-700:  #3f4246;
  --aad-color-neutral-800:  #27282a;
  --aad-color-neutral-900:  #18191b;
  --aad-color-neutral-950:  #090a0b;
  --aad-color-neutral-1000: #000000;

  --aad-color-primary-50:     #f8fbfa;
  --aad-color-primary-100:    #f3f6f5;
  --aad-color-primary-200:    #e3e9e2;
  --aad-color-primary-300:    #ced9ce;
  --aad-color-primary-400:    #98ae98;
  --aad-color-primary-500:    #678367;
  --aad-color-primary-600:    #485d4b;
  --aad-color-primary-700:    #374939;
  --aad-color-primary-800:    #232c21;
  --aad-color-primary-900:    #141f14;
  --aad-color-primary-950:    #080e07;

  --aad-color-secondary-50:   #faf8ec;
  --aad-color-secondary-100:  #f4f0ce;
  --aad-color-secondary-200:  #eae1a1;
  --aad-color-secondary-300:  #decc6b;
  --aad-color-secondary-400:  #d2b840;
  --aad-color-secondary-500:  #bfa22f;
  --aad-color-secondary-600:  #a68426;
  --aad-color-secondary-700:  #806120;
  --aad-color-secondary-800:  #6a4f21;
  --aad-color-secondary-900:  #5b4421;
  --aad-color-secondary-950:  #34240f;

  --aad-color-tertiary-50:   #EFFAFF;
  --aad-color-tertiary-100:  #DFF5FF;
  --aad-color-tertiary-200:  #B8EDFF;
  --aad-color-tertiary-300:  #78DFFF;
  --aad-color-tertiary-400:  #1BCDFF;
  --aad-color-tertiary-500:  #06BDF1;
  --aad-color-tertiary-600:  #009ACE;
  --aad-color-tertiary-700:  #007BA7;
  --aad-color-tertiary-800:  #02668A;
  --aad-color-tertiary-900:  #085472;
  --aad-color-tertiary-950:  #06354B;

  --aad-color-emerald-50:   #F5FAF3;
  --aad-color-emerald-100:  #E6F5E3;
  --aad-color-emerald-200:  #CEEAC8;
  --aad-color-emerald-300:  #A7D89D;
  --aad-color-emerald-400:  #72BB63;
  --aad-color-emerald-500:  #55A245;
  --aad-color-emerald-600:  #418534;
  --aad-color-emerald-700:  #36692C;
  --aad-color-emerald-800:  #2E5427;
  --aad-color-emerald-900:  #274522;
  --aad-color-emerald-950:  #11250E;

  --aad-color-amber-50:   #FDFBED;
  --aad-color-amber-100:  #F8F0C4;
  --aad-color-amber-200:  #F2E495;
  --aad-color-amber-300:  #ECD15D;
  --aad-color-amber-400:  #E7BE38;
  --aad-color-amber-500:  #E0A120;
  --aad-color-amber-600:  #C67E19;
  --aad-color-amber-700:  #A45C19;
  --aad-color-amber-800:  #86481A;
  --aad-color-amber-900:  #6E3C19;
  --aad-color-amber-950:  #3F1E09;

  --aad-color-ruby-50:   #FCF4F4;
  --aad-color-ruby-100:  #FAE6E6;
  --aad-color-ruby-200:  #F7D1D1;
  --aad-color-ruby-300:  #F0B1B1;
  --aad-color-ruby-400:  #E68383;
  --aad-color-ruby-500:  #D85B5B;
  --aad-color-ruby-600:  #C33F3F;
  --aad-color-ruby-700:  #A43131;
  --aad-color-ruby-800:  #882C2C;
  --aad-color-ruby-900:  #562020;
  --aad-color-ruby-950:  #3D1212;

  /* -----------------------------------------------------------
     COLOUR — Alias
     Make primitive values more palettable.
  ----------------------------------------------------------- */

  --aad-color-success-light: var(--aad-color-emerald-100);
  --aad-color-success-default: var(--aad-color-emerald-300);
  --aad-color-success-dark: var(--aad-color-emerald-600);
  --aad-color-success-darkest: var(--aad-color-emerald-950);

  --aad-color-warning-light: var(--aad-color-amber-100);
  --aad-color-warning-default: var(--aad-color-amber-300);
  --aad-color-warning-dark: var(--aad-color-amber-600);
  --aad-color-warning-darkest: var(--aad-color-amber-950);

  --aad-color-error-light: var(--aad-color-ruby-100);
  --aad-color-error-default: var(--aad-color-ruby-300);
  --aad-color-error-dark: var(--aad-color-ruby-600);
  --aad-color-error-darkest: var(--aad-color-ruby-950);


  /* -----------------------------------------------------------
     COLOUR — Semantic (Surface)
  ----------------------------------------------------------- */
  --aad-color-surface-page:     var(--aad-color-neutral-950);  /* main page background */
  --aad-color-surface-dark-1:   var(--aad-color-neutral-900);  /* panel / card / footer background */
  --aad-color-surface-dark-2:   var(--aad-color-neutral-800);
  --aad-color-surface-primary:  var(--aad-color-neutral-900);
  --aad-color-surface-disabled: var(--aad-color-neutral-600);
  --aad-color-surface-disabled-selected:  var(--aad-color-neutral-400);
  --aad-color-surface-success:   var(--aad-color-success-darkest);
  --aad-color-surface-warning:   var(--aad-color-warning-darkest);
  --aad-color-surface-error:  var(--aad-color-error-darkest);
  --aad-color-surface-action: var(--aad-color-primary-500);
  --aad-color-surface-action-hover: var(--aad-color-primary-600);

  /* -----------------------------------------------------------
     COLOUR — Semantic (Text)
  ----------------------------------------------------------- */
  --aad-color-text-headings-on-light: var(--aad-color-primary-950);
  --aad-color-text-headings-on-dark: var(--aad-color-neutral-100);
  --aad-color-text-body-on-light: var(--aad-color-primary-900);
  --aad-color-text-body-on-dark: var(--aad-color-neutral-300);
  --aad-color-text-caption:   var(--aad-color-primary-500);
  --aad-color-text-action: var(--aad-color-neutral-100);
  --aad-color-text-action-hover: var(--aad-color-neutral-50);
  --aad-color-text-disabled:  var(--aad-color-neutral-500);
  --aad-color-text-information:   var(--aad-color-primary-700);
  --aad-color-text-success:   var(--aad-color-success-default);
  --aad-color-text-warning:  var(--aad-color-warning-default);
  --aad-color-text-error:  var(--aad-color-error-default);
  --aad-color-text-on-action: var(--aad-color-neutral-50);
  --aad-color-text-on-disabled:  var(--aad-color-neutral-400);

  /* -----------------------------------------------------------
     COLOUR — Semantic (Icon)
  ----------------------------------------------------------- */
  --aad-color-icon-primary:   var(--aad-color-neutral-100);
  --aad-color-icon-information: var(--aad-color-secondary-300);
  --aad-color-icon-success:   var(--aad-color-success-default);
  --aad-color-icon-warning:   var(--aad-color-warning-default);
  --aad-color-icon-error:  var(--aad-color-error-default);
  --aad-color-icon-action: var(--aad-color-neutral-100);
  --aad-color-icon-action-hover: var(--aad-color-neutral-50);
  --aad-color-on-disabled:    var(--aad-color-neutral-400);
  --aad-color-on-action: var(--aad-color-primary-50);
  --aad-color-on-neutral:  var(--aad-color-primary-100);

  /* -----------------------------------------------------------
     COLOUR — Semantic (Border)
  ----------------------------------------------------------- */
  --aad-color-border-primary: var(--aad-color-neutral-800);
  --aad-color-border-secondary:  var(--aad-color-neutral-600);
  --aad-color-border-information:   var(--aad-color-secondary-300);
  --aad-color-border-success: var(--aad-color-success-dark);
  --aad-color-border-warning: var(--aad-color-warning-dark);
  --aad-color-border-error:   var(--aad-color-error-dark);
  --aad-color-border-disabled:   var(--aad-color-neutral-500);
  --aad-color-border-action-primary:   var(--aad-color-primary-400);
  --aad-color-border-action-primary-hover:   var(--aad-color-primary-500);
  --aad-color-border-action-neutral:   var(--aad-color-neutral-800);
  --aad-color-border-action-neutral-hover:   var(--aad-color-neutral-500);
  --aad-color-border-focus:   var(--aad-color-tertiary-400);

  /* -----------------------------------------------------------
     TYPOGRAPHY — Fonts
  ----------------------------------------------------------- */
  --aad-font-heading: 'Geist', sans-serif;
  --aad-font-body:    'Geist', sans-serif;
  --aad-font-mono:    'Geist Mono', monospace;
 
  /* Weights */
  --aad-font-weight-regular:  400;
  --aad-font-weight-semibold: 600;

  /* -----------------------------------------------------------
     SPACING scale
  ----------------------------------------------------------- */
  --aad-space-3xs: 2px;
  --aad-space-2xs: 4px;
  --aad-space-xs:  8px;
  --aad-space-sm:  12px;
  --aad-space-md:  16px;
  --aad-space-lg:  24px;
  --aad-space-xl:  32px;
  --aad-space-2xl: 48px;
  --aad-space-3xl: 64px;
  --aad-space-4xl: 80px;
  --aad-space-5xl: 96px;

 
  /* -----------------------------------------------------------
     BORDER
  ----------------------------------------------------------- */
  /*Radius*/
  --aad-radius-none: 0px;
  --aad-radius-xs:   2px;
  --aad-radius-sm:   4px;
  --aad-radius-md:   8px;
  --aad-radius-lg:   16px;
  --aad-radius-round:   64px;

  /*Width*/
  --aad-border-width-none: 0px;
  --aad-border-width-sm:   1px;
  --aad-border-width-md:   2px;
  --aad-border-width-lg: 4px;
}

/* ============================================================
   RESPONSIVE ELEMENTS
   ============================================================ */

  /* -----------------------------------------------------------
     TYPOGRAPHY — Font sizes
  ----------------------------------------------------------- */

  /*Desktop - 769px and up*/
   :root {
      --aad-text-display: 105px;
      --aad-text-h1: 90px;
      --aad-text-h2: 67px;
      --aad-text-h3: 51px;
      --aad-text-h4: 38px;
      --aad-text-h5: 28px;
      --aad-text-h6: 21px;
      --aad-text-body-lg: 21px;
      --aad-text-body-md: 16px;
      --aad-text-body-sm: 12px;
   }

   /*Tablet Portrait - 480px to 768px*/
   @media (max-width:768px) {
      :root {
         --aad-text-display:  76px;
         --aad-text-h1: 61px;
         --aad-text-h2: 49px;
         --aad-text-h3: 39px;
         --aad-text-h4: 31px;
         --aad-text-h5: 25px;
         --aad-text-h6: 21px;
         --aad-text-body-lg: 20px;
         --aad-text-body-md: 16px;
         --aad-text-body-sm: 12px;
      }
   }

   /*Mobile - Up to 479px*/
   @media (max-width:479px) {
      :root {
         --aad-text-display: 57px;
         --aad-text-h1: 48px;
         --aad-text-h2: 39px;
         --aad-text-h3: 33px;
         --aad-text-h4: 28px;
         --aad-text-h5: 23px;
         --aad-text-h6: 19px;
         --aad-text-body-lg: 19px;
         --aad-text-body-md: 16px;
         --aad-text-body-sm: 12px;
      }
   }

/* -----------------------------------------------------------
     TYPOGRAPHY — Paragraph Spacing
  ----------------------------------------------------------- */

  /*Desktop - 769px and up*/
   :root {
      --aad-text-p-spacing-display: 103px;
      --aad-text-p-spacing-h1: 88px;
      --aad-text-p-spacing-h2: 65px;
      --aad-text-p-spacing-h3: 49px;
      --aad-text-p-spacing-h4: 36px;
      --aad-text-p-spacing-h5: 26px;
      --aad-text-p-spacing-h6: 19px;
      --aad-text-p-spacing-body-lg: 19px;
      --aad-text-p-spacing-body-md: 14px;
      --aad-text-p-spacing-body-sm: 10px;
   }

   /*Tablet Portrait - 480px to 768px*/
   @media (max-width:768px) {
      :root {
         --aad-text-p-spacing-display:  74px;
         --aad-text-p-spacing-h1: 59px;
         --aad-text-p-spacing-h2: 47px;
         --aad-text-p-spacing-h3: 37px;
         --aad-text-p-spacing-h4: 29px;
         --aad-text-p-spacing-h5: 23px;
         --aad-text-p-spacing-h6: 19px;
         --aad-text-p-spacing-body-lg: 18px;
         --aad-text-p-spacing-body-md: 14px;
         --aad-text-p-spacing-body-sm: 10px;
      }
   }

   /*Mobile - Up to 479px*/
   @media (max-width:479px) {
      :root {
         --aad-text-p-spacing-display: 55px;
         --aad-text-p-spacing-h1: 46px;
         --aad-text-p-spacing-h2: 37px;
         --aad-text-p-spacing-h3: 31px;
         --aad-text-p-spacing-h4: 26px;
         --aad-text-p-spacing-h5: 21px;
         --aad-text-p-spacing-h6: 17px;
         --aad-text-p-spacing-body-lg: 17px;
         --aad-text-p-spacing-body-md: 14px;
         --aad-text-p-spacing-body-sm: 10px;
      }
   }

  /* ============================================================
   TYPOGRAPHY UTILITY CLASSES
   Apply these in the "CSS Classes" field on Elementor Heading /
   Text Editor widgets so the whole team styles type consistently
   without needing to touch custom CSS per-element.
   ============================================================ */


/*Default*/   
.aad-display, .aad-display .elementor-heading-title,
.aad-h1, .aad-h1 .elementor-heading-title,
.aad-h2, .aad-h2 .elementor-heading-title,
.aad-h3, .aad-h3 .elementor-heading-title,
.aad-h4, .aad-h4 .elementor-heading-title,
.aad-h5, .aad-h5 .elementor-heading-title,
.aad-h6, .aad-h6 .elementor-heading-title {
  font-family: var(--aad-font-heading);
  font-weight: var(--aad-font-weight-regular);
  color: var(--aad-color-text-headings-on-dark);
  margin: 0;
  line-height: 1.42;
  letter-spacing: -0.02em;
  text-wrap: balance;
}

.aad-display, .aad-display .elementor-heading-title   { font-size: var(--aad-text-display);}
.aad-h1, .aad-h1 .elementor-heading-title             { font-size: var(--aad-text-h1);}
.aad-h2, .aad-h2 .elementor-heading-title             { font-size: var(--aad-text-h2);}
.aad-h3, .aad-h3 .elementor-heading-title             { font-size: var(--aad-text-h3);}
.aad-h4, .aad-h4 .elementor-heading-title             { font-size: var(--aad-text-h4);}
.aad-h5, .aad-h5 .elementor-heading-title             { font-size: var(--aad-text-h5);}
.aad-h6, .aad-h6 .elementor-heading-title             { font-size: var(--aad-text-h6);}

.aad-body-lg, .aad-body-lg .elementor-text-editor,
.aad-body-md, .aad-body-md .elementor-text-editor,
.aad-body-sm, .aad-body-sm .elementor-text-editor {
  font-family: var(--aad-font-body);
  font-weight: var(--aad-font-weight-regular);
  color: var(--aad-color-text-body-on-dark);
  line-height: 1.5;
  letter-spacing: 0;
  margin: 0;
  text-wrap: balance;
}

.aad-body-lg, .aad-body-lg .elementor-text-editor   { font-size: var(--aad-text-body-lg); }
.aad-body-md, .aad-body-md .elementor-text-editor   { font-size: var(--aad-text-body-md); }
.aad-body-sm, .aad-body-sm .elementor-text-editor   { font-size: var(--aad-text-body-sm); }

/*Mono*/
.aad-display-mono, .aad-display-mono .elementor-heading-title, 
.aad-h1-mono, .aad-h1-mono .elementor-heading-title, 
.aad-h2-mono, .aad-h2-mono .elementor-heading-title, 
.aad-h3-mono, .aad-h3-mono .elementor-heading-title, 
.aad-h4-mono, .aad-h4-mono .elementor-heading-title, 
.aad-h5-mono, .aad-h5-mono .elementor-heading-title, 
.aad-h6-mono, .aad-h6-mono .elementor-heading-title {
  font-family: var(--aad-font-mono);
  font-weight: var(--aad-font-weight-regular);
  color: var(--aad-color-text-headings-on-dark);
  margin: 0;
  line-height: 1.42;
  letter-spacing: -0.02em;
  text-wrap: balance;
}

.aad-display-mono, .aad-display-mono .elementor-heading-title   { font-size: var(--aad-text-display);}
.aad-h1-mono, .aad-h1-mono .elementor-heading-title             { font-size: var(--aad-text-h1);}
.aad-h2-mono, .aad-h2-mono .elementor-heading-title             { font-size: var(--aad-text-h2);}
.aad-h3-mono, .aad-h3-mono .elementor-heading-title             { font-size: var(--aad-text-h3);}
.aad-h4-mono, .aad-h4-mono .elementor-heading-title             { font-size: var(--aad-text-h4);}
.aad-h5-mono, .aad-h5-mono .elementor-heading-title             { font-size: var(--aad-text-h5);}
.aad-h6-mono, .aad-h6-mono .elementor-heading-title             { font-size: var(--aad-text-h6);}

.aad-body-lg-mono, .aad-body-lg-mono .elementor-text-editor, 
.aad-body-md-mono, .aad-body-md-mono .elementor-text-editor, 
.aad-body-sm-mono, .aad-body-sm-mono .elementor-text-editor {
  font-family: var(--aad-font-mono);
  font-weight: var(--aad-font-weight-regular);
  color: var(--aad-color-text-body-on-dark);
  line-height: 1.5;
  letter-spacing: 0;
  margin: 0;
  text-wrap: balance;
}

.aad-body-lg-mono, .aad-body-lg-mono .elementor-text-editor { font-size: var(--aad-text-body-lg); }
.aad-body-md-mono, .aad-body-md-mono .elementor-text-editor { font-size: var(--aad-text-body-md); }
.aad-body-sm-mono, .aad-body-sm-mono .elementor-text-editor { font-size: var(--aad-text-body-sm); }


/* ============================================================
CUSTOM CLASSES
Custom styles for website interactions.
   ============================================================ */

/* === Header === */
/* Logo */
@media (min-width: 769px) {
  body.home .aad-logo img,
  body.home .aad-logo svg {
    transform-origin: 0 0;
    transform: scale(9.1); /* Figma: 373x367 large vs 41x40 default, ~9.1x */
  }
}


/* === Footer ===*/
.aad-footer-link {
    height: 40px;
}


.aad-footer-link a,
.aad-footer-link a:visited {
  position: relative;
  display: inline-block;
  overflow: hidden;
  padding-bottom: 2px;
  color: var(--aad-color-text-body-on-dark);
  text-decoration: none !important;
  white-space: nowrap;
}
 
.aad-footer-link a .aad-footer-link__line {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  background-color: currentColor;
  pointer-events: none
}
  
  
/* === Buttons === */
.aad-btn,
.aad-btn .elementor-button {
  display: inline-flex;
  align-items: center !important;
  justify-content: center !important;
  border-style: solid !important;
  border-radius: var(--aad-radius-xs) !important;
  font-family: var(--aad-font-mono) !important;
  font-weight: var(--aad-font-weight-regular) !important;
  line-height: 1.5 !important;
  white-space: nowrap !important;
  text-decoration: none !important;
  cursor: pointer !important;
  transition: background-color 0.25s cubic-bezier(0.4, 0, 0.2, 1),
              border-color 0.25s cubic-bezier(0.4, 0, 0.2, 1),
              color 0.25s cubic-bezier(0.4, 0, 0.2, 1) !important;
}
 
/* If you're using Elementor's native Button widget with its Icon option,
   its icon and label sit inside their own nested flex wrapper — this
   makes that wrapper's gap match the size modifiers below instead of
   needing its own separate rule. */
.aad-btn .elementor-button-content-wrapper {
  gap: inherit !important;
}
 
.aad-btn:focus-visible,
.aad-btn .elementor-button:focus-visible {
  outline: 1px solid var(--aad-color-border-focus) !important;
  outline-offset: 2px !important;
}

/* ---- Elementor wrapper reset (fixes the "double button" look) */
.aad-btn.elementor-widget-button[data-widget_type] {
  width: fit-content !important;
  max-width: 100% !important;
  display: block;
  background: none !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  height: auto !important;
  color: inherit !important;
  font: inherit !important;
  letter-spacing: normal !important;
  cursor: default !important;
  transition: none !important;
  outline: none !important;
}
 
/* ---- Sizes ---- */
 
.aad-btn--sm, .aad-btn--sm .elementor-button {
  height: 44px !important;
  padding: var(--aad-space-sm) var(--aad-space-md) !important;
  gap: var(--aad-space-2xs) !important;
  font-size: var(--aad-text-body-sm) !important;
  letter-spacing: -0.02em !important; /* matches .aad-mono-sm */
}
.aad-btn--md, .aad-btn--md .elementor-button {
  padding: var(--aad-space-sm) var(--aad-space-lg) !important;
  gap: var(--aad-space-xs) !important;
  font-size: var(--aad-text-body-md) !important;
  letter-spacing: -0.04em !important; /* matches .aad-mono-md */
}
.aad-btn--lg, .aad-btn--lg .elementor-button {
  padding: var(--aad-space-sm) var(--aad-space-lg) !important;
  gap: var(--aad-space-xs) !important;
  font-size: var(--aad-text-body-lg) !important;
  letter-spacing: -0.04em !important; /* matches .aad-mono-lg */
}
 
.aad-btn--sm .aad-btn__icon, .aad-btn--sm .elementor-button-icon svg,
.aad-btn--sm .elementor-button-icon i { width: 18px !important; height: 18px !important; font-size: 18px !important; }
.aad-btn--md .aad-btn__icon, .aad-btn--md .elementor-button-icon svg,
.aad-btn--md .elementor-button-icon i { width: 24px !important; height: 24px !important; font-size: 24px !important; }
.aad-btn--lg .aad-btn__icon, .aad-btn--lg .elementor-button-icon svg,
.aad-btn--lg .elementor-button-icon i { width: 28px !important; height: 28px !important; font-size: 28px !important; }
 
/* ---- Types ----
   :hover / :active / :focus-visible cover the interactive colour
   changes; :disabled and [aria-disabled="true"] both work since
   Elementor's Button widget renders as an <a>, which never matches
   :disabled — aria-disabled is the reliable way to mark one "off". */
 
.aad-btn--primary, .aad-btn--primary .elementor-button {
  background-color: var(--aad-color-surface-action) !important;
  border-width: var(--aad-border-width-none) !important;
  border-color: var(--aad-color-border-action-primary) !important;
  color: var(--aad-color-text-on-action) !important;
}
.aad-btn--primary .elementor-button-icon i, .aad-btn--primary .aad-btn__icon {
  color: var(--aad-color-text-on-action) !important;
}
.aad-btn--primary:hover, .aad-btn--primary:focus-visible, .aad-btn--primary:active,
.aad-btn--primary .elementor-button:hover, .aad-btn--primary .elementor-button:focus-visible, .aad-btn--primary .elementor-button:active {
  background-color: var(--aad-color-surface-action-hover) !important;
  border-color: var(--aad-color-border-action-primary-hover) !important;
  color: var(--aad-color-text-action-hover) !important;
}
.aad-btn--primary:hover .elementor-button-icon i, .aad-btn--primary:focus-visible .elementor-button-icon i, .aad-btn--primary:active .elementor-button-icon i,
.aad-btn--primary .elementor-button:hover .elementor-button-icon i, .aad-btn--primary .elementor-button:focus-visible .elementor-button-icon i, .aad-btn--primary .elementor-button:active .elementor-button-icon i {
  color: var(--aad-color-text-action-hover) !important;
}
.aad-btn--primary:disabled, .aad-btn--primary[aria-disabled="true"],
.aad-btn--primary .elementor-button:disabled, .aad-btn--primary .elementor-button[aria-disabled="true"] {
  background-color: var(--aad-color-surface-disabled) !important;
  border-color: var(--aad-color-border-disabled) !important;
  color: var(--aad-color-text-on-disabled) !important;
  cursor: not-allowed !important;
  pointer-events: none !important;
}
 
.aad-btn--secondary, .aad-btn--secondary .elementor-button {
  background-color: transparent !important;
  border-width: var(--aad-border-width-sm) !important;
  border-color: var(--aad-color-border-action-neutral) !important;
  color: var(--aad-color-text-action) !important;
}
.aad-btn--secondary .elementor-button-icon i, .aad-btn--secondary .aad-btn__icon {
  color: var(--aad-color-text-action) !important;
}
.aad-btn--secondary:hover, .aad-btn--secondary:focus-visible,
.aad-btn--secondary .elementor-button:hover, .aad-btn--secondary .elementor-button:focus-visible {
  background-color: var(--aad-color-surface-dark-1) !important;
  border-color: var(--aad-color-border-action-neutral-hover) !important;
  color: var(--aad-color-text-action-hover) !important;
}
.aad-btn--secondary:active, .aad-btn--secondary .elementor-button:active {
  background-color: var(--aad-color-surface-dark-2) !important;
  border-color: var(--aad-color-border-action-neutral-hover) !important;
  color: var(--aad-color-text-action-hover) !important;
}
.aad-btn--secondary:hover .elementor-button-icon i, .aad-btn--secondary:focus-visible .elementor-button-icon i, .aad-btn--secondary:active .elementor-button-icon i,
.aad-btn--secondary .elementor-button:hover .elementor-button-icon i, .aad-btn--secondary .elementor-button:focus-visible .elementor-button-icon i, .aad-btn--secondary .elementor-button:active .elementor-button-icon i {
  color: var(--aad-color-text-action-hover) !important;
}
.aad-btn--secondary:disabled, .aad-btn--secondary[aria-disabled="true"],
.aad-btn--secondary .elementor-button:disabled, .aad-btn--secondary .elementor-button[aria-disabled="true"] {
  background-color: var(--aad-color-surface-disabled) !important;
  border-color: var(--aad-color-border-disabled) !important;
  color: var(--aad-color-text-on-disabled) !important;
  cursor: not-allowed !important;
  pointer-events: none !important;
}
 
.aad-btn--tertiary, .aad-btn--tertiary .elementor-button {
  background-color: transparent !important;
  border-width: var(--aad-border-width-none) !important;
  color: var(--aad-color-text-action) !important;
}
.aad-btn--tertiary .elementor-button-icon i, .aad-btn--tertiary .aad-btn__icon {
  color: var(--aad-color-text-action) !important;
}
.aad-btn--tertiary:hover, .aad-btn--tertiary:focus-visible,
.aad-btn--tertiary .elementor-button:hover, .aad-btn--tertiary .elementor-button:focus-visible {
  background-color: var(--aad-color-surface-dark-2) !important;
  color: var(--aad-color-text-action-hover) !important;
}
.aad-btn--tertiary:active, .aad-btn--tertiary .elementor-button:active {
  background-color: var(--aad-color-surface-dark-1) !important;
  color: var(--aad-color-text-action-hover) !important;
}
.aad-btn--tertiary:hover .elementor-button-icon i, .aad-btn--tertiary:focus-visible .elementor-button-icon i, .aad-btn--tertiary:active .elementor-button-icon i,
.aad-btn--tertiary .elementor-button:hover .elementor-button-icon i, .aad-btn--tertiary .elementor-button:focus-visible .elementor-button-icon i, .aad-btn--tertiary .elementor-button:active .elementor-button-icon i {
  color: var(--aad-color-text-action-hover) !important;
}
.aad-btn--tertiary:disabled, .aad-btn--tertiary[aria-disabled="true"],
.aad-btn--tertiary .elementor-button:disabled, .aad-btn--tertiary .elementor-button[aria-disabled="true"] {
  background-color: transparent !important;
  color: var(--aad-color-text-disabled) !important;
  cursor: not-allowed !important;
  pointer-events: none !important;
}



/* Availability tag */
.aad-availability-tag {
  opacity: 1;
  transition: opacity 0.3s ease;
}

body.home .aad-availability-tag {
  opacity: 0;
  pointer-events: none;
}

body.home .aad-availability-tag.aad-is-visible {
  opacity: 1;
  pointer-events: auto;
}

/* Tag Styling */
.aad-tag {
    padding-left: var(--aad-space-xs);
    padding-right: var(--aad-space-xs);
    padding-top: var(--aad-space-2xs);
    padding-bottom: var(--aad-space-2xs);
    background:var(--aad-color-surface-dark-1);
    border: solid 1px;
    border-color: var(--aad-color-border-primary);
    border-radius: var(--aad-radius-xs);
    width: fit-content;
}

/* Disabled Colour */
.aad-text-disabled {
    color:var(--aad-color-text-disabled);
}


/* ============================================================
   PROJECT STAGES
   ============================================================ */

.aad-stages {
  /* Tweak per page if needed, e.g. in an Elementor container's
     Custom CSS: .elementor-kit-6 { --aad-stages-step-length: 100vh; } */
  --aad-stages-step-length: 85vh;      /* scroll distance spent on each stage */
  --aad-stages-top: 0px;               /* offset if the pin should start below something */

  /* Page margins: match the other sections (container side padding
     and a 1440px centred inner width). */
  --aad-stages-margin: 20px;
  --aad-stages-max-w: 1440px;
  --aad-stages-side: max(var(--aad-stages-margin), calc((100% - var(--aad-stages-max-w)) / 2));

  /* Height of the fixed header. The script replaces this with the
     real measured value; 76px is the fallback. */
  --aad-stages-header: 76px;
  --aad-stages-gap-y: 24px;            /* minimum clear space under the header */

  /* Content block, centred in the full-height frame. It is never
     taller than the space left under the header, and mirrors the
     Figma proportions (606px of a 798px frame) otherwise. */
  --aad-stages-content-h: clamp(
    380px,
    min(76svh, calc(100svh - 2 * (var(--aad-stages-header) + var(--aad-stages-gap-y)))),
    760px
  );
  --aad-stages-frame-pad-y: max(0px, calc((100svh - var(--aad-stages-content-h)) / 2));
  --aad-stages-pad-top: var(--aad-stages-frame-pad-y);
  --aad-stages-pad-bottom: var(--aad-stages-frame-pad-y);
  --aad-stages-gap-x: clamp(var(--aad-space-lg), 5vw, 96px);

  /* Outgoing stage fades out first, then the next fades in, so the
     two blocks of text never sit on top of each other. */
  --aad-stages-fade-out: 0.3s;
  --aad-stages-fade-in: 0.45s;
  --aad-stages-fade-delay: 0.2s;
  --aad-stages-ease: cubic-bezier(0.4, 0, 0.2, 1);
  --aad-stages-steps: 5;               /* set by the script */
  position: relative;
  width: 100%;
}

/* ---- Base layout (also the no-JS / editor fallback) ---- */

.aad-stages .aad-stages__pin {
  position: relative;
  width: 100%;
  background: none;                    /* no surface behind the section */
}

.aad-stages .aad-stages__stage {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 469fr) 1px minmax(0, 779fr);
  column-gap: var(--aad-stages-gap-x);
  box-sizing: border-box;
  min-height: 600px;
  padding: var(--aad-space-2xl) var(--aad-stages-side);
}

/* Vertical divider between text and image */
.aad-stages .aad-stages__stage::before {
  content: "";
  grid-column: 2;
  grid-row: 1;
  background-color: var(--aad-color-border-primary);
}

.aad-stages .aad-stages__text {
  grid-column: 1;
  grid-row: 1;
  align-self: end;
  display: flex;
  flex-direction: column;
  min-height: 0;
  min-width: 0;
}

.aad-stages__title {
  margin: 0 0 var(--aad-space-md);
}

.aad-stages__body {
  min-height: 0;
}

/* Long body copy reads better ragged than balanced */
.aad-stages__body,
.aad-stages__body p {
  text-wrap: pretty;
}

.aad-stages__body p {
  margin: 0;
}

.aad-stages__body p + p {
  margin-top: var(--aad-space-md);
}

/* Sit the last line on the bottom edge of the image, rather than the
   bottom of its line box (browsers that support text-box-trim only). */
@supports (text-box: trim-end text alphabetic) {
  .aad-stages__body > :last-child {
    text-box: trim-end text alphabetic;
  }
}

.aad-stages .aad-stages__media {
  grid-column: 3;
  grid-row: 1;
  min-height: 0;
  min-width: 0;
  overflow: hidden;
  border-radius: var(--aad-radius-sm);
}

.aad-stages .aad-stages__media img,
.aad-stages .aad-stages__media svg {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Inset image: 683x455 inside the 779x606 frame in Figma. The frame
   still runs from the top of the nav to the bottom of the text. */
.aad-stages .aad-stages__media--inset {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12.4% 6.2%;
  box-sizing: border-box;
  overflow: visible;
}

.aad-stages .aad-stages__media--inset img,
.aad-stages .aad-stages__media--inset svg {
  width: 100%;
  height: auto;
  aspect-ratio: 683 / 455;
  border-radius: var(--aad-radius-sm);
}

/* Generated elements are hidden until the script turns them on */
.aad-stages__nav,
.aad-stages__more {
  display: none;
}

/* ---- Enhanced mode: pinned and fading (added by the script) ---- */

.aad-stages--ready {
  height: calc(100vh + (var(--aad-stages-steps) - 1) * var(--aad-stages-step-length));
  height: calc(100svh + (var(--aad-stages-steps) - 1) * var(--aad-stages-step-length));
}

.aad-stages--ready .aad-stages__pin {
  position: sticky;
  top: var(--aad-stages-top);
  height: 100vh;
  height: 100svh;
  overflow: hidden;
}

.aad-stages--ready .aad-stages__stage {
  position: absolute;
  inset: 0;
  min-height: 0;
  /* Centre the content block in the full-height frame */
  padding: var(--aad-stages-pad-top) var(--aad-stages-side) var(--aad-stages-pad-bottom);
  grid-template-rows: minmax(0, 1fr);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity var(--aad-stages-fade-out) var(--aad-stages-ease),
              visibility 0s linear var(--aad-stages-fade-out);
}

.aad-stages--ready .aad-stages__stage.is-active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition: opacity var(--aad-stages-fade-in) var(--aad-stages-ease) var(--aad-stages-fade-delay),
              visibility 0s linear var(--aad-stages-fade-delay);
}

/* ---- Hairline divider ----
   In enhanced mode the divider is one persistent element on the pin
   (generated by the script), laid out on the same grid as the stages,
   so it stays put while the stages fade in and out. The per-stage
   divider above is only the no-JS / editor fallback. */

.aad-stages .aad-stages__rule {
  display: none;
}

.aad-stages--ready .aad-stages__stage::before {
  display: none;
}

.aad-stages--ready .aad-stages__rule {
  display: grid;
  position: absolute;
  z-index: 0;
  inset: var(--aad-stages-pad-top) var(--aad-stages-side) var(--aad-stages-pad-bottom);
  grid-template-columns: minmax(0, 469fr) 1px minmax(0, 779fr);
  column-gap: var(--aad-stages-gap-x);
  pointer-events: none;
}

.aad-stages__rule-gap {
  display: none;
}

.aad-stages__rule-line {
  grid-column: 2;
  grid-row: 1;
  background-color: var(--aad-color-border-primary);
}

/* ---- Jump-nav (desktop) ---- */

.aad-stages--ready .aad-stages__nav {
  display: flex;
  flex-direction: column;
  position: absolute;
  z-index: 2;
  top: var(--aad-stages-pad-top);      /* same line as the top of the image */
  left: var(--aad-stages-side);
  width: 210px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.aad-stages__nav li {
  margin: 0;
  padding: 0;
}

.aad-stages__nav a,
.aad-stages__nav a:visited {
  display: block;
  box-sizing: border-box;
  height: 40px;
  padding: 0 var(--aad-space-sm);
  border-left: var(--aad-border-width-sm) solid var(--aad-color-border-primary);
  font-family: var(--aad-font-body);
  font-size: var(--aad-text-body-md);
  font-weight: var(--aad-font-weight-regular);
  line-height: 40px;
  color: var(--aad-color-text-disabled);
  text-decoration: none;
  transition: color 0.25s var(--aad-stages-ease),
              border-color 0.25s var(--aad-stages-ease);
}

.aad-stages__nav a:hover {
  color: var(--aad-color-text-body-on-dark);
}

.aad-stages__nav a[aria-current="step"] {
  color: var(--aad-color-text-headings-on-dark);
  border-left-color: var(--aad-color-text-action);
}

.aad-stages__nav a:focus-visible {
  outline: 1px solid var(--aad-color-border-focus);
  outline-offset: 2px;
}

/* ---- Mobile: image on top, text below, "Read more" ---- */

@media (max-width: 768px) {

  .aad-stages {
    --aad-stages-gap-y: 16px;
    --aad-stages-step-length: 70vh;
    /* On mobile the header is tall, so the content fills the space
       below it, with an even margin top and bottom of that space. */
    --aad-stages-content-h: max(
      420px,
      calc(100svh - var(--aad-stages-header) - 2 * var(--aad-stages-gap-y))
    );
    --aad-stages-pad-top: calc(var(--aad-stages-header) + var(--aad-stages-gap-y));
    --aad-stages-pad-bottom: var(--aad-stages-gap-y);
  }

  .aad-stages .aad-stages__stage {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto 1px minmax(0, 1fr);
    row-gap: var(--aad-space-lg);
    min-height: 0;
    padding-top: var(--aad-space-lg);
    padding-bottom: var(--aad-space-lg);
  }

  .aad-stages--ready .aad-stages__stage {
    padding: var(--aad-stages-pad-top) var(--aad-stages-side) var(--aad-stages-pad-bottom);
  }

  .aad-stages .aad-stages__stage::before {
    grid-column: 1;
    grid-row: 2;
  }

  .aad-stages .aad-stages__media {
    grid-column: 1;
    grid-row: 1;
    aspect-ratio: 293 / 228;
    max-height: calc(var(--aad-stages-content-h) * 0.42);
    width: 100%;
  }

  .aad-stages .aad-stages__media--inset {
    padding: 0;
    overflow: hidden;
  }

  .aad-stages .aad-stages__media--inset img,
  .aad-stages .aad-stages__media--inset svg {
    height: 100%;
    aspect-ratio: auto;
    border-radius: 0;
  }

  .aad-stages .aad-stages__text {
    grid-column: 1;
    grid-row: 3;
    align-self: stretch;          /* fill the row so we can measure the space */
    justify-content: flex-end;    /* text sits at the bottom, as in the design */
    padding-top: var(--aad-space-md);
  }

  /* Divider: same rows as the stage (image row, line, text row) */
  .aad-stages--ready .aad-stages__rule {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto 1px minmax(0, 1fr);
    row-gap: var(--aad-space-lg);
  }

  .aad-stages__rule-gap {
    display: block;
    grid-column: 1;
    grid-row: 1;
    aspect-ratio: 293 / 228;
    max-height: calc(var(--aad-stages-content-h) * 0.42);
    width: 100%;
  }

  .aad-stages__rule-line {
    grid-column: 1;
    grid-row: 2;
  }

  /* Hidden while a stage's text is expanded, as the image is too */
  .aad-stages--ready:has(.aad-stages__stage.is-open) .aad-stages__rule {
    display: none;
  }

  /* No room for the jump-nav on mobile (hidden in the design too) */
  .aad-stages--ready .aad-stages__nav {
    display: none;
  }

  /* Text that doesn't fit gets clamped, with a Read more button */
  .aad-stages .aad-stages__stage.is-truncatable:not(.is-open) .aad-stages__body {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: var(--aad-stages-lines, 8);
    overflow: hidden;
  }

  .aad-stages .aad-stages__stage.is-truncatable .aad-stages__more {
    display: inline-flex !important;
    align-self: flex-end;
    margin-top: var(--aad-space-md);
    flex: 0 0 auto;
  }

  .aad-stages__more .aad-stages__more-icon {
    width: 24px;
    height: 24px;
    flex: 0 0 auto;
  }

  /* Open: image and divider make way for the full text */
  .aad-stages .aad-stages__stage.is-open {
    grid-template-rows: minmax(0, 1fr);
  }

  .aad-stages .aad-stages__stage.is-open::before,
  .aad-stages .aad-stages__stage.is-open .aad-stages__media {
    display: none;
  }

  .aad-stages .aad-stages__stage.is-open .aad-stages__text {
    grid-row: 1;
    align-self: stretch;
    padding-top: 0;
  }

  .aad-stages .aad-stages__stage.is-open .aad-stages__body {
    flex: 1 1 auto;
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  .aad-stages .aad-stages__stage.is-open .aad-stages__more {
    width: 100%;
    justify-content: flex-end !important;
    padding-top: var(--aad-space-md);
    border-top: var(--aad-border-width-sm) solid var(--aad-color-border-primary) !important;
    border-radius: 0 !important;
  }
}

/* ---- Reduced motion: swap instantly instead of fading ---- */

@media (prefers-reduced-motion: reduce) {
  .aad-stages--ready .aad-stages__stage,
  .aad-stages--ready .aad-stages__stage.is-active,
  .aad-stages__nav a {
    transition: none;
  }
}

/* ============================================================
   PROJECT CARD (Loop Item) + ROUND ICON BUTTON  (consolidated)
   ============================================================ */

/* ---- Icons follow the button colour (fixes Figma-exported SVGs)  ---- */
.aad-btn .elementor-button-icon svg [stroke]:not([stroke="none"]) { stroke: currentColor; }
.aad-btn .elementor-button-icon svg [fill]:not([fill="none"]) { fill: currentColor; }

/* ---- Button: accent variant (yellow) ---- */
.aad-btn--accent, .aad-btn--accent .elementor-button {
  background-color: var(--aad-color-secondary-200) !important;
  border-width: var(--aad-border-width-none) !important;
  color: var(--aad-color-neutral-950) !important;
}
.aad-btn--accent .elementor-button-icon,
.aad-btn--accent .elementor-button-icon i,
.aad-btn--accent .elementor-button-icon svg {
  color: var(--aad-color-neutral-950) !important;
}
.aad-btn--accent:hover, .aad-btn--accent:focus-visible,
.aad-btn--accent .elementor-button:hover, .aad-btn--accent .elementor-button:focus-visible {
  background-color: var(--aad-color-secondary-300) !important;
}
.aad-btn--accent:active, .aad-btn--accent .elementor-button:active {
  background-color: var(--aad-color-secondary-400) !important;
}

/* ---- Button: round, icon only ---- */
.aad-btn--round .elementor-button {
  padding: 0 !important;
  aspect-ratio: 1;
  border-radius: var(--aad-radius-round) !important;
}
.aad-btn--round.aad-btn--md .elementor-button { width: 48px; height: 48px; }
.aad-btn--round.aad-btn--sm .elementor-button { width: 44px; height: 44px; }
.aad-btn--round.aad-btn--lg .elementor-button { width: 56px; height: 56px; }
.aad-btn--round .elementor-button-text {
  position: absolute !important;
  width: 1px; height: 1px;
  margin: -1px; padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

/* ---- Card ---- */
.aad-card { cursor: pointer; }

.aad-card .aad-card__media {
  position: relative;
  overflow: hidden;
  border-radius: var(--aad-radius-sm);
  aspect-ratio: 3 / 2;
}
.aad-card .aad-card__media--wide { aspect-ratio: 1400 / 690; }

.aad-card .aad-card__media .elementor-widget-image,
.aad-card .aad-card__media .elementor-widget-image .elementor-widget-container {
  height: 100%;
}
.aad-card .aad-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}
.aad-card:hover .aad-card__media img { transform: scale(1.03); }

/* Button pinned bottom right (leave Elementor Position on Default) */
.aad-card .aad-card__action.elementor-widget {
  position: absolute;
  top: auto; left: auto;
  right: var(--aad-space-sm);
  bottom: var(--aad-space-sm);
  width: auto;
  z-index: 2;
}

/* Button: lift + label reveal on card hover (live site only, not in the Elementor editor) */
body:not(.elementor-editor-active) .aad-card .aad-card__action .elementor-button {
  width: auto;
  box-sizing: border-box;
  min-width: 48px;
  aspect-ratio: auto;
  padding: 0 12px !important;
  transition: background-color 0.25s cubic-bezier(0.4, 0, 0.2, 1),
              transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
              box-shadow 0.3s cubic-bezier(0.4, 0, 0.2, 1),
              padding 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
}
body:not(.elementor-editor-active) .aad-card .aad-card__action .elementor-button-content-wrapper {
  flex-direction: row-reverse;
  gap: 0 !important;
}
body:not(.elementor-editor-active) .aad-card .aad-card__action .elementor-button-text {
  display: inline-block;
  position: static !important;
  width: auto; height: auto;
  margin: 0;
  clip-path: none;
  overflow: hidden;
  max-width: 0;
  opacity: 0;
  transition: max-width 0.3s cubic-bezier(0.4, 0, 0.2, 1),
              margin 0.3s cubic-bezier(0.4, 0, 0.2, 1),
              opacity 0.2s ease;
}
body:not(.elementor-editor-active) .aad-card:hover .aad-card__action .elementor-button,
body:not(.elementor-editor-active) .aad-card .aad-card__action .elementor-button:focus-visible {
  transform: scale(1.08);
  box-shadow: 0 8px 20px rgb(0 0 0 / 0.35);
  padding-left: 20px !important;
}
body:not(.elementor-editor-active) .aad-card:hover .aad-card__action .elementor-button-text,
body:not(.elementor-editor-active) .aad-card .aad-card__action .elementor-button:focus-visible .elementor-button-text {
  max-width: 12em;
  margin-right: var(--aad-space-xs);
  opacity: 1;
}

/* Keyboard focus outlines the whole image */
.aad-card:has(.aad-card__action .elementor-button:focus-visible) .aad-card__media {
  outline: 1px solid var(--aad-color-border-focus);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  body:not(.elementor-editor-active) .aad-card .aad-card__media img,
  body:not(.elementor-editor-active) .aad-card .aad-card__action .elementor-button,
  body:not(.elementor-editor-active) .aad-card .aad-card__action .elementor-button-text { transition: none !important; }
  body:not(.elementor-editor-active) .aad-card:hover .aad-card__media img,
  body:not(.elementor-editor-active) .aad-card:hover .aad-card__action .elementor-button,
  body:not(.elementor-editor-active) .aad-card .aad-card__action .elementor-button:focus-visible { transform: none; }
}/* End custom CSS */