* { box-sizing:border-box; }
html,body { width:100%;height:100%;margin:0;overflow:hidden;background:#fff;color:#111;font-family:Arial,Helvetica,sans-serif;-webkit-text-size-adjust:100%;text-size-adjust:100%; }
[hidden] { display:none!important; }
.signage { width:100%;height:100%;padding:1.2vh 1.1vw;display:grid;grid-template-rows:8vh minmax(0,1fr) 13vh;gap:1.3vh; }
.page-header { min-width:0;display:flex;align-items:center; }
.page-header h1 { width:100%;font-size:7.1vh;line-height:1;margin:0;font-weight:900;letter-spacing:-.22vh;white-space:nowrap; }
.content { min-width:0;min-height:0;display:grid;grid-template-columns:minmax(0,72fr) minmax(0,28fr);gap:1.3vw; }
.carousel-frame { position:relative;min-width:0;min-height:0;border:1px solid #aeb4b8;border-radius:1.5vh;display:flex;align-items:center;justify-content:center;padding:1.8vh;overflow:hidden; }
.carousel-frame img { display:block;max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain;border-radius:1.2vh; }
.empty { font-size:5vh;color:#555;text-align:center; }
.shop { min-width:0;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto 17%;gap:1.3vh; }
.product-frame { min-width:0;min-height:0;border:1px solid #d1d1d6;border-radius:1.6vh;padding:1.2vh;display:flex;align-items:center;justify-content:center;overflow:hidden;color:#777;font-size:2.6vh; }
.product-frame img { display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;border-radius:1.2vh; }
.product-copy { min-width:0; }
.product-copy h2 { font-size:3.7vh;font-weight:700;line-height:1.08;letter-spacing:-.05vh;margin:0 0 .7vh;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:break-word; }
#product-price { margin:0 0 1vh;line-height:1.18;font-size:2.5vh;color:#333;overflow-wrap:break-word; }
#price { font-weight:600; }#quantity { font-size:2vh; }
#quantity:not(:empty)::before { content:' · '; }
.cta { display:inline-block;max-width:100%;padding:.8vh .7vw;border-radius:.7vh;background:#ee922d;color:white;font-size:1.45vh;font-weight:bold;line-height:1.25;white-space:nowrap; }
.ortona { min-width:0;min-height:0;display:flex;align-items:center;justify-content:center; }
.ortona img { display:block;max-width:100%;max-height:100%;object-fit:contain; }
.ortona p { margin:0;text-align:center;color:#173449;font-size:2.6vh;font-weight:700;line-height:1.12; }
.ortona span { display:block;font-size:2vh;font-weight:400; }
.footer-bar { min-width:0;min-height:0;display:grid;grid-template-columns:minmax(0,8fr) minmax(0,58fr) minmax(0,9fr) minmax(0,18fr) minmax(0,7fr);align-items:center;padding:.8vh .7vw;border:1px solid #aeb3be;border-radius:2vh;color:#fff;background:linear-gradient(180deg,#8f96a4,#697381); }
.footer-bar>div,.footer-bar>section { min-width:0; }
.tv-brand { height:100%;display:flex;align-items:center;justify-content:center; }
.tv-brand img { display:block;max-height:100%;max-width:100%;object-fit:contain; }
.news { padding:0 1.1vw;border-left:1px solid #c2c6cd;border-right:1px solid #c2c6cd; }
.news-top { display:flex;justify-content:space-between;align-items:center;margin-bottom:.6vh;gap:1vw; }
.source { display:inline-block;padding:.4vh .55vw;border-radius:.65vh;background:#d35a4a;font-size:1.9vh;font-weight:700;white-space:nowrap; }
.source.gazzetta { background:#c5d1b7;color:#1c2918; }.source.ilcentro { background:#9ac7e8;color:#0e2a42; }.source.adn { background:#f6d66e;color:#4a3c00; }
#news-count { font-size:1.7vh;opacity:.85; }
#news-text { font-size:2.65vh;margin:0;line-height:1.15;height:2.3em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical; }
.weather { padding:0 .7vw; }
.weather-line { display:flex;align-items:center;justify-content:center;gap:.3vw;font-size:3vh; }
.weather-line img { width:4.3vh;height:4.3vh; }
.astro { display:flex;justify-content:center;align-items:center;gap:.6vw;height:3.5vh; }
.astro img,.astro svg { width:3.5vh;height:3.5vh;display:block; }
.date { text-align:center;line-height:1.15;padding:0 .5vw; }
.date strong { display:block;font-size:2.6vh; }.date span { display:block;font-size:1.9vh;margin-top:.4vh; }
.time { border-left:1px solid #c2c6cd;text-align:center;font-size:4.9vh;font-weight:700;line-height:.92; }
.time span { display:block; }
.script-error { position:fixed;top:0;left:0;right:0;background:#fff1c8;color:#111;padding:1em; }
