/* A presentation only; never touches saved copy or admin/editor UI. */
body.aster{font-size:16px}
body.aster :is(main,.source-footer) :is(p,li,dd,dt,label,input,textarea){font-size:16px}
body.aster :is(main,.source-footer) :is(a,button,small,time){font-size:max(15px,1em)}
body.aster :is(.hero-footnote,.topic-strip,.image-caption,.eyebrow,.card-number,.card-tag,.source-post-meta,.breadcrumbs,.footer-bottom,.is-empty,.experience-label,.form-hint){font-size:15px}
body.aster .site-header :is(.desktop-nav>a,.desktop-nav>.nav-submenu>summary,.nav-submenu>div>a,.mobile-menu nav>a,.mobile-menu .nav-submenu>summary,.language-switcher a){font-size:15px}
body.aster .local-banner{font-size:15px;letter-spacing:.3px;gap:16px;flex-wrap:wrap;line-height:1.7}
body.aster :is(.source-footer h2,.contact-directory-title){font-size:16px}
body.aster :is(.source-highlights .source-card h3,.principles h3){font-size:17px}
body.aster :is(.source-highlights .source-card p,.principles p,.process p,.support-network p,.contact-directory small){font-size:16px}
body.aster .source-footer .footer-bottom{flex-wrap:wrap;line-height:1.8}
@media(min-width:901px) and (max-width:1150px){body.aster .site-header{grid-template-columns:145px minmax(0,1fr) auto;gap:10px;padding-inline:22px}body.aster .site-header .brand{width:145px}body.aster .site-header .desktop-nav>a,body.aster .site-header .desktop-nav>.nav-submenu>summary{padding-inline:7px}}
@media(max-width:900px){body.aster .site-header{gap:9px;padding-inline:18px;grid-template-columns:minmax(0,1fr) auto 38px}body.aster .site-header .brand-logo{width:135px}body.aster .site-header .language-switcher a{padding:7px 6px;min-height:34px}body.aster .site-header .source-languages.language-switcher{gap:0}}
@media(max-width:380px){body.aster .site-header{padding-inline:12px;gap:6px;grid-template-columns:minmax(0,1fr) auto 36px}body.aster .site-header .brand-logo{width:103px}body.aster .site-header .language-switcher a{padding-inline:5px}body.aster .local-banner{padding-inline:18px;gap:0}.aster .local-banner>span{width:100%}}
/* Explicit floors for existing components whose local rules are more specific. */
body.aster :is(.orbit-node-index,.orbit-node-title,.support-node-number,.process article>span,.circular-orbit .orbit-detail-panel .card-number){font-size:15px!important}
body.aster .circular-orbit .orbit-detail-panel h3{font-size:17px!important}
body.aster .circular-orbit .orbit-detail-panel p{font-size:16px!important}
body.aster .a1-footer :is(a,small,span){font-size:15px!important}
body.aster .a1-footer .footer-identity>p{font-size:16px}
@media(max-width:760px){body.aster .circular-orbit .orbit-node-index{top:-16px}body.aster .circular-orbit .orbit-detail-panel h3{font-size:15px!important;line-height:1.45}body.aster .circular-orbit .orbit-detail-panel{padding:16px 14px}body.aster .circular-orbit .orbit-detail-panel .card-number{margin-bottom:5px}}
body.aster main :is(p,li,dd,dt,label,input,textarea){font-size:16px!important}
body.aster .local-banner>span,body.aster .site-header .mobile-menu .nav-submenu>div>a,body.aster .support-hub-caption>span,body.aster .topic-strip>span{font-size:15px!important}
@media(max-width:760px){body.aster .contact-stage-product>h3{font-size:15px!important}}
body.aster :is(.api-page,.products-page,.about-page) .button{font-size:15px!important}
body.aster :is(.api-kicker,.api-number,.api-tags>span,.api-core-top>span,.products-page-kicker,.products-page-number,.products-page-tag,.products-page-index-top>span,.products-page-index>a>span,.about-page-kicker,.about-page-number){font-size:15px!important}
body.aster .products-page-index strong{font-size:16px}
body.aster .about-page-mission .about-page-heading>p{font-size:23px!important}
body.aster .hero-device-layout .hero-copy>p{font-size:17px!important}
@media(max-width:760px){body.aster .about-page-mission .about-page-heading>p{font-size:18px!important}body.aster .hero-device-layout .hero-copy>p{font-size:16px!important}}

/* A orbit labels: larger serif Roman numerals; original indices/UIDs stay unchanged. */
body.aster .circular-orbit .orbit-node .orbit-node-index{font-family:Georgia,'Times New Roman',serif;font-size:24px!important;font-weight:700;line-height:1;letter-spacing:.04em;top:7px;opacity:1;color:#edcf87;text-shadow:0 0 12px #dab96438}
@media(min-width:761px){body.aster .circular-orbit .orbit-select{padding-top:30px;padding-bottom:10px}}
@media(max-width:760px){body.aster .circular-orbit .orbit-node .orbit-node-index{font-size:20px!important;top:2px}}

/* A support cards: one heading row containing the Roman index and saved title. */
body.aster .security-network .support-node-top{gap:14px;margin-bottom:12px;min-height:48px}
body.aster .security-network .support-node-top .support-node-heading{display:flex;align-items:baseline;gap:12px;flex:1;min-width:0;font-size:20px;line-height:1.5;margin:0;letter-spacing:.02em}
body.aster .security-network .support-node-heading .support-node-number{flex:none;font:700 24px/1 Georgia,'Times New Roman',serif!important;letter-spacing:.04em;opacity:1;color:#edcf87}
body.aster .security-network .support-node-title{min-width:0;overflow-wrap:anywhere}
@media(max-width:760px){body.aster .security-network .support-node-top{gap:10px}body.aster .security-network .support-node-top .support-node-heading{font-size:18px;gap:10px}body.aster .security-network .support-node-heading .support-node-number{font-size:20px!important}body.aster .security-network .support-node-art{width:42px}}

/* A center labels use the same Roman sequence. Keep mobile text inside the circle. */
body.aster .circular-orbit .orbit-center-heading .card-number{display:block;font-family:Georgia,'Times New Roman',serif;letter-spacing:.05em;margin:0 0 10px}
@media(max-width:760px){
 body.aster .circular-orbit .solution-stage{width:calc(100% + var(--page-gutter) + var(--page-gutter));max-width:none;margin-inline:calc(0px - var(--page-gutter))}
 body.aster .circular-orbit .orbit-select{padding:23px 7px 2px;gap:0}
 body.aster .circular-orbit .orbit-node-image{width:21px;height:21px}
 body.aster .circular-orbit .orbit-detail-panel{position:relative;width:var(--orbit-center-width,180px);height:auto;padding:36px 16px;border-radius:32px;overflow:visible}
 body.aster .circular-orbit .orbit-detail-panel .product-copy{position:static;width:100%;height:auto;margin:0;padding:0;display:block;overflow:visible;overscroll-behavior:auto;text-align:center}
 body.aster .circular-orbit .orbit-detail-panel .orbit-center-heading{font-size:16px!important;line-height:1.5;margin:0 0 14px;letter-spacing:0;overflow-wrap:anywhere}
 body.aster .circular-orbit .orbit-detail-panel .orbit-center-heading .card-number{display:inline;margin:0 .3em 0 0;font-size:15px!important;line-height:inherit;letter-spacing:0;white-space:nowrap}
 body.aster .circular-orbit .orbit-detail-panel .product-copy p{font-size:15px!important;line-height:1.65;overflow:visible;max-height:none;margin:0;text-align:left;overflow-wrap:anywhere}
 body.aster .circular-orbit .orbit-detail-panel .product-copy:focus-visible{outline:1px solid var(--accent);border-radius:3px}
}
/* No-JS product fallback stays a complete, normally flowing list. */

/* The same CSS phase drives the responsive ellipse; node contents stay upright. */
body.aster .circular-orbit .orbit-path{position:absolute;inset:0;z-index:1;pointer-events:none;transform:scaleY(var(--orbit-stretch,1));transform-origin:center}
@media(max-width:760px){body.aster .circular-orbit .orbit-select{transform:scaleY(var(--orbit-unstretch,1))}body.aster .circular-orbit .solution-core{display:none}}

/* A homepage annotations: centered highlights, no duplicate strip, one perimeter light. */
body.aster main>.topic-strip{display:none}
body.aster .source-highlights .source-card:not(.is-empty){display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}
body.aster .source-highlights .source-card :is(h3,p){text-align:center;margin-inline:auto}
@property --a1-process-edge-angle{syntax:'<angle>';inherits:false;initial-value:0deg}
@keyframes a1-process-edge{to{--a1-process-edge-angle:360deg}}
body.aster #approach .process>article{animation:none}
body.aster #approach .process>article:before{display:none}
body.aster #approach .process>article:after{content:'';position:absolute;inset:0;width:auto;height:auto;padding:2px;border-radius:inherit;background:conic-gradient(from var(--a1-process-edge-angle),transparent 0deg 300deg,#a87d3280 318deg,#ffe8a6 340deg,#fff8dd 348deg,transparent 355deg 360deg);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;box-shadow:none;opacity:1;transform:none;pointer-events:none;z-index:3;animation:a1-process-edge 7s linear infinite;animation-delay:calc(var(--process-order,0)*-2.333s)}
@media(prefers-reduced-motion:reduce){body.aster #approach .process>article:after{animation:none!important;background:#dcc28a77}}

/* A Demo: show original media larger, without surrounding card frames. */
body.aster .showcase{border:0;background:transparent;border-radius:0;padding-inline:0}
body.aster .showcase-carousel .showcase-slide-surface,
body.aster .showcase-carousel .swiper-slide-active .showcase-slide-surface{border:0;background:transparent;box-shadow:none;border-radius:0;padding:0;width:min(88%,850px);max-width:850px}
body.aster .is-mobile .showcase-carousel .showcase-slide-surface{width:min(88%,380px);max-width:380px}
body.aster .showcase-carousel .showcase-slide-surface>img{height:460px;border-radius:0;object-fit:contain}
body.aster .is-mobile .showcase-carousel .showcase-slide-surface>img{height:520px}
@media(max-width:760px){body.aster .showcase-carousel .showcase-slide-surface{width:92%}body.aster .is-mobile .showcase-carousel .showcase-slide-surface{width:min(92%,300px);max-width:300px}body.aster .showcase-carousel .showcase-slide-surface>img{height:280px}body.aster .is-mobile .showcase-carousel .showcase-slide-surface>img{height:430px}}

/* Larger A media; neighboring slides stay inside the viewport. */
body.aster .showcase-carousel .showcase-slide-surface{width:min(92%,950px);max-width:950px}
body.aster .is-mobile .showcase-carousel .showcase-slide-surface{width:min(94%,420px);max-width:420px}
body.aster .showcase-carousel .showcase-slide-surface>img{height:520px}
body.aster .is-mobile .showcase-carousel .showcase-slide-surface>img{height:600px}
@media(max-width:760px){body.aster .showcase-carousel .showcase-slide-surface{width:96%}body.aster .is-mobile .showcase-carousel .showcase-slide-surface{width:min(96%,340px);max-width:340px}body.aster .showcase-carousel .showcase-slide-surface>img{height:310px}body.aster .is-mobile .showcase-carousel .showcase-slide-surface>img{height:480px}}

body.aster .showcase-carousel .swiper-slide:not(.swiper-slide-active):not(.swiper-slide-prev):not(.swiper-slide-next){visibility:hidden}
body.aster .showcase-carousel .swiper-slide-active .showcase-slide-surface{width:min(72%,760px);max-width:760px}
body.aster .showcase-carousel :is(.swiper-slide-prev,.swiper-slide-next) .showcase-slide-surface{width:200px;max-width:200px}
body.aster .is-mobile .showcase-carousel .swiper-slide-active .showcase-slide-surface{width:min(94%,420px);max-width:420px}
body.aster .is-mobile .showcase-carousel :is(.swiper-slide-prev,.swiper-slide-next) .showcase-slide-surface{width:min(94%,420px);max-width:420px}
@media(max-width:760px){body.aster .showcase-carousel .swiper-slide-active .showcase-slide-surface{width:64%}body.aster .showcase-carousel :is(.swiper-slide-prev,.swiper-slide-next) .showcase-slide-surface{width:70px}body.aster .is-mobile .showcase-carousel .swiper-slide-active .showcase-slide-surface{width:96%;max-width:340px}body.aster .is-mobile .showcase-carousel :is(.swiper-slide-prev,.swiper-slide-next) .showcase-slide-surface{width:80px;max-width:80px}}

@media(max-width:760px){body.aster .showcase-carousel .swiper{overflow:visible}body.aster .is-mobile .showcase-carousel :is(.swiper-slide-prev,.swiper-slide-next) .showcase-slide-surface{width:60px;max-width:60px}}

body.aster .showcase{overflow:visible}

/* Long A hero titles wrap within the copy column, including a single text segment. */
body.aster .hero-copy h1 .title-segment{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere}
