/* ===== Engagement layout (About / Services / Contact) ===== */

/* Title area: clean, no banner; subtle breathing room */
body.aif-engagement header.entry-header{
  position: relative;
  padding-block: clamp(.6rem, 1.8vw, 1rem) .6rem;
}

/* H1 itself */
body.aif-engagement .entry-title{
  position: relative;
  margin: 0;
  line-height: 1.18;          /* compact, confident */
  color: #121212;             /* brand text */
  font-size: clamp(1.85rem, 4.5vw, 2.75rem); /* Responsive scaling */
}

/* Accent underline — sleek segment under the first line (not full width) */
body.aif-engagement .entry-title::after{
  content:"";
  position:absolute;
  left:0; right:auto;
  bottom: calc(-.35rem);
  height: .26rem;              /* ~4px */
  width: min(9ch, 48%);
  border-radius: 999px;
  background:
    linear-gradient(90deg,
      rgba(196,181,253, .88) 0%,
      rgba(196,181,253, .70) 65%,
      rgba(196,181,253, 0)   100%);
  opacity: .95;
}

/* Canonical intro paragraph for ALL engagement pages */
body.aif-engagement .entry-content .aif-intro{
  font-size: clamp(1.05rem, 2.1vw, 1.1875rem);
  line-height: 1.7;
  color: #5B6573;
  max-width: 70ch;
  margin-top: .35rem;
  margin-bottom: 1.2rem;
  position: relative;    /* needed for the glow pseudo */
  z-index: 0;
}

/* Extra clarity when a heading follows */
body.aif-engagement .entry-content .aif-intro + :is(h2,h3){
  margin-top: 1.1rem;
}

/* Allow imagery/icons without clashing */
body.aif-engagement .entry-content img{
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(47,58,74,.15);
}
@media (prefers-color-scheme: dark){
  body.aif-engagement .entry-content img{
    box-shadow: 0 3px 12px rgba(0,0,0,.45);
  }
}

/* Font Awesome—keep it harmonious, not shouty */
body.aif-engagement .entry-content :is(i.fa, i.fas, i.far, i.fab, svg.fa-icon){
  color: inherit; /* icons follow text color where placed */
  opacity: .95;
}

/* Paragraphs/links: keep core brand rhythm */
body.aif-engagement .entry-content p{ margin-block: .7rem; }
body.aif-engagement .entry-content a{
  color: #2F3A4A;
  text-underline-offset: .14em;
}
body.aif-engagement .entry-content a:hover{
  color: #27313E;
}

/* Dark mode harmony */
@media (prefers-color-scheme: dark){
  body.aif-engagement .entry-title{ 
    color: #EEF1F6;
  }
  body.aif-engagement .entry-content h2,
  body.aif-engagement .aif-section__title{
    color: #EEF1F6;
  }
  body.aif-engagement .entry-content h3,
  body.aif-engagement .aif-card__title{
    color: #EEF1F6;
  }
  body.aif-engagement .entry-title::after{
    background:
      linear-gradient(90deg,
        rgba(196,181,253, .85) 0%,
        rgba(196,181,253, .65) 60%,
        rgba(196,181,253, 0)   100%);
    opacity: .95;
  }
  body.aif-engagement .entry-content .aif-intro{ color: #A8B0BE; }
  body.aif-engagement .entry-content a{ color: #C4B5FD; }
  body.aif-engagement .entry-content a:hover{ color: #D8CCFF; }
/* Remove the grayish content wrapper background in dark mode */
  body.aif-engagement .inside-article{
    background: transparent !important;
  }
}

/* Respect reduced motion — (placeholder in case we animate later) */
@media (prefers-reduced-motion: reduce){
  /* no animations defined currently */
}

/* Nice jump targets under sticky headers on long pages */
body.aif-engagement .entry-content :is(h2,h3,h4){ scroll-margin-top: 6.5rem; }

/* H2 section titles - larger, scalable */
body.aif-engagement .entry-content h2,
body.aif-engagement .aif-section__title{
  font-size: clamp(1.5rem, 3.8vw, 2.25rem);
  line-height: 1.25;
  margin-top: 1.8rem;
  margin-bottom: .8rem;
}

/* H3 headings - cards, process steps, FAQs */
body.aif-engagement .entry-content h3,
body.aif-engagement .aif-card__title{
  font-size: clamp(1.25rem, 3vw, 1.75rem);
  line-height: 1.3;
  margin-top: 1.2rem;
  margin-bottom: .6rem;
}

/* Small screens: keep underline elegant */
@media (max-width: 480px){
  body.aif-engagement header.entry-header{ padding-block: .7rem .5rem; }
  body.aif-engagement .entry-title::after{
    bottom: calc(-.32rem);
    height: .22rem;
    width: min(6.5ch, 42%);
  }
/* Intro paragraph: slightly smaller, a bit more air */
  body.aif-engagement .entry-content .aif-intro{
    font-size: clamp(1rem, 2.6vw, 1.125rem);
    margin-top: .45rem;      /* space from underline */
    margin-bottom: .9rem; 
  }
/* Comfortable jump targets under sticky header */
  body.aif-engagement .entry-content :is(h2,h3){ scroll-margin-top: 6.25rem; }
}

/* ===== Contact page inside engagement template ===== */
body.aif-engagement .aif-contact{
  margin-top: .25rem;
}

/* ===== Contact page inside engagement template ===== */
body.aif-engagement .aif-contact{
  margin-top: .25rem;
}

/* Photo + intro wrapper - flexbox layout */
body.aif-engagement .aif-contact-intro-wrapper{
  display: flex;
  gap: 1.5rem;
  align-items: flex-start;
  margin-bottom: 1.2rem;
}

/* Intro text takes available space */
body.aif-engagement .aif-intro-text-wrapper{
  flex: 1 1 auto;
}

/* Photo styling - circular, fixed size */
body.aif-engagement .aif-contact-photo{
  flex: 0 0 auto;
  width: clamp(120px, 15vw, 160px);
  height: clamp(120px, 15vw, 160px);
  border-radius: 50%;
  overflow: hidden;
  box-shadow: 0 3px 12px rgba(47,58,74,.15);
  border: 3px solid #FAFAFC;
  order: 2; /* Visually position on the right */
}

body.aif-engagement .aif-contact-photo img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Channels list */
/* Channels list */
body.aif-engagement .aif-channel{
  display: flex;
  align-items:flex-start; /* was center */
  gap: .5rem;
  margin-block: .6rem;
  max-width: 70ch;
}
body.aif-engagement .aif-channel__icon{
  line-height: 1;
  padding-top: .28rem; /* vertical align with first line */
  flex: 0 0 auto;
  font-size: 1.25rem;
  color: #C4B5FD; /* accent */
  opacity: .95;
}
body.aif-engagement .aif-channel__text{
  margin: 0;
}

body.aif-engagement .aif-channel__text a:focus-visible{
  outline: 2px solid transparent;
  box-shadow:
    0 0 0 3px var(--aif-bg),
    0 0 0 5px var(--aif-accent);
  border-radius: 6px;
}

/* Phone number hint on hover + focus */
body.aif-engagement .aif-phone-link{
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: .35rem;
}

body.aif-engagement .aif-phone-link::after{
  content: attr(data-phone);
  display: none;
  margin-left: .45rem;
  padding: .12rem .45rem;
  border-radius: 999px;
  font-size: .85em;
  line-height: 1.2;
  background: rgba(196,181,253,.22); /* subtle accent tint */
  border: 1px solid rgba(39,49,62,.18);
  color: inherit;
  white-space: nowrap;
}

body.aif-engagement .aif-phone-link:hover::after,
body.aif-engagement .aif-phone-link:focus-visible::after{
  display: inline-block;
}

/* Dark scheme tweak (optional but nice) */
@media (prefers-color-scheme: dark){
  body.aif-engagement .aif-phone-link::after{
    border-color: rgba(255,255,255,.18);
    background: rgba(196,181,253,.16);
  }
  body.aif-engagement .aif-channel__icon{ color: #C4B5FD; opacity: .95; }
  body.aif-engagement .aif-contact__lead{ color: #A8B0BE; }
  
  /* Photo border and shadow in dark mode */
  body.aif-engagement .aif-contact-photo{
    border-color: #0F1319;
    box-shadow: 0 4px 16px rgba(0,0,0,.4);
  }  
}

/* Forced colors: let system handle it cleanly */
@media (forced-colors: active){
  body.aif-engagement .aif-phone-link::after{
    background: Canvas;
    border: 1px solid ButtonText;
  }
}

/* Booking section */
body.aif-engagement .aif-booking{
  margin-block: 1rem 1.2rem;
}
body.aif-engagement .aif-booking__button{
  margin-top: .4rem;
}

/* Form section */
body.aif-engagement .aif-contact__heading{
  margin-top: 1.2rem;
}
body.aif-engagement .aif-contact__lead{
  color: #5B6573;
  max-width: 70ch;
  margin-top: .35rem;
  margin-bottom: .8rem;
}

/* Dark mode */
@media (prefers-color-scheme: dark){
  body.aif-engagement .aif-channel__icon{ color: #C4B5FD; opacity: .95; }
  body.aif-engagement .aif-contact__lead{ color: #A8B0BE; }
  body.aif-engagement .aif-contact-form input[type="text"],
  body.aif-engagement .aif-contact-form input[type="email"],
  body.aif-engagement .aif-contact-form input[type="tel"],
  body.aif-engagement .aif-contact-form textarea,
  body.aif-engagement .aif-contact-form select{
    background: #171c23 !important;
    color: #EEF1F6;
    border-color: rgba(255,255,255,.18);
  }

  body.aif-engagement .aif-contact-form
  :is(#wpforms-147, #wpforms-2004)
  :is(
    #wpforms-147-field_4,
    #wpforms-2004-field_4,
    #wpforms-147-field_1,
    #wpforms-2004-field_1
  )::placeholder{
    color: #A8B0BE;
  }

  body.aif-engagement .aif-contact-form
  :is(#wpforms-147, #wpforms-2004)
  :is(
    #wpforms-147-field_2,
    #wpforms-2004-field_2
  )::placeholder{
    color: #A8B0BE;
  }

  body.aif-engagement .aif-contact-form
  :is(#wpforms-147, #wpforms-2004)
  input::placeholder,
  body.aif-engagement .aif-contact-form
  :is(#wpforms-147, #wpforms-2004)
  textarea::placeholder{
    color: #A8B0BE !important;
    opacity: 1 !important;
  }

/* Fix character counter contrast in dark mode */
  body.aif-engagement .aif-contact-form
  .wpforms-field-limit-text{
    color: #B8BEC8 !important;
  }

body.aif-engagement .aif-contact-form label.wpforms-field-label{
  color: #EEF1F6 !important;
}
  body.aif-engagement .aif-contact-form
  :is(#wpforms-147, #wpforms-2004)
  .wpforms-field-gdpr-checkbox li > label{
    color: #EEF1F6;
  }
}

/* Mobile tweaks */
@media (max-width: 480px){
  body.aif-engagement .aif-channel{ gap: .55rem; }
  body.aif-engagement .aif-channel__icon{ font-size: 1.15rem; }
  body.aif-engagement .aif-contact-form{ max-width: 100%; }
  body.aif-engagement .aif-channel{ gap: .55rem; }
  body.aif-engagement .aif-channel__icon{ font-size: 1.15rem; }
  body.aif-engagement .aif-contact-form{ max-width: 100%; }
  
  /* Photo - center and stack on mobile */
  body.aif-engagement .aif-contact-intro-wrapper{
    flex-direction: column;
    align-items: center;
    gap: 1rem;
  }
  
  body.aif-engagement .aif-contact-photo{
    order: -1; /* Photo first visually on mobile */
    width: 140px;
    height: 140px;
    margin-bottom: .4rem;
  }
}

/* SR-only helper (unchanged) */
.sr-only{
  position:absolute !important;
  width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

/* External link: visual NE arrow via CSS only */
a.ext{ position:relative; white-space:nowrap; }
a.ext::after{
  content:"";
  display:inline-block;
  width:.9em; height:.9em;
  margin-left:.35ch;
  vertical-align:baseline;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml;utf8,\
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'>\
<path fill='%23000' d='M10.5 1H15v4.5a1 1 0 1 1-2 0V4.414L5.707 11.707a1 1 0 0 1-1.414-1.414L11.586 3H10.5a1 1 0 1 1 0-2z'/>\
</svg>") center / contain no-repeat;
          mask: url("data:image/svg+xml;utf8,\
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'>\
<path fill='%23000' d='M10.5 1H15v4.5a1 1 0 1 1-2 0V4.414L5.707 11.707a1 1 0 0 1-1.414-1.414L11.586 3H10.5a1 1 0 1 1 0-2z'/>\
</svg>") center / contain no-repeat;
}
/* Hover tone (brand) */
body:not([data-theme="dark"]) a.ext:hover{ color:#27313E; }
@media (prefers-color-scheme: dark){
  a.ext::after{ opacity:.95; }
}
/* High-contrast/forced-colors: hide decoration */
@media (forced-colors: active){
  a.ext::after{ display:none; }
}
@media (prefers-contrast: more){
  a.ext::after{ opacity:.8; }
}
/* Safety: if any DOM arrow sneaks in, nuke it so only ::after shows */
a.ext .ext-icon,
a.ext svg.ext-icon{ display:none !important; }

/* ===== Contact form visual refinements (scoped to this form) ===== */
body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004).wpforms-render-modern{
  /* keep container max-width from your base rules */

  /* Backstop: make WPForms Modern pick your brand via vars */
  --wpforms-color-primary: #2F3A4A;
  --wpforms-color-primary-dark: #27313E;
  --wpforms-button-background-color: #2F3A4A;
  --wpforms-button-text-color: #FFFFFF;
  --wpforms-button-border-color: transparent;
}

/* 1) Field rhythm and label proximity */
body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004) .wpforms-field{
  margin-block: .85rem; /* more even vertical rhythm */
}

body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004) .wpforms-field label.wpforms-field-label{
  margin-bottom: .35rem; /* slightly tighter label-to-input */
  font-weight: 600;
  color: #2F3A4A;
}

/* 2) Inputs & textareas */
body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004) input[type="text"],
body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004) input[type="email"],
body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004) input[type="tel"],
body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004) select{
  min-height: 2.75rem; /* single-line comfortable target */
  line-height: 1.35;
}
body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004) textarea{
  min-height: 9.5rem; /* friendlier default for message */
  line-height: 1.55;
  resize: vertical;
}
body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004) input:hover,
body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004) textarea:hover,
body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004) select:hover{
  border-color: rgba(39,49,62,.28);
  background: #FFFFFF; /* subtle lift in light mode */
}

/* 3) Name field */
body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004) .wpforms-field-name .wpforms-field-row{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .8rem;
}
@media (max-width: 640px){
  body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004) .wpforms-field-name .wpforms-field-row{
    grid-template-columns: 1fr; /* stack neatly */
    gap: .6rem;
  }
}

/* 4) GDPR checkbox row */
body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004) .wpforms-field-gdpr-checkbox ul{
  list-style: none;
  margin: 0;
  padding: 0;
}
body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004) .wpforms-field-gdpr-checkbox li{
  display: flex;
  align-items: start;
  gap: .55rem;
}
body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004) .wpforms-field-gdpr-checkbox input[type="checkbox"]{
  margin-top: .2rem; /* optical alignment with first line */
}

/* High contrast: make the GDPR checkbox "selected" state obvious */
@media (forced-colors: active){

  /* Let Windows draw the checkmark using system colors */
  .aif-contact .wpforms-container form.wpforms-form
  :is(#wpforms-147-field_6, #wpforms-2004-field_6) input[type="checkbox"]{
    forced-color-adjust: auto;
  }

  /* Add a dashed selection capsule around the chosen option */
  .aif-contact .wpforms-container form.wpforms-form
  :is(#wpforms-147-field_6, #wpforms-2004-field_6) li.wpforms-selected{
    border: 2px dashed Highlight;
    border-radius: 4px;
    padding-inline: .45rem;
    padding-block: .15rem;
  }

  /* When keyboard focus is in the checkbox, make the capsule stand out */
  .aif-contact .wpforms-container form.wpforms-form
  :is(#wpforms-147-field_6, #wpforms-2004-field_6) li.wpforms-selected:focus-within{
    outline: 2px solid Highlight;
    outline-offset: 2px;
  }
}

/* ===== Submit button: strong override for GP + WPForms Modern ===== */
body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004).wpforms-render-modern .wpforms-submit-container{
  margin-top: 1rem;
  margin-bottom: .25rem;
}
/* Generic target (kept for compatibility) */
body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004).wpforms-render-modern
  :is(button.wpforms-submit, input.wpforms-submit[type="submit"]) {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: .5ch;
  -webkit-appearance: none;
  appearance: none;
  text-shadow: none !important;
  box-shadow: none !important;
  padding: .78rem 1.15rem !important;
  border-radius: 12px !important;
  border: 1px solid transparent !important;
  background: #2F3A4A !important;   /* primary */
  color: #FFFFFF !important;
  font: inherit;
  font-weight: 600 !important;
  line-height: 1.2;
  transition: transform .06s ease, background-color .12s ease, border-color .12s ease !important;
  cursor: pointer;
}
body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004).wpforms-render-modern
  :is(button.wpforms-submit:hover, input.wpforms-submit[type="submit"]:hover){
  background: #27313E !important;   /* darker primary */
}
body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004).wpforms-render-modern
  :is(button.wpforms-submit:active, input.wpforms-submit[type="submit"]:active){
  transform: translateY(1px);
}
body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004).wpforms-render-modern
  :is(button.wpforms-submit:focus-visible, input.wpforms-submit[type="submit"]:focus-visible){
  outline: 2px solid #C4B5FD !important;   /* accent ring */
  outline-offset: 2px !important;
}
body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004).wpforms-render-modern
  :is(button.wpforms-submit[disabled], input.wpforms-submit[type="submit"][disabled]){
  opacity: .85 !important;
  cursor: progress !important;
  transform: none !important;
}

/* Exact ID pin (wins final): */
body.aif-engagement .aif-contact-form
  :is(#wpforms-147, #wpforms-2004).wpforms-render-modern form:is(#wpforms-form-147, #wpforms-form-2004)
  .wpforms-submit-container > :is(#wpforms-submit-147, #wpforms-submit-2004).wpforms-submit{
  background: #2F3A4A !important;
  background-color: #2F3A4A !important;
  color: #FFFFFF !important;
  border-color: transparent !important;
  padding: .78rem 1.15rem !important;
  border-radius: 12px !important;
  font-weight: 600 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}
body.aif-engagement .aif-contact-form
  :is(#wpforms-147, #wpforms-2004).wpforms-render-modern form:is(#wpforms-form-147, #wpforms-form-2004)
  .wpforms-submit-container > :is(#wpforms-submit-147, #wpforms-submit-2004).wpforms-submit:hover{
  background: #27313E !important;
  background-color: #27313E !important;
}
body.aif-engagement .aif-contact-form
  :is(#wpforms-147, #wpforms-2004).wpforms-render-modern form:is(#wpforms-form-147, #wpforms-form-2004)
  .wpforms-submit-container > :is(#wpforms-submit-147, #wpforms-submit-2004).wpforms-submit:focus-visible{
  outline: 2px solid #C4B5FD !important;
  outline-offset: 2px !important;
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce){
  body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004).wpforms-render-modern
    :is(button.wpforms-submit, input.wpforms-submit[type="submit"]){
    transition: none !important;
  }
}

/* 6) Errors: calm but clear */
body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004) .wpforms-error{
  color: #8E2B2B; /* accessible red tone on light */
  font-size: .95rem;
  margin-top: .35rem;
}
body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004) .wpforms-field input.wpforms-error,
body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004) .wpforms-field textarea.wpforms-error,
body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004) .wpforms-field select.wpforms-error{
  border-color: rgba(185, 38, 38, .75);
  background: #FFF7F7;
}

@media (forced-colors: active){
  /* Error fields in the contact form: make border dashed + thicker */
  .aif-contact .wpforms-container form.wpforms-form
  input.wpforms-error,
  .aif-contact .wpforms-container form.wpforms-form
  textarea.wpforms-error,
  .aif-contact .wpforms-container form.wpforms-form
  select.wpforms-error{
    border-style: dashed !important;
    border-width: 2px !important;   /* a bit stronger than normal */
    forced-color-adjust: auto;      /* let HC pick the colour */
  }
}

/* 7) Success/confirmation message look */
body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004) .wpforms-confirmation-container-full{
  border-radius: 12px;
  border: 1px solid rgba(39,49,62,.18);
  background: linear-gradient(180deg, rgba(196,181,253,.10), rgba(196,181,253,.04));
  padding: 1rem .95rem;
  margin-block: .75rem;
}

/* 8) Dark mode counterparts */
@media (prefers-color-scheme: dark){
  body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004) input:hover,
  body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004) textarea:hover,
  body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004) select:hover{
    background: #0F1319;
    border-color: rgba(255,255,255,.22);
  }
  body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004) .wpforms-error{
    color: #FFB4B4;
  }
  body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004) .wpforms-field input.wpforms-error,
  body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004) .wpforms-field textarea.wpforms-error,
  body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004) .wpforms-field select.wpforms-error{
    border-color: rgba(255, 99, 99, .85);
    background: #171C23;
  }
  body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004) .wpforms-confirmation-container-full{
    border-color: rgba(255,255,255,.16);
    background: linear-gradient(180deg, rgba(196,181,253,.14), rgba(196,181,253,.06));
  }
}

/* ===== AIF double-ring focus (template-scoped) ===== */
/* Gap ring color = page surface; outer ring = accent */
body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004).wpforms-render-modern{
  --aif-ring-gap: var(--aif-bg);        /* light surface */
  --aif-ring-accent: var(--aif-accent); /* #C4B5FD */
}

/* Dark scheme: make the gap ring match dark surface */
@media (prefers-color-scheme: dark){
  body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004).wpforms-render-modern{
    --aif-ring-gap: #121212;
  }
}

/* Controls that should receive the brand focus */
body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004).wpforms-render-modern
  :is(
    input[type="text"],
    input[type="email"],
    input[type="tel"],
    input[type="url"],
    input[type="search"],
    input[type="number"],
    input[type="checkbox"],
    select,
    textarea,
    button.wpforms-submit,
    input.wpforms-submit[type="submit"]
  ){
  outline: none; /* we'll supply our own ring */
}

/* Keyboard focus — double ring */
body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004).wpforms-render-modern
  :is(
    input[type="text"],
    input[type="email"],
    input[type="tel"],
    input[type="url"],
    input[type="search"],
    input[type="number"],
    input[type="checkbox"],
    select,
    textarea,
    button.wpforms-submit,
    input.wpforms-submit[type="submit"]
  ):focus-visible{
  /* Clear any skin shadows, then draw gap + accent rings */
  box-shadow:
    0 0 0 3px var(--aif-ring-gap),
    0 0 0 5px var(--aif-ring-accent) !important;
  outline: 2px solid transparent; /* prevent UA outlines from stacking */
  outline-offset: 0;
  border-color: rgba(39,49,62,.45); /* slight emphasis on focused border */
}

/* Mouse focus fallback (Safari/old) — same ring */
body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004).wpforms-render-modern
  :is(
    input[type="text"],
    input[type="email"],
    input[type="tel"],
    input[type="url"],
    input[type="search"],
    input[type="number"],
    input[type="checkbox"],
    select,
    textarea,
    button.wpforms-submit,
    input.wpforms-submit[type="submit"]
  ):focus{
  box-shadow:
    0 0 0 3px var(--aif-ring-gap),
    0 0 0 5px var(--aif-ring-accent) !important;
  outline: 2px solid transparent;
}

/* Remove any leftover Modern-skin inner glow on focused elements */
body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004).wpforms-render-modern
  :is(input, select, textarea, button.wpforms-submit, input.wpforms-submit):focus{
  background-image: none !important;
}

/* Checkbox: keep hitbox tidy while showing the same ring */
body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004).wpforms-render-modern
  .wpforms-field-gdpr-checkbox input[type="checkbox"]:focus,
body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004).wpforms-render-modern
  .wpforms-field-gdpr-checkbox input[type="checkbox"]:focus-visible{
  border-radius: 4px;
}

/* Forced-colors/High Contrast: defer to system outline (no custom shadows) */
@media (forced-colors: active){
  body.aif-engagement .aif-contact-form :is(#wpforms-147, #wpforms-2004).wpforms-render-modern
    :is(input, select, textarea, button.wpforms-submit, input.wpforms-submit){
    box-shadow: none !important;
    outline: 2px solid Highlight !important; /* system color */
    outline-offset: 2px !important;
  }
}

/* =====================================================================
   AIF — Services page (Engagement template)
   Purpose: Light abstract backdrops + gentle connectors; no stock photos.
   Scope: body.aif-engagement .entry-content
   ===================================================================== */


/* ---------------------------------------------------------------------
  0) BASE / SAFEGUARDS
--------------------------------------------------------------------- */

body.aif-engagement .entry-content { /* scope anchor */ }

@media (forced-colors: active){
  /* Hide purely decorative pseudos in HCM */
  body.aif-engagement .entry-content *::before,
  body.aif-engagement .entry-content *::after{
    content: none !important;
  }
}

@media (prefers-reduced-motion: reduce){
  body.aif-engagement .aif-ambient-anim{
    animation: none !important;
    transition: none !important;
  }
  body.aif-engagement .entry-content .aif-illo--lens{
    animation: none !important;
  }
}

/* Make in-page jumps land below sticky header */
body.aif-engagement .entry-content :is(h2,h3,h4){
  scroll-margin-top: 6.5rem;
}

/* ---------------------------------------------------------------------
  1) INTRO (corner radial + optional SVG)
--------------------------------------------------------------------- */

body.aif-engagement .entry-content .aif-intro::before{
  content:"";
  position:absolute;
  inset: -1.25rem -1rem auto -1.25rem;
  block-size: clamp(8rem, 24vw, 14rem);
  inline-size: clamp(12rem, 40vw, 26rem);
  background:
    radial-gradient(120% 80% at 0% 0%,
      rgba(196,181,253,.22) 0%,
      rgba(196,181,253,.12) 40%,
      rgba(196,181,253,0)   72%);
  pointer-events: none;
  z-index: -1;
  border-radius: 20px;
}

/* Intro illustration */
body.aif-engagement .entry-content .aif-illo{
  display: block;
  inline-size: clamp(80px, 14vw, 110px);
  block-size: auto;
  margin: -.15rem 0 .95rem;
  vertical-align: middle;
  color: currentColor;
  animation: aifFadeIn 900ms ease-out both;
}
body.aif-engagement .entry-content .aif-illo[aria-hidden="true"]{
  opacity: .9;
}
@media (max-width: 540px){
  body.aif-engagement .entry-content .aif-illo--lens{
    inline-size: clamp(82px, 26vw, 110px);
    margin: 0 auto .9rem;
  }
}

/* one-time entrance */
@keyframes aifFadeIn{
  from{ opacity: 0; transform: translateY(4px); }
  to{   opacity: 1; transform: translateY(0);   }
}

/* ---------------------------------------------------------------------
  2) TOC (mobile toggle + divider)
--------------------------------------------------------------------- */

.aif-toc { position: relative; margin-block: .25rem .75rem; }

.aif-toc__list{
  list-style: none; 
  padding-left: 0; 
  margin: .25rem 0 0; 
  display: flex; 
  flex-wrap: wrap; 
  gap: .4rem .85rem;
  align-items: center; /* Keep this */
}

.aif-toc__list a{
  display: inline-flex; /* Changed from inline-block to inline-flex */
  align-items: center; /* Ensures text baseline is consistent */
  line-height: 1.6; 
  text-decoration: underline; 
  text-underline-offset: .14em;
  padding: .35rem .1rem;
  vertical-align: middle; /* Backup for browsers that don't fully support inline-flex alignment */
}

.aif-toc__list a:not(:last-child)::after{
  content: "\·"; 
  margin-left: .5em; 
  opacity: .3;
}

.aif-toc::after{
  content:""; display:block; margin-block: .5rem 0;
  inline-size: 100%; block-size: 1px;
  background-image: linear-gradient(90deg,
    rgba(47,58,74,.18) 0%, rgba(47,58,74,.10) 50%, rgba(47,58,74,0) 100%);
}

/* toggle */
.aif-toc__toggle{
  display: inline-block; font: inherit;
  padding: .55rem .75rem;
  border-radius: 10px;
  border: 1px solid rgba(47,58,74,.18);
  background: #fff; color: #2F3A4A;
}
@media (max-width: 719px){
  .aif-toc .aif-toc__list{ display: none; }
  .aif-toc[data-open="true"] .aif-toc__list{ display: flex; }
}
@media (min-width: 720px){
  .aif-toc__toggle{ display: none; }
  .aif-toc__list{ display: flex !important; }
}


/* ---------------------------------------------------------------------
  3) SERVICES SECTION (backdrop only)
--------------------------------------------------------------------- */

body.aif-engagement .entry-content .aif-services-blocks{
  position: relative;
  z-index: 0;
  overflow: hidden;
}
body.aif-engagement .entry-content .aif-services-blocks::before{
  content:"";
  position:absolute;
  top: 1.1rem; bottom: 0; left: 0; right: 0;
background:
  linear-gradient(180deg,
    rgba(196,181,253,.06) 0%,
    rgba(196,181,253,0) 40%);
  mask-image: linear-gradient(180deg, rgba(0,0,0,1) 0%, rgba(0,0,0,.9) 25%, rgba(0,0,0,0) 100%);
  pointer-events: none;
  z-index: -1;
}

/* 4) SERVICES GRID (cards wrapper) */
body.aif-engagement .entry-content .aif-cards.aif-cards--services{
  display: grid !important;                 /* beat theme flex */
  grid-template-columns: 1fr;               /* mobile */
  gap: clamp(1rem, 2.5vw, 1.25rem);
  --wp--style--block-gap: 0;
}

/* Tablet/desktop */
@media (min-width: 768px){
  body.aif-engagement .entry-content .aif-cards.aif-cards--services{
    grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)) !important;
  }
}

/* Neutralise rogue widths/margins on children */
body.aif-engagement .entry-content .aif-cards.aif-cards--services > *{
  margin: 0 !important;
  min-width: 0;
}
body.aif-engagement .entry-content .aif-cards.aif-cards--services > *[class*="align"]{
  width: auto !important;
  max-width: none !important;
}

/* ---------------------------------------------------------------------
  5) CARD BASE + CONTENT RHYTHM
--------------------------------------------------------------------- */

body.aif-engagement .entry-content .aif-cards--services .aif-card{
  position: relative;
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 2px 12px rgba(47,58,74,.08);
}

body.aif-engagement .entry-content .aif-cards--services .aif-card--service{
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: clamp(1rem, 2.4vw, 1.3rem) clamp(1rem, 2.4vw, 1.4rem);
}

/* CTA row pinned to bottom */
body.aif-engagement .entry-content .aif-cards--services .aif-card__cta{
  margin-top: auto;
  margin-bottom: .25rem;
  padding-top: .65rem;
  border-top: 1px solid rgba(47,58,74,.10);
}

/* headings + lists + meta */
body.aif-engagement .entry-content .aif-cards--services .aif-card--service h3{
  margin: .15rem 0 .6rem; line-height: 1.25;
}
body.aif-engagement .entry-content .aif-cards--services .aif-card--service ul{
  margin: .35rem 0 .6rem; padding-inline-start: 1.15rem;
}
body.aif-engagement .entry-content .aif-cards--services .aif-card--service li{
  margin-block: .18rem; line-height: 1.6;
}
body.aif-engagement .entry-content .aif-cards--services .aif-card__meta{
  margin-top: .25rem; color: #5B6573;
}

/* Keep inline flow for links inside service paragraphs */
.aif-cards--services .aif-card__text a { 
  display: inline !important;
  vertical-align: baseline; 
}

/* Optional: keep short standard labels from breaking mid-token */
.aif-cards--services .aif-card__text a.nowrap { white-space: nowrap; }

/* ---------------------------------------------------------------------
  6) INTERACTIONS (hover/focus)
--------------------------------------------------------------------- */

@media (prefers-reduced-motion: no-preference){
  body.aif-engagement .entry-content .aif-cards--services .aif-card--service{
    transition: box-shadow .18s ease, transform .18s ease;
  }
  body.aif-engagement .entry-content .aif-cards--services .aif-card--service:hover{
    box-shadow: 0 4px 18px rgba(47,58,74,.12);
    transform: translateY(-1px);
  }
}

body.aif-engagement .entry-content .aif-cards--services .aif-card--service:focus-within{
  outline: 2px solid #C4B5FD; outline-offset: 3px;
  box-shadow: 0 0 0 4px rgba(196,181,253,.25);
}

/* Tiny connector accent for the Legal card (optional) */
body.aif-engagement .entry-content .aif-card--service#legal{
  padding-top: calc(1rem + 6px);
}
body.aif-engagement .entry-content .aif-card--service#legal::before{
  content:""; position:absolute; top: .35rem; left: 1.25rem;
  inline-size: 1px; block-size: 14px;
  background: linear-gradient(180deg, rgba(47,58,74,.25), rgba(47,58,74,0));
  border-radius: 2px;
}

/* ---------------------------------------------------------------------
  7) PROCESS (vertical path with nodes)
--------------------------------------------------------------------- */

body.aif-engagement .entry-content .aif-process .aif-steps{
  position: relative;
  padding-inline-start: 0;
}
body.aif-engagement .entry-content .aif-process .aif-steps::before{
  content:"";
  position:absolute;
  left: .35rem; top: .35rem; bottom: .35rem;
  inline-size: 2px;
  background: linear-gradient(180deg,
    rgba(47,58,74,.18) 0%,
    rgba(47,58,74,.12) 50%,
    rgba(47,58,74,0)   100%);
  border-radius: 2px;
}
body.aif-engagement .entry-content .aif-process .aif-steps > li{
  position: relative;
  padding-inline-start: 1.25rem;
  margin-block: .55rem .35rem;
}
body.aif-engagement .entry-content .aif-process .aif-steps > li::before{
  content:"";
  position: absolute;
  left: .1rem; top: .35rem;
  width: .5rem; height: .5rem; border-radius: 999px;
  background: #C4B5FD;
  box-shadow:
    0 0 0 2px #fff,
    0 0 0 3px rgba(196,181,253,.35);
}

/* Small screens: nudge spacing */
@media (max-width: 640px){
  .aif-process .aif-steps > li{ padding-inline-start: 2rem; }
  .aif-process .aif-steps::before{ left: .3rem; }
}

/* ---------------------------------------------------------------------
  8) FAQS (affordance + spacing)
--------------------------------------------------------------------- */

body.aif-engagement .entry-content .aif-faqs{
  border-top: 1px solid rgba(47,58,74,.12);
  padding-top: .75rem;
}

.aif-faq + .aif-faq summary{
  border-top: 1px solid rgba(47,58,74,.12);
  margin-top: .35rem;
  padding-top: .85rem;
}

.aif-faq summary{
  list-style: none; cursor: pointer;
  padding: .7rem .5rem .7rem 1.7rem;
  text-underline-offset: .14em;
  font-weight: 600; line-height: 1.5;
  border-radius: .5rem; margin-block: .1rem;
}
.aif-faq summary::-webkit-details-marker { display: none; }
.aif-faq summary::before{
  content: "\25BE";                 /* down */
  display: inline-block;
  width: 1.1rem;
  margin-inline-start: -1.35rem;
  margin-inline-end: .45rem;
  transform: translateY(1px);
  transition: transform .18s ease;
}

.aif-faq[open] summary::before{
  transform: translateY(1px) scaleY(-1);
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce){
  .aif-faq summary::before{ transition: none; }
}

.aif-faq summary:hover{
  background-color: rgba(196,181,253,.08);
}

.aif-faq[open]{
  background: #EEF1F6;
  border-radius: .6rem;
  padding-inline: .25rem;
  box-shadow: 0 1px 3px rgba(47,58,74,.06);
}
.aif-faq__content{ padding: .25rem .25rem .6rem 1.9rem; }
.aif-faq[open] + .aif-faq[open] { box-shadow: 0 1px 2px rgba(47,58,74,.04); }
.aif-faq[open] + .aif-faq summary { border-top-color: rgba(47,58,74,.08); }

/* ---------------------------------------------------------------------
  9) CTA (quiet corner glow)
--------------------------------------------------------------------- */

body.aif-engagement .entry-content .aif-cta{
  position: relative;
  z-index: 0;
  overflow: hidden;
}
body.aif-engagement .entry-content .aif-cta::before{
  content:"";
  position:absolute;
  inset: -1rem -1rem -1rem -1rem;
  background:
    radial-gradient(160% 90% at 0% 100%,
      rgba(196,181,253,.18) 0%,
      rgba(196,181,253,0)   60%);
  pointer-events: none;
  z-index: -1;
}

body.aif-engagement .aif-cta__buttons .cta-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center;
  color: #FFFFFF !important; /* White text on dark button */
  min-height: 44px; /* WCAG touch target */
}

/* ---------------------------------------------------------------------
 10) DARK MODE (overrides grouped by section)
--------------------------------------------------------------------- */

@media (prefers-color-scheme: dark){

  /* TOC toggle */
  .aif-toc__toggle{
    background:#171C23; color:#EEF1F6; border-color:rgba(223,227,237,.22);
  }

  /* Intro glow slightly stronger */
  body.aif-engagement .entry-content .aif-intro::before{
    background:
      radial-gradient(120% 80% at 0% 0%,
        rgba(196,181,253,.28) 0%,
        rgba(196,181,253,.14) 44%,
        rgba(196,181,253,0)   76%);
  }

  /* Services backdrop */
  body.aif-engagement .entry-content .aif-services-blocks::before{
background:
  linear-gradient(180deg,
    rgba(196,181,253,.10) 0%,
    rgba(196,181,253,0) 44%);
  }

  /* Cards */
  body.aif-engagement .entry-content .aif-cards--services .aif-card{
    background: #171C23;
    box-shadow: 0 3px 14px rgba(0,0,0,.45);
  }
  body.aif-engagement .entry-content .aif-cards--services .aif-card__cta{
    border-top-color: rgba(223,227,237,.18);
  }
  body.aif-engagement .entry-content .aif-cards--services .aif-card__meta{
    color: rgba(223,227,237,.82);
  }
  body.aif-engagement .entry-content .aif-cards--services .aif-card--service:focus-within{
    box-shadow: 0 0 0 4px rgba(196,181,253,.35);
  }

  /* Process line tint */
  body.aif-engagement .entry-content .aif-process .aif-steps::before{
    background: linear-gradient(180deg,
      rgba(223,227,237,.20) 0%,
      rgba(223,227,237,.12) 50%,
      rgba(223,227,237,0)   100%);
  }

  /* CTA glow */
  body.aif-engagement .entry-content .aif-cta::before{
    background:
      radial-gradient(160% 90% at 0% 100%,
        rgba(196,181,253,.22) 0%,
        rgba(196,181,253,0)   62%);
  }

  /* FAQ tweaks */
  body.aif-engagement .entry-content .aif-faqs{
    border-top-color: rgba(223,227,237,.18);
  }
  .aif-faq[open]{
    background: rgba(255,255,255,.06);
    box-shadow: 0 1px 3px rgba(255,255,255,.05);
  }
  .aif-faq + .aif-faq summary{
    border-top-color: rgba(255,255,255,.18);
  }
  body.aif-engagement .aif-cta__buttons .cta-btn {
    color: #FFFFFF !important; /* Keep white text on primary button */
  }
}

/* ---------------------------------------------------------------------
 11) SMALL-SCREEN REFINEMENTS
--------------------------------------------------------------------- */

@media (max-width: 640px){
  /* ease the intro glow */
  body.aif-engagement .entry-content .aif-intro::before{
    inline-size: clamp(10rem, 64vw, 18rem);
    block-size: clamp(6rem, 30vw, 10rem);
    opacity: .95;
  }
  /* tame services backdrop strength */
  body.aif-engagement .entry-content .aif-services-blocks::before{
    opacity: .92;
    mask-image: linear-gradient(180deg, rgba(0,0,0,.9) 0%,
                                         rgba(0,0,0,.75) 28%,
                                         rgba(0,0,0,0) 100%);
  }
  /* process line nudged in for narrow columns */
  body.aif-engagement .entry-content .aif-process .aif-steps::before{
    left: .2rem;
  }
  body.aif-engagement .entry-content .aif-process .aif-steps > li{
    padding-inline-start: 1rem;
  }
}
@media (max-width: 420px){
  body.aif-engagement .entry-content .aif-toc{ margin-top: .4rem; }
}


/* ---------------------------------------------------------------------
 12) MISC: remove decorative "?" on this page (CTAs, TOC, body links)
--------------------------------------------------------------------- */

.aif-cards--services .cta-btn::after,
.aif-cards--services .cta-ghost::after,
.aif-card__cta .cta-btn::after,
.aif-card__cta .cta-ghost::after,
.aif-cta .cta-btn::after,
.aif-cta .cta-ghost::after,
.aif-cards--services a.ext::after,
.aif-card__text a.ext::after,
.aif-section__intro a.ext::after,
.aif-bullets a.ext::after,
.aif-toc .aif-toc__list a.ext::after {
  content: none !important;
}

/* ===============================
   High contrast micropolish
   Services cards + CTAs
   =============================== */

@media (forced-colors: active) {

  /* 1. Links stay obviously links */
  body.aif-engagement .entry-content a{
    text-decoration: underline !important;
  }

  /* 2. Service cards – calm but clear borders */
  body.aif-engagement .entry-content .aif-cards--services .aif-card--service{
    border-color: CanvasText;         /* system text colour, not a hard-coded hex */
  }

  /* 3. Card focus – clear “block” focus when anything inside is focused */
  body.aif-engagement .entry-content
  .aif-cards--services .aif-card--service:focus-within{
    outline: 2px solid Highlight;     /* system highlight colour */
    outline-offset: 4px;
  }

  /* 4. CTAs: inside cards + generic page CTAs */
  body.aif-engagement .entry-content .aif-cards--services .aif-card__cta,
  body.aif-engagement .entry-content .aif-cta{
    border: 2px solid ButtonText;     /* strong button shape */
    background-color: Canvas;         /* keep background aligned with page */
    color: ButtonText;
    padding-block: .4rem;
    padding-inline: .8rem;
  }

  /* 5. Generic focus tidy-up so outlines don’t sit flush on edges */
  body.aif-engagement .entry-content :focus{
    outline-style: solid;
    outline-width: 2px;
    outline-offset: 2px;
  }

/* Forced-colors: avoid hover fill */
  .aif-faq summary:hover{ background: transparent; }
}

/* ============================
   About page — travel photos
   =========================== */

/* About page – vertical rhythm for section headings */
body.aif-engagement #about-elena h2{
  margin-top: 2.4rem;   /* space above each H2 */
  margin-bottom: 0.8rem;/* small gap before paragraph text */
}

body.aif-engagement .aif-about__photos{
  margin-block: 2.1rem 2.1rem;
}

/* Heading */
body.aif-engagement .aif-about__photos h3{
  margin: 0 0 .7rem;
  font-size: clamp(1.15rem, 2.1vw, 1.3rem);
  line-height: 1.4;
}

/* Wrapper for all rows */
body.aif-engagement .aif-photo-rows{
  display: flex;
  flex-direction: column;
  gap: .9rem;
  align-items: center;
}

/* Each row: always 2 items, centered */
body.aif-engagement .aif-photo-row{
  display: flex;
  justify-content: center;
  gap: 1.1rem;
  width: 100%;
  max-width: 720px;
}

/* Cards */
body.aif-engagement .aif-photo-card{
  margin: 0;
  flex: 0 0 50%;              /* exactly 2 per row */
  max-width: 360px;
}

/* Images */
body.aif-engagement .aif-photo-card__img{
  display: block;
  width: 100%;
  height: auto;
  border-radius: 12px;
}

/* Captions */
body.aif-engagement .aif-photo-card__caption{
  margin-top: .28rem;
  font-size: .875rem;
  line-height: 1.5;
  color: #5B6573;
  overflow-wrap: break-word;
}

/* Portraits: keep them from feeling too tall */
body.aif-engagement .aif-photo-card--portrait .aif-photo-card__img{
  max-height: 360px;
  object-fit: cover;
}

/* Mobile: stack nicely */
@media (max-width: 640px){
  body.aif-engagement .aif-photo-row{
    flex-direction: column;
    max-width: 360px;
    gap: .85rem;
  }

  body.aif-engagement .aif-photo-card{
    flex: 0 0 auto;
    max-width: 100%;
  }
}

/* Dark mode harmony */
@media (prefers-color-scheme: dark){
  body.aif-engagement .aif-photo-card__caption{
    color: #A8B0BE;
  }
}

/* ============================
   About carousel (accessible)
   ============================ */

body.aif-engagement .aif-about__carousel .aif-carousel{
  margin-top: .7rem;
}

/* Without JS: show all slides as a normal stacked gallery */
body.aif-engagement .aif-about__carousel .aif-carousel__controls{
  display: none; /* JS will enable */
}

body.aif-engagement .aif-about__carousel .aif-carousel.is-ready .aif-carousel__controls{
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .6rem;
  flex-wrap: wrap;
  margin-top: .9rem;
}

/* When JS is active: only one slide is shown */
body.aif-engagement .aif-about__carousel .aif-carousel.is-ready [data-aif-slide][hidden]{
  display: none !important;
}

/* Slide layout */
body.aif-engagement .aif-about__carousel .aif-carousel__viewport{
  max-width: 720px;
  margin-inline: auto;
}

/* One consistent frame size for every slide */
body.aif-engagement .aif-about__carousel .aif-carousel__slide{
  max-width: 720px;
  margin-inline: auto;
}

/* The image becomes a consistent “card” frame */
body.aif-engagement .aif-about__carousel .aif-carousel__slide img.aif-photo-card__img{
  display: block;
  width: 100%;

  /* Pick ONE aspect ratio for the whole carousel */
  aspect-ratio: 16 / 9;          /* good for travel + keeps it wide */

  /* Force uniform shape */
  object-fit: cover;             /* crop instead of stretching */
  object-position: center;       /* sensible default */

  border-radius: 12px;
  overflow: hidden;
}

/* Optional: keep tall portraits from feeling too “zoomed” */
@media (max-width: 640px){
  body.aif-engagement .aif-about__carousel .aif-carousel__slide img.aif-photo-card__img{
    aspect-ratio: 4 / 3;         /* slightly taller on mobile */
  }
}

body.aif-engagement .aif-about__carousel .aif-carousel__link{
  max-width: 720px;
  margin-top: .35rem;
  margin-inline: auto;
}

/* Dark mode */
@media (prefers-color-scheme: dark){
  body.aif-engagement .aif-about__carousel .aif-carousel__count{
    background: rgba(255,255,255,.06);
    color: #EEF1F6;
    border-color: rgba(255,255,255,.18);
  }
}

/* Forced colors */
@media (forced-colors: active){
  body.aif-engagement .aif-about__carousel .aif-carousel__count{
    background: Canvas;
    color: CanvasText;
    border: 1px solid ButtonText;
    forced-color-adjust: auto;
  }
}

/* ============================
   Carousel buttons (brand)
   ============================ */

body.aif-engagement .aif-about__carousel .aif-carousel__controls{
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .75rem;
  flex-wrap: wrap;
  margin-top: .85rem;
}

/* Base button */
/* Base button */
body.aif-engagement .aif-about__carousel .aif-carousel__btn{
  -webkit-appearance: none;
  appearance: none;
  font: inherit;
  font-weight: 600;

  min-height: 44px;
  line-height: 1;

  cursor: pointer;
  display: inline-flex;
  min-width: 9.5rem;
  align-items: center;
  justify-content: center;
  gap: .45rem;

  padding: .65rem 1rem;

  border-radius: 999px;
  border: 1px solid rgba(47,58,74,.25);
  background: #FAFAFC;
  color: #2F3A4A;
  box-shadow: 0 2px 10px rgba(47,58,74,.10);
  transition: transform .06s ease, background-color .12s ease, border-color .12s ease;
}

/* Mobile: icon-only buttons, smaller, fit on one line */
@media (max-width: 640px){
  body.aif-engagement .aif-about__carousel .aif-carousel__btn{
    min-width: 44px;
    max-width: 44px;
    padding: .65rem;
    gap: 0;
  }
  
  /* Hide text labels on mobile */
  body.aif-engagement .aif-about__carousel .aif-carousel__btn span:not([aria-hidden="true"]){
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(1px, 1px, 1px, 1px) !important;
    white-space: nowrap !important;
    border: 0 !important;
  }
  
  /* Make arrows more prominent on mobile */
  body.aif-engagement .aif-about__carousel .aif-carousel__btn span[aria-hidden="true"]{
    font-size: 1.3em;
  }
}

/* Stabilize internal alignment */
body.aif-engagement .aif-about__carousel .aif-carousel__btn span{
  display: inline-flex;
  align-items: center;
  line-height: 1;
}

/* Arrow slot (equal left/right) */
body.aif-engagement .aif-about__carousel .aif-carousel__btn span[aria-hidden="true"]{
  font-size: 1.1em;
  width: 1.25em;
  justify-content: center;
}

/* Dark mode */
@media (prefers-color-scheme: dark){
  body.aif-engagement .aif-about__carousel .aif-carousel__btn{
    background: rgba(255,255,255,.06);
    color: #EEF1F6;
    border-color: rgba(255,255,255,.18);
    box-shadow: 0 3px 14px rgba(0,0,0,.45);
  }
  body.aif-engagement .aif-about__carousel .aif-carousel__btn:hover{
    background: rgba(255,255,255,.10);
    border-color: rgba(255,255,255,.26);
  }
  body.aif-engagement .aif-about__carousel .aif-carousel__btn:focus-visible{
    box-shadow:
      0 0 0 3px #121212,
      0 0 0 5px #C4B5FD,
      0 3px 14px rgba(0,0,0,.45);
  }
  body.aif-engagement .aif-about__carousel .aif-carousel__count{
    background: rgba(255,255,255,.06);
    color: #EEF1F6;
    border-color: rgba(255,255,255,.18);
  }
}

/* Forced colors */
@media (forced-colors: active){
  body.aif-engagement .aif-about__carousel .aif-carousel__btn,
  body.aif-engagement .aif-about__carousel .aif-carousel__count{
    forced-color-adjust: auto;
    background: Canvas;
    color: ButtonText;
    border: 1px solid ButtonText;
    box-shadow: none;
  }
  body.aif-engagement .aif-about__carousel .aif-carousel__btn:focus-visible{
    outline: 2px solid Highlight;
    outline-offset: 2px;
  }
}

/* Disabled: clear state change that’s not just “faded” */
body.aif-engagement .aif-about__carousel .aif-carousel__btn:disabled{
  opacity: .55;                 /* keep, but not the only cue */
  cursor: not-allowed;
  box-shadow: none;             /* remove elevation */
  transform: none;
  border-style: dashed;         /* non-color cue */
  border-width: 2px;            /* stronger outline */
  background: #FAFAFC;
  color: #2F3A4A;

  /* subtle texture cue (works in grayscale) */
  background-image: repeating-linear-gradient(
    45deg,
    rgba(47,58,74,.10) 0px,
    rgba(47,58,74,.10) 2px,
    rgba(47,58,74,0) 2px,
    rgba(47,58,74,0) 6px
  );
}

/* Don’t “hover” disabled buttons */
body.aif-engagement .aif-about__carousel .aif-carousel__btn:disabled:hover{
  background: #FAFAFC;
  border-color: rgba(47,58,74,.25);
}

/* Ensure focus styles never try to apply to disabled */
body.aif-engagement .aif-about__carousel .aif-carousel__btn:disabled:focus-visible{
  box-shadow: none;
}

/* Dark mode disabled */
@media (prefers-color-scheme: dark){
  body.aif-engagement .aif-about__carousel .aif-carousel__btn:disabled{
    background: rgba(255,255,255,.04);
    color: #FFFFFF;
    opacity: 1;
    border-color: rgba(255,255,255,.22);
    background-image: repeating-linear-gradient(
      45deg,
      rgba(255,255,255,.14) 0px,
      rgba(255,255,255,.14) 2px,
      rgba(255,255,255,0) 2px,
      rgba(255,255,255,0) 6px
    );
  }
  
/* Ensure arrows are also solid white when disabled */
  body.aif-engagement .aif-about__carousel .aif-carousel__btn:disabled span{
    color: #FFFFFF;
    opacity: 1;
  }
 }

/* Forced colors: let the system show disabled affordance */
@media (forced-colors: active){
  body.aif-engagement .aif-about__carousel .aif-carousel__btn:disabled{
    opacity: 1; /* HC often ignores opacity, so don’t rely on it */
    color: GrayText;
    border-color: GrayText;
    border-style: dashed;
  }
}

/* Align CTA buttons properly */
body.aif-engagement .aif-about-cta__actions{
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-top: .9rem;
  margin-bottom: 0; /* override default paragraph margin */
}

/* Ensure buttons have proper text display and centering */
body.aif-engagement .aif-about-cta__actions .cta-btn,
body.aif-engagement .aif-about-cta__actions .cta-ghost {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center;
  color: #FFFFFF !important; /* Ensure text is visible on dark button */
  min-height: 44px; /* WCAG touch target */
}

/* Ghost button text color override */
body.aif-engagement .aif-about-cta__actions .cta-ghost {
  color: #2F3A4A !important; /* Dark text for outline button */
}

@media (max-width: 640px){
  body.aif-engagement .aif-about-cta__actions{
    flex-direction: column;
    align-items: stretch;
    gap: .6rem;
    margin-inline: 0; /* Remove any negative margins */
  }
  
  body.aif-engagement .aif-about-cta__actions .cta-btn,
  body.aif-engagement .aif-about-cta__actions .cta-ghost {
    width: 100%; /* Full width on mobile */
    margin-inline: 0; /* Remove the -2px that was causing issues */
  }
}

/* Dark mode button text colors */
@media (prefers-color-scheme: dark) {
  body.aif-engagement .aif-about-cta__actions .cta-btn {
    color: #FFFFFF !important; /* Keep white text on primary button */
  }
  
  body.aif-engagement .aif-about-cta__actions .cta-ghost {
    color: #E2E6ED !important; /* Light text for ghost button in dark mode */
    border-color: #E2E6ED; /* Ensure border is also visible */
  }
}

/* Kill CTA arrows only in the About / My Journey CTA block */
body.aif-engagement .aif-about-cta .cta-btn::after,
body.aif-engagement .aif-about-cta .cta-ghost::after{
  content: none !important;
}
body.aif-engagement .aif-about-cta{
  margin-bottom: 1.6rem; /* gentle, consistent with your rhythm */
}

/* =========================
   Press page layout
   Scoped to engagement template
   ========================= */

body.aif-engagement .aif-press{
  margin-top: 1.8rem;
}

/* Each appearance as a calm block */
body.aif-engagement .aif-press-item{
  padding-block: 1.4rem;
  border-top: 1px solid #C4B5FD; /* accent divider */
}

body.aif-engagement .aif-press-item:first-of-type{
  border-top: none;
  padding-top: 1rem;
}

/* Title / link */
body.aif-engagement .aif-press-title{
  margin: 0 0 .25rem;
}

body.aif-engagement .aif-press-title a{
  text-decoration-thickness: .11em;
  text-underline-offset: .18em;
}

/* Meta line: outlet + type + language pill */
body.aif-engagement .aif-press-meta{
  margin: 0 0 .25rem;
  font-size: .95rem;
  color: #5B6573;
  display:flex;
  flex-wrap:wrap;
  align-items:baseline; 
  gap:.35rem;
}

/* Base pill */
body.aif-engagement .aif-press-lang{
  display:inline-flex;
  align-items:center;
  gap:.25rem;
  padding: .05rem .55rem;
  border-radius:999px;
  font-size:.85em;
  line-height:1.4;
  background:#EEF1F6;     /* base-3 from your palette */
  color:#2F3A4A;          /* primary text */
  white-space:nowrap;
}

/* Optional: tweak bullets between meta text and pill */
body.aif-engagement .aif-press-lang > [aria-hidden="true"]{
  font-size:1.15em;
  line-height:1;
}

/* Modifiers in case you want different accents later */
body.aif-engagement .aif-press-lang--en{
  /* currently same as base, ready for future tweaks */
}

body.aif-engagement .aif-press-lang--bg{
  /* e.g. slightly stronger border if you ever want: */
  /* border:1px solid #C4B5FD; */
}

/* Description text */
body.aif-engagement .aif-press-text{
  margin: 0;
  max-width: 52rem; /* keeps lines comfortable on wide screens */
  line-height: 1.7;
}

/* Media enquiries block */
body.aif-engagement .aif-press-contact{
  margin-top: 2.6rem;
  padding-top: 2.1rem;
  border-top: 1px solid #EEF1F6;
  margin-bottom: 2rem;
}

body.aif-engagement .aif-press-actions{
  margin-top: .9rem;
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}

/* Kill CTA arrows only in the Press page "Media enquiries" block */
body.aif-engagement #press-contact .cta-btn::after,
body.aif-engagement #press-contact .cta-ghost::after{
  content: none !important;
}

/* =========================
   Dark mode tweaks
   ========================= */

@media (prefers-color-scheme: dark){
  body.aif-engagement .aif-intro{
    background: rgba(196, 181, 253, 0.12) !important;
  }

  body.aif-engagement .aif-press-item{
    border-color: rgba(255,255,255,0.12) !important;
  }

  body.aif-engagement .aif-press-lang{
    background:rgba(196,181,253,0.15);
    color:#FAFAFC;        /* accessible light text */
  }

  body.aif-engagement .aif-press-meta{
    color: rgba(255,255,255,0.75) !important;
  }
  body.aif-engagement .aif-press-contact{
    border-color: rgba(255,255,255,0.12) !important;
  }
}

@media (max-width: 640px){
  body.aif-engagement .aif-press{
    margin-top: 1.2rem; /* slightly tighter above the list on mobile */
  }

  body.aif-engagement .aif-intro{
    padding-block: 0.85rem; /* a bit less vertical padding in the intro bubble */
  }

  body.aif-engagement .aif-press-text{
    line-height: 1.65; /* tiny tightening so long paragraphs feel less tall */
  }
}

/* =========================
   Press page: high contrast safety
   ========================= */
@media (forced-colors: active){

  /* Meta line + pill: keep structure and separation */
  body.aif-engagement .aif-press-meta{
    forced-color-adjust: auto;
    /* let system choose text color, but keep spacing */
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .35rem;
  }

  /* Language pill: always visible as a chip, even if bg is stripped */
  body.aif-engagement .aif-press-lang{
    forced-color-adjust: auto;       /* allow HC colors */
    border: 1px solid ButtonText;    /* clear outline in HC themes */
    background: transparent;         /* don’t fight system bg */
    padding: .05rem .55rem;          /* keep the pill shape */
    border-radius: 999px;
  }

  /* Optional: ensure press titles stay clearly link-like */
  body.aif-engagement .aif-press-title a{
    forced-color-adjust: auto;
    text-decoration: underline;
  }
}
