/* Final stability layer: avoid legacy route flashes, add light section motion,
   and keep the TOP device shells fixed while only their screens transition. */

html.ax-refinement-preparing body :is(#root, main, footer) {
  opacity: 0 !important;
  pointer-events: none !important;
}

html.ax-refinement-ready body :is(#root, main, footer),
html.ax-refinement-timeout body :is(#root, main, footer) {
  opacity: 1 !important;
}

/* TOP keeps one concierge visible. The approved hero stylesheet used to hide
   the dock together with obsolete hero controls. */
body.ax-home-classic .axenor-ai-dock {
  display: block !important;
}

/* Contact is already the conversion destination. Keep the form free from the
   repeated concierge prompt and reduce the page to one clear action. */
.ax-route-contact .axenor-ai-dock {
  display: none !important;
}

body.ax-route-contact,
body.ax-route-contact #root,
body.ax-route-contact #root > main,
body.ax-route-contact #root > main > main,
.ax-route-contact .bg-white\/90.backdrop-blur-sm.text-black {
  background: #fff !important;
}

.ax-route-contact .bg-white\/90.backdrop-blur-sm.text-black {
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}

/* Contact is a static form page. Keep the first frame and the scrolled frame
   visually identical instead of inheriting the global route/header motion. */
body.ax-route-contact [data-ax-contact-static="true"],
body.ax-route-contact main .animate-in.fade-in {
  opacity: 1 !important;
  transform: none !important;
  animation: none !important;
  transition: none !important;
}

body.ax-route-contact header.fixed {
  background: rgba(255, 255, 255, 0.96) !important;
  border: 0 !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}

body.ax-route-contact header.fixed,
body.ax-route-contact header.fixed > div,
body.ax-route-contact header.fixed a,
body.ax-route-contact header.fixed button {
  transform: none !important;
  scale: 1 !important;
  animation: none !important;
  transition: none !important;
}

.ax-route-contact .ax-page-inline-title {
  margin-bottom: 34px !important;
  padding-top: 18px !important;
}

.ax-route-contact .ax-page-inline-title h1 {
  font-size: clamp(40px, 4.6vw, 60px) !important;
}

.ax-route-contact .ax-page-inline-title .ax-page-title__ja {
  margin-bottom: 0;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
}

.ax-route-contact .bg-white\/90.backdrop-blur-sm.text-black > .container.ax-contact-content {
  padding-top: 112px !important;
  padding-bottom: 96px !important;
}

.ax-route-contact .ax-page-inline-title,
.ax-route-contact .ax-page-inline-title h1,
.ax-route-contact .ax-page-inline-title .ax-page-title__ja,
.ax-route-contact .ax-contact-content > .ease-out {
  transform: none !important;
  translate: none !important;
  scale: 1 !important;
  animation: none !important;
  transition: none !important;
}

.ax-route-contact .ax-contact-intro > p {
  max-width: 640px !important;
  margin: 0 0 42px !important;
  color: #606872 !important;
  font-size: 14px !important;
  line-height: 2 !important;
}

.ax-route-contact .ax-contact-auto-subject,
.ax-route-contact .ax-contact-legacy-brief,
.ax-route-contact .ax-contact-promises {
  display: none !important;
}

.ax-route-contact .ax-contact-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 22px;
}

.ax-route-contact .ax-contact-form > .hidden-fields-container,
.ax-route-contact .ax-contact-form > .screen-reader-response,
.ax-route-contact .ax-contact-form > .akismet-fields-container {
  display: none !important;
}

.ax-route-contact .ax-contact-services,
.ax-route-contact .ax-contact-field--phone,
.ax-route-contact .ax-contact-field--message,
.ax-route-contact .ax-contact-privacy,
.ax-route-contact .ax-contact-submit-row,
.ax-route-contact .ax-contact-form > .wpcf7-response-output {
  grid-column: 1 / -1;
}

.ax-route-contact .ax-contact-field--phone {
  width: calc(50% - 11px);
}

.ax-route-contact .ax-contact-services {
  margin: 0 0 26px;
  padding: 0;
  border: 0;
}

.ax-route-contact .ax-contact-services legend {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin-bottom: 14px;
  color: #20252a;
}

.ax-route-contact .ax-contact-services legend span {
  font-size: 13px;
  font-weight: 600;
}

.ax-route-contact .ax-contact-services legend small {
  color: #858b91;
  font-size: 10px;
  font-weight: 400;
}

.ax-route-contact .ax-contact-services__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}

.ax-route-contact .ax-contact-services__chips label {
  position: relative;
  margin: 0 !important;
  cursor: pointer;
}

.ax-route-contact .ax-contact-services__chips input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.ax-route-contact .ax-contact-services__chips label > span {
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  padding: 0 16px;
  border: 1px solid #e2e3df;
  border-radius: 999px;
  background: #fafaf8;
  color: #505961;
  font-size: 11px;
  font-weight: 500;
  transition: border-color 180ms ease, background-color 180ms ease, color 180ms ease;
}

.ax-route-contact .ax-contact-services__chips input:checked + span {
  border-color: #17191b;
  background: #17191b;
  color: #fff;
}

.ax-route-contact .contact-form-wrap label {
  margin-top: 16px !important;
}

.ax-route-contact .contact-form-wrap input[type="text"],
.ax-route-contact .contact-form-wrap input[type="email"],
.ax-route-contact .contact-form-wrap input[type="tel"],
.ax-route-contact .contact-form-wrap textarea {
  border: 1px solid #e5e6e2 !important;
  border-radius: 10px !important;
  background: #fafaf8 !important;
  box-shadow: none !important;
}

.ax-route-contact .contact-form-wrap textarea {
  min-height: 146px !important;
}

.ax-route-contact .ax-contact-privacy {
  margin-top: 22px !important;
}

.ax-route-contact .ax-contact-privacy a {
  color: #7d6125 !important;
  text-decoration: none !important;
}

.ax-route-contact .ax-contact-submit-row {
  margin: 0;
}

.ax-route-contact .ax-contact-submit-row input[type="submit"] {
  min-width: 220px;
  margin-top: 8px !important;
}

.ax-route-contact .ax-contact-direct {
  display: block !important;
  margin-top: 64px !important;
  padding-top: 0 !important;
  border-top: 0 !important;
}

.ax-route-contact .ax-contact-direct > div {
  display: flex;
  align-items: baseline;
  gap: 18px;
}

.ax-route-contact .ax-contact-direct p {
  margin: 0 !important;
  color: #858b91 !important;
  font-family: inherit !important;
  font-size: 11px !important;
  letter-spacing: .04em !important;
  text-transform: none !important;
}

.ax-route-contact .ax-contact-direct a {
  font-size: 14px !important;
}

/* Shared concierge bubble: compact dark panel with a softer speech-tail. */
:is(.axenor-ai-launcher__bubble, .axenor-estimator-launch__bubble) {
  width: 214px !important;
  min-height: 0 !important;
  padding: 14px 17px 13px !important;
  border: 1px solid rgba(255, 255, 255, .12) !important;
  border-radius: 18px 18px 5px 18px !important;
  background: rgba(17, 19, 21, .96) !important;
  box-shadow: 0 18px 50px rgba(17, 19, 21, .2) !important;
  -webkit-backdrop-filter: blur(14px) !important;
  backdrop-filter: blur(14px) !important;
}

:is(.axenor-ai-launcher__bubble, .axenor-estimator-launch__bubble)::before {
  top: 14px !important;
  left: 14px !important;
  width: 6px !important;
  height: 6px !important;
  border-radius: 50% !important;
  background: #c6a24e !important;
  box-shadow: 0 0 0 5px rgba(198, 162, 78, .12) !important;
}

:is(.axenor-ai-launcher__bubble, .axenor-estimator-launch__bubble)::after {
  right: -5px !important;
  bottom: 13px !important;
  width: 10px !important;
  height: 10px !important;
  border: 0 !important;
  border-radius: 0 2px 0 0 !important;
  background: #111315 !important;
  transform: rotate(45deg) !important;
}

:is(.axenor-ai-launcher__eyebrow, .axenor-estimator-launch__eyebrow) {
  padding-left: 13px !important;
  color: rgba(255, 255, 255, .52) !important;
  letter-spacing: .12em !important;
}

:is(.axenor-ai-launcher__eyebrow, .axenor-estimator-launch__eyebrow) i {
  display: none !important;
}

:is(.axenor-ai-launcher__bubble, .axenor-estimator-launch__bubble) strong {
  margin-top: 8px !important;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  line-height: 1.5 !important;
}

:is(.axenor-ai-launcher__bubble, .axenor-estimator-launch__bubble) small {
  margin-top: 3px !important;
  color: rgba(255, 255, 255, .62) !important;
  font-size: 10px !important;
  line-height: 1.5 !important;
}

html.ax-motion-ready .ax-motion-section {
  opacity: 0;
  translate: 0 22px;
}

html.ax-motion-ready .ax-motion-section.is-visible {
  opacity: 1;
  translate: 0 0;
  transition:
    opacity 720ms cubic-bezier(.22, 1, .36, 1) var(--ax-motion-delay, 0ms),
    translate 820ms cubic-bezier(.22, 1, .36, 1) var(--ax-motion-delay, 0ms);
}

body.ax-home-classic .ax-home-site-shot--generated,
body.ax-home-classic .ax-home-pc-composite__scene,
body.ax-home-classic .ax-home-mobile-composite__scene {
  opacity: 0 !important;
  clip-path: none !important;
  animation: none !important;
  transition: opacity 760ms cubic-bezier(.22, 1, .36, 1) !important;
  will-change: opacity !important;
}

body.ax-home-classic .ax-home-site-shot--generated.is-active,
body.ax-home-classic .ax-home-pc-composite__scene.is-active,
body.ax-home-classic .ax-home-mobile-composite__scene.is-active {
  opacity: 1 !important;
  clip-path: none !important;
}

body.ax-home-classic :is(
  .ax-home-photo-laptop__screen,
  .ax-home-photo-phone__screen,
  .ax-home-browser__screen,
  .ax-home-phone__screen,
  .ax-home-mobile-composite
) {
  overflow: hidden !important;
  isolation: isolate;
}

@media (max-width: 767px) {
  .ax-route-contact .bg-white\/90.backdrop-blur-sm.text-black > .container.ax-contact-content {
    padding-top: 92px !important;
    padding-bottom: 72px !important;
  }

  .ax-route-contact .ax-page-inline-title {
    margin-bottom: 26px !important;
  }

  .ax-route-contact .ax-contact-intro > p {
    margin-bottom: 30px !important;
    font-size: 13px !important;
    line-height: 1.9 !important;
  }

  .ax-route-contact .ax-contact-form {
    grid-template-columns: 1fr;
  }

  .ax-route-contact .ax-contact-form > * {
    grid-column: 1 !important;
  }

  .ax-route-contact .ax-contact-field--phone {
    width: 100%;
  }

  .ax-route-contact .ax-contact-services legend {
    display: block;
  }

  .ax-route-contact .ax-contact-services legend small {
    display: block;
    margin-top: 4px;
  }

  .ax-route-contact .ax-contact-services__chips {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ax-route-contact .ax-contact-services__chips label:last-child {
    grid-column: 1 / -1;
  }

  .ax-route-contact .ax-contact-services__chips label > span {
    width: 100%;
    justify-content: center;
    padding: 0 10px;
  }

  .ax-route-contact .ax-contact-submit-row input[type="submit"] {
    width: 100% !important;
  }

  .ax-route-contact .ax-contact-direct > div {
    display: block;
  }

  .ax-route-contact .ax-contact-direct a {
    display: inline-block;
    margin-top: 8px;
  }

  body.ax-home-classic .ax-home-hero-b {
    height: 100svh !important;
    min-height: 100svh !important;
  }

  body.ax-home-classic .ax-home-device-stage,
  body.ax-home-classic .ax-home-mobile-composite {
    height: 100% !important;
  }

  body.ax-home-classic .ax-home-mobile-composite__base,
  body.ax-home-classic .ax-home-mobile-composite__scene {
    object-fit: fill !important;
    object-position: center top !important;
  }

  body.ax-home-classic .ax-home-hero-b > .container {
    padding-top: max(112px, 12.5svh) !important;
  }

  body.ax-home-classic .ax-home-about__statement {
    max-width: 100% !important;
    white-space: pre-line !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
    text-wrap: balance;
  }

  body.ax-home-classic .ax-home-about__statement > span {
    width: 100% !important;
  }

  body.ax-home-classic .ax-home-device-stage[data-ax-layout="mobile"] > .ax-home-mobile-composite {
    display: block !important;
    visibility: visible !important;
  }

  body.ax-home-classic .ax-home-device-stage[data-ax-layout="mobile"] > :is(
    .ax-home-photo-devices,
    .ax-home-browser,
    .ax-home-phone,
    .ax-home-pc-composite
  ) {
    display: none !important;
    visibility: hidden !important;
  }

  :is(.axenor-ai-launcher__bubble, .axenor-estimator-launch__bubble) {
    width: min(218px, calc(100vw - 92px)) !important;
    padding: 11px 14px 10px !important;
    border-radius: 15px 15px 4px 15px !important;
  }

  :is(.axenor-ai-launcher__bubble, .axenor-estimator-launch__bubble)::before {
    top: 12px !important;
    left: 12px !important;
  }

  :is(.axenor-ai-launcher__bubble, .axenor-estimator-launch__bubble) strong {
    margin-top: 0 !important;
    padding-left: 12px !important;
    font-size: 11px !important;
  }

  :is(.axenor-ai-launcher__bubble, .axenor-estimator-launch__bubble) small {
    padding-left: 12px !important;
    font-size: 9px !important;
  }
}

@media (min-width: 768px) and (max-width: 1100px) {
  body.ax-home-classic .ax-home-device-stage[data-ax-layout="tablet"] > :is(.ax-home-browser, .ax-home-phone) {
    display: block !important;
    visibility: visible !important;
  }

  body.ax-home-classic .ax-home-device-stage[data-ax-layout="tablet"] > :is(
    .ax-home-photo-devices,
    .ax-home-mobile-composite,
    .ax-home-pc-composite
  ) {
    display: none !important;
    visibility: hidden !important;
  }
}

@media (min-width: 1101px) {
  body.ax-home-classic .ax-home-device-stage[data-ax-layout="desktop"] > .ax-home-photo-devices {
    display: block !important;
    visibility: visible !important;
  }

  body.ax-home-classic .ax-home-device-stage[data-ax-layout="desktop"] > :is(
    .ax-home-mobile-composite,
    .ax-home-browser,
    .ax-home-phone,
    .ax-home-pc-composite
  ) {
    display: none !important;
    visibility: hidden !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  html.ax-motion-ready .ax-motion-section,
  html.ax-motion-ready .ax-motion-section.is-visible {
    opacity: 1 !important;
    translate: none !important;
    transition: none !important;
  }

  body.ax-home-classic .ax-home-site-shot--generated,
  body.ax-home-classic .ax-home-pc-composite__scene,
  body.ax-home-classic .ax-home-mobile-composite__scene {
    transition: none !important;
  }
}

/* TOP mobile mock: keep the hardware perfectly still and crossfade screens only. */
body.ax-home-classic .ax-home-photo-phone__screen .ax-home-site-shot--generated {
  image-rendering: auto !important;
  will-change: auto !important;
  transform: none !important;
  filter: none !important;
}

@media (max-width: 767px) {
  body.ax-home-classic .ax-home-mobile-composite__base,
  body.ax-home-classic .ax-home-mobile-composite__scene {
    image-rendering: auto !important;
    transform: none !important;
    filter: none !important;
  }

  body.ax-home-classic .ax-home-mobile-composite__scene {
    will-change: auto !important;
    transition: opacity 620ms cubic-bezier(.22, 1, .36, 1) !important;
  }
}
