/* Shared base reset — identical across every page, extracted from the former
   per-page inline <style> blocks. Page-specific rules (keyframes, form states)
   stay inline on their respective pages. */
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;background:#0B0908;-webkit-font-smoothing:antialiased}
img,video,canvas,svg{max-width:100%}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
button,a{touch-action:manipulation}
::selection{background:#F0892A;color:#0B0908}

/* Shared responsive navigation. The markup is enhanced by site.js so every
   public page keeps the same menu behavior without duplicating components. */
.charamel-menu-toggle,.charamel-menu-backdrop{display:none}
.charamel-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

@media (max-width:960px){
  body.charamel-menu-open{overflow:hidden}
  [data-nav]{min-height:68px;padding:12px 20px!important}
  [data-nav].is-menu-open{background:rgba(11,9,8,.94)!important;backdrop-filter:blur(18px)!important;border-bottom-color:transparent!important}
  [data-nav]>a:first-child{position:relative;z-index:4}
  [data-nav]>a:first-child img{height:35px!important}
  .charamel-menu-toggle{position:relative;z-index:4;display:inline-flex;width:46px;height:46px;flex:0 0 46px;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.16);border-radius:50%;background:rgba(20,17,15,.7);color:var(--tx,#F4EFE7);cursor:pointer}
  .charamel-menu-toggle:focus-visible{outline:2px solid var(--or,#F0892A);outline-offset:3px}
  .charamel-menu-icon{position:relative;width:20px;height:14px;display:block}
  .charamel-menu-icon::before,.charamel-menu-icon::after,.charamel-menu-icon span{content:"";position:absolute;left:0;width:20px;height:1.5px;border-radius:2px;background:currentColor;transition:transform .28s ease,top .28s ease,opacity .2s ease}
  .charamel-menu-icon::before{top:0}
  .charamel-menu-icon span{top:6px}
  .charamel-menu-icon::after{top:12px}
  .is-menu-open .charamel-menu-icon::before{top:6px;transform:rotate(45deg)}
  .is-menu-open .charamel-menu-icon span{opacity:0}
  .is-menu-open .charamel-menu-icon::after{top:6px;transform:rotate(-45deg)}
  .charamel-menu-backdrop{position:fixed;inset:0;z-index:2;display:block;border:0;background:rgba(0,0,0,.58);opacity:0;visibility:hidden;transition:opacity .3s ease,visibility 0s linear .3s;cursor:default}
  .is-menu-open .charamel-menu-backdrop{opacity:1;visibility:visible;transition-delay:0s}
  [data-nav]>div{position:fixed!important;inset:0!important;z-index:3;width:100%!important;height:100dvh;display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:0!important;padding:94px 24px max(28px,env(safe-area-inset-bottom))!important;background:linear-gradient(160deg,#1B1714 0%,#0B0908 72%);border:0;box-shadow:none;transform:translate3d(100%,0,0);visibility:hidden;transition:transform .46s cubic-bezier(.16,1,.3,1),visibility 0s linear .46s;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}
  [data-nav]>div::-webkit-scrollbar{display:none}
  [data-nav].is-menu-open>div{transform:translateX(0);visibility:visible;transition-delay:0s}
  [data-nav]>div>a{display:flex!important;align-items:center;min-height:56px;width:100%;padding:14px 4px!important;border-bottom:1px solid rgba(255,255,255,.09);border-radius:0!important;background:transparent!important;box-shadow:none!important;font-size:18px!important;font-weight:600!important;line-height:1.25;text-decoration:none;white-space:normal!important}
  [data-nav]>div>a:hover{color:var(--or2,#FFAD5B)!important}
  [data-nav]>div>a:focus-visible{outline:2px solid var(--or,#F0892A);outline-offset:3px;border-radius:4px!important}
  [data-nav]>div>a:last-child{justify-content:center;min-height:50px;margin-top:auto;padding:14px 20px!important;border:0!important;border-radius:999px!important;background:var(--or,#F0892A)!important;color:#0B0908!important}
  [data-hero-dialog]{display:none!important}
}

@media (max-width:820px){
  body:has([data-nav]){overflow-wrap:break-word}
  body:has([data-nav]) header{padding:112px 20px 54px!important}
  body:has([data-nav]) header:has([data-hero-video]){min-height:72svh!important}
  body:has([data-nav]) header#top{min-height:100svh!important;padding-bottom:72px!important}
  body:has([data-nav]) header h1{font-size:clamp(32px,9.4vw,44px)!important;line-height:1.03!important;max-width:17ch}
  body:has([data-nav]) header p{font-size:16px!important;line-height:1.58!important}

  body:has([data-nav]) section [style*="grid-template-columns"]{grid-template-columns:minmax(0,1fr)!important}
  body:has([data-nav]) [style*="display:grid"]>*{min-width:0}
  body:has([data-nav]) form input,
  body:has([data-nav]) form select,
  body:has([data-nav]) form textarea{display:block;width:100%;min-width:0}

  /* Compact number and logo groups remain scannable as two columns. */
  body:has([data-nav]) [data-stats],
  body:has([data-nav]) section[data-screen-label="Kennzahlen"]>div,
  body:has([data-nav]) section[data-screen-label="Referenzen"]>div[style*="grid-template-columns"]{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  body:has([data-nav]) section[data-screen-label="Standort"]>div>div:last-child>div[style*="grid-template-columns"],
  body:has([data-nav]) section[data-screen-label="Engine"]>div>div:first-child>div[style*="grid-template-columns"]{grid-template-columns:repeat(2,minmax(0,1fr))!important}

  /* Home: turn desktop-only horizontal scrollytelling into a natural reading flow. */
  [data-fields]{height:auto!important;padding:72px 0 8px!important}
  [data-fields]>div:first-child{position:relative!important;top:auto!important;height:auto!important;overflow:visible!important;display:block!important}
  [data-fields]>div:first-child>div:first-child{position:relative!important;top:auto!important;left:auto!important;right:auto!important;align-items:flex-start!important;padding:0 20px;margin-bottom:42px}
  [data-fields-dots]{display:none!important}
  [data-fields-track]{display:grid!important;width:100%!important;transform:none!important;will-change:auto!important}
  [data-fields-track]>div{width:100%!important;height:auto!important;display:block!important;padding:0 20px 64px!important}
  [data-fields-track]>div>div{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:30px!important}
  [data-fields-track]>div>div>div[style*="aspect-ratio"]{width:100%;max-width:540px;margin-inline:auto}

  [data-tech]{height:auto!important}
  [data-tech]>div:first-child{position:relative!important;top:auto!important;height:auto!important;overflow:hidden!important;display:block!important;padding:72px 20px 42px!important}
  [data-tech]>div:first-child>div{grid-template-columns:minmax(0,1fr)!important;gap:34px!important}
  [data-tech-list]>div{opacity:1!important;transform:none!important;cursor:default!important}
  [data-tech-list]>div>span:last-child{opacity:.34!important}
  [data-tech-ringwrap]{width:100%;height:360px!important;max-width:380px;margin:0 auto}
  [data-ring="0"]{width:96px!important;height:96px!important}
  [data-ring="1"]{width:176px!important;height:176px!important}
  [data-ring="2"]{width:258px!important;height:258px!important}
  [data-ring="3"]{width:340px!important;height:340px!important}
  [data-tech-core]{width:154px!important;height:154px!important}

  /* Featured solution and forms use the full available touch width. */
  section[data-screen-label="Education"]>div>a{width:100%;text-align:center}
  section[data-screen-label="Formular"] form button{min-height:50px}

  body:has([data-nav]) footer>div[style*="grid-template-columns"]{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:34px 24px!important}
  body:has([data-nav]) footer>div[style*="grid-template-columns"]>div:first-child,
  body:has([data-nav]) footer>div[style*="grid-template-columns"]>div:last-child{grid-column:1/-1}
}

@media (max-width:520px){
  [data-nav]>div{padding-inline:20px!important}
  body:has([data-nav]) header h1{font-size:clamp(30px,9.8vw,40px)!important}
  body:has([data-nav]) section [style*="border-radius:20px"][style*="padding:clamp"]{padding:22px!important}
  section[data-screen-label="Formular"] form button{align-self:stretch!important;width:100%}
  [data-tech-ringwrap]{height:320px!important;transform:scale(.9)}
  body:has([data-nav]) footer{padding-bottom:max(32px,env(safe-area-inset-bottom))!important}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .charamel-menu-toggle *,.charamel-menu-toggle *::before,.charamel-menu-toggle *::after,
  .charamel-menu-backdrop,[data-nav]>div{transition-duration:.01ms!important}
}
