/* Shared page chrome, independent of legacy product/page styles. */
.site-shared-contact,.site-shared-footer,.site-map{--shared-bg:#0e1b20;--shared-text:#e8ede6;--shared-muted:#acbdb9;--shared-cool:#adc4c8;--shared-line:#395058;--shared-accent:#e88b61;--shared-serif:'IBM Plex Serif',Georgia,serif;--shared-mono:'IBM Plex Mono',monospace;box-sizing:border-box}
body .site-shared-contact{display:block;width:100%;max-width:none;margin:0;padding:clamp(3rem,7vw,7rem) max(clamp(1.25rem,5vw,5.5rem),calc((100vw - 1440px)/2)) 3rem;background:var(--shared-bg);color:var(--shared-text);border:0;scroll-margin-top:100px}
.site-shared-contact .section-index{display:block;margin:0 0 1.3rem;padding-left:.9rem;position:relative;font:400 .6rem/1.6 var(--shared-mono);color:var(--shared-muted);letter-spacing:.1em}
.site-shared-contact .section-index:before{content:'';position:absolute;left:0;top:.45em;width:5px;height:5px;border:1px solid var(--shared-accent)}
body .site-shared-contact .contact-main{display:grid;grid-template-columns:1.3fr 1fr;align-items:end;gap:8%;margin:2rem 0 3.5rem}
body .site-shared-contact h2{font:400 clamp(3.5rem,6.8vw,7.5rem)/1.02 var(--shared-serif);letter-spacing:-.06em;margin:0;color:var(--shared-text)}
body .site-shared-contact h2 em{font-weight:400;color:var(--shared-cool)}
body .site-shared-contact .contact-action>p{font:400 clamp(1rem,1.25vw,1.2rem)/1.8 var(--shared-serif);max-width:430px;color:var(--shared-muted);margin:0 0 1.5rem}
body .site-shared-contact .contact-primary{display:flex;align-items:center;justify-content:space-between;gap:1rem;max-width:430px;width:100%;min-height:76px;margin:0;padding:1.2rem 1.5rem;background:var(--shared-text);color:#0e1b20;border:0;text-decoration:none;font:400 1.5rem/1.3 var(--shared-serif)}
.site-shared-contact .contact-primary:hover{background:#fff}
body .site-shared-contact .contact-bottom{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:clamp(1.5rem,4vw,4rem);align-items:start;padding-top:1rem}
body .site-shared-contact .contact-group-label{display:block;margin:0 0 .8rem;font:400 .58rem/1.6 var(--shared-mono);letter-spacing:.08em;color:var(--shared-muted)}
body .site-shared-contact .contact-location address{display:block;margin:0;font:400 clamp(1.1rem,1.5vw,1.4rem)/1.65 var(--shared-serif);font-style:normal;color:var(--shared-text)}
body .site-shared-contact .contact-phones,body .site-shared-contact .contact-mail{display:flex;flex-direction:column;gap:.45rem}
body .site-shared-contact .contact-phones>.contact-group-label,body .site-shared-contact .contact-mail>.contact-group-label{margin-bottom:.35rem}
body .site-shared-contact .contact-phones>a,body .site-shared-contact .contact-mail>a{font:400 clamp(1.05rem,1.4vw,1.35rem)/1.65 var(--shared-serif);white-space:nowrap;text-decoration:none;color:var(--shared-text)}
body .site-shared-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1.5rem;min-height:110px;margin:0;padding:1.5rem max(clamp(1.25rem,5vw,5.5rem),calc((100vw - 1440px)/2));border:0;border-top:1px solid var(--shared-line);background:var(--shared-bg);color:var(--shared-muted);font:400 .55rem/1.6 var(--shared-mono)}
.site-shared-footer .brand{display:flex;align-items:center;gap:.8rem;text-decoration:none}
body .site-shared-footer .brand-original{display:block;width:78px;height:auto;max-height:50px;object-fit:contain}
body .site-shared-footer .brand-emblem{display:block;width:25px;height:29px;object-fit:contain;margin:0}
body .site-shared-footer .brand-context{display:flex;flex-direction:column;gap:.25rem;padding-left:.8rem;border-left:1px solid var(--shared-line);color:var(--shared-text)}
body .site-shared-footer .brand-context strong{font:400 1rem/1.2 var(--shared-serif);color:var(--shared-text)}
body .site-shared-footer .brand-context strong em{font:inherit;color:inherit}
body .site-shared-footer .brand-context>span{font:400 .43rem/1.6 var(--shared-mono);color:var(--shared-muted)}
.site-shared-footer>a{text-decoration:none}
/* A native disclosure works without JS. Local scroll tracking only enhances it. */
body .site-map{position:fixed;right:max(14px,env(safe-area-inset-right));top:50%;transform:translateY(-50%);z-index:45;color:var(--shared-cool);font:400 .58rem/1.5 var(--shared-mono)}
.site-map-disclosure{position:relative}
.site-map-disclosure>summary{display:flex;align-items:center;justify-content:center;width:auto;min-width:44px;height:44px;padding:0 12px;gap:9px;cursor:pointer;list-style:none;background:#102228f2;border:1px solid #39505888;color:var(--shared-cool)}
.site-map-disclosure>summary::-webkit-details-marker{display:none}
.site-map-disclosure>summary:focus-visible,.site-map a:focus-visible{outline:2px solid var(--shared-accent);outline-offset:3px}
.map-summary-label{position:static;white-space:nowrap;padding:0;background:none;opacity:1;pointer-events:none;font:400 .85rem var(--shared-serif)}
.site-map-disclosure>summary:hover .map-summary-label,.site-map-disclosure>summary:focus-visible .map-summary-label{opacity:1}
.site-map-panel{position:absolute;right:58px;top:50%;transform:translateY(-35%);width:min(540px,calc(100vw - 100px));max-height:calc(100dvh - 130px);overflow:auto;display:grid;grid-template-columns:1fr 1fr;gap:1.8rem;padding:1.6rem;background:#102127fa;border:1px solid #395058;box-shadow:0 20px 60px #0006;overscroll-behavior:contain}
.site-map-group{min-width:0}.site-map-group>p{font:400 .55rem/1.6 var(--shared-mono);letter-spacing:.08em;color:var(--shared-muted);margin:0 0 .9rem}
.site-map-panel a{display:block;min-height:38px;padding:.5rem 0;font:400 .95rem/1.4 var(--shared-serif);color:var(--shared-text);text-decoration:none;overflow-wrap:break-word}
.site-map-panel a:hover,.site-map-panel a[aria-current],.site-map-panel a.is-parent{color:var(--shared-accent)}
.site-map-products{padding-left:1rem;margin:0 0 .5rem;border-left:1px solid var(--shared-line)}
.site-map-products a{font:400 .65rem/1.5 var(--shared-mono);min-height:32px}
body .site-map .section-rail{position:static;display:flex;flex-direction:column;transform:none;margin-top:8px;gap:1px;width:156px;max-height:65dvh;overflow:visible;font:400 .55rem var(--shared-mono)}
.site-map .section-rail a{position:relative;display:flex;justify-content:flex-end;align-items:center;gap:8px;min-height:25px;padding:3px 0;opacity:1;background:none;color:var(--shared-cool);text-decoration:none}
.site-map .section-rail a i{display:block;height:1px;width:14px;background:currentColor}
.site-map .section-rail a.is-on,.site-map .section-rail a:hover,.site-map .section-rail a:focus-visible{opacity:1;color:var(--shared-accent)}
.site-map .section-rail a.is-on i{width:26px}
.site-map .rail-number{display:none}
.site-map .rail-label{position:static;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:right;padding:0;background:none;color:inherit;opacity:.8;translate:none;pointer-events:none;font:400 .7rem/1.35 var(--shared-serif)}
.site-map .section-rail a i{flex:none;width:12px}
.site-map .section-rail a.is-on{background:none}
.site-map .section-rail a.is-on .rail-label{opacity:1}
.site-map .section-rail a:hover .rail-label,.site-map .section-rail a:focus-visible .rail-label{position:absolute;right:22px;flex:none;width:max-content;max-width:min(360px,calc(100vw - 80px));white-space:normal;text-align:right;overflow:visible;padding:5px 8px;background:#102228f5;z-index:1}
@media(min-width:1101px){.site-map-disclosure>summary{margin-left:auto;min-height:30px;height:30px;padding:0;gap:7px;justify-content:flex-end;border:0;background:none}.site-map .map-summary-label{font-size:.72rem}}
.site-map .section-rail a:hover .rail-label,.site-map .section-rail a:focus-visible .rail-label{opacity:1}
.site-map:has(details[open]) .section-rail{visibility:hidden}
[id]{scroll-margin-top:100px}
@media(max-width:1100px){body .site-map{top:auto;bottom:calc(18px + env(safe-area-inset-bottom));transform:none}body .site-map .section-rail{display:none}.site-map-panel{position:fixed;right:0;bottom:56px;top:auto;transform:none;width:min(540px,calc(100vw - 30px));max-height:calc(100dvh - 155px)}.map-summary-label{display:inline}}
@media(max-width:760px){body .site-shared-contact .contact-main{grid-template-columns:1fr;gap:2rem;margin:1.5rem 0 2.5rem}body .site-shared-contact h2{font-size:clamp(3rem,11vw,5.5rem)}body .site-shared-contact .contact-action>p{max-width:none}body .site-shared-contact .contact-primary{max-width:none;min-height:64px;font-size:1.3rem}body .site-shared-contact .contact-bottom{grid-template-columns:1fr;gap:1.8rem}body .site-shared-footer .brand-context{display:none}body .site-shared-footer{gap:1rem;padding-bottom:calc(1.5rem + env(safe-area-inset-bottom))}.site-map-panel{gap:1.2rem;padding:1.2rem}.site-map-panel a{min-height:44px;font-size:.9rem}}
@media(max-width:380px){.site-map-panel{grid-template-columns:1fr;gap:1.5rem}}
body .contact-map{display:block;width:100%;max-width:none;margin:0;padding:0;line-height:0;background:#13252a;overflow:hidden}
body .contact-map iframe{display:block;width:100%;height:clamp(420px,58vh,650px);border:0}
@media(max-width:760px){body .site-shared-footer{padding-right:80px}body .contact-map iframe{height:420px}}
