/* the runtime's <main> is an overflow container without its own height, so sticky never sticks: fix the header and reserve its height */
.landingpage{overflow-x:clip;padding-top:63px}
.ao-header-section{position:fixed;top:0;left:0;right:0}
.ao-hero{min-height:calc(100vh - 63px)}
.ao-hero-title{font-size:clamp(34px,8.4vw,170px)}
.ao-page-title{font-size:clamp(34px,8.2vw,160px)}
.ao-h2 em,.ao-quote em{color:var(--ao-page-c,var(--ao-lime))}
.ao-checklist{max-width:900px}
.ao-hero-title,.ao-page-title,.ao-h2,.ao-card-title,.ao-next-title{overflow-wrap:break-word}
.ao-contact-card-hot,.ao-contact-card-hot p{color:#000}
.ao-contact-card-hot .ao-contact-label{color:rgba(0,0,0,.6)}
@media (max-width:560px){
  .landingpage{padding-top:59px}
  .ao-h2{font-size:clamp(30px,9vw,48px)}
  .ao-card-title{font-size:clamp(30px,9vw,44px)}
  .ao-next-title{font-size:clamp(30px,10vw,48px)}
  .ao-cta-title{font-size:clamp(40px,12vw,64px)}
  .ao-terminal{transform:none}
}

/* hero badges pick a claim: the site script sets data-ao-claim on .ao-hero, the matching set replaces the headline */
.ao-badge-pick{appearance:none;-webkit-appearance:none;margin:0;line-height:normal;cursor:pointer;transition:color .2s,border-color .2s,background .2s,transform .2s}
.ao-badge-pick:hover{color:var(--ao-ink);border-color:var(--ao-ink);transform:translateY(-2px)}
.ao-badge-pick:focus-visible{outline:2px solid var(--ao-lime);outline-offset:2px}
.ao-badge-pick.is-active{background:var(--ao-lime);border-color:var(--ao-lime);color:#000}
.ao-hero-set{display:none}
.ao-hero[data-ao-claim] .ao-hero-title>.ao-hero-line{display:none}
.ao-hero[data-ao-claim="local"] .ao-hero-set-local,
.ao-hero[data-ao-claim="self"] .ao-hero-set-self,
.ao-hero[data-ao-claim="meter"] .ao-hero-set-meter{display:block}
.ao-hero[data-ao-claim] .ao-hero-title .ao-hero-line,.ao-hero.ao-claim-reset .ao-hero-title>.ao-hero-line{animation:aoClaimIn .5s cubic-bezier(.2,.8,.2,1) both}
.ao-hero-title .ao-hero-line:nth-child(2){animation-delay:.06s}
.ao-hero-title .ao-hero-line:nth-child(3){animation-delay:.12s}
@keyframes aoClaimIn{from{opacity:0;transform:translateY(.25em)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.ao-hero-title .ao-hero-line{animation:none !important}}

/* header link to troitzsch.net: full caption on desktop, short "T-NET ↗" on mobile (overrides the hide rule in AO_I18n) */
.ao-nav-cta{display:inline-flex;align-items:center;gap:.4em;white-space:nowrap}
.ao-nav-cta-short{display:none}
@media (max-width:560px){
  .ao-nav .ao-nav-cta{display:inline-flex;margin-left:0;padding:8px 12px;font-size:11px}
  .ao-nav-cta .ao-nav-cta-long{display:none}
  .ao-nav-cta .ao-nav-cta-short{display:inline}
}
