/* AO interaction and layout system. Logo colors come from palette.css. */
html:has(body.ao-renewal) {scrollbar-gutter:stable}
body.ao-renewal {--ao-header-height:88px;--ao-radius:16px}
body.ao-renewal .header-inner {height:var(--ao-header-height)}
body.ao-renewal .brand-label>span {display:block}
body.ao-renewal .mobile-contact {display:none}
body.ao-renewal :is(main,[role=main]) :is(h1,h2,h3,h4,[id]) {
  scroll-margin-top:calc(var(--ao-header-height) + 24px);
}
body.ao-renewal :is(.button,.nav-cta,.ao-directory-search button,.ao-native-search button) {
  min-height:52px;border-radius:10px;font-weight:600;
  transition:background .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
body.ao-renewal :is(.button,.nav-cta):hover {transform:translateY(-2px);box-shadow:0 7px 20px #00729f16}
body.ao-renewal :is(.button,.nav-cta):active {transform:translateY(0);box-shadow:none}
body.ao-renewal :is(.service-card,.concept-card,.discovery-topic,.discovery-resource,.discovery-article,.ao-directory-item) {
  border-radius:var(--ao-radius);
}
body.ao-renewal .site-nav>a:not(.nav-cta):is([aria-current=page],.is-section-active) {color:var(--ao-accent)}
body.ao-renewal .site-nav>a:not(.nav-cta):is([aria-current=page],.is-section-active):after {transform:scaleX(1)}
body.ao-renewal :is(.hero-description,.section-head p,.intro-text,.subsection .lead) {text-wrap:pretty}
body.ao-renewal :is(.hero h1,.page-hero h1,.section-head h2) {text-wrap:balance}
body.ao-renewal .hero {padding-block:0}
body.ao-renewal .hero-inner {min-height:0;padding-block:clamp(36px,5vh,56px);align-items:center}
body.ao-renewal .hero h1 {font-size:clamp(46px,min(4.4vw,7.4vh),68px);line-height:1.45;margin-block:22px 28px}
body.ao-renewal .hero-description {line-height:1.95;margin-block:0}
body.ao-renewal .hero-actions {gap:20px;margin-top:28px}
body.ao-renewal .hero-actions .button {min-height:56px;padding:14px 22px}
body.ao-renewal .hero-actions>.text-link {min-height:48px;display:inline-flex;align-items:center}
body.ao-renewal .hero-visual {min-height:0}
body.ao-renewal .tech-scene {height:clamp(260px,34vh,385px)}
/* Long-form reading: a comfortable measure and a clear heading rhythm. */
body.ao-native-page #article {min-width:0;border-radius:var(--ao-radius)}
body.ao-native-page.single-post #article .post_content {
  width:100%;max-width:72ch;min-width:0;margin-inline:auto;font-size:18px;line-height:1.95;
}
body.ao-native-page.single-post .post_content h2 {margin-top:2.6em;margin-bottom:1em;line-height:1.65}
body.ao-native-page.single-post .post_content h3 {margin-top:2em;margin-bottom:.75em;line-height:1.7}
body.ao-native-page #single_post_header .title {font-size:clamp(30px,3.2vw,42px);line-height:1.5;letter-spacing:-.025em}
body.ao-native-page .post_content a:not(.design_button,.q_button,.tcdce-button,.wp-block-button__link) {
  text-underline-offset:.22em;text-decoration-thickness:1px;
}
body.ao-native-page .single_cta {padding:clamp(24px,3vw,38px);border-radius:var(--ao-radius)}
body.ao-native-page .single_cta .single_cta_btn {min-height:56px;border-radius:10px;font-weight:600}
body.ao-native-page :is(.page_navi,.ao-directory-pagination) :is(a,.current) {
  min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;
}
body.ao-native-page .single_share .share_button_list ul {
  display:grid;grid-template-columns:repeat(8,minmax(44px,1fr));gap:6px;
}
body.ao-native-page .single_share .share_button_list li {width:auto!important;margin:0!important;float:none}
body.ao-native-page .single_share .share_button_list li a {width:100%;height:44px;min-width:44px;line-height:42px;border-radius:8px}
/* Keep table headers and column relationships on small screens. */
body.ao-native-page .post_content :is(.wp-block-table,.ao-table-scroll) {max-width:100%;overflow-x:auto}
body.ao-native-page .post_content .ao-ux-table-scroll {
  max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;
  border:1px solid var(--ao-line);border-radius:10px;scrollbar-width:thin;
  scrollbar-color:var(--ao-control-line) var(--ao-paper);
}
body.ao-native-page .post_content .ao-ux-table-scroll:focus-visible {outline-offset:-3px}
body.ao-native-page .post_content .ao-ux-table-scroll table {
  display:table!important;width:100%;margin:0;border-collapse:collapse;border-radius:0;
}
body.ao-native-page .post_content .ao-ux-table-scroll thead {display:table-header-group!important}
body.ao-native-page .post_content .ao-ux-table-scroll tbody {display:table-row-group!important}
body.ao-native-page .post_content .ao-ux-table-scroll tr {display:table-row!important;box-shadow:none!important}
body.ao-native-page .post_content .ao-ux-table-scroll :is(th,td) {
  display:table-cell!important;width:auto!important;min-width:0;padding:14px 16px;vertical-align:top;
  white-space:normal!important;overflow-wrap:anywhere;word-break:normal;font-size:16px!important;line-height:1.8;
}
body.ao-native-page .post_content .ao-ux-table-scroll .ao-ux-table-wide {min-width:36rem}
body.ao-native-page .post_content .ao-table-caption {margin:24px 0 12px;font-size:16px;font-weight:600;line-height:1.8;color:var(--ao-ink)}
body.ao-native-page .post_content .ao-ux-caption-semantic {
  position:absolute!important;width:1px!important;height:1px!important;padding:0!important;
  overflow:hidden;clip-path:inset(50%);white-space:nowrap;
}
body.ao-native-page .post_content .ao-ux-table-scroll[tabindex] tr>:first-child {
  position:sticky;left:0;z-index:1;background:var(--ao-white);box-shadow:1px 0 0 var(--ao-line);
}
body.ao-native-page .post_content .ao-ux-table-scroll[tabindex] :is(thead tr>:first-child,tr>th:first-child) {
  z-index:2;background:var(--ao-accent-soft);
}
body.ao-native-page .post_content .ao-table-hint {margin:8px 0 20px;color:var(--ao-muted);font-size:13px;line-height:1.8}
body.ao-native-page .post_content .ao-table-hint[hidden] {display:none}
/* Stop off-canvas carousel clones from widening the document. */
body.ao-native-page .cb_staff_carousel_wrap {overflow:clip;max-width:100%}
body.ao-native-page .page-container {min-width:0;max-width:100%}
/* Native forms: generous targets, a visible selection and a clear focus. */
body.ao-renewal .wpcf7 .wpcf7-form .CF7_table tr:focus-within {background:var(--ao-paper)}
body.ao-renewal .wpcf7 .wpcf7-form :is(.wpcf7-checkbox,.wpcf7-radio) {
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;
}
body.ao-renewal .wpcf7 .wpcf7-form .wpcf7-list-item {margin:0;min-width:0}
body.ao-renewal .wpcf7 .wpcf7-form .wpcf7-list-item>label {
  display:flex;align-items:flex-start;gap:10px;min-height:48px;height:100%;padding:12px;
  border:1px solid var(--ao-line);border-radius:8px;background:var(--ao-white);
  font-size:16px;line-height:1.65;cursor:pointer;box-sizing:border-box;
}
body.ao-renewal .wpcf7 .wpcf7-form .wpcf7-list-item>label:has(input:checked) {
  border-color:var(--ao-accent);background:var(--ao-accent-soft);color:var(--ao-ink);
}
body.ao-renewal .wpcf7 .wpcf7-form .wpcf7-list-item>label:focus-within {border-color:var(--ao-accent)}
body.ao-renewal .wpcf7 .wpcf7-form .wpcf7-list-item input:is([type=checkbox],[type=radio]) {
  flex:0 0 auto;width:20px;height:20px;margin:3px 0 0;accent-color:var(--ao-accent);
}
body.ao-renewal .wpcf7 .wpcf7-form :is(input,textarea,select).wpcf7-not-valid {border-color:#b52f3e!important}
body.ao-renewal .wpcf7 .wpcf7-form .wpcf7-not-valid-tip {margin-top:8px;line-height:1.7}
@media(max-width:1100px) {
  body.ao-renewal {--ao-header-height:78px}
  body.ao-renewal .site-header {z-index:1200}
  body.ao-renewal .header-inner {gap:12px}
  body.ao-renewal .mobile-contact {
    display:inline-flex;align-items:center;justify-content:center;flex:none;margin-left:auto;
    min-height:44px;padding:10px 16px;border-radius:9px;background:var(--ao-accent);
    color:var(--ao-white);font-size:14px;font-weight:600;line-height:1.4;text-decoration:none;
  }
  body.ao-renewal .mobile-contact:hover {background:var(--ao-accent-hover)}
  body.ao-renewal .menu-toggle {flex:none;min-width:88px;min-height:44px;gap:7px;font-size:13px;border-radius:9px}
  body.ao-renewal .site-nav {
    top:var(--ao-header-height);background:var(--ao-white);max-height:calc(100dvh - var(--ao-header-height));
    overflow-y:auto;overscroll-behavior:contain;border-bottom:1px solid var(--ao-line);
    box-shadow:0 20px 40px #14374818;
  }
  body.ao-renewal .site-nav>a {min-height:52px}
  body.ao-renewal.ao-menu-open:before {
    content:"";position:fixed;inset:var(--ao-header-height) 0 0;z-index:1100;background:#14374845;
  }
  html.ao-menu-open,body.ao-renewal.ao-menu-open {overflow:hidden;overscroll-behavior:none}
}
@media(max-width:760px) {
  body.ao-renewal {--ao-header-height:72px}
  body.ao-renewal .header-inner {gap:8px}
  body.ao-renewal .site-header .brand {
    flex:0 0 104px;display:flex;flex-direction:column;align-items:center;gap:0;width:104px;
  }
  body.ao-renewal .site-header .brand-logo {width:112px;max-width:none}
  body.ao-renewal .site-header .brand-label {display:block;font-size:10px;line-height:1.3;letter-spacing:.03em}
  body.ao-renewal .site-header .brand-tagline {display:none}
  body.ao-renewal .mobile-contact {padding:10px 14px}
  body.ao-renewal .menu-toggle {min-width:86px;padding:8px}
  body.ao-renewal .hero {padding-block:0}
  body.ao-renewal .hero-inner {padding-block:32px 40px;gap:32px}
  body.ao-renewal .hero h1 {font-size:clamp(36px,10vw,44px);line-height:1.5}
  body.ao-renewal .hero-description {margin-top:24px;font-size:17px;line-height:1.95}
  body.ao-renewal .hero-actions {gap:16px}
  body.ao-renewal .tech-scene {height:285px}
  body.ao-native-page.single-post #article .post_content {max-width:100%;font-size:17px;line-height:1.95}
  body.ao-native-page #single_post_header .title {font-size:28px;line-height:1.55}
  body.ao-native-page .single_cta .single_cta_btn {display:flex;align-items:center;justify-content:center;width:100%;min-width:0;padding-inline:16px}
  body.ao-native-page .single_share .share_button_list ul {grid-template-columns:repeat(4,minmax(44px,1fr))}
  body.ao-renewal .wpcf7 .wpcf7-form :is(.wpcf7-checkbox,.wpcf7-radio) {grid-template-columns:minmax(0,1fr)}
  body.ao-native-page .page-container .p-voice__row-left:before {display:none}
}
@media(max-width:360px) {
  body.ao-renewal .header-inner {gap:6px}
  body.ao-renewal .site-header .brand {flex-basis:92px;width:92px}
  body.ao-renewal .site-header .brand-logo {width:102px}
  body.ao-renewal .mobile-contact {padding:10px 11px;font-size:13px}
  body.ao-renewal .menu-toggle {min-width:80px;font-size:12px;padding:8px 6px}
}
@media(prefers-reduced-motion:reduce) {
  html {scroll-behavior:auto!important}
  body.ao-renewal :is(.button,.nav-cta,.service-card,.concept-card,.discovery-article) {transition:none!important;transform:none!important}
  body.ao-renewal .reveal {opacity:1!important;transform:none!important}
}
