/*
Theme Name: Nova Installazione
Theme URI: https://novainstallazione.it
Author: Nova Installazione
Description: Lead generation engine for Nova Installazione — fotovoltaico, accumulo, assistenza, riparazione inverter ed efficienza energetica. Built with privacy-by-design, WhatsApp integration, and GDPR compliance at its core.
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: nova-installazione
Tags: block-patterns, full-site-editing, wide-blocks, custom-colors, custom-fonts, one-column, grid-layout, blog
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 7.4
*/

/* ==========================================================================
   1. BASE RESETS & BODY
   ========================================================================== */

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    scroll-behavior: smooth;
}

body {
    overflow-x: hidden;
}

:root,
body,
.wp-site-blocks {
    overflow: visible;
}

/* ==========================================================================
   2. TYPOGRAPHY POLISH
   ========================================================================== */

/* Body copy — comfortable reading */
p {
    max-width: 72ch;
}

/* Tighten up heading spacing above */
h1, h2, h3, h4, h5, h6,
.wp-block-heading {
    margin-block-start: 0;
}

/* Strong emphasis */
strong, b {
    font-weight: 600;
}

/* Small / metadata text */
small {
    font-size: var(--wp--preset--font-size--x-small);
    color: var(--wp--preset--color--grigio-tecnico);
    letter-spacing: 0.04em;
}

/* Figcaption refinement */
figcaption {
    font-family: var(--wp--preset--font-family--poppins);
    font-size: var(--wp--preset--font-size--x-small);
    color: var(--wp--preset--color--grigio-tecnico);
    margin-top: var(--wp--preset--spacing--20);
    letter-spacing: 0.02em;
}

/* ==========================================================================
   3. LINK STYLES
   ========================================================================== */

a {
    transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

/* Underline offset for body links */
.wp-site-blocks :where(p, li, td, dd) a {
    text-decoration-thickness: 1px;
    text-underline-offset: 0.2em;
}

.wp-site-blocks :where(p, li, td, dd) a:hover {
    text-decoration-thickness: 2px;
}

/* ==========================================================================
   4. BUTTON STYLES
   ========================================================================== */

.wp-block-button__link {
    transition: background-color 0.25s ease, color 0.25s ease, transform 0.2s ease, box-shadow 0.25s ease;
    font-family: var(--wp--preset--font-family--montserrat);
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    border: none;
    cursor: pointer;
    line-height: 1.2;
}

.wp-block-button__link:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(17, 17, 17, 0.15);
}

.wp-block-button__link:active {
    transform: translateY(0);
    box-shadow: none;
}

/* Outline button variant */
.wp-block-button.is-style-outline .wp-block-button__link {
    background-color: transparent;
    border: 2px solid currentColor;
    transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease, transform 0.2s ease;
}

.wp-block-button.is-style-outline .wp-block-button__link:hover {
    background-color: var(--wp--preset--color--verde-scuro);
    color: var(--wp--preset--color--white);
    border-color: var(--wp--preset--color--verde-scuro);
    transform: translateY(-2px);
}

/* WhatsApp CTA button — add className "is-style-whatsapp" to any wp:button */
.wp-block-button.is-style-whatsapp .wp-block-button__link {
    background-color: #25D366;
    color: var(--wp--preset--color--white);
}

.wp-block-button.is-style-whatsapp .wp-block-button__link:hover {
    background-color: #1DA851;
    color: var(--wp--preset--color--white);
}

/* ==========================================================================
   5. HEADER & NAVIGATION
   ========================================================================== */

/* Site title */
.wp-block-site-title a {
    transition: color 0.2s ease;
}

/* Navigation links */
.wp-block-navigation a {
    transition: color 0.2s ease;
}

.wp-block-navigation a:hover {
    color: var(--wp--preset--color--verde-energia);
}

/* Navigation highlight link */
.wp-block-navigation .highlight a,
.wp-block-navigation a.highlight,
.wp-block-navigation-item.highlight > .wp-block-navigation-item__content {
    color: var(--wp--preset--color--verde-energia);
}

/* Navigation submenu (dropdown) */
.wp-block-navigation-submenu {
    position: relative;
}

.wp-block-navigation__submenu-container {
    background-color: var(--wp--preset--color--nero-carbon);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-top: 2px solid var(--wp--preset--color--verde-energia);
    min-width: 220px;
    padding: var(--wp--preset--spacing--20) 0;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
}

.wp-block-navigation__submenu-container .wp-block-navigation-item__content {
    padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--40);
    font-size: var(--wp--preset--font-size--x-small);
    font-weight: 500;
    letter-spacing: 0.06em;
    display: block;
    white-space: nowrap;
    transition: color 0.2s ease, background-color 0.2s ease;
}

.wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
    color: var(--wp--preset--color--verde-energia);
    background-color: rgba(102, 204, 68, 0.08);
}

/* Submenu indicator arrow */
.wp-block-navigation-submenu__toggle[aria-expanded]::after {
    border-color: var(--wp--preset--color--grigio-chiaro);
}

.wp-block-navigation-submenu__toggle[aria-expanded]:hover::after {
    border-color: var(--wp--preset--color--verde-energia);
}

/* Mobile hamburger overlay — full-screen */
.wp-block-navigation__responsive-container.is-menu-open {
    padding: var(--wp--preset--spacing--80) var(--wp--preset--spacing--40) var(--wp--preset--spacing--60);
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
    gap: var(--wp--preset--spacing--50);
    align-items: center;
    text-align: center;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
    font-size: var(--wp--preset--font-size--x-large);
    min-height: 48px;
    display: inline-flex;
    align-items: center;
}

/* Mobile hamburger button — adequate touch target */
.wp-block-navigation__responsive-container-open {
    min-width: 44px;
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.wp-block-navigation__responsive-container-close {
    min-width: 44px;
    min-height: 44px;
}

/* ==========================================================================
   6. HERO & COVER TREATMENTS
   ========================================================================== */

/* Hero cover — full viewport */
.wp-block-cover.hero-cover {
    min-height: 100vh;
}

/* Hero content block — for scroll-fade effect */
.hero-content {
    position: relative;
    z-index: 2;
}

/* Tech label — diagnostic/industrial micro label above hero title */
.tech-label {
    font-family: var(--wp--preset--font-family--poppins);
    font-size: var(--wp--preset--font-size--x-small);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    color: var(--wp--preset--color--verde-energia);
    border-bottom: 1px solid rgba(102, 204, 68, 0.3);
    padding-bottom: var(--wp--preset--spacing--30);
    display: inline-block;
}

/* Data highlight — copper accent for slashes and key figures */
.data-highlight {
    color: var(--wp--preset--color--copper-accent);
}

/* Status dot — pulsing indicator for CTA buttons */
.status-dot {
    width: 6px;
    height: 6px;
    background-color: var(--wp--preset--color--nero-carbon);
    border-radius: 50%;
    display: inline-block;
    margin-right: var(--wp--preset--spacing--20);
    box-shadow: 0 0 0 2px var(--wp--preset--color--verde-energia), 0 0 0 4px var(--wp--preset--color--nero-carbon);
}

/* Tech footer row — stats/status at bottom of hero */
.tech-footer {
    border-top: 1px solid rgba(255, 255, 255, 0.15);
    padding-top: var(--wp--preset--spacing--50);
}

.tech-row-label {
    font-family: var(--wp--preset--font-family--poppins);
    font-size: var(--wp--preset--font-size--x-small);
    text-transform: uppercase;
    letter-spacing: 0.15em;
    font-weight: 600;
    opacity: 0.5;
}

.tech-row-value {
    font-family: var(--wp--preset--font-family--poppins);
    font-size: var(--wp--preset--font-size--small);
    font-weight: 700;
    letter-spacing: 0.05em;
}

.active-status {
    color: var(--wp--preset--color--verde-energia);
}

/* ==========================================================================
   7. IMAGE TREATMENTS
   ========================================================================== */

/* Industrial / technical imagery — high contrast B&W filter */
.wp-block-image.is-style-industrial img,
.wp-block-cover.is-style-industrial img {
    filter: grayscale(100%) contrast(140%) brightness(0.85);
    transition: filter 0.4s ease;
}

.wp-block-image.is-style-industrial:hover img {
    filter: grayscale(50%) contrast(120%) brightness(0.9);
}

/* Standard image treatment — subtle border radius zero for brutalist feel */
.wp-block-image img {
    border-radius: 0;
}

/* Gallery items — zero gap brutalist grid */
.wp-block-gallery.is-style-industrial {
    gap: 2px !important;
}

.wp-block-gallery.is-style-industrial .wp-block-image img {
    filter: grayscale(100%) contrast(130%) brightness(0.9);
    transition: filter 0.3s ease;
}

.wp-block-gallery.is-style-industrial .wp-block-image:hover img {
    filter: grayscale(0%) contrast(100%) brightness(1);
}

/* Grid overlay effect — for decorative image panels */
.grid-overlay {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(224, 224, 224, 0.15) 1px, transparent 1px),
        linear-gradient(90deg, rgba(224, 224, 224, 0.15) 1px, transparent 1px);
    background-size: 64px 64px;
    background-position: center center;
    z-index: 10;
    pointer-events: none;
}

/* Crosshair decorative elements */
.crosshair {
    position: absolute;
    width: 32px;
    height: 32px;
    border: 1px solid var(--wp--preset--color--verde-energia);
    z-index: 12;
    pointer-events: none;
}

.crosshair.ch-top-left {
    top: 25%;
    left: 15%;
    border-right: none;
    border-bottom: none;
}

.crosshair.ch-bottom-right {
    bottom: 25%;
    right: 15%;
    border-left: none;
    border-top: none;
}

/* Vignette overlay */
.vignette {
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at center, transparent 30%, rgba(13, 17, 23, 0.7) 100%);
    z-index: 11;
    pointer-events: none;
}

/* ==========================================================================
   8. CARD & SURFACE PATTERNS
   ========================================================================== */

/* Service card — sharp corners, industrial feel */
.service-card {
    border: 1px solid rgba(107, 114, 128, 0.2);
    transition: border-color 0.3s ease, box-shadow 0.3s ease, transform 0.2s ease;
}

.service-card:hover {
    border-color: var(--wp--preset--color--verde-energia);
    box-shadow: 0 8px 32px rgba(17, 17, 17, 0.08);
    transform: translateY(-4px);
}

/* Feature card with left accent stripe */
.feature-stripe {
    border-left: 4px solid var(--wp--preset--color--verde-energia);
    padding-left: var(--wp--preset--spacing--40);
}

/* Dark surface panel */
.surface-dark {
    background-color: var(--wp--preset--color--nero-carbon);
    color: var(--wp--preset--color--grigio-chiaro);
}

.surface-dark a {
    color: var(--wp--preset--color--verde-energia);
}

.surface-dark a:hover {
    color: var(--wp--preset--color--white);
}

/* Forest/verde-scuro surface */
.surface-forest {
    background-color: var(--wp--preset--color--verde-scuro);
    color: var(--wp--preset--color--white);
}

.surface-forest a {
    color: var(--wp--preset--color--verde-energia);
}

/* Hero dark surface — deepest background */
.surface-hero-dark {
    background-color: var(--wp--preset--color--hero-dark);
    color: var(--wp--preset--color--grigio-chiaro);
}

/* ==========================================================================
   9. SEPARATOR & DIVIDER TREATMENTS
   ========================================================================== */

.wp-block-separator {
    opacity: 1;
}

.wp-block-separator:not(.is-style-wide):not(.is-style-dots) {
    max-width: 120px;
}

.wp-block-separator.is-style-wide {
    max-width: 100%;
}

/* ==========================================================================
   10. QUOTE & PULLQUOTE
   ========================================================================== */

.wp-block-quote cite,
.wp-block-pullquote cite {
    font-family: var(--wp--preset--font-family--poppins);
    font-size: var(--wp--preset--font-size--small);
    font-style: normal;
    font-weight: 600;
    color: var(--wp--preset--color--grigio-tecnico);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.wp-block-pullquote {
    border-top: 4px solid var(--wp--preset--color--verde-energia);
    border-bottom: 4px solid var(--wp--preset--color--verde-energia);
    padding: var(--wp--preset--spacing--50) 0;
}

.wp-block-pullquote blockquote p {
    font-family: var(--wp--preset--font-family--montserrat);
    font-size: var(--wp--preset--font-size--x-large);
    font-weight: 600;
    line-height: 1.3;
}

/* ==========================================================================
   11. LIST STYLES
   ========================================================================== */

.wp-block-list {
    padding-left: 1.25em;
}

.wp-block-list li {
    margin-bottom: var(--wp--preset--spacing--10);
}

.wp-block-list li::marker {
    color: var(--wp--preset--color--verde-energia);
}

/* Check-list style */
.is-style-checkmark {
    list-style: none;
    padding-left: 0;
}

.is-style-checkmark li {
    position: relative;
    padding-left: 1.75em;
}

.is-style-checkmark li::before {
    content: "\2713";
    position: absolute;
    left: 0;
    color: var(--wp--preset--color--verde-energia);
    font-weight: 700;
}

/* ==========================================================================
   12. TABLE STYLES
   ========================================================================== */

.wp-block-table table {
    border-collapse: collapse;
    width: 100%;
}

.wp-block-table td,
.wp-block-table th {
    border: 1px solid rgba(107, 114, 128, 0.2);
    padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
    font-size: var(--wp--preset--font-size--small);
}

.wp-block-table thead {
    background-color: var(--wp--preset--color--nero-carbon);
    color: var(--wp--preset--color--grigio-chiaro);
}

.wp-block-table thead th {
    font-family: var(--wp--preset--font-family--montserrat);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-size: var(--wp--preset--font-size--x-small);
    border-color: rgba(255, 255, 255, 0.1);
}

.wp-block-table tbody tr:nth-child(even) {
    background-color: rgba(242, 244, 247, 0.5);
}

/* ==========================================================================
   13. FORM STYLING
   ========================================================================== */

/* Universal form inputs */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="url"],
select,
textarea {
    font-family: var(--wp--preset--font-family--poppins);
    font-size: var(--wp--preset--font-size--medium);
    font-weight: 400;
    color: var(--wp--preset--color--nero-carbon);
    background-color: var(--wp--preset--color--white);
    border: 2px solid rgba(107, 114, 128, 0.3);
    border-radius: 0;
    padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
    width: 100%;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    -webkit-appearance: none;
    appearance: none;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
input[type="number"]:focus,
input[type="url"]:focus,
select:focus,
textarea:focus {
    outline: none;
    border-color: var(--wp--preset--color--verde-energia);
    box-shadow: 0 0 0 3px rgba(102, 204, 68, 0.15);
}

/* Labels */
label {
    font-family: var(--wp--preset--font-family--poppins);
    font-size: var(--wp--preset--font-size--small);
    font-weight: 600;
    color: var(--wp--preset--color--nero-carbon);
    display: block;
    margin-bottom: var(--wp--preset--spacing--10);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* Checkbox & radio */
input[type="checkbox"],
input[type="radio"] {
    accent-color: var(--wp--preset--color--verde-energia);
    width: 18px;
    height: 18px;
    margin-right: var(--wp--preset--spacing--20);
    vertical-align: middle;
}

/* Consent blocks */
.consent-block {
    border: 1px solid rgba(107, 114, 128, 0.2);
    padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
    margin-bottom: var(--wp--preset--spacing--30);
    background-color: var(--wp--preset--color--white);
}

.consent-block label {
    text-transform: none;
    font-weight: 400;
    font-size: var(--wp--preset--font-size--small);
    display: inline;
    letter-spacing: 0;
}

.consent-required {
    border-left: 3px solid var(--wp--preset--color--verde-energia);
}

.consent-optional {
    border-left: 3px solid var(--wp--preset--color--grigio-tecnico);
}

/* Form submit button */
.nova-lead-form button[type="submit"],
.form-submit-btn {
    font-family: var(--wp--preset--font-family--montserrat);
    font-weight: 700;
    font-size: var(--wp--preset--font-size--small);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    background-color: var(--wp--preset--color--verde-energia);
    color: var(--wp--preset--color--nero-carbon);
    border: none;
    border-radius: 0;
    padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--50);
    cursor: pointer;
    transition: background-color 0.25s ease, color 0.25s ease, transform 0.2s ease;
}

.nova-lead-form button[type="submit"]:hover,
.form-submit-btn:hover {
    background-color: var(--wp--preset--color--verde-scuro);
    color: var(--wp--preset--color--white);
    transform: translateY(-2px);
}

/* ==========================================================================
   14. PRIVACY PROMISE SECTION
   ========================================================================== */

.privacy-promise {
    border-left: 4px solid var(--wp--preset--color--verde-energia);
    padding-left: var(--wp--preset--spacing--40);
    font-style: italic;
}

.privacy-promise p {
    font-family: var(--wp--preset--font-family--poppins);
    font-size: var(--wp--preset--font-size--medium);
    color: var(--wp--preset--color--nero-carbon);
    line-height: 1.65;
}

/* ==========================================================================
   15. THANK YOU PAGE
   ========================================================================== */

.thank-you-icon {
    display: inline-flex;
    width: 80px;
    height: 80px;
    border: 3px solid var(--wp--preset--color--verde-energia);
    align-items: center;
    justify-content: center;
    margin-bottom: var(--wp--preset--spacing--40);
}

.thank-you-icon::after {
    content: "\2713";
    font-size: var(--wp--preset--font-size--xx-large);
    color: var(--wp--preset--color--verde-energia);
    font-weight: 900;
}

/* ==========================================================================
   16. MOBILE STICKY BAR
   ========================================================================== */

.mobile-sticky-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 90;
    display: none;
    background-color: var(--wp--preset--color--nero-carbon);
    border-top: 2px solid var(--wp--preset--color--verde-energia);
    padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
}

@media (max-width: 781px) {
    .mobile-sticky-bar {
        display: flex;
        justify-content: space-around;
        align-items: center;
        gap: var(--wp--preset--spacing--20);
    }
}

.mobile-sticky-bar a {
    font-family: var(--wp--preset--font-family--poppins);
    font-size: var(--wp--preset--font-size--x-small);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--wp--preset--color--grigio-chiaro);
    text-decoration: none;
    text-align: center;
    flex: 1;
    padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--20);
    min-height: 48px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    transition: color 0.2s ease;
}

.mobile-sticky-bar a:hover {
    color: var(--wp--preset--color--verde-energia);
}

/* ==========================================================================
   17. COOKIE BANNER — FAIR UI (no dark patterns)
   ========================================================================== */

.cookie-banner {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 999;
    background-color: var(--wp--preset--color--nero-carbon);
    color: var(--wp--preset--color--grigio-chiaro);
    padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--50);
    font-family: var(--wp--preset--font-family--poppins);
    font-size: var(--wp--preset--font-size--small);
}

.cookie-banner-buttons {
    display: flex;
    gap: var(--wp--preset--spacing--30);
    flex-wrap: wrap;
    margin-top: var(--wp--preset--spacing--30);
}

/* Both Accept and Reject share same visual weight — no dark patterns */
.cookie-banner-buttons button {
    font-family: var(--wp--preset--font-family--montserrat);
    font-weight: 700;
    font-size: var(--wp--preset--font-size--x-small);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--40);
    border: 2px solid var(--wp--preset--color--grigio-chiaro);
    background: transparent;
    color: var(--wp--preset--color--grigio-chiaro);
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.cookie-banner-buttons button:hover {
    background-color: var(--wp--preset--color--grigio-chiaro);
    color: var(--wp--preset--color--nero-carbon);
}

.cookie-banner-buttons button.cookie-accept {
    background-color: var(--wp--preset--color--verde-energia);
    color: var(--wp--preset--color--nero-carbon);
    border-color: var(--wp--preset--color--verde-energia);
}

.cookie-banner-buttons button.cookie-accept:hover {
    background-color: var(--wp--preset--color--verde-scuro);
    color: var(--wp--preset--color--white);
    border-color: var(--wp--preset--color--verde-scuro);
}

/* ==========================================================================
   18. LEAD SCORING BADGES
   ========================================================================== */

.lead-badge {
    font-family: var(--wp--preset--font-family--poppins);
    font-size: var(--wp--preset--font-size--x-small);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    padding: var(--wp--preset--spacing--10) var(--wp--preset--spacing--30);
    display: inline-block;
}

.lead-badge-hot {
    background-color: var(--wp--preset--color--verde-energia);
    color: var(--wp--preset--color--nero-carbon);
}

.lead-badge-warm {
    background-color: var(--wp--preset--color--copper-accent);
    color: var(--wp--preset--color--white);
}

.lead-badge-cold {
    background-color: var(--wp--preset--color--grigio-tecnico);
    color: var(--wp--preset--color--white);
}

/* ==========================================================================
   19. SEARCH BLOCK
   ========================================================================== */

.wp-block-search__button {
    background-color: var(--wp--preset--color--verde-energia);
    color: var(--wp--preset--color--nero-carbon);
    font-family: var(--wp--preset--font-family--montserrat);
    font-weight: 700;
    font-size: var(--wp--preset--font-size--small);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    border: none;
    border-radius: 0;
    padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
    cursor: pointer;
    transition: background-color 0.25s ease, color 0.25s ease;
}

.wp-block-search__button:hover {
    background-color: var(--wp--preset--color--verde-scuro);
    color: var(--wp--preset--color--white);
}

/* ==========================================================================
   20. POST / ARCHIVE STYLING
   ========================================================================== */

/* Post meta row */
.wp-block-post-date,
.wp-block-post-terms {
    line-height: 1.4;
}

/* Featured image in archive/post */
.wp-block-post-featured-image img {
    border-radius: 0;
    width: 100%;
    height: auto;
    object-fit: cover;
}

/* Pagination */
.wp-block-query-pagination {
    font-family: var(--wp--preset--font-family--montserrat);
    font-weight: 700;
    font-size: var(--wp--preset--font-size--small);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.wp-block-query-pagination a {
    color: var(--wp--preset--color--nero-carbon);
    text-decoration: none;
    transition: color 0.2s ease;
}

.wp-block-query-pagination a:hover {
    color: var(--wp--preset--color--verde-energia);
}

/* ==========================================================================
   21. FOOTER
   ========================================================================== */

/* Footer credit line */
.footer-credit {
    font-size: var(--wp--preset--font-size--x-small);
    letter-spacing: 0.04em;
    opacity: 0.7;
}

.footer-credit a {
    text-decoration-thickness: 1px;
    text-underline-offset: 0.15em;
}

/* ==========================================================================
   22. MEDIA TEXT BLOCK
   ========================================================================== */

.wp-block-media-text {
    gap: 0;
}

.wp-block-media-text .wp-block-media-text__media img {
    border-radius: 0;
    object-fit: cover;
    width: 100%;
    height: 100%;
}

/* ==========================================================================
   23. COVER BLOCK POLISH
   ========================================================================== */

.wp-block-cover {
    overflow: hidden;
}

/* Ensure cover overlay is always above the image but below content */
.wp-block-cover .wp-block-cover__background,
.wp-block-cover .has-background-dim {
    z-index: 1;
}

.wp-block-cover .wp-block-cover__inner-container {
    z-index: 2;
    position: relative;
}

/* ==========================================================================
   24. CODE BLOCK
   ========================================================================== */

.wp-block-code code {
    font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace;
    font-size: var(--wp--preset--font-size--small);
    line-height: 1.5;
}

/* ==========================================================================
   25. DETAILS / ACCORDION (FAQ)
   ========================================================================== */

.wp-block-details {
    border-bottom: 1px solid rgba(107, 114, 128, 0.2);
    padding: var(--wp--preset--spacing--30) 0;
}

.wp-block-details summary {
    font-family: var(--wp--preset--font-family--montserrat);
    font-weight: 700;
    font-size: var(--wp--preset--font-size--medium);
    cursor: pointer;
    color: var(--wp--preset--color--nero-carbon);
    transition: color 0.2s ease;
    list-style: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.wp-block-details summary:hover {
    color: var(--wp--preset--color--verde-scuro);
}

.wp-block-details summary::after {
    content: "+";
    font-size: var(--wp--preset--font-size--large);
    font-weight: 700;
    color: var(--wp--preset--color--verde-energia);
    transition: transform 0.2s ease;
    flex-shrink: 0;
    margin-left: var(--wp--preset--spacing--30);
}

.wp-block-details[open] summary::after {
    content: "\2212";
}

.wp-block-details summary::-webkit-details-marker {
    display: none;
}

/* ==========================================================================
   26. SELECTION HIGHLIGHT
   ========================================================================== */

::selection {
    background-color: var(--wp--preset--color--verde-energia);
    color: var(--wp--preset--color--nero-carbon);
}

::-moz-selection {
    background-color: var(--wp--preset--color--verde-energia);
    color: var(--wp--preset--color--nero-carbon);
}

/* ==========================================================================
   27. FOCUS STYLES (Accessibility)
   ========================================================================== */

:focus-visible {
    outline: 2px solid var(--wp--preset--color--verde-energia);
    outline-offset: 2px;
}

/* ==========================================================================
   28. PRINT STYLES
   ========================================================================== */

@media print {
    .mobile-sticky-bar,
    .cookie-banner,
    .wp-block-navigation__responsive-container-open {
        display: none !important;
    }

    body {
        color: #000;
        background: #fff;
    }
}

/* ---------- Loop layout utilities ---------- */
/* These classes are wired to the wp:query blocks emitted by content/pages and
   templates. Do not rename. Tune colours and spacing to theme.json tokens. */

/* Horizontal scrollable rail */
.wp-block-query.is-style-loop-rail .wp-block-post-template {
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: thin;
    padding-bottom: var(--wp--preset--spacing--20);
}
.wp-block-query.is-style-loop-rail .wp-block-post-template > * {
    flex: 0 0 320px;
    scroll-snap-align: start;
}

/* Compact list with hairline row dividers */
.wp-block-query.is-style-loop-list .wp-block-post-template > * {
    border-bottom: 1px solid rgba(107, 114, 128, 0.2);
    padding-block: var(--wp--preset--spacing--30);
}
.wp-block-query.is-style-loop-list .wp-block-post-template > *:last-child {
    border-bottom: 0;
}

/* Zigzag — flip the columns inside every even entry */
.wp-block-query.is-style-loop-zigzag .wp-block-post-template > *:nth-child(even) .wp-block-columns {
    flex-direction: row-reverse;
}

/* Timeline — vertical line with node markers per entry */
.wp-block-query.is-style-loop-timeline .wp-block-post-template {
    position: relative;
    padding-inline-start: 2.5rem;
}
.wp-block-query.is-style-loop-timeline .wp-block-post-template::before {
    content: '';
    position: absolute;
    inset-block: 0;
    inset-inline-start: 0.5rem;
    width: 2px;
    background: var(--wp--preset--color--grigio-tecnico);
    opacity: 0.25;
}
.wp-block-query.is-style-loop-timeline .wp-block-post-template > * {
    position: relative;
}
.wp-block-query.is-style-loop-timeline .wp-block-post-template > *::before {
    content: '';
    position: absolute;
    inset-inline-start: -2.25rem;
    inset-block-start: 0.6rem;
    width: 1rem;
    height: 1rem;
    border: 2px solid var(--wp--preset--color--verde-energia);
    border-radius: 50%;
    background: var(--wp--preset--color--grigio-chiaro);
}

/* Magazine — first child spans 2 columns of the grid */
.wp-block-query.is-style-loop-magazine .wp-block-post-template > *:first-child {
    grid-column: span 2;
}
@media (max-width: 600px) {
    .wp-block-query.is-style-loop-magazine .wp-block-post-template > *:first-child {
        grid-column: auto;
    }
}

/* ==========================================================================
   29. RESPONSIVE FINE-TUNING — MOBILE FIRST
   ========================================================================== */

/* ---- Tablet (max-width: 781px) ---- */
@media (max-width: 781px) {

    /* Global spacing reduction */
    .wp-site-blocks {
        --wp--style--root--padding-left: 1.25rem;
        --wp--style--root--padding-right: 1.25rem;
    }

    /* Columns → single column stack */
    .wp-block-columns {
        flex-direction: column !important;
        gap: var(--wp--preset--spacing--40) !important;
    }

    .wp-block-columns > .wp-block-column {
        flex-basis: 100% !important;
        width: 100% !important;
    }

    /* Media-text stacking */
    .wp-block-media-text {
        grid-template-columns: 1fr !important;
    }

    .wp-block-media-text .wp-block-media-text__media {
        grid-row: 1;
    }

    .wp-block-media-text .wp-block-media-text__content {
        grid-row: 2;
    }

    /* Hero split — stack vertically */
    .wp-block-columns.alignfull > .wp-block-column,
    .alignfull > .wp-block-columns > .wp-block-column {
        min-height: auto !important;
    }

    /* Hero image panel — cap height on mobile */
    .wp-block-columns.alignfull > .wp-block-column .wp-block-image img,
    .wp-block-columns.alignfull > .wp-block-column .wp-block-group[style*="min-height: 100vh"] {
        min-height: 50vh !important;
        max-height: 60vh;
    }

    /* Reduce section padding on mobile */
    .wp-block-group.alignfull[style*="padding-top:var(--wp--preset--spacing--80)"],
    .wp-block-group.alignfull[style*="padding-top: var(--wp--preset--spacing--80)"] {
        padding-top: var(--wp--preset--spacing--60) !important;
    }

    .wp-block-group.alignfull[style*="padding-bottom:var(--wp--preset--spacing--80)"],
    .wp-block-group.alignfull[style*="padding-bottom: var(--wp--preset--spacing--80)"] {
        padding-bottom: var(--wp--preset--spacing--60) !important;
    }

    .wp-block-group[style*="padding-left:var(--wp--preset--spacing--60)"],
    .wp-block-group[style*="padding-left: var(--wp--preset--spacing--60)"] {
        padding-left: var(--wp--preset--spacing--40) !important;
    }

    .wp-block-group[style*="padding-right:var(--wp--preset--spacing--60)"],
    .wp-block-group[style*="padding-right: var(--wp--preset--spacing--60)"] {
        padding-right: var(--wp--preset--spacing--40) !important;
    }

    /* Buttons — full width on mobile */
    .wp-block-buttons {
        flex-direction: column !important;
        width: 100%;
    }

    .wp-block-button {
        width: 100%;
    }

    .wp-block-button__link {
        width: 100%;
        text-align: center;
        justify-content: center;
        display: flex;
    }

    /* Touch targets — minimum 44px */
    .wp-block-button__link,
    .form-submit-btn,
    .nova-lead-form__submit-btn,
    .nova-preventivo-form__submit,
    .nova-manutenzione-form__submit,
    .nova-assistenza-form__submit,
    .nova-riparazione-form__submit,
    .nova-checkup-form__submit,
    .nova-simulnova-form__submit,
    .nova-salva-bolletta-form__submit,
    button[type="submit"] {
        min-height: 48px;
        min-width: 48px;
    }

    /* Navigation links — larger touch target */
    .wp-block-navigation a {
        min-height: 44px;
        display: inline-flex;
        align-items: center;
    }

    /* Tables — horizontal scroll */
    .wp-block-table {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    /* Service card grid — 1 column on tablet */
    .wp-block-post-template[style*="grid-template-columns"] {
        grid-template-columns: 1fr !important;
    }

    /* Stats counters — 2x2 grid on tablet */
    .wp-block-columns:has(> .wp-block-column:nth-child(4)) {
        flex-wrap: wrap !important;
        flex-direction: row !important;
    }

    .wp-block-columns:has(> .wp-block-column:nth-child(4)) > .wp-block-column {
        flex-basis: calc(50% - var(--wp--preset--spacing--30)) !important;
        min-width: calc(50% - var(--wp--preset--spacing--30)) !important;
    }

    /* Footer — stack columns */
    footer .wp-block-columns {
        gap: var(--wp--preset--spacing--50) !important;
    }

    /* Tech footer row — wrap */
    .tech-footer {
        flex-direction: column !important;
        gap: var(--wp--preset--spacing--30);
        align-items: flex-start !important;
    }

    .tech-footer .wp-block-group[style*="margin-right"] {
        margin-right: 0 !important;
    }

    .tech-footer .wp-block-group[style*="margin-left"] {
        margin-left: 0 !important;
    }

    /* Consent blocks — comfortable touch */
    .consent-block {
        padding: var(--wp--preset--spacing--40) !important;
    }

    .consent-block input[type="checkbox"] {
        width: 22px !important;
        height: 22px !important;
    }

    /* Form two-column rows → single column */
    .nova-preventivo-form__grid,
    .nova-simulnova-form__grid,
    .nova-checkup-form__grid,
    .nova-salva-bolletta-form__row--two {
        grid-template-columns: 1fr !important;
    }

    .nova-manutenzione-form__row--two,
    .nova-assistenza-form__row {
        flex-direction: column !important;
    }

    .nova-riparazione-form__grid {
        grid-template-columns: 1fr !important;
    }

    /* Prevent horizontal overflow */
    body {
        padding-bottom: 70px;
    }

    img {
        max-width: 100%;
        height: auto;
    }

    /* Pullquote — tighter on mobile */
    .wp-block-pullquote blockquote p {
        font-size: var(--wp--preset--font-size--large) !important;
    }

    /* FAQ details — better touch spacing */
    .wp-block-details {
        padding: var(--wp--preset--spacing--40) 0;
    }

    .wp-block-details summary {
        padding-right: var(--wp--preset--spacing--40);
    }

    /* Loop zigzag — no reverse on mobile */
    .wp-block-query.is-style-loop-zigzag .wp-block-post-template > *:nth-child(even) .wp-block-columns {
        flex-direction: column !important;
    }

    /* Sticky bar padding for body */
    .wp-block-nova-whatsapp-sticky-bar ~ * {
        /* Reserve space at bottom for sticky bar */
    }
}

/* ---- Small phones (max-width: 480px) ---- */
@media (max-width: 480px) {

    /* Cover blocks — reduce height */
    .wp-block-cover {
        min-height: 70vh;
    }

    /* Even tighter root padding */
    .wp-site-blocks {
        --wp--style--root--padding-left: 1rem;
        --wp--style--root--padding-right: 1rem;
    }

    /* H1 sizing cap */
    h1,
    .wp-block-heading:is(h1) {
        font-size: clamp(1.75rem, 8vw, 2.25rem) !important;
    }

    /* H2 sizing cap */
    h2,
    .wp-block-heading:is(h2) {
        font-size: clamp(1.35rem, 6vw, 1.75rem) !important;
    }

    /* Stat counters — single column on very small screens */
    .wp-block-columns:has(> .wp-block-column:nth-child(4)) > .wp-block-column {
        flex-basis: 100% !important;
        min-width: 100% !important;
    }

    /* Footer social icons — more spacing */
    .wp-block-social-links {
        gap: var(--wp--preset--spacing--30);
    }

    /* Privacy promise — tighter padding */
    .privacy-promise {
        padding-left: var(--wp--preset--spacing--30);
    }

    /* Feature stripe — tighter padding */
    .feature-stripe {
        padding-left: var(--wp--preset--spacing--30);
    }

    /* Form actions — stack vertically */
    .nova-manutenzione-form__actions,
    .nova-assistenza-form__actions,
    .nova-riparazione-form__actions,
    .nova-salva-bolletta-form__actions,
    .nova-lead-form__actions {
        flex-direction: column;
        align-items: stretch;
    }

    .nova-manutenzione-form__whatsapp-btn.is-visible,
    .nova-salva-bolletta-form__whatsapp-link,
    .nova-riparazione-form__whatsapp-link,
    .nova-assistenza-form__whatsapp-link {
        width: 100%;
        justify-content: center;
        text-align: center;
    }

    /* Success panel actions — stack */
    .nova-preventivo-form__success-actions,
    .nova-simulnova-form__success-actions,
    .nova-checkup-form__success-actions,
    .nova-assistenza-form__success-actions,
    .nova-riparazione-form__success-panel .nova-riparazione-form__success-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .nova-preventivo-form__wa-btn,
    .nova-preventivo-form__back-btn,
    .nova-simulnova-form__whatsapp-btn,
    .nova-simulnova-form__back-btn,
    .nova-checkup-form__whatsapp-btn,
    .nova-checkup-form__back-btn,
    .nova-riparazione-form__whatsapp-link,
    .nova-riparazione-form__back-link {
        width: 100%;
        text-align: center;
        justify-content: center;
    }
}

/* ---- Print cleanup ---- */
@media (max-width: 781px) and (hover: none) {
    /* Remove hover effects on touch devices */
    .service-card:hover {
        transform: none;
        box-shadow: none;
    }

    .wp-block-button__link:hover {
        transform: none;
        box-shadow: none;
    }
}