.nova-page { overflow-wrap: anywhere; }
.nova-page-description { color: var(--text-muted, #252525); margin-top: .75rem; }
.nova-page-content, .nova-page-blocks { margin-top: 2rem; color: #252525; }
.nova-block { margin: 1.5rem 0; }
.nova-block:first-child { margin-top: 0; }
.nova-block:last-child { margin-bottom: 0; }
.nova-block h2, .nova-block h3, .nova-block h4 { margin-bottom: .75rem; }
.nova-block-content, .nova-block-content p, .nova-block-content ul, .nova-block-content ol, .nova-block-content blockquote { color: #252525; margin-bottom: 1rem; }
.nova-block-content ul, .nova-block-content ol { padding-left: 1.5rem; }
.nova-block-content blockquote { border-left: 3px solid var(--primary, #1b365d); padding-left: 1rem; }
.nova-block-content pre { white-space: pre-wrap; }
.nova-block-content .ql-align-center { text-align: center; }
.nova-block-content .ql-align-right { text-align: right; }
.nova-block-content .ql-align-justify { text-align: justify; }
.nova-block-content .ql-direction-rtl { direction: rtl; }
.nova-block-content .ql-indent-1 { padding-left: 3em; }
.nova-block-content .ql-indent-2 { padding-left: 6em; }
.nova-block-content .ql-indent-3 { padding-left: 9em; }
.nova-block-content .ql-indent-4 { padding-left: 12em; }
.nova-block-content .ql-indent-5 { padding-left: 15em; }
.nova-block-content .ql-indent-6 { padding-left: 18em; }
.nova-block-content .ql-indent-7 { padding-left: 21em; }
.nova-block-content .ql-indent-8 { padding-left: 24em; }
.nova-block-image img { display: block; max-width: 100%; height: auto; border-radius: .5rem; }
.nova-block-image figcaption { margin-top: .5rem; color: var(--text-muted, #252525); font-size: .875rem; }
.nova-block-link { display: inline-block; padding: .7rem 1.2rem; border: 1px solid var(--primary, #1b365d); border-radius: .35rem; text-decoration: none; }
.nova-block-link-primary { background: var(--primary, #1b365d); color: #fff; }
.nova-block-link-outline { color: var(--primary, #1b365d); }
.nova-block-link:hover { opacity: .85; }
.nova-block-link:focus-visible { outline: 3px solid var(--accent, #d97706); outline-offset: 3px; }

/* Homepage about: the same light surfaces and green accents as the product blocks. */
.nova-template-home .site-about {
    padding-block: 88px;
    background: #fff;
    color: var(--text-main);
    text-align: left;
}
.nova-template-home .site-about::after { display: none; }
.nova-template-home .site-about > .site-cover { opacity: .035; }
.nova-template-home .site-about > .site-container {
    width: min(100% - 64px, 1240px);
    max-width: 1240px;
}
.nova-template-home .site-about-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr);
    align-items: start;
    gap: 64px;
}
.nova-template-home .site-about-layout > h2 {
    display: flex;
    align-items: center;
    gap: 18px;
    margin-bottom: 0;
    color: #1c2428;
    font-size: clamp(2rem, 3.4vw, 3rem);
    font-weight: 700;
    letter-spacing: -.04em;
    line-height: 1.12;
}
.nova-template-home .site-about-layout > h2::before {
    content: "";
    flex: 0 0 28px;
    height: 2px;
    background: var(--primary);
}
.nova-template-home .site-about-copy { min-width: 0; }
.nova-template-home .site-about .nova-block-content {
    margin-bottom: 0;
    font-size: 1.125rem;
    line-height: 1.85;
    overflow-wrap: anywhere;
}
.nova-template-home .site-about .nova-block-content :is(p, ul, ol, blockquote) {
    color: inherit;
    line-height: inherit;
}
.nova-template-home .site-about .nova-block-content > :last-child { margin-bottom: 0; }
.nova-template-home .site-about .site-section-action { justify-content: flex-start; margin-top: 32px; }
.nova-template-home .site-about .site-button {
    gap: 20px;
    padding: 12px 24px;
    border: 1px solid #1c2428;
    border-radius: 4px;
    background: #1c2428;
    font-size: .9375rem;
    transition: background .2s ease, border-color .2s ease;
}
.nova-template-home .site-about .site-button:hover { background: var(--primary-dark); border-color: var(--primary-dark); }
.nova-template-home .site-about .site-button:focus-visible { outline: 2px solid var(--primary-dark); outline-offset: 4px; }
.site-about-arrow { flex-shrink: 0; }

@media (max-width: 1000px) {
    .nova-template-home .site-about-layout { grid-template-columns: 1fr; gap: 28px; }
}
@media (max-width: 640px) {
    .nova-template-home .site-about { padding-block: 56px; }
    .nova-template-home .site-about > .site-container { width: calc(100% - 36px); }
    .nova-template-home .site-about-layout > h2 { gap: 12px; }
    .nova-template-home .site-about-layout > h2::before { flex-basis: 20px; }
    .nova-template-home .site-about .nova-block-content { font-size: 1rem; line-height: 1.8; }
    .nova-template-home .site-about .site-button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    .nova-template-home .site-about .site-button { transition: none; }
}

/* Home, services and catalog blocks share the same restrained surfaces. */
.site-page-header + .site-services-page.nova-template-services { padding-top: 0; }
.site-services-page.nova-template-services > .catalog-richtext { padding-block: 56px; }
:is(.nova-template-home, .nova-template-services.site-services-page) :is(.site-products, .site-services),
.site-services-page .catalog-families,
.catalog-index {
    --block-radius: 4px;
    --block-line: #e9ede9;
    padding-block: 88px;
    background: #fff;
}

:is(.nova-template-home, .nova-template-services.site-services-page) :is(.site-products, .site-services) > .site-container,
.site-services-page .catalog-families > .catalog-container,
.catalog-index > .catalog-container {
    width: min(100% - 64px, 1240px);
}

:is(.nova-template-home, .nova-template-services.site-services-page) :is(.site-products, .site-services) .site-section-title,
.site-services-page .catalog-families .catalog-title {
    justify-content: flex-start;
    gap: 18px;
    margin-bottom: 40px;
    padding-bottom: 0;
    border-bottom: 0;
    color: #1c2428;
    font-size: clamp(2rem, 3.4vw, 3rem);
    font-weight: 700;
    letter-spacing: -.04em;
    line-height: 1.12;
    text-align: left;
}

:is(.nova-template-home, .nova-template-services.site-services-page) :is(.site-products, .site-services) .site-section-title::before,
.site-services-page .catalog-families .catalog-title::before {
    flex: 0 0 28px;
    height: 2px;
    background: var(--primary);
}

:is(.nova-template-home, .nova-template-services.site-services-page) :is(.site-products, .site-services) .site-section-title::after,
.site-services-page .catalog-families .catalog-title::after {
    display: none;
}

:is(.nova-template-home .site-products, .nova-template-services .site-products, .catalog-index, .site-services-page .catalog-families) :is(.catalog-category-grid, .catalog-family-grid),
:is(.nova-template-home, .nova-template-services.site-services-page) .site-services .site-card-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
    margin-bottom: 0;
}

:is(.nova-template-home .site-products, .nova-template-services .site-products, .catalog-index, .site-services-page .catalog-families) :is(.catalog-category-card, .catalog-family-card) {
    display: flex;
    min-width: 0;
    flex-direction: column;
    border: 1px solid var(--block-line);
    border-radius: var(--block-radius);
    box-shadow: 0 8px 24px rgb(24 32 25 / 4%);
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

:is(.nova-template-home .site-products, .nova-template-services .site-products, .catalog-index, .site-services-page .catalog-families) :is(.catalog-category-thumb, .catalog-family-thumb) {
    height: 210px;
    margin-bottom: 0;
    padding: 24px;
    border-bottom: 0;
    background: #f5f7f5;
}

:is(.nova-template-home .site-products, .nova-template-services .site-products, .catalog-index, .site-services-page .catalog-families) :is(.catalog-category-thumb, .catalog-family-thumb) img {
    display: block;
    mix-blend-mode: multiply;
    transition: transform .3s ease;
}

:is(.nova-template-home .site-products, .nova-template-services .site-products, .catalog-index, .site-services-page .catalog-families) :is(.catalog-category-copy, .catalog-family-copy) { padding: 26px; }

:is(.nova-template-home .site-products, .nova-template-services .site-products, .catalog-index, .site-services-page .catalog-families) :is(.catalog-category-card h2, .catalog-family-card h3) {
    margin-bottom: 0;
    color: #1c2428;
    font-size: 1.25rem;
    font-weight: 700;
    letter-spacing: -.025em;
    line-height: 1.35;
    overflow-wrap: break-word;
    transition: color .2s ease;
}

:is(.nova-template-home .site-products, .nova-template-services .site-products, .catalog-index, .site-services-page .catalog-families) :is(.catalog-category-card, .catalog-family-card) p {
    margin-top: 12px;
    font-size: .9375rem;
    line-height: 1.7;
}

:is(.nova-template-home .site-products, .nova-template-services .site-products, .catalog-index, .site-services-page .catalog-families) :is(.catalog-category-card, .catalog-family-card):is(:hover, :focus-visible) {
    transform: translateY(-3px);
    border-color: #d4dfd0;
    box-shadow: 0 14px 32px rgb(24 32 25 / 7%);
}

:is(.nova-template-home .site-products, .nova-template-services .site-products, .catalog-index, .site-services-page .catalog-families) :is(.catalog-category-card, .catalog-family-card):is(:hover, :focus-visible) :is(h2, h3) {
    color: var(--primary-dark);
}

:is(.nova-template-home .site-products, .nova-template-services .site-products, .catalog-index, .site-services-page .catalog-families) :is(.catalog-category-card, .catalog-family-card):is(:hover, :focus-visible) img {
    transform: scale(1.025);
}

:is(.nova-template-home, .nova-template-services.site-services-page) .site-services {
    border-top: 0;
    background: #f5f7f5;
}

:is(.nova-template-home, .nova-template-services.site-services-page) .site-services .site-service-card {
    padding: 32px;
    border: 1px solid var(--block-line);
    border-radius: var(--block-radius);
    background: #fff;
    box-shadow: 0 8px 24px rgb(24 32 25 / 4%);
    transition: border-color .2s ease;
}

:is(.nova-template-home, .nova-template-services.site-services-page) .site-services .site-service-card:hover {
    transform: none;
    border-color: #d4dfd0;
}

:is(.nova-template-home, .nova-template-services.site-services-page) .site-services .site-service-card > i {
    display: grid;
    width: 52px;
    height: 52px;
    margin-bottom: 28px;
    place-items: center;
    border: 0;
    border-radius: var(--block-radius);
    background: #f3f7f1;
    color: var(--primary-dark);
    font-size: 1.375rem;
}

:is(.nova-template-home, .nova-template-services.site-services-page) .site-services .site-service-card h3 {
    color: #1c2428;
    font-size: 1.375rem;
    letter-spacing: -.025em;
    line-height: 1.3;
}

:is(.nova-template-home, .nova-template-services.site-services-page) .site-services .site-service-card p {
    font-size: 1rem;
    line-height: 1.75;
}

:is(.nova-template-home, .nova-template-services.site-services-page) :is(.site-products, .site-services) .site-section-action {
    justify-content: flex-start;
    margin-top: 36px;
}

:is(.nova-template-home, .nova-template-services.site-services-page) :is(.site-products, .site-services) .site-button {
    padding: 12px 24px;
    border: 1px solid #1c2428;
    border-radius: var(--block-radius);
    background: #1c2428;
    font-size: .9375rem;
    transition: background .2s ease, border-color .2s ease;
}

:is(.nova-template-home, .nova-template-services.site-services-page) :is(.site-products, .site-services) .site-button:hover {
    border-color: var(--primary-dark);
    background: var(--primary-dark);
}

:is(.nova-template-home, .nova-template-services.site-services-page) :is(.site-products, .site-services) a:focus-visible,
:is(.catalog-index, .site-services-page .catalog-families) :is(.catalog-category-card, .catalog-family-card):focus-visible {
    outline: 2px solid var(--primary-dark);
    outline-offset: 4px;
}

@media (max-width: 1000px) {
    :is(.nova-template-home .site-products, .nova-template-services .site-products, .catalog-index, .site-services-page .catalog-families) :is(.catalog-category-grid, .catalog-family-grid) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    :is(.nova-template-home, .nova-template-services.site-services-page) .site-services .site-card-grid { grid-template-columns: 1fr; gap: 16px; }
}

@media (max-width: 640px) {
    :is(.nova-template-home, .nova-template-services.site-services-page) :is(.site-products, .site-services),
    .site-services-page .catalog-families,
    .catalog-index { padding-block: 56px; }
    :is(.nova-template-home, .nova-template-services.site-services-page) :is(.site-products, .site-services) > .site-container,
    .site-services-page .catalog-families > .catalog-container,
    .catalog-index > .catalog-container { width: calc(100% - 36px); }
    :is(.nova-template-home, .nova-template-services.site-services-page) :is(.site-products, .site-services) .site-section-title,
    .site-services-page .catalog-families .catalog-title { gap: 12px; margin-bottom: 28px; }
    :is(.nova-template-home, .nova-template-services.site-services-page) :is(.site-products, .site-services) .site-section-title::before,
    .site-services-page .catalog-families .catalog-title::before { flex-basis: 20px; }
    :is(.nova-template-home .site-products, .nova-template-services .site-products, .catalog-index, .site-services-page .catalog-families) :is(.catalog-category-grid, .catalog-family-grid) { grid-template-columns: 1fr; gap: 18px; }
    :is(.nova-template-home .site-products, .nova-template-services .site-products, .catalog-index, .site-services-page .catalog-families) :is(.catalog-category-copy, .catalog-family-copy),
    :is(.nova-template-home, .nova-template-services.site-services-page) .site-services .site-service-card { padding: 24px; }
    :is(.nova-template-home, .nova-template-services.site-services-page) :is(.site-products, .site-services) .site-button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    :is(.nova-template-home .site-products, .nova-template-services .site-products, .catalog-index, .site-services-page .catalog-families) :is(.catalog-category-card, .catalog-family-card),
    :is(.nova-template-home .site-products, .nova-template-services .site-products, .catalog-index, .site-services-page .catalog-families) :is(.catalog-category-card, .catalog-family-card) img,
    :is(.nova-template-home .site-products, .nova-template-services .site-products, .catalog-index, .site-services-page .catalog-families) :is(.catalog-category-card h2, .catalog-family-card h3),
    :is(.nova-template-home, .nova-template-services.site-services-page) .site-services .site-service-card,
    :is(.nova-template-home, .nova-template-services.site-services-page) :is(.site-products, .site-services) .site-button { transition: none; }
    :is(.nova-template-home .site-products, .nova-template-services .site-products, .catalog-index, .site-services-page .catalog-families) :is(.catalog-category-card, .catalog-family-card):is(:hover, :focus-visible),
    :is(.nova-template-home .site-products, .nova-template-services .site-products, .catalog-index, .site-services-page .catalog-families) :is(.catalog-category-card, .catalog-family-card):is(:hover, :focus-visible) img { transform: none; }
}
