/*
 * QUVENTY WEBSTUDIO Template
 * Copyright © 2026 QUVENTY · Jens Otto · Velten, Germany
 * Version: 0.3.0
 */
:root{
  --quventy-max-width:1440px;--quventy-gap:clamp(1rem,2vw,2rem);
  --quventy-primary:#1769e0;--quventy-secondary:#263c4b;--quventy-text:#172b46;
  --quventy-muted:#66778c;--quventy-link:#1769e0;--quventy-link-hover:#0d4fae;
  --quventy-header-bg:#fff;--quventy-header-text:#172b46;--quventy-menu-active:#1769e0;
  --quventy-offcanvas-bg:#fff;--quventy-offcanvas-text:#172b46;
  --quventy-footer-bg:#fff;--quventy-footer-text:#66778c;
  --quventy-line:#e4e9ef;--quventy-soft:#f5f7fa;
  --quventy-logo-width:145px;--quventy-mobile-logo-width:120px;--quventy-sticky-logo-width:125px;
  --quventy-header-height:80px;--quventy-header-height-mobile:64px;
  --quventy-body-font:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --quventy-body-size:16px;--quventy-body-line-height:1.6;
  --quventy-heading-font:inherit;--quventy-heading-weight:700;
  --quventy-h1:48px;--quventy-h2:38px;--quventy-h3:30px;--quventy-h4:24px;--quventy-h5:20px;--quventy-h6:17px
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--quventy-text);font-family:var(--quventy-body-font);font-size:var(--quventy-body-size);line-height:var(--quventy-body-line-height);min-height:100vh}
body.quventy-boxed .quventy-page-shell,body.quventy-boxed .quventy-header-inner,body.quventy-boxed .quventy-topbar-inner,body.quventy-boxed .quventy-footer>.quventy-wrap{max-width:var(--quventy-max-width);margin-inline:auto;background:#fff}
img{max-width:100%;height:auto}
a{color:var(--quventy-link)}
a:hover{color:var(--quventy-link-hover)}
h1,h2,h3,h4,h5,h6{font-family:var(--quventy-heading-font);font-weight:var(--quventy-heading-weight);line-height:1.15}
h1{font-size:var(--quventy-h1)}h2{font-size:var(--quventy-h2)}h3{font-size:var(--quventy-h3)}h4{font-size:var(--quventy-h4)}h5{font-size:var(--quventy-h5)}h6{font-size:var(--quventy-h6)}
.quventy-wrap{width:min(calc(100% - 2rem),var(--quventy-max-width));margin-inline:auto}
.quventy-skip{position:absolute;left:-9999px}
.quventy-skip:focus{left:1rem;top:1rem;z-index:10000;background:#fff;padding:.75rem 1rem;border:1px solid var(--quventy-line)}
.quventy-topbar{border-bottom:1px solid var(--quventy-line);font-size:.86rem;background:#fff}
.quventy-topbar-inner{min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.quventy-contact-inline,.quventy-social{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.quventy-contact-inline a,.quventy-social a{text-decoration:none;color:inherit}
.quventy-header{background:var(--quventy-header-bg);color:var(--quventy-header-text);border-bottom:1px solid var(--quventy-line);z-index:1000;transition:.2s}
.quventy-header-shadow .quventy-header{box-shadow:0 6px 22px rgba(20,48,80,.08)}
.quventy-sticky-header .quventy-header{position:sticky;top:0}
.quventy-header-inner{min-height:var(--quventy-header-height);display:flex;align-items:center;gap:1.5rem}
.quventy-header-centered .quventy-header-inner{justify-content:center;flex-wrap:wrap}
.quventy-header-centered .quventy-menu{order:3;width:100%;display:flex;justify-content:center;padding-bottom:.8rem}
.quventy-header-split .quventy-brand{margin-right:auto}
.quventy-brand{display:flex;align-items:center;text-decoration:none;color:inherit;font-weight:800;letter-spacing:.08em;flex:0 0 auto}
.quventy-brand picture{display:flex;align-items:center}
.quventy-brand-logo{display:block;width:var(--quventy-logo-width);max-height:58px;object-fit:contain;object-position:left center;transition:width .2s}
.quventy-is-sticky .quventy-brand-logo{width:var(--quventy-sticky-logo-width)}
.quventy-brand-text{font-weight:800;letter-spacing:.12em}
.quventy-brand-text small{display:block;font-weight:500;letter-spacing:.03em;font-size:.65em;color:var(--quventy-muted)}
.quventy-header-left,.quventy-header-actions{display:flex;align-items:center;gap:.75rem}
.quventy-header-actions{margin-left:auto}
.quventy-header-action{width:38px;height:38px;border:1px solid var(--quventy-line);border-radius:8px;display:grid;place-items:center;text-decoration:none;color:inherit}
.quventy-menu{margin-left:auto}
.quventy-menu ul{display:flex;align-items:center;gap:1.25rem;list-style:none;margin:0;padding:0}
.quventy-menu li{position:relative}
.quventy-menu a{text-decoration:none;color:inherit}
.quventy-menu .active>a,.quventy-menu a:hover{color:var(--quventy-menu-active)}
.quventy-menu-toggle{display:none;margin-left:.25rem;width:44px;height:44px;border:1px solid var(--quventy-line);border-radius:8px;background:#fff;padding:9px}
.quventy-menu-toggle span{display:block;height:2px;background:var(--quventy-text);margin:5px 0}
.quventy-offcanvas{position:fixed;inset:0;z-index:5000;background:rgba(11,27,46,.38)}
.quventy-offcanvas[hidden]{display:none}
.quventy-offcanvas-inner{position:absolute;top:0;right:0;width:min(88vw,390px);height:100%;background:var(--quventy-offcanvas-bg);color:var(--quventy-offcanvas-text);padding:70px 25px 30px;box-shadow:-12px 0 35px rgba(0,0,0,.14);overflow:auto}
.quventy-offcanvas-left .quventy-offcanvas-inner{right:auto;left:0;box-shadow:12px 0 35px rgba(0,0,0,.14)}
.quventy-offcanvas-close{position:absolute;right:16px;top:12px;width:42px;height:42px;border:0;background:transparent;color:inherit;font-size:2rem}
.quventy-offcanvas-left .quventy-offcanvas-close{right:auto;left:16px}
.quventy-offcanvas-logo{width:130px;display:block;margin-bottom:1.5rem}
.quventy-offcanvas ul{list-style:none;margin:0;padding:0}
.quventy-offcanvas li{border-bottom:1px solid rgba(127,144,163,.22)}
.quventy-offcanvas a{display:block;padding:12px 2px;text-decoration:none;color:inherit}
.quventy-offcanvas-feature{font-weight:700}
.quventy-offcanvas-contact{margin-top:1.5rem;padding-top:1rem;border-top:1px solid rgba(127,144,163,.22);font-size:.92rem}
.quventy-social-offcanvas{margin-top:1rem;gap:.6rem}
.quventy-social-offcanvas a{padding:0}
.quventy-hero{background:var(--quventy-soft)}
.quventy-breadcrumb,.quventy-above,.quventy-below{padding-block:1rem}
.quventy-main{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--quventy-gap);padding-block:clamp(1.5rem,4vw,4rem)}
.quventy-main:has(.quventy-sidebar){grid-template-columns:minmax(220px,300px) minmax(0,1fr)}
.quventy-main:has(.quventy-sidebar + .quventy-component + .quventy-sidebar){grid-template-columns:minmax(200px,260px) minmax(0,1fr) minmax(200px,260px)}
.quventy-main-fullwidth{width:100%;padding:0;display:block}
.quventy-pagebuilder-fullwidth .quventy-component{width:100%;min-width:0}
.quventy-component{min-width:0}
.quventy-user-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--quventy-gap);padding-block:2rem}
.quventy-footer{margin-top:3rem;padding:2rem 0 1.25rem;border-top:1px solid var(--quventy-line);background:var(--quventy-footer-bg);color:var(--quventy-footer-text);font-size:.92rem}
.quventy-footer-top{padding-bottom:1.5rem}
.quventy-footer-modules{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}
.quventy-footer-bottom{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding-top:1rem;margin-top:1rem;border-top:1px solid var(--quventy-line)}
.quventy-software-credit{font-size:.76rem;opacity:.72}
.quventy-gotop{position:fixed;right:20px;bottom:20px;width:42px;height:42px;border:0;border-radius:50%;background:var(--quventy-primary);color:#fff;box-shadow:0 5px 20px rgba(0,0,0,.18);opacity:0;pointer-events:none;transition:.2s;z-index:900}
.quventy-gotop.is-visible{opacity:1;pointer-events:auto}
.quventy-preloader{position:fixed;inset:0;z-index:10000;background:#fff;display:flex;align-items:center;justify-content:center;gap:8px;transition:opacity .25s}
.quventy-preloader.is-done{opacity:0;pointer-events:none}
.quventy-preloader-circle span:first-child{width:36px;height:36px;border:3px solid #dbe3ec;border-top-color:var(--quventy-primary);border-radius:50%;animation:qspin .8s linear infinite}
.quventy-preloader-circle span:nth-child(n+2){display:none}
.quventy-preloader-dots span{width:10px;height:10px;background:var(--quventy-primary);border-radius:50%;animation:qpulse .8s ease-in-out infinite alternate}
.quventy-preloader-dots span:nth-child(2){animation-delay:.15s}.quventy-preloader-dots span:nth-child(3){animation-delay:.3s}
.quventy-preloader-bar span:first-child{width:130px;height:4px;background:linear-gradient(90deg,var(--quventy-primary) 50%,#e2e8ef 50%);background-size:200% 100%;animation:qbar 1s linear infinite}
.quventy-preloader-bar span:nth-child(n+2){display:none}
@keyframes qspin{to{transform:rotate(360deg)}}@keyframes qpulse{to{transform:translateY(-8px);opacity:.45}}@keyframes qbar{to{background-position:-200% 0}}
.quventy-comingsoon{min-height:100vh;display:grid;place-items:center;background-color:#f4f7fa;background-size:cover;background-position:center;padding:2rem}
.quventy-comingsoon-card{width:min(92vw,720px);background:rgba(255,255,255,.94);padding:clamp(2rem,6vw,5rem);border-radius:16px;text-align:center;box-shadow:0 20px 60px rgba(22,45,70,.12)}
.quventy-comingsoon-logo img{width:145px;margin-bottom:1.5rem}
.quventy-comingsoon-date{display:block;margin:1.25rem 0;font-weight:700}
.quventy-button{display:inline-block;background:var(--quventy-primary);color:#fff;text-decoration:none;padding:.75rem 1.1rem;border-radius:8px}
.quventy-error{min-height:100vh;display:grid;place-items:center;background:var(--quventy-soft);background-size:cover;background-position:center}
.quventy-error-box{width:min(90%,720px);background:rgba(255,255,255,.96);padding:clamp(2rem,5vw,4rem);border:1px solid var(--quventy-line);border-radius:14px;text-align:center}
.quventy-error-code{font-size:clamp(3rem,12vw,8rem);font-weight:900;line-height:1;color:var(--quventy-primary)}
@media(max-width:980px){
  .quventy-menu{display:none!important}.quventy-menu-toggle{display:block}
  .quventy-header-actions{margin-left:auto}
  .quventy-main,.quventy-main:has(.quventy-sidebar),.quventy-main:has(.quventy-sidebar + .quventy-component + .quventy-sidebar){grid-template-columns:1fr}
  .quventy-user-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
  .quventy-header-inner{min-height:var(--quventy-header-height-mobile)}
  .quventy-brand-logo{width:var(--quventy-mobile-logo-width);max-height:46px}
  .quventy-topbar-inner,.quventy-footer-bottom{align-items:flex-start;flex-direction:column}
  .quventy-user-grid,.quventy-footer-modules{grid-template-columns:1fr}
}
