/* ==========================================================================
   DDK — SEZIONI
   Gli stili delle singole sezioni della home. Poggiano sempre sui mattoni
   di ddk-base.css, che va caricato prima.

   NOTA: qui dentro ci sono anche testata e footer. Non e' piu' provvisorio:
   la cornice resta nostra (DECISIONI.md, 31/07 sera). GeneratePress resta
   installato ma non disegna niente.
   ========================================================================== */

/* --------------------------------------------------------------------------
   LE PAGINE INTERNE (0.8.0)
   Prodotti, area riservata, privacy, cookie policy — e tutte quelle future.
   Condividono la cornice con la home; qui c'e' solo cio' che alla home non
   serve.
   -------------------------------------------------------------------------- */

/* LO SPAZIO IN CIMA. La testata e' fissa, cioe' galleggia sopra il contenuto.
   Sulla home non si nota perche' la prima sezione ha molta aria; una pagina
   normale comincerebbe sotto la testata e ci finirebbe dietro. E' la prima
   cosa che salta all'occhio se manca. */
.pagina-interna{padding-block-start:calc(var(--hdr-h) + 3rem);
  padding-block-end:clamp(4rem,8vw,7rem);min-height:50vh}

.pagina-interna__testa{margin-block-end:2.5rem}

/* ⚠️ Il selettore e' piu' specifico del necessario APPOSTA. Su queste pagine
   il foglio di GeneratePress e' ancora caricato (vedi il commento in
   ddk-front.php) e contiene h1{font-weight:400}, che viene stampato dopo il
   nostro e a parita' di forza vincerebbe. Una regola piu' specifica risolve il
   conflitto senza spegnere il foglio del tema — che e' la strada prudente
   finche' non si sa cosa ci si appoggia in catalogo e area riservata. */
.pagina-interna .pagina-interna__testa h1{font-size:var(--fs-h2);font-weight:600;
  color:var(--ink);line-height:1.08;letter-spacing:-.03em;margin:0}

/* LA LARGHEZZA DI LETTURA, e non e' un vezzo tipografico: una riga lunga tutto
   lo schermo e' quasi illeggibile, perche' l'occhio arriva in fondo e non
   ritrova il capo della riga dopo. La misura comoda sono 60-75 caratteri.
   Vale per privacy e cookie policy, che sono muri di testo. */
.pagina-interna__corpo{max-width:70ch}
.pagina-interna__corpo > * + *{margin-block-start:1.15em}
.pagina-interna__corpo h2{font-size:var(--fs-h3);margin-block-start:2.4em}
.pagina-interna__corpo h3{font-size:1.15rem;margin-block-start:2em}
.pagina-interna__corpo ul,.pagina-interna__corpo ol{padding-inline-start:1.3em}
.pagina-interna__corpo li + li{margin-block-start:.5em}
.pagina-interna__corpo a{color:var(--bordeaux);text-decoration:underline;
  text-underline-offset:.18em}

/* LE PAGINE CHE OSPITANO UNO STRUMENTO — catalogo, area riservata, richiesta
   accesso — non si incolonnano: si dispongono da sole e vogliono tutto lo
   spazio. Il template dà loro la classe dopo aver chiesto alla pagina cosa
   contiene, non guardando l'indirizzo. */
.pagina-interna.ha-strumento .pagina-interna__corpo{max-width:none}
/* 0.12.0: un po' d'aria anche qui. Prima era `var(--hdr-h)` esatto, cioe' lo
   strumento cominciava attaccato al bordo inferiore della testata e l'arrivo
   sulla pagina era uno stacco secco. Poca — la ricerca e i chip devono restare
   raggiungibili senza scorrere: chi arriva su /prodotti/ ci arriva con una
   richiesta gia' fatta e non va allontanato da quello che ha chiesto. */
.pagina-interna.ha-strumento{padding-block-start:calc(var(--hdr-h) + clamp(1.4rem,3vw,2.6rem))}

/* --------------------------------------------------------------------------
   L'ARRIVO SULLA PAGINA (0.12.0)
   --------------------------------------------------------------------------
   Il contenuto entra invece di comparire di colpo.

   ⚠️ LA CORNICE NON SI ANIMA, ed e' una scelta, non una dimenticanza.
   Testata e footer stanno su trentasei pagine: un'animazione vista una volta
   e' elegante, la stessa vista trentasei volte diventa un mobile che si
   aspetta — e la testata e' proprio l'arnese che serve per muoversi, quindi
   deve esserci gia'. In piu' la testata ha un difetto di tempi ancora aperto
   (il salto all'apertura del menu da telefono): aggiungerle una seconda
   animazione significa non poter piu' capire quale delle due causa cosa.
   La cornice c'e' subito, si muove il contenuto.

   PERCHE' NON USA data-r COME LA HOME. Quel meccanismo aspetta che l'elemento
   entri nello schermo, e chiede che se ne veda il 10%. Su un elemento molto
   alto — il catalogo e' alto — il 10% puo' essere piu' di uno schermo intero,
   e allora non entra mai: la pagina resterebbe bianca. Qui l'animazione parte
   dal caricamento e non ha nessuna condizione da soddisfare: non esiste il
   caso in cui resta invisibile.

   Tutto dentro `prefers-reduced-motion: no-preference`, quindi chi ha chiesto
   meno animazioni non ne vede nessuna e non serve nessuna regola che spenga.
   Senza JavaScript funziona lo stesso: qui il JavaScript non c'entra. */
@keyframes ddk-arriva{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes ddk-arriva-fermo{from{opacity:0}to{opacity:1}}

@media (prefers-reduced-motion:no-preference){

  /* Le pagine di testo: sale di poco mentre compare.
     translateY e non translateX: il verticale non si specchia, quindi in
     arabo e persiano fa la stessa identica cosa. */
  .pagina-interna__testa{animation:ddk-arriva .55s var(--ease) both}
  .pagina-interna:not(.ha-strumento) .pagina-interna__corpo{
    animation:ddk-arriva .55s var(--ease) .1s both}

  /* Le pagine che ospitano uno strumento: solo dissolvenza, senza movimento.
     Due motivi. Uno strumento che scivola in posizione sembra meno saldo di
     quello che e'. E un antenato con una trasformazione in corso cambia il
     comportamento di `position: fixed` nei suoi discendenti — il pannello dei
     filtri del catalogo su telefono e' fisso, e non va toccato nemmeno per
     mezzo secondo. */
  .pagina-interna.ha-strumento .pagina-interna__corpo > *{
    animation:ddk-arriva-fermo .5s var(--ease) .06s both}
}

/* --------------------------------------------------------------------------
   TESTATA

   ⚠️ Dalla 0.6.0 le voci NON sono piu' scritte a mano nel template: escono
   da wp_nav_menu(), quindi il markup e' quello di WordPress —
   <nav class="nav"><ul class="nav__list"><li class="menu-item"><a>.
   Le regole che prima colpivano ".nav a" ora passano da ".nav__list a":
   non e' un ritocco estetico, e' l'adattamento al markup nuovo.
   -------------------------------------------------------------------------- */
/* L'altezza della testata serve al pannello del menu da telefono, che deve
   cominciare esattamente sotto. Sta qui come variabile perche' e' un numero
   solo usato in due punti: cambiando il padding sopra, si cambia anche qui. */
:root{--hdr-h:4.8rem}

/* --------------------------------------------------------------------------
   SALTA AL CONTENUTO
   Il primo elemento della pagina per chi naviga da tastiera o con un lettore
   di schermo: senza, per arrivare al testo bisogna ripassare ogni volta tutte
   le voci del menu. Si vede solo quando riceve il fuoco.
   Non si nasconde con display:none — quello lo toglierebbe anche ai lettori
   di schermo, cioe' proprio a chi serve.
   -------------------------------------------------------------------------- */
.salta{position:fixed;inset-block-start:-100%;inset-inline-start:1rem;z-index:200;
  background:var(--ink);color:#fff;padding:.8rem 1.2rem;border-radius:0 0 3px 3px;
  font-size:var(--fs-sm);font-weight:600}
.salta:focus{inset-block-start:0;color:#fff}

/* ⚠️ LA CORNICE NON SI SOTTOLINEA — e questa riga non è cosmesi.
   Sulle pagine interne il foglio di GeneratePress è ancora caricato (per
   prudenza: vedi il commento in ddk-front.php) e contiene una regola che
   sottolinea i link. La nostra dice il contrario, ma il tema viene stampato
   dopo e a parità di forza vince l'ultimo: sulla home i link del footer erano
   puliti, su /prodotti/ erano tutti sottolineati — bottone Area riservata
   compreso, dove stava male. Trovato da Riccardo l'1/08 confrontando le due.
   Due selettori bastano perché sono più specifici di `a`, e — a differenza di
   spegnere il foglio del tema — non toccano catalogo e area riservata. */
   ⚠️ E NON BASTA LA SOTTOLINEATURA: il tema decide anche il COLORE dei link.
   Nella 0.9.0 avevo corretto solo la prima metà, e nel footer i link sono
   rimasti azzurri su fondo scuro. `color:inherit` glielo fa ereditare da chi
   li contiene — bianco tenue nel footer, grigio nella testata — che è quello
   che facevano prima che il tema entrasse in gioco. */
.hdr a,.ftr a,.salta{text-decoration:none;color:inherit}
.ftr a:hover{color:#fff}

.hdr{position:fixed;inset-block-start:0;inset-inline:0;z-index:100;padding-block:1.4rem;
  transition:background .4s var(--ease),box-shadow .4s var(--ease),padding .4s var(--ease)}
.hdr.is-stuck{background:rgba(255,255,255,.88);backdrop-filter:blur(14px);
  box-shadow:0 1px 0 var(--g200);padding-block:.85rem}
/* position:relative serve al menu delle lingue, che su telefono si aggancia
   qui invece che al proprio bottone — vedi il blocco del selettore. */
.hdr__in{display:flex;align-items:center;gap:2rem;position:relative}
/* IL MARCHIO (0.20.0) — era tipografia scritta a mano, ora e' l'SVG vero.
   `color` non colora piu' del testo: dentro l'SVG «Italia» e' su currentColor,
   quindi `color` la comanda ancora. «DDK» sta su --ddk-logo-primario, che per
   difetto vale --ddk-primario: cosi' il logo cambia tinta con tutto il sito.
   ⚠️ L'ALTEZZA LA DECIDE QUI IL CSS, non il file: 24px e' la misura su cui la
   leggibilita' del marchio e' stata provata. Il rapporto e' 8,4:1, quindi la
   larghezza viene da se' — non si impostano entrambe. */
.logo{display:block;color:var(--ink);flex:none;line-height:0}
.logo__segno{display:block;height:24px;width:auto}
@media (max-width:520px){.logo__segno{height:21px}}

/* WordPress stampa una lista: le si toglie l'aspetto da lista e le si
   ridanno le distanze che aveva la fila di link scritta a mano. */
.nav{margin-inline-start:auto}
.nav__list{display:flex;align-items:center;gap:2.1rem;list-style:none;margin:0;padding:0}
.nav__list li{margin:0}
.nav__list a{display:block;font-size:var(--fs-sm);font-weight:500;color:var(--g700);
  position:relative;padding-block:.25rem}
.nav__list a::after{content:"";position:absolute;inset-block-end:0;inset-inline-start:0;width:100%;
  height:1px;background:var(--bordeaux);transform:scaleX(0);transform-origin:right center;
  transition:transform .4s var(--ease)}
.nav__list a:hover{color:var(--ink)}
.nav__list a:hover::after{transform:scaleX(1);transform-origin:left center}
[dir="rtl"] .nav__list a::after{transform-origin:left center}
[dir="rtl"] .nav__list a:hover::after{transform-origin:right center}

/* I DUE BOTTONI DELLA TESTATA — Prodotti e Area riservata.
   Sono le uniche due voci che portano fuori dalla home: le altre scorrono la
   pagina. Vestite da bottone, **la forma dice quello che fanno** e nessuno
   deve indovinarlo prima di cliccare (decisione dell'1/08).

   ⚠️ SONO DUE PESI DIVERSI, e la differenza è la ragione per cui funziona.
   Due rettangoli identici affiancati non fanno due richiami, ne fanno mezzo:
   l'occhio non sa quale contare, e Area riservata perderebbe proprio quello
   che aveva, cioè essere l'unica cosa colorata della testata.
   Prodotti pieno perché è la destinazione di chi arriva senza sapere nulla di
   DDK; Area riservata a contorno perché chi ce l'ha la cerca, non va attratto.

   Le classi le mette ddk-impianto quando crea i menu, in tutte e sei le
   lingue: qui non si indovina quale voce sia quale. */
.nav__list .ddk-voce-bottone > a{border:1px solid var(--bordeaux);border-radius:2px;
  padding:.66rem 1.24rem;font-weight:600;
  transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease)}
.nav__list .ddk-voce-bottone > a::after{display:none}

/* ⚠️ L'ORDINE DI QUESTE TRE FAMIGLIE CONTA, e la 0.14.0 lo ha corretto.
   Prima: aspetto di base → hover → pagina corrente. Sembrava sensato e
   invece nascondeva un difetto che si vedeva **solo stando sulla pagina a cui
   il bottone punta**: la voce corrente e l'hover hanno esattamente la stessa
   forza, e a parita' vince quella scritta dopo. Sulla pagina area riservata,
   passando sopra al suo bottone, il fondo diventava bordeaux ma il testo
   restava bordeaux — cioe' spariva. Segnalato da Riccardo l'1/08, e prima non
   si era mai visto perche' dalla home o da /prodotti/ quella voce non e' la
   corrente.

   Ora: aspetto di base → pagina corrente → hover.
   **Il principio, buono anche per le prossime volte: lo stato di quello che
   stai facendo batte lo stato di dove ti trovi.** Cosi' vale per tutti e due i
   bottoni e per quelli che verranno, invece di aggiungere un'eccezione per il
   caso trovato. */

/* 1. L'aspetto di base. Pieno — Prodotti. */
.nav__list .ddk-voce-bottone > a{background:var(--bordeaux);color:#fff}
/*    A contorno — Area riservata. */
.nav__list .ddk-voce-bottone--contorno > a{background:transparent;color:var(--bordeaux)}

/* 2. La pagina che si sta guardando: WordPress marca da se' la voce corrente.
      Su /prodotti/ la voce Prodotti risulta evidenziata senza fare niente. */
.nav__list .current-menu-item > a{color:var(--ink)}
.nav__list .ddk-voce-bottone.current-menu-item > a{color:#fff}
.nav__list .ddk-voce-bottone--contorno.current-menu-item > a{color:var(--bordeaux)}

/* 3. Il passaggio del mouse, per ultimo: da qui in giu' nessuno lo contraddice. */
.nav__list .ddk-voce-bottone > a:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.nav__list .ddk-voce-bottone--contorno > a:hover{background:var(--bordeaux);
  border-color:var(--bordeaux);color:#fff}

.hdr__side{display:flex;align-items:center;gap:1.1rem;flex:none}

/* Chi naviga da tastiera deve vedere dov'e'. Solo :focus-visible, cosi' il
   contorno non compare a chi clicca col mouse. Serve soprattutto sul bottone
   Area riservata, dove il contorno di sistema sul bordeaux si legge poco. */
.nav__list a:focus-visible,.lang__btn:focus-visible,.lang__menu a:focus-visible,
.burger:focus-visible{outline:2px solid var(--bordeaux);outline-offset:3px;border-radius:2px}

/* --------------------------------------------------------------------------
   SELETTORE DI LINGUA
   Prima era uno <span> che diceva sempre "IT" e non portava da nessuna parte.
   -------------------------------------------------------------------------- */
.lang{position:relative}
.lang__btn{display:flex;align-items:center;gap:.4rem;background:none;border:0;padding:.3rem 0;
  font:inherit;font-size:var(--fs-sm);font-weight:500;color:var(--g500);cursor:pointer;
  transition:color .3s var(--ease)}
.lang__btn:hover{color:var(--ink)}
.lang__freccia{width:0;height:0;border-inline:3.5px solid transparent;
  border-block-start:4px solid currentColor;transition:transform .3s var(--ease)}
.lang__btn[aria-expanded="true"] .lang__freccia{transform:rotate(180deg)}

.lang__menu{position:absolute;inset-block-start:calc(100% + .7rem);inset-inline-end:0;
  min-width:11rem;max-width:min(16rem,calc(100vw - 2.5rem));
  list-style:none;margin:0;padding:.4rem;background:#fff;
  border:1px solid var(--g200);border-radius:3px;box-shadow:0 12px 34px rgba(0,0,0,.10);z-index:120}
.lang__menu[hidden]{display:none}
.lang__menu a{display:flex;align-items:center;gap:.7rem;padding:.5rem .7rem;border-radius:2px;
  font-size:var(--fs-sm);color:var(--g700);transition:background .2s var(--ease)}
.lang__menu a:hover{background:var(--g100);color:var(--ink)}
.lang__menu a.is-on{color:var(--bordeaux);font-weight:600}
.lang__sigla{font-weight:600;font-size:.72rem;letter-spacing:.08em;min-width:1.6rem;
  color:var(--g500)}
.lang__menu a.is-on .lang__sigla{color:var(--bordeaux)}
/* Il nome della lingua e' scritto nella lingua stessa: l'arabo e il persiano
   vanno letti da destra anche dentro una pagina italiana. */
.lang__menu a[lang="ar"] .lang__nome,
.lang__menu a[lang="fa"] .lang__nome{direction:rtl;text-align:start}

/* --------------------------------------------------------------------------
   BURGER E MENU DA TELEFONO

   ⚠️ NIENTE translateX in questo blocco, ed e' una scelta, non una svista.
   translateX e' una proprieta' FISICA e non si specchia in arabo: mescolata
   alle proprieta' logiche si annulla o si somma dal lato sbagliato. Il
   progetto ha gia' pagato quattro difetti cosi' (DECISIONI.md, 31/07, "Il
   collaudo in arabo trova quattro difetti RTL").
   Qui il pannello copre tutto lo schermo e si apre in dissolvenza, con un
   solo translateY: verticale, quindi uguale in tutte le lingue.
   -------------------------------------------------------------------------- */
.burger{display:none;width:26px;height:14px;position:relative;background:none;border:0;
  cursor:pointer;padding:0;z-index:130}
.burger i{position:absolute;inset-inline:0;height:1.5px;background:var(--ink);
  transition:transform .3s var(--ease),opacity .2s var(--ease)}
.burger i:nth-child(1){top:0}.burger i:nth-child(2){top:6px}.burger i:nth-child(3){top:12px}
/* Aperto, le tre lineette diventano una croce. rotate e translateY non hanno
   verso di lettura: valgono identiche in arabo. */
.burger[aria-expanded="true"] i:nth-child(1){transform:translateY(6px) rotate(45deg)}
.burger[aria-expanded="true"] i:nth-child(2){opacity:0}
.burger[aria-expanded="true"] i:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

@media (max-width:1000px){

  /* Il pannello E' la stessa <nav> di prima, non una copia.
     Duplicare il menu per il telefono vorrebbe dire due volte lo stesso
     HTML con gli stessi id — non valido — e due elenchi da tenere allineati
     ogni volta che cambia una voce.

     Il pannello parte SOTTO la testata e non da cima schermo, e non e' un
     dettaglio: coprendo tutto nasconderebbe il selettore di lingua, e da
     telefono le sei lingue diventerebbero irraggiungibili. Cosi' restano
     dove sono, e il loro elenco (z-index piu' alto) si apre sopra il
     pannello. */
  .nav{position:fixed;inset-block-start:var(--hdr-h);inset-block-end:0;inset-inline:0;
    z-index:110;margin:0;background:#fff;padding:1.5rem 2rem 2rem;overflow-y:auto;
    opacity:0;visibility:hidden;transform:translateY(-8px);
    transition:opacity .3s var(--ease),transform .3s var(--ease),visibility .3s}
  .nav.is-open{opacity:1;visibility:visible;transform:translateY(0)}

  /* ⚠️ QUI SOTTO C'E' LA RIGA PIU' IMPORTANTE DEL BLOCCO, e senza spiegazione
     sembra un ritocco estetico da poter togliere. Non lo e'.

     IL DIFETTO (0.6.0, trovato da Riccardo provando dal telefono): il menu si
     apriva bene in cima alla pagina, ma scorrendo un po' spariva.

     LA CAUSA: scorrendo, la testata prende la classe .is-stuck e con essa
     backdrop-filter, che sfoca quello che le passa sotto. **Un elemento che
     sfoca lo sfondo diventa il "recinto" dei propri figli posizionati in modo
     fisso.** Il pannello del menu e' figlio della testata ed e' scritto per
     stare fisso rispetto allo SCHERMO: da quel momento diventa invece fisso
     rispetto alla testata, che e' alta due dita, e ci viene schiacciato dentro.
     In cima alla pagina .is-stuck non c'e', quindi non c'e' recinto: ecco
     perche' li' funzionava.

     LA CURA: sotto i 1000px la sfocatura non si usa, e al suo posto va un
     bianco piu' coperto. Si toglie la causa invece di rattoppare l'effetto.
     Da computer non cambia niente: la sfocatura resta.

     ⚠️ Vale per transform e filter allo stesso modo: se un giorno si mettesse
     un'animazione sulla testata, il pannello tornerebbe a sparire. */
  .hdr.is-stuck{backdrop-filter:none;-webkit-backdrop-filter:none;
    background:rgba(255,255,255,.97)}

  /* Col pannello aperto la testata e' bianca piena e torna alla sua altezza
     intera: scorrendo si era rimpicciolita, e fra il suo fondo e l'inizio del
     pannello — che comincia a un'altezza fissa — resterebbe una striscia da
     cui si vede la pagina passare. */
  .nav-aperto .hdr{background:#fff;box-shadow:none;padding-block:1.4rem}

  .nav__list{flex-direction:column;align-items:stretch;gap:0}
  .nav__list li{border-block-end:1px solid var(--g200)}
  .nav__list a{padding-block:1.15rem;font-size:1.05rem}
  .nav__list a::after{display:none}

  /* Dentro il pannello i bottoni tornano bottoni veri, larghi quanto la
     colonna e staccati dalle voci sopra. Restano due pesi diversi anche qui:
     le cose comuni fra le pagine devono restare identiche ovunque. */
  .nav__list .ddk-voce-bottone{border:0;margin-block-start:1.6rem}
  .nav__list .ddk-voce-bottone + .ddk-voce-bottone{margin-block-start:.7rem}
  .nav__list .ddk-voce-bottone > a{text-align:center;padding-block:1rem}

  .burger{display:block}

  /* ⚠️ IL MENU DELLE LINGUE SU TELEFONO (difetto trovato l'1/08: «troppo a
     sinistra, la prima lettera quasi tagliata»).

     LA CAUSA: l'elenco si apriva agganciato al proprio bottone, allineandogli
     il bordo destro. Ma quel bottone su telefono non e' l'ultima cosa a
     destra — dopo c'e' il burger — e l'elenco e' largo: quanto basta per
     uscire dallo schermo dalla parte opposta. Con i nomi in arabo e persiano,
     che sono lunghi, ancora di piu'.

     LA CURA: su telefono l'elenco si aggancia al CONTENITORE della testata
     invece che al bottone, cosi' il suo bordo destro coincide con il margine
     della pagina. Si ottiene togliendo a .lang il proprio riferimento di
     posizione: l'elenco allora risale al primo antenato che ce l'ha, cioe'
     .hdr__in. Nessun JavaScript, nessuna misura da tenere aggiornata. */
  .lang{position:static}
  .lang__menu{inset-block-start:calc(100% + 1.1rem)}

  /* Senza JavaScript il pannello non si apre: le voci resterebbero
     irraggiungibili. In quel caso il menu torna una lista normale in fondo
     alla testata — brutta ma navigabile. La classe .no-js la toglie lo
     script appena parte. */
  .no-js .hdr__in{flex-wrap:wrap}
  .no-js .nav{position:static;opacity:1;visibility:visible;transform:none;
    margin:0;padding:0 0 1rem;overflow:visible;background:none;width:100%}
  .no-js .burger{display:none}
}

/* ============================================================
   1 — APERTURA
   ============================================================ */
/* Il fondo era a zero: il motto finiva incollato alla fascia di foto sotto,
   senza un respiro. Ora l'apertura si chiude con il suo spazio, come tutte
   le altre sezioni. Vale per tutte e sei le lingue: il CSS e' uno solo. */
.hero{padding-block:clamp(8.5rem,15vw,12rem) clamp(3.5rem,6vw,5.5rem)}
.hero__grid{display:grid;grid-template-columns:1.05fr .95fr;
  gap:clamp(2rem,5vw,4.5rem);align-items:center}
.hero h1{font-size:var(--fs-display);margin-block:1.6rem 2rem}
.hero .lead{max-width:44ch;margin-block-end:2.4rem}
.hero__cta{display:flex;flex-wrap:wrap;gap:.85rem}
.hero__motto{margin-block-start:3rem;padding-block-start:1.5rem;
  border-block-start:1px solid var(--g200);max-width:44ch}
/* l'immagine sborda fuori dalla griglia */
.hero__ph{margin-inline-end:calc(var(--gutter)*-1);aspect-ratio:4/4.6;
  border-start-start-radius:12px;border-end-start-radius:12px}
@media (max-width:900px){
  .hero__grid{grid-template-columns:1fr}
  .hero__ph{margin-inline:calc(var(--gutter)*-1);aspect-ratio:4/3;border-radius:0}
}

/* ============================================================
   2 — STORIA
   ============================================================ */
.storia__grid{display:grid;grid-template-columns:.9fr 1.1fr;
  gap:clamp(2rem,5vw,5rem);align-items:center}
.storia__ph{margin-inline-start:calc(var(--gutter)*-1);aspect-ratio:4/4.4;
  border-start-end-radius:12px;border-end-end-radius:12px}
.storia h2{font-size:var(--fs-h2);margin-block-end:1.6rem}
.storia p+p{margin-block-start:1.1rem}
.anno{font-size:clamp(4rem,9vw,8rem);font-weight:600;line-height:.85;
  letter-spacing:-.055em;color:var(--ink)}
.anno-l{display:block;font-size:var(--fs-eyebrow);letter-spacing:.19em;
  text-transform:uppercase;color:var(--g500);margin-block-start:.6rem}
.blocco-anno{margin-block-start:2.6rem}
.fondatori{display:grid;grid-template-columns:1fr 1fr;gap:0 1px;background:var(--g200);
  margin-block-start:2.4rem;border-block:1px solid var(--g200)}
.fondatori div{background:#fff;padding-block:1.5rem}
.fondatori div:last-child{padding-inline-start:1.5rem}
.fondatori b{display:block;font-size:1.02rem;color:var(--ink);letter-spacing:-.02em;line-height:1.25}
.fondatori span{display:block;font-size:.8rem;color:var(--g500);margin-block-start:.45rem}
@media (max-width:900px){
  .storia__grid{grid-template-columns:1fr}
  .storia__ph{margin-inline:calc(var(--gutter)*-1);aspect-ratio:4/3;border-radius:0}
  .fondatori{grid-template-columns:1fr}
  .fondatori div:last-child{padding-inline-start:0}
}

/* ============================================================
   3 — PILASTRI (sezione scura)
   ============================================================ */
.pilastri{background:var(--ink);color:rgba(255,255,255,.62)}
.pilastri h2{color:#fff;font-size:var(--fs-h2)}
.pilastri__head{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,4rem);
  align-items:end;margin-block-end:clamp(2.5rem,5vw,4.5rem)}
.pil{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.14)}
.pil>div{background:var(--ink);padding:clamp(1.6rem,2.6vw,2.4rem) clamp(1.4rem,2.2vw,2rem)}
.pil h3{color:#fff;font-size:var(--fs-h3);margin-block:1rem .7rem}
.pil p{font-size:var(--fs-sm);line-height:1.66}
.pil__n{font-size:.7rem;font-weight:600;letter-spacing:.18em;color:rgba(255,255,255,.4)}
@media (max-width:860px){.pilastri__head,.pil{grid-template-columns:1fr}}

/* --------------------------------------------------------------------------
   4 — LE CINQUE AREE
   -------------------------------------------------------------------------- */
.aree{display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(.75rem,1.4vw,1.4rem)}
.area .ph{aspect-ratio:3/4;border-radius:10px}
/* Dalla 0.10.0 la scheda non e' piu' un collegamento (vedi shortcodes.php),
   quindi via anche lo zoom della foto al passaggio del mouse: era il segnale
   che invitava al clic, e un invito senza destinazione e' una bugia. */
.area__n{font-size:.68rem;font-weight:600;letter-spacing:.16em;color:var(--g500);
  margin-block-start:1rem;display:block}
.area h3{font-size:1.02rem;margin-block:.45rem .5rem;letter-spacing:-.02em}
.area p{font-size:.8rem;color:var(--g500);line-height:1.55}
@media (max-width:1000px){.aree{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.aree{grid-template-columns:1fr}}

/* L'uscita della sezione: il bottone che porta al catalogo (0.11.0).
   Centrato e staccato dalla griglia — deve leggersi come la conclusione di
   quello che si e' appena letto, non come una sesta scheda. */
.sol__cta{display:flex;justify-content:center;flex-wrap:wrap;gap:.85rem;
  margin-block-start:clamp(2.2rem,4vw,3.4rem)}

/* ============================================================
   5 — RICERCA E QUALITÀ (immagine di fondo + citazione)
   ============================================================ */
/* Come .band: margini calcolati invece di translateX, che non si specchia. */
.qualita{position:relative;width:100vw;margin-inline:calc(50% - 50vw);
  padding-block:clamp(6rem,12vw,11rem);overflow:hidden;isolation:isolate}
.qualita .ph{position:absolute;inset:0;z-index:-2}
.qualita::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(90deg,rgba(16,24,32,.95) 0%,rgba(16,24,32,.8) 55%,rgba(16,24,32,.5) 100%)}
[dir="rtl"] .qualita::after{background:linear-gradient(270deg,rgba(16,24,32,.95) 0%,rgba(16,24,32,.8) 55%,rgba(16,24,32,.5) 100%)}
.qualita blockquote{margin:0;max-width:34ch;font-size:clamp(1.3rem,2.3vw,2.05rem);
  line-height:1.34;letter-spacing:-.025em;color:#fff;font-weight:500}
.qualita cite{display:block;margin-block-start:1.8rem;max-width:46ch;font-style:normal;
  font-size:var(--fs-sm);line-height:1.6;color:rgba(255,255,255,.66)}

/* ============================================================
   6 — OVUNQUE CON VOI
   ============================================================ */
.mondo__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,5rem);align-items:center}
.mondo h2{font-size:var(--fs-h2);margin-block-end:1.5rem}
.mondo__ph{aspect-ratio:5/4;border-radius:12px}
@media (max-width:900px){.mondo__grid{grid-template-columns:1fr}}
.marquee{overflow:hidden;border-block:1px solid var(--g200);padding-block:1.5rem;
  margin-block-start:clamp(3rem,6vw,5rem)}
.marquee__track{display:flex;gap:3.5rem;width:max-content;animation:slide 34s linear infinite}
.marquee:hover .marquee__track{animation-play-state:paused}
.marquee span{font-size:clamp(1rem,1.5vw,1.35rem);font-weight:600;letter-spacing:-.02em;
  color:var(--ink);white-space:nowrap;display:flex;align-items:center;gap:3.5rem}
.marquee span::after{content:"";width:5px;height:5px;border-radius:50%;background:var(--bordeaux);flex:none}
/* Il -50% da solo non basta: il `gap` esiste FRA le voci e non dopo
   l'ultima, quindi meta' della pista non coincide con due copie intere —
   manca sempre mezzo spazio, e li' la striscia salta. Misurato: 28px su
   4402px di pista. La differenza e' meta' del gap per costruzione,
   qualunque sia il testo, quindi si sottrae quella. (0.22.1) */
@keyframes slide{to{transform:translateX(calc(-50% - 1.75rem))}}
[dir="rtl"] .marquee__track{animation-direction:reverse}

/* ============================================================
   7 — AREA RISERVATA
   ============================================================ */
.gate{background:var(--bordeaux);color:rgba(255,255,255,.8);text-align:center;
  position:relative;overflow:hidden}
/* L'alone luminoso e' centrato, quindi qui la proprieta' logica non serve e
   anzi fa danno: inset-inline-start si specchia mentre translateX no, e in
   arabo l'alone finiva spostato. Un elemento centrato si centra e basta. */
.gate::after{content:"";position:absolute;inset-block-start:-35%;left:50%;
  width:72vw;aspect-ratio:1;transform:translateX(-50%);pointer-events:none;
  background:radial-gradient(circle,rgba(255,255,255,.1) 0%,transparent 62%)}
.gate>*{position:relative;z-index:1}
.gate h2{color:#fff;font-size:var(--fs-h2);max-width:18ch;margin-inline:auto}
.gate p{max-width:54ch;margin:1.5rem auto 2.4rem}
.gate .eyebrow{justify-content:center}
.gate__cta{display:flex;gap:.85rem;justify-content:center;flex-wrap:wrap}

/* ============================================================
   FOOTER
   ============================================================ */
.ftr{background:var(--ink);color:rgba(255,255,255,.55);
  padding-block:clamp(4rem,7vw,6rem) 2rem;font-size:var(--fs-sm)}
.ftr__grid{display:grid;grid-template-columns:1.7fr 1fr 1fr 1.1fr;gap:clamp(2rem,4vw,3rem);
  padding-block-end:3.4rem;border-block-end:1px solid rgba(255,255,255,.1)}
/* Nel footer scuro il bordeaux #8a1c2b non si stacca dal fondo --ink: «DDK»
   passa al bianco pieno, e «Italia» resta al 62% via currentColor. Cosi' la
   gerarchia fra le due parole si conserva anche in negativo — nel marchio
   originale la faceva il colore, e a bianco pieno «DDK Italia» si leggerebbe
   come una parola sola. */
.ftr .logo{color:rgba(255,255,255,.62);--ddk-logo-primario:#fff}
.ftr h4{color:#fff;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;
  margin-block-end:1.3rem;font-weight:600}
.ftr ul{list-style:none;margin:0;padding:0;display:grid;gap:.7rem}
.ftr a:hover{color:#fff}
.ftr address{font-style:normal;margin-block-start:1.4rem;line-height:1.75}
/* Le etichette «Sede legale» e «Stabilimento» (0.18.0): devono distinguere i
   due indirizzi senza pesare quanto loro, altrimenti si legge prima
   l'etichetta dell'informazione. Piu' piccole e piu' spente, e i due punti
   li mette il CSS cosi' chi traduce non deve ricordarsene. */
.ftr__eti{font-size:.82em;opacity:.62}
.ftr__eti::after{content:":"}
/* I link del footer arrivano da wp_nav_menu(): la regola ".ftr ul" qui sopra
   li prende gia' tutti, non serve altro. Le voci che puntano a una pagina
   hanno il titolo vuoto nel menu, cioe' prendono il nome dalla pagina — che
   nelle altre lingue e' gia' quello tradotto. */
.ftr__menu{margin:0;padding:0}

/* ⚠️ ROBA MORTA DALLA 0.7.0 — il selettore di lingua finto nel footer.
   Erano sei sigle che puntavano tutte a href="#". Il selettore vero sta in
   testata (0.6.0). Le regole restano qui il tempo di un collaudo, poi via.
   Se stai leggendo questo dopo che la 0.7.0 e' online e verificata: cancella. */
.ftr__langs{display:flex;flex-wrap:wrap;gap:.45rem}
.ftr__langs a{border:1px solid rgba(255,255,255,.2);border-radius:99px;
  padding:.32rem .75rem;font-size:.72rem;transition:.3s var(--ease)}
.ftr__langs a:hover{background:#fff;color:var(--ink);border-color:#fff}
.ftr__langs a.on{background:rgba(255,255,255,.14);color:#fff}
.ftr__bot{padding-block-start:2rem;display:flex;justify-content:space-between;
  gap:1rem;flex-wrap:wrap;font-size:.76rem}
@media (max-width:900px){.ftr__grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.ftr__grid{grid-template-columns:1fr}}

/* --------------------------------------------------------------------------
   LA TESTATA ILLUSTRATA DELLE PAGINE INTERNE (0.19.0)
   --------------------------------------------------------------------------
   Shortcode [ddk_hero]. Serve a /richiesta-accesso/ e /area-riservata/, che
   fino a ieri cominciavano con un modulo su fondo bianco e basta.

   ⚠️ NON E' `.hero`. Quella e' l'apertura della home. Due token diversi che
   non si incontrano mai: si puo' cambiare l'una senza guardare l'altra.

   ALTEZZA CONTENUTA, ed e' la regola che regge tutto il resto: sotto c'e' un
   modulo da compilare, e una testata a schermo pieno lo nasconderebbe. Chi
   arriva deve vedere che c'e' da fare qualcosa.
   -------------------------------------------------------------------------- */

/* A TUTTA LARGHEZZA SENZA translateX.
   E' la tecnica gia' pagata il 31/07 su .band e .qualita: `transform` e' una
   proprieta' FISICA e in arabo non si specchia, mentre margin-inline si'.
   Qui non c'e' nessuna trasformazione, quindi funziona nei due versi senza
   eccezioni da mantenere. */
.ddk-hero{position:relative;isolation:isolate;overflow:hidden;
  width:100vw;margin-inline:calc(50% - 50vw);
  background:var(--ink);color:#fff}

/* ⚠️ SULLE PAGINE CON UNO STRUMENTO L'ALLARGAMENTO NON SERVE, E FA DANNO.
   Li' il contenitore e' gia' largo quanto la pagina, quindi `100vw` diventa
   piu' largo di lui della misura della barra di scorrimento — che in `vw` ci
   sta dentro e nel contenitore no. Il risultato sono una decina di pixel di
   scorrimento orizzontale su tutta la pagina, il difetto che non si nota
   guardando e si nota usando. Qui la fascia e' gia' a tutta larghezza da se'. */
.pagina-interna.ha-strumento .ddk-hero{width:auto;margin-inline:0}

/* IL RISUCCHIO IN CIMA, e senza questo la testata galleggerebbe in mezzo al
   bianco invece di attaccarsi alla barra di navigazione.
   .pagina-interna.ha-strumento tiene uno spazio in cima per non finire sotto
   la testata fissa; qui quello spazio lo rimangiamo e lo rimettiamo DENTRO la
   fascia, cosi' l'immagine arriva fin sotto il menu e il testo resta al
   sicuro. Il valore e' lo stesso della regola piu' su: se cambia li', cambia
   anche qui. */
.pagina-interna.ha-strumento .ddk-hero{
  margin-block-start:calc((var(--hdr-h) + clamp(1.4rem,3vw,2.6rem)) * -1)}

.ddk-hero__fondo{position:absolute;inset:0;z-index:-1}
.ddk-hero__fondo .ddk-hero__ph,
.ddk-hero__fondo img{width:100%;height:100%;display:block}
.ddk-hero__fondo img{object-fit:cover}

/* IL VELO SULL'IMMAGINE. Non e' un effetto: e' quello che rende leggibile il
   testo bianco. Una foto di laboratorio ha zone chiare e zone scure, e senza
   velo il titolo si legge su meta' immagine e sparisce sull'altra meta'.
   Piu' fitto dal lato da cui si comincia a leggere — inset-inline-start, che
   in arabo passa a destra da solo. */
.ddk-hero__fondo::after{content:"";position:absolute;inset:0;
  background:linear-gradient(to bottom,rgba(16,24,32,.88) 0%,rgba(16,24,32,.6) 34%,rgba(16,24,32,.7) 100%),
    linear-gradient(to right,rgba(16,24,32,.7),rgba(16,24,32,.1) 78%)}
[dir="rtl"] .ddk-hero__fondo::after{
  background:linear-gradient(to bottom,rgba(16,24,32,.88) 0%,rgba(16,24,32,.6) 34%,rgba(16,24,32,.7) 100%),
    linear-gradient(to left,rgba(16,24,32,.7),rgba(16,24,32,.1) 78%)}

/* Lo spazio in cima rimette quello che la fascia si e' rimangiata sopra: la
   testata del sito e' fissa e galleggia, il testo non ci deve finire dietro. */
.ddk-hero__corpo{position:relative;
  padding-block:calc(var(--hdr-h) + clamp(2.2rem,5vw,3.6rem)) clamp(2.4rem,5vw,3.8rem)}

/* Il titolo non usa --fs-display: quella misura e' della home, dove sotto non
   c'e' niente da fare. Qui una riga in meno di titolo e' una riga in piu' di
   modulo visibile. */
/* ⚠️ TUTTO QUELLO CHE ENTRA QUI DENTRO VA RIVESTITO, UNO PER UNO.
   ────────────────────────────────────────────────────────────────────────
   `color:#fff` sulla sezione NON basta, e le due volte che l'ho dato per
   buono l'ho pagata (0.19.1 e 0.19.2, tutte e due segnalate da Riccardo
   guardando la pagina).

   Il motivo: l'ereditarieta' vale solo per chi il colore non ce l'ha. Ma in
   ddk-base.css i titoli dicono `h1,h2,h3,h4{color:var(--ink)}` e il testo
   dice `.lead{color:var(--g500)}` — dichiarazioni loro, nate quando sotto
   c'era sempre del bianco. Su una fotografia scura diventano un titolo nero
   su nero e un grigio medio illeggibile.

   Quindi qui sotto NON c'e' un elenco di ritocchi estetici: c'e' un elenco
   di elementi che si portano il proprio colore da casa. **Il giorno che
   dentro la hero si mette qualcosa di nuovo — un bottone, una lista, una
   nota — la domanda da farsi e' una sola: quell'elemento ha un `color` suo?
   Se si', va rifatto qui.**
   ──────────────────────────────────────────────────────────────────────── */
.ddk-hero h1,.ddk-hero h2,.ddk-hero h3{color:#fff}
.ddk-hero h1{font-size:var(--fs-h2);font-weight:600;line-height:1.06;
  letter-spacing:-.03em;margin:0;max-width:20ch}
.ddk-hero .eyebrow{color:#fff;opacity:.78;margin-block-end:1rem}
.ddk-hero .lead{max-width:52ch;margin-block-start:1.15rem;color:#fff;opacity:.92}

/* Il bottone "a contorno" e' grigio chiaro su testo scuro: qui sparirebbe il
   bordo e resterebbe il testo nero. Nella hero non ce n'e' ancora nessuno —
   la regola c'e' perche' il primo che ci si mette funzioni subito, invece di
   ripresentare lo stesso difetto una terza volta. */
.ddk-hero .btn--ghost{border-color:rgba(255,255,255,.6);color:#fff}
.ddk-hero .btn--ghost:hover{background:#fff;border-color:#fff;color:var(--ink)}

/* Stessa ragione: il motto e' bordeaux, e il bordeaux su una foto scura e'
   quasi nero. Qui resta bianco e si distingue per corsivo e opacita'. */
.ddk-hero .motto{color:#fff;opacity:.8}

/* ⚠️ `.btn--light` (fondo bianco, testo scuro) NON e' in questo elenco ed e'
   giusto cosi': e' nato apposta per i fondi scuri. Qui va bene com'e'. */

/* I link dentro la testata sono su fondo scuro: il bordeaux dei link delle
   pagine di testo qui non si leggerebbe. */
.ddk-hero a{color:#fff;text-decoration:underline;text-underline-offset:.18em}

/* LO STACCO DA QUELLO CHE VIENE DOPO (0.19.1).
   Senza, il modulo comincia attaccato al bordo della fotografia e sembra
   ritagliato dentro di lei invece che una cosa a se'. Sotto la hero c'e'
   sempre qualcosa da fare: gli si lascia l'aria per dire che comincia li'. */
.ddk-hero{margin-block-end:clamp(2.6rem,6vw,4.6rem)}

/* --------------------------------------------------------------------------
   LA TESTATA SOPRA LA HERO (0.19.1)
   --------------------------------------------------------------------------
   ⚠️ SEGNALATO DA RICCARDO GUARDANDO LA PAGINA, e non si poteva prevedere
   scrivendo: in cima alla pagina la testata e' trasparente e il suo testo e'
   grigio scuro, perche' fino a ieri sotto c'era sempre del bianco. Sotto una
   fotografia scura quel grigio sparisce — «Home» era illeggibile, il logo
   quasi.

   COME FA LA TESTATA A SAPERE COSA HA SOTTO. Glielo chiede alla pagina:
   `body:has(.ddk-hero)`. Non c'e' una classe da ricordarsi di mettere sul
   body ne' un elenco di indirizzi da tenere aggiornato — il giorno che una
   pagina nuova ha una hero, la testata si schiarisce da sola. E' lo stesso
   principio di ddk_front_pagina_strumento(): si chiede alla pagina cosa
   contiene invece di saperlo a memoria.

   SOLO FINCHE' E' TRASPARENTE. Appena si scorre, .is-stuck le mette il fondo
   bianco e i colori devono tornare quelli di sempre: da qui il `:not()`. */
body:has(.ddk-hero) .hdr:not(.is-stuck) .logo{color:rgba(255,255,255,.72);--ddk-logo-primario:#fff}
body:has(.ddk-hero) .hdr:not(.is-stuck) .lang__btn{color:rgba(255,255,255,.86)}
body:has(.ddk-hero) .hdr:not(.is-stuck) .lang__btn:hover{color:#fff}
body:has(.ddk-hero) .hdr:not(.is-stuck) .burger i{background:#fff}

/* ⚠️ LE VOCI DEL MENU SOLO DA SCHERMO LARGO, ed e' la parte che si sbaglia.
   Sotto i 1000px il menu non sta piu' in testata: diventa un pannello a fondo
   BIANCO. Schiarire le voci anche li' vorrebbe dire bianco su bianco, cioe'
   sostituire un difetto con lo stesso difetto dall'altra parte. */
@media (min-width:1001px){
  body:has(.ddk-hero) .hdr:not(.is-stuck) .nav__list a{color:rgba(255,255,255,.86)}
  body:has(.ddk-hero) .hdr:not(.is-stuck) .nav__list a:hover,
  body:has(.ddk-hero) .hdr:not(.is-stuck) .nav__list .current-menu-item > a{color:#fff}
  body:has(.ddk-hero) .hdr:not(.is-stuck) .nav__list a::after{background:#fff}

  /* Area riservata e' a contorno bordeaux: su una foto scura il bordeaux
     diventa quasi nero e il bottone sparisce insieme al bordo. Qui passa a
     contorno bianco — resta il bottone "leggero" dei due, che era il motivo
     per cui e' a contorno (decisione dell'1/08), ma si vede. */
  body:has(.ddk-hero) .hdr:not(.is-stuck) .ddk-voce-bottone--contorno > a{
    border-color:rgba(255,255,255,.65);color:#fff}
  body:has(.ddk-hero) .hdr:not(.is-stuck) .ddk-voce-bottone--contorno > a:hover{
    background:#fff;border-color:#fff;color:var(--ink)}
}

/* IL MENU APERTO DA TELEFONO rimette la testata bianca (.nav-aperto), quindi
   logo e lineette devono tornare scuri o si perdono nel fondo. */
/* ⚠️ Il menu aperto sopra una hero: la testata torna a fondo bianco, quindi il
   logo deve tornare scuro. La riga su `color` c'era gia'; dalla 0.20.0 SERVE
   ANCHE rimettere --ddk-logo-primario, altrimenti «DDK» resta bianco su bianco
   e sparisce. La variabile ha una cascata sua: quella regola non la sovrascrive
   solo perche' viene dopo e cambia `color`. */
body:has(.ddk-hero).nav-aperto .hdr .logo{
  color:var(--ink);--ddk-logo-primario:var(--ddk-primario, #8a1c2b)}
body:has(.ddk-hero).nav-aperto .hdr .lang__btn{color:var(--g700)}
body:has(.ddk-hero).nav-aperto .hdr .burger i{background:var(--ink)}

/* Da telefono si stringe, ma non si accorcia oltre: sotto una certa altezza
   l'immagine non si capisce piu' cosa sia e tanto varrebbe toglierla. */
@media (max-width:700px){
  .ddk-hero h1{max-width:none}
  .ddk-hero__corpo{padding-block-end:clamp(1.8rem,6vw,2.6rem)}
}

/* L'ENTRATA.
   ⚠️ IL TESTO NON LO ANIMA QUESTO FOGLIO, e non e' una dimenticanza.
   [ddk_occhiello] e [ddk_testo] escono gia' con `data-r`, e [ddk_titolo] con
   `.lines`: l'osservatore in ddk-front.js li fa entrare da se', come su tutte
   le sezioni della home. Aggiungere qui una seconda animazione significa
   averne due sullo stesso elemento che si contendono opacita' e posizione —
   e poi non si capisce piu' quale delle due fa cosa.
   Resta solo l'immagine, che un `data-r` non ce l'ha: entra da un
   ingrandimento, e `scale` e' simmetrico, quindi in arabo fa lo stesso.
   Nessun translateX: e' la trappola gia' pagata quattro volte. */
@keyframes ddk-hero-fondo{from{transform:scale(1.07)}to{transform:none}}

@media (prefers-reduced-motion:no-preference){
  .ddk-hero__fondo img{animation:ddk-hero-fondo 1.4s var(--ease) both}
}
