.site-search-open{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:8px 10px;color:inherit;font:inherit;letter-spacing:0;border-radius:999px}.site-search-open svg{display:block;width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7}.site-search-open:hover{background:var(--action-soft,#f4f2fa)}.site-search-mobile{display:none}.site-search-menu{display:flex;justify-content:flex-start;width:100%;gap:13px;padding:16px 0;border-bottom:1px solid var(--line);border-radius:0;font-size:16px;min-height:56px}.site-search-menu svg{width:21px;height:21px}.site-search-is-open{overflow:hidden!important}.site-search:not([open]){display:none}.site-search[open]{display:flex;flex-direction:column}.site-search{position:fixed;inset:0;width:min(710px,calc(100% - 32px));max-width:none;max-height:min(760px,calc(100dvh - 64px));height:max-content;margin:clamp(24px,10vh,100px) auto auto;padding:27px;background:#fff;color:#25212b;border:1px solid #ded9e5;border-radius:22px;box-shadow:0 22px 65px #251a3433;letter-spacing:0;line-height:1.5;overflow:hidden}.site-search::backdrop{background:#20182d66;backdrop-filter:none}.site-search-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:21px}.site-search-heading h2{font-size:25px;line-height:1.25;font-weight:500}.site-search-close{flex:none;min-height:44px;padding:10px 15px;border-radius:999px;background:#f0eef4;color:#332b40;font-size:14px}.site-search-form{display:flex;gap:10px;align-items:center;border:1px solid #9d91ad;border-radius:12px;padding:3px 5px 3px 15px}.site-search-form:focus-within{border-color:var(--action,#60458b);outline:2px solid var(--action,#60458b);outline-offset:2px}.site-search-form input{width:100%;min-width:0;min-height:48px;padding:10px 0;border:0;outline:0!important;background:transparent;color:#25212b;font-size:18px;line-height:1.45;font-weight:400;letter-spacing:0}.site-search-form input::placeholder{color:#68606f;opacity:1}.site-search-clear{min-height:44px;padding:9px 12px;font-size:13px;flex:none;color:#52445f}.site-search-status{font-size:13px;line-height:1.5;margin:13px 0 7px;min-height:20px;color:#63596d}.site-search-results{min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:0 5px 0 0}.site-search-group h3{font-size:13px;line-height:1.5;color:#63596d;margin:18px 0 8px;font-weight:500}.site-search-group ul{list-style:none;padding:0;margin:0}.site-search-group li+li{border-top:1px solid #ebe7ef}.site-search-group a{display:block;padding:15px 12px;border-radius:9px;text-decoration:none;overflow-wrap:anywhere;min-height:55px}.site-search-group a:hover,.site-search-group a:focus-visible{background:var(--action-soft,#f4f2fa)}.site-search-group a strong{display:block;font-size:16px;line-height:1.4;font-weight:500;color:#30243e}.site-search-group a span{display:block;font-size:13px;line-height:1.6;font-weight:400;color:#63596d;margin-top:5px}.site-search-empty{padding:20px 12px;font-size:16px;line-height:1.65}.site-search-empty a{color:var(--action,#60458b);text-decoration:underline;text-underline-offset:4px}.site-search-retry{align-self:flex-start;font-size:14px;min-height:44px;padding:12px 0;text-decoration:underline;color:var(--action,#60458b)}.site-search :focus-visible,.site-search-open:focus-visible{outline:2px solid var(--action,#60458b);outline-offset:3px}.site-search [hidden]{display:none!important}
.site-search-load-error{position:fixed;z-index:120;top:95px;left:50%;transform:translateX(-50%);width:min(360px,calc(100% - 32px));padding:18px;background:#fff;color:#30243e;border:1px solid #c2b6d1;border-radius:12px;font-size:15px;line-height:1.6;box-shadow:0 10px 35px #20182d22}.site-search-load-error a{text-decoration:underline}
@media(min-width:901px){.nav-right .site-search-desktop{min-height:36px;height:36px;padding:9px 10px;line-height:16px}}
@media(max-width:900px){.site-header .menu-toggle{width:44px;min-width:44px;height:44px;padding:8px;justify-content:center;align-items:center}.site-header .menu-toggle b{display:none}.site-search-mobile{position:absolute;left:calc(max(16px,env(safe-area-inset-left)) + 44px);top:calc(50% + env(safe-area-inset-top) * .5);transform:translateY(-50%);display:flex;min-width:44px;width:44px;height:44px;padding:0;align-items:center;justify-content:center}.site-search-mobile span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.site-search-mobile svg{width:20px;height:20px}.site-search{width:calc(100% - 24px);max-height:calc(100dvh - 24px);margin:12px auto auto;padding:23px 19px;border-radius:19px}.site-search-heading{margin-bottom:18px}.site-search-heading h2{font-size:23px}.site-search-group a{padding:14px 9px}.site-search-results{padding-right:3px}.site-search-status{font-size:12px}}
@media(max-width:360px){.site-header .identity-logo{width:100px}.site-search{padding:20px 15px}.site-search-heading{gap:12px}.site-search-heading h2{font-size:21px}.site-search-close{padding:10px 12px;font-size:13px}.site-search-form{padding-left:12px}.site-search-form input{font-size:17px}}
@media(prefers-reduced-motion:reduce){.site-search,.site-search::backdrop{animation:none;transition:none}}

/* Local menu preview: preserve page content and desktop composition. */
/* Desktop: keep the existing fixed controls sharp above the soft page edges. */
@media (min-width:901px) {
  .page-shell > .site-header {
    background:transparent;
    border-bottom-color:transparent;
  }
  body .page-shell > .edge.edge-top,
  body .page-shell > .edge.edge-bottom {
    display:block;
    z-index:30;
    pointer-events:none;
  }
  body .page-shell > .edge.edge-top { height:120px; }
  body .page-shell > .edge.edge-bottom { height:72px; }
  .page-shell > .edge i { display:none; }
  .page-shell > .edge i:first-child {
    display:block;
    backdrop-filter:blur(6px);
    -webkit-backdrop-filter:blur(6px);
    mask-image:linear-gradient(to bottom,#000 0%,#000 38%,#0008 66%,transparent 100%);
    -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 38%,#0008 66%,transparent 100%);
  }
  body .page-shell > .edge b {
    background:linear-gradient(to bottom,var(--bg) 0%,color-mix(in srgb,var(--bg) 94%,transparent) 32%,color-mix(in srgb,var(--bg) 68%,transparent) 60%,color-mix(in srgb,var(--bg) 18%,transparent) 84%,transparent 100%);
  }
  .pricing-section,.package-offer,.standard-offer {
    scroll-margin-top:128px;
  }
}
@media (max-width:900px) {
  .page-shell > .site-header {
    position:sticky;
    top:0;
    z-index:70;
    background:transparent;
    border-bottom-color:transparent;
  }

  /* Only the edge behind the sharp header controls is softened. */
  body .page-shell > .edge.edge-top,
  body .page-shell > .edge.edge-bottom {
    display:block;
    z-index:30;
    pointer-events:none;
  }
  body .page-shell > .edge.edge-top {
    height:calc(120px + env(safe-area-inset-top));
  }
  body .page-shell > .edge.edge-bottom {
    height:calc(72px + env(safe-area-inset-bottom));
  }
  .page-shell > .edge i { display:none; }
  .page-shell > .edge i:first-child {
    display:block;
    backdrop-filter:blur(6px);
    -webkit-backdrop-filter:blur(6px);
    mask-image:linear-gradient(to bottom,#000 0%,#000 38%,#0008 66%,transparent 100%);
    -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 38%,#0008 66%,transparent 100%);
  }
  body .page-shell > .edge b {
    background:linear-gradient(to bottom,var(--bg) 0%,color-mix(in srgb,var(--bg) 94%,transparent) 32%,color-mix(in srgb,var(--bg) 68%,transparent) 60%,color-mix(in srgb,var(--bg) 18%,transparent) 84%,transparent 100%);
  }

  /* DMCG reference proportions, with ASTOX navigation and contacts. */
  #mobile-menu {
    top:calc(8px + env(safe-area-inset-top));
    padding:12px 0 18px;
    max-height:calc(100dvh - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    border-radius:22.383px;
    background:#ffffffb3;
    color:#111;
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
    overflow:hidden;
  }
  #mobile-menu[open] { display:flex;flex-direction:column; }
  #mobile-menu .dialog-head {
    position:relative;
    top:auto;
    left:auto;
    right:auto;
    flex:none;
    z-index:2;
    height:70px;
    margin:0 12px 20px;
    background:transparent;
  }
  #mobile-menu .dialog-close { width:44px;height:44px; }
  #mobile-menu .menu-body {
    min-height:0;
    overflow-y:auto;
    overscroll-behavior:contain;
    padding:0 max(26px,calc(50% - 210px));
    scrollbar-width:thin;
  }
  #mobile-menu .menu-modes {
    grid-template-columns:repeat(2,minmax(0,1fr));
    max-width:282px;
    margin:0 auto;
    padding:0 0 28px;
    gap:0;
  }
  #mobile-menu .menu-mode { min-height:75px;gap:16px;font-size:12px; }
  #mobile-menu .menu-mode svg { width:66px;height:43px;stroke-width:1.1; }
  #mobile-menu .site-search-menu {
    position:absolute;
    top:0;
    right:0;
    width:44px;
    height:44px;
    min-height:44px;
    padding:0;
    justify-content:center;
    border:0;
    border-radius:50%;
  }
  #mobile-menu .site-search-menu span {
    position:absolute;width:1px;height:1px;padding:0;margin:-1px;
    overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
  }
  #mobile-menu .site-search-menu svg { width:21px;height:21px; }
  #mobile-menu .menu-links { display:block; }
  #mobile-menu .menu-links a {
    height:44px;
    min-height:44px;
    padding:4px 2px;
    justify-content:center;
    font-size:12px;
    line-height:16px;
    letter-spacing:0;
    text-align:center;
  }
  #mobile-menu .menu-bottom {
    display:block;
    max-width:none;
    padding-top:12px;
  }
  #mobile-menu .menu-bottom .contact-buttons {
    display:grid;
    max-width:none;
    grid-template-columns:repeat(4,max-content);
    justify-content:space-between;
    gap:2px;
    width:100%;
  }
  #mobile-menu .menu-contact .contact-button,
  #mobile-menu .menu-contact .menu-emergency {
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:44px!important;
    min-width:44px;
    padding:8px 0;
    border:0!important;
    border-radius:0;
    background:transparent;
    color:#111;
    font-size:11px;
    line-height:16px;
    letter-spacing:0;
    text-decoration:none;
    transform:none;
    white-space:nowrap;
  }
  #mobile-menu .menu-contact a:hover { text-decoration:underline;text-underline-offset:4px;background:transparent; }
  #mobile-menu .menu-contact .contact-button svg { display:none; }
  #mobile-menu .menu-legal { margin:0; }
  #mobile-menu .menu-legal a { min-height:44px;color:#454545; }
  #mobile-menu a:focus-visible,#mobile-menu button:focus-visible {
    outline:2px solid var(--action,#60458b);outline-offset:-2px;
  }
  #mobile-menu[data-pointer-opened="true"] .dialog-close:focus-visible { outline:none; }
  html.performance-lite #mobile-menu {
    background:#f7f7f7;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }

  /* The service tray keeps its existing backdrop. */
  #mobile-menu[open] ~ .menu-backdrop i {
    top:calc(var(--menu-reach) - 8px);
    height:160px;
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
    mask-image:linear-gradient(to bottom,#000 0%,#0009 35%,transparent 100%);
    -webkit-mask-image:linear-gradient(to bottom,#000 0%,#0009 35%,transparent 100%);
  }
  #mobile-menu[open] ~ .menu-backdrop i:nth-child(2) { display:none; }
  #mobile-menu[open] ~ .menu-backdrop b {
    height:calc(var(--menu-reach) + 160px);
    background:linear-gradient(to bottom,#f2f2f24d calc(var(--menu-reach) - 8px),#f5f5f559 var(--menu-reach),#ffffff24 calc(var(--menu-reach) + 32px),transparent calc(var(--menu-reach) + 160px));
  }

  .pricing-section,.package-offer,.standard-offer {
    scroll-margin-top:calc(128px + env(safe-area-inset-top));
  }
}

@media (max-width:900px) and (prefers-reduced-transparency:reduce) {
  #mobile-menu { background:#f7f7f7;backdrop-filter:none;-webkit-backdrop-filter:none; }
  #mobile-menu[open] ~ .menu-backdrop i { backdrop-filter:none;-webkit-backdrop-filter:none; }
}

@keyframes astox-menu-surface-in { from { opacity:0; } to { opacity:1; } }
@keyframes astox-menu-content-in { from { opacity:0;transform:translateY(-7px); } to { opacity:1;transform:none; } }
@media (max-width:900px) {
  #mobile-menu { animation:astox-menu-surface-in 260ms ease-out both; }
  #mobile-menu .dialog-head,#mobile-menu .menu-body { animation:astox-menu-content-in 260ms cubic-bezier(.22,1,.36,1) both; }
  #mobile-menu[open] .menu-modes a,#mobile-menu[open] .menu-links a,#mobile-menu[open] .menu-bottom a { animation:none; }
  #mobile-menu.closing,#mobile-menu.closing .dialog-head,#mobile-menu.closing .menu-body { animation:none; }
  body .menu-backdrop { transition:opacity 260ms ease,visibility 0s 260ms; }
  body.menu-is-open .menu-backdrop { transition:opacity 260ms ease,visibility 0s; }
  body.menu-is-closing .menu-backdrop { transition:opacity 260ms ease; }
  html.performance-lite #mobile-menu,html.performance-lite #mobile-menu .dialog-head,html.performance-lite #mobile-menu .menu-body { animation-duration:180ms; }
}

/* The brand belongs to the native page scroller, just like the page content. */
.page-shell{position:relative}
.page-brand{position:absolute;left:50%;top:12px;z-index:70;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;margin:0;font-size:10px;line-height:14px;letter-spacing:0;pointer-events:auto}
.page-brand .identity-logo{width:100px;margin:0 0 2px}
.page-brand>span{margin:0}
.page-shell>.site-header{pointer-events:none}
.menu-is-open .page-brand{visibility:hidden;pointer-events:none}
@media(min-width:901px){
 .page-shell{height:100%}
 #main{position:absolute}
 body:not([data-page="home"]) #main{z-index:auto}
 .page-scroll{position:absolute;inset:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;scroll-behavior:smooth}
 .page-scroll::-webkit-scrollbar{display:none}
 .page-scroll>.view{position:relative;z-index:10;height:auto;min-height:100%;overflow:visible}
 .portfolio-motion-layer[data-mode="home"]{position:absolute;z-index:auto;isolation:auto;contain:style}
 .portfolio-motion-layer[data-mode="home"] .pm-stage{z-index:26}
 body[data-page="service"]:is([data-portfolio-dock="arriving"],[data-portfolio-dock="open"],[data-portfolio-dock="opening"],[data-portfolio-dock="closing"],[data-portfolio-dock="returning"]) .page-brand{visibility:hidden;pointer-events:none}
}
@media(max-width:900px){
 .page-brand{top:calc(42px + env(safe-area-inset-top)*.5);transform:translate(-50%,-50%);font-size:9px;line-height:12px}
 .page-shell>.site-header::before{content:"";grid-column:2;grid-row:1;width:100px;height:calc(100px/3 + 26px);pointer-events:none}
}
@media(max-width:359px){.page-brand{top:calc(38px + env(safe-area-inset-top)*.5)}.page-brand .identity-logo{width:90px}.page-brand>span{display:none}.page-shell>.site-header::before{width:90px;height:32px}}
