/* ==========================================================================
   INBIO BRAND LAYER
   The InBio theme already drives its whole palette from custom properties on
   :root and swaps to light via a `white-version` body class. So the accent and
   theme system is a thin override layer, not a re-skin — the demo's design,
   spacing and animation are untouched.
   ========================================================================== */

/* ---------- accents: remap InBio's own primary tokens ----------
   Identity palette: deep navy #183054, steel blue #3C78A8, wine #90243C.
   On the dark theme the fill stays the identity colour while headings/links
   use a lifted tint, because #3C78A8 alone is too dark on near-black to pass
   contrast for text. Light mode reverses that. */
:root,
:root[data-accent="blue"] {
  --aa-navy: #183054;
  --color-primary: #3C78A8;
  --color-subtitle: #6BA8DC;
  --color-primary-gradient-from: #183054;
  --color-primary-gradient-to: #3C78A8;
  --aa-accent-soft: rgba(107, 168, 220, .16);
  --aa-on-accent: #ffffff;
}
:root[data-accent="wine"] {
  --aa-navy: #3A1220;
  --color-primary: #90243C;
  --color-subtitle: #D4788C;
  --color-primary-gradient-from: #5C1626;
  --color-primary-gradient-to: #90243C;
  --aa-accent-soft: rgba(212, 120, 140, .16);
  --aa-on-accent: #ffffff;
}
:root[data-accent="emerald"] {
  --aa-navy: #0C2B22;
  --color-primary: #0F7F5B;
  --color-subtitle: #4FC79B;
  --color-primary-gradient-from: #0C4A38;
  --color-primary-gradient-to: #0F7F5B;
  --aa-accent-soft: rgba(79, 199, 155, .16);
  --aa-on-accent: #ffffff;
}
:root[data-accent="amber"] {
  --aa-navy: #3A2A0C;
  --color-primary: #B26A08;
  --color-subtitle: #E0A244;
  --color-primary-gradient-from: #7A4705;
  --color-primary-gradient-to: #B26A08;
  --aa-accent-soft: rgba(224, 162, 68, .16);
  --aa-on-accent: #ffffff;
}
/* light mode: the lifted tint is too pale on white, so headings and links use
   the identity colour itself */
body.white-version { --color-subtitle: var(--color-primary); }

/* ---------- the appearance + language controls in the header ---------- */
.aa-hdr { display: flex; align-items: center; gap: 10px; margin-inline-start: 14px; }
.aa-hdr__lang { display: inline-flex; border: 1px solid var(--color-border); border-radius: 8px; overflow: hidden; }
.aa-hdr__lang a {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 40px; min-height: 40px; padding: 0 10px;
  font-size: 13px; font-weight: 600; letter-spacing: .04em;
  color: var(--color-body); text-decoration: none; background: transparent;
  transition: color .2s ease, background .2s ease;
}
.aa-hdr__lang a:hover { color: var(--color-primary); }
.aa-hdr__lang a[aria-current="true"] { background: var(--aa-accent-soft); color: var(--color-primary); }

.aa-hdr__btn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 42px; height: 42px; border-radius: 10px; cursor: pointer;
  border: 1px solid var(--color-border); background: transparent;
  color: var(--color-heading); transition: color .2s ease, border-color .2s ease;
}
.aa-hdr__btn:hover, .aa-hdr__btn:focus-visible { color: var(--color-primary); border-color: var(--color-primary); }
.aa-hdr__btn svg { width: 18px; height: 18px; }
.aa-hdr__btn .aa-i-sun { display: none; }
body.white-version .aa-hdr__btn .aa-i-sun  { display: block; }
body.white-version .aa-hdr__btn .aa-i-moon { display: none; }

.aa-pop {
  position: absolute; inset-inline-end: 0; top: calc(100% + 12px);
  min-width: 244px; padding: 16px; z-index: 999;
  border: 1px solid var(--color-border); border-radius: 14px;
  background: var(--color-darker); box-shadow: 0 24px 60px -28px rgba(0,0,0,.85);
  opacity: 0; visibility: hidden; transform: translateY(-6px);
  transition: opacity .18s ease, transform .18s ease, visibility .18s;
}
body.white-version .aa-pop { background: #fff; box-shadow: 0 24px 60px -30px rgba(20,30,50,.28); }
.aa-hdr__wrap { position: relative; }
.aa-hdr__wrap.is-open .aa-pop { opacity: 1; visibility: visible; transform: translateY(0); }
.aa-pop__lbl {
  display: block; margin: 0 0 8px; font-size: 11px; font-weight: 700;
  letter-spacing: .12em; text-transform: uppercase; color: var(--color-body);
}
.aa-pop__lbl + .aa-pop__lbl { margin-top: 16px; }
.aa-seg { display: flex; gap: 6px; }
.aa-seg button {
  flex: 1; min-height: 38px; border-radius: 8px; cursor: pointer;
  border: 1px solid var(--color-border); background: transparent;
  color: var(--color-body); font-size: 13px; font-weight: 600;
  transition: color .18s ease, border-color .18s ease, background .18s ease;
}
.aa-seg button[aria-pressed="true"] {
  color: var(--color-primary); border-color: var(--color-primary); background: var(--aa-accent-soft);
}
.aa-swatches { display: flex; gap: 8px; }
.aa-swatch {
  width: 34px; height: 34px; border-radius: 50%; cursor: pointer; padding: 0;
  border: 2px solid transparent; box-shadow: inset 0 0 0 2px var(--color-darker);
  transition: transform .18s ease, border-color .18s ease;
}
body.white-version .aa-swatch { box-shadow: inset 0 0 0 2px #fff; }
.aa-swatch:hover { transform: scale(1.08); }
.aa-swatch[aria-pressed="true"] { border-color: currentColor; }
.aa-swatch[data-a="blue"]    { background: #3C78A8; color: #6BA8DC; }
.aa-swatch[data-a="wine"]    { background: #90243C; color: #D4788C; }
.aa-swatch[data-a="emerald"] { background: #0F7F5B; color: #4FC79B; }
.aa-swatch[data-a="amber"]   { background: #B26A08; color: #E0A244; }
.aa-reset {
  margin-top: 14px; width: 100%; min-height: 36px; border-radius: 8px; cursor: pointer;
  border: 1px dashed var(--color-border); background: transparent;
  color: var(--color-body); font-size: 12.5px;
}
.aa-reset:hover { color: var(--color-primary); border-color: var(--color-primary); }

/* visible keyboard focus everywhere in the control */
.aa-hdr :focus-visible, .aa-pop :focus-visible {
  outline: 2px solid var(--color-primary); outline-offset: 2px; border-radius: 6px;
}

/* ---------- TranslatePress ships its own floating switcher; we have ours ---------- */
.trp-language-switcher-container,
[class*="trp-floating"],
#trp-floater-ls { display: none !important; }

/* ---------- About / tools / inquiry blocks added to the demo layout ---------- */
.aa-about-copy p { margin-bottom: 18px; }
.aa-about-copy .aa-role-line { color: var(--color-body); }

.aa-tools { margin-top: 26px; }
.aa-tools__lbl {
  display: block; margin-bottom: 12px; font-size: 11px; font-weight: 700;
  letter-spacing: .14em; text-transform: uppercase; color: var(--color-body);
}
.aa-tools__list { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.aa-tools__list li {
  font-size: 12.5px; color: var(--color-body); padding: 6px 12px; border-radius: 999px;
  border: 1px solid var(--color-border);
}

.aa-inq { padding: 4px 0; }
.aa-inq__lbl {
  display: block; margin-bottom: 12px; font-size: 11px; font-weight: 700;
  letter-spacing: .14em; text-transform: uppercase; color: var(--color-body);
}
.aa-inq__list {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 8px; margin: 0 0 20px; padding: 0; list-style: none;
}
.aa-inq__list li {
  font-size: 14px; color: var(--color-heading); padding: 10px 14px; border-radius: 10px;
  border: 1px solid var(--color-border);
}
.aa-inq__note { font-size: 14px; color: var(--color-body); margin: 0 0 18px; }
.aa-inq__cta {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 50px; padding: 0 30px; border-radius: 8px; text-decoration: none;
  font-weight: 600; letter-spacing: .04em;
  background: var(--color-primary); color: #fff;
  transition: filter .2s ease, transform .2s ease;
}
.aa-inq__cta:hover { filter: brightness(1.08); transform: translateY(-2px); color: #fff; }

/* ---------- footer: end the page at the copyright line ---------- */
.aa-foot-line {
  text-align: center; padding: 26px 20px;
  font-size: 14px; color: var(--color-body);
  border-top: 1px solid var(--color-border);
}
body.aa-inbio .copyright-area,
body.aa-inbio .rn-footer-one { margin-bottom: 0 !important; }
body.aa-inbio #main-wrapper > *:last-child { margin-bottom: 0 !important; }

/* ---------- respect reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  .aa-pop, .aa-swatch, .aa-hdr__btn, .aa-inq__cta { transition: none !important; }
}

/* ---------- RTL ---------- */
[dir="rtl"] .aa-hdr { margin-inline-start: 0; margin-inline-end: 14px; }
[dir="rtl"] .aa-pop { inset-inline-end: auto; inset-inline-start: 0; }

/* ==========================================================================
   FINAL HOMEPAGE BLOCKS
   Deliberately not card grids — the page already has three. These break the
   rhythm so the page does not read as one repeating pattern.
   ========================================================================== */

/* ---------- value strip ---------- */
.aa-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 0; margin: 0; padding: 0; list-style: none;
  border-block: 1px solid var(--color-border); }
.aa-strip li { padding: 26px 28px; border-inline-start: 1px solid var(--color-border); }
.aa-strip li:first-child { border-inline-start: 0; }
.aa-strip__k { display: block; font-size: 15px; font-weight: 700; color: var(--color-heading); margin-bottom: 6px; }
.aa-strip__v { display: block; font-size: 14px; line-height: 1.6; color: var(--color-body); }
@media (max-width: 767px) {
  .aa-strip li { border-inline-start: 0; border-top: 1px solid var(--color-border); padding: 20px 4px; }
  .aa-strip li:first-child { border-top: 0; }
}

/* ---------- engagement models ---------- */
.aa-eng { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
  gap: 1px; background: var(--color-border); border: 1px solid var(--color-border);
  border-radius: 14px; overflow: hidden; margin-top: 34px; }
.aa-eng__item { background: var(--color-darker); padding: 28px 26px; }
body.white-version .aa-eng__item { background: #fff; }
.aa-eng__item h3 { font-size: 18px; font-weight: 650; color: var(--color-heading); margin: 0 0 8px; }
.aa-eng__item p { font-size: 14.5px; line-height: 1.65; color: var(--color-body); margin: 0; }
.aa-eng__cta { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; margin-top: 32px; }

/* ---------- in development ---------- */
.aa-next__lead { text-align: center; max-width: 62ch; margin: 26px auto 26px;
  font-size: 15px; line-height: 1.7; color: var(--color-body); }
.aa-next { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px;
  margin: 0; padding: 0; list-style: none; }
.aa-next li { font-size: 14px; color: var(--color-body); padding: 10px 18px;
  border: 1px dashed var(--color-border); border-radius: 999px;
  transition: color .2s ease, border-color .2s ease; }
.aa-next li:hover { color: var(--color-subtitle); border-color: var(--color-primary); }

/* ---------- closing signature ---------- */
.aa-sign { text-align: center; padding: 20px 0 10px; }
.aa-sign__line { font-size: clamp(30px, 5vw, 52px); font-weight: 750; letter-spacing: -.02em;
  color: var(--color-heading); margin: 0 0 14px; line-height: 1.15; }
.aa-sign__hl { position: relative; color: var(--color-subtitle); }
.aa-sign__hl::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: .06em; height: .09em;
  background: linear-gradient(90deg, transparent, var(--color-primary), transparent);
  transform: scaleX(0); transform-origin: left; animation: aa-underline 2.6s var(--aa-ease, ease) .4s forwards;
}
@keyframes aa-underline { to { transform: scaleX(1); } }
.aa-sign__sub { font-size: 16px; color: var(--color-body); margin: 0 auto 30px; max-width: 46ch; }
.aa-sign__cta { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; }

/* ---------- shared buttons for the blocks above ---------- */
.aa-btn-solid, .aa-btn-ghost {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 50px; min-width: 44px; padding: 0 30px; border-radius: 8px;
  font-size: 15px; font-weight: 600; letter-spacing: .03em; text-decoration: none;
  transition: filter .2s ease, transform .2s ease, background .2s ease, color .2s ease;
}
.aa-btn-solid { background: var(--color-primary); color: var(--aa-on-accent); }
.aa-btn-solid:hover { filter: brightness(1.12); transform: translateY(-2px); color: var(--aa-on-accent); }
.aa-btn-ghost { border: 1px solid var(--color-border); color: var(--color-heading); }
.aa-btn-ghost:hover { border-color: var(--color-primary); color: var(--color-subtitle); transform: translateY(-2px); }

/* ---------- header identity: monogram + live text ---------- */
.aa-ident { display: flex; flex-direction: column; line-height: 1.15; }
.aa-ident__name { font-size: 17px; font-weight: 700; color: var(--color-heading); letter-spacing: -.01em; }
.aa-ident__role { font-size: 11px; font-weight: 600; letter-spacing: .06em;
  text-transform: uppercase; color: var(--color-body); margin-top: 3px; }
@media (max-width: 991px) { .aa-ident__role { display: none; } }

@media (prefers-reduced-motion: reduce) {
  .aa-sign__hl::after { animation: none; transform: scaleX(1); }
  .aa-btn-solid, .aa-btn-ghost, .aa-next li { transition: none !important; }
}

/* ==========================================================================
   INNER PAGES
   ========================================================================== */
.aa-page-hero { padding-block: clamp(60px, 9vw, 120px) clamp(24px, 4vw, 46px) !important; }
.aa-page-h1 .elementor-heading-title {
  font-size: clamp(38px, 6vw, 68px); line-height: 1.08; letter-spacing: -.03em;
  font-weight: 750; color: var(--color-heading); margin: 10px 0 18px; }
.aa-page-lede p { font-size: clamp(17px, 1.5vw, 20px); line-height: 1.65;
  color: var(--color-body); max-width: 64ch; margin: 0; }

.aa-prose p { font-size: 17px; line-height: 1.8; color: var(--color-body); margin: 0 0 20px; max-width: 72ch; }
.aa-prose h2 { font-size: clamp(22px, 2.6vw, 30px); font-weight: 700; letter-spacing: -.02em;
  color: var(--color-heading); margin: 40px 0 14px; }
.aa-prose h2:first-child { margin-top: 0; }
.aa-prose p:last-child { margin-bottom: 0; }

.aa-role { max-width: 760px; margin: 30px auto 0; }
.aa-role__title { font-size: 19px; font-weight: 700; color: var(--color-heading); margin: 0 0 18px; text-align: center; }
.aa-role__list { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 12px 30px; margin: 0; padding: 0; list-style: none; }
.aa-role__list li { position: relative; padding-inline-start: 22px;
  font-size: 15.5px; line-height: 1.6; color: var(--color-body); }
.aa-role__list li::before { content: ""; position: absolute; inset-inline-start: 0; top: .62em;
  width: 7px; height: 7px; border-radius: 2px; background: var(--color-primary); }

.aa-tools__list--center { justify-content: center; margin-top: 28px; }
.aa-note { max-width: 66ch; margin: 0 auto; text-align: center;
  font-size: 16px; line-height: 1.75; color: var(--color-body); }

.aa-cta-band { text-align: center; max-width: 800px; margin: 0 auto;
  padding: clamp(34px, 5vw, 56px) clamp(22px, 4vw, 48px);
  border: 1px solid var(--color-border); border-radius: 18px;
  background: linear-gradient(150deg,
    color-mix(in srgb, var(--color-primary) 12%, transparent),
    color-mix(in srgb, var(--color-darker) 88%, transparent)); }
body.white-version .aa-cta-band { background: linear-gradient(150deg,
    color-mix(in srgb, var(--color-primary) 8%, transparent), #ffffff); }
.aa-cta-band h2 { font-size: clamp(24px, 3.2vw, 36px); font-weight: 750; letter-spacing: -.02em;
  color: var(--color-heading); margin: 0 0 14px; }
.aa-cta-band p { font-size: 16px; line-height: 1.7; color: var(--color-body); margin: 0 auto 28px; max-width: 56ch; }
.aa-cta-band__row { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; }

.aa-contact-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
  gap: 22px; margin-top: 10px; }
.aa-contact-card { padding: 34px 30px; border: 1px solid var(--color-border); border-radius: 16px;
  background: color-mix(in srgb, var(--color-darker) 70%, transparent);
  display: flex; flex-direction: column; align-items: flex-start; }
body.white-version .aa-contact-card { background: #fff; }
.aa-contact-card h3 { font-size: 21px; font-weight: 700; color: var(--color-heading); margin: 0 0 12px; }
.aa-contact-card p { font-size: 15.5px; line-height: 1.7; color: var(--color-body); margin: 0 0 24px; }
.aa-contact-card .aa-btn-solid, .aa-contact-card .aa-btn-ghost { margin-top: auto; }
.aa-inq__list--wide { grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); margin-top: 28px; }

/* the identity block is rendered server-side (so it translates) and moved into
   the header by script; if script never runs it simply stays hidden */
.aa-ident-src { display: none; }
.aa-header-ident { display: flex; align-items: center; gap: 12px; }

/* ==========================================================================
   CASE STUDIES ON THE INBIO CHROME
   The case-study pages moved off the bespoke template, so their presentation
   is re-expressed here against InBio's own tokens.
   ========================================================================== */
.aa-kicker { display: inline-block; font-size: 12px; font-weight: 700; letter-spacing: .16em;
  text-transform: uppercase; color: var(--color-subtitle); margin-bottom: 6px; }

.aa-cs-back { display: inline-flex; align-items: center; gap: 8px; min-height: 44px;
  font-size: 14px; color: var(--color-body); text-decoration: none; }
.aa-cs-back:hover { color: var(--color-subtitle); }
[dir="rtl"] .aa-cs-back svg { transform: scaleX(-1); }

.aa-cs-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 20px 34px; margin: 0; padding: 26px 0 0; border-top: 1px solid var(--color-border); }
.aa-cs-facts > .aa-cs-fact { min-width: 0; }
.aa-cs-facts dt { font-size: 11px; text-transform: uppercase; letter-spacing: .13em;
  color: var(--color-body); font-weight: 700; margin-bottom: 7px; }
.aa-cs-facts dd { margin: 0; font-size: 15px; color: var(--color-heading); font-weight: 500; line-height: 1.5; }

.aa-cs-cover img { width: 100%; height: auto; display: block; border-radius: 16px;
  border: 1px solid var(--color-border); }

.aa-cs-list { list-style: none; margin: 22px 0 0; padding: 0; display: grid; gap: 13px; }
.aa-cs-list li { position: relative; padding-inline-start: 26px;
  font-size: 16px; line-height: 1.7; color: var(--color-body); }
.aa-cs-list li::before { content: ""; position: absolute; inset-inline-start: 0; top: .6em;
  width: 8px; height: 8px; border-radius: 2px; background: var(--color-primary); }
.aa-cs-list--check li::before { top: .44em; width: 11px; height: 6px; border-radius: 0;
  background: none; border-inline-start: 2px solid var(--color-primary);
  border-bottom: 2px solid var(--color-primary); transform: rotate(-45deg); }

.aa-cs-gallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr));
  gap: 20px; margin-top: 26px; }
.aa-cs-shot img { width: 100%; height: auto; display: block; border-radius: 12px;
  border: 1px solid var(--color-border); transition: transform .22s ease, border-color .22s ease; }
.aa-cs-shot img:hover { transform: translateY(-4px); border-color: var(--color-primary); }
.aa-cs-cap { display: block; font-size: 14px; color: var(--color-body); margin-top: 10px; line-height: 1.55; }
.aa-cs-shot--wide { grid-column: 1 / -1; }

.aa-cs-tags { display: flex; flex-wrap: wrap; gap: 9px; margin: 14px 0 0; padding: 0; list-style: none; }
.aa-cs-tags li { font-size: 12.5px; color: var(--color-body); border: 1px solid var(--color-border);
  border-radius: 999px; padding: 7px 14px; }
.aa-cs-tags__lbl { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .13em;
  color: var(--color-body); font-weight: 700; }

.aa-cs-status { display: inline-flex; align-items: center; gap: 9px; font-size: 14.5px; font-weight: 600;
  color: var(--color-heading); border: 1px solid var(--color-border); border-radius: 999px;
  padding: 9px 17px; }
.aa-cs-status__dot { width: 9px; height: 9px; border-radius: 50%; flex: none; }
.aa-cs-status--live    .aa-cs-status__dot { background: #34D399; box-shadow: 0 0 0 3px rgba(52,211,153,.18); }
.aa-cs-status--private .aa-cs-status__dot { background: #E0A244; box-shadow: 0 0 0 3px rgba(224,162,68,.18); }

.aa-cs-ph { display: grid; place-items: center; text-align: center; gap: 12px; min-height: 240px;
  padding: 34px; border-radius: 12px; border: 1px dashed var(--color-border); }
.aa-cs-ph__t { font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .11em;
  color: var(--color-body); }
.aa-cs-ph__d { font-size: 14px; color: var(--color-body); max-width: 46ch; margin: 0; line-height: 1.6; }

.aa-rel { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
  gap: 18px; margin-top: 26px; }
.aa-rel__card { display: block; padding: 26px; border: 1px solid var(--color-border); border-radius: 14px;
  text-decoration: none; transition: transform .22s ease, border-color .22s ease; }
.aa-rel__card:hover { transform: translateY(-4px); border-color: var(--color-primary); }
.aa-rel__k { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .13em;
  color: var(--color-body); font-weight: 700; margin-bottom: 8px; }
.aa-rel__t { display: block; font-size: 19px; font-weight: 700; color: var(--color-heading); margin-bottom: 8px; }
.aa-rel__d { display: block; font-size: 14.5px; color: var(--color-body); line-height: 1.6; }

.aa-cs-confirm { display: none; }   /* internal drafting note — never public */

@media (prefers-reduced-motion: reduce) {
  .aa-cs-shot img, .aa-rel__card { transition: none !important; }
}

/* ==========================================================================
   COMPACT FOOTER — the page ends at the copyright line
   ========================================================================== */
.aa-foot { border-top: 1px solid var(--color-border); margin: 0;
  padding: clamp(34px, 5vw, 54px) clamp(20px, 5vw, 60px) 0; }
.aa-foot__in { max-width: 1200px; margin: 0 auto;
  display: grid; grid-template-columns: 1.4fr 1.6fr auto; gap: 34px; align-items: start; }
.aa-foot__brand { display: flex; flex-direction: column; gap: 6px; }
.aa-foot__name { font-size: 18px; font-weight: 700; color: var(--color-heading); }
.aa-foot__role { font-size: 13px; color: var(--color-subtitle); font-weight: 600; }
.aa-foot__line2 { font-size: 13.5px; color: var(--color-body); }
.aa-foot__nav { display: flex; flex-wrap: wrap; gap: 10px 26px; align-content: start; }
.aa-foot__nav a { font-size: 14.5px; color: var(--color-body); text-decoration: none;
  min-height: 44px; display: inline-flex; align-items: center; }
.aa-foot__nav a:hover { color: var(--color-subtitle); }
.aa-foot__act { display: flex; align-items: center; gap: 14px; }
.aa-btn-sm { min-height: 44px; padding: 0 22px; font-size: 14px; }
.aa-foot__lang { display: inline-flex; border: 1px solid var(--color-border); border-radius: 8px; overflow: hidden; }
.aa-foot__lang a { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center;
  justify-content: center; font-size: 13px; font-weight: 600; color: var(--color-body); text-decoration: none; }
.aa-foot__lang a[aria-current="true"] { background: var(--aa-accent-soft); color: var(--color-primary); }
.aa-foot__copy { max-width: 1200px; margin: clamp(28px, 4vw, 42px) auto 0; padding: 22px 0;
  border-top: 1px solid var(--color-border); text-align: center;
  font-size: 14px; color: var(--color-body); }

/* nothing may sit below the copyright */
body.aa-inbio .aa-foot { margin-bottom: 0 !important; }
body.aa-inbio .aa-foot__copy { margin-bottom: 0 !important;
  padding-bottom: calc(22px + env(safe-area-inset-bottom, 0px)); }
body.aa-inbio #main-wrapper { padding-bottom: 0 !important; margin-bottom: 0 !important; }
body.aa-inbio .rn-footer-one, body.aa-inbio .copyright-area,
body.aa-inbio .rn-back-top ~ div:empty { display: none !important; }
body.aa-inbio .main-page-wrapper { margin-bottom: 0 !important; padding-bottom: 0 !important; }

@media (max-width: 900px) {
  .aa-foot__in { grid-template-columns: 1fr; gap: 26px; }
  .aa-foot__act { flex-wrap: wrap; }
}

/* ---------- skip link ---------- */
/* off-screen via clip, not a negative offset: `left:-9999px` is fine in LTR but
   in an RTL document it extends the page by 9999px. */
.aa-skip {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
  background: var(--color-primary); color: var(--aa-on-accent); font-weight: 600;
  text-decoration: none; border: 0;
}
.aa-skip:focus, .aa-skip:focus-visible {
  position: fixed; inset-inline-start: 0; top: 0; z-index: 100000;
  width: auto; height: auto; margin: 0; padding: 12px 20px;
  overflow: visible; clip: auto; clip-path: none;
  border-radius: 0 0 8px 8px; color: var(--aa-on-accent);
}

/* ---------- header identity: sit inline, never wrap into a column ---------- */
.header-left .logo { display: flex; align-items: center; gap: 12px; white-space: nowrap; }
.header-left .logo > a { display: inline-flex; align-items: center; flex: none; }
.header-left .logo img { max-height: 44px; width: auto; }
.aa-header-ident .aa-ident { display: flex; flex-direction: column; justify-content: center;
  white-space: normal; min-width: 0; }
.aa-ident__name { font-size: 16px; font-weight: 700; line-height: 1.2; color: var(--color-heading); white-space: nowrap; }
.aa-ident__role { font-size: 10.5px; font-weight: 600; letter-spacing: .05em; line-height: 1.3;
  text-transform: uppercase; color: var(--color-body); margin-top: 3px; max-width: 22ch; }
/* the logo column is narrow by default; let the identity use the space beside it */
.rn-header .header-wrapper .col-lg-2 { flex: 0 0 auto; width: auto; max-width: 42%; }
.rn-header .header-wrapper .col-lg-10 { flex: 1 1 auto; width: auto; }
@media (max-width: 1199px) { .aa-ident__role { display: none; } }
@media (max-width: 767px)  { .aa-ident__name { font-size: 15px; } .header-left .logo img { max-height: 38px; } }

/* ==========================================================================
   PROJECTS HUB CARDS  (moved here with the pages onto the InBio chrome)
   ========================================================================== */
main.aa-elementor .aa-hub-grid > .e-con-inner,
.aa-hub-grid > .e-con-inner {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
  gap: clamp(18px, 2.4vw, 30px); align-items: stretch; }
.aa-hub-card { padding: 0 !important; overflow: hidden;
  border: 1px solid var(--color-border); border-radius: 16px;
  background: color-mix(in srgb, var(--color-darker) 60%, transparent);
  transition: border-color .22s ease, transform .22s ease; }
body.white-version .aa-hub-card { background: #fff; }
.aa-hub-card:hover { border-color: var(--color-primary); transform: translateY(-5px); }
.aa-hub-card > .e-con-inner { display: flex; flex-direction: column; height: 100%; gap: 0; }
.aa-hub-card > .e-con-inner > .aa-hub-card__b { flex: 1 1 auto; }
.aa-hub-card__v { padding: 0 !important; min-height: 200px; overflow: hidden;
  border-bottom: 1px solid var(--color-border); background: var(--color-tertiary); }
.aa-hub-card__v > .e-con-inner,
.aa-hub-card__v .elementor-widget-image,
.aa-hub-card__v .elementor-widget-container,
.aa-hub-card__v figure,
.aa-hub-card__v figure > a { height: 100%; margin: 0; display: block; }
.aa-hub-card__v img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 0; display: block; }
.aa-hub-card__b { padding: clamp(22px, 2.6vw, 30px) !important; }
.aa-hub-card__b > .e-con-inner { display: flex; flex-direction: column; height: 100%; }
.aa-hub-h3 .elementor-heading-title { font-size: 21px; font-weight: 700; letter-spacing: -.018em;
  color: var(--color-heading); margin: 0 0 10px; }
.aa-hub-val { font-size: 15px; line-height: 1.65; color: var(--color-body); margin: 0 0 22px; max-width: 46ch; }
.aa-hub-meta { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.aa-chip { font-size: 11.5px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase;
  color: var(--color-body); border: 1px solid var(--color-border); border-radius: 999px; padding: 5px 12px; }
.aa-chip--live { color: #34D399; border-color: rgba(52,211,153,.45); }

/* the hub's button rows */
.aa-el-cta > .e-con-inner { display: flex; flex-direction: row; flex-wrap: wrap;
  gap: 10px; align-items: center; }
.aa-hub-card__b > .e-con-inner > .aa-el-cta { margin-top: auto; margin-bottom: 0; }
.aa-el-btn .elementor-button {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 44px; padding: 0 20px; border-radius: 8px;
  font-size: 14px; font-weight: 600; letter-spacing: .03em; border: 1px solid transparent;
  transition: filter .2s ease, transform .2s ease, border-color .2s ease, color .2s ease; }
.aa-el-btn .elementor-button:hover { transform: translateY(-2px); }
.aa-el-btn--primary .elementor-button { background: var(--color-primary); color: var(--aa-on-accent); }
.aa-el-btn--primary .elementor-button:hover { filter: brightness(1.12); color: var(--aa-on-accent); }
.aa-el-btn--ghost .elementor-button { background: transparent; border-color: var(--color-border); color: var(--color-heading); }
.aa-el-btn--ghost .elementor-button:hover { border-color: var(--color-primary); color: var(--color-subtitle); }

/* section rhythm for the elementor-authored pages on the InBio chrome */
.aa-hub-head > .e-con-inner, .aa-cs-sec > .e-con-inner, .aa-cs-hero > .e-con-inner {
  width: min(100% - 40px, 1200px); margin-inline: auto; }
.aa-cs-sec { padding-block: clamp(34px, 5vw, 62px) !important; }
.aa-hub-head { padding-block: clamp(50px, 7vw, 90px) 0 !important; }
.aa-cs-h1 .elementor-heading-title { font-size: clamp(36px, 5.5vw, 62px); line-height: 1.1;
  letter-spacing: -.03em; font-weight: 750; color: var(--color-heading); margin: 8px 0 16px; }
.aa-cs-h2 .elementor-heading-title { font-size: clamp(22px, 2.8vw, 32px); font-weight: 700;
  letter-spacing: -.02em; color: var(--color-heading); margin: 0 0 14px; }
.aa-cs-lede p, .aa-sec__lead { font-size: clamp(16px, 1.4vw, 19px); line-height: 1.7;
  color: var(--color-body); max-width: 64ch; margin: 0; }
.aa-cs-two > .e-con-inner { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: clamp(18px, 3vw, 34px); }
.aa-cs-panel { padding: clamp(24px, 3vw, 34px) !important; border: 1px solid var(--color-border);
  border-radius: 16px; background: color-mix(in srgb, var(--color-darker) 55%, transparent); }
body.white-version .aa-cs-panel { background: #fff; }
.aa-cs-band { padding: clamp(30px, 4vw, 50px) !important; border: 1px solid var(--color-border);
  border-radius: 18px; background: linear-gradient(150deg,
    color-mix(in srgb, var(--color-primary) 12%, transparent),
    color-mix(in srgb, var(--color-darker) 88%, transparent)); }
.aa-cs-gallery > .e-con-inner { display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: 20px; }
.aa-cs-rel > .e-con-inner { display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 18px; }
.aa-cs-relcard { padding: 0 !important; }
.aa-cs-relcard__a { display: block; height: 100%; padding: 26px; text-decoration: none;
  border: 1px solid var(--color-border); border-radius: 14px;
  transition: border-color .22s ease, transform .22s ease; }
.aa-cs-relcard__a:hover { border-color: var(--color-primary); transform: translateY(-4px); }
.aa-cs-relcard__k { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .13em;
  color: var(--color-body); font-weight: 700; margin-bottom: 8px; }
.aa-cs-relcard__t { display: block; font-size: 19px; font-weight: 700; color: var(--color-heading); margin-bottom: 8px; }
.aa-cs-relcard__d { display: block; font-size: 14.5px; color: var(--color-body); line-height: 1.6; }
.aa-cs-cover { padding: 0 !important; }
.aa-flag__desc { font-size: 15.5px; line-height: 1.7; color: var(--color-body); margin: 0 0 22px; }

@media (prefers-reduced-motion: reduce) {
  .aa-hub-card, .aa-el-btn .elementor-button, .aa-cs-relcard__a { transition: none !important; }
}

/* ==========================================================================
   RESPONSIVE + TARGET-SIZE CORRECTIONS (measured across 320–1920)
   ========================================================================== */

/* the theme drops the header CTA to 10px on small screens */
.rn-header .rn-btn,
.rn-header .rn-btn span,
.header-right .rn-btn,
.header-right .rn-btn span { font-size: 13px !important; letter-spacing: .04em; }
.rn-header .rn-btn { min-height: 44px; display: inline-flex; align-items: center; padding: 0 18px; }

/* micro-labels were 11–12.5px; lift them to a comfortable floor */
.aa-tools__lbl, .aa-inq__lbl, .aa-cs-tags__lbl { font-size: 12px; }
.aa-tools__list li, .aa-cs-tags li { font-size: 13.5px; padding: 7px 13px; }
.aa-chip { font-size: 12.5px; padding: 6px 13px; }

/* every interactive control gets a real target */
.rn-portfolio .read-more-button,
.read-more-button,
.rn-header a, .header-right a,
.aa-foot__nav a, .aa-foot__lang a,
.aa-inq__cta, .aa-btn-solid, .aa-btn-ghost {
  min-height: 44px; display: inline-flex; align-items: center; }
.read-more-button { padding-inline: 2px; }

/* the demo "like" control is decoration that links nowhere — remove it */
.like-button, .rn-portfolio .like-button, [class*="portfolio"] .like-button { display: none !important; }

/* Arabic needs a little more leading than the Latin default */
[lang="ar"] p, [dir="rtl"] p,
[dir="rtl"] li, [dir="rtl"] .aa-cs-list li, [dir="rtl"] .aa-role__list li { line-height: 1.95; }
[dir="rtl"] h1, [dir="rtl"] h2, [dir="rtl"] h3 { line-height: 1.45; }
[dir="rtl"] .aa-page-h1 .elementor-heading-title,
[dir="rtl"] .aa-cs-h1 .elementor-heading-title { line-height: 1.35; }

/* arrows and chevrons must point the other way in RTL */
[dir="rtl"] .aa-cs-back svg,
[dir="rtl"] .backto-top svg { transform: scaleX(-1); }

@media (max-width: 767px) {
  .aa-tools__list li, .aa-cs-tags li { font-size: 13px; }
  .aa-strip li { padding: 18px 2px; }
}

/* ==========================================================================
   RTL OVERFLOW CONTAINMENT
   The theme parks its off-canvas menu and carousel tracks outside the viewport
   and relies on a wrapper to clip them. That wrapper only clips in one
   direction, so in RTL the parked elements extended the document. `clip` is
   used rather than `hidden` so the sticky header keeps working.
   ========================================================================== */
[dir="rtl"] html, [dir="rtl"] body,
html[dir="rtl"], body[dir="rtl"] { overflow-x: clip; }
@supports not (overflow: clip) {
  [dir="rtl"] body { overflow-x: hidden; }
}
[dir="rtl"] #main-wrapper,
[dir="rtl"] .main-page-wrapper { overflow-x: clip; max-width: 100%; }
/* carousels clip inside their own frame in both directions */
.slick-list, .rn-portfolio-slick, [class*="portfolio-slick"] { overflow: hidden; }
/* the theme grid adds negative gutters that exceed a 390px viewport */
[dir="rtl"] .row { margin-inline: 0; }
[dir="rtl"] .row > [class*="col-"] { padding-inline: 12px; }

/* ==========================================================================
   LIGHT MODE TOKEN REMAP  — accessibility fix
   InBio keeps its light-theme values in separate variables (`--color-*-wv`)
   and only uses them in its own selectors. Everything written against
   `--color-heading` / `--color-body` therefore stayed at the dark-theme value
   and rendered pale grey on white. Remap the tokens themselves so every rule —
   theme, Elementor and ours — resolves correctly in light mode.
   ========================================================================== */
body.white-version {
  --color-heading:   #1e2125;
  --color-body:      #3c3e41;
  --color-border:    #dce1e4;
  --color-darker:    #ffffff;
  --color-dark:      #ffffff;
  --color-tertiary:  #f5f7f9;
  --color-lightn:    #1e2125;
  --aa-on-accent:    #ffffff;
}
body.white-version .aa-ident__name,
body.white-version .aa-foot__name,
body.white-version .aa-cs-facts dd,
body.white-version .aa-eng__item h3,
body.white-version .aa-contact-card h3,
body.white-version .aa-rel__t,
body.white-version .aa-strip__k { color: #1e2125; }
body.white-version .aa-ident__role,
body.white-version .aa-cs-facts dt,
body.white-version .aa-strip__v { color: #4a4d52; }
body.white-version .aa-page-h1 .elementor-heading-title,
body.white-version .aa-cs-h1 .elementor-heading-title,
body.white-version .aa-cs-h2 .elementor-heading-title,
body.white-version .aa-hub-h3 .elementor-heading-title,
body.white-version .aa-sign__line,
body.white-version .aa-cta-band h2 { color: #16181c; }
body.white-version .aa-prose p,
body.white-version .aa-page-lede p,
body.white-version .aa-cs-lede p,
body.white-version .aa-cs-list li,
body.white-version .aa-role__list li,
body.white-version .aa-hub-val,
body.white-version .aa-next__lead { color: #3c3e41; }
/* the theme's own section headings in light mode */
body.white-version .rn-section-title .title,
body.white-version .title.sec-title,
body.white-version .rn-about-card .title,
body.white-version h1, body.white-version h2,
body.white-version h3, body.white-version h4 { color: #1e2125; }
body.white-version .aa-next li { color: #3c3e41; border-color: #d4dae0; }
body.white-version .aa-tools__list li,
body.white-version .aa-cs-tags li,
body.white-version .aa-chip { color: #3c3e41; border-color: #d4dae0; }

/* ---------- light mode: header contrast (measured 1.07 before this) ---------- */
body.white-version .rn-header nav a,
body.white-version .mainmenu a,
body.white-version .mainmenu li a,
body.white-version .rn-header .mainmenu > li > a,
body.white-version .popup-mobile-menu a,
body.white-version .aa-hdr__lang a { color: #23262b; }
body.white-version .rn-header nav a:hover,
body.white-version .mainmenu a:hover,
body.white-version .aa-hdr__lang a:hover { color: var(--color-primary); }
body.white-version .mainmenu > li > a.is-current,
body.white-version .aa-hdr__lang a[aria-current="true"] { color: var(--color-primary); }
body.white-version .aa-hdr__btn { color: #23262b; border-color: #cfd6dd; }

/* the header CTA measured 4.12 at 13px — solid fill clears AA comfortably */
.rn-header .rn-btn, .header-right .rn-btn {
  background: var(--color-primary); color: #fff !important; border-color: transparent; }
.rn-header .rn-btn span, .header-right .rn-btn span { color: #fff !important; }
.rn-header .rn-btn:hover, .header-right .rn-btn:hover { filter: brightness(1.1); }
body.white-version .rn-header .rn-btn { color: #fff !important; }

/* the mobile menu panel in light mode */
body.white-version .popup-mobile-menu .inner { background: #fff; }
body.white-version .popup-mobile-menu .inner .header-top a { color: #23262b; }

/* The theme paints menu links near-white from a rule we cannot out-specify
   cleanly; in light mode that measured 1.07:1. Scoped !important is the
   proportionate fix — it applies only to the light theme's header links. */
body.white-version .rn-header .mainmenu > li > a,
body.white-version .rn-header .mainmenu li a,
body.white-version .rn-header nav a,
body.white-version .header-right .aa-hdr__lang a,
body.white-version .aa-hdr__lang a { color: #23262b !important; }
body.white-version .rn-header .mainmenu > li > a:hover,
body.white-version .rn-header nav a:hover,
body.white-version .aa-hdr__lang a:hover { color: var(--color-primary) !important; }
body.white-version .aa-hdr__lang a[aria-current="true"] { color: var(--color-primary) !important; }
body.white-version .rn-header .rn-btn,
body.white-version .rn-header .rn-btn span { color: #fff !important; }

/* the active language chip used the accent at 4.12:1 on its own tint — darken
   it in light mode so every header control clears AA */
body.white-version .aa-hdr__lang a[aria-current="true"],
body.white-version .aa-foot__lang a[aria-current="true"] { color: #1F5A85 !important; background: #DCE7F1; }
body.white-version .aa-hdr__lang { border-color: #cfd6dd; }

/* the header CTA must read as a solid button in both themes */
.rn-header .rn-btn, .header-right .rn-btn,
body.white-version .rn-header .rn-btn {
  background-color: var(--color-primary) !important;
  border: 1px solid var(--color-primary) !important;
  color: #fff !important; opacity: 1 !important; }
.rn-header .rn-btn::before, .rn-header .rn-btn::after { display: none !important; }

/* ==========================================================================
   CONTACT FORM  — Contact Form 7 wearing the InBio design system
   ========================================================================== */
.aa-form { max-width: 820px; }
.aa-form__row { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 0 22px; }
.aa-field { margin: 0 0 22px; }
.aa-field label,
.aa-consent label { display: block; margin-bottom: 8px; font-size: 14px; font-weight: 600; color: var(--color-heading); }
.aa-req { color: var(--color-primary); margin-inline-start: 2px; }
.aa-opt { font-weight: 500; color: var(--color-body); font-size: 13px; margin-inline-start: 4px; }
.aa-hint { display: block; margin-top: 7px; font-size: 13px; color: var(--color-body); line-height: 1.55; }

.aa-form input[type="text"],
.aa-form input[type="email"],
.aa-form input[type="tel"],
.aa-form select,
.aa-form textarea {
  width: 100%; min-height: 52px; padding: 14px 16px;
  font-family: inherit; font-size: 16px; line-height: 1.5;   /* 16px avoids iOS zoom */
  color: var(--color-heading);
  background: color-mix(in srgb, var(--color-darker) 65%, transparent);
  border: 1px solid var(--color-border); border-radius: 10px;
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
  -webkit-appearance: none; appearance: none;
}
body.white-version .aa-form input[type="text"],
body.white-version .aa-form input[type="email"],
body.white-version .aa-form input[type="tel"],
body.white-version .aa-form select,
body.white-version .aa-form textarea { background: #fff; border-color: #cfd6dd; color: #1e2125; }
.aa-form textarea { min-height: 150px; resize: vertical; }
.aa-form select {
  background-image: linear-gradient(45deg, transparent 50%, currentColor 50%),
                    linear-gradient(135deg, currentColor 50%, transparent 50%);
  background-position: calc(100% - 20px) 50%, calc(100% - 14px) 50%;
  background-size: 6px 6px, 6px 6px; background-repeat: no-repeat; padding-inline-end: 44px;
}
[dir="rtl"] .aa-form select {
  background-position: 20px 50%, 14px 50%;
  background-image: linear-gradient(135deg, transparent 50%, currentColor 50%),
                    linear-gradient(45deg, currentColor 50%, transparent 50%);
  padding-inline-end: 16px; padding-inline-start: 44px;
}
.aa-form input::placeholder, .aa-form textarea::placeholder { color: var(--color-body); opacity: .75; }
.aa-form input:hover, .aa-form select:hover, .aa-form textarea:hover { border-color: var(--color-primary); }
.aa-form input:focus-visible, .aa-form select:focus-visible, .aa-form textarea:focus-visible,
.aa-form input:focus, .aa-form select:focus, .aa-form textarea:focus {
  outline: 2px solid var(--color-primary); outline-offset: 2px;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--color-primary) 18%, transparent);
}

/* consent */
.aa-consent { display: flex; align-items: flex-start; gap: 12px; margin: 4px 0 26px; }
.aa-consent .wpcf7-list-item { margin: 0; }
.aa-consent .wpcf7-list-item label { display: flex; align-items: flex-start; gap: 12px;
  font-weight: 500; font-size: 14.5px; line-height: 1.6; color: var(--color-body); cursor: pointer; }
.aa-consent input[type="checkbox"] {
  flex: none; width: 22px; height: 22px; margin-top: 1px; cursor: pointer;
  accent-color: var(--color-primary);
}
.aa-consent input[type="checkbox"]:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 3px; }

/* the honeypot must be unreachable, not merely invisible */
.aa-hp { position: absolute !important; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }

/* submit */
.aa-submit { margin: 0; }
.aa-form__btn, .aa-form input[type="submit"] {
  min-height: 52px; min-width: 200px; padding: 0 34px; border: 0; border-radius: 10px;
  font-family: inherit; font-size: 15px; font-weight: 600; letter-spacing: .03em; cursor: pointer;
  background: var(--color-primary); color: #fff;
  transition: filter .18s ease, transform .18s ease;
}
.aa-form__btn:hover, .aa-form input[type="submit"]:hover { filter: brightness(1.1); transform: translateY(-2px); }
.aa-form__btn:focus-visible, .aa-form input[type="submit"]:focus-visible {
  outline: 2px solid var(--color-primary); outline-offset: 3px; }
.aa-form .wpcf7-spinner { margin-inline-start: 14px; }

/* CF7 responses */
.wpcf7 form .wpcf7-response-output {
  margin: 24px 0 0; padding: 16px 20px; border-radius: 10px; border-width: 1px;
  font-size: 15px; line-height: 1.6; }
.wpcf7 form.sent .wpcf7-response-output {
  border-color: #34D399; background: color-mix(in srgb, #34D399 14%, transparent); color: var(--color-heading); }
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
  border-color: #E0A244; background: color-mix(in srgb, #E0A244 14%, transparent); color: var(--color-heading); }
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output {
  border-color: #E06A6A; background: color-mix(in srgb, #E06A6A 14%, transparent); color: var(--color-heading); }
.wpcf7-not-valid-tip { display: block; margin-top: 7px; font-size: 13.5px; color: #E0A244; }
body.white-version .wpcf7-not-valid-tip { color: #9A5B00; }
.aa-form .wpcf7-not-valid { border-color: #E0A244 !important; }

@media (max-width: 600px) {
  .aa-form__row { grid-template-columns: 1fr; }
  .aa-form__btn, .aa-form input[type="submit"] { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .aa-form input, .aa-form select, .aa-form textarea, .aa-form__btn { transition: none !important; }
}

/* the two-gradient select arrow rendered as stray glyphs in RTL; one inline
   SVG chevron behaves identically in both directions */
.aa-form select {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9' fill='none'%3E%3Cpath d='M1 1l6 6 6-6' stroke='%236BA8DC' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: 14px 9px;
  background-position: right 18px center;
  padding-inline-end: 46px; padding-inline-start: 16px;
}
[dir="rtl"] .aa-form select {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9' fill='none'%3E%3Cpath d='M1 1l6 6 6-6' stroke='%236BA8DC' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-position: left 18px center;
  padding-inline-end: 16px; padding-inline-start: 46px;
}
body.white-version .aa-form select {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9' fill='none'%3E%3Cpath d='M1 1l6 6 6-6' stroke='%233C78A8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* ---------- focus visibility (the theme resets outline on form controls) ---------- */
.wpcf7 .aa-form input:focus,
.wpcf7 .aa-form select:focus,
.wpcf7 .aa-form textarea:focus,
.wpcf7 .aa-form input:focus-visible,
.wpcf7 .aa-form select:focus-visible,
.wpcf7 .aa-form textarea:focus-visible,
.wpcf7 .aa-form input[type="submit"]:focus,
.wpcf7 .aa-form input[type="submit"]:focus-visible,
.wpcf7 .aa-form input[type="checkbox"]:focus,
.wpcf7 .aa-form input[type="checkbox"]:focus-visible {
  outline: 3px solid var(--color-primary) !important;
  outline-offset: 2px !important;
  border-color: var(--color-primary) !important;
}
/* a comfortable hit area around the small consent checkbox */
.aa-consent .wpcf7-list-item label { min-height: 44px; padding-block: 6px; }
.aa-consent input[type="checkbox"] { width: 24px; height: 24px; }
