/*
Theme Name: GX-Easy Nova
Theme URI: https://www.generaxion.com/fi/
Author: Generaxion Oy
Description: Reusable Finnish core-block starter with editable Global Styles and section patterns.
Version: 1.0.0
Requires at least: 7.1
Requires PHP: 8.0
Text Domain: nova
License: GPL-2.0-or-later
*/
/* Structural CSS is shared by the frontend and block-editor iframe.
   Branding and typography resolve through editable theme.json presets. */
:where(.wp-site-blocks, .editor-styles-wrapper) { overflow-wrap: break-word; }
:where(.wp-site-blocks, .editor-styles-wrapper) *,
:where(.wp-site-blocks, .editor-styles-wrapper) *::before,
:where(.wp-site-blocks, .editor-styles-wrapper) *::after { box-sizing: border-box; }
:where(h1, h2, h3, h4) { text-wrap: balance; }
:where(p) { text-wrap: pretty; }
:where(a, button, input, textarea, select):focus-visible { outline: 3px solid var(--wp--preset--color--brand); outline-offset: 4px; }
.wp-site-blocks > *, .nova-main > .wp-block-post-content, .wp-site-blocks > footer { margin-block-start: 0; }
.nova-main { margin-block: 0; }
.nova-section { margin-block-start: 0; padding-block: var(--wp--preset--spacing--60); }
.nova-section > :first-child, .nova-service-list > :first-child { margin-block-start: 0; }
.nova-section > :last-child { margin-block-end: 0; }
.nova-header { padding-block: var(--wp--preset--spacing--30); }
.nova-header-inner { max-width: var(--wp--custom--header-width); margin-inline: auto; gap: var(--wp--preset--spacing--40); }
.nova-brand { gap: 0; }
.nova-brand .wp-block-site-logo:has(a) + .wp-block-site-title { display: none; }
.nova-brand .wp-block-site-title a::after { content: '.'; color: var(--wp--preset--color--brand); }
.nova-header .wp-block-navigation__container { gap: var(--wp--preset--spacing--40); }
.nova-header .wp-block-navigation-item.nova-nav-cta > .wp-block-navigation-item__content {
 background: var(--wp--preset--color--brand); color: var(--wp--preset--color--base); border-radius: var(--wp--custom--radius);
 padding: 1rem 2rem; font-size: 1rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
}
.nova-header .wp-block-navigation__responsive-container.is-menu-open { padding: var(--wp--preset--spacing--40); }
.nova-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { align-items: stretch; gap: var(--wp--preset--spacing--40); }
.nova-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: flex-start; width: 100%; }
/* Keep Cover's background, focal point and overlay native and editable. */
.wp-block-cover.is-style-nova-split { padding: 0; }
.wp-block-cover.is-style-nova-split > .wp-block-cover__background { width: 50%; }
.wp-block-cover.is-style-nova-split > .wp-block-cover__image-background { left: 50%; width: 50%; }
.wp-block-cover.is-style-nova-split > .wp-block-cover__inner-container { width: 100%; max-width: none; }
.wp-block-cover.is-style-nova-split .wp-block-group.nova-hero-copy { text-align: center; width: 50%; padding: var(--wp--preset--spacing--60) clamp(1.5rem, 5vw, 5.5rem); }
.nova-hero-copy h1 { margin-block: 0; }
.nova-hero-copy .wp-block-buttons { margin-block-start: var(--wp--preset--spacing--50); }
.nova-service-list { margin-block-start: 0; padding-block-end: var(--wp--preset--spacing--60); }
.wp-block-media-text.is-style-nova-service { max-width: var(--wp--custom--service-width); margin-inline: auto; margin-block-start: var(--wp--preset--spacing--50); }
.wp-block-media-text.is-style-nova-service .wp-block-media-text__media { border-radius: var(--wp--custom--radius); overflow: hidden; }
.wp-block-media-text.is-style-nova-service .wp-block-media-text__media img { aspect-ratio: 1.1; object-fit: cover; width: 100%; }
.wp-block-media-text.is-style-nova-service .wp-block-media-text__content { padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--60); }
.wp-block-media-text.is-style-nova-service .wp-block-buttons { margin-block-start: var(--wp--preset--spacing--50); }
.nova-title-intro { text-align: center; }
.nova-title-intro h1 { margin-block-start: 0; }
.nova-title-intro p { font-size: var(--wp--preset--font-size--large); line-height: 1.7; }
.nova-contact-details { text-align: center; }
.nova-contact-details h2 { margin-block-start: var(--wp--preset--spacing--60); }
.nova-contact-details p { margin-block-start: var(--wp--preset--spacing--40); }
.nova-staff { gap: var(--wp--preset--spacing--40); max-width: 1120px; margin-inline: auto; }
.nova-staff .wp-block-column { min-width: 0; }
.nova-staff .wp-block-image img { width: 100%; aspect-ratio: 1.83; object-fit: cover; border-radius: var(--wp--custom--radius); }
.nova-staff h2 { font-size: var(--wp--preset--font-size--heading-3); color: var(--wp--preset--color--ink); }
.nova-staff .wp-block-column > * + * { margin-block-start: var(--wp--preset--spacing--40); }
.nova-accordion { margin-block-start: var(--wp--preset--spacing--70); }
.nova-accordion .wp-block-accordion-item { border: 1px solid var(--wp--preset--color--brand); border-radius: var(--wp--custom--radius); margin-block-start: var(--wp--preset--spacing--30); overflow: clip; }
.nova-accordion .wp-block-accordion-heading { margin: 0; }
.nova-accordion .wp-block-accordion-heading__toggle { padding: var(--wp--preset--spacing--30); gap: 1rem; }
.nova-accordion .wp-block-accordion-heading__toggle-icon { font-size: 0; transform: none; color: var(--wp--preset--color--ink); }
.nova-accordion .wp-block-accordion-heading__toggle-icon::before { content: '↓'; font: 1.5rem/1 var(--wp--preset--font-family--body); }
.nova-accordion .is-open > .wp-block-accordion-heading .wp-block-accordion-heading__toggle-icon::before { content: '↑'; }
.nova-accordion .wp-block-accordion-panel { padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--50) var(--wp--preset--spacing--50); }
.nova-accordion .wp-block-accordion-panel h3 { font-size: var(--wp--preset--font-size--large); margin-block-start: var(--wp--preset--spacing--50); }
.nova-accordion .wp-block-accordion-panel > :first-child { margin-block-start: 0; }
.wp-block-table.is-style-nova-pricing { border: 1px solid var(--wp--preset--color--brand); border-radius: var(--wp--custom--radius); overflow-x: auto; }
.wp-block-table.is-style-nova-pricing table { margin: 0; border-collapse: collapse; }
.wp-block-table.is-style-nova-pricing thead { border: 0; background: var(--wp--preset--color--brand); color: var(--wp--preset--color--base); font-family: var(--wp--preset--font-family--heading); font-size: var(--wp--preset--font-size--medium); font-weight: 400; }
.wp-block-table.is-style-nova-pricing :is(th, td) { border: 0; padding: 1.75rem 3rem; text-align: left; vertical-align: middle; }
.wp-block-table.is-style-nova-pricing th { font-weight: 400; }
.wp-block-table.is-style-nova-pricing tbody tr:nth-child(even) { background: var(--wp--preset--color--tint); }
.nova-pricing h2 { margin-block-start: var(--wp--preset--spacing--50); font-size: var(--wp--preset--font-size--heading-3); }
.nova-pricing .wp-block-buttons { gap: var(--wp--preset--spacing--30); flex-wrap: wrap; }
.wp-block-group.nova-note { padding: var(--wp--preset--spacing--30); border-radius: var(--wp--custom--radius); margin-block-start: var(--wp--preset--spacing--50); }
.nova-cta-wrap { margin-block-start: 0; padding-block: 0 var(--wp--preset--spacing--60); }
.nova-cta { border-radius: var(--wp--custom--radius); padding: var(--wp--preset--spacing--60) clamp(1.5rem, 9vw, 8rem); gap: var(--wp--preset--spacing--60); }
.nova-cta .wp-block-column:first-child { flex-basis: 75%; }
.nova-cta .wp-block-column:last-child { flex-basis: 25%; }
.nova-cta h2 { color: inherit; margin-block-start: 0; }
.nova-cta p { font-size: var(--wp--preset--font-size--large); line-height: 1.7; }
.nova-cta .wp-block-button__link { white-space: nowrap; }
.nova-footer { padding-block: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40); }
.nova-footer-inner { max-width: var(--wp--custom--service-width); margin-inline: auto; }
.nova-footer .wp-block-columns { gap: var(--wp--preset--spacing--50); }
.nova-footer .wp-block-column { min-width: 0; }
.nova-footer .wp-block-site-title { margin-block-start: 0; }
.nova-footer .wp-block-navigation { font-size: 1rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.nova-footer .wp-block-social-links { gap: var(--wp--preset--spacing--30); }
.nova-footer-legal { margin-block-start: var(--wp--preset--spacing--60); font-size: 1rem; }
.nova-footer-legal a { color: inherit; }
/* Gravity Forms Orbital variables plus narrow selectors for its editor preview. */
.nova-form .gform_wrapper {
 --gf-font-family-base: var(--wp--preset--font-family--body);
 --gf-font-size-primary: var(--wp--preset--font-size--small);
 --gf-color-primary: var(--wp--preset--color--brand);
 --gf-color-primary-contrast: var(--wp--preset--color--base);
 --gf-color-in-ctrl-primary: var(--wp--preset--color--ink);
 --gf-color-in-ctrl-primary-bg: var(--wp--preset--color--base);
 --gf-color-in-ctrl-primary-border: var(--wp--preset--color--brand);
 --gf-radius: 4px;
 font-family: var(--wp--preset--font-family--body);
}
.nova-form .gform_wrapper :is(input[type=text], input[type=email], input[type=tel], textarea, select) { width: 100%; max-width: 100%; border: 1px solid var(--wp--preset--color--brand); border-radius: 4px; color: var(--wp--preset--color--ink); background: var(--wp--preset--color--base); font: inherit; min-height: 3rem; padding: .75rem; }
.nova-form .gform_wrapper .gfield_label { font-family: var(--wp--preset--font-family--body); font-size: var(--wp--preset--font-size--small); font-weight: 400; color: var(--wp--preset--color--ink); }
.nova-form .gform_wrapper.gform-theme.gform-theme--framework .gform_footer input.gform_button.button { background: var(--wp--preset--color--brand); color: var(--wp--preset--color--base); font: 700 1rem/1.5 var(--wp--preset--font-family--body); letter-spacing: .1em; text-transform: uppercase; border-radius: var(--wp--custom--radius); border: 1px solid transparent; padding: 1rem 2rem; cursor: pointer; }
.nova-form .gform_footer { justify-content: center; }
.nova-form .gform_confirmation_message { padding: var(--wp--preset--spacing--40); background: var(--wp--preset--color--tint); border-radius: var(--wp--custom--radius); }
.nova-plain { padding-block: var(--wp--preset--spacing--60); }
@media (max-width: 900px) {
 .nova-header .wp-block-navigation__responsive-container:not(.is-menu-open):not(.hidden-by-default) { display: none; }
 .nova-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
 .wp-block-media-text.is-style-nova-service .wp-block-media-text__content { padding: var(--wp--preset--spacing--40); }
 .wp-block-table.is-style-nova-pricing :is(th, td) { padding: 1.25rem 1.5rem; }
}
@media (max-width: 781px) {
 .nova-cta .wp-block-buttons { justify-content: flex-start; }
 .nova-cta { gap: var(--wp--preset--spacing--40); }
}
@media (max-width: 600px) {
 .nova-header { padding-block: var(--wp--preset--spacing--30); }
 .nova-header .wp-block-site-title { font-size: var(--wp--preset--font-size--heading-2); }
 .wp-block-cover.is-style-nova-split > .wp-block-cover__background { width: 100%; }
 .wp-block-cover.is-style-nova-split > .wp-block-cover__image-background { left: 0; width: 100%; }
 .wp-block-cover.is-style-nova-split .wp-block-group.nova-hero-copy { text-align: center; width: 100%; padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--30); }
 .wp-block-media-text.is-style-nova-service .wp-block-media-text__content { padding: var(--wp--preset--spacing--40) 0 0; }
 .wp-block-media-text.is-style-nova-service .wp-block-media-text__media img { aspect-ratio: 1.2; }
 .nova-accordion .wp-block-accordion-panel { padding-inline: var(--wp--preset--spacing--30); }
 .wp-block-table.is-style-nova-pricing table { min-width: 32rem; }
 .nova-footer-legal { text-align: left; }
 .nova-title-intro h1, .nova-plain h1 { hyphens: auto; }
}

.nova-form-section > .wp-block-heading { text-align: center; }
.nova-footer .nova-nav-cta > .wp-block-navigation-item__content { background: var(--wp--preset--color--brand); color: var(--wp--preset--color--base); padding: 1rem 2rem; border-radius: var(--wp--custom--radius); }
.nova-hero-copy .wp-block-heading { color: var(--wp--preset--color--brand); }
@media (min-width: 601px) { .wp-block-cover.is-style-nova-split .wp-block-group.nova-hero-copy { padding-inline: clamp(1.5rem, 6.67vw, 6rem); } }

@media (max-width: 600px) { .wp-block-cover.is-style-nova-split > .wp-block-cover__background.has-background-dim-100 { opacity: .9; } }

.nova-accordion .wp-block-accordion-item.is-open > .wp-block-accordion-heading .wp-block-accordion-heading__toggle-icon { transform: none; }

.nova-section > .wp-block-columns.nova-staff { max-width: 1120px; }
.wp-block-post-content [id] { scroll-margin-block-start: 6rem; }
.wp-block-button.is-style-outline .wp-block-button__link { border-width: 1px; }
.wp-block-button.is-style-outline .wp-block-button__link:not(.has-text-color) { color: var(--wp--preset--color--brand); }
.wp-block-table[tabindex]:focus-visible { outline: 3px solid var(--wp--preset--color--brand); outline-offset: 4px; }
