/* New Forge — stili del tema (frontend + editor) */

:root {
  --blu: var(--wp--preset--color--blu);
  --blu-scuro: var(--wp--preset--color--blu-scuro);
  --notte: var(--wp--preset--color--notte);
  --giallo: var(--wp--preset--color--giallo);
  --inchiostro: var(--wp--preset--color--inchiostro);
  --grigio: var(--wp--preset--color--grigio);
  --chiaro: var(--wp--preset--color--chiaro);
  --titoli: var(--wp--preset--font-family--manrope);
  --sezione: clamp(4.5rem, 8vw, 6rem);
}

:focus-visible { outline: 3px solid var(--giallo); outline-offset: 3px; }
html { scroll-behavior: smooth; scroll-padding-top: 100px; }

/* ---------- Struttura pagina ---------- */
.wp-site-blocks > * { margin-block: 0; }
.contenuto-sezioni > .alignfull { margin-block: 0; }
.pagina-standard { padding-block: clamp(2.5rem, 6vw, 4.5rem); }
.pagina-standard .wp-block-post-title { margin-bottom: 1.5rem; }
.data-articolo { color: var(--grigio); font-size: .95rem; }
.articolo-elenco { border-top: 1px solid #dbe4e9; margin-bottom: 2rem; padding-top: 1.25rem; }
.articolo-elenco h2 { font-size: 1.6rem; }

.sezione { padding-block: var(--sezione); }
.occhiello { color: var(--blu); font-size: .78rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.occhiello + .wp-block-heading { margin-top: 1rem; }
.testo-grande, .testo-grande p { color: var(--grigio); font-size: var(--wp--preset--font-size--large); }

/* Nei titoli, il grassetto è il colore di accento: blu su chiaro, giallo su scuro. */
.wp-block-heading strong { color: var(--blu); font-weight: inherit; }
.wp-block-cover .wp-block-heading strong,
.fascia-cta .wp-block-heading strong,
.fascia-settori .wp-block-heading strong { color: var(--giallo); }

/* ---------- Testata ---------- */
header.wp-block-template-part { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 50; }
.testata { background: var(--blu); }
.testata-interno { gap: 1.5rem; min-height: 88px; }
.testata-menu { gap: 1rem; }
.logo-testata, .logo-piede { flex-shrink: 0; margin: 0; }
.logo-testata img { display: block; height: auto; width: 242px; max-width: 52vw; }

.menu-principale { font-size: .94rem; }
.menu-principale .wp-block-navigation__container { gap: .35rem; }
.menu-principale .wp-block-navigation-item a.wp-block-navigation-item__content { color: rgba(255,255,255,.82); padding: .65rem .85rem; }
.menu-principale .wp-block-navigation-item a.wp-block-navigation-item__content:hover,
.menu-principale .current-menu-item > a.wp-block-navigation-item__content { color: var(--giallo); }
.menu-principale .wp-block-navigation__responsive-container-open,
.menu-principale .wp-block-navigation__responsive-container-close { color: #fff; }
.menu-principale .wp-block-navigation__responsive-container.is-menu-open { padding: 2rem 1.5rem; }
.menu-principale .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { color: #fff; font-size: 1.4rem; }

/* Menu da Aspetto → Menu (posizione "Principale"). */
.screen-reader-text { border: 0; clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important; }
.menu-classico { position: relative; }
.menu-classico ul { list-style: none; margin: 0; padding: 0; }
.menu-classico-voci { align-items: center; display: flex; gap: .35rem; }
.menu-classico li { position: relative; }
.menu-classico a { color: rgba(255,255,255,.82); display: block; font-size: .94rem; padding: .65rem .85rem; }
.menu-classico a:hover, .menu-classico a:focus-visible,
.menu-classico .current-menu-item > a, .menu-classico .current-menu-ancestor > a { color: var(--giallo); }
.menu-classico .sub-menu {
  background: var(--blu-scuro); box-shadow: 0 12px 24px rgba(4,38,59,.25); display: none;
  left: 0; min-width: 220px; padding: .5rem 0; position: absolute; top: 100%; z-index: 60;
}
.menu-classico li:hover > .sub-menu, .menu-classico li:focus-within > .sub-menu { display: block; }
.menu-apri { display: none; }

@media (max-width: 781px) {
  .menu-apri {
    align-items: center; background: transparent; border: 0; color: #fff; cursor: pointer; display: flex;
    height: 44px; justify-content: center; padding: 0; position: relative; width: 44px; z-index: 70;
  }
  .menu-apri-linee, .menu-apri-linee::before, .menu-apri-linee::after {
    background: currentColor; content: ""; display: block; height: 2px; position: absolute; transition: transform .2s, background-color .2s; width: 24px;
  }
  .menu-apri-linee::before { transform: translateY(-7px); }
  .menu-apri-linee::after { transform: translateY(7px); }
  .menu-classico.is-aperto .menu-apri { position: fixed; right: clamp(1rem, 3vw, 1.5rem); top: calc(var(--wp-admin--admin-bar--height, 0px) + 1rem); }
  .menu-classico.is-aperto .menu-apri-linee { background: transparent; }
  .menu-classico.is-aperto .menu-apri-linee::before { transform: rotate(45deg); }
  .menu-classico.is-aperto .menu-apri-linee::after { transform: rotate(-45deg); }

  .menu-classico-voci {
    align-items: flex-start; background: var(--blu); display: none; flex-direction: column; gap: .25rem;
    inset: var(--wp-admin--admin-bar--height, 0px) 0 0 0; overflow-y: auto; padding: 5rem 1.5rem 2rem; position: fixed; z-index: 65;
  }
  .menu-classico.is-aperto .menu-classico-voci { display: flex; }
  .menu-classico-voci a { color: #fff; font-size: 1.4rem; padding: .5rem 0; }
  .menu-classico .sub-menu { background: transparent; box-shadow: none; display: block; padding: 0 0 0 1rem; position: static; }
  .menu-classico .sub-menu a { font-size: 1.1rem; }
  html.menu-aperto { overflow: hidden; }
}

.bottone-testata .wp-block-button__link { font-size: .875rem; padding: .45rem 1rem; }
@media (max-width: 1080px) { .testata .wp-block-buttons.bottone-testata { display: none; } }
@media (max-width: 599px) { .testata-interno { min-height: 76px; } .logo-testata img { width: 190px; } }

/* ---------- Bottoni e link con freccia ---------- */
.wp-block-button__link { border: 1px solid transparent; transition: background-color .2s, color .2s, border-color .2s; }
.wp-block-button.is-style-blu .wp-block-button__link { background: var(--blu); border-color: var(--blu); color: #fff; }
.wp-block-button.is-style-blu .wp-block-button__link:hover { background: var(--blu-scuro); border-color: var(--blu-scuro); color: #fff; }

.con-freccia .wp-block-button__link::after,
.con-freccia-su .wp-block-button__link::after,
.con-freccia-esterna .wp-block-button__link::after,
.link-freccia a::after {
  content: ""; display: inline-block; height: .95em; margin-left: .55rem; vertical-align: -.1em; width: .95em;
  background: currentColor; -webkit-mask: var(--freccia) center / contain no-repeat; mask: var(--freccia) center / contain no-repeat;
}
.con-freccia, .link-freccia { --freccia: url(../icons/arrow-right.svg); }
.con-freccia-su { --freccia: url(../icons/arrow-up-right.svg); }
.con-freccia-esterna { --freccia: url(../icons/box-arrow-up-right.svg); }
.link-freccia a { font-weight: 700; }

/* ---------- Icone (classe icona-*) ---------- */
.icona-thermometer-half { --icona: url(../icons/thermometer-half.svg); }
.icona-droplet { --icona: url(../icons/droplet.svg); }
.icona-gear { --icona: url(../icons/gear.svg); }
.icona-tools { --icona: url(../icons/tools.svg); }
.icona-lightbulb { --icona: url(../icons/lightbulb.svg); }
.icona-bounding-box { --icona: url(../icons/bounding-box.svg); }
.icona-rulers { --icona: url(../icons/rulers.svg); }
.icona-gear-wide-connected { --icona: url(../icons/gear-wide-connected.svg); }
.icona-check2-circle { --icona: url(../icons/check2-circle.svg); }
.icona-geo-alt { --icona: url(../icons/geo-alt.svg); }
.icona-telephone { --icona: url(../icons/telephone.svg); }
.icona-envelope { --icona: url(../icons/envelope.svg); }
.icona-file-earmark-pdf { --icona: url(../icons/file-earmark-pdf.svg); }

/* Titolo con icona tonda sopra (schede). */
.con-icona { padding-top: calc(56px + 1.3rem); position: relative; }
.con-icona::before, .con-icona::after { content: ""; left: 0; position: absolute; top: 0; }
.con-icona::before { background: var(--icona-sfondo, #e8f2f6); border-radius: 50%; height: 56px; width: 56px; }
.con-icona::after {
  background: var(--blu); height: 24px; margin: 16px; width: 24px;
  -webkit-mask: var(--icona) center / contain no-repeat; mask: var(--icona) center / contain no-repeat;
}

/* ---------- Home: carosello ---------- */
.slider-home { background: var(--blu-scuro); position: relative; }
.slider-home .slide { min-height: min(690px, 76vh) !important; }
.slider-home.is-attivo { display: grid; }
.slider-home.is-attivo > .slide { grid-area: 1 / 1; margin: 0; opacity: 0; transition: opacity .8s ease-in-out; visibility: hidden; }
.slider-home.is-attivo > .slide.is-corrente { opacity: 1; visibility: visible; }
.slider-home .wp-block-cover__inner-container { padding-block: 6.5rem 5rem; }

/* Il contenuto delle copertine resta allineato alla griglia della pagina (1320px). */
.slider-home .wp-block-cover__inner-container,
.hero-pagina .wp-block-cover__inner-container { width: 100% !important; }
.contenuto-hero { color: #fff; }
.contenuto-hero .occhiello { color: var(--giallo); }
.contenuto-hero .wp-block-heading { color: #fff; font-size: var(--wp--preset--font-size--huge); margin-block: 1.2rem; }
.contenuto-hero .lead { color: rgba(255,255,255,.87); font-size: clamp(1.03rem, 1.6vw, 1.2rem); max-width: 600px; }
.contenuto-hero .wp-block-buttons { margin-top: 2rem; }

.slider-indicatori { bottom: 1.5rem; display: flex; gap: .5rem; left: max(calc((100% - 1320px) / 2), clamp(1rem, 3vw, 1.5rem)); position: absolute; z-index: 3; }
.slider-indicatori button { background: rgba(255,255,255,.5); border: 0; cursor: pointer; height: 4px; padding: 0; width: 35px; }
.slider-indicatori button[aria-current="true"] { background: #fff; }
.slider-freccia {
  align-items: center; background: transparent; border: 0; color: #fff; cursor: pointer; display: flex; height: 100%;
  justify-content: center; opacity: .6; position: absolute; top: 0; transition: opacity .2s; width: 8%; z-index: 2;
}
.slider-freccia:hover, .slider-freccia:focus-visible { opacity: 1; }
.slider-freccia svg { height: 2rem; width: 2rem; }
.slider-freccia.prec { left: 0; }
.slider-freccia.succ { right: 0; }
@media (max-width: 781px) { .slider-freccia { display: none; } }

/* ---------- Home: chi siamo, settori, competenze ---------- */
.intro .wp-block-columns { gap: 1.5rem 3rem; }
.fascia-settori {
  background-color: var(--blu);
  background-image: linear-gradient(90deg, var(--blu) 0%, var(--blu) 38%, rgba(11,79,124,.88) 55%, rgba(11,79,124,.16) 100%), url(../images/motivo-settori.webp);
  background-position: center right, right center; background-repeat: no-repeat; background-size: 100% 100%, auto 130%;
  color: #fff; padding-block: 3.5rem;
}
.fascia-settori .occhiello { color: var(--giallo); }
.fascia-settori .wp-block-heading { color: #fff; font-size: var(--wp--preset--font-size--x-large); max-width: 600px; }
.fascia-settori p:not(.occhiello) { max-width: 560px; }
@media (max-width: 600px) {
  .fascia-settori { background-image: linear-gradient(90deg, rgba(11,79,124,.92), rgba(11,79,124,.5)), url(../images/motivo-settori.webp); background-size: 100% 100%, auto 100%; padding-block: 3rem; }
}

.lista-settori { display: grid; gap: 1rem 1.75rem; grid-template-columns: repeat(2, max-content); list-style: none; margin: 0; padding: 0; }
.lista-settori li { align-items: center; display: flex; font-size: .95rem; font-weight: 600; min-height: 46px; padding-left: calc(46px + .65rem); position: relative; }
.lista-settori li::before, .lista-settori li::after { content: ""; position: absolute; left: 0; top: 50%; transform: translateY(-50%); }
.lista-settori li::before { border: 1px solid rgba(255,201,40,.55); border-radius: 50%; height: 46px; width: 46px; box-sizing: border-box; }
.lista-settori li::after {
  background: var(--giallo); height: 20px; left: 13px; width: 20px;
  -webkit-mask: var(--icona) center / contain no-repeat; mask: var(--icona) center / contain no-repeat;
}
@media (max-width: 420px) { .lista-settori { grid-template-columns: 1fr; } }

.competenze { padding-block: 2.5rem var(--sezione); }
.schede-competenze { gap: 1.5rem; }
.scheda { border-top: 1px solid #dbe4e9; padding: 2rem 1.25rem 1.5rem 0; }
.scheda .wp-block-heading { margin-bottom: .7rem; }
.scheda p:not(.link-freccia) { color: var(--grigio); }

/* ---------- Fasce blu (invito all'azione, depliant) ---------- */
.fascia-cta { background: var(--blu); color: #fff; padding-block: 3rem; }
.fascia-cta .occhiello { color: var(--giallo); }
.fascia-cta .wp-block-heading { color: #fff; font-size: var(--wp--preset--font-size--x-large); margin-top: .5rem; }
.fascia-cta .wp-block-columns { gap: 1.5rem; margin-block: 0; }
.fascia-cta-centrata { text-align: center; }
.fascia-cta-centrata .wp-block-buttons { margin-top: 1.5rem; }
@media (max-width: 781px) { .fascia-cta .wp-block-buttons { justify-content: flex-start; } }

.con-icona-grande { padding-left: calc(72px + 1.5rem); position: relative; }
.con-icona-grande::before, .con-icona-grande::after { content: ""; left: 0; position: absolute; top: 50%; transform: translateY(-50%); }
.con-icona-grande::before { border: 1px solid rgba(255,201,40,.55); border-radius: 50%; box-sizing: border-box; height: 72px; width: 72px; }
.con-icona-grande::after {
  background: var(--giallo); height: 30px; left: 21px; width: 30px;
  -webkit-mask: var(--icona) center / contain no-repeat; mask: var(--icona) center / contain no-repeat;
}

/* ---------- Testata pagine interne ---------- */
.hero-pagina { min-height: 425px !important; }
.hero-pagina .wp-block-cover__inner-container { padding-block: 5rem; }
.hero-pagina .contenuto-hero .wp-block-heading { font-size: clamp(2.8rem, 6vw, 5rem); }
.hero-pagina .contenuto-hero .lead { max-width: 620px; }

/* ---------- Servizi ---------- */
.colonne-larghe { gap: 2rem 3rem; }
.foto-arrotondata { margin: 0; }
.foto-arrotondata img { border-radius: 5px; display: block; height: 390px; object-fit: cover; width: 100%; }

.lista-servizi { color: var(--grigio); list-style: none; margin: 1.2rem 0 0; padding: 0; }
.lista-servizi li { border-top: 1px solid #dce6eb; padding: .55rem 0; }
.lista-servizi li::before { color: #dda800; content: "—"; margin-right: .65rem; }

.sezione-schede { padding-top: 0; }
/* Spazio tra le schede: quello del tema (blockGap), così la griglia a due colonne viene calcolata giusta. */
.scheda-servizio { background: var(--chiaro); padding: 2.4rem; position: relative; --icona-sfondo: #fff; }
.scheda-servizio > * { margin-block: 0; }
.scheda-servizio > * + * { margin-top: 1rem; }
.numero-servizio { color: #c7d8e0; font-family: var(--titoli); font-size: 2.2rem; font-weight: 800; line-height: 1; position: absolute; right: 2rem; top: 1.5rem; }
.numero-servizio + * { margin-top: 0; }
.scheda-servizio .wp-block-heading { font-size: 1.45rem; }
.scheda-servizio p { color: var(--grigio); }
.scheda-servizio .lista-servizi { margin-top: 1.2rem; }

/* ---------- Portfolio ---------- */
.testata-sezione { margin-bottom: 2rem; }
.testata-sezione .wp-block-heading { margin-bottom: 0; }
.griglia-progetti { gap: 1.5rem; }
.scheda-progetto { margin: 0; min-height: 360px !important; overflow: hidden; padding: 1.5rem; }
.scheda-progetto .wp-block-cover__image-background { transition: transform .45s ease; }
.scheda-progetto:hover .wp-block-cover__image-background { transform: scale(1.045); }
.scheda-progetto .wp-block-cover__inner-container { color: #fff; }
.scheda-progetto .wp-block-cover__inner-container > * { margin-block: 0; }
.categoria-progetto { color: var(--giallo); font-size: .75rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.scheda-progetto .wp-block-heading { color: #fff; font-size: 1.25rem; margin-top: .35rem !important; }

/* ---------- Contatti ---------- */
.colonna-dove { display: flex; flex-direction: column; }
.dato-contatto { border-bottom: 1px solid #e1e8ec; color: var(--grigio); margin: 0 !important; min-height: 48px; padding: 1rem 0 1rem 64px; position: relative; }
.colonna-dove .testo-grande + .dato-contatto { margin-top: 1rem !important; }
.dato-contatto strong { color: var(--inchiostro); }
.dato-contatto::before, .dato-contatto::after { content: ""; left: 0; position: absolute; top: 50%; transform: translateY(-50%); }
.dato-contatto::before { background: #e8f2f6; border-radius: 50%; height: 48px; width: 48px; }
.dato-contatto::after {
  background: var(--blu); height: 22px; left: 13px; width: 22px;
  -webkit-mask: var(--icona) center / contain no-repeat; mask: var(--icona) center / contain no-repeat;
}
.mappa { background: #eaf0ee; flex-grow: 1; margin-top: 1.5rem; min-height: 380px; overflow: hidden; position: relative; }
.mappa iframe { border: 0; display: block; height: 100%; inset: 0; position: absolute; width: 100%; }

.riquadro-modulo { background: var(--chiaro); margin-top: 1.5rem; padding: clamp(1.5rem, 4vw, 3rem); }
.riquadro-modulo .wp-block-heading { font-size: 1.75rem; margin-bottom: 1.5rem; }

.modulo-contatti .campi { display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.modulo-contatti .campo { display: flex; flex-direction: column; gap: .4rem; margin: 0; }
.modulo-contatti .campo-intero { grid-column: 1 / -1; }
.modulo-contatti label { font-size: .9rem; font-weight: 700; }
.modulo-contatti input[type="text"], .modulo-contatti input[type="email"], .modulo-contatti input[type="tel"],
.modulo-contatti select, .modulo-contatti textarea {
  background: #fff; border: 1px solid #d3dfe5; border-radius: 2px; color: var(--inchiostro);
  box-sizing: border-box; font: inherit; min-height: 48px; padding: .55rem .8rem; width: 100%;
}
.modulo-contatti textarea { min-height: auto; resize: vertical; }
.modulo-contatti input:focus, .modulo-contatti select:focus, .modulo-contatti textarea:focus { border-color: var(--blu); box-shadow: 0 0 0 .2rem rgba(7,85,121,.12); outline: 0; }
.modulo-contatti .campo-privacy { align-items: flex-start; flex-direction: row; gap: .65rem; }
.modulo-contatti .campo-privacy input { flex: 0 0 auto; height: 1.1rem; margin-top: .25rem; width: 1.1rem; }
.modulo-contatti .campo-privacy label { font-weight: 400; }
.modulo-contatti .wp-block-button { margin-top: 1.5rem; }
.modulo-contatti button { cursor: pointer; font: inherit; font-weight: 700; }
.modulo-contatti button:disabled { cursor: wait; opacity: .7; }
.campo-nascosto { height: 1px; left: -9999px; overflow: hidden; position: absolute; width: 1px; }
.esito-modulo { font-size: .88rem; margin-top: 1rem; }
.avviso-modulo { margin: 0; }
.avviso-modulo.is-ok { color: var(--blu); font-weight: 700; }
.avviso-modulo.is-errore { color: #b42318; font-weight: 700; }
@media (max-width: 600px) { .modulo-contatti .campi { grid-template-columns: 1fr; } }

/* ---------- Piè di pagina ---------- */
.piede { background: var(--notte); color: #fff; padding-block: 3rem 1.5rem; }
.piede-colonne { gap: 1.5rem; }
.logo-piede img { display: block; height: auto; max-width: 320px; width: 100%; }
.piede-nota { color: rgba(255,255,255,.68); margin-top: 1rem; }
.piede-nota strong { color: #fff; }
.piede-titolo { color: #fff; font-size: 1rem !important; letter-spacing: 0; margin: .2rem 0 1rem; }
.piede-link { list-style: none; margin: 0; padding: 0; }
.piede-link li { margin: .4rem 0; }
.piede-link a { color: rgba(255,255,255,.76); }
.piede-link a:hover { color: var(--giallo); }
.piede-fondo { border-top: 1px solid rgba(255,255,255,.16); color: rgba(255,255,255,.58); font-size: .82rem; gap: .35rem 1rem; margin-top: 3rem; padding-top: 1rem; }
.piede-fondo p { margin: 0; }

/* ---------- Mobile ---------- */
@media (max-width: 781px) {
  .slider-home .wp-block-cover__inner-container { padding-block: 4rem; }
  .hero-pagina { min-height: 390px !important; }
  .hero-pagina .wp-block-cover__inner-container { padding-block: 4rem; }
  .foto-arrotondata img { height: 280px; }
  .scheda-servizio { padding: 1.6rem; }
  .scheda-progetto { min-height: 300px !important; }
}

/* ---------- Editor: nel pannello le slide restano una sotto l'altra ---------- */
.editor-styles-wrapper .slider-home > .slide + .slide { margin-top: 4px; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; }
}
