/*
 * AskOptimize R35 presentation layer.
 * Loaded after theme.css so commercial navigation and the shared catalogue
 * surfaces can evolve without duplicating the design system.
 */

/* Strategy navigation ----------------------------------------------------- */

.ao-strategy-nav {
  position: relative;
  gap: clamp(8px, 1.2vw, 18px);
}

.ao-strategy-nav > li {
  min-width: 0;
}

.ao-strategy-nav > li > a {
  font-size: 13px;
}

@media (min-width: 981px) {
  .ao-strategy-nav > li:not(.ao-nav-group) {
    display: flex;
    min-height: 41px;
    align-items: center;
  }

  .ao-strategy-nav > li:not(.ao-nav-group) > a {
    display: inline-flex;
    min-height: 41px;
    align-items: center;
    padding-block: 0;
  }
}

.ao-nav-group {
  position: relative;
  display: grid;
  grid-template-columns: auto 30px;
  align-items: center;
}

.ao-nav-group > a {
  min-width: 0;
}

.ao-submenu-toggle {
  position: relative;
  display: grid;
  width: 30px;
  height: 36px;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--ao-muted);
  cursor: pointer;
  transition: background-color 160ms ease, color 160ms ease;
}

.ao-submenu-toggle::before {
  width: 7px;
  height: 7px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  content: "";
  transform: translateY(-2px) rotate(45deg);
  transition: transform 160ms ease;
}

.ao-submenu-toggle:hover,
.ao-submenu-toggle:focus-visible,
.ao-nav-group.submenu-open > .ao-submenu-toggle {
  background: var(--ao-soft);
  color: var(--ao-navy);
}

.ao-nav-group.submenu-open > .ao-submenu-toggle::before {
  transform: translateY(2px) rotate(225deg);
}

.ao-nav-submenu {
  position: absolute;
  z-index: 130;
  top: 100%;
  left: 50%;
  display: grid;
  width: min(330px, calc(100vw - 32px));
  margin: 0;
  padding: 10px;
  visibility: hidden;
  opacity: 0;
  border: 1px solid var(--ao-glass-border);
  border-radius: var(--ao-radius-card);
  background: var(--ao-glass-surface);
  box-shadow: 0 22px 60px color-mix(in srgb, var(--ao-ink) 16%, transparent);
  list-style: none;
  transform: translate(-50%, 10px);
  backdrop-filter: blur(24px) saturate(165%);
  -webkit-backdrop-filter: blur(24px) saturate(165%);
  pointer-events: none;
  transition: opacity 160ms ease, transform 160ms ease, visibility 160ms ease;
}

.ao-strategy-nav > .ao-nav-group:last-child > .ao-nav-submenu {
  right: 0;
  left: auto;
  transform: translateY(10px);
}

.ao-nav-submenu li {
  min-width: 0;
}

.ao-nav-submenu a {
  display: grid;
  gap: 4px;
  min-height: 0;
  padding: 12px 13px;
  border-radius: 10px;
  white-space: normal;
}

.ao-nav-submenu a::after {
  display: none;
}

.ao-nav-submenu a:hover,
.ao-nav-submenu a:focus-visible {
  background: var(--ao-soft);
  text-decoration: none;
}

.ao-nav-submenu strong,
.ao-nav-submenu span {
  display: block;
}

.ao-nav-submenu strong {
  color: var(--ao-navy);
  font-family: var(--ao-display);
  font-size: 15px;
  line-height: 1.15;
}

.ao-nav-submenu span {
  color: var(--ao-muted);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.38;
}

.ao-nav-submenu-method,
.ao-nav-submenu-tools {
  width: min(420px, calc(100vw - 32px));
}

.ao-nav-submenu-formations {
  width: min(720px, calc(100vw - 48px));
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px;
  padding: 14px;
  background: color-mix(in srgb, var(--ao-white) 98%, transparent);
}

.ao-nav-group-services {
  position: static;
}

.ao-nav-submenu-services {
  left: 50%;
  width: min(900px, calc(100vw - 48px));
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 4px;
  padding: 14px;
  background: color-mix(in srgb, var(--ao-white) 98%, transparent);
}

.ao-nav-submenu .ao-nav-rich-link,
.ao-nav-submenu-services .ao-nav-service-link {
  grid-template-columns: 42px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  min-height: 74px;
  padding: 10px;
}

.ao-nav-rich-icon,
.ao-nav-service-icon {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.ao-nav-rich-icon img,
.ao-nav-service-icon img {
  display: block;
  width: 30px;
  height: 30px;
  object-fit: contain;
}

.ao-nav-rich-copy,
.ao-nav-service-copy {
  min-width: 0;
}

.ao-nav-services-all {
  grid-column: 1 / -1;
  margin-top: 6px;
  padding-top: 8px;
  border-top: 1px solid var(--ao-border);
}

.ao-nav-services-all > a {
  grid-template-columns: auto 1fr;
  align-items: baseline;
  gap: 12px;
}

.ao-nav-services-all > a strong {
  color: var(--ao-blue);
}

@media (min-width: 981px) {
  .ao-nav-group:hover > .ao-nav-submenu,
  .ao-nav:not(.ao-navigation-enhanced) .ao-nav-group:focus-within > .ao-nav-submenu,
  .ao-nav-group.submenu-open > .ao-nav-submenu {
    visibility: visible;
    opacity: 1;
    transform: translate(-50%, 0);
    pointer-events: auto;
  }

  .ao-strategy-nav > .ao-nav-group:last-child:hover > .ao-nav-submenu,
  .ao-nav:not(.ao-navigation-enhanced) .ao-strategy-nav > .ao-nav-group:last-child:focus-within > .ao-nav-submenu,
  .ao-strategy-nav > .ao-nav-group:last-child.submenu-open > .ao-nav-submenu {
    transform: translateY(0);
  }
}

/* Rich footer ------------------------------------------------------------- */

.ao-footer-rich {
	--ao-footer-fg: var(--ao-on-ink);
	--ao-footer-muted: color-mix(in srgb, var(--ao-on-ink) 76%, transparent);
	--ao-footer-faint: color-mix(in srgb, var(--ao-on-ink) 60%, transparent);
	--ao-footer-border: color-mix(in srgb, var(--ao-on-ink) 14%, transparent);
	margin-top: clamp(70px, 9vw, 112px);
	padding: clamp(44px, 5vw, 64px) 0 24px;
	background: var(--ao-ink);
	color: var(--ao-footer-fg);
}

.ao-footer-intro {
	display: grid;
	grid-template-columns: minmax(320px, 1.25fr) minmax(250px, 0.9fr) auto;
	align-items: center;
	gap: clamp(28px, 4vw, 58px);
	padding-bottom: clamp(30px, 4vw, 42px);
	border-bottom: 1px solid var(--ao-footer-border);
}

.ao-footer-brand-summary {
	min-width: 0;
	max-width: 540px;
}

.ao-footer-rich .ao-footer-logo {
	display: inline-flex;
}

.ao-footer-rich .ao-footer-logo img {
	width: 174px;
	height: auto;
}

.ao-footer-rich .ao-footer-positioning {
	max-width: 520px;
	margin: 16px 0 0;
	color: var(--ao-footer-muted);
	font-size: 14px;
	line-height: 1.55;
}

.ao-footer-network-inline {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 5px 9px;
	margin-top: 13px;
	color: var(--ao-footer-faint);
	font-size: 12px;
	line-height: 1.45;
}

.ao-footer-network-inline a {
	color: var(--ao-footer-fg);
	font-size: inherit;
	font-weight: 700;
}

.ao-footer-network-inline a:hover,
.ao-footer-network-inline a:focus-visible {
	color: var(--ao-blue);
}

.ao-footer-direct {
	display: grid;
	gap: 7px;
	margin: 0;
	color: var(--ao-footer-faint);
	font-size: 12px;
	font-style: normal;
	line-height: 1.45;
}

.ao-footer-rich .ao-footer-direct a {
	color: var(--ao-footer-muted);
	font-size: inherit;
}

.ao-footer-rich .ao-footer-direct a:hover,
.ao-footer-rich .ao-footer-direct a:focus-visible {
	color: var(--ao-footer-fg);
}

.ao-footer-rich .ao-footer-audit {
	justify-self: end;
	min-height: 48px;
	white-space: nowrap;
}

.ao-footer-rich .ao-footer-audit,
.ao-footer-rich .ao-footer-audit:hover,
.ao-footer-rich .ao-footer-audit:focus-visible {
	color: var(--ao-white);
}

.ao-footer-rich .ao-footer-audit .ao-icon,
.ao-footer-rich .ao-footer-audit img {
	filter: brightness(0) invert(1);
}

.ao-footer-sitemap {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: clamp(20px, 2.5vw, 38px);
	margin-top: clamp(32px, 4vw, 46px);
}

.ao-footer-column {
	min-width: 0;
}

.ao-footer-column > summary,
.ao-footer-seo-strip > summary {
	list-style: none;
}

.ao-footer-column > summary::-webkit-details-marker,
.ao-footer-seo-strip > summary::-webkit-details-marker {
	display: none;
}

.ao-footer-column > summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	cursor: default;
}

.ao-footer-column-title {
	color: var(--ao-footer-fg);
	font-size: 14px;
	font-weight: 800;
	line-height: 1.3;
}

.ao-footer-disclosure-icon {
	display: none;
	width: 22px;
	height: 22px;
	flex: 0 0 22px;
	align-items: center;
	justify-content: center;
	transition: transform 160ms ease;
}

.ao-footer-disclosure-icon .ao-icon {
	width: 18px;
	height: 18px;
}

.ao-footer-column-content {
	margin-top: 16px;
}

.ao-footer-column ul {
	display: grid;
	gap: 9px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ao-footer-column li {
	margin: 0;
}

.ao-footer-column a {
	color: var(--ao-footer-muted);
	font-size: 13px;
	line-height: 1.45;
}

.ao-footer-column a:hover,
.ao-footer-column a:focus-visible {
	color: var(--ao-footer-fg);
}

.ao-footer-column .ao-footer-featured-link {
	color: var(--ao-footer-fg);
	font-weight: 750;
}

.ao-footer-seo-strip {
	margin-top: clamp(24px, 3vw, 34px);
	padding: 0;
	border-top: 1px solid var(--ao-footer-border);
	border-bottom: 1px solid var(--ao-footer-border);
}

.ao-footer-seo-strip > summary {
	display: flex;
	min-height: 50px;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	cursor: pointer;
}

.ao-footer-seo-strip > summary:focus-visible {
	outline: 2px solid var(--ao-blue);
	outline-offset: 4px;
}

.ao-footer-seo-label {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 5px 14px;
}

.ao-footer-seo-meta {
	color: var(--ao-footer-faint);
	font-size: 11px;
	line-height: 1.4;
}

.ao-footer-seo-strip[data-footer-compact] .ao-footer-disclosure-icon {
	display: inline-flex;
}

.ao-footer-seo-strip[open] > summary .ao-footer-disclosure-icon {
	transform: rotate(180deg);
}

.ao-footer-seo-title,
.ao-footer-seo-group strong {
	color: var(--ao-blue);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.08em;
	line-height: 1.4;
	text-transform: uppercase;
}

.ao-footer-seo-content {
	display: grid;
	grid-template-columns: minmax(220px, 0.65fr) minmax(0, 1.35fr);
	gap: clamp(24px, 3vw, 52px);
	margin: 0;
	padding: 0 0 18px;
}

.ao-footer-seo-group {
	display: grid;
	grid-template-columns: 1fr;
	align-content: start;
	gap: 8px;
}

.ao-footer-seo-group nav {
	display: flex;
	flex-wrap: wrap;
	gap: 7px 18px;
}

.ao-footer-seo-group a {
	color: var(--ao-footer-faint);
	font-size: 11px;
	line-height: 1.45;
}

.ao-footer-seo-group a:hover,
.ao-footer-seo-group a:focus-visible {
	color: var(--ao-footer-fg);
}

.ao-footer-bottom {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 22px 34px;
	padding-top: 22px;
	border-top: 0;
	color: var(--ao-footer-faint);
	font-size: 11px;
}

.ao-footer-copyright,
.ao-footer-social-links,
.ao-footer-legal-links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 18px;
}

.ao-footer-social-links {
	justify-content: center;
}

.ao-footer-rich .ao-footer-social-links a {
	border: 0;
	background: transparent;
}

.ao-footer-legal-links {
	justify-content: flex-end;
}

.ao-footer-bottom a {
	color: var(--ao-footer-muted);
	font-size: inherit;
}

.ao-footer-bottom a:hover,
.ao-footer-bottom a:focus-visible {
	color: var(--ao-footer-fg);
}

/* Services, catalogue and blog ------------------------------------------- */

.ao-offer-group {
  scroll-margin-top: 96px;
}

.ao-offer-list,
.ao-catalogue-grid,
.ao-service-directory,
.ao-blog-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  border: 1px solid var(--ao-border);
  border-radius: var(--ao-radius-card);
  background: var(--ao-border);
}

.ao-offer-list > article,
.ao-catalogue-grid > article,
.ao-service-directory > article,
.ao-blog-grid > article {
  min-width: 0;
  padding: clamp(26px, 3.5vw, 42px);
  background: color-mix(in srgb, var(--ao-white) 90%, transparent);
}

.ao-offer-list h3,
.ao-catalogue-grid h3,
.ao-service-directory h3,
.ao-blog-grid h3 {
  margin: 0 0 10px;
  font-family: var(--ao-display);
  font-size: clamp(25px, 2.8vw, 34px);
  letter-spacing: -0.03em;
  line-height: 1.04;
}

.ao-offer-list p,
.ao-catalogue-grid p,
.ao-service-directory p,
.ao-blog-grid p {
  margin: 0;
  color: var(--ao-muted);
  line-height: 1.58;
}

.ao-price-list,
.ao-catalogue-list {
  overflow: hidden;
  border: 1px solid var(--ao-border);
  border-radius: var(--ao-radius-card);
  background: var(--ao-white);
}

.ao-price-list > div,
.ao-catalogue-list > a,
.ao-catalogue-list > div {
  display: grid;
  grid-template-columns: minmax(160px, 0.75fr) minmax(170px, 0.55fr) minmax(260px, 1.3fr);
  align-items: center;
  gap: 20px;
  min-height: 76px;
  padding: 17px 22px;
  border-bottom: 1px solid var(--ao-border);
}

.ao-price-list > div:last-child,
.ao-catalogue-list > :last-child {
  border-bottom: 0;
}

.ao-price-list strong,
.ao-catalogue-list strong {
  font-family: var(--ao-display);
  font-size: 18px;
}

.ao-price-list span {
  color: var(--ao-blue-dark);
  font-weight: 750;
}

.ao-price-list small,
.ao-catalogue-list small {
  color: var(--ao-muted);
  font-size: 14px;
  line-height: 1.45;
}

.ao-post-list {
  gap: clamp(18px, 2.4vw, 28px);
}

.ao-post-card {
  box-shadow: 0 1px 0 color-mix(in srgb, var(--ao-ink) 3%, transparent);
  transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.ao-post-card:hover,
.ao-post-card:focus-within {
  border-color: color-mix(in srgb, var(--ao-blue) 46%, var(--ao-border));
  box-shadow: var(--ao-shadow);
  transform: translateY(-3px);
}

.ao-post-card h2 a {
  color: var(--ao-navy);
}

.ao-post-card .ao-entry-meta {
  margin-top: 0;
}

.ao-efficient-hero-card .ao-search-form {
  width: 100%;
  margin-top: 8px;
}

.ao-efficient-hero-card .ao-search-form label {
  color: var(--ao-muted);
}

/* ROI simulator ---------------------------------------------------------- */

.ao-roi-simulator {
  width: min(100%, 1080px);
  margin-inline: auto;
  padding: clamp(28px, 5vw, 56px);
  border: 1px solid var(--ao-glass-border);
  border-radius: var(--ao-radius-band);
  background: var(--ao-glass-surface);
  box-shadow: var(--ao-glass-shadow);
  backdrop-filter: blur(22px) saturate(155%);
  -webkit-backdrop-filter: blur(22px) saturate(155%);
}

.ao-roi-simulator [hidden] {
  display: none !important;
}

.ao-roi-simulator__intro,
.ao-roi-simulator__results-heading {
  max-width: 760px;
  margin: 0 auto clamp(32px, 5vw, 52px);
  text-align: center;
}

.ao-roi-simulator__eyebrow {
  margin: 0 0 10px;
  color: var(--ao-blue-dark);
  font-size: 11px;
  font-weight: 750;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.ao-roi-simulator__intro h2,
.ao-roi-simulator__results-heading h3 {
  margin: 0 0 14px;
  font-family: var(--ao-display);
  font-size: clamp(34px, 4.7vw, 58px);
  letter-spacing: -0.045em;
  line-height: 0.98;
}

.ao-roi-simulator__intro > p:last-child,
.ao-roi-simulator__results-heading > p:last-child {
  margin: 0;
  color: var(--ao-muted);
  font-size: 17px;
  line-height: 1.55;
}

.ao-roi-simulator__form,
.ao-roi-simulator__results {
  max-width: 900px;
  margin-inline: auto;
}

.ao-roi-simulator__progress {
  margin-bottom: clamp(30px, 4vw, 46px);
}

.ao-roi-simulator__progress > p {
  margin: 0 0 10px;
  color: var(--ao-muted);
  font-size: 12px;
  text-align: center;
}

.ao-roi-simulator__progress ol {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.ao-roi-simulator__progress li {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 9px;
  padding: 10px 12px;
  border: 1px solid var(--ao-border);
  border-radius: var(--ao-radius-control);
  color: var(--ao-muted);
  font-size: 12px;
}

.ao-roi-simulator__progress li > span {
  display: grid;
  width: 24px;
  height: 24px;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 50%;
  background: var(--ao-soft);
  font-size: 11px;
  font-weight: 750;
}

.ao-roi-simulator__progress li[aria-current="step"] {
  border-color: color-mix(in srgb, var(--ao-blue) 60%, var(--ao-border));
  background: var(--ao-soft);
  color: var(--ao-navy);
}

.ao-roi-simulator__progress li[aria-current="step"] > span,
.ao-roi-simulator__progress li[data-ao-complete="true"] > span {
  background: var(--ao-action);
  color: var(--ao-on-action);
}

.ao-roi-simulator__step {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.ao-roi-simulator__step legend {
  width: 100%;
  margin: 0 0 8px;
  padding: 0;
  font-family: var(--ao-display);
  font-size: clamp(28px, 3.6vw, 40px);
  font-weight: 750;
  letter-spacing: -0.035em;
  line-height: 1.04;
}

.ao-roi-simulator__step-intro {
  margin: 0 0 28px;
  color: var(--ao-muted);
}

.ao-roi-simulator__fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
}

.ao-roi-simulator__field {
  display: grid;
  min-width: 0;
  gap: 8px;
  margin-bottom: 24px;
}

.ao-roi-simulator__fields .ao-roi-simulator__field {
  margin-bottom: 0;
}

.ao-roi-simulator__field--full {
  grid-column: 1 / -1;
}

.ao-roi-simulator__field > label,
.ao-roi-simulator__label {
  color: var(--ao-navy);
  font-size: 14px;
  font-weight: 750;
}

.ao-roi-simulator__field > label span {
  color: var(--ao-muted);
  font-weight: 500;
}

.ao-roi-simulator__field > small,
.ao-roi-simulator__choice small {
  color: var(--ao-muted);
  font-size: 12px;
  line-height: 1.42;
}

.ao-roi-simulator :where(input[type="number"], select) {
  width: 100%;
  min-height: 50px;
  padding: 12px 14px;
  border: 1px solid var(--ao-border);
  border-radius: var(--ao-radius-control);
  background: var(--ao-white);
  color: var(--ao-navy);
  font: inherit;
}

.ao-roi-simulator :where(input[type="number"], select):focus-visible {
  border-color: var(--ao-blue-dark);
  outline: 2px solid color-mix(in srgb, var(--ao-blue) 28%, transparent);
  outline-offset: 1px;
}

.ao-roi-simulator__choice-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.ao-roi-simulator__choice {
  position: relative;
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  align-items: start;
  gap: 12px;
  padding: 18px;
  border: 1px solid var(--ao-border);
  border-radius: var(--ao-radius-card);
  background: var(--ao-white);
  cursor: pointer;
  transition: border-color 160ms ease, background-color 160ms ease;
}

.ao-roi-simulator__choice:has(input:checked) {
  border-color: var(--ao-blue-dark);
  background: var(--ao-soft);
}

.ao-roi-simulator__choice input {
  width: 18px;
  height: 18px;
  margin: 2px 0 0;
  accent-color: var(--ao-action);
}

.ao-roi-simulator__choice > span {
  display: grid;
  gap: 5px;
}

.ao-roi-simulator__choice strong {
  font-family: var(--ao-display);
  font-size: 18px;
  line-height: 1.15;
}

.ao-roi-simulator__inline-choices {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 22px;
}

.ao-roi-simulator__inline-choices label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--ao-muted);
  cursor: pointer;
}

.ao-roi-simulator__inline-choices input {
  accent-color: var(--ao-action);
}

.ao-roi-simulator__input-unit {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  overflow: hidden;
  border: 1px solid var(--ao-border);
  border-radius: var(--ao-radius-control);
  background: var(--ao-white);
}

.ao-roi-simulator__input-unit:focus-within {
  border-color: var(--ao-blue-dark);
  outline: 2px solid color-mix(in srgb, var(--ao-blue) 28%, transparent);
  outline-offset: 1px;
}

.ao-roi-simulator__input-unit input {
  min-width: 0;
  border: 0;
  border-radius: 0;
  outline: 0;
}

.ao-roi-simulator__input-unit input:focus-visible {
  outline: 0;
}

.ao-roi-simulator__input-unit > span {
  display: grid;
  min-width: 44px;
  place-items: center;
  padding-inline: 12px;
  border-left: 1px solid var(--ao-border);
  color: var(--ao-muted);
  font-weight: 700;
}

.ao-roi-simulator__actions,
.ao-roi-simulator__result-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 30px;
}

.ao-roi-simulator__button {
  display: inline-flex;
  min-height: var(--ao-cta-height);
  align-items: center;
  justify-content: center;
  padding: var(--ao-cta-padding-block) var(--ao-cta-padding-inline);
  border: 1px solid transparent;
  border-radius: var(--ao-cta-radius);
  font: var(--ao-cta-font-weight) var(--ao-cta-font-size)/1.2 var(--ao-body);
  cursor: pointer;
}

.ao-roi-simulator__button--primary {
  background: var(--ao-action);
  color: var(--ao-on-action);
}

.ao-roi-simulator__button--primary:hover,
.ao-roi-simulator__button--primary:focus-visible {
  background: var(--ao-action-hover);
  color: var(--ao-on-action);
}

.ao-roi-simulator__button--secondary {
  border-color: var(--ao-border);
  background: var(--ao-white);
  color: var(--ao-navy);
}

.ao-roi-simulator__button--secondary:hover,
.ao-roi-simulator__button--secondary:focus-visible {
  border-color: var(--ao-navy);
}

.ao-roi-simulator__button:disabled {
  cursor: wait;
  opacity: 0.62;
}

.ao-roi-simulator__form[data-ao-enhanced="true"] .ao-roi-simulator__fallback-submit {
  display: none;
}

.ao-roi-simulator__error {
  margin: 22px 0 0;
  padding: 14px 16px;
  border: 1px solid color-mix(in srgb, #b42318 40%, var(--ao-border));
  border-radius: var(--ao-radius-control);
  background: color-mix(in srgb, #b42318 8%, var(--ao-white));
  color: color-mix(in srgb, #b42318 85%, var(--ao-navy));
}

.ao-roi-simulator__results {
  scroll-margin-top: 110px;
}

.ao-roi-simulator__levers,
.ao-roi-simulator__scenarios {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.ao-roi-simulator__levers {
  margin-bottom: 28px;
}

.ao-roi-simulator__levers article,
.ao-roi-simulator__scenario,
.ao-roi-simulator__assumptions {
  min-width: 0;
  padding: 20px;
  border: 1px solid var(--ao-border);
  border-radius: var(--ao-radius-card);
  background: var(--ao-white);
}

.ao-roi-simulator__levers article {
  display: grid;
  gap: 8px;
}

.ao-roi-simulator__levers article > span,
.ao-roi-simulator__scenario-label {
  color: var(--ao-blue-dark);
  font-size: 11px;
  font-weight: 750;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.ao-roi-simulator__levers strong {
  font-family: var(--ao-display);
  font-size: 20px;
  line-height: 1.12;
}

.ao-roi-simulator__levers p,
.ao-roi-simulator__scenario p,
.ao-roi-simulator__disclaimer {
  margin: 0;
  color: var(--ao-muted);
  font-size: 13px;
  line-height: 1.48;
}

.ao-roi-simulator__scenario {
  padding: 22px;
}

.ao-roi-simulator__scenario--central {
  border-color: color-mix(in srgb, var(--ao-blue) 55%, var(--ao-border));
  box-shadow: 0 12px 34px color-mix(in srgb, var(--ao-blue) 9%, transparent);
}

.ao-roi-simulator__scenario-heading {
  min-height: 92px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--ao-border);
}

.ao-roi-simulator__scenario-label {
  margin-bottom: 8px !important;
}

.ao-roi-simulator__horizon {
  padding-top: 20px;
}

.ao-roi-simulator__horizon + .ao-roi-simulator__horizon {
  margin-top: 20px;
  border-top: 1px solid var(--ao-border);
}

.ao-roi-simulator__horizon h5 {
  margin: 0 0 12px;
  font-family: var(--ao-display);
  font-size: 17px;
}

.ao-roi-simulator__metrics {
  display: grid;
  gap: 9px;
  margin: 0;
}

.ao-roi-simulator__metric {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 10px;
}

.ao-roi-simulator__metric dt {
  color: var(--ao-muted);
  font-size: 11px;
  line-height: 1.3;
}

.ao-roi-simulator__metric dd {
  margin: 0;
  font-weight: 750;
  text-align: right;
}

.ao-roi-simulator__assumptions {
  margin-top: 28px;
}

.ao-roi-simulator__assumptions h4 {
  margin: 0 0 14px;
  font-family: var(--ao-display);
  font-size: 21px;
}

.ao-roi-simulator__assumptions ul {
  display: grid;
  gap: 7px;
  margin: 0;
  padding-left: 20px;
  color: var(--ao-muted);
  font-size: 13px;
}

.ao-roi-simulator__disclaimer {
  margin-top: 18px;
}

/* Training programme details ---------------------------------------------- */

.ao-training-practical .ao-efficient-heading,
.ao-training-proof .ao-efficient-heading {
  margin-bottom: clamp(28px, 4vw, 44px);
}

.ao-training-practical-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--ao-border);
  border-radius: var(--ao-radius-card);
  background: var(--ao-border);
  gap: 1px;
}

.ao-training-practical-grid > div {
  display: grid;
  align-content: start;
  gap: 8px;
  min-width: 0;
  padding: clamp(20px, 2.8vw, 30px);
  background: var(--ao-white);
}

.ao-training-practical-grid dt {
  color: var(--ao-blue-dark);
  font-size: 11px;
  font-weight: 750;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.ao-training-practical-grid dd {
  margin: 0;
  font-family: var(--ao-display);
  font-size: clamp(17px, 1.7vw, 21px);
  font-weight: 720;
  letter-spacing: -0.02em;
  line-height: 1.25;
}

.ao-training-local-note {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 22px;
  margin-top: 18px;
  padding: 18px 20px;
  border: 1px solid color-mix(in srgb, var(--ao-blue) 22%, var(--ao-border));
  border-radius: var(--ao-radius-control);
  background: color-mix(in srgb, var(--ao-blue) 5%, var(--ao-white));
}

.ao-training-local-note p {
  flex: 1 1 420px;
  margin: 0;
  color: var(--ao-muted);
  line-height: 1.5;
}

.ao-training-local-note strong {
  color: var(--ao-navy);
}

.ao-training-local-directory-heading {
  margin-top: clamp(56px, 8vw, 96px);
}

.ao-training-local-choice {
  max-width: 760px;
  margin: 18px 0 0;
  color: var(--ao-muted);
  line-height: 1.55;
}

.ao-training-proof-grid article {
  min-height: 100%;
}

/* Responsive ------------------------------------------------------------- */

@media (max-width: 1180px) {
  .ao-header-inner {
    gap: 12px;
  }

  .ao-logo img,
  .custom-logo-link img {
    width: 150px;
  }

  .ao-strategy-nav {
    gap: 4px;
  }

  .ao-strategy-nav > li > a {
    font-size: 12px;
  }

  .ao-submenu-toggle {
    width: 24px;
  }

  .ao-v2 .ao-header-cta {
    padding-inline: 12px;
    font-size: 13px;
  }

  .ao-footer-intro {
    grid-template-columns: minmax(280px, 1fr) minmax(260px, 0.9fr);
    gap: 24px 42px;
  }

  .ao-footer-brand-summary {
    grid-row: 1 / 3;
  }

  .ao-footer-rich .ao-footer-audit {
    grid-column: 2;
    justify-self: start;
  }

  .ao-footer-sitemap {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 32px 38px;
  }
}

@media (max-width: 980px) {
  .ao-nav.is-open {
    max-height: calc(100dvh - 70px);
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  .admin-bar .ao-nav.is-open {
    max-height: calc(100dvh - 116px);
  }

  .ao-strategy-nav {
    gap: 0;
  }

  .ao-strategy-nav > li {
    border-bottom: 1px solid var(--ao-border);
  }

  .ao-strategy-nav > li:last-child {
    border-bottom: 0;
  }

  .ao-strategy-nav > li > a {
    padding: 13px 8px;
    font-size: 15px;
  }

  .ao-nav-group {
    position: relative;
    grid-template-columns: minmax(0, 1fr) 44px;
  }

  .ao-nav-group > a {
    grid-column: 1;
  }

  .ao-submenu-toggle {
    width: 44px;
    height: 44px;
    grid-column: 2;
    margin-right: 2px;
  }

  .ao-nav-group > .ao-nav-submenu {
    position: static;
    display: none;
    width: auto;
    grid-column: 1 / -1;
    margin: 0 0 10px;
    padding: 6px;
    visibility: visible;
    opacity: 1;
    border-color: var(--ao-border);
    border-radius: 12px;
    background: var(--ao-soft);
    box-shadow: none;
    transform: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    pointer-events: auto;
  }

  .ao-nav-group.submenu-open > .ao-nav-submenu {
    display: grid;
  }

  .ao-nav-submenu a {
    padding: 11px 12px;
  }

  .ao-nav-submenu a:hover,
  .ao-nav-submenu a:focus-visible {
    background: var(--ao-white);
  }

  .ao-nav-submenu-services {
    grid-template-columns: 1fr;
    gap: 2px;
  }

  .ao-nav-submenu-formations {
    grid-template-columns: 1fr;
    gap: 2px;
  }

  .ao-nav-submenu .ao-nav-rich-link,
  .ao-nav-submenu-services .ao-nav-service-link {
    grid-template-columns: 38px minmax(0, 1fr);
    min-height: 62px;
  }

  .ao-nav-rich-icon,
  .ao-nav-service-icon {
    width: 38px;
    height: 38px;
  }

  .ao-nav-services-all {
    grid-column: auto;
  }

  .ao-nav-services-all > a {
    grid-template-columns: 1fr;
    gap: 3px;
  }

  .ao-footer-bottom {
    grid-template-columns: 1fr auto;
  }

  .ao-footer-social-links {
    justify-content: flex-start;
  }

  .ao-footer-legal-links {
    grid-column: 2;
    grid-row: 1 / 3;
  }

  .ao-roi-simulator__scenarios {
    grid-template-columns: 1fr;
  }

  .ao-roi-simulator__scenario-heading {
    min-height: 0;
  }

  .ao-training-practical-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .ao-offer-list,
  .ao-catalogue-grid,
  .ao-service-directory,
  .ao-blog-grid,
  .ao-roi-simulator__fields,
  .ao-roi-simulator__choice-grid,
  .ao-roi-simulator__levers {
    grid-template-columns: 1fr;
  }

  .ao-footer-intro {
    grid-template-columns: 1fr;
    align-items: start;
    gap: 22px;
  }

  .ao-footer-brand-summary {
    grid-row: auto;
  }

  .ao-footer-rich .ao-footer-audit {
    grid-column: auto;
    justify-self: stretch;
    width: 100%;
  }

  .ao-footer-sitemap {
    display: block;
    grid-template-columns: 1fr;
    margin-top: 24px;
  }

  .ao-footer-column {
    border-bottom: 1px solid var(--ao-footer-border);
  }

  .ao-footer-column > summary,
  .ao-footer-seo-strip > summary {
    min-height: 56px;
    cursor: pointer;
  }

  .ao-footer-column > summary:focus-visible,
  .ao-footer-seo-strip > summary:focus-visible {
    outline: 2px solid var(--ao-blue);
    outline-offset: 4px;
  }

  .ao-footer-column-title {
    font-size: 16px;
  }

  .ao-footer-disclosure-icon {
    display: inline-flex;
  }

  .ao-footer-accordion[open] > summary .ao-footer-disclosure-icon {
    transform: rotate(180deg);
  }

  .ao-footer-column-content {
    margin-top: 0;
    padding: 2px 0 20px;
  }

  .ao-footer-column ul {
    gap: 0;
  }

  .ao-footer-column a {
    display: flex;
    min-height: 44px;
    align-items: center;
    font-size: 14px;
  }

  .ao-footer-seo-strip {
    margin-top: 24px;
    padding: 0;
    border-top: 0;
  }

  .ao-footer-seo-title {
    color: var(--ao-footer-fg);
    font-size: 14px;
    letter-spacing: 0;
    text-transform: none;
  }

  .ao-footer-seo-content {
    grid-template-columns: 1fr;
    gap: 16px;
    margin: 0;
    padding: 4px 0 22px;
  }

  .ao-footer-seo-group {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .ao-footer-seo-group nav {
    gap: 10px 18px;
  }

  .ao-footer-seo-group a {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    font-size: 12px;
  }

  .ao-footer-bottom {
    grid-template-columns: 1fr;
    align-items: start;
    gap: 16px;
  }

  .ao-footer-social-links,
  .ao-footer-legal-links {
    grid-column: auto;
    grid-row: auto;
    justify-content: flex-start;
  }

  .ao-price-list > div,
  .ao-catalogue-list > a,
  .ao-catalogue-list > div {
    grid-template-columns: 1fr;
    gap: 7px;
    padding: 19px 20px;
  }

  .ao-post-card:hover,
  .ao-post-card:focus-within {
    transform: none;
  }

  .ao-roi-simulator {
    padding: 24px 18px;
  }

  .ao-roi-simulator__progress li {
    justify-content: center;
    padding: 9px 6px;
  }

  .ao-roi-simulator__progress li strong {
    display: none;
  }

  .ao-roi-simulator__field--full {
    grid-column: auto;
  }

  .ao-roi-simulator__actions,
  .ao-roi-simulator__result-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .ao-roi-simulator__button {
    width: 100%;
  }

  .ao-training-practical-grid {
    grid-template-columns: 1fr;
  }

  .ao-training-local-note {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 520px) {
  .ao-footer-rich {
    padding-bottom: 24px;
  }

  .ao-footer-copyright,
  .ao-footer-social-links,
  .ao-footer-legal-links {
    gap: 10px 16px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ao-nav-submenu,
  .ao-submenu-toggle::before,
  .ao-footer-disclosure-icon,
  .ao-post-card {
    transition: none;
  }
}
