/* Hauptstylesheet und einziger CSS-Einstiegspunkt des Layouts. Die Reihenfolge ist
   absichtlich: Variablen zuerst, Grundlagen danach, Seitendateien zuletzt. */
@import url("variables.css");
@import url("typography.css");
@import url("layout.css");
@import url("buttons.css");
@import url("cards.css");
@import url("forms.css");
@import url("components.css");
@import url("utilities.css");
@import url("animations.css");
@import url("pages/home.css?rev=google-reviews-direct-20260808-1");
@import url("navigation.css?rev=logo-unified-20260808-1");
@import url("pages/services.css?rev=seo-competition-20260808-2");
@import url("pages/company.css");
@import url("pages/dashboard.css?rev=dashboard-status-pages-20260813-1");
@import url("pages/login.css");
@import url("pages/hero.css?rev=seo-20260808-1");
@import url("pages/legal.css");
@import url("pages/career.css");
@import url("pages/customer-portal.css?rev=landing-20260810-1");


/* Critical brand sizing: kept here so asp-append-version invalidates browser caches. */
header .navbar .navbar-brand .logo > img.brand-logo-image {
    display: block !important;
    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
    max-height: 44px !important;
    flex: 0 0 44px !important;
    margin: 0 !important;
    object-fit: contain !important;
}

@media (max-width: 575px) {
    header .navbar .navbar-brand .logo > img.brand-logo-image {
        width: 38px !important;
        min-width: 38px !important;
        max-width: 38px !important;
        height: 38px !important;
        min-height: 38px !important;
        max-height: 38px !important;
        flex-basis: 38px !important;
    }
}




/* Accessibility essentials */
.skip-link {
    position: fixed;
    top: 12px;
    left: 12px;
    z-index: 10000;
    padding: 12px 18px;
    border-radius: 8px;
    background: #ffffff;
    color: #08111f;
    font-weight: 800;
    text-decoration: none;
    transform: translateY(-160%);
    transition: transform .2s ease;
}

.skip-link:focus {
    transform: translateY(0);
}

:where(a, button, input, select, textarea, [tabindex]):focus-visible {
    outline: 3px solid #f6c945;
    outline-offset: 3px;
    box-shadow: 0 0 0 5px #08111f;
}

#main-content:focus {
    outline: none;
}

@media (prefers-reduced-motion: reduce) {
    [data-aos] {
        opacity: 1 !important;
        transform: none !important;
    }
}

.shop-hero{padding:90px 0 55px;background:#071628;color:#fff}.shop-hero h1{font-size:clamp(2.5rem,6vw,5rem);font-weight:800}.shop-section{padding:80px 0;background:#f5f7fa}.shop-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px}.shop-card{background:#fff;border-radius:20px;padding:20px;display:flex;flex-direction:column;gap:14px;box-shadow:0 12px 35px rgba(7,22,40,.08)}.shop-card img{width:100%;aspect-ratio:1/1;object-fit:contain;border-radius:14px}.shop-card h2{font-size:1.25rem;color:#071628;margin-top:15px}.shop-card a{text-decoration:none}.shop-card strong,.product-price{font-size:1.45rem;color:#071628}.shop-card form{margin-top:auto}.shop-note{margin-top:28px}.product-detail{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:60px;align-items:start}.product-detail>div:first-child{background:#fff;border-radius:24px;padding:25px}.product-detail img{width:100%;max-height:600px;object-fit:contain}.product-add{display:flex;align-items:center;gap:12px;margin:25px 0}.product-add input,.cart-lines input{width:80px;padding:10px;border:1px solid #ccd3dc;border-radius:8px}.cart-lines article{display:grid;grid-template-columns:90px 1fr auto auto;gap:20px;align-items:center;background:#fff;padding:18px;border-radius:16px;margin-bottom:12px}.cart-lines img{width:90px;height:90px;object-fit:contain}.cart-lines h2{font-size:1.1rem}.cart-total,.order-summary{background:#071628;color:#fff;border-radius:20px;padding:25px;margin-left:auto;max-width:460px}.cart-total>*{display:block;margin-bottom:12px}.checkout-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,.7fr);gap:30px;align-items:start}.order-summary{max-width:none;position:sticky;top:120px}.order-summary>div{display:flex;justify-content:space-between;gap:20px;margin-bottom:12px}.order-confirmation{text-align:center;background:#fff;border-radius:24px;padding:60px;max-width:800px;margin:auto}.order-confirmation i{font-size:4rem;color:#e3b52d}@media(max-width:800px){.product-detail,.checkout-grid{grid-template-columns:1fr}.cart-lines article{grid-template-columns:70px 1fr}.cart-lines form,.cart-lines>article>strong{grid-column:2}.order-summary{position:static}}

.nav-cart-item:empty{display:none}.nav-cart-button{position:relative;display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border:1px solid rgba(227,181,45,.55);border-radius:999px;color:#fff;text-decoration:none;background:rgba(227,181,45,.12);white-space:nowrap}.nav-cart-button:hover,.nav-cart-button:focus-visible{color:#071628;background:#e3b52d}.nav-cart-count{position:absolute;top:-8px;right:-7px;display:grid;place-items:center;min-width:23px;height:23px;padding:0 6px;border-radius:999px;background:#e3b52d;color:#071628;font-size:.75rem;font-weight:800;border:2px solid #1d2a3d}.nav-cart-button:hover .nav-cart-count,.nav-cart-button:focus-visible .nav-cart-count{border-color:#e3b52d;background:#071628;color:#fff}@media(max-width:991px){.nav-cart-item{margin:10px 0}.nav-cart-button{color:#071628;background:#fff}}


/* Expressive scroll motion inspired by the reference site. */
html.motion-ready .motion-reveal{opacity:0;filter:blur(5px);transition:opacity .85s cubic-bezier(.2,.75,.25,1),transform .9s cubic-bezier(.16,1,.3,1),filter .75s ease;transition-delay:var(--motion-delay,0ms);will-change:transform,opacity,filter}
html.motion-ready .motion-left{transform:translate3d(-85px,0,0) rotate(-1deg)}
html.motion-ready .motion-right{transform:translate3d(85px,0,0) rotate(1deg)}
html.motion-ready .motion-up{transform:translate3d(0,70px,0) scale(.96)}
html.motion-ready .motion-scale{transform:scale(.78) translate3d(0,30px,0)}
html.motion-ready .motion-alternating{transform:translate3d(-80px,45px,0) rotate(-2deg)}
html.motion-ready .motion-alternating:nth-child(even){transform:translate3d(80px,45px,0) rotate(2deg)}
html.motion-ready .motion-reveal.motion-visible{opacity:1;filter:blur(0);transform:translate3d(0,0,0) scale(1) rotate(0)}
.service-card,.reference-card,.expertise-grid article{transition:transform .45s cubic-bezier(.16,1,.3,1),box-shadow .45s ease,border-color .35s ease!important}
@media (hover:hover){.service-card:hover,.reference-card:hover,.expertise-grid article:hover{transform:translateY(-12px) scale(1.015)!important;box-shadow:0 28px 60px rgba(7,22,40,.2)}}
.hero-image>img{animation:hero-depth 14s ease-in-out infinite alternate;transform-origin:center center}
@keyframes hero-depth{from{transform:scale(1)}to{transform:scale(1.075)}}
.section-tag{position:relative;overflow:hidden}.section-tag::after{content:"";position:absolute;left:0;bottom:-3px;width:100%;height:2px;background:currentColor;transform:translateX(-105%);animation:accent-sweep 3.6s ease-in-out infinite}
@keyframes accent-sweep{0%,25%{transform:translateX(-105%)}60%,100%{transform:translateX(105%)}}
@media (prefers-reduced-motion:reduce){html.motion-ready .motion-reveal,html.motion-ready .motion-reveal.motion-visible{opacity:1;filter:none;transform:none;transition:none}.hero-image>img,.section-tag::after{animation:none}}

/* FAQ */
.faq-section { padding: 6rem 0; background: #f6f8fb; }
.faq-list { max-width: 920px; margin: 2.5rem auto 0; display: grid; gap: 1rem; }
.faq-list details { background: #fff; border: 1px solid rgba(8,31,50,.1); border-radius: 16px; padding: 0 1.4rem; box-shadow: 0 12px 30px rgba(8,31,50,.05); }
.faq-list summary { cursor: pointer; list-style: none; font-weight: 700; font-size: 1.05rem; padding: 1.35rem 2.5rem 1.35rem 0; position: relative; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: '+'; position: absolute; right: .15rem; top: 1rem; color: var(--primary-color, #dcae22); font-size: 1.6rem; }
.faq-list details[open] summary::after { content: '–'; }
.faq-list details p { margin: -.25rem 0 1.35rem; color: #536270; line-height: 1.75; }
/* Climate service grid cache safeguard */
@media (min-width: 1200px) {
    .services .services-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.price-tax-note {
    display: block;
    margin-top: .2rem;
    font-size: .72rem;
    font-weight: 500;
    line-height: 1.4;
    color: inherit;
}
.portal-connection-notice {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: grid;
    place-items: center;
    padding: 1.5rem;
    background: rgba(5, 16, 32, .88);
    backdrop-filter: blur(10px);
}

.portal-connection-notice[hidden] {
    display: none;
}

.portal-connection-card {
    width: min(34rem, 100%);
    padding: clamp(1.5rem, 4vw, 2.5rem);
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 1.5rem;
    background: #fff;
    color: #111827;
    text-align: center;
    box-shadow: 0 2rem 5rem rgba(0, 0, 0, .35);
}

.portal-connection-card img {
    width: 4.5rem;
    height: 4.5rem;
    object-fit: contain;
    margin-bottom: 1rem;
}

.portal-connection-card > i {
    display: block;
    margin-bottom: 1rem;
    color: #b42318;
    font-size: 2.25rem;
}

.portal-connection-card h2 {
    margin-bottom: .75rem;
    font-size: clamp(1.4rem, 4vw, 2rem);
}

.portal-connection-card p {
    margin-bottom: 1.5rem;
    color: #475467;
}

.portal-connection-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .75rem;
}
