/*
Theme Name: Tiinvito Vetrina
Theme URI: https://tiinvito.it
Author: tiinvito
Description: Vetrina di tiinvito.it. La home renderizza il negozio; i minisiti restano file statici nella radice del sito (es. /demo-aurora.html).
Version: 4.8
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: tiinvito-vetrina
*/


  :root{
    --ink:        #28252F;   /* soft deep accent (per testi/accenti scuri) */
    --ink-2:      #FFFFFF;   /* superficie chiara sollevata (card, form) */
    --ink-line:   rgba(42,38,54,.12);
    --paper:      #FBF6EE;   /* fondo pagina chiaro e caldo */
    --paper-2:    #FFFFFF;   /* superficie bianca */
    --gold:       #C6A765;   /* champagne foil — accent */
    --gold-deep:  #7D5F26;   /* oro per TESTO: contrasto AA su chiaro */
    --cream:      #EEE7DA;
    --on-ink:     var(--ink);   /* testo scuro su superfici chiare */
    --on-ink-mut: #5E5D55;   /* testo secondario scuro */
    --on-paper:   var(--ink);
    --on-paper-mut:var(--on-ink-mut);

    --wed:   #D9A7A0;  /* matrimonio */
    --bat:   #A9C2D6;  /* battesimo */
    --com:   #E4CF8E;  /* comunione */
    --cre:   #A9BFA3;  /* cresima */
    --ann:   #B6A0C2;  /* anniversario */
    --lau:   #C9B79A;  /* laurea */
    --dic:   #B7A6D8;  /* 18 anni */
    --bim:   #9FC9DE;  /* primo compleanno */

    --serif: "Fraunces", Georgia, serif;
    --sans:  "Hanken Grotesk", system-ui, sans-serif;

    --maxw: 1180px;
    --radius: 14px;
    /* ===== DESIGN SYSTEM tiinvito — token ===== */
    /* tipografia: 9 passi */
    --fs-label: .75rem;     /* 12px — etichette maiuscole, badge */
    --fs-sm:    .8125rem;   /* 13px — note, didascalie, meta */
    --fs-body-s:.9375rem;   /* 15px — testi di card e liste */
    --fs-body:  1rem;       /* 16px — testo corrente */
    --fs-lead:  1.125rem;   /* 18px — sottotitoli, attacchi */
    --fs-md:    1.375rem;   /* 22px — titoli di card */
    --fs-lg:    1.75rem;    /* 28px — titoli in evidenza */
    --fs-h2:    clamp(2rem, 4vw, 2.75rem);
    --fs-h1:    clamp(2.6rem, 5.4vw, 4.1rem);
    /* spaziatura lettere: 3 valori */
    --ls-tight: -.02em;  --ls-wide: .04em;  --ls-caps: .18em;
    /* raggi: 4 valori (+ cerchio) */
    --r-sm: 10px; --r-md: 14px; --r-lg: 18px; --r-pill: 100px;
    /* ombre: 3 livelli, tinte con l'inchiostro */
    --sh-1: 0 10px 28px -18px rgba(40,37,47,.22);
    --sh-2: 0 18px 40px -22px rgba(40,37,47,.28);
    --sh-3: 0 30px 60px -30px rgba(40,37,47,.32);
    /* ritmo verticale */
    --sec-y: clamp(64px, 8vw, 104px);

  }

  *{box-sizing:border-box; margin:0; padding:0}
  html{scroll-behavior:smooth}
  body{
    font-family:var(--sans);
    background:var(--paper);
    color:var(--on-paper);
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  a{color:inherit; text-decoration:none}
  img{max-width:100%; display:block}
  ::selection{background:var(--gold); color:var(--ink)}

  .wrap{max-width:var(--maxw); margin:0 auto; padding:0 24px}
  .eyebrow{
    font-family:var(--sans); font-size:var(--fs-label); font-weight:600;
    letter-spacing:var(--ls-caps); text-transform:uppercase; color:var(--gold-deep);
    display:inline-flex; align-items:center; gap:.6em;
  }
  .eyebrow::before{content:""; width:26px; height:1px; background:var(--gold-deep); opacity:.6}
  h1,h2,h3{font-family:var(--serif); font-weight:500; line-height:1.08; letter-spacing:var(--ls-tight)}
  .ital{font-style:italic; font-weight:400}

  .btn{
    display:inline-flex; align-items:center; gap:.55em;
    font-weight:600; font-size:var(--fs-body-s); padding:.85em 1.5em;
    border-radius:var(--r-pill); cursor:pointer; border:1px solid transparent;
    transition:transform .25s ease, background .25s ease, color .25s ease, border-color .25s ease;
  }
  .btn-gold{background:var(--gold); color:var(--ink)}
  .btn-gold:hover{transform:translateY(-2px); background:#d4b878}
  .btn-ghost{border-color:var(--ink-line); color:var(--on-ink)}
  .btn-ghost:hover{border-color:var(--gold); color:var(--gold-deep)}
  .btn-dark{background:var(--ink); color:var(--paper)}
  .btn-dark:hover{transform:translateY(-2px); background:#23253a}
  .btn .arr{transition:transform .25s ease}
  .btn:hover .arr{transform:translateX(3px)}

  /* ---------- NAV ---------- */
  header.nav{
    position:sticky; top:0; z-index:60;
    backdrop-filter:saturate(140%) blur(10px);
    background:rgba(251,246,238,.72);
    border-bottom:1px solid transparent;
    transition:border-color .3s ease, background .3s ease;
  }
  header.nav.scrolled{border-color:var(--ink-line); background:rgba(251,246,238,.94)}
  .nav-in{display:flex; align-items:center; justify-content:space-between; height:74px}
  .brand{font-family:var(--serif); font-size:var(--fs-md); font-weight:600; letter-spacing:var(--ls-tight); display:flex; align-items:center; gap:.5em}
  .brand .seal{
    width:30px; height:30px; border-radius:50%;
    background:radial-gradient(circle at 35% 30%, #e0c684, var(--gold) 45%, var(--gold-deep));
    display:grid; place-items:center; box-shadow:0 0 0 1px rgba(255,255,255,.15) inset;
    font-size:var(--fs-sm); color:var(--ink); font-style:italic; flex:none;
  }
  .nav-links{display:flex; align-items:center; gap:34px}
  .nav-links a{font-size:var(--fs-body-s); color:var(--on-ink-mut); font-weight:500; transition:color .2s}
  .nav-links a:hover{color:var(--on-ink)}
  .nav-cta{display:flex; align-items:center; gap:14px}
  .burger{display:none; background:none; border:0; cursor:pointer; padding:8px; flex-direction:column; gap:5px}
  .burger span{width:24px; height:2px; background:var(--on-ink); transition:.25s}

  /* ---------- HERO ---------- */
  .hero{position:relative; padding:64px 0 96px; overflow:hidden}
  .hero::before{
    content:""; position:absolute; inset:0; z-index:0;
    background:
      radial-gradient(680px 420px at 78% 18%, rgba(198,167,101,.18), transparent 70%),
      radial-gradient(560px 460px at 8% 90%, rgba(169,194,214,.10), transparent 70%);
    pointer-events:none;
  }
  .hero-grid{position:relative; z-index:1; display:grid; grid-template-columns:1.05fr .95fr; gap:48px; align-items:center}
  .hero-copy h1{font-size:var(--fs-h1); margin:.5em 0 .45em}
  .hero-copy h1 em{color:var(--gold-deep)}
  .hero-copy .lead{font-size:var(--fs-lead); color:var(--on-ink-mut); max-width:33ch; margin-bottom:2em}
  .hero-actions{display:flex; gap:14px; flex-wrap:wrap; align-items:center}
  .hero-actions .note{font-size:var(--fs-sm); color:var(--on-ink-mut)}

  /* card fan signature */
  .fan{position:relative; height:440px}
  .card{
    position:absolute; width:236px; height:340px; left:50%; top:50%;
    border-radius:var(--r-md); padding:26px 22px;
    background:var(--paper); color:var(--on-paper);
    box-shadow:var(--sh-2);
    transform-origin:bottom center;
    transition:transform .6s cubic-bezier(.22,1,.36,1);
    display:flex; flex-direction:column; overflow:hidden;
  }
  .card .card-ph{
    margin:-26px -22px 16px; height:132px; flex:none;
    background-size:cover; background-position:center;
    border-bottom:2px solid var(--gold);
  }
  .card .occ{font-size:var(--fs-label); letter-spacing:var(--ls-caps); text-transform:uppercase; font-weight:600; color:var(--gold-deep)}
  .card .names{font-family:var(--serif); font-size:var(--fs-lg); line-height:1.12; margin-top:auto}
  .card .names em{font-style:italic; display:block; font-size:var(--fs-lead); color:var(--on-paper-mut); margin:.3em 0}
  .card .date{margin-top:14px; padding-top:14px; border-top:1px solid rgba(0,0,0,.12); font-size:var(--fs-sm); letter-spacing:var(--ls-caps); text-transform:uppercase; color:var(--on-paper-mut)}
  .card .corner{position:absolute; top:20px; right:20px; width:30px; height:30px; border-radius:50%;
    background:radial-gradient(circle at 35% 30%, #e0c684, var(--gold) 45%, var(--gold-deep));
    box-shadow:0 0 0 1px rgba(0,0,0,.08) inset}
  .card.c1{background:linear-gradient(160deg,#fff,#F4ECE9); transform:translate(-50%,-50%) rotate(-15deg) translateX(-86px)}
  .card.c2{background:linear-gradient(160deg,#fff,#EAF0F5); transform:translate(-50%,-50%) rotate(-1deg) translateY(-8px)}
  .card.c3{background:linear-gradient(160deg,#fff,#F7F0DE); transform:translate(-50%,-50%) rotate(13deg) translateX(86px); z-index:2}
  .fan:hover .card.c1{transform:translate(-50%,-50%) rotate(-20deg) translateX(-128px) translateY(-6px)}
  .fan:hover .card.c3{transform:translate(-50%,-50%) rotate(18deg) translateX(128px) translateY(-6px)}

  /* ---------- generic section ---------- */
  .sec{padding:96px 0}
  .sec-paper{background:var(--paper); color:var(--on-paper); border-radius:0; margin-top:-1px}
  .sec-paper .eyebrow{color:var(--gold-deep)}
  .sec-paper .eyebrow::before{background:var(--gold-deep)}
  .sec-head{max-width:620px; margin-bottom:54px}
  .sec-head h2{font-size:var(--fs-h2); margin:.45em 0 .35em}
  .sec-head p{color:var(--on-paper-mut); font-size:var(--fs-body)}
  .sec-dark .sec-head p{color:var(--on-ink-mut)}

  /* trust strip */
  .trust{display:flex; gap:40px; flex-wrap:wrap; align-items:center; justify-content:center;
    padding:26px 0; border-top:1px solid var(--ink-line); border-bottom:1px solid var(--ink-line)}
  .trust span{font-size:var(--fs-sm); letter-spacing:var(--ls-wide); color:var(--on-ink-mut); display:flex; align-items:center; gap:.6em}
  .trust .dot{color:var(--gold-deep)}

  /* occasions grid */
  .occ-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:18px}
  .occ-card{
    position:relative; display:flex; flex-direction:column; overflow:hidden;
    border-radius:var(--r-md); background:var(--paper-2);
    border:1px solid rgba(42,38,54,.08); box-shadow:var(--sh-1);
    cursor:pointer; isolation:isolate;
    transition:transform .3s ease, box-shadow .3s ease;
  }
  .occ-card:hover{transform:translateY(-5px); box-shadow:var(--sh-2)}
  .occ-card::before,.occ-card::after{display:none !important; content:none !important}
  .occ-card .card-photo{
    display:block; width:100%; aspect-ratio:4/3; flex:none;
    background-size:cover; background-position:center;
    border-bottom:4px solid var(--tint);
  }
  .occ-card .num{order:0; position:static; margin:16px 22px 0; font-family:var(--serif); font-style:italic; font-size:var(--fs-body); color:var(--gold-deep)}
  .occ-card .k{order:0; margin:4px 22px 0; font-family:var(--serif); font-size:var(--fs-md); font-weight:500; color:var(--on-paper)}
  .occ-card .d{order:0; margin:6px 22px 0; font-size:var(--fs-sm); line-height:1.55; color:var(--on-paper-mut)}
  .occ-card .go{order:0; margin:14px 22px 20px; font-size:var(--fs-sm); font-weight:600; letter-spacing:var(--ls-wide); text-transform:uppercase; display:flex; align-items:center; gap:.5em; color:var(--gold-deep)}

  /* how it works */
  .steps{display:grid; grid-template-columns:repeat(3,1fr); gap:30px; counter-reset:s}
  .step{position:relative; padding-top:30px}
  .step::before{counter-increment:s; content:"0" counter(s);
    font-family:var(--serif); font-style:italic; font-size:var(--fs-h2); color:var(--gold-deep);
    position:absolute; top:-14px; left:0}
  .step h3{font-size:var(--fs-md); margin:.4em 0 .35em; padding-top:18px; border-top:1px solid var(--ink-line)}
  .sec-paper .step h3{border-top-color:rgba(0,0,0,.1)}
  .step p{color:var(--on-paper-mut); font-size:var(--fs-body-s)}

  /* features + rsvp demo */
  .feat-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:48px; align-items:center}
  .feat-list{display:grid; grid-template-columns:1fr 1fr; gap:24px 30px}
  .feat{padding-left:34px; position:relative}
  .feat .ic{position:absolute; left:0; top:2px; width:22px; height:22px; color:var(--gold-deep)}
  .feat h4{font-family:var(--sans); font-weight:600; font-size:var(--fs-body); margin-bottom:2px}
  .feat p{font-size:var(--fs-body-s); color:var(--on-ink-mut)}

  .rsvp-demo{
    background:var(--ink-2); border:1px solid var(--ink-line); border-radius:var(--r-lg);
    padding:30px; box-shadow:var(--sh-2)}
  .rsvp-demo .tag{font-size:var(--fs-label); letter-spacing:var(--ls-caps); text-transform:uppercase; color:var(--gold-deep); font-weight:600}
  .rsvp-demo h4{font-family:var(--serif); font-size:var(--fs-md); font-weight:500; margin:.5em 0 1em}
  .rsvp-row{display:flex; gap:10px; margin-bottom:14px}
  .rsvp-row button{
    flex:1; padding:.8em; border-radius:var(--r-sm); border:1px solid var(--ink-line);
    background:transparent; color:var(--on-ink); font-family:var(--sans); font-weight:600; font-size:var(--fs-body-s); cursor:pointer;
    transition:.2s}
  .rsvp-row button:hover{border-color:var(--gold)}
  .rsvp-row button.active{background:var(--gold); color:var(--ink); border-color:var(--gold)}
  .rsvp-field{width:100%; padding:.8em 1em; border-radius:var(--r-sm); border:1px solid var(--ink-line);
    background:#fff; color:var(--on-paper); font-family:var(--sans); font-size:var(--fs-body-s); margin-bottom:14px}
  .rsvp-field::placeholder{color:var(--on-ink-mut)}
  .rsvp-msg{font-size:var(--fs-sm); color:var(--gold-deep); min-height:1.2em; font-weight:500}

  /* collections */
  .coll-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px}
  .coll{display:block; border-radius:var(--r-md); overflow:hidden; background:var(--ink-2); border:1px solid var(--ink-line); transition:transform .3s}
  .coll:hover{transform:translateY(-5px)}
  .coll .prev{height:200px; position:relative; display:grid; place-items:center; color:var(--ink); padding:20px; text-align:center}
  .coll .prev .mk{font-family:var(--serif)}
  .coll .prev .mk .ev{font-size:var(--fs-label); letter-spacing:var(--ls-caps); text-transform:uppercase; font-weight:600; opacity:.65}
  .coll .prev .mk .nm{font-size:var(--fs-lg); font-style:italic; margin:.2em 0; line-height:1}
  .coll .prev .mk .dt{font-size:var(--fs-label); letter-spacing:var(--ls-caps); text-transform:uppercase; opacity:.6}
  .coll .meta{padding:18px 20px; display:flex; align-items:center; justify-content:space-between}
  .coll .meta .nme{font-family:var(--serif); font-size:var(--fs-lead)}
  .coll .meta .ev2{font-size:var(--fs-sm); color:var(--on-ink-mut)}
  .coll .meta .demo{font-size:var(--fs-sm); font-weight:600; color:var(--gold-deep); display:flex; align-items:center; gap:.4em}

  /* pricing */
  .price-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; align-items:stretch}
  .plan{background:#fff; border-radius:var(--r-lg); padding:30px 28px; display:flex; flex-direction:column; border:1px solid rgba(0,0,0,.07)}
  .plan.feat-plan{background:linear-gradient(180deg,#FFFDF8,#FBF3E4); color:var(--on-paper); position:relative; transform:scale(1.03); border-color:var(--gold)}
  .plan .pn{font-family:var(--serif); font-size:var(--fs-md); font-weight:500}
  .plan .pp{font-size:var(--fs-h2); font-family:var(--serif); margin:.3em 0 .1em}
  .plan .pp small{font-size:var(--fs-body-s); color:var(--on-paper-mut); font-family:var(--sans)}
  .plan.feat-plan .pp small{color:var(--on-ink-mut)}
  .plan .sub{font-size:var(--fs-sm); color:var(--on-paper-mut); margin-bottom:20px}
  .plan.feat-plan .sub{color:var(--on-ink-mut)}
  .plan ul{list-style:none; margin:0 0 26px; display:grid; gap:10px; font-size:var(--fs-body-s)}
  .plan li{display:flex; gap:.6em; align-items:flex-start; color:var(--on-paper-mut)}
  .plan.feat-plan li{color:var(--on-ink-mut)}
  .plan li::before{content:"✓"; color:var(--gold-deep); font-weight:700; flex:none}
  .plan .btn{margin-top:auto; justify-content:center}
  .badge{position:absolute; top:-12px; left:50%; transform:translateX(-50%);
    background:var(--gold); color:var(--ink); font-size:var(--fs-label); font-weight:700; letter-spacing:var(--ls-caps);
    text-transform:uppercase; padding:.4em 1em; border-radius:var(--r-pill)}

  /* piano base gratuito */
  .free-box{margin-top:26px; display:grid; grid-template-columns:1.2fr .8fr; gap:34px; align-items:center;
    background:var(--paper-2); border:1px solid var(--ink-line); border-radius:var(--r-lg); padding:34px 36px;
    box-shadow:var(--sh-1)}
  .free-tag{display:inline-block; background:var(--cre); color:#2f4a38; font-size:var(--fs-label); font-weight:700;
    letter-spacing:var(--ls-caps); text-transform:uppercase; padding:.35em 1em; border-radius:var(--r-pill); margin-bottom:12px}
  .free-box h3{font-family:var(--serif); font-size:var(--fs-lg); font-weight:500; margin-bottom:.3em}
  .free-box .free-txt p{color:var(--on-paper-mut); font-size:var(--fs-body-s); max-width:52ch}
  .free-list{list-style:none; margin:16px 0 0; padding:0; display:grid; gap:8px; font-size:var(--fs-body-s)}
  .free-list li{display:flex; gap:.6em; align-items:flex-start; color:var(--on-paper-mut)}
  .free-list li::before{content:"✓"; color:var(--gold-deep); font-weight:700; flex:none}
  .free-form{background:var(--paper); border:1px solid var(--ink-line); border-radius:var(--r-md); padding:24px}
  .free-form label{display:block; font-size:var(--fs-label); letter-spacing:var(--ls-caps); text-transform:uppercase; color:var(--gold-deep); font-weight:600; margin-bottom:8px}
  .free-form input{width:100%; padding:.8em 1em; border-radius:var(--r-sm); border:1px solid var(--ink-line); background:#fff;
    color:var(--on-paper); font-family:var(--sans); font-size:var(--fs-body-s); margin-bottom:14px}
  .free-form input:focus{outline:none; border-color:var(--gold)}
  .free-note{display:block; text-align:center; color:var(--on-paper-mut); font-size:var(--fs-sm); margin-top:10px}
  @media(max-width:760px){ .free-box{grid-template-columns:1fr; gap:24px; padding:26px} }

  /* faq */
  .faq{max-width:760px; margin:0 auto}
  .q{border-bottom:1px solid rgba(0,0,0,.1)}
  .q summary{cursor:pointer; list-style:none; padding:22px 0; font-family:var(--serif); font-size:var(--fs-lead);
    display:flex; justify-content:space-between; align-items:center; gap:20px}
  .q summary::-webkit-details-marker{display:none}
  .q summary .pm{flex:none; width:24px; height:24px; position:relative; transition:transform .3s}
  .q summary .pm::before,.q summary .pm::after{content:""; position:absolute; background:var(--gold); border-radius:2px}
  .q summary .pm::before{top:11px; left:3px; width:18px; height:2px}
  .q summary .pm::after{top:3px; left:11px; width:2px; height:18px; transition:transform .3s}
  .q[open] summary .pm::after{transform:scaleY(0)}
  .q p{padding:0 0 22px; color:var(--on-paper-mut); font-size:var(--fs-body); max-width:64ch}

  /* final cta */
  .cta-final{text-align:center; padding:110px 0}
  .cta-final h2{font-size:var(--fs-h2); margin-bottom:.4em}
  .cta-final h2 em{color:var(--gold-deep)}
  .cta-final p{color:var(--on-ink-mut); max-width:46ch; margin:0 auto 2em; font-size:var(--fs-lead)}
  .quote-form{max-width:580px; margin:40px auto 0; text-align:left; background:var(--ink-2);
    border:1px solid var(--ink-line); border-radius:var(--r-lg); padding:34px; color-scheme:light;
    box-shadow:var(--sh-3)}
  .qf-row{display:grid; grid-template-columns:1fr 1fr; gap:16px}
  .qf-field{margin-bottom:16px}
  .qf-field.full{grid-column:1 / -1}
  .qf-field label{display:block; font-size:var(--fs-label); letter-spacing:var(--ls-caps); text-transform:uppercase; color:var(--gold-deep); font-weight:600; margin-bottom:8px}
  .qf-field input,.qf-field select,.qf-field textarea{width:100%; padding:.8em 1em; border-radius:var(--r-sm);
    border:1px solid var(--ink-line); background:#fff; color:var(--on-paper);
    font-family:var(--sans); font-size:var(--fs-body-s); transition:.2s}
  .qf-field input::placeholder,.qf-field textarea::placeholder{color:var(--on-ink-mut)}
  .qf-field input:focus,.qf-field select:focus,.qf-field textarea:focus{outline:none; border-color:var(--gold)}
  .qf-field textarea{resize:vertical; min-height:92px}
  .quote-msg{margin-top:16px; font-size:var(--fs-body-s); font-weight:500; min-height:1.2em; text-align:center}
  .quote-msg.ok{color:var(--gold-deep)}
  .quote-msg.err{color:#E2A6A0}
  @media(max-width:560px){.qf-row{grid-template-columns:1fr; gap:0}}

  /* footer */
  footer{background:var(--cream); border-top:1px solid var(--ink-line); padding:60px 0 34px}
  .foot-grid{display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:40px; margin-bottom:46px}
  .foot-grid .brand{margin-bottom:14px}
  .foot-grid p{color:var(--on-ink-mut); font-size:var(--fs-body-s); max-width:30ch}
  .foot-col h5{font-size:var(--fs-label); letter-spacing:var(--ls-caps); text-transform:uppercase; color:var(--on-ink-mut); margin-bottom:16px; font-weight:600}
  .foot-col a{display:block; font-size:var(--fs-body-s); color:var(--on-ink); margin-bottom:10px; opacity:.8; transition:.2s}
  .foot-col a:hover{opacity:1; color:var(--gold-deep)}
  .foot-bot{display:flex; justify-content:space-between; align-items:center; padding-top:26px;
    border-top:1px solid var(--ink-line); font-size:var(--fs-sm); color:var(--on-ink-mut); flex-wrap:wrap; gap:14px}

  /* reveal animation */
  .reveal{opacity:0; transform:translateY(24px); transition:opacity .8s ease, transform .8s ease}
  .reveal.in{opacity:1; transform:none}

  /* ---------- responsive ---------- */
  @media (max-width:900px){
    .nav-links{display:none}
    .nav-links.open{
      display:flex; position:absolute; top:74px; left:0; right:0; flex-direction:column;
      gap:0; background:var(--paper); border-bottom:1px solid var(--ink-line); padding:10px 24px 24px}
    .nav-links.open a{padding:14px 0; border-bottom:1px solid var(--ink-line); width:100%}
    .nav-cta .btn-ghost{display:none}
    .burger{display:flex}
    .hero-grid{grid-template-columns:1fr; gap:10px}
    .fan{height:380px; order:-1; margin-bottom:10px}
    .card{width:200px; height:290px}
    .card .card-ph{height:104px}
    .steps,.price-grid{grid-template-columns:1fr}
    .coll-grid{grid-template-columns:repeat(2,1fr)}
    .feat-grid{grid-template-columns:1fr; gap:34px}
    .plan.feat-plan{transform:none}
  }
  @media (max-width:560px){
    .feat-list{grid-template-columns:1fr}
    .coll-grid{grid-template-columns:1fr}
    .sec{padding:70px 0}
    .trust{gap:18px 26px}
  }
  @media (prefers-reduced-motion:reduce){
    *{animation:none !important; transition:none !important; scroll-behavior:auto !important}
    .reveal{opacity:1; transform:none}
  }

/* Card occasioni — responsive */
@media (max-width:700px){
  .occ-card .card-photo{aspect-ratio:16/10}
  .occ-card .num{margin:14px 18px 0}
  .occ-card .k,.occ-card .d{margin-left:18px; margin-right:18px}
  .occ-card .go{margin:12px 18px 18px}
}

/* =========================================================
   v2.0 — ottimizzazione grafica, UX e conversione
   ========================================================= */

/* accessibilità: skip link + focus visibile */
.skip-link{position:absolute; left:-999px; top:12px; z-index:100; background:var(--ink); color:#fff; padding:.6em 1em; border-radius:var(--r-sm); font-weight:600}
.skip-link:focus{left:16px}
:focus-visible{outline:2px solid var(--gold-deep); outline-offset:3px; border-radius:var(--r-sm)}
.btn:focus-visible{outline-offset:4px}

/* tipografia: titoli più intenzionali, numeri tabellari */
h1,h2{text-wrap:balance}
.hero-copy h1{letter-spacing:var(--ls-tight); line-height:1.04}
.sec-head h2{letter-spacing:var(--ls-tight)}
.sec-head p,.lead{text-wrap:pretty}
.plan .pp{font-variant-numeric:tabular-nums}

/* micro-interazioni: pressione fisica */
.btn:active{transform:translateY(1px) scale(.985)}
.occ-card:active,.coll:active{transform:translateY(-1px) scale(.995)}

/* hero: riga di prova sotto i pulsanti */
.hero-proof{margin-top:16px; font-size:var(--fs-sm); color:var(--on-paper-mut); letter-spacing:var(--ls-wide)}

/* nav: sezione corrente */
.nav-links a.active{color:var(--on-paper); position:relative}
.nav-links a.active::after{content:""; position:absolute; left:0; right:0; bottom:-8px; height:2px; background:var(--gold); border-radius:2px}

/* occasioni: griglia editoriale con card in evidenza */
.occ-grid{grid-template-columns:repeat(4,1fr); grid-auto-flow:dense}
.occ-card.featured{grid-column:span 2; grid-row:span 2}
.occ-card.featured .card-photo{aspect-ratio:auto; flex:1; min-height:300px}
.occ-card.featured .k{font-size:var(--fs-lg)}
.occ-card.featured .d{font-size:var(--fs-body-s)}
@media(max-width:1000px){
  .occ-grid{grid-template-columns:repeat(2,1fr)}
  .occ-card.featured{grid-column:span 2; grid-row:auto}
  .occ-card.featured .card-photo{aspect-ratio:16/9; min-height:0}
}
@media(max-width:560px){
  .occ-grid{grid-template-columns:1fr}
  .occ-card.featured{grid-column:auto}
}

/* prezzi: liste allineate tra le colonne */
.plan .pn{min-height:1.5em}
.plan .sub{min-height:2.9em}

/* cosa succede dopo l'acquisto */
.after-buy{margin-top:34px; display:grid; grid-template-columns:repeat(3,1fr); gap:22px 28px; padding:28px 30px;
  background:var(--paper-2); border:1px solid var(--ink-line); border-radius:var(--r-lg)}
.ab-step{display:flex; gap:14px; align-items:flex-start}
.ab-n{flex:none; width:30px; height:30px; border-radius:50%; background:var(--gold); color:var(--ink); font-family:var(--serif);
  font-style:italic; font-size:var(--fs-body); display:grid; place-items:center}
.ab-step strong{display:block; font-size:var(--fs-body); margin-bottom:2px}
.ab-step p{font-size:var(--fs-sm); color:var(--on-paper-mut); line-height:1.5}
.ab-note{grid-column:1 / -1; text-align:center; font-size:var(--fs-sm); color:var(--on-paper-mut); padding-top:14px; border-top:1px solid var(--ink-line)}
@media(max-width:760px){ .after-buy{grid-template-columns:1fr; padding:22px} }

/* FAQ: lista aperta a due colonne, niente accordion */
.faq-grid{display:grid; grid-template-columns:1fr 1fr; gap:30px 48px; max-width:980px; margin:0 auto}
.faq-item h3{font-family:var(--serif); font-weight:500; font-size:var(--fs-lead); margin-bottom:.35em}
.faq-item p{color:var(--on-paper-mut); font-size:var(--fs-body-s); line-height:1.6}
@media(max-width:760px){ .faq-grid{grid-template-columns:1fr; gap:24px} }

/* footer: tre colonne, più respiro */
.foot-grid{grid-template-columns:1.6fr 1fr 1fr; gap:48px}
@media(max-width:760px){ .foot-grid{grid-template-columns:1fr; gap:30px} }

/* ritmo verticale: più aria sotto le sezioni */
.sec{padding:100px 0 110px}
@media(max-width:560px){ .sec{padding:70px 0 78px} }
.occ-card.wide{grid-column:span 2}
.occ-card.wide .card-photo{aspect-ratio:16/7}
@media(max-width:560px){ .occ-card.wide{grid-column:auto} .occ-card.wide .card-photo{aspect-ratio:4/3} }
.coll .meta .demo{white-space:nowrap; flex:none; margin-left:12px}

/* =========================================================
   DESIGN SYSTEM — componenti e ritmo (v2.1)
   ========================================================= */

/* form: i controlli ereditano sempre il font del sito */
button, input, select, textarea{font:inherit; color:inherit}

/* PULSANTE — un solo componente, tre varianti */
.btn{
  min-height:52px; padding:0 1.6em; line-height:1.2;
  font-family:var(--sans); font-size:var(--fs-body-s); font-weight:600; letter-spacing:.005em;
  border-radius:var(--r-pill); border:1px solid transparent;
  display:inline-flex; align-items:center; justify-content:center; gap:.55em;
  cursor:pointer; text-decoration:none; white-space:nowrap;
}
.btn-gold{background:var(--gold); color:var(--ink); border-color:var(--gold)}              /* primario */
.btn-gold:hover{background:#d4b878; border-color:#d4b878}
.btn-dark{background:var(--ink); color:#fff; border-color:var(--ink)}                       /* secondario */
.btn-dark:hover{background:#3a3644; border-color:#3a3644}
.btn-ghost{background:transparent; color:var(--ink); border-color:var(--ink-line)}         /* terziario */
.btn-ghost:hover{border-color:var(--gold-deep); color:var(--gold-deep)}
.btn-block{width:100%}
.btn:disabled{opacity:.5; cursor:not-allowed}

/* RITMO VERTICALE — stessa distanza tra tutte le sezioni */
.sec{padding:var(--sec-y) 0 calc(var(--sec-y) + 8px)}
.sec + .sec{padding-top:calc(var(--sec-y) * .35)}
.cta-final{padding-bottom:var(--sec-y)}

/* utility che sostituiscono gli stili inline */
.sec-head--center{margin-left:auto; margin-right:auto; text-align:center}
.sec-head--center .eyebrow{justify-content:center}
.sec-head--tight{margin-bottom:36px}
.nav .brand img{height:34px; width:auto; display:block}
footer .brand img{height:30px; width:auto; display:block}
.trust-wrap{margin-top:46px}
.plan form{margin-top:auto}
.rsvp-msg{margin-top:14px}
.cta-final .head{text-align:center}
.cta-final .head .eyebrow{justify-content:center}
.cta-final .head h2{margin-top:.5em}
.quote-form.is-done{text-align:center}
.quote-form.is-done .quote-msg{font-size:var(--fs-lead)}
.quote-alt{text-align:center; margin-top:22px; font-size:var(--fs-sm); color:var(--on-paper-mut)}
.quote-alt a{color:var(--gold-deep)}
.center-cta{text-align:center; margin-top:40px}
.hp{display:none!important}
/* anteprime collezioni */
.prev--aurora{background:linear-gradient(150deg,#F4E7E4,#E9CFC9)}
.prev--botanica{background:linear-gradient(150deg,#E7EEE6,#CFE0CB)}
.prev--velluto{background:linear-gradient(150deg,#1E2030,#33364d); color:#EEE7DA}
.prev--velluto .ev,.prev--velluto .dt{color:var(--gold)}
.prev--velluto .nm{color:#EEE7DA}
.prev--alloro{background:linear-gradient(150deg,#F3F1E7,#DCE3D1)}
.prev--alloro .ev,.prev--alloro .dt{color:#8A6A2E}
.prev--alloro .nm{color:#1E4034}
/* barra in alto su telefono: pulsante compatto, il logo respira */
@media(max-width:520px){
  .nav-cta{gap:8px}
  .nav-cta .btn-gold{min-height:40px; padding:0 1em; font-size:var(--fs-sm)}
  .nav-cta .btn-gold .arr{display:none}
  .nav .brand img{height:28px}
}

/* ===== v2.1 — HERO con telefoni (minisiti reali) ===== */
.phones{position:relative; height:620px}
.phone{position:absolute; display:block; width:280px; aspect-ratio:9/19.5; border-radius:46px; padding:10px;
  background:linear-gradient(160deg,#2c2933,#17151c); box-shadow:var(--sh-3), 0 0 0 1px rgba(255,255,255,.07) inset;
  transition:transform .5s cubic-bezier(.22,1,.36,1)}
.phone::before{content:""; position:absolute; top:18px; left:50%; width:84px; height:22px; margin-left:-42px; border-radius:var(--r-pill); background:#17151c; z-index:3}
.phone .screen{position:relative; display:block; width:100%; height:100%; border-radius:36px; overflow:hidden; background:#fff}
.phone iframe{position:absolute; top:0; left:0; width:390px; height:880px; border:0; transform:scale(.6667); transform-origin:0 0; pointer-events:none}
.phone.main{right:24px; top:6px; z-index:2}
.phone.back{right:246px; top:70px; z-index:1; transform:rotate(-7deg) scale(.88); filter:saturate(.95)}
.phones:hover .phone.back{transform:rotate(-9deg) scale(.88) translateX(-14px)}
.chip{position:absolute; z-index:4; display:flex; align-items:center; gap:10px; background:#fff; color:var(--ink);
  border-radius:var(--r-md); box-shadow:var(--sh-2); padding:11px 15px 11px 11px; font-size:var(--fs-sm); line-height:1.35}
.chip small{color:var(--on-paper-mut); font-size:var(--fs-label)}
.chip .ok{flex:none; width:30px; height:30px; border-radius:50%; background:#E6EFE4; color:#3F6B47; display:grid; place-items:center; font-weight:700}
.chip-rsvp{right:-12px; bottom:46px}
.chip-share{left:64px; top:40px}
.chip .wa{flex:none; width:10px; height:10px; border-radius:50%; background:#5FB874; box-shadow:0 0 0 4px #E3F3E6}
/* tag collezione sulle card occasioni */
.occ-card .coll-tag{order:0; margin:4px 22px 0; font-size:var(--fs-label); letter-spacing:var(--ls-caps); text-transform:uppercase; color:var(--on-paper-mut)}
.occ-card .num{display:none}
@media(max-width:900px){
  .phones{order:0; height:560px; margin-top:10px}
  .phone.main{right:50%; margin-right:-140px; top:0}
  .phone.back{display:none}
  .chip-share{left:4px; top:30px}
  .chip-rsvp{right:4px; bottom:-14px}
}

/* ---- PREZZI a 4 piani (v2.3) ---- */
.price-grid--4{grid-template-columns:repeat(4,1fr); gap:18px}
.price-grid--4 .plan{padding:28px 22px}
.price-grid--4 .plan.feat-plan{transform:scale(1.04); z-index:1; box-shadow:0 18px 40px -22px rgba(120,90,30,.45)}
.price-grid--4 .plan .pp{font-size:clamp(2rem,3vw,2.6rem)}
.plan li.inc{color:var(--on-paper); font-weight:600}
.plan li.inc::before{content:""; width:0}
.plan.plan-free{background:transparent; border:1px dashed var(--ink-line)}
.plan-free-form{margin-top:auto; display:grid; gap:10px}
.plan-free-form input{width:100%; padding:.75em 1em; border-radius:var(--r-sm); border:1px solid var(--ink-line); background:#fff; font:inherit}
.plan-free-form input:focus{outline:none; border-color:var(--gold)}
.btn-ghost-dark{background:transparent; color:var(--ink); border:1px solid var(--ink)}
.btn-ghost-dark:hover{background:var(--ink); color:var(--paper)}
.btn-block{width:100%; justify-content:center}
.plan-note{display:block; text-align:center; color:var(--on-paper-mut); font-size:var(--fs-sm); margin-top:10px}
.plan-free-form .plan-note{margin-top:0}
.sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); border:0}
@media(max-width:1100px){ .price-grid--4{grid-template-columns:repeat(2,1fr)} .price-grid--4 .plan.feat-plan{transform:none} }
@media(max-width:600px){ .price-grid--4{grid-template-columns:1fr; gap:22px} .price-grid--4 .plan-free{order:4} }
.price-grid--4 .plan-note{min-height:2.9em}
.plan li.inc{gap:0}
.plan li.inc::before{display:none}
/* v2.3.1 — quattro piani sempre su una riga */
.price-grid.price-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}
#prezzi .wrap{max-width:min(1320px,94vw)}
@media(max-width:1100px){
  .price-grid.price-grid--4{grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px}
  .price-grid--4 .plan{padding:24px 16px}
  .price-grid--4 .plan .pp{font-size:1.9rem}
  .price-grid--4 .plan.feat-plan{transform:none}
}
@media(max-width:820px){
  .price-grid.price-grid--4{display:grid; grid-auto-flow:column; grid-template-columns:none; grid-auto-columns:78%;
    overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; padding:14px 4px 18px; gap:14px}
  .price-grid--4 .plan{scroll-snap-align:center}
}
.price-grid--4 .badge{white-space:nowrap}
@media(max-width:1100px){ .price-grid--4 .plan .btn{font-size:.82rem; padding-left:.8em; padding-right:.8em; white-space:nowrap} }

/* ---- v3.0 · Sezione libera (blocco "Sezione libera") ---- */
.ti-free-sec .ti-free-body{max-width:760px; font-size:var(--fs-body); line-height:1.65}
.ti-free-sec--center .ti-free-body{margin:0 auto; text-align:center}
.ti-free-body > * + *{margin-top:1em}
.ti-free-body h2,.ti-free-body h3{font-family:var(--serif); font-weight:500; line-height:1.2}
.ti-free-body img{max-width:100%; height:auto; border-radius:var(--r-md)}
.ti-free-body a:not(.wp-block-button__link){color:var(--gold-deep)}
.ti-free-body .wp-block-button__link{display:inline-flex; padding:.85em 1.5em; border-radius:999px; background:var(--gold); color:var(--ink); font-weight:600; text-decoration:none}
.sec-paper .ti-free-body{color:var(--on-paper-mut)}
.sec-dark .ti-free-body{color:var(--on-ink-mut)}
.ti-free-sec--center .wp-block-buttons{justify-content:center}

/* ---- v3.1 · Digitale vs carta ---- */
.vs-table{max-width:1040px; margin:0 auto; background:#fff; border:1px solid var(--ink-line); border-radius:var(--r-lg); overflow:hidden}
.vs-row{display:grid; grid-template-columns:1.1fr 1.6fr 1.6fr; align-items:stretch; border-top:1px solid var(--ink-line)}
.vs-row:first-child{border-top:0}
.vs-row > span{padding:18px 22px; font-size:var(--fs-body-s); line-height:1.5; display:flex; gap:.7em; align-items:flex-start}
.vs-k{font-family:var(--serif); font-size:1.05rem !important; color:var(--on-paper); font-weight:500}
.vs-a{color:var(--on-paper-mut)}
.vs-b{color:var(--on-paper); background:linear-gradient(180deg,#FFFDF8,#FBF3E4); border-left:1px solid rgba(198,167,101,.45)}
.vs-a i,.vs-b i{font-style:normal; font-weight:700; flex:none; width:1.4em; height:1.4em; border-radius:50%; display:inline-grid; place-items:center; font-size:.75em; margin-top:.1em}
.vs-a i{background:rgba(42,38,54,.07); color:#9a7d78}
.vs-b i{background:var(--gold); color:#fff}
.vs-head > span{font-size:var(--fs-label) !important; letter-spacing:var(--ls-caps); text-transform:uppercase; font-weight:700; padding-top:16px; padding-bottom:16px}
.vs-head .vs-a{color:var(--on-paper-mut)}
.vs-head .vs-b{color:var(--gold-deep)}
.vs-m{display:none}
.vs-note{text-align:center; margin:22px auto 0; color:var(--on-paper-mut); font-size:var(--fs-body-s); max-width:60ch}
@media(max-width:760px){
  .vs-head{display:none}
  .vs-row{grid-template-columns:1fr; padding:6px 0}
  .vs-row > span{padding:10px 18px}
  .vs-k{padding-top:16px !important}
  .vs-b{border-left:0; margin:0 12px 12px; border-radius:var(--r-md)}
  .vs-m{display:block; font-size:var(--fs-label); letter-spacing:var(--ls-caps); text-transform:uppercase; font-weight:700; margin-bottom:2px; color:inherit; opacity:.7}
  .vs-row > span > span{display:block}
}

/* ---- v3.1 · Simulatore di risparmio ---- */
.sim{max-width:1080px; margin:0 auto; display:grid; grid-template-columns:1.05fr .95fr; background:#fff; border:1px solid var(--ink-line); border-radius:var(--r-lg); overflow:hidden; box-shadow:0 30px 60px -40px rgba(60,45,20,.35)}
.sim-in{padding:34px 34px 30px; display:grid; gap:28px; align-content:start}
.sim-field label,.sim-lab{display:flex; justify-content:space-between; align-items:baseline; font-size:var(--fs-label); letter-spacing:var(--ls-caps); text-transform:uppercase; font-weight:700; color:var(--gold-deep); margin-bottom:12px}
.sim-out{font-family:var(--serif); font-size:2.2rem; letter-spacing:0; text-transform:none; color:var(--on-paper); font-weight:500; line-height:1; font-variant-numeric:tabular-nums}
.sim input[type=range]{--fill:30%; -webkit-appearance:none; appearance:none; width:100%; height:6px; border-radius:6px; background:linear-gradient(90deg,var(--gold) var(--fill),rgba(42,38,54,.1) var(--fill)); outline:none; cursor:pointer}
.sim input[type=range]::-webkit-slider-thumb{-webkit-appearance:none; width:26px; height:26px; border-radius:50%; background:#fff; border:2px solid var(--gold); box-shadow:0 4px 12px rgba(138,106,46,.3); cursor:grab}
.sim input[type=range]::-moz-range-thumb{width:24px; height:24px; border-radius:50%; background:#fff; border:2px solid var(--gold); box-shadow:0 4px 12px rgba(138,106,46,.3); cursor:grab}
.sim input[type=range]:focus-visible::-webkit-slider-thumb{outline:3px solid rgba(198,167,101,.45)}
.sim-scale{display:flex; justify-content:space-between; font-size:var(--fs-sm); color:var(--on-paper-mut); margin-top:8px}
.sim-hint{font-size:var(--fs-sm); color:var(--on-paper-mut); margin-top:6px}
.sim-hint b{color:var(--on-paper)}
.sim-seg{display:grid; grid-template-columns:repeat(3,1fr); gap:8px}
.sim-seg--2{grid-template-columns:repeat(2,1fr)}
.sim-seg button{font:inherit; cursor:pointer; text-align:left; padding:12px 14px; border-radius:var(--r-md); border:1px solid var(--ink-line); background:var(--paper); color:var(--on-paper); font-weight:600; font-size:.95rem; transition:border-color .15s, background .15s}
.sim-seg button small{display:block; font-weight:400; font-size:var(--fs-sm); color:var(--on-paper-mut); margin-top:2px}
.sim-seg button:hover{border-color:var(--gold)}
.sim-seg button.on{border-color:var(--gold); background:#FBF3E4; box-shadow:inset 0 0 0 1px var(--gold)}
.sim-seg button:focus-visible{outline:3px solid rgba(198,167,101,.45); outline-offset:2px}
.sim-res{background:linear-gradient(180deg,#FFFDF8,#F6ECDA); border-left:1px solid rgba(198,167,101,.4); padding:34px; display:flex; flex-direction:column; gap:22px}
.sim-bill{display:grid; gap:10px; font-size:var(--fs-body-s)}
.sim-line{display:flex; justify-content:space-between; gap:12px; color:var(--on-paper-mut)}
.sim-line b{color:var(--on-paper); font-weight:600; font-variant-numeric:tabular-nums; white-space:nowrap}
.sim-tot{border-top:1px dashed rgba(42,38,54,.2); padding-top:10px; color:var(--on-paper); font-weight:600}
.sim-tot b{text-decoration:line-through; text-decoration-color:rgba(160,80,70,.55); text-decoration-thickness:2px}
.sim-dig{color:var(--gold-deep); font-weight:600}
.sim-dig b{color:var(--gold-deep)}
.sim-save{display:flex; flex-direction:column; gap:4px}
.sim-save-l{font-size:var(--fs-label); letter-spacing:var(--ls-caps); text-transform:uppercase; font-weight:700; color:var(--gold-deep)}
.sim-save-v{font-family:var(--serif); font-size:clamp(3rem,6vw,4.4rem); line-height:1; color:var(--on-paper); font-variant-numeric:tabular-nums; letter-spacing:-.02em}
.sim-save-p{font-size:var(--fs-sm); color:var(--on-paper-mut)}
.sim-bar{margin-top:12px; height:10px; border-radius:10px; background:rgba(160,80,70,.18); overflow:hidden}
.sim-bar-d{display:block; height:100%; background:var(--gold); border-radius:10px; transition:width .35s cubic-bezier(.2,.8,.2,1)}
.sim-res .btn{margin-top:auto}
.sim-fonte{max-width:72ch; margin:18px auto 0; text-align:center; font-size:var(--fs-sm); color:var(--on-paper-mut)}
@media(max-width:860px){
  .sim{grid-template-columns:1fr}
  .sim-res{border-left:0; border-top:1px solid rgba(198,167,101,.4)}
  .sim-in,.sim-res{padding:26px 22px}
}
@media(max-width:480px){ .sim-seg{grid-template-columns:1fr} }
@media (prefers-reduced-motion:reduce){ .sim-bar-d{transition:none} }

/* ---- v3.2 · Richiamo risparmio nell'hero + simulatore in evidenza ---- */
.hero-save{display:inline-flex; align-items:center; gap:12px; margin-top:22px; padding:10px 18px 10px 10px; border-radius:999px; background:#fff; border:1px solid rgba(198,167,101,.6); box-shadow:0 10px 30px -18px rgba(138,106,46,.6); text-decoration:none; color:var(--on-paper); font-size:var(--fs-body-s); max-width:100%; transition:transform .2s, box-shadow .2s}
.hero-save:hover{transform:translateY(-1px); box-shadow:0 14px 34px -16px rgba(138,106,46,.7)}
.hs-ic{flex:none; width:34px; height:34px; border-radius:50%; display:grid; place-items:center; background:var(--gold); color:#fff; font-family:var(--serif); font-size:1.1rem; font-weight:600}
.hs-t{line-height:1.35}
.hs-go{flex:none; font-weight:700; color:var(--gold-deep); white-space:nowrap}
@media(max-width:560px){ .hero-save{display:grid; grid-template-columns:34px 1fr; column-gap:12px; row-gap:4px; border-radius:var(--r-md); align-items:center; padding:12px 14px} .hs-ic{grid-row:span 2} .hs-go{grid-column:2} }
.ti-sim{background:linear-gradient(180deg,var(--paper),#F4E9D4)}
.ti-sim .sim{box-shadow:0 40px 80px -40px rgba(120,90,30,.45); border-color:rgba(198,167,101,.5)}

/* ---- v3.3 · Logo più grande ---- */
.nav .brand img{height:42px}
@media(max-width:900px){ .nav .brand img{height:34px} }

/* ---- v3.3 · Demo differite nei telefoni ---- */
.phone .screen-ph{position:absolute; inset:0; display:grid; place-items:end center; padding-bottom:28%; background:linear-gradient(170deg,#FBF3E4 0%,#F1E3C8 55%,#E8D3AE 100%); z-index:1; transition:opacity .4s}
.phone .screen-ph span{font-size:var(--fs-sm); font-weight:600; color:var(--gold-deep); background:#fff; padding:.5em 1em; border-radius:999px; box-shadow:0 6px 18px -10px rgba(138,106,46,.6)}
.phone .screen.is-loaded .screen-ph{opacity:0; pointer-events:none}
@media (prefers-reduced-motion:reduce){ .phone .screen-ph{transition:none} }

/* ---- v3.3 · Barra d'acquisto su telefono ---- */
.m-cta{display:none}
@media(max-width:760px){
  .m-cta{display:flex; position:fixed; left:12px; right:12px; bottom:calc(12px + env(safe-area-inset-bottom)); z-index:60; align-items:center; justify-content:space-between; gap:12px; padding:10px 10px 10px 16px; background:rgba(255,255,255,.96); border:1px solid rgba(198,167,101,.55); border-radius:999px; box-shadow:0 14px 34px -14px rgba(60,45,20,.45); transform:translateY(140%); transition:transform .3s cubic-bezier(.2,.8,.2,1)}
  .m-cta.on{transform:none}
  .m-cta-t{font-size:var(--fs-sm); font-weight:600; color:var(--on-paper); line-height:1.25}
  .m-cta .btn{padding:.7em 1.1em; font-size:.85rem; white-space:nowrap}
  footer{padding-bottom:96px}
}
@media (prefers-reduced-motion:reduce){ .m-cta{transition:none} }

/* ---- v3.3 · WhatsApp flottante ---- */
.wa-float{position:fixed; right:18px; bottom:calc(18px + env(safe-area-inset-bottom)); z-index:61; width:54px; height:54px; border-radius:50%; display:grid; place-items:center; background:#25D366; color:#fff; box-shadow:0 10px 26px -10px rgba(0,0,0,.45); transition:transform .2s}
.wa-float:hover{transform:scale(1.06)}
@media(max-width:760px){ .wa-float{bottom:calc(84px + env(safe-area-inset-bottom)); width:50px; height:50px} }

/* ---- v3.3 · Recensioni ---- */
.rev-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:18px; max-width:1080px; margin:0 auto}
.rev{margin:0; background:#fff; border:1px solid var(--ink-line); border-radius:var(--r-lg); padding:24px 24px 20px; display:flex; flex-direction:column; gap:12px}
.rev-stars{color:var(--gold); letter-spacing:2px; font-size:1rem}
.rev blockquote{margin:0; font-family:var(--serif); font-size:1.1rem; line-height:1.5; color:var(--on-paper)}
.rev figcaption{margin-top:auto; font-size:var(--fs-sm); color:var(--on-paper-mut)}
.rev figcaption strong{color:var(--on-paper)}
.rev-link{text-align:center; margin-top:20px}
.rev-link a{color:var(--gold-deep); font-weight:600}
.rev-empty{border:1px dashed var(--gold); border-radius:var(--r-md); padding:20px 24px; background:#FFFDF8; color:var(--on-paper)}
.rev-empty p{margin-top:6px; font-size:var(--fs-body-s); color:var(--on-paper-mut)}

/* ---- v3.4 · Selettore listino prezzi ---- */
.pr-switch{display:flex; width:max-content; max-width:100%; margin:-12px auto 34px; padding:5px; gap:4px; background:#fff; border:1px solid var(--ink-line); border-radius:999px}
.pr-switch button{font:inherit; font-weight:600; font-size:.95rem; border:0; background:transparent; color:var(--on-paper-mut); padding:.65em 1.4em; border-radius:999px; cursor:pointer; transition:background .2s, color .2s}
.pr-switch button.on{background:var(--ink); color:var(--paper)}
.pr-switch button:focus-visible{outline:3px solid rgba(198,167,101,.5); outline-offset:2px}

/* ---- v3.4 · Finestra extra al pagamento ---- */
.ti-extra{border:0; padding:0; border-radius:var(--r-lg); width:min(520px, calc(100vw - 32px)); max-height:calc(100vh - 32px); background:var(--paper); color:var(--on-paper); box-shadow:0 40px 90px -30px rgba(30,20,10,.55)}
.ti-extra::backdrop{background:rgba(30,26,38,.55); backdrop-filter:blur(3px)}
.ti-extra-in{padding:30px 28px 24px; position:relative; display:flex; flex-direction:column; gap:12px}
.ti-extra-x{position:absolute; top:12px; right:14px; width:36px; height:36px; border-radius:50%; border:1px solid var(--ink-line); background:#fff; font-size:1.3rem; line-height:1; cursor:pointer; color:var(--on-paper)}
.ti-extra h3{font-family:var(--serif); font-weight:500; font-size:var(--fs-lg); line-height:1.2}
.ti-extra-lead{font-size:var(--fs-body-s); color:var(--on-paper-mut)}
.ti-extra-list{display:grid; gap:8px; margin-top:4px}
.ti-ex{display:grid; grid-template-columns:22px 1fr auto; gap:12px; align-items:center; padding:12px 14px; border:1px solid var(--ink-line); border-radius:var(--r-md); background:#fff; cursor:pointer; transition:border-color .15s, background .15s}
.ti-ex:hover{border-color:var(--gold)}
.ti-ex:has(input:checked){border-color:var(--gold); background:#FBF3E4}
.ti-ex input{width:20px; height:20px; accent-color:var(--gold-deep)}
.ti-ex-t b{display:block; font-weight:600; font-size:.95rem}
.ti-ex-t small{display:block; font-size:var(--fs-sm); color:var(--on-paper-mut); margin-top:2px}
.ti-ex-p{font-weight:700; color:var(--gold-deep); white-space:nowrap; font-variant-numeric:tabular-nums}
.ti-extra-tot{display:flex; justify-content:space-between; align-items:baseline; border-top:1px dashed rgba(42,38,54,.2); padding-top:12px; margin-top:4px}
.ti-extra-tot b{font-family:var(--serif); font-size:1.8rem; font-weight:500; font-variant-numeric:tabular-nums}
.ti-extra-note{font-size:var(--fs-sm); color:var(--on-paper-mut); text-align:center}

/* ---- v3.4 · Anteprima istantanea ---- */
.ti-ap{background:linear-gradient(180deg,#F6ECDA,var(--paper))}
.ap{display:grid; grid-template-columns:1.1fr .9fr; gap:48px; align-items:center; max-width:1080px; margin:0 auto}
.ap h2{font-family:var(--serif); font-weight:500; font-size:var(--fs-h2); line-height:1.1; margin:.3em 0 .4em}
.ap-lead{color:var(--on-paper-mut); max-width:46ch}
.ap-tabs{display:flex; flex-wrap:wrap; gap:6px; margin:22px 0 4px}
.ap-tabs button{font:inherit; font-size:.9rem; font-weight:600; padding:.5em 1em; border-radius:999px; border:1px solid var(--ink-line); background:#fff; color:var(--on-paper); cursor:pointer}
.ap-tabs button.on{background:var(--ink); color:var(--paper); border-color:var(--ink)}
.ap-form{display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:18px}
.ap-form label{display:flex; flex-direction:column; gap:6px}
.ap-form label > span{font-size:var(--fs-label); letter-spacing:var(--ls-caps); text-transform:uppercase; font-weight:700; color:var(--gold-deep)}
.ap-form input{font:inherit; padding:.75em .9em; border-radius:var(--r-sm); border:1px solid var(--ink-line); background:#fff; color:var(--on-paper); min-height:46px}
.ap-form input:focus{outline:none; border-color:var(--gold); box-shadow:0 0 0 3px rgba(198,167,101,.25)}
.ap-form label[hidden]{display:none}
.ap-actions{display:flex; flex-wrap:wrap; align-items:center; gap:18px; margin-top:22px}
.ap-open{color:var(--gold-deep); font-weight:600; font-size:var(--fs-body-s)}
.ap-note{font-size:var(--fs-sm); color:var(--on-paper-mut); margin-top:14px; max-width:52ch}
.ap-stage{display:flex; justify-content:center}
.ap-stage .phone.ap-phone{position:relative; right:auto; top:auto; transform:none}
.ap-stage .phone.ap-phone iframe{pointer-events:auto}
@media(max-width:860px){ .ap{grid-template-columns:1fr; gap:30px} .ap-stage{order:-1} }
@media(max-width:480px){ .ap-form{grid-template-columns:1fr} }

/* ---- v3.4 · Briciole di pane nelle pagine occasione ---- */
.crumbs{font-size:var(--fs-sm); color:var(--on-paper-mut); margin-bottom:14px}
.crumbs a{color:var(--gold-deep); text-decoration:none; font-weight:600}
.crumbs a:hover{text-decoration:underline}
.ti-page h1{font-family:var(--serif); font-weight:500; font-size:var(--fs-h2)}
#quanto-costa .ti-free-body strong{color:var(--on-paper)}

/* ---- v3.5 · Scelta del listino molto evidente ---- */
.pr-pick{max-width:860px; margin:-6px auto 40px; text-align:center}
.pr-pick-q{font-family:var(--serif); font-size:1.35rem; color:var(--on-paper); margin-bottom:14px}
.pr-pick .pr-switch{display:grid; grid-template-columns:1fr 1fr; gap:12px; width:auto; margin:0; padding:0; background:none; border:0; border-radius:0}
.pr-pick .pr-switch button{display:flex; flex-direction:column; align-items:flex-start; gap:4px; text-align:left; padding:18px 20px 18px 54px; border-radius:var(--r-lg); border:2px solid var(--ink-line); background:#fff; color:var(--on-paper); position:relative; transition:border-color .2s, box-shadow .2s, background .2s}
.pr-pick .pr-switch button::before{content:""; position:absolute; left:20px; top:22px; width:20px; height:20px; border-radius:50%; border:2px solid var(--ink-line); background:#fff; box-sizing:border-box}
.pr-pick .pr-switch button.on{color:var(--on-paper); border-color:var(--gold); background:#FFFDF8; box-shadow:0 14px 30px -18px rgba(138,106,46,.6)}
.pr-pick .pr-switch button.on::before{border:6px solid var(--gold)}
.pr-pick .pr-switch button[data-list="alt"].on{border-color:#C98B8B; background:#FFF8F7; box-shadow:0 14px 30px -18px rgba(150,80,80,.5)}
.pr-pick .pr-switch button[data-list="alt"].on::before{border-color:#C98B8B}
.ps-n{font-weight:700; font-size:1.05rem}
.ps-d{font-size:var(--fs-sm); color:var(--on-paper-mut); line-height:1.4}
.ps-p{font-family:var(--serif); font-size:1.4rem; margin-top:4px; color:var(--on-paper)}
.occ-chip{display:inline-block; align-self:flex-start; margin-top:8px; padding:.3em .75em; border-radius:999px; font-size:var(--fs-sm); background:#F3EAD6; color:var(--gold-deep)}
.occ-chip b{font-weight:700}
#prezzi.is-alt .occ-chip{background:#F8E4E2; color:#8E4A48}
#prezzi.is-alt .plan.feat-plan{border-color:#C98B8B}
.ti-extra-occ{display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap; padding:10px 14px; border-radius:var(--r-md); background:#F3EAD6; font-size:var(--fs-body-s)}
.ti-extra-occ b{font-weight:700}
.ti-extra-chg{font:inherit; font-size:var(--fs-sm); font-weight:600; border:0; background:none; color:var(--gold-deep); text-decoration:underline; cursor:pointer; padding:0}
@media(max-width:640px){ .pr-pick .pr-switch{grid-template-columns:1fr} }

/* ---- v3.6 · Anteprima: pulsante chiaro e conferma visiva ---- */
.ap-live{display:flex; align-items:center; gap:8px; margin-top:16px; font-size:var(--fs-sm); color:var(--on-paper-mut)}
.ap-dot{width:8px; height:8px; border-radius:50%; background:#3BA55C; box-shadow:0 0 0 0 rgba(59,165,92,.5); animation:apPulse 1.8s infinite}
@keyframes apPulse{0%{box-shadow:0 0 0 0 rgba(59,165,92,.45)}70%{box-shadow:0 0 0 8px rgba(59,165,92,0)}100%{box-shadow:0 0 0 0 rgba(59,165,92,0)}}
.ap-actions{margin-top:14px; gap:12px}
.ap-actions .btn{min-height:52px}
.ap-go{font-size:1rem; padding-left:1.6em; padding-right:1.6em; box-shadow:0 12px 26px -14px rgba(138,106,46,.8)}
.ap-open{display:inline-block; margin-top:14px; color:var(--gold-deep); font-weight:600; font-size:var(--fs-body-s); text-decoration:underline; text-underline-offset:3px}
.ap-phone{transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.ap-badge{position:absolute; top:-14px; left:50%; transform:translate(-50%,-6px); z-index:5; white-space:nowrap; background:#3BA55C; color:#fff; font-size:var(--fs-sm); font-weight:700; padding:.45em 1em; border-radius:999px; opacity:0; pointer-events:none; transition:opacity .3s, transform .3s}
.ap-phone.is-flash{animation:apFlash .9s ease}
.ap-phone.is-flash .ap-badge{opacity:1; transform:translate(-50%,0); transition-delay:0s}
@keyframes apFlash{0%{transform:scale(1)}35%{transform:scale(1.035)}100%{transform:scale(1)}}
@media(max-width:480px){ .ap-actions .btn{width:100%; justify-content:center} }
@media (prefers-reduced-motion:reduce){ .ap-dot,.ap-phone.is-flash{animation:none} }

/* ---- v3.7 · Social nel footer ---- */
.foot-social{display:flex; gap:10px; margin-top:6px; flex-wrap:wrap}
.foot-social a{display:inline-flex; align-items:center; gap:6px}
.foot-social svg{flex:none}

/* ---- v3.8 · Footer su 4 colonne in riga ---- */
.foot-grid{grid-template-columns:1.4fr 1fr 1fr 1.1fr; gap:40px; align-items:start}
.foot-col{min-width:0}
@media(max-width:980px){ .foot-grid{grid-template-columns:1fr 1fr; gap:34px} }
@media(max-width:560px){ .foot-grid{grid-template-columns:1fr; gap:28px} }

/* ---- v3.9 · Footer: UX desktop e mobile ---- */
.foot-brand p{margin-bottom:20px}
.foot-cta{padding:.75em 1.3em; font-size:.9rem}
.foot-col a{width:fit-content}
.foot-contact{list-style:none; margin:0; padding:0; display:grid; gap:4px}
.foot-contact li{margin:0}
.foot-col .foot-contact a{display:inline-flex; align-items:center; gap:10px; margin:0; padding:5px 0; opacity:.85}
.foot-contact svg{flex:none; color:var(--gold-deep)}
.foot-contact span{overflow-wrap:anywhere}
.foot-col a:focus-visible,.foot-bot a:focus-visible{outline:2px solid var(--gold-deep); outline-offset:3px; border-radius:4px; opacity:1}
.foot-bot a{color:inherit; text-decoration:underline; text-underline-offset:3px; text-decoration-color:rgba(0,0,0,.2)}
.foot-bot a:hover{color:var(--gold-deep)}
@media(max-width:980px){
  .foot-grid{grid-template-columns:1fr 1fr; gap:36px 28px}
  .foot-brand,.foot-col--contatti{grid-column:1/-1}
  .foot-brand p{max-width:46ch}
  .foot-contact{grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px}
  .foot-col .foot-contact a{width:100%; min-height:48px; padding:10px 14px; border:1px solid var(--ink-line); border-radius:14px; background:rgba(255,255,255,.55); opacity:1}
  .foot-col .foot-contact a:active{background:#fff}
  .foot-col > a{padding:6px 0; margin-bottom:4px; min-height:40px; display:flex; align-items:center}
  .foot-legal a{display:inline-block; padding:8px 0}
}
@media(max-width:560px){
  footer{padding-top:44px}
  .foot-grid{grid-template-columns:1fr 1fr; gap:30px 18px; margin-bottom:32px}
  .foot-cta{width:100%; justify-content:center}
  .foot-contact{grid-template-columns:1fr 1fr}
  .foot-contact li:nth-child(-n+2){grid-column:1/-1}
  .foot-col > a{min-height:38px; margin-bottom:2px}
  .foot-bot{flex-direction:column; align-items:flex-start; gap:10px; line-height:1.55}
}

/* ---- v4.0 · Banner cookie ---- */
.qf-privacy{grid-column:1/-1; font-size:var(--fs-sm); color:var(--on-paper-mut, #6A6960); margin:2px 0 14px; line-height:1.5}
.qf-privacy a{color:var(--gold-deep); text-decoration:underline; text-underline-offset:3px}
.ti-ck-link{background:none; border:0; padding:0; font:inherit; color:inherit; cursor:pointer; text-decoration:underline; text-underline-offset:3px; text-decoration-color:rgba(0,0,0,.2)}
.ti-ck-link:hover{color:var(--gold-deep)}
.foot-legal .ti-ck-link{padding:8px 0}
.ti-ck{position:fixed; left:20px; bottom:calc(20px + env(safe-area-inset-bottom)); z-index:80; width:min(440px, calc(100vw - 40px));
  opacity:0; transform:translateY(16px); transition:opacity .25s ease, transform .3s cubic-bezier(.2,.8,.2,1)}
.ti-ck.in{opacity:1; transform:none}
.ti-ck[hidden]{display:none}
.ti-ck-box{position:relative; background:#FFFDF8; color:#1B1C24; border:1px solid rgba(198,167,101,.5); border-radius:20px; padding:22px 22px 18px;
  box-shadow:0 24px 60px -24px rgba(40,30,10,.45); max-height:calc(100vh - 40px); overflow:auto; overscroll-behavior:contain}
.ti-ck-x{position:absolute; top:10px; right:10px; width:36px; height:36px; display:grid; place-items:center; border:0; background:none; border-radius:50%; color:#6A6960; cursor:pointer}
.ti-ck-x:hover{background:rgba(0,0,0,.05); color:#1B1C24}
.ti-ck-t{font-family:'Fraunces',Georgia,serif; font-size:1.2rem; font-weight:500; margin:0 34px 8px 0; line-height:1.25}
.ti-ck-p{font-size:.88rem; line-height:1.6; color:#4A4A48; margin:0}
.ti-ck-p a{color:#8B6B2E; text-decoration:underline; text-underline-offset:3px; white-space:nowrap}
.ti-ck-prefs{margin-top:16px; border-top:1px solid rgba(0,0,0,.08)}
.ti-ck-row{display:flex; align-items:center; justify-content:space-between; gap:16px; padding:13px 0; border-bottom:1px solid rgba(0,0,0,.08); cursor:pointer}
.ti-ck-row strong{display:block; font-size:.92rem; margin-bottom:2px}
.ti-ck-row span{font-size:.8rem; color:#6A6960; line-height:1.45}
.ti-ck-sw{position:relative; flex:none; width:46px; height:28px}
.ti-ck-sw input{position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:pointer; z-index:1}
.ti-ck-sw > span{position:absolute; inset:0; border-radius:99px; background:#D8D2C4; transition:background .2s}
.ti-ck-sw > span::after{content:""; position:absolute; top:3px; left:3px; width:22px; height:22px; border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.25); transition:transform .2s}
.ti-ck-sw input:checked + span{background:#A8884A}
.ti-ck-sw input:checked + span::after{transform:translateX(18px)}
.ti-ck-sw input:focus-visible + span{outline:2px solid #8B6B2E; outline-offset:2px}
.ti-ck-sw.is-locked > span{background:#C6A765; opacity:.55}
.ti-ck-sw.is-locked > span::after{transform:translateX(18px)}
.ti-ck-btns{display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:18px}
.ti-ck-b{min-height:46px; border-radius:999px; border:1.5px solid #1B1C24; background:#fff; color:#1B1C24; font:600 .92rem/1 'Hanken Grotesk',system-ui,sans-serif; cursor:pointer; transition:background .2s, color .2s}
.ti-ck-b:hover{background:#1B1C24; color:#fff}
.ti-ck-b[data-ti-ck="accetta"]{background:#1B1C24; color:#fff}
.ti-ck-b[data-ti-ck="accetta"]:hover{background:#000}
.ti-ck-save{grid-column:1/-1; background:#C6A765!important; border-color:#C6A765!important; color:#1B1C24!important}
.ti-ck-more{grid-column:1/-1; justify-self:center; background:none; border:0; padding:8px 10px; font:600 .86rem 'Hanken Grotesk',system-ui,sans-serif; color:#8B6B2E; text-decoration:underline; text-underline-offset:3px; cursor:pointer}
.ti-ck-more[hidden],.ti-ck-save[hidden],.ti-ck-prefs[hidden]{display:none}
.ti-ck button:focus-visible{outline:2px solid #8B6B2E; outline-offset:2px}
@media(max-width:560px){
  .ti-ck{left:10px; right:10px; width:auto; bottom:calc(10px + env(safe-area-inset-bottom))}
  .ti-ck-box{padding:18px 18px 14px; max-height:calc(100vh - 20px); border-radius:18px}
  .ti-ck-t{font-size:1.1rem}
  html.ti-ck-on .m-cta, html.ti-ck-on .wa-float{opacity:0; pointer-events:none}
}
@media (prefers-reduced-motion:reduce){ .ti-ck{transition:none} }
.ti-ck-cta{margin:6px 0 10px}

/* ---- v4.2 · Pacchetto Free ---- */
.plan li.no{color:var(--on-paper-mut); opacity:.75}
.plan li.no::before{content:"✕"; color:#B0A99A; font-weight:400; font-size:.85em; line-height:1.9}
.ti-free-info{display:grid; gap:6px; background:#F3EAD6; border:1px solid rgba(198,167,101,.5); border-radius:14px; padding:14px 16px; margin:0 0 18px; font-size:.92rem; line-height:1.5}
.ti-free-info[hidden],[data-ti-nofree][hidden]{display:none}
.ti-free-info a{color:var(--gold-deep); font-weight:600}

/* ---- v4.4 · Pacchetto bloccato nel modulo ---- */
.ti-pack-lock{display:flex; flex-wrap:wrap; align-items:center; gap:6px 14px; padding:14px 16px; margin:0 0 18px; border-radius:14px; background:#FBF6EC; border:1px solid rgba(198,167,101,.55)}
.ti-pack-lock .ti-pack-k{flex-basis:100%; font-size:var(--fs-label); letter-spacing:var(--ls-caps); text-transform:uppercase; color:var(--gold-deep); font-weight:600}
.ti-pack-lock .ti-pack-v{font-size:1.05rem}
.ti-pack-lock .ti-pack-v strong{font-family:var(--serif); font-weight:500; font-size:1.25rem}
.ti-pack-lock .ti-pack-x{display:block; font-size:.88rem; color:var(--on-paper-mut); margin-top:2px}
.ti-pack-lock .ti-pack-a{margin-left:auto; font-size:.88rem; color:var(--gold-deep); font-weight:600}
.ti-aiuto{display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:18px}
.ti-btn-wa{background:#25D366; color:#fff!important; border-color:#25D366}
.ti-btn-wa:hover{background:#1ebe5a}
@media(max-width:560px){ .ti-pack-lock .ti-pack-a{margin-left:0} .ti-aiuto .btn{width:100%; justify-content:center} }

/* ---- v4.6 · Chi c'è dietro, badge per listino, garanzia ---- */
.ti-chi .chi{display:grid; grid-template-columns:160px 1fr; gap:40px; align-items:center; max-width:880px; margin:0 auto;
  background:#fff; border:1px solid var(--ink-line); border-radius:var(--r-lg); padding:36px 40px}
.chi-pic img,.chi-ini{width:160px; height:160px; border-radius:50%; object-fit:cover; display:block}
.chi-ini{display:grid; place-items:center; font-style:italic; background:linear-gradient(160deg,#FBF3E4,#F1E2C4); border:1px solid rgba(198,167,101,.55);
  font-family:var(--serif); font-size:2.6rem; color:var(--gold-deep); letter-spacing:.04em}
.chi-txt h2{font-size:var(--fs-h2); margin:.35em 0 .4em; letter-spacing:var(--ls-tight)}
.chi-txt p{color:var(--on-paper-mut); max-width:58ch}
.chi-firma{margin-top:14px; font-family:var(--serif); font-style:italic; color:var(--on-paper)!important}
.chi-txt .btn{margin-top:18px}
@media(max-width:700px){
  .ti-chi .chi{grid-template-columns:1fr; justify-items:center; text-align:center; padding:28px 16px; gap:20px}
  .chi-pic img,.chi-ini{width:112px; height:112px}
  .chi-txt p{margin-left:auto; margin-right:auto}
}
.plan .badge[hidden]{display:none}
.ti-extra-gar{margin-top:6px; font-size:var(--fs-sm); text-align:center; color:var(--on-paper); font-weight:600}
.ti-extra-gar span{color:var(--gold-deep)}
.ab-note{font-weight:500; color:var(--on-paper)}

/* ---- v4.7 · Pagamento: consenso, carta (Stripe), PayPal, icone ---- */
.ti-extra-ok{display:flex; gap:10px; align-items:flex-start; margin:14px 0 12px; font-size:var(--fs-sm); line-height:1.5; color:var(--on-paper); cursor:pointer}
.ti-extra-ok input{margin-top:3px; width:18px; height:18px; flex:none; accent-color:var(--gold-deep)}
.ti-extra-ok a{color:var(--gold-deep); font-weight:600}
.ti-extra .btn[disabled]{opacity:.45; cursor:not-allowed}
.ti-pay-sub{margin:6px 0 12px; text-align:center; font-size:var(--fs-sm); color:var(--on-paper-mut)}
.ti-extra-msg{margin:10px 0 0; padding:10px 12px; border-radius:12px; background:#FBE9E7; color:#8E2B20; font-size:var(--fs-sm)}
.ti-extra-msg[hidden]{display:none}
.ti-extra [data-x="go"]{margin-top:8px}
.foot-pay{display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:16px}
.foot-pay-l{font-size:var(--fs-label); letter-spacing:var(--ls-caps); text-transform:uppercase; opacity:.7; margin-right:4px}
.pay-badge{display:inline-flex; align-items:center; justify-content:center; height:30px; padding:0 10px; border-radius:6px; background:#fff; border:1px solid rgba(0,0,0,.08)}
.pay-badge svg{display:block; height:18px; width:auto}


/* ==================================================================
   v4.8 · Esperienza da telefono
   ================================================================== */

/* Contrasti AA anche su crema e chip */
.ti-ck-row span,.ti-ck-x{color:#5E5D55}
.ti-ck-p a,.ti-ck-more{color:#7D5F26}

/* Foto delle collezioni: immagini vere con caricamento differito */
.occ-card .card-photo{position:relative; overflow:hidden; background-color:var(--paper-2)}
.occ-card .card-photo picture,.occ-card .card-photo img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block}

/* FAQ ad accordion */
.faq-grid{gap:0 48px; align-items:start}
.faq-item{border-bottom:1px solid var(--ink-line)}
.faq-item summary{list-style:none; display:flex; justify-content:space-between; align-items:center; gap:16px; min-height:56px; padding:12px 0; cursor:pointer}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary h3{margin:0; font-size:var(--fs-body); line-height:1.4}
.faq-item p{padding:0 0 16px; margin:0}
.faq-ic{flex:none; width:28px; height:28px; border-radius:50%; border:1px solid var(--ink-line); position:relative}
.faq-ic::before,.faq-ic::after{content:""; position:absolute; left:50%; top:50%; width:11px; height:1.6px; background:var(--gold-deep); transform:translate(-50%,-50%); transition:transform .2s}
.faq-ic::after{transform:translate(-50%,-50%) rotate(90deg)}
.faq-item[open] .faq-ic::after{transform:translate(-50%,-50%) rotate(0)}
.faq-item summary:focus-visible{outline:2px solid var(--gold-deep); outline-offset:4px; border-radius:6px}

/* Menu: voci solo su telefono, CTA e WhatsApp nel menu aperto */
.nav-only-m,.nav-menu-cta,.nav-menu-wa{display:none}
.burger{width:48px; height:48px; align-items:center; justify-content:center; padding:0}

/* Indicatori dei caroselli */
.ti-dots{display:none; justify-content:center; gap:2px; margin:6px 0 0}
.ti-dots button{width:28px; height:28px; padding:0; border:0; background:none; display:grid; place-items:center; cursor:pointer}
.ti-dots button span{display:block; width:8px; height:8px; border-radius:99px; background:rgba(42,38,54,.22); transition:width .2s, background .2s}
.ti-dots button[aria-selected="true"] span{width:22px; background:var(--gold-deep)}
.ti-swipe{display:none; text-align:center; font-size:var(--fs-sm); color:var(--on-paper-mut); margin:2px 0 0; transition:opacity .3s}
.ti-swipe.is-gone{opacity:0}

/* Funzioni dei piani e confronto: versione corta */
.plan ul.is-short li.x-more{display:none}
.ti-plan-more{align-self:flex-start; margin:-14px 0 18px; padding:10px 0; min-height:44px; border:0; background:none; font:inherit; font-size:var(--fs-sm); font-weight:600; color:var(--gold-deep); text-decoration:underline; text-underline-offset:3px; cursor:pointer}
.vs-table.is-short .vs-row:not(.vs-head):nth-of-type(n+5){display:none}
.ti-more{display:flex; margin:18px auto 0; justify-content:center}

/* Errori dei moduli, in linea */
.qf-err{margin:6px 0 0; font-size:.86rem; line-height:1.4; color:#8E2B20; display:flex; gap:6px}
.qf-err::before{content:"!"; flex:none; width:18px; height:18px; border-radius:50%; background:#8E2B20; color:#fff; font-size:.72rem; font-weight:700; display:grid; place-items:center; margin-top:1px}
.quote-form [aria-invalid="true"]{border-color:#B4483B!important; box-shadow:0 0 0 3px rgba(180,72,59,.12)}

/* Modulo dati evento a passi */
.ti-step{border:0; padding:0; margin:0; min-width:0}
.ti-step[hidden]{display:none}
.ti-steps-bar{margin:4px 0 18px}
.ti-steps-t{font-size:var(--fs-sm); color:var(--on-paper-mut); margin-bottom:8px}
.ti-steps-t strong{color:var(--on-paper)}
.ti-steps-track{height:6px; border-radius:6px; background:rgba(42,38,54,.1); overflow:hidden}
.ti-steps-track span{display:block; height:100%; width:33%; background:var(--gold); border-radius:6px; transition:width .35s ease}
.ti-step-nav{display:flex; gap:10px; margin-top:18px; flex-wrap:wrap}
.ti-step-nav .btn{flex:1 1 auto; justify-content:center; min-height:50px}
.ti-step-back{display:flex; width:100%; justify-content:center; margin-top:10px; min-height:48px}

/* Segnaposto di caricamento delle demo: luce che scorre */
.phone .screen-ph{background-size:200% 100%; animation:tiShimmer 1.6s ease-in-out infinite}
@keyframes tiShimmer{0%{background-position:100% 0}100%{background-position:-100% 0}}
.phone .screen-ph{background-image:linear-gradient(100deg,#FBF3E4 20%,#F6E9D2 40%,#FBF3E4 60%),linear-gradient(170deg,#FBF3E4 0%,#F1E3C8 55%,#E8D3AE 100%)}

/* Aree di tocco minime 44×44 */
.ap-tabs button{min-height:44px; padding:.55em 1.05em}
.ap-open{padding:12px 0; margin-top:4px}
.quote-alt a{display:inline-block; padding:12px 6px}
.foot-col a{min-height:44px; display:flex; align-items:center}
.foot-legal a,.foot-legal .ti-ck-link{display:inline-flex; align-items:center; min-height:44px}
.sim input[type=range]{height:44px; background-clip:content-box; padding:19px 0; box-sizing:border-box}
.sim input[type=range]::-webkit-slider-thumb{width:30px; height:30px}
.sim input[type=range]::-moz-range-thumb{width:28px; height:28px}

@media (max-width:900px){
  /* Barra in alto compatta che si nasconde scorrendo giù */
  .nav-in{height:58px}
  header.nav{transition:transform .28s cubic-bezier(.2,.8,.2,1), border-color .3s ease, background .3s ease}
  header.nav.nav-hide{transform:translateY(-100%)}
  .nav .brand img{height:30px}
  .nav-links.open{top:58px; max-height:calc(100dvh - 58px); overflow:auto; padding-bottom:calc(24px + env(safe-area-inset-bottom)); box-shadow:0 30px 40px -30px rgba(30,20,10,.35)}
  .nav-links.open a{min-height:52px; display:flex; align-items:center}
  .nav-links.open .nav-only-m{display:flex}
  .nav-links.open .nav-menu-cta{display:flex; justify-content:center; border:0; margin-top:18px; min-height:52px}
  .nav-links.open .nav-menu-wa{display:flex; justify-content:center; border:0; color:var(--gold-deep); font-weight:600}
  body.menu-open .m-cta{transform:translateY(140%)}
  /* Tutti i campi a 16px: iOS non ingrandisce più la pagina al tocco */
  input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),select,textarea,.rsvp-field{font-size:16px!important}
}
@media (max-width:760px){
  /* Sopra la piega: titolo, testo e pulsanti */
  .nav-cta .btn-gold{display:none}
  .hero{padding:22px 0 34px}
  .hero .lead{font-size:1.0625rem; line-height:1.55}
  .hero-actions{display:grid; grid-template-columns:1fr; gap:10px; margin-top:20px}
  .hero-actions .btn{justify-content:center; min-height:52px}
  .phones{display:none}
  .hero-save{margin-top:16px}

  /* Collezioni: carosello orizzontale invece di 8 card in colonna */
  .occ-grid{display:grid; grid-auto-flow:column; grid-template-columns:none; grid-auto-columns:76%; overflow-x:auto; scroll-snap-type:x mandatory; overscroll-behavior-x:contain; gap:14px; padding:4px 2px 10px; scrollbar-width:none}
  .occ-grid::-webkit-scrollbar{display:none}
  .occ-grid .occ-card,.occ-grid .occ-card.featured,.occ-grid .occ-card.wide{grid-column:auto; grid-row:auto; scroll-snap-align:center}
  .occ-grid .occ-card .card-photo,.occ-grid .occ-card.featured .card-photo,.occ-grid .occ-card.wide .card-photo{aspect-ratio:4/3; min-height:0; flex:none}
  .ti-dots,.ti-swipe{display:flex}
  .ti-swipe{display:block}

  /* Barra d'acquisto: WhatsApp integrato, niente pulsante flottante doppio */
  .m-cta{padding:8px 8px 8px 8px; gap:10px}
  .m-cta-wa{flex:none; width:44px; height:44px; border-radius:50%; display:grid; place-items:center; background:#25D366; color:#fff}
  .m-cta-t{flex:1; min-width:0}
  .m-cta .btn{min-height:44px}
  body.mcta-on .wa-float{opacity:0; pointer-events:none; transform:scale(.8)}
  .wa-float{transition:opacity .2s, transform .2s}

  /* Banner cookie compatto: non copre più metà schermo */
  .ti-ck-box{padding:14px 16px 10px}
  .ti-ck-t{font-size:1rem; margin:0 34px 4px 0}
  .ti-ck-p{font-size:.84rem; line-height:1.45}
  .ti-ck-btns{margin-top:10px; gap:8px}
  .ti-ck-b{min-height:44px}
  .ti-ck-more{padding:10px; margin-top:-2px}
  .ti-ck-x{top:6px; right:6px; width:44px; height:44px}

  /* Finestra di pagamento: pannello dal basso, totale e pulsanti sempre visibili */
  .ti-extra{width:100%; max-width:100%; margin:auto 0 0; max-height:92dvh; border-radius:22px 22px 0 0; overflow:auto; overscroll-behavior:contain}
  .ti-extra-in{padding:22px 16px 0; gap:10px}
  .ti-extra h3{font-size:1.35rem; padding-right:48px}
  .ti-extra-x{width:44px; height:44px; top:10px; right:10px}
  .ti-extra-lead{font-size:.9rem}
  .ti-ex{grid-template-columns:22px 1fr auto; padding:10px 12px; gap:10px}
  .ti-ex .ti-ex-t b{font-size:.95rem}
  .ti-ex .ti-ex-t small{display:block; font-size:.78rem; line-height:1.35; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%}
  .ti-ex-t{min-width:0}
  .ti-extra-foot{position:sticky; bottom:0; z-index:2; background:var(--paper); margin:4px -16px 0; padding:10px 16px calc(12px + env(safe-area-inset-bottom)); box-shadow:0 -14px 24px -18px rgba(40,30,10,.35); border-top:1px solid var(--ink-line)}
  .ti-extra-foot .ti-extra-tot{border-top:0; padding-top:0; margin-top:0}
  .ti-extra-foot .ti-extra-tot b{font-size:1.5rem}
  .ti-extra-ok{margin:8px 0 10px; font-size:.82rem; line-height:1.4}
  .ti-extra-ok input{width:22px; height:22px; margin-top:0}
  .ti-extra-foot .btn{min-height:50px}
  .ti-pay-sub{margin:4px 0 8px; font-size:.78rem}
  .ti-extra-note,.ti-extra-gar{padding:0 0 14px}
}
@media (max-width:560px){
  .hero .eyebrow{display:none}
}
@media (prefers-reduced-motion:reduce){
  .phone .screen-ph{animation:none}
  header.nav{transition:none}
}
.ti-dots button{width:32px; height:44px}
.qf-privacy a{display:inline-block; padding:10px 0}
.nav .brand,footer .brand{min-height:44px; display:flex; align-items:center}
.foot-col a{padding-right:8px}
/* La finestra di pagamento non deve mai superare la larghezza dello schermo */
.ti-extra{box-sizing:border-box; max-width:100vw}
.ti-extra-in,.ti-extra-list,.ti-extra-foot{min-width:0}
.ti-ex{grid-template-columns:22px minmax(0,1fr) auto}
.ti-ex-t{min-width:0; overflow:hidden}
@media (max-width:900px){ .nav-links.open a::after{display:none} }
@media (max-width:760px){
  .ti-ck-main .ti-ck-t{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap}
  .ti-ck-p{padding-right:40px}
  .ti-ck-more{margin-top:-4px; padding:8px}
}
