:root { --shell: 1480px; }

.shell { width:min(var(--shell), calc(100% - 56px)); }

.topbar-inner { min-height:72px; }

.hero--home,
.page-hero--utilities,
.page-hero--products,
.page-hero--requests,
.page-hero--openai-news,
.page-hero--contacts {
    padding:0;
    background-repeat:no-repeat !important;
    background-position:center, right center !important;
    background-size:100% 100%, auto 100% !important;
}

.hero--home {
    background:
      linear-gradient(90deg,#f7fbff 0%,rgba(241,248,255,.98) 38%,rgba(238,247,255,.62) 58%,rgba(255,255,255,0) 78%),
      url("/assets/images/hero/home-hero.webp") !important;
}

.page-hero--utilities {
    background:
      linear-gradient(90deg,#f8fbff 0%,rgba(241,248,255,.98) 42%,rgba(238,247,255,.48) 63%,rgba(255,255,255,0) 100%),
      url("/assets/images/hero/utilities-hero.webp") !important;
}

.page-hero--products {
    background:
      linear-gradient(90deg,#f8fbff 0%,rgba(241,248,255,.98) 42%,rgba(238,247,255,.48) 63%,rgba(255,255,255,0) 100%),
      url("/assets/images/hero/products-hero.webp") !important;
}

.page-hero--requests {
    background:
      linear-gradient(90deg,#f8fbff 0%,rgba(241,248,255,.98) 42%,rgba(238,247,255,.48) 63%,rgba(255,255,255,0) 100%),
      url("/assets/images/hero/requests-hero.webp") !important;
}

.page-hero--openai-news {
    background:
      linear-gradient(90deg,#f8fbff 0%,rgba(241,248,255,.98) 42%,rgba(238,247,255,.48) 63%,rgba(255,255,255,0) 100%),
      url("/assets/images/hero/openai-news-hero.webp") !important;
}

.page-hero--contacts {
    background:
      linear-gradient(90deg,#f8fbff 0%,rgba(241,248,255,.98) 42%,rgba(238,247,255,.48) 63%,rgba(255,255,255,0) 100%),
      url("/assets/images/hero/contacts-hero.webp") !important;
}

.hero--home .hero-inner {
    min-height:300px;
    grid-template-columns:minmax(620px, .98fr) minmax(540px,.9fr);
}

.page-hero .page-hero-inner {
    min-height:245px;
    grid-template-columns:minmax(560px,1fr) minmax(500px,.9fr);
}

.hero--home .hero-copy { max-width:760px; }
.hero--home .hero-copy h1 { font-size:clamp(46px,4.2vw,62px); line-height:.98; }
.hero--home .hero-copy > p { max-width:700px; }

.page-hero .page-hero-inner > div:first-child { max-width:690px; }
.page-hero h1 { max-width:760px; font-size:clamp(42px,4vw,58px); line-height:1; }
.page-hero .hero-art { display:none !important; }

/* home raster already includes the checklist */
.hero--home .hero-side { visibility:hidden; }

.hero--home .page-motto--home {
    top:26px !important;
    right:36% !important;
    max-width:240px !important;
}

.page-hero--utilities .page-motto--utilities,
.page-hero--products .page-motto--products {
    top:22px !important;
    right:33% !important;
}

.page-hero--requests .page-motto--requests,
.page-hero--openai-news .page-motto--openai-news {
    top:20px !important;
    right:32% !important;
}

.page-hero--contacts .page-motto--contacts {
    top:22px !important;
    right:33% !important;
}

.home-layout {
    grid-template-columns:minmax(0,1fr) 330px;
    gap:30px;
}

.home-main { gap:26px; }

.card,
.idea-box,
.why-box,
.bottom-cta {
    border-radius:14px;
    box-shadow:0 7px 24px rgba(22,62,108,.045);
}

.utility-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.product-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.utility-catalog { grid-template-columns:repeat(3,minmax(0,1fr)); }

.utility-card,
.product-card { min-height:unset; padding:17px; }

@media (max-width:1260px) {
    :root { --shell:1120px; }
    .utility-grid,
    .product-grid,
    .utility-catalog { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:900px) {
    .hero--home .page-motto--home,
    .page-hero .page-motto { display:none; }

    .hero--home .hero-inner,
    .page-hero .page-hero-inner { grid-template-columns:1fr; }

    .home-layout { grid-template-columns:1fr; }
}

@media (max-width:680px) {
    .shell { width:min(100% - 28px,var(--shell)); }

    .hero--home,
    .page-hero--utilities,
    .page-hero--products,
    .page-hero--requests,
    .page-hero--openai-news,
    .page-hero--contacts {
        background-image:linear-gradient(180deg,#f8fbff,#eef6ff) !important;
    }

    .hero--home .hero-side { display:none; }

    .utility-grid,
    .product-grid,
    .utility-catalog { grid-template-columns:1fr; }
}
