/* ============================================
   SERRY SRL — OFFERTA "FINO A 120 RATE SENZA ANTICIPO"
   Valida fino al 30/09/2026. Stili condivisi dagli elementi
   dell'offerta (home, schede prodotto, elenchi, contatti).
   La visibilità dipende da js/offerta.js (classe su <html>):
     .js-offerta       -> visibile solo a offerta in corso
     .js-offerta-fine  -> visibile solo a offerta scaduta
   A offerta finita basta togliere questo file, js/offerta.js
   e gli elementi .js-offerta dalle pagine.
   ============================================ */

/* ---------- Visibilità legata alla scadenza ---------- */
.js-offerta-fine { display: none !important; }
html.offerta-off .js-offerta { display: none !important; }
html.offerta-off .js-offerta-fine { display: block !important; }
html.offerta-off .hero-badge.js-offerta-fine,
html.offerta-off .product-badge.js-offerta-fine,
html.offerta-off .btn.js-offerta-fine,
html.offerta-off .btn-outline-white.js-offerta-fine { display: inline-flex !important; }
html.offerta-off .section-label.js-offerta-fine { display: inline-block !important; }

/* ---------- Riga legale (pubblicità del credito) ---------- */
.offerta-legale {
    font-size: 0.74rem;
    line-height: 1.55;
    color: var(--text-light);
    margin: 0;
}
.offerta-legale a { color: var(--primary-dark); text-decoration: underline; text-underline-offset: 2px; }
/* Link piccoli nelle righe legali: area di tocco allargata (padding + margine negativo, il disegno non si sposta) */
.offerta-legale a,
.offerta-nota-hero a { padding: 15px 4px; margin: 0 -4px; }

/* ---------- Home: pill nell'hero ---------- */
.offerta-pill {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 11px 14px 11px 22px;
    margin-bottom: 35px;
    border-radius: 50px;
    background: rgba(255, 255, 255, 0.12);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid rgba(201, 168, 118, 0.55);
    color: #fff;
    font-size: 0.88rem;
    font-weight: 500;
    letter-spacing: 0.02em;
    text-decoration: none;
    /* opacity/transform come .fade-in: senza, questa regola (caricata dopo style.css) toglie la dissolvenza d'entrata */
    transition: background 0.3s, border-color 0.3s, opacity 0.8s ease, transform 0.8s ease;
}
.offerta-pill:hover { background: rgba(255, 255, 255, 0.18); border-color: var(--primary-light); }
.offerta-pill b { color: var(--primary-light); font-weight: 600; }
.offerta-pill-freccia {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--primary);
    flex-shrink: 0;
    transition: transform 0.3s;
}
.offerta-pill:hover .offerta-pill-freccia { transform: translateX(3px); }
.offerta-pill-freccia svg { width: 14px; height: 14px; }
.offerta-nota-hero {
    max-width: 640px;
    margin: 30px auto 0;
    font-size: 0.72rem;
    line-height: 1.55;
    color: rgba(255, 255, 255, 0.64);
}
.offerta-nota-hero a { color: rgba(255, 255, 255, 0.85); text-decoration: underline; text-underline-offset: 2px; }
/* L'hero della home è alta una schermata con il contenuto centrato: con pill e nota in più, sulle finestre
   basse la pill finirebbe sotto la barra fissa (90px). Si riserva lo spazio della barra solo lì. */
@media (min-width: 769px) and (max-height: 820px) {
    html.offerta-on .hero-fullscreen { padding-top: 90px; }
}

/* ---------- Home: sezione offerta ---------- */
.offerta-home { padding: 100px 0; background: var(--bg-white); }
.offerta-home-griglia { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 60px; align-items: center; }
.offerta-home h2 {
    font-family: 'Playfair Display', serif;
    font-size: clamp(2rem, 3.6vw, 2.9rem);
    font-weight: 600;
    line-height: 1.12;
    margin-bottom: 20px;
}
.offerta-home h2 em { font-style: italic; color: var(--primary); }
.offerta-home-testo > p:not(.offerta-legale) { color: var(--text-medium); font-size: 1.02rem; line-height: 1.8; margin-bottom: 30px; }
.offerta-home-bottoni { display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 26px; }
.offerta-home-bottoni .btn { padding: 15px 30px; }
.offerta-home .offerta-legale { max-width: 520px; }
.offerta-trio { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.offerta-mini {
    display: flex;
    flex-direction: column;
    background: var(--bg-cream);
    border-radius: 16px;
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    transition: transform 0.3s, box-shadow 0.3s;
}
.offerta-mini:hover { transform: translateY(-5px); box-shadow: 0 14px 36px rgba(0, 0, 0, 0.09); }
.offerta-mini-img { aspect-ratio: 4 / 3; overflow: hidden; }
.offerta-mini-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s; }
.offerta-mini:hover .offerta-mini-img img { transform: scale(1.05); }
.offerta-mini-corpo { padding: 18px 18px 20px; display: flex; flex-direction: column; flex: 1; }
.offerta-mini-marca { font-size: 0.68rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--primary); }
.offerta-mini h3 { font-family: 'Playfair Display', serif; font-size: 1.12rem; font-weight: 600; line-height: 1.25; margin: 6px 0 2px; color: var(--text-dark); }
.offerta-mini-tipo { font-size: 0.8rem; color: var(--text-light); margin-bottom: 14px; }
.offerta-mini-prezzo { margin-top: auto; padding-top: 12px; border-top: 1px solid var(--border-light); font-size: 0.78rem; color: var(--text-medium); white-space: nowrap; }
.offerta-mini-prezzo strong { font-family: 'Playfair Display', serif; font-size: 1.15rem; font-weight: 600; color: var(--text-dark); }

/* ---------- Schede prodotto: box offerta nell'hero ----------
   Selettori con .page-hero davanti: le schede hanno nel loro <style> (caricato dopo questo file)
   .page-hero p { font-size: 1.02rem } e .hero-stat-float, che altrimenti vincerebbero. */
/* Fondo scuro e non il vetro quasi trasparente del riquadro originale: la dicitura legale deve reggere il contrasto
   anche quando sotto c'è la parte chiara della foto. */
.page-hero .offerta-box { border-color: rgba(201, 168, 118, 0.5); padding-bottom: 24px; background: rgba(20, 20, 20, 0.55); }
.offerta-box-etichetta { display: block; font-size: 0.7rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--primary-light); margin-bottom: 14px; }
.page-hero .offerta-box .hero-stat-float-label { margin-top: 8px; color: rgba(255, 255, 255, 0.8); }
/* "fino a" davanti al numero: le rate sono un massimo, non una durata garantita */
.page-hero .offerta-box-fino { margin: 0 6px 0 0; }
.offerta-box-prezzo { margin-top: 16px; padding-top: 14px; border-top: 1px solid rgba(255, 255, 255, 0.14); font-size: 0.85rem; color: rgba(255, 255, 255, 0.78); }
.offerta-box-prezzo strong { font-family: 'Playfair Display', serif; font-size: 1.3rem; font-weight: 600; color: #fff; }
.offerta-box-cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 16px;
    padding: 11px 18px;
    border-radius: 8px;
    background: var(--primary);
    color: #fff;
    font-size: 0.86rem;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.3s;
}
.offerta-box-cta:hover { background: var(--primary-dark); }
.offerta-box-cta svg { width: 15px; height: 15px; }
.page-hero .offerta-box-legale { margin: 14px 0 0; max-width: none; font-size: 0.68rem; line-height: 1.5; color: rgba(255, 255, 255, 0.78); }

/* ---------- Elenchi prodotti: bollino sulla card ---------- */
.model-card { position: relative; }
.offerta-tag {
    position: absolute;
    top: 14px;
    left: 14px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 7px 13px;
    border-radius: 20px;
    background: var(--text-dark);
    color: var(--primary-light);
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
    pointer-events: none;
}
.offerta-tag::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--primary-light); }

/* ---------- TOP TB: variante in offerta ---------- */
.variant-card { position: relative; }
html.offerta-on .variant-card.in-offerta { border-color: var(--primary-light); }
.variant-card .offerta-tag { top: 28px; left: auto; right: 22px; }

/* ---------- Contatti: avviso offerta sopra il modulo ---------- */
.offerta-avviso {
    margin: 0 0 26px;
    padding: 18px 20px;
    border-radius: 12px;
    background: var(--bg-cream);
    border: 1px solid var(--border-light);
    border-left: 4px solid var(--primary);
}
.offerta-avviso strong { display: block; font-family: 'Playfair Display', serif; font-size: 1.05rem; font-weight: 600; color: var(--text-dark); margin-bottom: 4px; }
.offerta-avviso p { font-size: 0.88rem; line-height: 1.6; color: var(--text-medium); margin: 0 0 8px; }
.offerta-avviso .offerta-legale { font-size: 0.72rem; }

/* ---------- Responsive ---------- */
@media (min-width: 769px) {
    /* "SMARTIA M630 PHOS" va su due righe: le tre schede tengono la stessa altezza del nome */
    .offerta-mini h3 { min-height: 2.5em; }
}
@media (max-width: 1024px) {
    .offerta-home-griglia { grid-template-columns: 1fr; gap: 44px; }
    .offerta-home-testo { max-width: 680px; }
}
@media (max-width: 768px) {
    .offerta-home { padding: 70px 0; }
    .offerta-trio { grid-template-columns: 1fr; gap: 14px; }
    .offerta-mini { flex-direction: row; }
    .offerta-mini-img { aspect-ratio: auto; width: 38%; flex-shrink: 0; }
    .offerta-mini-corpo { padding: 14px 16px; }
    .offerta-mini-tipo { margin-bottom: 10px; }
    .offerta-mini-prezzo { padding-top: 10px; }
    .offerta-home-bottoni .btn { flex: 1 1 100%; }
    .offerta-pill { font-size: 0.8rem; padding: 9px 10px 9px 16px; gap: 10px; margin-bottom: 26px; }
    .offerta-nota-hero { margin-top: 24px; }
}
@media (max-width: 480px) {
    .offerta-pill { font-size: 0.78rem; }
    .offerta-pill-pre { display: none; }
    .offerta-tag { font-size: 0.64rem; padding: 6px 11px; }
    .variant-card .offerta-tag { top: 30px; }
}
@media (max-width: 360px) {
    /* sui telefoni strettissimi il bollino coprirebbe l'etichetta della variante: va sopra, in flusso */
    .variant-card .offerta-tag { position: static; display: flex; width: fit-content; margin: 0 0 10px; }
}
