/* Cut from footer-prototype.html by split-footer-prototype.mjs — the footer's own
   rules only; the prototype's page chrome is not a host's business. */
.adg-footer,.adg-footer *{box-sizing:border-box;}
.adg-footer a{text-decoration:none;position:relative;}
.adg-footer{--adg-gutter:72px;}
.adg-foot-top{padding:56px var(--adg-gutter) 0;display:flex;justify-content:space-between;gap:56px;flex-wrap:wrap;}
.adg-foot-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:32px 40px;flex:1 1 auto;min-width:260px;}
.adg-foot-sig{margin-left:var(--adg-gutter);margin-right:var(--adg-gutter);}
.adg-foot-bottom{padding:18px var(--adg-gutter) 28px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;}
@media (max-width:900px){
  .adg-footer{--adg-gutter:32px;}
  .adg-foot-top{flex-direction:column;gap:32px;}
  .adg-foot-top>.adg-foot-col:first-child{max-width:none!important;}
}
@media (max-width:560px){
  .adg-footer{--adg-gutter:20px;}
  .adg-foot-links{grid-template-columns:repeat(2,1fr);gap:28px 20px;}
}
@media (max-width:380px){
  .adg-foot-links{grid-template-columns:1fr;}
}
.adg-foot-col a{display:inline-block;color:inherit;padding-left:0;transition:color 0.3s cubic-bezier(0.16,1,0.3,1),transform 0.15s cubic-bezier(0.65,0,0.35,1),padding-left 0.22s cubic-bezier(0.16,1,0.3,1);}
.adg-foot-col a::after{content:"";position:absolute;left:0;right:100%;bottom:-2px;height:1px;background:var(--adg-accent,#C4920A);transition:right 0.35s cubic-bezier(0.16,1,0.3,1);}
.adg-foot-col a::before{content:"";position:absolute;left:0;top:50%;width:0;height:0;border-top:3.5px solid transparent;border-bottom:3.5px solid transparent;border-left:5px solid var(--adg-accent,#C4920A);opacity:0;transform:translateY(-50%) translateX(-6px);transition:opacity 0.22s cubic-bezier(0.16,1,0.3,1),transform 0.22s cubic-bezier(0.16,1,0.3,1);pointer-events:none;}
.adg-foot-col a:hover{color:var(--adg-accent,#C4920A);padding-left:14px;}
.adg-foot-col a:hover::after{right:0;}
.adg-foot-col a:hover::before{opacity:1;transform:translateY(-50%) translateX(0);}
.adg-foot-col a:active{transform:scale(0.97);transition-duration:0.08s;}
.adg-foot-col a.adg-social-btn::before{display:none;}
.adg-foot-col a.adg-social-btn:hover{padding-left:0;}
.adg-foot-col a.no-arrow::before{display:none;}
.adg-foot-col a.no-arrow:hover{padding-left:0;}
.adg-foot-col a.no-arrow svg{transition:transform 0.22s cubic-bezier(0.16,1,0.3,1);}
.adg-foot-col a.no-arrow:hover svg{transform:translateX(2px);}
.adg-foot-col a:focus-visible{outline:2px solid var(--adg-accent,#C4920A);outline-offset:4px;border-radius:2px;}
.sank-mark path{fill:none;stroke:currentColor;}
#gis-toggle{display:flex;align-items:center;gap:5px;background:none;border:1px solid rgba(196,146,10,0.35);color:#AAB7B7;font:inherit;font-size:12px;letter-spacing:0.08em;text-transform:uppercase;border-radius:999px;padding:4px 10px;cursor:pointer;transition:color 0.2s cubic-bezier(0.16,1,0.3,1),border-color 0.2s cubic-bezier(0.16,1,0.3,1),background 0.2s cubic-bezier(0.16,1,0.3,1),transform 0.12s cubic-bezier(0.65,0,0.35,1);}
#gis-toggle:hover{color:#E8B04B;border-color:#E8B04B;background:rgba(196,146,10,0.1);}
#gis-toggle:active{transform:scale(0.95);}
#gis-toggle:focus-visible{outline:2px solid #E8B04B;outline-offset:2px;}
.gis-toggle-chevron{transition:transform 0.3s cubic-bezier(0.16,1,0.3,1);}
#gis-toggle[aria-expanded="false"] .gis-toggle-chevron{transform:rotate(180deg);}
.gis-collapsible{overflow:hidden;transition:max-height 0.35s cubic-bezier(0.16,1,0.3,1),opacity 0.25s cubic-bezier(0.16,1,0.3,1);}
.gis-collapsible.collapsed{max-height:0!important;opacity:0;}
.tw-line{position:relative;display:inline-block;}
.tw-word{white-space:nowrap;}
.tw-char{display:inline-block;opacity:1;}
.tw-char.hit{animation:tw-strike 0.34s cubic-bezier(0.22,1.4,0.36,1) forwards;}
.tw-caret{display:inline-block;width:2px;height:1em;background:var(--adg-accent,#E8B04B);vertical-align:-0.15em;margin-left:1px;opacity:0;}
.adg-play .tw-caret-1{animation:tw-caret-1 3012ms linear forwards;}
.adg-play .tw-caret-2a{animation:tw-caret-2a 5071ms linear forwards;}
.adg-play .tw-caret-2b{animation:tw-caret-2b 0.9s steps(1) infinite 5071ms backwards;}
.tw-sweep{display:inline-block;width:0;height:1px;vertical-align:-0.3em;background:var(--adg-accent,#E8B04B);opacity:0;}
.adg-play .tw-sweep{animation:tw-sweep 0.5s cubic-bezier(0.65,0,0.35,1) 3012ms forwards;}
@media (prefers-reduced-motion: reduce){
  .tw-char{display:inline-block!important;opacity:1!important;animation:none!important;}
  .tw-caret,.tw-sweep{display:none!important;}
}
.adg-social-row{display:flex;gap:10px;}
.adg-foot-col a.adg-social-btn{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:1px solid currentColor;color:inherit;transition:color 0.25s cubic-bezier(0.16,1,0.3,1),background 0.25s cubic-bezier(0.16,1,0.3,1),border-color 0.25s cubic-bezier(0.16,1,0.3,1),transform 0.15s cubic-bezier(0.65,0,0.35,1);}
.adg-foot-col a.adg-social-btn::after{display:none;}
.adg-foot-col a.adg-social-btn svg{width:15px;height:15px;transition:transform 0.25s cubic-bezier(0.16,1,0.3,1);}
.adg-foot-col a.adg-social-btn:hover{color:var(--adg-accent,#C4920A);background:rgba(196,146,10,0.12);border-color:var(--adg-accent,#C4920A);}
.adg-foot-col a.adg-social-btn:hover svg{transform:translateY(-1px);}
.adg-foot-col a.adg-social-btn:active{transform:scale(0.9);}
.adg-foot-col a.adg-social-btn:focus-visible{outline:2px solid var(--adg-accent,#C4920A);outline-offset:3px;}
.adg-play .adg-foot-col{animation:adg-rise 1.1s cubic-bezier(0.16,1,0.3,1) both;}
.adg-play .adg-foot-col:nth-child(1){animation-delay:60ms;}
.adg-play .adg-foot-col:nth-child(2){animation-delay:170ms;}
.adg-play .adg-foot-col:nth-child(3){animation-delay:260ms;}
.adg-play .adg-foot-col:nth-child(4){animation-delay:350ms;}
.adg-play .adg-foot-col:nth-child(5){animation-delay:440ms;}
.adg-sig-rule{position:relative;overflow:hidden;}
.adg-sig-rule::before{content:"";position:absolute;inset:0 0 0 0;border-top:1px solid currentColor;opacity:0.35;}
.adg-play .adg-sig-rule::before{animation:adg-draw-rule 1.1s cubic-bezier(0.65,0,0.35,1) 480ms forwards;}
.adg-sig-badge{position:relative;width:52px;height:52px;flex-shrink:0;transform-origin:50% 50%;}
.adg-play .adg-sig-badge{animation:adg-settle 0.5s cubic-bezier(0.16,1,0.3,1) 2300ms both;}
.sank-ring{position:absolute;inset:0;overflow:visible;}
.sank-ring circle{fill:none;stroke:currentColor;opacity:0.4;}
.sank-ring circle{stroke-dasharray:151;stroke-dashoffset:0;}
.adg-play .sank-ring circle{animation:adg-ring 0.95s cubic-bezier(0.65,0,0.35,1) 600ms forwards;}
.sank-mark{position:absolute;inset:11px;}
.sank-mark path{fill:none;stroke:currentColor;stroke-dasharray:230;stroke-dashoffset:0;}
.adg-play .sank-mark path{animation:adg-ink 0.9s cubic-bezier(0.65,0,0.35,1) 1400ms forwards;}
.adg-sig-div{width:1px;height:34px;background:currentColor;opacity:0.18;flex-shrink:0;transform-origin:50% 50%;}
.adg-play .adg-sig-div{animation:adg-grow 0.7s cubic-bezier(0.16,1,0.3,1) 1000ms forwards;}
.adg-sig-line{clip-path:inset(0 0 0 0);}
.adg-play .adg-sig-line{animation:adg-wipe 0.65s cubic-bezier(0.16,1,0.3,1) both;}
.adg-play .adg-sig-line-1{animation-delay:1900ms;}
.adg-play .adg-sig-line-2{animation-delay:2200ms;}
.adg-sig-row{position:relative;}
.adg-sig-row::after{content:"";position:absolute;top:0;bottom:0;left:-30%;width:22%;background:linear-gradient(100deg,transparent,rgba(196,146,10,0.16),transparent);pointer-events:none;}
.adg-play .adg-sig-row::after{animation:adg-sheen 1.6s cubic-bezier(0.45,0,0.2,1) 3000ms 1 both;}
.adg-def-wrap{position:relative;display:inline-block;}
.adg-sig-term{background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer;display:inline-block;transition:transform 0.15s cubic-bezier(0.65,0,0.35,1);}
.adg-sig-term:hover,.adg-sig-term:focus-visible{text-decoration:underline;text-underline-offset:3px;}
.adg-sig-term:active{transform:scale(0.96);transition-duration:0.08s;}
.adg-sig-term:focus-visible{outline:2px solid #C4920A;outline-offset:3px;border-radius:2px;}
.adg-def-card{position:absolute;bottom:calc(100% + 14px);left:0;width:360px;max-width:min(80vw,360px);background:#14161D;color:#E6E2D8;border-radius:14px;padding:20px 22px;box-shadow:0 24px 56px rgba(0,0,0,0.5);opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity 0.25s cubic-bezier(0.16,1,0.3,1),transform 0.25s cubic-bezier(0.16,1,0.3,1),visibility 0s linear 0.25s;z-index:30;font-family:'Instrument Sans',-apple-system,sans-serif;text-align:left;}
.adg-def-wrap:hover .adg-def-card,
  .adg-def-wrap:focus-within .adg-def-card,
  .adg-def-card.open{opacity:1;visibility:visible;transform:translateY(0);transition-delay:0s;}
.adg-def-head{display:flex;align-items:center;gap:12px;margin-bottom:12px;}
.adg-def-badge{width:36px;height:36px;border-radius:50%;background:#C4920A;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.adg-def-badge svg{width:17px;height:17px;}
.adg-def-badge svg path{fill:none;stroke:#14161D;}
.adg-def-title{font-size:19px;font-weight:600;color:#F5F4F1;line-height:1.15;}
.adg-def-eyebrow{font-size:12px;letter-spacing:0.08em;text-transform:uppercase;color:#C4920A;margin-top:1px;}
.adg-def-phon{font-size:12.5px;color:#8A93A6;margin-top:2px;}
.adg-def-body{font-size:13.5px;line-height:1.6;color:#C7CCD8;margin:0 0 12px;}
.adg-def-hl{background:rgba(196,146,10,0.28);color:#F5E2B8;border-radius:3px;box-decoration-break:clone;-webkit-box-decoration-break:clone;}
.adg-def-src{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,0.07);border-radius:999px;padding:4px 12px 4px 6px;font-size:12px;color:#AEB6C4;}
.adg-def-src .dot{width:14px;height:14px;border-radius:50%;background:#C4920A;flex-shrink:0;}
.adg-def-stage{position:relative;min-height:150px;}
.adg-def-panel{position:absolute;inset:0 0 auto 0;}
.adg-def-panel-a{animation:adg-stage-a 9s cubic-bezier(0.65,0,0.35,1) infinite;}
.adg-def-panel-b{animation:adg-stage-b 9s cubic-bezier(0.65,0,0.35,1) infinite;}
.adg-def-dots{display:flex;justify-content:center;gap:6px;margin-top:14px;}
.adg-def-dots span{width:5px;height:5px;border-radius:50%;background:#454B58;}
.adg-def-dots span:nth-child(1){animation:adg-dot-a 9s cubic-bezier(0.65,0,0.35,1) infinite;}
.adg-def-dots span:nth-child(2){animation:adg-dot-b 9s cubic-bezier(0.65,0,0.35,1) infinite;}
@media (prefers-reduced-motion: reduce){
  .adg-def-panel-a,.adg-def-panel-b,.adg-def-dots span{animation:none!important;}
  .adg-def-panel-a{opacity:1!important;}
  .adg-def-panel-b{opacity:0!important;position:absolute!important;}
  .adg-def-dots{display:none;}
}
@media (prefers-reduced-motion: reduce){
  .adg-play .adg-foot-col,.adg-play .adg-sig-badge,.adg-play .sank-ring circle,.adg-play .sank-mark path,
    .adg-play .adg-sig-div,.adg-play .adg-sig-line,.adg-play .adg-sig-rule::before,.adg-play .adg-sig-row::after{animation:none!important;}
  .adg-foot-col{opacity:1!important;transform:none!important;}
  .adg-sig-badge{transform:none!important;}
  .sank-ring circle{stroke-dashoffset:0!important;}
  .sank-mark path{stroke-dashoffset:0!important;}
  .adg-sig-div{transform:scaleY(1)!important;}
  .adg-sig-line{clip-path:inset(0 0 0 0)!important;}
  .adg-sig-rule::before{right:0!important;}
  .adg-sig-row::after{display:none;}
}
/* Armed by adg-footer-motion.js immediately before it plays; never present
   without JS, so the footer at rest is the footer fully drawn. */
.adg-armed .adg-sig-div{transform:scaleY(0);}
/* Map Studio sends style-src 'self', which blocks writes to an element's inline
   style — element.style.display included, not just style= in the markup. The
   prototype drives the typewriter by writing display, so on that host every
   character stayed hidden and the console filled with CSP violations. Everything
   below is toggled by class instead, which a stylesheet the host serves is allowed
   to do. */
.tw-char.tw-pending{display:none;opacity:0;}
.tw-caret.tw-caret-on{animation:tw-caret-2b 1.06s steps(1,end) infinite;}
/* The collapsible needs a real max-height to transition from; the prototype
   measured it and wrote it inline, which the same policy blocks. */
.gis-collapsible{max-height:80vh;}
@keyframes tw-strike{0%{opacity:0;transform:translateY(3px) scale(1.35);filter:blur(3px);}
    65%{opacity:1;transform:translateY(0) scale(0.97);filter:blur(0);}
    100%{opacity:1;transform:translateY(0) scale(1);filter:blur(0);}}
@keyframes tw-caret-1{0%,13.28%{opacity:0;}13.5%,99%{opacity:1;}100%{opacity:0;}}
@keyframes tw-caret-2a{0%,70.24%{opacity:0;}70.4%,99%{opacity:1;}100%{opacity:0;}}
@keyframes tw-caret-2b{0%,49%{opacity:1;}50%,100%{opacity:0;}}
@keyframes tw-sweep{0%{width:0;opacity:1;}55%{width:56px;opacity:1;}100%{width:56px;opacity:0;}}
@keyframes adg-rise{0%{opacity:0;transform:translateY(22px);}100%{opacity:1;transform:translateY(0);}}
@keyframes adg-draw-rule{0%{right:100%;}100%{right:0;}}
@keyframes adg-settle{0%{transform:scale(1);}55%{transform:scale(1.045);}100%{transform:scale(1);}}
@keyframes adg-ring{0%{stroke-dashoffset:151;}100%{stroke-dashoffset:0;}}
@keyframes adg-ink{0%{stroke-dashoffset:230;}100%{stroke-dashoffset:0;}}
@keyframes adg-grow{to{transform:scaleY(1);}}
@keyframes adg-wipe{0%{clip-path:inset(0 100% 0 0);}100%{clip-path:inset(0 0 0 0);}}
@keyframes adg-sheen{0%{transform:translateX(-40%);opacity:0;}
    12%{opacity:1;}
    85%{opacity:0.4;}
    100%{transform:translateX(420%);opacity:0;}}
@keyframes adg-stage-a{0%,42%{opacity:1;transform:translateY(0);}
    50%,92%{opacity:0;transform:translateY(-4px);pointer-events:none;}
    100%{opacity:1;transform:translateY(0);}}
@keyframes adg-stage-b{0%,42%{opacity:0;transform:translateY(4px);pointer-events:none;}
    50%,92%{opacity:1;transform:translateY(0);}
    100%{opacity:0;transform:translateY(4px);pointer-events:none;}}
@keyframes adg-dot-a{0%,42%{background:#C4920A;}50%,100%{background:#454B58;}}
@keyframes adg-dot-b{0%,42%{background:#454B58;}50%,92%{background:#C4920A;}100%{background:#454B58;}}
