/* **La velatura cinematografica.** Decisa il 10 agosto 2026 sulle foto tonde
   delle categorie (views/cura_area.php) e ripresa dall'owner il 16 settembre:
   *«devi mettere sempre la velatura standard che avevamo deciso per effetto
   cinema»*. Sta scritta **una volta sola, qui**: una fotografia caricata dalla
   gestione entra nel mondo scuro del sito senza che nessuno debba ricordarsi
   di velarla a mano. La stessa riga e' ricopiata nell'anteprima della pagina
   «Il sito — testi e immagini» (views/admin/pagine.php, .fuoco img), che deve
   mostrare quello che si vedra' davvero. Se cambia qui, cambia anche li'. */
:root{
  --ap5-velatura:saturate(.72) contrast(1.06) brightness(.82) sepia(.12);
  /* **Lo stesso colore, dove il buio ce l'ha gia' il fondo.** Una fotografia che
     sta al 32% di opacita' sopra il nero e' gia' scura per conto suo: aggiungerci
     anche `brightness(.82)` la fa sparire. Qui resta la stessa tinta — la
     saturazione, il contrasto, il caldo — senza il secondo velo di buio. Serve
     alle scene delle pagine categoria; l'apertura e le foto usano quella sopra. */
  --ap5-velatura-fondo:saturate(.72) contrast(1.06) sepia(.12);
  /* **Quanto e' alta una fascia del sito, una volta per tutte.**
     L'owner, il 21 settembre 2026: *«la dimensione corretta di tutti i banner
     dovrebbe essere come sezione skin scanner»*, e prima: *«le immagini sono
     enormi»*.
     Aveva ragione due volte. Ogni fascia aveva un'altezza sua scritta a mano —
     la SPA e il Viso 780, la stagione 660, il regalo 860 — e la Skin Scanner,
     l'unica su cui ero intervenuto, 380-560. Risultato: fasce alte come uno
     schermo intero, con la fotografia enorme e il testo perso in mezzo.
     Adesso la misura e' **una sola e sta qui**: cambiandola qui cambiano
     tutte, e non si puo' piu' dimenticarne una.

     **Il 22 settembre 2026 questo numero era sbagliato, e si vedeva.** L'owner,
     dopo l'installazione: *«in home nei giorni scorsi c'erano piu' banner con
     foto che portavano alle pagine, come mai spariscono?»*. Nessuna fascia era
     sparita — misurate una per una ci sono tutte, e una in piu' («Visita il
     centro»). Era **l'altezza**: la Skin Scanner, la fascia che l'owner aveva
     indicato come misura giusta, viene alta **800px** perche' e' il suo testo a
     decidere; le altre, appese a questo numero, uscivano a **475px**. Quaranta
     per cento piu' basse del metro che dovevano seguire. Una fotografia in una
     striscia cosi' non racconta niente, e dall'alto della pagina sembra che il
     banner non ci sia.
     Adesso il numero punta davvero dove diceva l'owner: su uno schermo normale
     una fascia esce fra i 700 e gli 800 pixel, come la Skin Scanner. Sotto,
     `clamp` la accorcia da sola invece di mangiarsi lo schermo.

     **Il minimo resta basso di proposito.** Rilievo della revisione: con un
     minimo alto, una finestra corta — mezzo schermo, un portatile piccolo —
     si sarebbe ritrovata una fascia piu' alta della finestra stessa, che e' il
     difetto di partenza tornato dall'altra parte. Sotto i 568 pixel di
     finestra comanda il 420, e la fascia sta dentro lo schermo.
     Sul telefono non entra nemmeno in gioco: li' comanda
     `--ap5-fascia-telefono`, che la fascia se la tiene a 300.
     [[dle-provare-effetto-non-attributo]] */
  --ap5-fascia:clamp(420px,74vh,800px);
  /* **«Rimpicciolisci» vuol dire fascia piu' bassa, non foto piu' piccola in
     mezzo al vuoto.** L'owner, il 21 settembre 2026: *«se le riduco ora lo
     spazio dello sfondo resta cosi' con foto anche piccola. deve trasformarsi
     tutta la sezione»*. La pagina mette questo numero sulla sezione quando la
     fotografia e' sotto il 100%, e la fascia si accorcia con lei. */
  --ap5-fascia-telefono:300px;
  /* **La scena di una pagina categoria e' piu' alta di una fascia della home,
     e c'e' un motivo.**

     Nella home la fotografia sta in una colonna sua, accanto al testo: si vede
     tutta, a piena luce. Nelle pagine categoria invece la fotografia **sta
     dietro** al testo, velata al 32%: e' un fondo, e un fondo per raccontare
     qualcosa ha bisogno di spazio.

     Il 21 settembre 2026 le scene sono passate da `90vh` — 1108 pixel su un
     monitor alto, con le fotografie sdraiate ingrandite due volte e mezza — alla
     misura della home. L'owner, guardandole: *«forse adesso i banner dei
     trattamenti sono un po' troppo bassi, le immagini sotto non si vedono quasi
     piu'»*. Aveva ragione: da un eccesso all'altro.

     Questa e' la via di mezzo, ed e' una misura sua: circa **tre quarti** di
     quello che era. La fotografia torna a vedersi e l'ingrandimento resta
     lontano dal 2,3 di prima. */
  --ap5-scena:clamp(460px,66vh,780px);
  --ap5-ink:#0e0d0c;
  --ap5-ink-soft:#171513;
  --ap5-paper:#f3efe9;
  --ap5-paper-soft:#e8e0d6;
  --ap5-ivory:#fffaf3;
  --ap5-champagne:#c7ab82;
  --ap5-bronze:#95704d;
  --ap5-muted:#7a7169;
  --ap5-line:rgba(255,255,255,.13);
  --ap5-line-dark:rgba(14,13,12,.14);
  --ap5-max:1320px;
  --ap5-radius:24px;
  --ap5-shadow:0 34px 90px rgba(0,0,0,.24)
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ap5-ink);color:var(--ap5-ivory);font-family:Arial,Helvetica,sans-serif;line-height:1.65}
img{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{font-family:Georgia,"Times New Roman",serif;font-weight:400;line-height:1.04}
h1{font-size:clamp(3.25rem,7.8vw,7.9rem);letter-spacing:-.05em}
/* **I titoli delle fasce sono quelli della Skin Scanner.**
   L'owner, il 21 settembre 2026: *«non c'entra skin scanner, quella e' l'unica
   visualizzazione corretta, le altre hanno tutte immagini e testi giganti»*.
   Ed era vero: il titolo di una fascia arrivava a **5,25rem — 84 pixel** —
   mentre la Skin Scanner, l'unica dove ero intervenuto, stava a 2,4rem. Un
   titolo alto quanto mezza fotografia costringeva la fascia a essere alta il
   doppio, ed e' da li' che nascevano sia i testi giganti sia le immagini
   enormi: le due cose erano lo stesso difetto. */
h2{font-size:clamp(1.7rem,2.6vw,2.4rem);letter-spacing:-.02em;line-height:1.15}
h3{font-size:clamp(1.5rem,2.4vw,2.45rem)}
p{font-size:clamp(1rem,1.15vw,1.16rem)}
.ap5-shell{width:min(calc(100% - 42px),var(--ap5-max));margin:auto}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.skip-link{position:fixed;top:10px;left:10px;z-index:999;background:#fff;color:#111;padding:10px 14px;transform:translateY(-160%)}
.skip-link:focus{transform:none}

.ap5-eyebrow{text-transform:uppercase;letter-spacing:.2em;font-size:.72rem;font-weight:700;color:var(--ap5-champagne)}
.ap5-lead{font-size:clamp(1.2rem,1.8vw,1.65rem);color:#5b544e}
.ap5-section{padding:clamp(90px,10vw,160px) 0}
.ap5-dark{background:var(--ap5-ink-soft)}
.ap5-section-head{max-width:920px;margin-bottom:54px}
.ap5-section-head--center{text-align:center;margin-inline:auto}

.ap5-header{position:fixed;inset:0 0 auto;z-index:100;padding:20px 0;color:#fff;transition:.4s}
.ap5-header.is-scrolled{background:rgba(14,13,12,.95);backdrop-filter:blur(18px);box-shadow:0 1px 0 rgba(255,255,255,.1)}
.ap5-header__inner{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:32px}
.ap5-brand img{width:176px}
.ap5-nav{display:flex;justify-content:center;gap:23px}
.ap5-nav a,.ap5-phone{text-decoration:none}
.ap5-nav a{position:relative;font-size:.8rem;letter-spacing:.11em;text-transform:uppercase}
.ap5-nav a:after{content:"";position:absolute;left:0;right:100%;bottom:-8px;height:1px;background:var(--ap5-champagne);transition:.35s}
.ap5-nav a:hover:after{right:0}
.ap5-phone{display:flex;flex-direction:column;align-items:flex-end;font-size:.72rem;line-height:1.3}
.ap5-phone strong{font-size:.9rem}
.ap5-menu-toggle{display:none;border:0;background:none;color:inherit;padding:8px}
.ap5-menu-toggle span{display:block;width:24px;height:1px;background:currentColor;margin:5px}

.ap5-hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden;background:#070706}
.ap5-hero__media,.ap5-hero__shade,.ap5-hero__beam{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ap5-hero__shade{background:linear-gradient(180deg,rgba(0,0,0,.16),rgba(0,0,0,.8))}
.ap5-hero__beam{background:radial-gradient(circle at 72% 34%,rgba(255,220,170,.2),transparent 22%),radial-gradient(circle at 48% 75%,rgba(255,255,255,.07),transparent 35%);mix-blend-mode:screen;animation:ap5Beam 11s ease-in-out infinite alternate}
@keyframes ap5Beam{from{transform:translate3d(-1.5%,0,0) scale(1)}to{transform:translate3d(1.5%,-1%,0) scale(1.03)}}
.ap5-hero__content{position:relative;z-index:2;padding-bottom:10vh}
.ap5-hero__lead{max-width:760px;font-size:clamp(1.1rem,1.7vw,1.5rem);color:rgba(255,255,255,.82)}
.ap5-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
/* **Un pulsante vero non e' un link.** L'owner, il 17 settembre 2026, guardando
   i riquadri dei massaggi: «leggi sul fondo bianco non si vede». Il difetto:
   queste regole erano nate per i `<a>`, che non hanno un fondo loro; su un
   `<button>` il browser mette il suo — un grigio quasi bianco — e «Leggi»,
   scritto in bianco, spariva dentro. Da qui in poi il fondo e il bordo li
   decidiamo noi, e il carattere e' quello del sito anche dentro un pulsante. */
.ap5-button{display:inline-flex;align-items:center;justify-content:center;padding:14px 23px;border-radius:999px;text-decoration:none;text-transform:uppercase;letter-spacing:.08em;font-size:.82rem;transition:.3s;background:transparent;border:0;font-family:inherit;cursor:pointer}
.ap5-button:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(0,0,0,.18)}
.ap5-button--light{background:var(--ap5-ivory);color:#111}
.ap5-button--outline{border:1px solid rgba(255,255,255,.55);color:#fff}
.ap5-button--dark{background:var(--ap5-ink);color:#fff}
.ap5-button--ghost-dark{border:1px solid rgba(14,13,12,.35);color:var(--ap5-ink)}
.ap5-scroll{position:absolute;right:4vw;bottom:4vh;z-index:3;width:52px;height:52px;border:1px solid rgba(255,255,255,.28);border-radius:50%}
.ap5-scroll span{position:absolute;left:50%;top:13px;width:1px;height:22px;background:#fff}
.ap5-scroll span:after{content:"";position:absolute;bottom:0;left:-3px;width:7px;height:7px;border-right:1px solid #fff;border-bottom:1px solid #fff;transform:rotate(45deg)}

.ap5-manifesto{background:var(--ap5-paper);color:var(--ap5-ink)}
.ap5-manifesto__grid{display:grid;grid-template-columns:.7fr 1.5fr;gap:8vw}

.ap5-spotlight{display:grid;grid-template-columns:1.15fr .85fr;min-height:calc(var(--ap5-fascia) * var(--ap-z,1))}
/* **La fascia specchiata: la fotografia passa a destra.**
   Serve dal 22 settembre 2026, da quando la SPA e l'Head spa sono due fasce
   invece di una. Due bande a due colonne con la fotografia sempre dallo stesso
   lato, a uno schermo di distanza, si leggono come la stessa banda stampata
   due volte. Scambiando le colonne le due porte si distinguono anche da
   lontano, e l'occhio attraversa la pagina invece di scendere dritto.
   Sul telefono non vale: li' le colonne diventano una sopra l'altra e la
   fotografia deve restare sopra il testo, come in tutte le altre. */
.ap5-spotlight--specchio{grid-template-columns:.85fr 1.15fr}
.ap5-spotlight--specchio .ap5-spotlight__media{order:2}
.ap5-spotlight--specchio .ap5-spotlight__copy{order:1}
.ap5-spotlight--dark{background:var(--ap5-ink)}
.ap5-spotlight--light{grid-template-columns:.85fr 1.15fr;background:var(--ap5-paper-soft);color:var(--ap5-ink)}
.ap5-spotlight__media{position:relative;overflow:hidden}
/* **Le luci e le ombre di un banner, scritte una volta sola.**
   L owner, il 22 settembre 2026: *«la foto della home deve avere gli stessi
   effetti luce ed ombre di quella che hai messo in alto nella pagina del menu
   spa»*, e subito dopo: *«tieni sempre le stesse caratteristiche delle img
   tutte uguali nei banner»*.
   Aveva ragione e la differenza era vera: in cima a una pagina categoria la
   fotografia ha una luce calda che entra da destra in alto e un buio che
   cresce verso il basso; in home aveva solo una vignettatura nera tutt intorno.
   Due trattamenti diversi per la stessa cosa.
   Adesso il disegno sta **qui**, in `.ap5-luci`, e lo usano tutti e due: le
   fasce della home e le scene delle pagine categoria. Cambiando questi numeri
   cambiano insieme, e non si puo' piu' averne una diversa dall altra. */
.ap5-luci{position:absolute;inset:-6%;pointer-events:none;background:
  radial-gradient(circle at var(--lx,70%) var(--ly,34%),var(--ap5-luce,rgba(255,222,176,.30)),transparent 42%),
  linear-gradient(180deg,rgba(14,13,12,var(--ap5-buio-alto,.26)),rgba(14,13,12,var(--ap5-buio-basso,.68)))}
.ap5-spotlight__media:after,.ap5-season__media:after{content:"";position:absolute;inset:-6%;pointer-events:none;background:
  radial-gradient(circle at var(--lx,70%) var(--ly,34%),var(--ap5-luce,rgba(255,222,176,.30)),transparent 42%),
  linear-gradient(180deg,rgba(14,13,12,var(--ap5-buio-alto,.26)),rgba(14,13,12,var(--ap5-buio-basso,.68)))}
/* La fascia chiara tiene le stesse luci, con il buio piu' leggero: il testo
   accanto sta su fondo avorio e un buio da fascia scura la farebbe stonare. */
.ap5-spotlight--light .ap5-spotlight__media:after{--ap5-buio-alto:.10;--ap5-buio-basso:.34}
/* **La fotografia non decide quanto e' alta la fascia.**
   L'owner, il 21 settembre 2026, davanti al «consiglio del momento» sul suo
   monitor largo: *«questo e' ancora gigante»*. Ed era vero, anche dopo che
   avevo messo una misura unica: la misura era un **minimo**, e non bastava.
   Il difetto: `height:100%` dentro una colonna che non ha un'altezza sua **non
   si risolve**, e il browser ripiega sull'altezza naturale dell'immagine.
   Larga la colonna 1400 pixel, una foto 4:3 diventa alta 1050 — e la fascia
   con lei. Su uno schermo stretto non si vedeva; su un monitor largo la
   sezione prendeva tutto lo schermo e piu'.
   La cura: **la foto sta fuori dal conto**. In posizione assoluta non
   contribuisce all'altezza della riga: l'altezza la decidono il testo e la
   misura di fascia, e la foto riempie quello che c'e', tagliando. E' quello
   che l'owner aveva chiesto fin dall'inizio — *«deve trasformarsi tutta la
   sezione»* — e vale anche al contrario: rimpicciolendo la foto il riquadro
   non resta grande e vuoto. [[dle-immagini-pagine-zoom]] */
.ap5-spotlight__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ap5-spotlight__copy{padding:44px 6vw;display:flex;flex-direction:column;justify-content:center}
.ap5-text-link{display:inline-block;margin-top:20px;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:4px}
.ap5-inline-links{display:flex;flex-wrap:wrap;gap:22px}

/* **I tre riquadri sono larghi uguale.** L'owner, il 21 settembre 2026: *«fai i
   tre riquadri con le stesse dimensioni, non il primo piu' grande»*. Prima il
   primo era 1,15 contro 0,85 degli altri due: faceva da protagonista, e i tre
   massaggi non sono in ordine di importanza. */
.ap5-experience-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.ap5-experience{position:relative;min-height:540px;border-radius:var(--ap5-radius);overflow:hidden;box-shadow:var(--ap5-shadow)}
.ap5-experience img,.ap5-experience__shade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ap5-experience__shade{background:linear-gradient(180deg,transparent 24%,rgba(0,0,0,.84))}
.ap5-experience__copy{position:absolute;z-index:2;left:0;right:0;bottom:0;padding:34px}

.ap5-method{background:var(--ap5-paper);color:var(--ap5-ink)}
.ap5-method__grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--ap5-line-dark);border-left:1px solid var(--ap5-line-dark)}
.ap5-method__grid li{padding:34px;border-right:1px solid var(--ap5-line-dark);border-bottom:1px solid var(--ap5-line-dark)}
.ap5-method__grid span{display:block;color:var(--ap5-bronze);margin-bottom:52px}

.ap5-partner{margin:24px 0 30px;padding-top:22px;border-top:1px solid var(--ap5-line-dark);display:flex;flex-direction:column;gap:6px}
.ap5-partner span{font-size:.72rem;text-transform:uppercase;letter-spacing:.14em}
.ap5-partner strong{font-size:1.08rem}

.ap5-season{display:grid;grid-template-columns:1.15fr .85fr;background:#25211d;min-height:calc(var(--ap5-fascia) * var(--ap-z,1))}
/* **La colonna della foto non puo' collassare.** La sua altezza arriva dalla
   riga della griglia, che si allunga per via del `min-height` sulla sezione:
   funziona, ma dipende dal fatto che l'elemento si «stiri», e su Safari quel
   passaggio ha avuto i suoi bug con dentro un figlio in posizione assoluta.
   Questa riga e' la rete: la colonna ha comunque la sua misura.
   Rilievo della revisione, accolto. [[dle-vuoto-per-guasto]] */
.ap5-spotlight__media,.ap5-season__media{min-height:calc(var(--ap5-fascia) * var(--ap-z,1))}
.ap5-season__media{position:relative;overflow:hidden}
.ap5-season__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ap5-season__copy{padding:44px 6vw;display:flex;flex-direction:column;justify-content:center}

.ap5-gift{position:relative;min-height:calc(var(--ap5-fascia) * var(--ap-z,1));overflow:hidden}
.ap5-gift>img,.ap5-gift__shade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ap5-gift__shade{background:linear-gradient(90deg,rgba(0,0,0,.88),rgba(0,0,0,.28))}
.ap5-gift__content{position:relative;z-index:2;display:flex;align-items:center;min-height:calc(var(--ap5-fascia) * var(--ap-z,1))}
.ap5-gift__content>div{max-width:780px}
.ap5-gift__facts{display:flex;flex-wrap:wrap;gap:10px;margin:28px 0}
.ap5-gift__facts span{padding:9px 13px;border:1px solid rgba(255,255,255,.3);border-radius:999px;font-size:.78rem;letter-spacing:.05em}
.ap5-gift__note{max-width:720px;color:rgba(255,255,255,.72);font-size:.95rem}

.ap5-trust{background:var(--ap5-paper);color:var(--ap5-ink)}
.ap5-review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.ap5-review-grid blockquote{margin:0;padding:36px;background:var(--ap5-ivory);border-radius:var(--ap5-radius)}
.ap5-stars{letter-spacing:.18em;color:var(--ap5-bronze)}
.ap5-review-grid footer{font-size:.8rem;color:var(--ap5-muted)}

.ap5-social{background:#141210}
.ap5-social__head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:35px}
.ap5-social__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:0 10px}
.ap5-social__grid img{width:100%;aspect-ratio:4/5;object-fit:cover}

.ap5-contact{text-align:center;background:var(--ap5-ink)}
.ap5-contact .ap5-shell{max-width:920px}
.ap5-contact__phone{display:inline-block;margin:28px 0 12px;font-family:Georgia,serif;font-size:clamp(2.5rem,6vw,5.4rem);text-decoration:none}

.ap5-footer{padding:72px 0 26px;background:#070706;color:#fff}
.ap5-footer__grid{display:grid;grid-template-columns:1.2fr 1fr .7fr;gap:50px}
.ap5-footer h2{font-family:Arial,sans-serif;font-size:.82rem;text-transform:uppercase;letter-spacing:.16em}
.ap5-footer a{text-decoration:none}
.ap5-footer__logo{width:190px;margin-bottom:24px}
.ap5-footer__bottom{display:flex;justify-content:space-between;margin-top:58px;padding-top:20px;border-top:1px solid var(--ap5-line);font-size:.76rem;color:rgba(255,255,255,.58)}

.js .ap5-reveal{opacity:0;transform:translateY(32px);transition:opacity .9s ease,transform .9s ease}
.js .ap5-reveal.is-visible{opacity:1;transform:none}

@media(max-width:1080px){
  .ap5-nav{gap:15px}
  .ap5-nav a{font-size:.74rem}
}
@media(max-width:980px){
  .ap5-header__inner{grid-template-columns:auto auto auto;justify-content:space-between}
  .ap5-menu-toggle{display:block}
  .ap5-nav{position:fixed;inset:84px 20px auto;background:#151311;color:#fff;padding:32px;border-radius:18px;box-shadow:var(--ap5-shadow);display:none;flex-direction:column}
  .ap5-nav.is-open{display:flex}
  .ap5-phone span{display:none}
  /* `minmax(0,1fr)`: `1fr` da solo non scende sotto la parola piu' lunga che
     la colonna contiene, e sui telefoni stretti la colonna finiva piu' larga
     dello schermo. */
  .ap5-manifesto__grid,.ap5-spotlight,.ap5-spotlight--light,.ap5-season,
  .ap5-spotlight--specchio{grid-template-columns:minmax(0,1fr)}
  /* Impilate, le colonne tornano nell'ordine naturale: fotografia sopra. */
  .ap5-spotlight--specchio .ap5-spotlight__media,
  .ap5-spotlight--specchio .ap5-spotlight__copy{order:0}
  /* Sul telefono le due colonne diventano una sopra l'altra: la fotografia
     prende la sua fascia, non mezzo schermo. */
  .ap5-spotlight__media,.ap5-season__media{min-height:calc(var(--ap5-fascia-telefono) * var(--ap-z,1));height:calc(var(--ap5-fascia-telefono) * var(--ap-z,1))}
  .ap5-experience-grid{grid-template-columns:1fr 1fr}
  .ap5-experience--wide{grid-column:1/-1}
  .ap5-method__grid{grid-template-columns:1fr 1fr}
  .ap5-review-grid{grid-template-columns:1fr}
  .ap5-footer__grid{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .ap5-shell{width:min(calc(100% - 28px),var(--ap5-max))}
  .ap5-brand img{width:148px}
  .ap5-phone{display:none}
  .ap5-header__inner{grid-template-columns:auto auto}
  .ap5-hero__content{padding-bottom:15vh}
  .ap5-actions .ap5-button{width:100%}
  .ap5-experience-grid,.ap5-method__grid,.ap5-footer__grid{grid-template-columns:1fr}
  .ap5-experience--wide{grid-column:auto}
  .ap5-social__head{align-items:flex-start;flex-direction:column}
  .ap5-social__grid{grid-template-columns:1fr 1fr}
  .ap5-footer__bottom{flex-direction:column;gap:8px}
}

/* **Le fotografie caricate dalla gestione portano sempre la velatura.**
   L'owner, il 16 settembre 2026: *«devi mettere sempre la velatura standard
   che avevamo deciso per effetto cinema»*. Vale per tutte le immagini della
   home che si cambiano da «Il sito — testi e immagini»: una foto chiara,
   scattata col telefono in una stanza illuminata, dentro una pagina nera
   stona — e chiedere a chi la carica di ricordarsene ogni volta vuol dire
   che prima o poi non succede. */
.ap5-cinema{filter:var(--ap5-velatura)}

/* **Il respiro: le fotografie del sito si muovono piano.**
 *
 * L'owner, il 21 settembre 2026: *«su tutte le img che c'erano prima c'era un
 * effetto cinematografico, non mi sembra che ci sia nelle img che hai
 * posizionato tu, le altre si muovono piano piano»*.
 *
 * Aveva visto giusto, e la causa era mia. Quel respiro c'era **solo sulle
 * pagine categoria** (`expZoom`/`expDrift` in `views/category.php`): sulla home
 * le fotografie sono sempre state ferme. E soprattutto: da quando l'owner puo'
 * ingrandire una foto, la pagina scriveva `transform:scale(...)` **nello stile
 * dell'elemento** — e uno stile scritto li' **batte qualunque animazione**.
 * Qualsiasi respiro aggiunto al foglio di stile non si sarebbe mai visto.
 *
 * La cura e' la stessa gia' usata sulle categorie: l'ingrandimento scelto
 * dall'owner viaggia come **numero** (`--ap-zoom`), e il respiro lo moltiplica
 * dentro la sua animazione. Cosi' le due cose convivono invece di scavalcarsi.
 *
 * Lento davvero: 22 secondi per andare e altrettanti per tornare. Deve essere
 * una cosa che si nota dopo un momento, non un carosello.
 * [[dle-velatura-cinema]] */
/* Il respiro parte da **1,03** e non da 1,04 di media: cosi' l'inquadratura
   piu' larga che il sito mostra e' praticamente quella che si sceglie
   nell'anteprima del pannello, e il movimento puo' solo stringere da li'. Il
   3% che resta serve a coprire lo spostamento: sotto, ai bordi comparirebbe
   il fondo. [[dle-immagini-sito-posizione]] */
@keyframes ap5Respiro{
  from{transform:scale(calc(var(--ap-zoom,1) * 1.03)) translate3d(-1.1%,.5%,0)}
  to{transform:scale(calc(var(--ap-zoom,1) * 1.10)) translate3d(1.1%,-1.1%,0)}
}
.ap5-hero__media,
.ap5-spotlight__media img,
.ap5-season__media img,
.ap5-gift>img,
.ap5-visita__sfondo{
  animation:ap5Respiro 22s ease-in-out infinite alternate
}
/* Niente `will-change` qui: su una pagina con sei fotografie che respirano
   insieme vorrebbe dire sei livelli tenuti aperti dalla scheda grafica tutto
   il tempo, e al centro il tablet e' uno solo e lavora tutto il giorno. Una
   `transform` animata il browser la promuove gia' da solo, quando serve.
   Rilievo della revisione, accolto. */
/* **Chi ha chiesto meno movimento non lo riceve.** E' un'impostazione del
   telefono o del computer, non un capriccio: c'e' gente a cui le immagini che
   si muovono danno la nausea. */
@media(prefers-reduced-motion:reduce){
  .ap5-hero__media,.ap5-spotlight__media img,.ap5-season__media img,
  .ap5-gift>img,.ap5-visita__sfondo{animation:none;transform:scale(var(--ap-zoom,1))}
  .ap5-hero__beam{animation:none}
}
