/*
Theme Name: Rosa Salva
Theme URI: https://rosasalva.it
Author: Rosa Salva
Author URI: https://rosasalva.it
Description: Tema custom per il sito unificato Rosa Salva — pasticceria e catering veneziani dal 1879. Ricostruzione del prototipo approvato: logo-to-scroll, hero video-to-scroll, i 4 mondi, heritage 1879 con timeline, 6 locali. Multilingua IT/EN/FR/DE, WooCommerce per lo shop.
Version: 0.2.0
Requires at least: 6.5
Tested up to: 7.0
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: rosa-salva
*/

/* ---- Design tokens (dal prototipo approvato) ---- */
:root{
  --paper:#f3ede3;      /* crema, sfondo */
  --paper2:#e9dfce;     /* bordi/superfici */
  --ink:#23191a;        /* testo scuro */
  --brand:#9f2118;      /* bordeaux Rosa Salva */
  --brand-d:#7d1a13;    /* bordeaux scuro */
  --gold:#b3924f;       /* oro/accento */
  --muted:#7a6f63;      /* testo secondario */
  --price:#3a3531;      /* prezzo: grigio scuro, non rosso (non spaventa) */
  --serif:"Cormorant Garamond", Georgia, serif;
  --sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

  /* accento di sezione (default: bordeaux/pasticceria) */
  --accent:var(--brand);
  --accent-d:var(--brand-d);
}
/* palette per sezione — vedi rosa_salva_section_theme() in functions.php */
body.rs-theme-catering{ --accent:#8f959c; --accent-d:#6d737a; }   /* argento */
body.rs-theme-hotel{    --accent:#1e4148; --accent-d:#142e33; }   /* ottanio (dal sito hotel) */
body.rs-theme-storia{   --accent:#b3924f; --accent-d:#8f7439; }   /* oro */

*{ margin:0; padding:0; box-sizing:border-box; }
/* overflow-x:clip (NON hidden): clippa lo sbordo orizzontale senza creare
   scroll-container, così il position:sticky dell'hero continua a funzionare. */
html{ scroll-behavior:smooth; overflow-x:clip; }
body{
  background:var(--paper); color:var(--ink); font-family:var(--sans);
  overflow-x:clip;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
body.locked{ overflow:hidden; height:100vh; }
a{ color:inherit; text-decoration:none; }
img,svg{ max-width:100%; height:auto; }
.wrap{ max-width:1280px; margin:0 auto; padding:0 32px; }

/* ---------- INTRO ---------- */
/* lo spazio della barra di scorrimento resta sempre riservato: quando il sipario
   sblocca la pagina, niente (logo compreso) si sposta di lato */
html{ scrollbar-gutter:stable; }
#intro{ position:fixed; inset:0; z-index:200; background:var(--paper);
  display:flex; align-items:center; justify-content:center; flex-direction:column;
  transition:transform 1.1s cubic-bezier(.76,0,.24,1); will-change:transform; }
#intro.lift{ transform:translateY(-100%); }
/* Reveal in due atti: il monogramma si presenta, poi lascia il posto al logo esteso.
   Il monogramma NON si muove mentre cede il posto (richiesta di Gio, 24/09/2026):
   resta dov'e' e sfuma soltanto; il logo esteso affiora con lo stesso respiro
   con cui e' entrato il monogramma — stessa curva, piccola salita, quasi nessuna
   scala — ed e' fermo a 2,85 s, prima che il sipario si alzi (3,65 s, home.js).
   Le due corone coincidono: nel breve incrocio un segno diventa l'altro. */
.ilogos{ position:relative; width:min(560px,82vw); height:260px;
  display:flex; align-items:center; justify-content:center; }
.ilogos .im{ width:184px; opacity:0; transform:translateY(16px) scale(.94);
  animation:introMonoIn .9s cubic-bezier(.22,1,.36,1) .1s forwards,
            introMonoCede .6s cubic-bezier(.45,0,.55,1) 1.4s forwards; }
.ilogos .ie{ position:absolute; left:50%; top:50%; width:100%; max-width:none;
  opacity:0; transform:translate(-50%,-50%) translateY(8px) scale(.985);
  animation:introEstesoIn 1s cubic-bezier(.22,1,.36,1) 1.85s forwards; }
#intro .il{ font-family:var(--serif); font-size:13px; letter-spacing:.55em; color:var(--brand);
  text-transform:uppercase; margin-top:14px; opacity:0; transform:translateY(10px);
  animation:introIn 1.1s cubic-bezier(.22,1,.36,1) 2.25s forwards; }
@keyframes introIn{ to{ opacity:1; transform:none; } }
@keyframes introMonoIn{ to{ opacity:1; transform:none; } }
@keyframes introMonoCede{ from{ opacity:1; } to{ opacity:0; } }
@keyframes introEstesoIn{ to{ opacity:1; transform:translate(-50%,-50%); } }
@media (prefers-reduced-motion:reduce){
  #intro{ transition:none; } /* il sipario sparisce, non scorre */
  .ilogos .im{ display:none; }
  .ilogos .ie{ animation:none; opacity:1; transform:translate(-50%,-50%); }
  #intro .il{ animation:none; opacity:1; transform:none; }
}

/* ---------- HEADER ---------- */
header#hdr{ position:fixed; top:0; left:0; right:0; z-index:120;
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 32px;
  transition:background .4s ease, box-shadow .4s ease, padding .4s ease, transform .45s cubic-bezier(.4,0,.2,1);
  background:linear-gradient(to bottom, rgba(243,237,227,.92), rgba(243,237,227,0)); }
header#hdr.solid{ background:rgba(243,237,227,.96); backdrop-filter:blur(10px);
  box-shadow:0 1px 0 rgba(35,25,26,.08); padding:10px 32px; }
/* auto-hide: sparisce scrollando in basso, riappare scrollando in alto */
header#hdr.rs-hidden{ transform:translateY(-115%); }
body.admin-bar header#hdr{ top:32px; } /* barra admin di WordPress */
/* Logo: ritaglio calcolato sui pixel reali degli SVG (niente più corona tagliata).
   Contenuto wordmark = 38.16% dell'altezza file; monogramma = 38.52%. */
.brand{ position:relative; display:block; overflow:hidden; height:58px; width:192px;
  transition:width .55s cubic-bezier(.76,0,.24,1); } /* 192: contenuto 189px + margine (era tagliato a dx) */
header#hdr.collapsed .brand{ width:39px; }
header#hdr .lg-word, header#hdr .lg-mark{ position:absolute; transition:opacity .4s ease;
  max-width:none !important; width:auto; } /* !important: WooCommerce clampa img a 100% */
header#hdr .lg-word{ height:152px !important; left:-13px; top:-47px; opacity:1; }
header#hdr .lg-mark{ height:150px !important; left:-34px; top:-46px; opacity:0; }
header#hdr.collapsed .lg-word{ opacity:0; }
header#hdr.collapsed .lg-mark{ opacity:1; }

/* ---- il logo che si apre e si chiude (assets/js/logo-morph.js, 24/09/2026) ----
   Lo stato lo decide il CSS: 1 = logo esteso, 0 = monogramma. Lo script disegna
   il passaggio (R a sinistra, S a destra, «osa»/«alva» che affiorano), come il
   logo di anthropic.com. Senza JavaScript restano le due immagini qui sopra. */
header#hdr{ --rs-logo-stato:1; }
header#hdr.collapsed{ --rs-logo-stato:0; }
header#hdr .lg-morph{ position:absolute; left:-13px; top:-47px; height:152px; width:214.98px;
  transform-origin:0 0; color:#9e2215; pointer-events:none; }
header#hdr .lg-morph .rs-lm{ display:block; width:100%; height:100%; overflow:visible; }
header#hdr.accent .lg-morph{ color:#fff; }
header#hdr .brand.rs-lm-attivo .lg-word, header#hdr .brand.rs-lm-attivo .lg-mark{ opacity:0 !important; }
header#hdr .brand.rs-lm-attivo{ transition:opacity .5s ease, visibility .5s ease; }
.rs-lm [fill="#9e2215"], .rs-lm-lettera{ fill:currentColor; }
/* ingresso: al posto delle due immagini, lo stesso logo che si apre lentamente */
.ilogos .lm-ingresso{ position:absolute; inset:0; display:flex; align-items:center; color:#9e2215; }
.ilogos .lm-ingresso .rs-lm{ display:block; width:100%; height:auto; overflow:visible; }
.ilogos.rs-lm-attivo .im, .ilogos.rs-lm-attivo .ie{ opacity:0 !important; animation:none !important; }
/* col logo animato previsto (#intro.rs-lm-js, messo da uno script in pagina) le due
   immagini non fanno il loro passaggio: il monogramma entra con logo-morph.js. Se lo
   script non arriva, dopo 3 s compare il logo esteso fermo e il sipario si alza. */
/* L'immagine del monogramma entra subito, gia' nel posto e nella misura esatti del
   monogramma animato (viewBox 30 78 782 402 largo quanto .ilogos, monogramma in
   matrix(0.79983 … 164.472, -91.189)): quando logo-morph.js arriva le da' il cambio
   senza che si veda. Stesso punto d'origine della scala dell'animazione (il centro
   del riquadro). Se lo script non arriva: a 3 s cede il posto al logo esteso fermo. */
#intro.rs-lm-js .ilogos{ --lw:min(560px,82vw); }
#intro.rs-lm-js .ilogos .im{ position:absolute; max-width:none; height:auto;
  width:calc(var(--lw) * 476.3 / 782); left:calc(var(--lw) * 134.472 / 782);
  top:calc((260px - var(--lw) * 402 / 782) / 2 - var(--lw) * 169.189 / 782);
  transform-origin:calc(var(--lw) / 2 - var(--lw) * 134.472 / 782) calc(130px - ((260px - var(--lw) * 402 / 782) / 2 - var(--lw) * 169.189 / 782));
  animation:introMonoIn .9s cubic-bezier(.22,1,.36,1) .1s forwards,
            introMonoCede .6s cubic-bezier(.45,0,.55,1) 3s forwards; }
#intro.rs-lm-js .ilogos .ie{ animation:introEstesoIn 1s cubic-bezier(.22,1,.36,1) 3.2s forwards; }
/* nella barra il riquadro segue la sfumatura (logo-morph.js): nessun taglio netto, e
   in alto/in basso qualche pixel di respiro per le code delle lettere */
header#hdr .brand.rs-lm-attivo{ overflow:visible; clip-path:inset(-8px 0 -8px -8px); }
header#hdr .brand.rs-lm-attivo .lg-word, header#hdr .brand.rs-lm-attivo .lg-mark{ transition:none; }
/* in attesa del logo animato (header#hdr.rs-lm-attesa, messo da uno script in pagina) la
   barra parte gia' dal monogramma: logo-morph.js poi la apre, senza il salto
   esteso -> monogramma -> esteso. Se lo script non arriva, dopo 5 s si apre da sola. */
header#hdr.rs-lm-attesa:not(.collapsed) .brand{ width:39px; animation:rs-lm-riserva-b .6s ease 5s forwards; }
header#hdr.rs-lm-attesa:not(.collapsed) .lg-word{ opacity:0; animation:rs-lm-riserva-si .6s ease 5s forwards; }
header#hdr.rs-lm-attesa:not(.collapsed) .lg-mark{ opacity:1; animation:rs-lm-riserva-no .6s ease 5s forwards; }
header#hdr .brand.rs-lm-attivo, header#hdr .brand.rs-lm-attivo .lg-word, header#hdr .brand.rs-lm-attivo .lg-mark{ animation:none; }
@keyframes rs-lm-riserva-b{ to{ width:192px; } }
@keyframes rs-lm-riserva-si{ to{ opacity:1; } }
@keyframes rs-lm-riserva-no{ to{ opacity:0; } }
@media (max-width:760px){ header#hdr.rs-lm-attesa .brand, header#hdr.rs-lm-attesa .lg-word, header#hdr.rs-lm-attesa .lg-mark{ animation:none; } }
/* shop, telefono: la barra tiene sempre il monogramma (vedi piu' sotto) */
@media (max-width:760px){ header#hdr{ --rs-logo-stato:0; } }

/* Pagine interne: barra superiore col colore della sezione, logo/menu bianchi */
header#hdr.accent{ background:var(--accent); box-shadow:0 1px 0 rgba(0,0,0,.08); }
header#hdr.accent.solid{ background:var(--accent); backdrop-filter:none; }
header#hdr.accent .lg-word, header#hdr.accent .lg-mark{ filter:brightness(0) invert(1); }
header#hdr.accent nav a.navlink{ color:#fff; opacity:.88; }
header#hdr.accent nav a.navlink:hover{ color:#fff; opacity:1; }
header#hdr.accent nav a.navlink::after{ background:#fff; }
header#hdr.accent .ext::after{ color:rgba(255,255,255,.75); }
header#hdr.accent .langs button{ color:rgba(255,255,255,.65); }
header#hdr.accent .langs button.on{ color:#fff; }
header#hdr.accent .langs button:hover{ color:#fff; }
header#hdr.accent .menu-btn{ color:#fff; }
body.rs-internal{ background:#fff; } /* pagine interne: fondo bianco */
header#hdr nav{ display:flex; align-items:center; gap:30px; }
nav a.navlink{ font-size:12.5px; letter-spacing:.13em; text-transform:uppercase; color:var(--ink);
  font-weight:500; opacity:.85; transition:opacity .2s, color .2s; position:relative; padding:4px 0; }
nav a.navlink:hover{ opacity:1; color:var(--brand); }
nav a.navlink::after{ content:""; position:absolute; left:0; bottom:-2px; height:1px; width:0;
  background:var(--brand); transition:width .3s ease; }
nav a.navlink:hover::after{ width:100%; }
.ext::after{ content:" ↗"; color:var(--gold); }
.langs{ display:flex; gap:8px; align-items:center; margin-left:6px; }
.langs button{ font-family:var(--sans); font-size:11px; letter-spacing:.1em; background:none; border:none;
  color:var(--muted); cursor:pointer; padding:4px 5px; border-radius:4px; transition:.2s; font-weight:600; }
.langs button.on{ color:var(--brand); }
.langs button:hover{ color:var(--ink); }
.menu-btn{ display:none; }
/* icona carrello */
.rs-cart{ position:relative; display:inline-flex; align-items:center; justify-content:center;
  width:38px; height:38px; margin-left:10px; color:var(--ink); transition:color .2s, opacity .2s; }
.rs-cart:hover{ color:var(--brand); }
.rs-cart-count{ position:absolute; top:-1px; right:-3px; min-width:17px; height:17px; padding:0 4px;
  border-radius:999px; background:var(--brand); color:#fff; font-family:var(--sans); font-size:10.5px;
  font-weight:600; line-height:1; display:none; align-items:center; justify-content:center; }
.rs-cart-count.has{ display:inline-flex; }
header#hdr.accent .rs-cart{ color:#fff; }
header#hdr.accent .rs-cart:hover{ color:#fff; opacity:.8; }
header#hdr.accent .rs-cart-count{ background:#fff; color:var(--accent); }

/* ---------- Icone animate (Lottie): borsa del carrello e hamburger ----------
   I tratti delle animazioni sono neri nel file sorgente: qui li forziamo a
   ereditare il colore del pulsante (currentColor), così il cambio colore al
   passaggio del mouse continua a funzionare esattamente come prima. */
.rs-lot{ display:block; pointer-events:none; }
.rs-lot svg{ display:block; width:100%; height:100%; overflow:visible; }
.rs-lot svg path,
.rs-lot svg g[clip-path] path{ stroke:currentColor !important; }
.rs-lot-bag{ width:30px; height:30px; }
.rs-lot-menu{ width:26px; height:26px; }
/* il pulsante menù ora è un'icona: niente testo, area di tocco piena */
.menu-btn{ line-height:0; padding:6px; }
.rs-shop-hdr .menu-btn{ margin-left:6px; }
/* Con il menu laterale aperto l'hamburger resta SOPRA al pannello (il drawer
   sta a z-index 300): così si vede la trasformazione in × e lo stesso
   pulsante richiude il menu. */
body.rs-nav-lock .menu-btn{ position:relative; z-index:340; color:#fff; }
body.rs-nav-lock header#hdr{ z-index:330; background:transparent !important; box-shadow:none !important; pointer-events:none; }
body.rs-nav-lock header#hdr .menu-btn{ pointer-events:auto; }
body.rs-nav-lock header#hdr .brand,
body.rs-nav-lock header#hdr nav > *:not(.menu-btn){ opacity:0; pointer-events:none;
  transition:opacity .2s ease; }

/* ---------- HERO ---------- */
/* HOME: le scene scorrono DA SOLE (slideshow automatico), lo scroll della
   pagina resta libero. Nelle sottopagine .hero-scroll--sub resta l'effetto
   legato allo scroll. */
.hero-scroll{ position:relative; height:100svh; }
.hero-sticky{ position:sticky; top:0; height:100vh; overflow:hidden; background:#1a1410; }
.hero-scroll:not(.hero-scroll--sub) .frame{ transition:opacity 1.4s ease, transform 9s linear; }
.frame{ position:absolute; inset:0; background-size:cover; background-position:center;
  opacity:0; will-change:opacity,transform; }
.frame video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.frame::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(to top, rgba(20,16,12,.74) 0%, rgba(20,16,12,.18) 45%, rgba(20,16,12,.45) 100%); }
.hero-ui{ position:absolute; inset:0; z-index:3; display:flex; flex-direction:column;
  justify-content:flex-end; padding:0 0 13vh 0; color:var(--paper); }
.hero-ui .wrap{ width:100%; }
.hero-kicker{ font-size:12.5px; letter-spacing:.5em; text-transform:uppercase;
  color:#f0e4cf; opacity:.92; margin-bottom:14px; }
.hero-title{ font-family:var(--serif); font-weight:600; line-height:.98;
  font-size:clamp(48px,8.5vw,120px); letter-spacing:-.01em; max-width:14ch; }
.hero-sub{ font-family:var(--serif); font-style:italic; font-size:clamp(18px,2.4vw,30px);
  margin-top:14px; color:#efe6d6; font-weight:500; max-width:32ch; }
.hero-rule{ display:flex; gap:8px; margin-top:34px; }
.hero-rule i{ width:34px; height:3px; border-radius:2px; background:rgba(255,255,255,.32); transition:.4s; }
.hero-rule i.on{ background:var(--gold); width:50px; }
/* (scroll-hint "SCORRI" rimosso su richiesta di Gio) */

/* ---------- SEZIONI ---------- */
section.block{ padding:120px 0; }
.eyebrow{ font-size:12px; letter-spacing:.42em; text-transform:uppercase; color:var(--brand); font-weight:600; }
.h2{ font-family:var(--serif); font-weight:600; font-size:clamp(34px,5vw,64px); line-height:1.02;
  letter-spacing:-.01em; margin-top:14px; }
.lead{ font-family:var(--serif); font-size:clamp(18px,2vw,23px); color:#4a3f38; max-width:60ch;
  margin-top:20px; line-height:1.5; }

/* mondi */
.mondi{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:54px; }
.mondo{ position:relative; aspect-ratio:3/4.2; border-radius:14px; overflow:hidden; cursor:pointer;
  background:#cdbfa8; }
.mondo .bg{ position:absolute; inset:0; background-size:cover; background-position:center;
  transition:transform .9s cubic-bezier(.2,.7,.2,1); }
.mondo:hover .bg{ transform:scale(1.07); }
.mondo::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(to top, rgba(20,16,12,.7), rgba(20,16,12,0) 60%); }
.mondo .lab{ position:absolute; left:0; right:0; bottom:0; z-index:2; padding:22px; color:#fff; }
.mondo .lab .t{ font-family:var(--serif); font-size:30px; font-weight:600; line-height:1; }
.mondo .lab .s{ font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; opacity:.85; margin-top:8px; }
.mondo .arr{ position:absolute; top:18px; right:18px; z-index:2; color:#fff; opacity:.8;
  width:34px; height:34px; border:1px solid rgba(255,255,255,.5); border-radius:50%;
  display:flex; align-items:center; justify-content:center; transition:.3s; }
.mondo:hover .arr{ background:#fff; color:var(--brand); }

/* heritage */
.heritage{ background:var(--brand); color:var(--paper); text-align:center; }
.heritage .h2{ color:var(--paper); }
.heritage .eyebrow{ color:#f0d9bf; }
.heritage .lead{ color:#f3e7d8; margin:20px auto 0; }
.timeline{ display:flex; justify-content:center; gap:0; flex-wrap:wrap; margin-top:60px;
  border-top:1px solid rgba(255,255,255,.22); padding-top:8px; }
.tl{ flex:1; min-width:120px; padding:26px 10px; border-right:1px solid rgba(255,255,255,.14);
  transition:background .3s; }
.tl:last-child{ border-right:none; }
.tl:hover{ background:rgba(0,0,0,.10); }
.tl .y{ font-family:var(--serif); font-size:30px; font-weight:600; color:#f0d9bf; }
.tl .d{ font-size:12px; line-height:1.5; color:#f1e4d4; margin-top:8px; opacity:.9; }

/* locali */
.locali-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:2px; margin-top:50px;
  background:var(--paper2); border:1px solid var(--paper2); }
.loc{ background:var(--paper); padding:30px 28px; transition:background .3s; }
.loc:hover{ background:#fbf7ef; }
.loc .n{ font-family:var(--serif); font-size:25px; font-weight:600; }
.loc .a{ font-size:13.5px; color:var(--muted); margin-top:7px; line-height:1.5; }
.loc .o{ font-size:12px; letter-spacing:.06em; color:var(--brand); margin-top:12px; font-weight:500; }

/* ---------- FOOTER ---------- */
footer.site-footer{ background:#221a18; color:#d8cdbf; padding:80px 0 36px; }

/* fascia newsletter sopra le colonne */
.fnews{ display:grid; grid-template-columns:1.2fr 1fr; gap:14px 40px; align-items:center;
  padding-bottom:38px; margin-bottom:44px; border-bottom:1px solid rgba(255,255,255,.12); }
.fnews h4{ font-size:11px; letter-spacing:.28em; text-transform:uppercase; color:#b3924f; margin-bottom:8px; }
.fnews p{ font-size:14px; color:#ccc0b1; line-height:1.6; }
.rs-nl{ display:flex; gap:10px; justify-self:end; width:100%; max-width:440px; }
.rs-nl input[type="email"]{ flex:1; min-width:0; background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.25); color:#fff; border-radius:999px; padding:12px 20px;
  font-family:var(--sans); font-size:13.5px; }
.rs-nl input[type="email"]::placeholder{ color:#8e8377; }
.rs-nl input[type="email"]:focus{ outline:none; border-color:#b3924f; }
.rs-nl button{ background:transparent; color:#b3924f; border:1.5px solid #b3924f; border-radius:999px;
  padding:12px 26px; font-family:var(--sans); font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  font-weight:600; cursor:pointer; transition:background .25s ease, color .25s ease; white-space:nowrap; }
.rs-nl button:hover{ background:#b3924f; color:#221a18; }
.rs-nl-hp{ position:absolute !important; left:-9999px !important; width:1px; height:1px; opacity:0; }
.rs-nl-note{ grid-column:1 / -1; font-size:11.5px !important; color:#8e8377 !important; }
.rs-nl-ok, .rs-nl-err{ grid-column:1 / -1; font-size:14px !important; font-weight:600; }
.rs-nl-ok{ color:#b3924f !important; }
.rs-nl-err{ color:#e2a69b !important; }
.fsocial a{ display:inline !important; }

.fgrid{ display:grid; grid-template-columns:1.4fr 1fr 1.1fr 1fr; gap:40px; }
.fcol h4{ font-size:11px; letter-spacing:.28em; text-transform:uppercase; color:#b3924f; margin-bottom:16px; }
.fcol p,.fcol a{ font-size:14px; line-height:1.9; color:#ccc0b1; display:block; }
.fcol a:hover{ color:#fff; }
.flogo{ height:54px; margin-bottom:18px; filter:brightness(0) invert(1); opacity:.92; max-width:none; }
/* illustrazione a matita del footer: linee chiare su fondo scuro */
.rs-foot-draw{ display:block; height:250px; width:auto; max-width:100%;
  margin:-12px 0 22px -8px; filter:invert(1); mix-blend-mode:screen; opacity:.9; }
.fbar{ margin-top:54px; padding-top:22px; border-top:1px solid rgba(255,255,255,.12);
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:11.5px; color:#8e8377; letter-spacing:.04em; }
.badge{ position:fixed; left:14px; bottom:14px; z-index:130; background:var(--brand); color:#fff;
  font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; padding:7px 12px; border-radius:20px;
  box-shadow:0 6px 20px rgba(0,0,0,.2); font-weight:600; }

/* ---------- Contenuti interni (fallback, articoli, pagine) ---------- */
.rs-wrap{ max-width:1160px; margin:0 auto; padding:0 24px; }
/* pagina legale (Condizioni di Vendita) */
.rs-legal{ max-width:820px; }
.rs-legal p{ line-height:1.75; margin:12px 0; font-size:15px; }
.rs-legal p strong{ display:block; margin-top:26px; letter-spacing:.04em; }
.rs-legal hr{ margin:44px 0; border:none; border-top:1px solid var(--paper2); }
.rs-content{ padding:160px 24px 120px; min-height:60vh; }
.rs-content h1{ font-family:var(--serif); font-weight:600; font-size:clamp(34px,5vw,56px); }
.rs-content p{ line-height:1.7; margin:14px 0; }

/* ---------- SHOP (WooCommerce) — editoriale, zona prodotti BIANCA ---------- */
.rs-shop-main{ padding:150px 0 110px; min-height:70vh; }
.rs-shop-main .woocommerce-products-header{ text-align:center; margin-bottom:8px; }
.rs-shop-main .woocommerce-products-header__title,
.rs-shop-main h1.product_title{
  font-family:var(--serif); font-weight:600; font-size:clamp(44px,6vw,74px);
  line-height:1.03; letter-spacing:-.01em; }
.rs-shop-main .woocommerce-breadcrumb{ font-size:11px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--muted); margin-bottom:22px; text-align:center; }
.rs-shop-main .woocommerce-breadcrumb a{ color:var(--accent); }

/* barra strumenti: sobria, senza righe */
.rs-shop-main .woocommerce-result-count{ color:var(--muted); font-size:11.5px;
  letter-spacing:.14em; text-transform:uppercase; margin:6px 0 0; }
.rs-shop-main .woocommerce-ordering{ margin:0; }
.rs-shop-main .woocommerce-ordering select{ font-family:var(--sans); font-size:12.5px;
  padding:8px 4px; border:none; border-bottom:1px solid var(--paper2); border-radius:0;
  background:transparent; color:var(--muted); cursor:pointer; }
.rs-shop-main .rs-shop-toolbar{ display:flex; justify-content:space-between; align-items:center; }

/* griglia prodotti — 3 colonne, foto più grandi. Nessun "pannello": lo sfondo
   delle pagine shop è già tutto bianco (body.rs-internal), senza stacchi. */
.rs-shop-main ul.products{ display:grid !important; grid-template-columns:repeat(3,minmax(0,1fr));
  gap:52px 40px; margin:30px 0 0 !important; list-style:none;
  background:transparent; border-radius:0; padding:26px 0 !important;
  box-shadow:none; }
/* WooCommerce mette un clearfix ::before/::after: in una griglia occupa una
   cella e crea il "buco" a sinistra. Lo disattivo. */
.rs-shop-main ul.products::before,
.rs-shop-main ul.products::after{ content:none !important; display:none !important; }
.rs-shop-main ul.products li.product{ width:auto !important; margin:0 !important;
  float:none !important; text-align:center; position:relative; }
.rs-shop-main li.product a.woocommerce-LoopProduct-link{ display:block; position:relative; }
/* SOLO la thumbnail è il riquadro quadrato: nome e prezzo restano sotto */
.rs-shop-main li.product .rs-thumb{ display:block; position:relative; aspect-ratio:1/1;
  border-radius:16px; overflow:hidden; background:#fff; }
.rs-shop-main li.product .rs-thumb > img{
  position:absolute; inset:0; width:100% !important; height:100% !important;
  object-fit:contain; display:block;
  transition:transform 1s cubic-bezier(.2,.7,.2,1), opacity .5s ease; }
.rs-shop-main li.product:hover .rs-thumb > img:first-of-type{ transform:scale(1.05); }

/* crossfade sulla SECONDA foto in hover (anch'essa intera) */
.rs-card-img2{ position:absolute; inset:0; width:100% !important; height:100% !important;
  object-fit:contain; background:#fff; opacity:0; transition:opacity .55s ease; pointer-events:none; }
.rs-shop-main li.product:hover .rs-card-img2{ opacity:1; }

/* video hover (quando arriverà la clip: vince sulla foto) */
.rs-card-video{ position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; opacity:0; transition:opacity .45s ease; pointer-events:none; }
li.product.rs-video-on .rs-card-video{ opacity:1; }

.rs-shop-main li.product .woocommerce-loop-product__title{
  font-family:var(--serif); font-size:20px; font-weight:600; color:var(--ink);
  padding:18px 6px 0 !important; line-height:1.15; }
.rs-shop-main li.product .price{ display:block; padding:6px 6px 2px; color:var(--price) !important;
  font-weight:500; font-size:14px; font-family:var(--sans); letter-spacing:.04em; }
.rs-shop-main li.product .price del{ color:var(--muted) !important; font-weight:400; margin-right:8px; }
.rs-shop-main li.product .price ins{ text-decoration:none; color:var(--price); font-weight:700; }

/* bottone: ghost, si riempie in hover */
.rs-shop-main li.product .button{
  display:inline-block; margin:12px 0 4px; padding:10px 22px; background:transparent;
  color:var(--accent) !important; border:1px solid var(--accent); border-radius:999px;
  font-family:var(--sans); font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  font-weight:600; transition:background .25s ease, color .25s ease; cursor:pointer; }
.rs-shop-main li.product .button:hover{ background:var(--accent); color:#fff !important; }
.rs-shop-main li.product .added_to_cart{ display:block; margin-top:8px; font-size:11.5px;
  letter-spacing:.1em; text-transform:uppercase; color:var(--accent); }

/* badge sconto: piccola targhetta "-X%" sopra l'immagine (in alto a sinistra) */
span.onsale{ position:absolute !important; top:10px !important; left:10px !important;
  right:auto !important; bottom:auto !important; margin:0 !important; z-index:3;
  min-height:0 !important; min-width:0 !important;
  background:var(--gold) !important; color:#fff !important; font-family:var(--sans) !important;
  font-size:12px !important; font-weight:600 !important; letter-spacing:.02em !important;
  text-transform:none !important; line-height:1 !important; padding:5px 9px !important;
  border-radius:7px !important; box-shadow:0 4px 12px rgba(35,25,26,.18); }

/* ---- scheda prodotto singolo ---- */
.rs-shop-main div.product{ background:#fff; border-radius:26px; padding:48px;
  box-shadow:0 30px 80px rgba(35,25,26,.07); margin-top:30px; }
.rs-shop-main div.product .woocommerce-product-gallery{ border-radius:16px; overflow:hidden; }
.rs-shop-main div.product .price{ color:var(--price) !important; font-size:24px;
  font-weight:600; font-family:var(--sans); }
.rs-shop-main div.product .woocommerce-product-details__short-description{
  font-family:var(--serif); font-size:19px; color:#4a3f38; line-height:1.6; margin:14px 0 22px; }
.rs-shop-main form.cart{ display:flex; align-items:center; gap:14px; margin:18px 0 26px; }
.rs-shop-main form.cart .quantity .qty{ padding:12px; border:1px solid var(--paper2);
  border-radius:999px; width:74px; text-align:center; font-family:var(--sans); }
.rs-shop-main .wc-block-components-button,
.rs-shop-main .checkout-button,
.rs-shop-main .wp-element-button{
  background:var(--accent) !important; color:#fff !important; border:none !important;
  border-radius:999px !important; padding:14px 30px !important; font-family:var(--sans) !important;
  font-size:12px !important; letter-spacing:.14em !important; text-transform:uppercase !important;
  font-weight:600 !important; transition:background .25s ease !important; cursor:pointer; }
.rs-shop-main .wp-element-button:hover{ background:var(--accent-d) !important; }
/* "Aggiungi al carrello": a contorno come lo shop online (pill, bordo bordeaux) */
.rs-shop-main .single_add_to_cart_button,
.rs-shop-main button.single_add_to_cart_button.alt{
  background:transparent !important; color:var(--accent) !important;
  border:1.5px solid var(--accent) !important;
  border-radius:999px !important; padding:14px 34px !important; font-family:var(--sans) !important;
  font-size:12px !important; letter-spacing:.14em !important; text-transform:uppercase !important;
  font-weight:600 !important; transition:background .25s ease, color .25s ease !important; cursor:pointer; }
.rs-shop-main .single_add_to_cart_button:hover,
.rs-shop-main button.single_add_to_cart_button.alt:hover{
  background:var(--accent) !important; color:#fff !important; }

/* ---- Pulsante "+ Carrello" con ricamatura (contorno SVG come lo shop) ----
   Forma pill con due tacche a V al centro (alto/basso). SVG stirato a riempire
   il bottone (preserveAspectRatio=none); in hover si riempie di bordeaux.
   Applicato a: griglia archivio, carosello (.rs-add), scheda prodotto. */
:root{
  --rs-cart: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 177 52' preserveAspectRatio='none' fill='none'%3E%3Cpath d='M154.277 4.72903H94.4931C91.0341 4.72903 88.5029 3.34429 88.5029 1C88.5029 3.34429 86.054 4.72903 82.5128 4.72903H22.7289C10.731 4.72903 1 14.2441 1 25.9885C1 37.7272 10.731 47.248 22.7289 47.248H82.3719C85.7486 47.248 88.4971 48.6155 88.4971 51C88.4971 48.6155 91.4275 47.248 94.6281 47.248H154.271C166.269 47.248 176 37.7272 176 25.9885C176 14.2498 166.269 4.72903 154.271 4.72903H154.277Z' stroke='%239e2215' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --rs-cart-fill: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 177 52' preserveAspectRatio='none' fill='none'%3E%3Cpath d='M154.277 4.72903H94.4931C91.0341 4.72903 88.5029 3.34429 88.5029 1C88.5029 3.34429 86.054 4.72903 82.5128 4.72903H22.7289C10.731 4.72903 1 14.2441 1 25.9885C1 37.7272 10.731 47.248 22.7289 47.248H82.3719C85.7486 47.248 88.4971 48.6155 88.4971 51C88.4971 48.6155 91.4275 47.248 94.6281 47.248H154.271C166.269 47.248 176 37.7272 176 25.9885C176 14.2498 166.269 4.72903 154.271 4.72903H154.277Z' fill='%239e2215' stroke='%239e2215' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.rs-shop-main li.product .button,
.rs-scard .rs-add,
.rs-shop-main .single_add_to_cart_button,
.rs-shop-main button.single_add_to_cart_button.alt{
  background:transparent !important;
  background-image:var(--rs-cart) !important;
  background-repeat:no-repeat !important; background-position:center !important;
  background-size:100% 100% !important;
  border:none !important; border-radius:0 !important; box-shadow:none !important;
  color:var(--accent) !important;
  display:inline-flex !important; align-items:center; justify-content:center;
  min-width:190px; min-height:54px; padding:15px 36px !important;
  font-family:var(--sans) !important; font-size:14px !important;
  letter-spacing:.12em !important; text-transform:uppercase !important; font-weight:600 !important;
  transition:color .25s ease !important; }
.rs-shop-main li.product .button:hover,
.rs-scard .rs-add:hover,
.rs-shop-main .single_add_to_cart_button:hover,
.rs-shop-main button.single_add_to_cart_button.alt:hover{
  background:transparent !important;
  background-image:var(--rs-cart-fill) !important;
  color:#fff !important; }
/* Aggiunto al carrello: il "+ Carrello" diventa una spunta verde ✔ (feedback AJAX) */
.rs-add.rs-added-ok, .add_to_cart_button.rs-added-ok, .rs-shop-main li.product .button.rs-added-ok,
.rs-add.rs-added-ok:hover, .add_to_cart_button.rs-added-ok:hover, .rs-shop-main li.product .button.rs-added-ok:hover{
  color:transparent !important; position:relative; }
.rs-add.rs-added-ok::after, .add_to_cart_button.rs-added-ok::after, .rs-shop-main li.product .button.rs-added-ok::after{
  content:"✔"; position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  color:#1f9d55; font-size:21px; font-weight:700; animation:rs-check-pop .4s cubic-bezier(.2,.8,.3,1.4); }
@keyframes rs-check-pop{ 0%{ transform:scale(.3); opacity:0 } 60%{ transform:scale(1.25) } 100%{ transform:scale(1); opacity:1 } }
.rs-add.rs-added-ok, .add_to_cart_button.rs-added-ok, .rs-shop-main li.product .button.rs-added-ok{ text-shadow:none !important; }

/* ---- Selettori variante (Peso/Bagna) coerenti con lo stile del sito ---- */
.rs-shop-main table.variations{ border:none !important; margin:6px 0 4px; background:none; }
.rs-shop-main table.variations tr,.rs-shop-main table.variations th,.rs-shop-main table.variations td{ border:none !important; background:none !important; padding:8px 0; }
.rs-shop-main table.variations th.label{ padding-right:18px; vertical-align:middle; }
.rs-shop-main table.variations th.label label{ font-family:var(--serif); font-size:19px; color:var(--ink); font-weight:600; margin:0; }
.rs-shop-main .variations select{
  -webkit-appearance:none; appearance:none;
  font-family:var(--sans); font-size:15px; color:var(--ink);
  padding:12px 42px 12px 18px; border:1.5px solid var(--paper2); border-radius:999px; background-color:#fff;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%239e2215' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 18px center; background-size:12px;
  cursor:pointer; min-width:190px; transition:border-color .2s ease; }
.rs-shop-main .variations select:hover,.rs-shop-main .variations select:focus{ border-color:var(--accent); outline:none; }
.rs-shop-main .reset_variations{ display:inline-block; margin-left:12px; font-size:12px; color:var(--muted); }
/* Prodotto variabile: selettore Peso sopra, "+ Carrello" sotto (impilati, non affiancati) */
.rs-shop-main form.variations_form{ display:block; }
.rs-shop-main form.variations_form .single_variation_wrap{ margin-top:18px; }
.rs-shop-main form.variations_form .woocommerce-variation-add-to-cart{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; }

/* ---- Nasconde "Visualizza carrello" sotto i bottoni AJAX (feedback = spunta + icona) ---- */
.rs-shop-main .added_to_cart,.rs-scard .added_to_cart,.rs-strip .added_to_cart{ display:none !important; }

/* ---- Icona carrello (header): si ingrandisce e scuote "raccogliendo" l'articolo ---- */
@keyframes rs-cart-catch{
  0%{ transform:scale(1) rotate(0) } 14%{ transform:scale(1.38) rotate(-13deg) }
  28%{ transform:scale(1.32) rotate(11deg) } 42%{ transform:scale(1.3) rotate(-8deg) }
  58%{ transform:scale(1.26) rotate(6deg) } 74%{ transform:scale(1.15) rotate(-3deg) }
  100%{ transform:scale(1) rotate(0) } }
.rs-cart.rs-cart-catch{ animation:rs-cart-catch .7s cubic-bezier(.36,.07,.19,.97); transform-origin:center; }

/* ---- Rimozione articolo: monogramma che appare lentamente al posto della rotellina blu ---- */
.woocommerce .blockUI.blockOverlay{ background:none !important; }
.woocommerce .blockUI.blockOverlay::before,.woocommerce .blockUI.blockOverlay::after{ content:none !important; display:none !important; background:none !important; }
/* la "rotellina azzurra" vive nel riquadro blockMsg di jQuery blockUI: via */
.blockUI.blockMsg{ display:none !important; }
/* …e nelle versioni recenti di WooCommerce anche nello spinner CSS della
   classe .processing (cerchio blu ::before): via anche quello */
.woocommerce-page .processing::before,
.woocommerce-page .processing::after,
.woocommerce .processing::before,
.woocommerce .processing::after{ content:none !important; display:none !important; animation:none !important; }

/* Monogramma al posto dello spinner: reveal visibile ed elegante —
   dissolve + crescita con easing morbido e micro-assestamento (≤3%) */
.rs-remove-mono{ position:absolute; z-index:6; left:50%; top:50%; width:38px; height:38px; margin:-19px 0 0 -19px;
  background:var(--accent); pointer-events:none; will-change:transform,opacity;
  -webkit-mask:url("assets/monogramma.svg") center/contain no-repeat; mask:url("assets/monogramma.svg") center/contain no-repeat;
  opacity:0; animation:rs-mono-in .62s cubic-bezier(.23,1,.32,1) forwards; }
@keyframes rs-mono-in{
  0%{ opacity:0; transform:scale(.4) rotate(-8deg); }
  70%{ opacity:1; transform:scale(1.03) rotate(0deg); }
  100%{ opacity:1; transform:scale(1); }
}
@media (prefers-reduced-motion: reduce){
  .rs-remove-mono{ animation:rs-mono-fade .3s ease-out forwards; }
  @keyframes rs-mono-fade{ from{ opacity:0 } to{ opacity:1 } }
}
/* FAQ visibile sulla scheda prodotto */
.rs-faq{ max-width:760px; margin:34px auto 6px; padding:0 22px; }
.rs-faq h2{ font-family:var(--serif); font-size:24px; font-weight:600; color:var(--ink); margin:0 0 12px; }
.rs-faq-item{ border:1px solid var(--paper2); border-radius:16px; padding:0; background:#fff; }
.rs-faq-item summary{ cursor:pointer; list-style:none; padding:16px 20px; font-family:var(--serif);
  font-size:17px; color:var(--ink); position:relative; }
.rs-faq-item summary::-webkit-details-marker{ display:none; }
.rs-faq-item summary::after{ content:"+"; position:absolute; right:20px; top:50%; transform:translateY(-50%);
  color:var(--accent); font-size:20px; transition:transform .25s ease; }
.rs-faq-item[open] summary::after{ transform:translateY(-50%) rotate(45deg); }
.rs-faq-item p{ margin:0; padding:0 20px 18px; font-family:var(--sans); font-size:15px;
  line-height:1.65; color:#4a3f38; }

.rs-shop-main .product_meta .sku_wrapper{ display:none; } /* niente COD in vetrina */
.rs-shop-main .product_meta{ font-size:11.5px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--muted); }
.rs-shop-main .product_meta a{ color:var(--accent); }
.rs-shop-main .woocommerce-tabs{ margin-top:30px; }

/* notice/messaggi: angoli tondi + filigrana damascata in basso */
.rs-shop-main .woocommerce-message,.rs-shop-main .woocommerce-info{
  border-top-color:var(--accent); background:#fbf7ef;
  border-radius:16px; position:relative; overflow:hidden; padding-bottom:26px; }
.rs-shop-main .woocommerce-message::after,.rs-shop-main .woocommerce-info::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:20px; pointer-events:none;
  background:var(--accent);
  -webkit-mask:url("assets/img/footer/filigrana-white.webp") 0 60% / auto 150% repeat-x;
  mask:url("assets/img/footer/filigrana-white.webp") 0 60% / auto 150% repeat-x;
  opacity:.14; }

/* ---- strisce: I più venduti / In offerta ---- */
.rs-strip{ padding:26px 0 8px; }
.rs-strip + .rs-strip{ padding-top:56px; }
.rs-strip-head{ text-align:center; margin-bottom:36px; }
.rs-strip-head .h2{ font-size:clamp(30px,4vw,50px); }
.rs-strip-sub{ color:var(--muted); margin-top:10px; font-size:16px; }
.rs-strip-row{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:30px; }
.rs-strip-center{ display:flex; flex-wrap:wrap; justify-content:center; }
.rs-strip-center .rs-scard{ flex:0 0 calc((100% - 90px)/4); }

/* carosello "I più venduti": una riga che scorre (frecce + puntini) */
/* overflow:clip + margine/padding speculari: contiene lo sbordo del marquee
   senza tagliare le frecce (che sporgono di 20px). Evita che su mobile la
   pagina si allarghi e faccia sparire il menu. */
/* overflow VISIBILE: le frecce sporgono di 20px e non devono essere tagliate.
   Lo sbordo orizzontale è già contenuto da html/body{overflow-x:clip} e dalla
   pista stessa (.rs-car-track ha overflow-x:auto e scorre al suo interno). */
.rs-carousel{ position:relative; overflow:visible; margin-inline:-26px; padding-inline:26px; }
/* scroll-snap ATTIVO: l'avanzamento è A SCATTI (una card ogni 4s), non continuo,
   quindi lo snap non lo ostacola. Serve perché la card reale è frazionaria
   (calc(25% - 22.5px) ≈ 261.75px) mentre lo scatto JS usa px interi: senza snap
   il disallineamento si accumulerebbe (~0.75px a scatto) e i bordi verrebbero
   tagliati. Lo snap riallinea a ogni scatto: i bordi restano sempre puliti. */
.rs-car-track{ display:flex; gap:30px; overflow-x:auto;
  scroll-snap-type:x mandatory;
  scrollbar-width:none; padding:6px 2px; min-width:0; max-width:100%; }
.rs-car-track::-webkit-scrollbar{ display:none; }
.rs-car-track .rs-scard{ flex:0 0 calc((100% - 90px)/4); scroll-snap-align:start; }
.rs-car-nav{ position:absolute; top:36%; transform:translateY(-50%); z-index:4;
  width:46px; height:46px; border-radius:50%; border:1px solid var(--paper2); background:#fff;
  color:var(--accent); font-size:24px; line-height:1; cursor:pointer; display:flex;
  align-items:center; justify-content:center; box-shadow:0 8px 22px rgba(35,25,26,.12);
  transition:background .2s, color .2s, opacity .2s; }
.rs-car-nav:hover{ background:var(--accent); color:#fff; border-color:var(--accent); }
.rs-car-nav[disabled]{ opacity:.3; cursor:default; }
.rs-car-prev{ left:-20px; }
.rs-car-next{ right:-20px; }
.rs-car-dots{ display:flex; gap:9px; justify-content:center; margin-top:28px; }
.rs-car-dots button{ width:9px; height:9px; padding:0; border:none; border-radius:50%;
  background:#dcd2c0; cursor:pointer; transition:.2s; }
.rs-car-dots button.on{ background:var(--accent); transform:scale(1.3); }

.rs-scard{ text-align:center; }
.rs-scard-link{ display:block; }
.rs-scard-imgwrap{ position:relative; display:block; aspect-ratio:1/1; border-radius:18px;
  overflow:hidden; background:#fff; }
.rs-scard-imgwrap img{ position:absolute; inset:0; width:100% !important; height:100% !important;
  object-fit:contain; background:#fff; border:none;
  transition:transform .7s cubic-bezier(.2,.7,.2,1), opacity .55s ease; }
.rs-scard-link:hover .rs-scard-imgwrap img:first-of-type{ transform:scale(1.04); }
/* (badge .onsale unificato più sopra) */
.rs-scard-name{ display:block; font-family:var(--serif); font-size:20px; font-weight:600;
  color:var(--ink); margin-top:16px; }
.rs-scard-price{ display:block; color:var(--price); font-weight:500; font-size:14.5px;
  letter-spacing:.04em; margin-top:4px; font-family:var(--sans); }
.rs-scard-price del{ color:var(--muted); font-weight:400; margin-right:8px; }
.rs-scard-price ins{ text-decoration:none; color:var(--price); font-weight:700; }
.rs-scard .rs-add{ margin-top:12px; }
/* crossfade seconda foto anche sulle strisce */
.rs-scard-link:hover .rs-card-img2{ opacity:1; }

/* ---------- TIMELINE animata (pagina Storia) ---------- */
.rs-tl-band{ background:#241a12; color:#f3e9d6; padding:90px 0 96px; text-align:center; }
.rs-tl-band .h2{ color:#fff; }
/* barra timeline: 20 anni su una riga, linea che passa DENTRO i punti */
.rs-tl-track{ position:relative; display:flex; align-items:flex-end; width:100%; }
.rs-tl-rail{ position:absolute; left:0; right:0; bottom:5px; height:1px;
  background:rgba(255,255,255,.22); z-index:0; }
.rs-tl-fill{ position:absolute; left:0; bottom:5px; height:1px; width:0;
  background:var(--accent); z-index:0; transition:width .6s cubic-bezier(.22,.61,.36,1);
  box-shadow:0 0 14px rgba(179,146,79,.55); }
.rs-tl-dot{ position:relative; z-index:1; flex:1 1 0; min-width:0; background:none; border:none;
  cursor:pointer; display:flex; flex-direction:column; align-items:center; gap:16px; padding:0;
  font-family:var(--sans); font-size:11.5px; letter-spacing:.03em; color:rgba(255,255,255,.55);
  transition:color .25s; }
.rs-tl-yr{ white-space:nowrap; }
.rs-tl-dot:hover{ color:#fff; }
.rs-tl-dot.on{ color:var(--accent); }
.rs-tl-node{ position:relative; width:11px; height:11px; border-radius:50%; background:rgba(255,255,255,.35);
  transition:.25s; }
.rs-tl-dot.on .rs-tl-node{ background:var(--accent); transform:scale(1.45);
  box-shadow:0 0 0 4px rgba(179,146,79,.22); }
.rs-tl-dot.on .rs-tl-node::after{ content:""; position:absolute; inset:-7px; border-radius:50%;
  border:1px solid var(--accent); animation:rs-dot-pulse 2.2s cubic-bezier(.22,.61,.36,1) infinite; }
@keyframes rs-dot-pulse{ 0%{ transform:scale(.6); opacity:.9; } 70%,100%{ transform:scale(1.5); opacity:0; } }
.rs-tl-bigyear{ font-family:var(--serif); font-style:italic; font-weight:600;
  font-size:clamp(48px,8vw,96px); line-height:1;
  transition:opacity .55s cubic-bezier(.22,.61,.36,1), transform .55s cubic-bezier(.22,.61,.36,1), filter .55s ease; }
.rs-tl-desc{ font-family:var(--serif); font-size:clamp(19px,2.2vw,26px); color:#f0e6d5;
  max-width:60ch; margin:22px auto 0; line-height:1.5;
  transition:opacity .55s cubic-bezier(.22,.61,.36,1) .06s, transform .55s cubic-bezier(.22,.61,.36,1) .06s, filter .55s ease .06s; }
.rs-tl-out{ opacity:0; transform:translateY(16px) scale(.985); filter:blur(6px);
  transition-duration:.26s,.26s,.26s; transition-delay:0s,0s,0s; }
/* video-to-scroll della storia: foto d'archivio che sfumano sotto lo scroll */
.rs-story-scroll{ position:relative; height:540vh; background:#241a12; }
.rs-story-sticky{ position:sticky; top:0; height:100vh; overflow:hidden; }
.rs-story-frames{ position:absolute; inset:0; }
.rs-sframe{ position:absolute; inset:0; background-size:cover; background-position:center;
  opacity:0; will-change:opacity, transform;
  animation:rs-kenburns 36s ease-in-out infinite alternate; }
@keyframes rs-kenburns{ from{ transform:scale(1.02); } to{ transform:scale(1.1) translateY(-1.2%); } }
@media (prefers-reduced-motion:reduce){ .rs-sframe{ animation:none; } .rs-tl-dot.on .rs-tl-node::after{ animation:none; } }
.rs-sframe::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(to bottom, rgba(20,14,8,.5) 0%, rgba(20,14,8,.72) 60%, rgba(20,14,8,.86) 100%); }
.rs-story-ui{ position:absolute; inset:0; z-index:3; display:flex; flex-direction:column;
  align-items:center; justify-content:center; text-align:center; color:#fff; padding:0 24px; }
.rs-story-ui .eyebrow{ color:rgba(255,255,255,.72); margin-bottom:26px; }
.rs-story-ui .rs-tl-bigyear{ color:transparent; }
.rs-story-ui .rs-tl-desc{ color:#f2e9d9; max-width:46ch; text-shadow:0 1px 30px rgba(0,0,0,.4); }
.rs-story-bar{ position:absolute; left:0; right:0; bottom:6vh; z-index:4; padding:0 5vw; }
.rs-story-bar .rs-tl-track{ padding:6px 0 0; }
@media (max-width:900px){
  .rs-story-scroll{ height:640vh; }
  .rs-story-bar{ bottom:4vh; padding:0 16px; }
}
@media (max-width:760px){
  .rs-story-bar .rs-tl-yr{ display:none; }   /* su mobile solo i punti; l'anno grande è al centro */
  .rs-tl-dot{ gap:0; }
}

.rs-narrow{ max-width:820px; text-align:center; }
.rs-narrow .lead{ margin-left:auto; margin-right:auto; }
.rs-narrow .rs-cta-row{ justify-content:center; }

/* hero di pagina più alto e immersivo (storia) */
/* Storia: hero con immagine d'epoca INTERA (non tagliata).
   Doppia classe per battere .rs-page-hero (stessa specificità ma più avanti nel file). */
/* parte esattamente sotto l'header fisso (il JS imposta il margine preciso, 0px di stacco) */
.rs-page-hero.rs-page-hero--tall{ height:auto; min-height:0; display:block; margin-top:90px; }
.rs-page-hero.rs-page-hero--tall .ph{ position:relative; inset:auto; width:100%; height:auto;
  object-fit:contain; display:block; }
.rs-page-hero.rs-page-hero--tall .wrap{ position:absolute; left:0; right:0; bottom:0; z-index:2; }

/* reveal allo scroll: dinamismo sobrio su tutte le pagine (il JS aggiunge .rs-reveal) */
.rs-reveal{ opacity:0; transform:translateY(26px);
  transition:opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1); }
.rs-reveal.rs-in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){
  .rs-reveal{ opacity:1 !important; transform:none !important; transition:none; }
}

/* descrizione breve multilingua (scheda prodotto) */
.rs-desc{ display:inline; }

@media (max-width:1000px){
  .rs-shop-main ul.products{ grid-template-columns:repeat(2,1fr); padding:28px !important; gap:40px 22px; }
  .rs-shop-main div.product{ padding:28px; }
  .rs-strip-row{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .rs-strip-center .rs-scard{ flex-basis:calc((100% - 30px)/2); }
  .rs-car-track .rs-scard{ flex-basis:calc((100% - 30px)/2); }
  .rs-car-nav{ display:none; }
}
@media (max-width:560px){
  .rs-car-track .rs-scard{ flex-basis:82%; }
  .rs-strip-center .rs-scard{ flex-basis:100%; }
}
@media (max-width:560px){ .rs-shop-main ul.products{ grid-template-columns:1fr; } }

/* ---------- PAGINE DI SEZIONE (pasticceria/catering/locali) ---------- */
.rs-page{ background:#fff; }
/* pagine interne: l'hero parte sotto la barra fissa (il JS raffina al pixel) */
body.rs-internal .rs-page-hero, body.rs-internal .hero-scroll{ margin-top:90px; }
.rs-page-hero{ position:relative; height:62vh; min-height:420px; overflow:hidden;
  display:flex; align-items:flex-end; background:#1a1410; }
.rs-page-hero .ph{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.rs-page-hero::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(to top, rgba(20,16,12,.72) 0%, rgba(20,16,12,.12) 55%); }
.rs-page-hero .wrap{ position:relative; z-index:2; width:100%; padding-bottom:54px; color:#fff; }
.rs-page-hero .eyebrow{ color:#f0e4cf; }
.rs-page-hero .h1{ font-family:var(--serif); font-weight:600; line-height:1;
  font-size:clamp(44px,7vw,96px); letter-spacing:-.01em; color:#fff; margin-top:12px; }
.rs-sec{ padding:96px 0; }
.rs-sec .lead{ margin-top:16px; }
.rs-photogrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:48px; }
.rs-photogrid img{ width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:14px;
  transition:transform .8s cubic-bezier(.2,.7,.2,1); display:block; }
.rs-photogrid a:hover img, .rs-photogrid img:hover{ transform:scale(1.03); }
.rs-two-col{ display:grid; grid-template-columns:1fr 1fr; gap:48px; margin-top:44px; }
.rs-two-col h3{ font-family:var(--serif); font-size:30px; font-weight:600; margin-bottom:14px; }
.rs-two-col ul{ list-style:none; }
.rs-two-col li{ font-family:var(--serif); font-size:18.5px; color:#4a3f38; padding:9px 0;
  border-bottom:1px solid #f0eae0; }
.rs-band{ background:var(--accent); color:#fff; text-align:center; padding:84px 0; }
.rs-band .eyebrow{ color:rgba(255,255,255,.75); }
.rs-band .h2{ color:#fff; }
.rs-band .lead{ color:rgba(255,255,255,.92); margin-left:auto; margin-right:auto; }
.rs-cta-row{ display:flex; gap:14px; justify-content:center; margin-top:34px; flex-wrap:wrap; }
.rs-btn{ display:inline-block; padding:14px 30px; border-radius:999px; font-family:var(--sans);
  font-size:12px; letter-spacing:.14em; text-transform:uppercase; font-weight:600;
  transition:background .25s ease, color .25s ease; cursor:pointer; }
.rs-btn-solid{ background:var(--accent); color:#fff; border:1px solid var(--accent); }
.rs-btn-solid:hover{ background:var(--accent-d); }
.rs-btn-ghost{ background:transparent; color:var(--accent); border:1px solid var(--accent); }
.rs-btn-ghost:hover{ background:var(--accent); color:#fff; }
.rs-band .rs-btn-solid{ background:#fff; color:var(--accent); border-color:#fff; }
.rs-band .rs-btn-ghost{ color:#fff; border-color:rgba(255,255,255,.6); }
.rs-band .rs-btn-ghost:hover{ background:#fff; color:var(--accent); }
.rs-btn-wa{ background:#2e7d5b; color:#fff; border:1px solid #2e7d5b; }
.rs-btn-wa:hover{ background:#256a4d; border-color:#256a4d; color:#fff; }

/* /hotel: elenco camere */
.rs-rooms{ display:grid; grid-template-columns:repeat(2,1fr); gap:2px; margin-top:38px;
  background:var(--paper2); border:1px solid var(--paper2); border-radius:16px; overflow:hidden; }
.rs-room{ background:#fff; padding:22px 26px; display:flex; align-items:center; gap:14px; flex-wrap:wrap;
  transition:background .3s; }
.rs-room:hover{ background:#fbf7ef; }
.rs-room-name{ font-family:var(--serif); font-size:22px; font-weight:600; flex:1 1 auto; }
.rs-room-spec{ font-size:13px; color:var(--muted); letter-spacing:.02em; }
.rs-room-book{ font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; font-weight:600;
  color:var(--accent); border:1px solid var(--accent); border-radius:999px; padding:8px 16px; transition:.2s; }
.rs-room-book:hover{ background:var(--accent); color:#fff; }
@media (max-width:700px){ .rs-rooms{ grid-template-columns:1fr; } }
/* servizi catering: 3 card */
.rs-services{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:48px; }
.rs-service img{ width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:14px; display:block; }
.rs-service h3{ font-family:var(--serif); font-size:27px; font-weight:600; margin:16px 0 6px; }
.rs-service p{ color:#4a3f38; line-height:1.6; font-size:15px; }

/* locali: 6 sedi */
.rs-venues{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:48px; }
.rs-venue{ border:1px solid #efe9de; border-radius:18px; padding:30px 28px;
  transition:box-shadow .3s ease, transform .3s ease; background:#fff; }
.rs-venue:hover{ transform:translateY(-3px); box-shadow:0 18px 44px rgba(35,25,26,.08); }
.rs-venue h3{ font-family:var(--serif); font-size:26px; font-weight:600; }
.rs-venue .d{ font-family:var(--serif); font-style:italic; color:#5d5347; margin:6px 0 14px;
  font-size:16.5px; line-height:1.45; min-height:48px; }
.rs-venue .a{ font-size:14px; color:var(--muted); }
.rs-venue .t{ font-size:14px; margin-top:2px; }
.rs-venue .t a{ color:var(--accent); font-weight:600; }
.rs-venue .o{ font-size:12px; letter-spacing:.06em; color:var(--accent); margin:10px 0 18px; font-weight:600; }
.rs-venue .rs-btn{ font-size:10.5px; padding:10px 18px; }
@media (max-width:1000px){ .rs-venues{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:620px){ .rs-venues{ grid-template-columns:1fr; } }

/* form preventivo */
.rs-form-sec{ background:#faf8f4; }
.rs-form-card{ max-width:860px; margin:0 auto; }
.rs-form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:18px 22px; margin:30px 0 24px; }
.rs-form-grid label{ display:flex; flex-direction:column; gap:7px; font-size:11.5px;
  letter-spacing:.1em; text-transform:uppercase; color:var(--muted); font-weight:600; }
.rs-form-grid label.full{ grid-column:1 / -1; }
.rs-form-grid input, .rs-form-grid select, .rs-form-grid textarea{
  font-family:var(--sans); font-size:15px; color:var(--ink); padding:13px 15px;
  border:1px solid #e4ddd0; border-radius:12px; background:#fff; transition:border-color .2s;
  /* il menu a tendina non deve allargarsi sull'opzione piu' lunga (telefoni stretti) */
  box-sizing:border-box; min-width:0; max-width:100%; }
.rs-form-grid select{ width:100%; text-overflow:ellipsis; }
.rs-form-grid input:focus, .rs-form-grid select:focus, .rs-form-grid textarea:focus{
  outline:none; border-color:var(--accent); }
.rs-notice{ margin:22px 0 4px; padding:14px 18px; border-radius:12px; font-size:14.5px; }
.rs-notice.ok{ background:#eef6ee; color:#265c31; border:1px solid #cfe6d2; }
.rs-notice.err{ background:#fbeeec; color:#8c2b1f; border:1px solid #eed2cc; }
.rs-form-alt{ margin-top:26px; color:var(--muted); font-size:14px; }
.rs-form-alt a{ color:var(--accent); font-weight:600; }

@media (max-width:900px){
  .rs-photogrid{ grid-template-columns:repeat(2,1fr); }
  .rs-two-col{ grid-template-columns:1fr; gap:28px; }
  .rs-sec{ padding:64px 0; }
  .rs-services{ grid-template-columns:1fr; }
  .rs-form-grid{ grid-template-columns:1fr; }
}

/* effetto oro (per titoli/1879 — usato con parsimonia) */
.rs-shiny{
  background:linear-gradient(100deg, var(--gold) 20%, #f4e4bd 40%, var(--gold) 60%);
  background-size:200% auto;
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
  animation:rs-shine 6s linear infinite;
}
@keyframes rs-shine{ to{ background-position:200% center; } }

/* Contenuti multilingua a blocchi (pagine info/legali): nel contenuto della
   pagina ci sono 6 blocchi .rs-ml, uno per lingua; il CSS mostra solo quello
   della lingua attiva (html[lang] è impostato dal selettore lingua). Immune
   per costruzione all'ordine dei tasti: nessun testo viene mai riscritto. */
.rs-ml{ display:none; }
html[lang^="it"] .rs-ml[data-ml="it"],
html[lang^="en"] .rs-ml[data-ml="en"],
html[lang^="fr"] .rs-ml[data-ml="fr"],
html[lang^="de"] .rs-ml[data-ml="de"],
html[lang^="es"] .rs-ml[data-ml="es"],
html[lang^="zh"] .rs-ml[data-ml="zh"]{ display:block; }

/* Avviso "testo solo in italiano" sulle pagine legali/info: appare solo
   quando la lingua scelta NON è l'italiano */
.rs-lang-note{ display:none; margin:0 0 26px; padding:12px 18px; border-radius:12px;
  background:#fbf3ee; border:1px solid var(--paper2); color:var(--accent);
  font-family:var(--sans); font-size:14px; }
html:not([lang^="it"]) .rs-lang-note{ display:block; }

/* Header shop: lo stesso menu del sito (Storia, Catering, Pasticceria, Hotel, Locali con la
   tendina) + Shop con la sua discesa (Gio, 20/10/2026). Il bottone MENÙ compare dove compare
   sulle vetrine (sotto i 900px), non prima. */
.rs-shop-hdr nav{ flex-wrap:nowrap; }
.rs-shop-hdr .menu-btn{ display:none; background:none; border:none; font-size:13px;
  letter-spacing:.12em; text-transform:uppercase; color:#fff; font-weight:600; cursor:pointer; }
@media (max-width:900px){ .rs-shop-hdr .menu-btn{ display:block; } }

/* Tendina "Shop": piccola discesa animata con le pagine dove si compra */
.rs-navdrop{ position:relative; display:flex; align-items:center; }
.rs-navdrop-btn{ background:none; border:none; cursor:pointer; padding:0;
  display:inline-flex; align-items:center; gap:7px;
  font-family:inherit; font-size:12.5px; letter-spacing:.13em; text-transform:uppercase;
  color:#fff; opacity:.88; transition:opacity .2s ease; }
.rs-navdrop-btn:hover, .rs-navdrop.open .rs-navdrop-btn{ opacity:1; }
.rs-navdrop-btn .chev{ transition:transform .28s ease; margin-top:1px; }
.rs-navdrop.open .rs-navdrop-btn .chev{ transform:rotate(180deg); }
.rs-navdrop-menu{ position:absolute; z-index:80; top:calc(100% + 18px); left:50%;
  min-width:240px; padding:10px; background:#fff; border-radius:18px;
  box-shadow:0 26px 60px -22px rgba(60,20,14,.45);
  opacity:0; visibility:hidden; transform:translate(-50%,-10px);
  transition:opacity .28s ease, transform .28s ease, visibility 0s linear .28s; }
.rs-navdrop.open .rs-navdrop-menu{ opacity:1; visibility:visible;
  transform:translate(-50%,0); transition:opacity .28s ease, transform .28s ease; }
.rs-navdrop-menu::before{ content:""; position:absolute; top:-7px; left:50%;
  width:14px; height:14px; background:#fff; transform:translateX(-50%) rotate(45deg);
  border-radius:3px; }
.rs-navdrop-menu a{ display:block; padding:11px 18px; border-radius:12px;
  font-size:12.5px; letter-spacing:.11em; text-transform:uppercase; white-space:nowrap;
  color:var(--ink); transition:background .16s ease, color .16s ease; }
.rs-navdrop-menu a:hover{ background:#fbf3ee; color:var(--accent); }
.rs-navdrop-menu .sep{ display:block; height:1px; margin:8px 14px;
  background:var(--paper2); }
.rs-navdrop-menu a.ord{ color:var(--accent); font-weight:600; }
.rs-navdrop-menu a.ord:hover{ background:var(--accent); color:#fff; }

/* Carrello su mobile: WooCommerce nasconde la colonna con la foto del
   prodotto — noi la mostriamo, centrata sopra al nome, senza etichetta.
   Il blocco coupon resta DENTRO la card (bottone a tutta larghezza). */
@media (max-width:768px){
  .woocommerce-page table.cart td.actions .coupon{ display:block; width:100%; }
  .woocommerce-page table.cart td.actions .coupon .input-text,
  .woocommerce-page table.cart td.actions .coupon button{ width:100% !important;
    margin:0 0 8px !important; box-sizing:border-box; float:none !important; }
  .woocommerce-page table.cart tr td.product-thumbnail{ display:block !important;
    text-align:center !important; padding:16px 0 2px; }
  .woocommerce-page table.cart td.product-thumbnail a{ display:inline-block; }
  .woocommerce-page table.cart tr td.product-thumbnail::before{ display:none; }
  .woocommerce-page table.cart td.product-thumbnail img{ width:110px; height:auto;
    margin:0 auto; border-radius:16px; background:#faf7f1; }
}

/* ---------- Barra inferiore stile app (solo mobile) ---------- */
.rs-tabbar{ display:none; }
.rs-catsheet{ display:none; }
@media (max-width:900px){
  .rs-tabbar{ position:fixed; left:0; right:0; bottom:0; z-index:260;
    display:grid; grid-template-columns:repeat(4,1fr);
    padding:6px 8px calc(6px + env(safe-area-inset-bottom, 0px));
    background:rgba(253,250,245,.78);
    -webkit-backdrop-filter:blur(20px) saturate(1.8); backdrop-filter:blur(20px) saturate(1.8);
    border-top:1px solid rgba(159,33,24,.14);
    box-shadow:0 -8px 30px -18px rgba(60,30,20,.25); }
  .rs-tab{ display:flex; flex-direction:column; align-items:center; gap:3px;
    padding:6px 4px 4px; min-height:48px; background:none; border:none; cursor:pointer;
    color:#6b5d54; text-decoration:none; font-family:var(--sans); font-size:10.5px;
    letter-spacing:.06em; text-transform:uppercase; transition:color .2s ease; }
  .rs-tab svg{ width:24px; height:24px; transition:transform .2s cubic-bezier(.23,1,.32,1); }
  .rs-tab:active svg{ transform:scale(.9); }
  .rs-tab.on{ color:var(--accent); }
  .rs-tab.on span{ font-weight:600; }
  /* convenzione delle app: icona attiva PIENA, non solo colorata */
  .rs-tab.on svg{ fill:currentColor; fill-opacity:.18; }
  /* con il pannello Categorie aperto conta solo LUI: la tab della pagina si spegne */
  .rs-tabbar.sheet-open .rs-tab.on:not(#rsTabCats){ color:#6b5d54; }
  .rs-tabbar.sheet-open .rs-tab.on:not(#rsTabCats) svg{ fill:none; }
  .rs-tabbar.sheet-open .rs-tab.on:not(#rsTabCats) span{ font-weight:400; }
  /* micro-pop al tap (scale 1→1.12→1, ~200ms, come le app native) */
  @keyframes rs-tab-pop{ 0%{transform:scale(1)} 45%{transform:scale(1.12)} 100%{transform:scale(1)} }
  .rs-tab.pop svg{ animation:rs-tab-pop .22s cubic-bezier(.23,1,.32,1); }
  /* tastiera aperta O scroll verso l'alto: scomparsa TOTALE — traslazione
     abbondante (oltre l'ombra, che punta verso l'alto) + dissolvenza */
  body.rs-kbd .rs-tabbar,
  .rs-tabbar.rs-hidden{ transform:translateY(calc(100% + 40px));
    opacity:0; pointer-events:none; }
  .rs-tabbar{ transition:transform .45s cubic-bezier(.4,0,.2,1), opacity .3s ease; }
  .rs-tab-ico{ position:relative; display:block; line-height:0; }
  .rs-tab-ico .rs-cart-count{ top:-5px; right:-9px; }

  /* i contenuti non finiscono mai sotto la barra */
  body.woocommerce-page, body.home, body{ padding-bottom:calc(64px + env(safe-area-inset-bottom, 0px)); }

  /* ---- pannello Categorie a scomparsa (bottom sheet, vetro) ---- */
  .rs-catsheet{ display:block; position:fixed; inset:0; z-index:250; pointer-events:none; }
  .rs-catsheet__scrim{ position:absolute; inset:0; background:rgba(24,10,8,.35);
    opacity:0; transition:opacity .3s ease; }
  .rs-catsheet__panel{ position:absolute; left:0; right:0;
    bottom:calc(63px + env(safe-area-inset-bottom, 0px));
    /* con 9 voci (La Bottega) in orizzontale il pannello usciva dallo schermo: altezza massima e scorrimento */
    max-height:calc(100vh - 63px - env(safe-area-inset-bottom, 0px) - 12px);
    max-height:calc(100dvh - 63px - env(safe-area-inset-bottom, 0px) - 12px);
    overflow-y:auto; overscroll-behavior:contain;
    background:rgba(253,250,245,.9);
    -webkit-backdrop-filter:blur(24px) saturate(1.8); backdrop-filter:blur(24px) saturate(1.8);
    border-radius:22px 22px 0 0; padding:10px 26px calc(14px + 6px);
    /* chiuso: DEVE superare i 63px di ancoraggio + l'ombra verso l'alto,
       altrimenti la sua cima resta a spuntare in fondo allo schermo */
    transform:translateY(calc(100% + 130px));
    transition:transform .32s cubic-bezier(.23,1,.32,1);
    box-shadow:0 -18px 50px -20px rgba(60,30,20,.35); }
  .rs-catsheet.open{ pointer-events:auto; }
  .rs-catsheet.open .rs-catsheet__scrim{ opacity:1; }
  .rs-catsheet.open .rs-catsheet__panel{ transform:translateY(0); }
  .rs-catsheet__grip{ display:block; width:40px; height:4px; border-radius:99px;
    background:rgba(159,33,24,.25); margin:2px auto 10px; }
  .rs-catsheet__panel a{ display:block; padding:12px 2px; text-decoration:none;
    font-family:var(--serif); font-size:20px; color:var(--ink);
    border-bottom:1px solid rgba(159,33,24,.08); }
  .rs-catsheet__panel a:last-child{ border-bottom:none; }
  .rs-catsheet__panel a.ord{ color:var(--accent); font-weight:600; }
  @media (prefers-reduced-motion: reduce){
    .rs-catsheet__panel{ transition:none; }
  }
}

/* ---------- Responsive ---------- */
@media (max-width:900px){
  nav .navlink, header#hdr nav .langs, .rs-navdrop{ display:none; }
  .menu-btn{ display:block; background:none; border:none; font-size:13px; letter-spacing:.12em;
    text-transform:uppercase; color:var(--ink); font-weight:600; cursor:pointer; }
  .mondi{ grid-template-columns:repeat(2,1fr); }
  .locali-grid{ grid-template-columns:1fr; }
  /* footer mobile: le colonne di testo AFFIANCATE al disegno (non sotto) */
  .fgrid{ grid-template-columns:1fr 1fr; gap:14px 26px; align-items:start; }
  .fnews{ grid-template-columns:1fr; }
  .rs-nl{ justify-self:start; max-width:none; }
  .fgrid .fcol:first-child{ grid-row:1 / span 2; }
  section.block{ padding:80px 0; }
  body.admin-bar header#hdr{ top:46px; }
}

/* ---------- Menu mobile (drawer) ---------- */
body.rs-nav-lock{ overflow:hidden; }
html.rs-nav-lock{ overflow:hidden; } /* html ha overflow-x:clip: senza questa la pagina sotto il menu scorre */
.rs-drawer{ touch-action:none; overscroll-behavior:contain; }
.rs-drawer__panel{ touch-action:pan-y; overscroll-behavior:contain; }
.rs-drawer{ position:fixed; inset:0; z-index:300; background:rgba(24,10,8,.5);
  opacity:0; visibility:hidden; transition:opacity .3s ease, visibility .3s ease; }
.rs-drawer.open{ opacity:1; visibility:visible; }
.rs-drawer__panel{ position:absolute; top:0; right:0; height:100%; width:min(86vw,370px);
  background:var(--brand); color:#fff; display:flex; flex-direction:column; padding:26px 30px 30px;
  transform:translateX(100%); transition:transform .4s cubic-bezier(.22,.61,.36,1); overflow-y:auto;
  box-shadow:-20px 0 60px rgba(24,10,8,.35); }
.rs-drawer.open .rs-drawer__panel{ transform:none; }
.rs-drawer__close{ align-self:flex-end; background:none; border:none; color:#fff; font-size:34px;
  line-height:1; cursor:pointer; padding:0 4px; }
/* A menu aperto la × del pannello sparisce: la chiusura è l'hamburger animato
   che resta SOPRA al menu e si trasforma in ×. */
.rs-drawer .rs-drawer__close{ visibility:hidden; }
.rs-drawer__nav{ display:flex; flex-direction:column; margin-top:18px; }
.rs-drawer__nav a{ font-family:var(--serif); font-size:30px; font-weight:500; color:#fff;
  padding:13px 0; border-bottom:1px solid rgba(255,255,255,.16); text-decoration:none; transition:color .2s ease; }
.rs-drawer__nav a:hover{ color:var(--gold); }
.rs-drawer__cart{ font-size:30px !important; letter-spacing:.02em; display:flex; align-items:center; gap:14px; }
.rs-drawer__cart svg{ width:27px; height:27px; flex:0 0 auto; }
/* Filigrana damascata sul pannello rosso del drawer (sottile) */
/* Filigrana damascata visibile sotto testo e disegni ma sopra lo sfondo rosso
   (~40%): background-image bianca dimmata da un overlay rosso. Niente ::before,
   cosi non isola il mix-blend-mode del disegno del pannello. */
.rs-drawer__panel{
  /* velo rosso più coprente: la filigrana resta un sussurro, le voci si leggono */
  background:linear-gradient(rgba(158,34,21,.82), rgba(158,34,21,.82)),
    url("assets/img/footer/filigrana-white.webp") 0 0 / 420px auto repeat, var(--brand); }

/* Dati aziendali + link legali in fondo al menu laterale */
.rs-drawer__legal{ margin-top:22px; padding:16px 4px 6px; border-top:1px solid rgba(255,255,255,.22);
  font-family:var(--sans); font-size:11.5px; line-height:1.7; color:rgba(255,255,255,.78); }
.rs-drawer__legal strong{ color:#fff; font-weight:600; letter-spacing:.02em; }
.rs-drawer__legal a{ color:#fff; text-decoration:underline; text-underline-offset:2px; }
.rs-drawer__legal .lnk{ margin-top:6px; }
.rs-drawer .langs{ display:flex; gap:8px; margin-top:26px; }
.rs-drawer .langs button{ background:none; border:1px solid rgba(255,255,255,.35); color:#fff;
  padding:8px 15px; border-radius:999px; cursor:pointer; font-size:12px; letter-spacing:.1em; font-family:var(--sans); transition:.2s; }
.rs-drawer .langs button.on{ background:#fff; color:var(--brand); border-color:#fff; }
.rs-drawer__draw{ margin-top:auto; padding-top:24px; width:100%; max-width:230px; align-self:center;
  filter:invert(1); mix-blend-mode:screen; opacity:.92; }

/* ---------- Carrello / Checkout / Account (stile shop) ---------- */
.rs-shop-page__title{ font-family:var(--serif); font-weight:600; font-size:clamp(34px,5vw,52px);
  text-align:center; margin:0 0 34px; }
.rs-shop-main table.shop_table{ width:100%; border:1px solid var(--paper2); border-radius:16px;
  border-collapse:separate; border-spacing:0; overflow:hidden; background:#fff; }
.rs-shop-main table.shop_table th{ font-family:var(--sans); font-size:11px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--muted); padding:16px 18px; background:#faf7f0; text-align:left; }
.rs-shop-main table.cart td{ padding:18px; border-top:1px solid var(--paper2); vertical-align:middle; }
.rs-shop-main table.cart .product-thumbnail img{ width:76px; height:76px; object-fit:cover; border-radius:10px; }
.rs-shop-main table.cart .product-name a{ color:var(--ink); font-family:var(--serif); font-size:19px; }
.rs-shop-main table.cart .product-name a:hover{ color:var(--accent); }
.rs-shop-main td.product-price, .rs-shop-main td.product-subtotal{ color:var(--price); font-weight:600; }
.rs-shop-main .product-remove a{ color:var(--muted); font-size:22px; line-height:1; text-decoration:none;
  display:inline-flex; width:30px; height:30px; align-items:center; justify-content:center; border-radius:50%; transition:.2s; }
.rs-shop-main .product-remove a:hover{ color:#fff; background:var(--accent); }
.rs-shop-main .quantity .qty{ width:66px; padding:11px; border:1px solid var(--paper2); border-radius:10px;
  text-align:center; font-family:var(--sans); }
.rs-shop-main .actions{ padding:18px; }
.rs-shop-main .coupon{ display:flex; gap:10px; }
.rs-shop-main .coupon .input-text{ padding:12px 14px; border:1px solid var(--paper2); border-radius:10px; min-width:180px; }
.rs-shop-main .cart-collaterals{ display:flex; justify-content:flex-end; margin-top:36px; }
.rs-shop-main .cart_totals{ width:min(440px,100%); }
.rs-shop-main .cart_totals h2{ font-family:var(--serif); font-size:26px; font-weight:600; margin-bottom:14px; }
.rs-shop-main .cart_totals table.shop_table td, .rs-shop-main .cart_totals table.shop_table th{ padding:14px 16px; }
.rs-shop-main .wc-proceed-to-checkout{ margin-top:18px; }
.rs-shop-main .wc-proceed-to-checkout .checkout-button{ display:block; text-align:center; width:100%; }
.rs-shop-main .cart-empty{ text-align:center; font-family:var(--serif); font-size:26px; color:var(--ink); margin:12px 0 22px; }
.rs-shop-main .return-to-shop{ text-align:center; margin:0 0 8px; }
.rs-cart-suggest{ margin-top:72px; }
.rs-cart-suggest .rs-strip{ padding:60px 0 0; }
/* "Ritorna al negozio": stile bordeaux del sito, staccato dai puntini del carosello */
.rs-shop-main .return-to-shop{ text-align:center; margin:0 0 12px; padding-top:60px; }
.rs-shop-main .button.wc-backward,
.rs-shop-main .return-to-shop .button,
.rs-shop-main .cart-empty ~ p .button{
  display:inline-block; background:transparent; color:var(--accent) !important; border:1px solid var(--accent);
  border-radius:999px; padding:14px 36px; font-size:12px; letter-spacing:.14em; text-transform:uppercase;
  font-weight:600; text-decoration:none; transition:background .25s ease,color .25s ease; }
.rs-shop-main .button.wc-backward:hover,
.rs-shop-main .return-to-shop .button:hover{ background:var(--accent); color:#fff !important; }
/* "Annullare" (undo rimozione articolo) come pulsante, così è chiaro che si clicca */
.woocommerce a.restore-item, .woocommerce-message a.restore-item, .rs-shop-main a.restore-item{
  display:inline-block; margin-left:12px; background:var(--accent); color:#fff !important;
  border-radius:999px; padding:6px 16px; font-size:11px; letter-spacing:.08em; text-transform:uppercase;
  font-weight:600; text-decoration:none; transition:background .2s ease; }
.woocommerce a.restore-item:hover, .rs-shop-main a.restore-item:hover{ background:var(--accent-d); }
/* checkout */
.rs-shop-main .woocommerce-checkout h3{ font-family:var(--serif); font-size:24px; font-weight:600; margin-bottom:16px; }
.rs-shop-main .woocommerce-checkout .form-row input.input-text,
.rs-shop-main .woocommerce-checkout .form-row textarea,
.rs-shop-main .woocommerce-checkout .select2-selection,
.rs-shop-main .woocommerce-checkout select{ border:1px solid var(--paper2) !important; border-radius:10px;
  padding:12px 14px; font-family:var(--sans); }
.rs-shop-main #order_review, .rs-shop-main .woocommerce-checkout #payment{ background:#faf7f0; border-radius:16px; padding:26px; }
.rs-shop-main #payment ul.payment_methods{ border-bottom:1px solid var(--paper2); }
@media (max-width:600px){
  .rs-shop-main table.cart thead{ display:none; }
  .rs-shop-main table.cart, .rs-shop-main table.cart tbody, .rs-shop-main table.cart tr, .rs-shop-main table.cart td{ display:block; width:100%; }
  .rs-shop-main table.cart tr{ border-top:1px solid var(--paper2); padding:8px 0; }
  .rs-shop-main table.cart td{ border:0; padding:8px 16px; text-align:right; }
  .rs-shop-main table.cart td::before{ content:attr(data-title); float:left; color:var(--muted);
    font-size:11px; letter-spacing:.1em; text-transform:uppercase; }
  .rs-shop-main table.cart td.product-remove::before, .rs-shop-main table.cart td.product-thumbnail::before{ content:""; }
}

/* hero video-to-scroll nelle pagine interne: pista più corta della home */
.hero-scroll--sub{ height:320vh; }

/* ---------- /hotel: chips di fiducia, nastro foto, camere con immagini ---------- */
.rs-chips{ display:flex; gap:10px; flex-wrap:wrap; margin-top:20px; }
.rs-chip{ display:inline-flex; align-items:center; gap:6px; padding:8px 16px; border-radius:999px;
  border:1px solid rgba(255,255,255,.45); color:#fff; font-size:12px; letter-spacing:.08em;
  text-transform:uppercase; font-weight:600; backdrop-filter:blur(4px); background:rgba(0,0,0,.18); }
.rs-chip sup{ font-size:.55em; }

/* nastro di foto in loop continuo (pausa al passaggio del mouse) */
.rs-hmarquee{ overflow:clip; padding:8px 0 40px; }
.rs-hmarquee-track{ display:flex; gap:14px; width:max-content;
  animation:rs-hmarquee 55s linear infinite; will-change:transform; }
.rs-hmarquee:hover .rs-hmarquee-track{ animation-play-state:paused; }
.rs-hmarquee img{ height:240px; width:auto; max-width:none; border-radius:14px; object-fit:cover; }
@keyframes rs-hmarquee{ to{ transform:translateX(-50%); } }
@media (max-width:700px){ .rs-hmarquee img{ height:150px; } }
@media (prefers-reduced-motion:reduce){ .rs-hmarquee-track{ animation:none; } }

/* camere con foto */
.rs-hrooms{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:38px; }
.rs-hroom{ background:#fff; border:1px solid var(--paper2); border-radius:16px; overflow:hidden;
  transition:transform .35s cubic-bezier(.22,.61,.36,1), box-shadow .35s ease; }
.rs-hroom:hover{ transform:translateY(-4px); box-shadow:0 18px 40px rgba(30,65,72,.16); }
.rs-hroom-img{ aspect-ratio:16/10; overflow:hidden; }
.rs-hroom-img img{ width:100%; height:100%; object-fit:cover; transition:transform .6s cubic-bezier(.22,.61,.36,1); }
.rs-hroom:hover .rs-hroom-img img{ transform:scale(1.05); }
.rs-hroom-body{ padding:16px 18px 18px; display:flex; flex-direction:column; gap:6px; }
.rs-hroom-name{ font-family:var(--serif); font-size:20px; font-weight:600; margin:0; }
.rs-hroom-spec{ font-size:12.5px; color:var(--muted); letter-spacing:.02em; }
.rs-hroom-book{ align-self:flex-start; margin-top:8px; font-size:10.5px; letter-spacing:.12em;
  text-transform:uppercase; font-weight:600; color:var(--accent); border:1px solid var(--accent);
  border-radius:999px; padding:8px 16px; transition:.2s; }
.rs-hroom-book:hover{ background:var(--accent); color:#fff; }
.rs-scarcity{ margin-top:26px; font-family:var(--serif); font-style:italic; font-size:17px; color:var(--muted); }

/* riprova sociale */
.rs-hquote-sec{ padding-top:0; }
.rs-hquote{ margin:0 auto; max-width:720px; text-align:center; background:var(--accent); color:#fff;
  border-radius:22px; padding:44px 38px; }
.rs-hquote-stars{ color:#e7c877; letter-spacing:.3em; margin-bottom:16px; }
.rs-hquote p{ font-family:var(--serif); font-style:italic; font-size:20px; line-height:1.55; margin:0 0 14px; }
.rs-hquote cite{ display:block; font-style:normal; font-size:11.5px; letter-spacing:.16em;
  text-transform:uppercase; color:rgba(255,255,255,.75); margin-bottom:20px; }
.rs-hquote .rs-hroom-book{ color:#fff; border-color:rgba(255,255,255,.6); align-self:center; }
.rs-hquote .rs-hroom-book:hover{ background:#fff; color:var(--accent); }

/* appartamenti con foto */
.rs-hapts{ display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-top:34px; }
.rs-hapt{ margin:0; position:relative; border-radius:16px; overflow:hidden; }
.rs-hapt img{ width:100%; aspect-ratio:16/10; object-fit:cover; transition:transform .6s cubic-bezier(.22,.61,.36,1); }
.rs-hapt:hover img{ transform:scale(1.04); }
.rs-hapt figcaption{ position:absolute; left:0; right:0; bottom:0; padding:18px 20px; color:#fff;
  font-family:var(--serif); font-size:19px;
  background:linear-gradient(to top, rgba(15,33,36,.85), transparent); }
@media (max-width:900px){ .rs-hrooms{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .rs-hrooms, .rs-hapts{ grid-template-columns:1fr; } }

/* ============ SHOP — scheda prodotto ============ */
/* La galleria resta quella standard di WooCommerce; l'hover-swap è solo JS.
   Cursore "mano" sulle miniature per far capire che sono interattive. */
.rs-shop-main .woocommerce-product-gallery__image:nth-child(n+2){ cursor:pointer; }
/* sicurezza: la galleria è sempre visibile anche se lo script di reveal non parte */
.rs-shop-main .woocommerce-product-gallery{ opacity:1 !important; }

/* Ingredienti / allergeni in scheda */
.rs-ingredients{ margin:18px 0 6px; padding-top:16px; border-top:1px solid var(--paper2); }
.rs-ing-h{ font-family:var(--serif); font-size:20px; font-weight:600; color:var(--ink); margin:0 0 6px; }
.rs-ing-t{ color:var(--muted); font-size:15px; line-height:1.6; margin:0; }
.rs-allergeni{ margin:10px 0 0; font-size:14px; color:var(--ink); }

/* ============ SHOP header dedicato ============ */
/* Link discreto di ritorno al sito principale (lo shop è un sito a sé). */
.rs-shop-hdr .rs-backsite{ font-size:12.5px; letter-spacing:.06em; opacity:.72; }
.rs-shop-hdr .rs-backsite:hover{ opacity:1; }

/* ============ LOCALI — cartina (Leaflet) ============ */
.rs-lmap-wrap{ margin:34px 0 44px; }
#localiMap{ height:clamp(340px,52vh,520px); border-radius:18px; border:1px solid var(--paper2);
  box-shadow:0 18px 44px rgba(35,25,26,.12); z-index:0; }
.rs-lpin{ background:none; border:none; }
.rs-lpin svg{ filter:drop-shadow(0 3px 6px rgba(35,25,26,.35)); }
.leaflet-popup-content-wrapper{ border-radius:12px; font-family:var(--sans); }
.leaflet-popup-content{ margin:12px 16px; font-size:13.5px; line-height:1.5; }
.leaflet-popup-content b{ font-family:var(--serif); font-size:17px; font-weight:600; color:var(--brand); }
.leaflet-popup-content a{ color:var(--brand); font-weight:600; }
.rs-venue{ cursor:pointer; }

/* marchio storico nel footer (come sul sito hotel: 88px).
   Specificità alta + !important: sulle pagine shop WooCommerce inietta
   ".woocommerce-page img{height:auto}" che altrimenti vincerebbe e farebbe
   esplodere l'immagine alla dimensione naturale (1024px). */
footer.site-footer img.rs-foot-marchio{ height:88px !important; width:auto !important; margin-top:20px; opacity:.92; }

/* Barra rassicurazioni sopra il footer (spedizioni · assistenza · qualità) */
/* ---- Fascia newsletter (rossa, stile shop): riquadro scuro + email a pillola + bottone ---- */
/* colori esatti dello shop online: fascia #7f0b01, riquadro e bottone #9f2116 */
.rs-nlband{ background:#7f0b01; }
.rs-nlband-in{ display:flex; align-items:center; gap:22px 40px; padding:36px 22px; flex-wrap:wrap; }
.rs-nlband-label{ background:#9f2116; color:#fff; font-family:var(--serif); font-weight:600;
  font-size:clamp(20px,2.2vw,27px); letter-spacing:.06em; text-transform:uppercase;
  padding:22px 42px; margin:0; flex:1 1 340px; text-align:center; }
.rs-nlband .rs-nl{ flex:1 1 400px; max-width:none; display:flex; align-items:center; justify-content:flex-end; gap:0; }
.rs-nlband .rs-nl input[type="email"]{ flex:1; min-width:0; max-width:460px; background:#fff; color:var(--ink);
  border:none; border-radius:999px; padding:17px 46px 17px 26px; text-align:center;
  font-family:var(--sans); font-size:14.5px; }
.rs-nlband .rs-nl input[type="email"]::placeholder{ color:#9a8c80; }
.rs-nlband .rs-nl input[type="email"]:focus{ outline:2px solid rgba(255,255,255,.55); }
.rs-nlband .rs-nl button{ background:#9f2116; color:#fff; border:none; border-radius:999px;
  padding:17px 38px; margin-left:-34px; font-family:var(--sans); font-weight:600; font-size:14px;
  letter-spacing:.02em; cursor:pointer; box-shadow:0 8px 24px rgba(40,6,2,.35); transition:background .2s ease; }
.rs-nlband .rs-nl button:hover{ background:#b93a2b; }
.rs-nlband .rs-nl-note{ flex-basis:100%; text-align:right; color:rgba(255,255,255,.85); font-size:12.5px; margin:-6px 0 0; }
.rs-nlband .rs-nl-ok,.rs-nlband .rs-nl-err{ flex-basis:100%; color:#fff; font-size:14.5px; margin:0; }
@media (max-width:760px){
  .rs-nlband .rs-nl{ flex-wrap:wrap; gap:10px; }
  .rs-nlband .rs-nl button{ margin-left:0; }
  .rs-nlband .rs-nl-note{ text-align:center; }
}

.rs-trustbar{ background:var(--accent); }
/* i 3 link distribuiti su tutta la larghezza della pagina (come lo shop online) */
.rs-trustbar-in{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:18px 40px; padding:26px 22px; }
@media (max-width:760px){ .rs-trustbar-in{ justify-content:center; } }
.rs-trust{ display:flex; align-items:center; gap:16px; color:#fff; text-decoration:none;
  font-family:var(--sans); font-size:13.5px; letter-spacing:.16em; text-transform:uppercase;
  transition:opacity .2s ease; }
.rs-trust:hover{ opacity:.75; color:#fff; }
.rs-trust span{ border-bottom:1px solid transparent; padding-bottom:2px; transition:border-color .2s ease; }
.rs-trust:hover span{ border-color:rgba(255,255,255,.6); }
.rs-trust img{ height:40px; width:auto; display:block; }
/* footer a tinta unita, come nel resto del sito: la filigrana damascata e' stata tolta
   (Gio, 20/10/2026). Il colore lo danno le variabili --pf-* piu' sotto. */
.site-footer{ position:relative; }

/* Pagine informative (Spedizioni, Assistenza clienti, Garanzia di qualità) */
.rs-content .rs-lead{ font-family:var(--serif); font-size:22px; line-height:1.5; color:#4a3f38; margin:0 0 10px; }
.rs-content h2{ font-family:var(--serif); font-size:30px; font-weight:600; margin:40px 0 12px; }
.rs-content h3{ font-family:var(--serif); font-size:21px; font-weight:600; margin:24px 0 6px; }
.rs-content .rs-table-wrap{ overflow-x:auto; margin:16px 0; }
.rs-content table{ border-collapse:collapse; width:100%; font-family:var(--sans); font-size:15px; }
.rs-content th, .rs-content td{ text-align:left; padding:12px 16px; border-bottom:1px solid var(--paper2); }
.rs-content thead th{ color:var(--accent); text-transform:uppercase; letter-spacing:.08em; font-size:12px; }
.rs-content td:first-child{ font-weight:600; }
.rs-content ul{ padding-left:20px; } .rs-content li{ margin:6px 0; }
/* Colonna "Il gruppo": scudetti verso gli altri siti Rosa Salva */
.fcol--sites .rs-scudetto{ display:flex !important; align-items:center; gap:10px; }
.fcol--sites .rs-scudetto img{ height:22px; width:auto; display:inline-block; margin:0; }
.fcol--sites .rs-foot-marchio{ display:block; margin-top:24px; opacity:1; }
@media (max-width:700px){ .rs-trustbar-in{ flex-direction:column; gap:16px; } }
/* stessa protezione per il disegno del footer */
footer.site-footer img.rs-foot-draw{ height:250px !important; width:auto !important; }

/* ============ selettore lingua a discesa con bandiere ============ */
.rs-langsel{ position:relative; display:inline-block; }
.rs-langsel-btn{ display:inline-flex; align-items:center; gap:7px; background:none;
  border:1px solid rgba(35,25,26,.16); border-radius:999px; padding:5px 11px; cursor:pointer;
  font:inherit; font-size:12.5px; color:inherit; letter-spacing:.03em; transition:border-color .2s, color .2s; }
.rs-langsel-btn .fl{ font-size:15px; line-height:1; }
.rs-langsel-btn .nm{ font-weight:500; }
.rs-langsel-btn .cr{ font-size:10px; opacity:.7; transition:transform .2s; }
.rs-langsel.open .rs-langsel-btn .cr{ transform:rotate(180deg); }
.rs-langsel-btn:hover{ border-color:var(--brand); }
header#hdr.accent .rs-langsel-btn{ color:#fff; border-color:rgba(255,255,255,.35); }
header#hdr.accent .rs-langsel-btn:hover{ border-color:#fff; }
.rs-langsel-menu{ position:absolute; top:calc(100% + 8px); right:0; min-width:172px; margin:0; padding:6px;
  list-style:none; background:#fff; border:1px solid var(--paper2); border-radius:12px;
  box-shadow:0 16px 40px rgba(35,25,26,.18); opacity:0; visibility:hidden; transform:translateY(-6px);
  transition:opacity .18s ease, transform .18s ease, visibility .18s; z-index:300; }
.rs-langsel.open .rs-langsel-menu{ opacity:1; visibility:visible; transform:none; }
.rs-langsel-menu li{ margin:0; padding:0; }
.rs-langsel-opt{ display:flex; align-items:center; gap:10px; width:100%; background:none; border:none;
  cursor:pointer; padding:9px 12px; border-radius:8px; font:inherit; font-size:14px; color:var(--ink);
  text-align:left; transition:background .15s; }
.rs-langsel-opt .fl{ font-size:18px; line-height:1; }
.rs-langsel-opt:hover{ background:var(--paper); }
.rs-langsel-opt.on{ color:var(--brand); font-weight:600; }
/* footer (fondo scuro) */
.site-footer .rs-langsel-btn{ color:#ccc0b1; border-color:rgba(255,255,255,.2); }
.site-footer .rs-langsel-btn:hover{ color:#fff; border-color:rgba(255,255,255,.45); }
.site-footer .rs-langsel-menu{ left:0; right:auto; }
/* drawer mobile: a tutta larghezza */
.rs-drawer .rs-langsel{ display:block; margin-top:8px; }
.rs-drawer .rs-langsel-btn{ width:100%; justify-content:center; color:#fff; border-color:rgba(255,255,255,.3); }
.rs-drawer .rs-langsel-menu{ left:0; right:0; }

/* footer mobile: disegno più compatto accanto alle colonne di testo */
@media (max-width:900px){
  footer.site-footer img.rs-foot-draw{ height:190px !important; max-width:100%; object-fit:contain; }
}

/* ---------- HERO SLIDER dello shop (home): foto a tutto schermo, testi che cambiano ---------- */
.rs-shophero{ position:relative; height:calc(100svh - 76px); min-height:520px; overflow:hidden; background:#1c1512; }
.rs-shs{ position:absolute; inset:0; background-position:center; background-size:cover;
  opacity:0; transition:opacity 1.1s ease; }
.rs-shs::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(rgba(26,14,10,.30), rgba(26,14,10,.30) 55%, rgba(26,14,10,.62)); }
.rs-shs.on{ opacity:1; }
.rs-shs-cap{ position:absolute; inset:auto 0 0 0; z-index:2; text-align:center; color:#fff;
  padding:0 22px 13vh; opacity:0; transform:translateY(14px);
  transition:opacity .9s ease .25s, transform .9s ease .25s; pointer-events:none; }
.rs-shs.on .rs-shs-cap{ opacity:1; transform:none; }
.rs-shs-cap .t{ font-family:var(--serif); font-weight:600; font-size:clamp(42px,6.5vw,88px);
  line-height:1.04; letter-spacing:-.01em; text-wrap:balance; margin:0 0 16px;
  text-shadow:0 2px 30px rgba(20,10,8,.45); }
.rs-shs-cap .p{ font-family:var(--sans); font-size:clamp(15px,1.6vw,18.5px); line-height:1.6;
  max-width:62ch; margin:0 auto; color:rgba(255,251,244,.94); text-shadow:0 1px 18px rgba(20,10,8,.5); }
.rs-shs-cap a{ pointer-events:auto; }
/* bottone sulle slide SCURE: contorno bianco, riempie in hover */
.rs-shs-cap .rs-btn-ghost{ margin-top:22px; color:#fff; border-color:rgba(255,255,255,.75); }
.rs-shs-cap .rs-btn-ghost:hover{ background:#fff; color:var(--accent); border-color:#fff; }
/* Variante CHIARA (fondo crema, come lo shop online): testo a sinistra,
   titolo rosso maiuscolo, descrizione scura, bottone a contorno. */
.rs-shs--light::after{ content:none; }
.rs-shs--light .rs-shs-cap{ inset:0 auto 0 0; width:min(620px,88vw); text-align:left;
  display:flex; flex-direction:column; justify-content:center; align-items:flex-start;
  padding:0 22px 0 max(6vw,26px); }
.rs-shs--light .rs-shs-cap .t{ color:var(--accent); text-shadow:none; text-transform:uppercase;
  font-size:clamp(40px,5.6vw,78px); }
.rs-shs--light .rs-shs-cap .p{ color:#5a4c42; text-shadow:none; margin:0 0 28px; max-width:46ch; }
.rs-shs--light .rs-shs-cap .rs-btn-ghost{ margin-top:0; color:var(--accent); border-color:var(--accent); }
.rs-shs--light .rs-shs-cap .rs-btn-ghost:hover{ background:var(--accent); color:#fff; border-color:var(--accent); }
/* Slide con foto prodotto: fondo bianco (le foto sono su bianco, si fondono),
   immagine accostata a destra */
.rs-shs--photo{ background:#fff; }
/* Slide con immagine composta (corsivo, zaleti): MAI tagliata — contain su
   fondo dello stesso crema dell'immagine (#f2ddc6): si adatta a ogni schermo */
.rs-shs--full{ background-color:#f2ddc6; background-size:contain; background-repeat:no-repeat;
  background-position:center; }
.rs-shophero img.rs-shs-img{ position:absolute; z-index:0; right:max(4vw,20px); top:50%; transform:translateY(-50%);
  height:min(76%,600px) !important; width:auto !important; max-width:52vw !important; object-fit:contain; }
.rs-shs--light::before{ z-index:1; }
.rs-shs-cap{ z-index:2; }
/* Mobile: la foto tiene il soggetto (a destra nelle slide chiare) dentro lo schermo,
   testi più compatti */
@media (max-width:760px){
  /* header: subito il monogramma (il wordmark largo si sovrappone ai comandi) */
  header#hdr .brand{ width:39px; }
  header#hdr .lg-word{ opacity:0; }
  header#hdr .lg-mark{ opacity:1; }
}
.rs-shophero-dots{ position:absolute; left:0; right:0; bottom:5.5vh; z-index:3;
  display:flex; gap:10px; justify-content:center; }
.rs-shophero-dots button{ width:9px; height:9px; padding:0; border:none; border-radius:50%;
  background:rgba(255,255,255,.45); cursor:pointer; transition:.25s; }
.rs-shophero-dots button.on{ background:#fff; transform:scale(1.35); }
.rs-shophero-cue{ position:absolute; left:50%; bottom:1.6vh; transform:translateX(-50%); z-index:3;
  color:rgba(255,255,255,.85); font-size:22px; line-height:1; animation:rs-cue 2.2s ease-in-out infinite; pointer-events:none; }
/* Puntini e freccia in bordeaux quando la diapositiva attiva è chiara */
.rs-shophero.is-light .rs-shophero-dots button{ background:rgba(158,34,21,.32); }
.rs-shophero.is-light .rs-shophero-dots button.on{ background:var(--accent); }
.rs-shophero.is-light .rs-shophero-cue{ color:var(--accent); }

/* Mobile/tablet: layout impilato — scritta CENTRATA in alto, foto grande e
   INTERA sotto (mai tagliata, niente veli) */
@media (max-width:900px){
  .rs-shophero{ min-height:520px; }
  .rs-shs--light .rs-shs-cap{ width:100%; inset:0; padding:calc(90px + 3vh) 22px 0;
    justify-content:flex-start; align-items:center; text-align:center; }
  .rs-shs--light .rs-shs-cap .t{ font-size:clamp(30px,8vw,52px); }
  .rs-shs-cap .p{ font-size:15px; }
  .rs-shophero img.rs-shs-img{ right:50%; transform:translate(50%,0); top:auto; bottom:7.5vh;
    height:47% !important; width:auto !important; max-width:94vw !important; }
  .rs-shs--full{ background-size:contain; background-position:center bottom 7.5vh; }
  /* immagini col soggetto tagliato nel sorgente: appoggiate al bordo destro,
     così il taglio esce dallo schermo */
  .rs-shophero .rs-shs--flush img.rs-shs-img{ right:-6px; transform:translate(0,0); }
}
/* flush anche su desktop: il bordo tagliato coincide col bordo dello schermo */
.rs-shophero .rs-shs--flush img.rs-shs-img{ right:-6px; }

/* ---------- Pagine editoriali dello shop: «Dolci artigianali» e «Snack salati e cucina» ----------
   Sorelle delle pagine di categoria: foto grande a tutta larghezza sotto la barra (come .rs-cathero),
   intro centrata (come .rs-catintro), righe foto/testo sulla griglia del sito (.wrap: 1280 / 32),
   invito finale su fascia crema a tutta larghezza, appoggiata alla barra bordeaux delle garanzie. */

/* la pagina non è in scatola: ogni sezione decide la propria larghezza; un solo margine laterale, quello di .wrap */
.rs-dolci{ --rs-gut:32px; counter-reset:rs-riga; }

/* ---- 1. Foto grande in alto: stesse misure di .rs-cathero ---- */
.rs-dolci-hero{ position:relative; height:60vh; min-height:440px; overflow:hidden;
  display:flex; flex-direction:column; justify-content:flex-end; align-items:center;
  padding:0 var(--rs-gut) 7vh; text-align:center; color:#fff;
  background-color:#1a100c; background-position:center; background-size:cover; background-repeat:no-repeat; }
.rs-dolci-hero::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(rgba(26,14,10,.22) 0%, rgba(26,14,10,.42) 40%, rgba(26,14,10,.66) 62%, rgba(26,14,10,.78) 100%); }
.rs-dolci-hero > *{ position:relative; z-index:2; }
/* la briciola fa da occhiello, come negli hero del sito (il rientro compensa la spaziatura dell'ultima lettera) */
.rs-dolci-hero .crumb{ font-family:var(--sans); font-size:12px; font-weight:600; line-height:1.5;
  letter-spacing:.42em; padding-left:.42em; text-transform:uppercase; color:#f0e4cf; margin:0 0 16px;
  text-shadow:0 1px 14px rgba(20,10,8,.7); }
.rs-dolci-hero .crumb a{ color:inherit; text-decoration:none; }
.rs-dolci-hero .crumb a:hover{ color:#fff; text-decoration:underline; text-underline-offset:.3em; }
.rs-dolci-hero h1{ font-family:var(--serif); font-weight:600; text-transform:none;
  font-size:clamp(38px,5.5vw,72px); line-height:1.02; letter-spacing:-.01em; color:#fff;
  margin:0 0 .09em; max-width:1100px; text-wrap:balance; text-shadow:0 2px 26px rgba(20,10,8,.5); }

/* ---- 2. Intro: come .rs-catintro, con il suo titolo ---- */
.rs-dolci-intro{ max-width:calc(776px + 2 * var(--rs-gut)); margin:0 auto; padding:76px var(--rs-gut) 0; text-align:center; }
.rs-dolci-intro h2{ font-family:var(--serif); font-weight:600; text-transform:none;
  font-size:clamp(30px,4vw,50px); line-height:1.04; letter-spacing:-.01em; color:var(--ink);
  margin:0 0 22px; text-wrap:balance; }
.rs-dolci-intro p{ font-family:var(--serif); font-size:clamp(18px,2vw,22px); line-height:1.6;
  color:#4a3f38; margin:0; text-wrap:pretty; }

/* ---- 3. Righe foto / testo, sulla griglia del sito ---- */
.rs-dolci-row{ counter-increment:rs-riga;
  display:grid; grid-template-columns:minmax(0,7fr) minmax(0,5fr); gap:72px; align-items:center;
  max-width:calc(1216px + 2 * var(--rs-gut)); margin:104px auto 0; padding:0 var(--rs-gut); }
.rs-dolci-intro + .rs-dolci-row{ margin-top:88px; }
.rs-dolci-row.rev{ grid-template-columns:minmax(0,5fr) minmax(0,7fr); }
.rs-dolci-row.rev figure{ order:2; }

/* cornice uguale per tutte le foto (7:5 = i 1400 × 1000 consigliati nel Personalizza) */
.rs-dolci-row figure{ position:relative; margin:0; aspect-ratio:7 / 5; overflow:hidden;
  border-radius:14px; background:#efeeec; }
.rs-dolci-row figure img{ position:relative; z-index:1; display:block; width:100%; height:100%;
  object-fit:cover; border-radius:0; }
/* foto quadrate o verticali (.is-fit, lo decide il template): restano intere e ai lati prosegue,
   sfumato, il loro stesso fondale. Due strati della stessa foto: sopra quello all'altezza esatta
   della cornice, sotto uno stirato che riempie i 20px di sbordo (così la sfumatura non schiarisce i bordi) */
.rs-dolci-row figure.is-fit img{ object-fit:contain; }
.rs-dolci-row figure.is-fit::before,
.rs-dolci-row figure.is-fit::after{ content:""; position:absolute; top:-20px; bottom:-20px; width:calc(50% + 20px);
  background-image:var(--rs-foto), var(--rs-foto); background-repeat:no-repeat;
  background-size:3000% calc(100% - 40px), 3000% 100%; filter:blur(10px); }
.rs-dolci-row figure.is-fit::before{ left:-20px; background-position:0 50%, 0 50%; }
.rs-dolci-row figure.is-fit::after{ right:-20px; background-position:100% 50%, 100% 50%; }

.rs-dolci-row .txt{ min-width:0; }
/* numero d'ordine, come gli occhielli del sito: cifra bordeaux + filetto oro (decorativo, non letto ad alta voce) */
.rs-dolci-row .txt::before{ content:counter(rs-riga, decimal-leading-zero);
  content:counter(rs-riga, decimal-leading-zero) / "";
  display:block; width:max-content;
  font-family:var(--sans); font-size:12px; font-weight:600; line-height:1; letter-spacing:.42em;
  color:var(--accent); margin:0 0 22px; padding-right:40px;
  background:linear-gradient(var(--gold),var(--gold)) no-repeat right 0 top 50% / 32px 1px; }
.rs-dolci-row .txt h3{ font-family:var(--serif); font-weight:600; text-transform:none;
  font-size:clamp(28px,2.8vw,40px); line-height:1.08; letter-spacing:-.01em; color:var(--ink);
  margin:0 0 18px; text-wrap:balance; overflow-wrap:break-word; }
.rs-dolci-row .txt p{ font-family:var(--sans); font-size:16px; line-height:1.75; color:#4a3f38;
  margin:0 0 30px; text-wrap:pretty; }
/* etichette lunghe (tedesco) che vanno a capo: restano centrate nella pillola */
.rs-dolci-row .rs-btn,
.rs-dolci-cta .rs-btn{ max-width:100%; text-align:center; line-height:1.25; text-wrap:balance; }

/* ---- 4. Invito finale: fascia crema a tutta larghezza, a filo della barra delle garanzie ---- */
.rs-dolci-cta{ background:#f2ddc6; text-align:center; margin:120px 0 0; padding:96px var(--rs-gut); }
.rs-dolci-cta h2{ font-family:var(--serif); font-weight:600; text-transform:none;
  font-size:clamp(30px,4vw,50px); line-height:1.04; letter-spacing:-.01em; color:var(--ink);
  margin:0 auto 20px; text-wrap:balance; }
.rs-dolci-cta p{ font-family:var(--serif); font-size:clamp(18px,2vw,23px); line-height:1.5;
  color:#4a3f38; max-width:56ch; margin:0 auto; text-wrap:balance; }
.rs-dolci-cta .rs-cta-row{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap;
  max-width:none; margin:34px auto 0; }

/* ---- schermi medi: due colonne pari ---- */
@media (max-width:1100px){
  .rs-dolci-row,
  .rs-dolci-row.rev{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(32px,4.7vw,48px); margin-top:88px; align-items:start; }
  .rs-dolci-intro + .rs-dolci-row{ margin-top:76px; }
}
/* ---- tablet in verticale: ancora due colonne, allineate in alto (i testi lunghi superano la foto) ---- */
@media (max-width:900px){
  .rs-dolci-row,
  .rs-dolci-row.rev{ align-items:start; margin-top:72px; }
  .rs-dolci-intro + .rs-dolci-row{ margin-top:64px; }
  .rs-dolci-row .txt::before{ margin-bottom:16px; }
  .rs-dolci-row .txt h3{ font-size:28px; margin-bottom:14px; }
  .rs-dolci-row .txt p{ font-size:15px; line-height:1.7; margin-bottom:24px; }
  .rs-dolci-cta{ margin-top:96px; padding:80px var(--rs-gut) 84px; }
}
/* ---- telefono: foto sopra, testo sotto ---- */
@media (max-width:700px){
  .rs-dolci-hero .crumb{ font-size:11px; letter-spacing:.26em; padding-left:.26em; margin-bottom:12px; }
  .rs-dolci-intro{ padding-top:56px; }
  .rs-dolci-row,
  .rs-dolci-row.rev{ grid-template-columns:minmax(0,1fr); gap:26px; margin-top:72px; }
  .rs-dolci-row.rev figure{ order:0; }
  .rs-dolci-intro + .rs-dolci-row{ margin-top:56px; }
  .rs-dolci-row figure.is-fit{ aspect-ratio:1 / 1; }
  .rs-dolci-row .txt::before{ margin-bottom:14px; }
  .rs-dolci-row .txt p{ font-size:16px; line-height:1.75; max-width:34em; }
  .rs-dolci-cta{ margin-top:80px; padding:68px var(--rs-gut) 76px; }
}
@media (max-width:560px){
  .rs-dolci-cta .rs-cta-row{ display:inline-flex; flex-direction:column; align-items:stretch; gap:12px; max-width:100%; min-width:min(264px,100%); }
}
/* telefoni stretti: la briciola più lunga (tedesco) resta su una riga */
@media (max-width:400px){
  .rs-dolci-hero .crumb{ letter-spacing:.18em; padding-left:.18em; }
}

/* ---------- Form Ordine personalizzato: righe "Prodotti e quantità" ---------- */
.rs-form-sub{ font-family:var(--serif); font-size:22px; font-weight:600; color:var(--ink); margin:0 0 14px; }
.rs-order-lines{ margin:30px 0; }
.rs-order-line{ display:flex; gap:12px; margin-bottom:12px; }
.rs-order-prod{ flex:1; min-width:0; -webkit-appearance:none; appearance:none;
  font-family:var(--sans); font-size:15px; color:var(--ink);
  padding:13px 44px 13px 18px; border:1.5px solid var(--paper2); border-radius:999px; background-color:#fff;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%239e2215' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 18px center; background-size:12px;
  cursor:pointer; transition:border-color .2s ease; }
.rs-order-prod:hover,.rs-order-prod:focus{ border-color:var(--accent); outline:none; }
.rs-order-qty{ width:110px; text-align:center; font-family:var(--sans); font-size:15px; color:var(--ink);
  padding:13px 14px; border:1.5px solid var(--paper2); border-radius:999px; background:#fff;
  transition:border-color .2s ease; }
.rs-order-qty:hover,.rs-order-qty:focus{ border-color:var(--accent); outline:none; }
/* Selettore prodotto illustrato (foto + nome + prezzo), in stile sito */
.rs-pick{ position:relative; flex:1; min-width:0; }
.rs-pick-native{ display:none !important; }
.rs-pick-btn{ display:flex; align-items:center; gap:14px; width:100%; text-align:left;
  background:#fff; border:1.5px solid var(--paper2); border-radius:999px; padding:8px 44px 8px 8px;
  cursor:pointer; font-family:var(--sans); font-size:15px; color:var(--ink); min-height:56px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%239e2215' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 18px center; background-size:12px;
  transition:border-color .2s ease; }
.rs-pick-btn:hover,.rs-pick.open .rs-pick-btn{ border-color:var(--accent); }
.rs-pick-btn img{ width:40px; height:40px; border-radius:50%; object-fit:contain;
  background:#faf7f1; flex:0 0 auto; }
.rs-pick-btn .nm{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; padding-left:6px; }
.rs-pick-btn .pr{ color:var(--price); font-weight:600; font-size:14px; white-space:nowrap; }
.rs-pick-list{ position:absolute; z-index:40; left:0; right:0; top:calc(100% + 8px);
  max-height:340px; overflow-y:auto; background:#fff; border:1px solid var(--paper2);
  border-radius:20px; box-shadow:0 24px 60px -24px rgba(60,30,20,.35); padding:8px;
  display:none; }
.rs-pick.open .rs-pick-list{ display:block; }
.rs-pick-item{ display:flex; align-items:center; gap:14px; width:100%; text-align:left;
  background:transparent; border:none; border-radius:14px; padding:8px 12px; cursor:pointer;
  font-family:var(--sans); font-size:15px; color:var(--ink); transition:background .15s ease; }
.rs-pick-item:hover{ background:#faf3ee; }
.rs-pick-item.on{ background:#fbf3ee; }
.rs-pick-item.on .nm{ color:var(--accent); font-weight:600; }
.rs-pick-item.placeholder{ color:var(--muted); font-style:italic; }
.rs-pick-item img{ width:46px; height:46px; border-radius:12px; object-fit:contain;
  background:#faf7f1; flex:0 0 auto; }
.rs-pick-item img.ph{ visibility:hidden; }
.rs-pick-item .nm{ flex:1; min-width:0; }
.rs-pick-item .pr{ color:var(--price); font-weight:600; font-size:14px; white-space:nowrap; }
.rs-pick-list::-webkit-scrollbar{ width:8px; }
.rs-pick-list::-webkit-scrollbar-thumb{ background:var(--paper2); border-radius:8px; }

/* Tendina variazioni (Peso ecc.) sulla scheda prodotto: stessa famiglia
   del selettore illustrato del form ordini — pillola + lista elegante */
.rs-vpick{ position:relative; display:inline-block; min-width:min(220px,100%); max-width:100%; }
.rs-vpick-native{ display:none !important; }
.rs-vpick-btn{ width:100%; text-align:left; background:#fff; cursor:pointer;
  border:1.5px solid var(--paper2); border-radius:999px; padding:12px 46px 12px 22px;
  font-family:var(--sans); font-size:15px; color:var(--ink); min-height:48px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%239e2215' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 18px center; background-size:12px;
  transition:border-color .2s ease; }
.rs-vpick-btn:hover,.rs-vpick.open .rs-vpick-btn{ border-color:var(--accent); }
.rs-vpick-list{ position:absolute; z-index:40; left:0; right:0; top:calc(100% + 8px);
  background:#fff; border:1px solid var(--paper2); border-radius:18px; padding:8px;
  box-shadow:0 22px 54px -22px rgba(60,30,20,.4); display:none; }
.rs-vpick.open .rs-vpick-list{ display:block; }
.rs-vpick-item{ display:block; width:100%; text-align:left; background:transparent;
  border:none; border-radius:12px; padding:11px 16px; cursor:pointer;
  font-family:var(--sans); font-size:15px; color:var(--ink); transition:background .15s ease; }
.rs-vpick-item:hover{ background:#faf3ee; }
.rs-vpick-item.on{ background:#fbf3ee; color:var(--accent); font-weight:600; }
.rs-vpick-item.ph{ color:var(--muted); font-style:italic; }

/* Voci speciali Torta / Personalizzato: icona rossa in cornice crema, nome bordeaux */
.rs-pick .ico{ width:46px; height:46px; border-radius:12px; background:#fbf3ee;
  display:flex; align-items:center; justify-content:center; flex:0 0 auto; }
.rs-pick-btn .ico{ width:40px; height:40px; border-radius:50%; }
.rs-pick .ico svg{ width:24px; height:24px; }
.rs-pick .nm.sp{ color:var(--accent); font-weight:600; }
.rs-pick-item.spitem:hover{ background:#fbf3ee; }

/* X rossa di eliminazione riga + conferma */
.rs-order-line{ position:relative; }
.rs-line-rm{ flex:0 0 auto; width:34px; height:34px; border-radius:50%; align-self:center;
  border:1.5px solid var(--accent); background:#fff; color:var(--accent); cursor:pointer;
  display:flex; align-items:center; justify-content:center; padding:0;
  transition:background .18s ease, color .18s ease, transform .18s ease; }
.rs-line-rm:hover{ background:var(--accent); color:#fff; transform:scale(1.06); }
.rs-rm-pop{ position:absolute; z-index:60; right:0; top:calc(100% + 8px);
  display:flex; align-items:center; gap:10px; background:#fff;
  border:1px solid var(--paper2); border-radius:999px; padding:8px 10px 8px 18px;
  box-shadow:0 18px 44px -18px rgba(60,30,20,.4); white-space:nowrap; }
.rs-rm-pop .q{ font-family:var(--sans); font-size:14px; color:var(--ink); }
.rs-rm-pop button{ font-family:var(--sans); font-size:13px; font-weight:600; letter-spacing:.04em;
  border-radius:999px; padding:7px 16px; cursor:pointer; transition:opacity .15s ease; }
.rs-rm-pop button:hover{ opacity:.85; }
.rs-rm-pop .y{ background:var(--accent); color:#fff; border:1.5px solid var(--accent); }
.rs-rm-pop .n{ background:#fff; color:var(--accent); border:1.5px solid var(--accent); }

.rs-order-add{ display:inline-block; margin-top:4px; background:transparent; color:var(--accent);
  border:1.5px solid var(--accent); border-radius:999px; padding:10px 22px;
  font-family:var(--sans); font-size:12px; letter-spacing:.1em; text-transform:uppercase; font-weight:600;
  cursor:pointer; transition:background .2s ease, color .2s ease; }
.rs-order-add:hover{ background:var(--accent); color:#fff; }
@media (max-width:560px){ .rs-order-line{ flex-wrap:wrap; } .rs-order-qty{ width:90px; } }

/* Avviso "oltre 10 pezzi": invito al form ordini personalizzati */
.rs-maxqty-note{ margin:10px 0 0; font-family:var(--sans); font-size:13.5px; color:var(--accent);
  background:#fbf3ee; border-left:3px solid var(--accent); border-radius:0 10px 10px 0;
  padding:10px 14px; max-width:520px; }
.rs-maxqty-note a{ color:var(--accent); font-weight:600; text-decoration:underline; }

/* ---------- "Potrebbe interessarti anche…" (cross-sell Catering + Hotel) ----------
   Valori campionati dallo shop online (pasticceria.rosasalva.it):
   box rosso #9f2116 radius 50 · sfondo pattern-home al 100% della larghezza.
   Caratteri: solo i due del sito (Cormorant Garamond + Inter), niente
   Playfair/Jost del vecchio shop — Gio vuole pochi font e non simili. */
/* La sezione risale sotto la griglia prodotti (margine negativo): il damasco
   comincia poco sotto i pulsanti "+ Carrello" e appare con una dissolvenza
   lunga e morbida; il padding alto compensa, così titolo e card non si muovono. */
.rs-crosssell{ position:relative; background:#fff; margin-top:-110px; padding:200px 0 110px; overflow:hidden; }
/* Damasco su TUTTA la sezione (titolo compreso): tile speculare ripetibile in
   verticale, alpha rinforzata perché si veda davvero; su schermi stretti non
   scende sotto i 1100px di larghezza, così il disegno resta leggibile. */
.rs-crosssell::before{ content:""; position:absolute; inset:0; pointer-events:none;
  background:url("assets/img/pattern-tile.webp") top center / max(100%, 1100px) auto repeat-y; }
/* sfumature all'inizio e alla fine del disegno di sfondo */
.rs-crosssell::after{ content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(#fff 0%, rgba(255,255,255,.72) 12%, rgba(255,255,255,.3) 24%, rgba(255,255,255,0) 36%, rgba(255,255,255,0) 88%, #fff 100%); }
.rs-crosssell .wrap{ position:relative; z-index:1; max-width:1500px; }
.rs-cross-title, .rs-pann-title{ font-family:var(--serif); font-weight:500; color:#9f2116;
  font-size:clamp(32px,3.75vw,48px); line-height:1.15; text-transform:uppercase;
  letter-spacing:.04em; margin:0 0 44px; }

/* ============ PANNELLI CHE SI ALLARGANO (stesso blocco nello style.css del sito e in quello dello shop) ============
   Una fila di foto affiancate: quella sotto il mouse si allarga (da 1 a 2,3
   parti), la foto si avvicina appena e salgono descrizione e invito. Col dito,
   o su schermi stretti, diventano una fila da far scorrere con il testo già
   visibile. Titoli Cormorant, testi Inter: solo i due caratteri del sito. */
.rs-pannelli{ display:flex; height:clamp(440px,64vh,620px); overflow:hidden; background:#1c1210; }
.rs-pannello{ position:relative; flex:1 1 0; min-width:0; overflow:hidden; color:#fff; text-decoration:none;
  border-right:1px solid rgba(255,255,255,.16); transition:flex-grow .7s cubic-bezier(.23,1,.32,1); }
.rs-pannello:last-child{ border-right:0; }
.rs-pannello .ph{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  transform:scale(1.06); transition:transform 1.1s cubic-bezier(.23,1,.32,1); }
.rs-pannello::after{ content:""; position:absolute; inset:auto 0 0; height:75%; pointer-events:none;
  background:linear-gradient(to top, rgba(28,16,13,.92) 0%, rgba(28,16,13,.7) 35%, rgba(28,16,13,.3) 65%, rgba(28,16,13,0) 100%); }
.rs-pannello .txt{ position:absolute; inset:0; z-index:1; display:flex; flex-direction:column; justify-content:flex-end;
  padding:clamp(20px,2.2vw,34px); }
.rs-pannello .t{ font-family:var(--serif); font-weight:600; font-size:clamp(22px,1.9vw,27px); line-height:1.12;
  color:#fff; margin:0; hyphens:auto; }
.rs-pannelli--maiuscolo .t{ font-size:clamp(19px,1.7vw,24px); letter-spacing:.05em; text-transform:uppercase; }
.rs-pannello .s{ font-family:var(--serif); font-style:italic; font-weight:500; font-size:17px; line-height:1.35;
  color:rgba(255,255,255,.8); margin:8px 0 0; }
.rs-pannello .p{ font-family:var(--sans); font-size:14px; line-height:1.65; color:rgba(255,255,255,.84);
  max-width:34em; max-height:0; margin:0; opacity:0; overflow:hidden;
  transition:max-height .7s cubic-bezier(.23,1,.32,1), margin .7s cubic-bezier(.23,1,.32,1), opacity .4s ease; }
.rs-pannello .go{ font-family:var(--sans); font-weight:600; font-size:11px; letter-spacing:.28em; text-transform:uppercase;
  color:#f3ddc7; margin-top:14px; opacity:0; transform:translateY(6px); transition:opacity .4s ease, transform .5s ease; }
.rs-pannelli--freccia .go::after{ content:" →"; }
@media (hover:hover) and (min-width:761px){
  .rs-pannello:hover, .rs-pannello:focus-visible{ flex-grow:2.3; }
  .rs-pannello:hover .ph, .rs-pannello:focus-visible .ph{ transform:scale(1); }
  .rs-pannello:hover .p, .rs-pannello:focus-visible .p{ max-height:12em; margin-top:14px; opacity:1; }
  .rs-pannello:hover .go, .rs-pannello:focus-visible .go{ opacity:1; transform:none; }
}
@media (hover:none), (max-width:760px){
  .rs-pannelli{ height:auto; gap:12px; background:none; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; }
  .rs-pannelli::-webkit-scrollbar{ display:none; }
  .rs-pannello{ flex:0 0 min(80%,380px); aspect-ratio:3/4; border-right:0; scroll-snap-align:start; }
  .rs-pannello::after{ height:100%; }
  .rs-pannello .ph{ transform:none; }
  .rs-pannello .p{ max-height:none; margin-top:12px; opacity:1; }
  .rs-pannello .go{ opacity:1; transform:none; }
}
@media (prefers-reduced-motion:reduce){ .rs-pannello, .rs-pannello .ph, .rs-pannello .p, .rs-pannello .go{ transition:none; } }

/* ---------- LE NOSTRE SPECIALITÀ: categorie a pannelli sotto lo slider ---------- */
.rs-pann-sec{ padding:96px 0 16px; }
@keyframes rs-cue{ 0%,100%{ transform:translate(-50%,0) } 50%{ transform:translate(-50%,8px) } }
@media (prefers-reduced-motion:reduce){ .rs-shophero-cue{ animation:none } .rs-shs{ transition:none } }

/* ---------- HERO di categoria: immagine grande + titolo + descrizione ---------- */
.rs-cathero{ position:relative; height:60vh; min-height:440px; overflow:hidden;
  background-position:center; background-size:cover; }
.rs-cathero::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(rgba(26,14,10,.28), rgba(26,14,10,.55)); }
.rs-cathero h1{ position:absolute; inset:auto 0 0 0; z-index:2; text-align:center; color:#fff;
  font-family:var(--serif); font-weight:600; font-size:clamp(38px,5.5vw,72px); letter-spacing:-.01em;
  padding:0 22px 7vh; margin:0; text-shadow:0 2px 26px rgba(20,10,8,.5); }
.rs-catintro{ max-width:820px; margin:0 auto; padding:44px 22px 6px; text-align:center; }
.rs-catintro p{ font-family:var(--serif); font-size:clamp(18px,2vw,22px); line-height:1.6; color:#4a3f38; margin:0; }

/* ---------- HERO pagina Ordine personalizzato + sezione torte ---------- */
.rs-orderhero{ position:relative; height:40vh; min-height:300px; overflow:hidden;
  background-position:center 35%; background-size:cover; }
.rs-orderhero::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(rgba(26,14,10,.3), rgba(26,14,10,.55)); }
.rs-orderhero h1{ position:absolute; inset:auto 0 0 0; z-index:2; text-align:center; color:#fff;
  font-family:var(--serif); font-weight:600; font-size:clamp(36px,5vw,64px);
  padding:0 22px 6vh; margin:0; text-shadow:0 2px 26px rgba(20,10,8,.5); }
.rs-order-duo{ display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center;
  max-width:1120px; margin:26px auto 6px; padding:0 22px; }
.rs-order-duo img{ width:100%; height:auto; border-radius:18px; display:block; }
.rs-order-duo .h2{ font-size:clamp(28px,3.4vw,44px); margin-bottom:14px; }
.rs-order-duo p{ font-size:16px; line-height:1.7; color:#4a3f38; }
@media (max-width:820px){ .rs-order-duo{ grid-template-columns:1fr; gap:22px; } }

/* ============ FOOTER v2 (settembre 2026): stessi elementi del sito di riferimento ============
   Logo grande sopra il disegno animato, Esplora / Prodotti / Contatti con i cerchi social,
   fascia del gruppo (scudetti + ANBC + Marchio Storico), riga legale completa. */
footer.site-footer{ --foot-accent:#d16b60; }
body.rs-theme-hotel footer.site-footer{ --foot-accent:#5f8f92; }
body.rs-theme-catering footer.site-footer{ --foot-accent:#b9bec4; }
body.rs-theme-storia footer.site-footer{ --foot-accent:#d3b269; }
body.rs-theme-pasticceria footer.site-footer{ --foot-accent:#d16b60; }
.fgrid{ grid-template-columns:auto 1fr 1.15fr 1fr; gap:40px 52px; align-items:start; }
.fcol--brand{ display:flex; flex-direction:column; align-items:center; }
.rs-foot-brand{ display:inline-flex; flex-direction:column; align-items:center; }
.rs-foot-logo{ display:block; width:240px; aspect-ratio:765/253; background-color:var(--foot-accent);
  /* 100% 100% e non "contain": il file dichiara 1123x794, con contain il disegno restava piccolo
     al centro del riquadro. Cosi' il logo occupa tutti i 240px, come nel piede dell'hotel */
  -webkit-mask:url("assets/img/footer/logo-completo-bordeaux.svg") no-repeat center / 100% 100%;
  mask:url("assets/img/footer/logo-completo-bordeaux.svg") no-repeat center / 100% 100%; margin-bottom:16px; }
.rs-foot-disegno{ position:relative; display:block; }
footer.site-footer img.rs-foot-draw{ display:block; height:250px !important; width:auto !important; max-width:100%; margin:0;
  filter:invert(1); mix-blend-mode:screen; opacity:.9; transition:opacity .5s ease; }
footer.site-footer img.rs-foot-draw--h{ position:absolute; inset:0; opacity:0; }
.rs-foot-disegno:hover img.rs-foot-draw:not(.rs-foot-draw--h){ opacity:0; }
.rs-foot-disegno:hover img.rs-foot-draw--h{ opacity:.9; }
.fcol--contatti .rs-foot-social{ display:flex; gap:12px; margin-top:16px; }
.fcol .rs-foot-social a{ display:flex; align-items:center; justify-content:center; width:38px; height:38px;
  border:1px solid rgba(255,255,255,.28); border-radius:50%; color:#ccc0b1; line-height:0;
  transition:color .25s ease, border-color .25s ease, background-color .25s ease; }
.fcol .rs-foot-social a:hover{ color:#221a18; background:#ccc0b1; border-color:#ccc0b1; }
.rs-foot-social svg{ width:17px; height:17px; display:block; }
.fgruppo{ margin-top:44px; padding-top:26px; border-top:1px solid rgba(255,255,255,.12);
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:18px 32px; }
.rs-foot-gruppo{ display:flex; flex-wrap:wrap; gap:10px 30px; }
.rs-scudetto{ display:inline-flex; align-items:center; gap:10px; color:#ccc0b1; font-size:14px; transition:color .25s ease; }
footer.site-footer img.rs-scudo{ width:20px !important; height:22px !important; flex:none; opacity:.9; transition:opacity .25s ease; margin:0; }
.rs-scudetto:hover{ color:#fff; }
.rs-scudetto:hover .rs-scudo{ opacity:1; }
.rs-foot-marks{ display:flex; align-items:center; gap:26px; }
.rs-foot-marks a{ display:block; line-height:0; }
footer.site-footer img.rs-foot-anbc{ height:42px !important; width:auto !important; opacity:.9; transition:opacity .25s ease; }
.rs-foot-marks a:hover img.rs-foot-anbc{ opacity:1; }
footer.site-footer img.rs-foot-marchio{ height:88px !important; width:auto !important; margin-top:0 !important; opacity:.92; }
.fbar{ margin-top:40px; align-items:center; gap:10px 26px; }
.fbar-links a, .fbar-lang a{ color:#a89c8e; }
.fbar-links a:hover, .fbar-lang a:hover{ color:#fff; }
.fbar-lang{ flex-basis:100%; display:flex; flex-wrap:wrap; gap:6px 18px; }
@media (max-width:900px){
  footer.site-footer img.rs-foot-draw{ height:190px !important; object-fit:contain; }
  .rs-foot-logo{ width:200px; }
  .fgrid{ grid-template-columns:1fr 1fr; gap:34px 28px; }
  .fcol--brand{ grid-column:1 / -1; }
}
@media (max-width:560px){
  .fgrid{ grid-template-columns:1fr; }
  .fgruppo{ flex-direction:column; align-items:flex-start; gap:22px; }
  .fbar{ flex-direction:column; align-items:flex-start; }
}

/* ============ FOOTER NEI COLORI DELLA SEZIONE (settembre 2026) ============
   Il piede prende il colore della sezione: bordeaux per pasticceria, locali,
   contatti, shop e home; argento per il catering; oro per la storia; ottanio
   per l'hotel. Testi, logo, disegno, marchi e campi si adattano per restare
   leggibili (contrasti verificati WCAG AA: testo normale almeno 4,5:1).
   Tutti i colori passano da variabili: una sezione nuova = un blocco nuovo. */
footer.site-footer{
  --pf-bg:#8c1d16; --pf-testo:#F3DCD8; --pf-forte:#FFFFFF; --pf-muted:#E2B3AC; --pf-titoli:#F2D39A;
  --pf-linea:rgba(255,255,255,.22); --pf-campo:rgba(255,255,255,.08); --pf-campo-bordo:rgba(255,255,255,.34);
  --pf-logo:#FFFFFF; --pf-disegno:invert(1); --pf-fusione:screen; --pf-marchi:none; --pf-bottone-testo:#8c1d16;
  --foot-accent:var(--pf-logo);
}
body.rs-theme-catering footer.site-footer{
  --pf-bg:#E0E3E1; --pf-testo:#474B48; --pf-forte:#1F2220; --pf-muted:#5C605D; --pf-titoli:#3A3E3B;
  --pf-linea:rgba(31,34,32,.18); --pf-campo:rgba(255,255,255,.7); --pf-campo-bordo:rgba(31,34,32,.28);
  --pf-logo:#2E312F; --pf-disegno:none; --pf-fusione:multiply; --pf-marchi:brightness(0); --pf-bottone-testo:#E0E3E1;
}
body.rs-theme-storia footer.site-footer{
  --pf-bg:#B89656; --pf-testo:#2A1F0E; --pf-forte:#140E05; --pf-muted:#3E3019; --pf-titoli:#2A1F0E;
  --pf-linea:rgba(20,14,5,.22); --pf-campo:rgba(255,255,255,.22); --pf-campo-bordo:rgba(20,14,5,.35);
  --pf-logo:#2A1F0E; --pf-disegno:none; --pf-fusione:multiply; --pf-marchi:brightness(0); --pf-bottone-testo:#B89656;
}
body.rs-theme-hotel footer.site-footer{
  --pf-bg:#1E4148; --pf-testo:#D3E4DE; --pf-forte:#FFFFFF; --pf-muted:#A9C7BF; --pf-titoli:#E2C98F;
  --pf-linea:rgba(255,255,255,.2); --pf-campo:rgba(255,255,255,.08); --pf-campo-bordo:rgba(255,255,255,.32);
  --pf-logo:#FFFFFF; --pf-disegno:invert(1); --pf-fusione:screen; --pf-marchi:none; --pf-bottone-testo:#1E4148;
}
body.rs-theme-pasticceria footer.site-footer{ --foot-accent:var(--pf-logo); }
body.rs-theme-hotel footer.site-footer, body.rs-theme-catering footer.site-footer,
body.rs-theme-storia footer.site-footer{ --foot-accent:var(--pf-logo); }

footer.site-footer{ background:var(--pf-bg); color:var(--pf-testo); }
footer.site-footer .fnews h4, footer.site-footer .fcol h4{ color:var(--pf-titoli); }
footer.site-footer .fnews p, footer.site-footer .fcol p, footer.site-footer .fcol a{ color:var(--pf-testo); }
footer.site-footer .fcol a:hover{ color:var(--pf-forte); }
footer.site-footer .fnews, footer.site-footer .flavora{ border-bottom-color:var(--pf-linea); }
footer.site-footer .fgruppo, footer.site-footer .fbar{ border-top-color:var(--pf-linea); }
footer.site-footer .fbar{ color:var(--pf-muted); }
footer.site-footer .fbar-links a, footer.site-footer .fbar-lang a{ color:var(--pf-muted); }
footer.site-footer .fbar-links a:hover, footer.site-footer .fbar-lang a:hover{ color:var(--pf-forte); }
/* crediti: a destra sulla riga delle lingue (il menu lingue lascia lo spazio), sotto le lingue su schermi stretti */
.fbar-lang{ flex-basis:calc(100% - 24em); }
.fbar-crediti{ margin-left:auto; white-space:nowrap; }
.fbar-crediti a{ color:#a89c8e; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:.2em; }
.fbar-crediti a:hover{ color:#fff; }
footer.site-footer .fbar-crediti a{ color:var(--pf-muted); }
footer.site-footer .fbar-crediti a:hover{ color:var(--pf-forte); }
/* sotto i 760px le sei lingue vogliono la riga intera: i crediti scendono sotto, a sinistra */
@media (max-width:760px){
  .fbar-lang{ flex-basis:100%; }
  .fbar-crediti{ margin-left:0; }
}
@media (max-width:560px){
  .fbar-lang{ flex-basis:auto; }
}
footer.site-footer .rs-nl input[type="email"]{ background:var(--pf-campo); border-color:var(--pf-campo-bordo); color:var(--pf-forte); }
footer.site-footer .rs-nl input[type="email"]::placeholder{ color:var(--pf-muted); }
footer.site-footer .rs-nl input[type="email"]:focus{ border-color:var(--pf-forte); }
footer.site-footer .rs-nl button{ color:var(--pf-forte); border-color:var(--pf-forte); }
footer.site-footer .rs-nl button:hover{ background:var(--pf-forte); color:var(--pf-bottone-testo); }
footer.site-footer .rs-nl-note{ color:var(--pf-muted) !important; }
footer.site-footer .rs-nl-ok{ color:var(--pf-forte) !important; }
footer.site-footer .rs-nl-err{ color:var(--pf-forte) !important; text-decoration:underline; }
footer.site-footer .fcol .rs-foot-social a{ color:var(--pf-testo); border-color:var(--pf-campo-bordo); }
footer.site-footer .fcol .rs-foot-social a:hover{ color:var(--pf-bottone-testo); background:var(--pf-forte); border-color:var(--pf-forte); }
footer.site-footer .rs-scudetto{ color:var(--pf-testo); }
footer.site-footer .rs-scudetto:hover{ color:var(--pf-forte); }
footer.site-footer .rs-foot-logo{ background-color:var(--pf-logo); }
footer.site-footer img.rs-foot-draw{ filter:var(--pf-disegno); mix-blend-mode:var(--pf-fusione); }
footer.site-footer img.rs-foot-anbc, footer.site-footer .rs-foot-marks img.rs-foot-marchio{ filter:var(--pf-marchi); }
body.rs-theme-catering footer.site-footer .rs-foot-marks img, body.rs-theme-storia footer.site-footer .rs-foot-marks img{ opacity:.78; }
footer.site-footer .rs-langsel-btn{ color:var(--pf-testo); border-color:var(--pf-campo-bordo); }
footer.site-footer .rs-langsel-btn:hover{ color:var(--pf-forte); border-color:var(--pf-forte); }
/* il disegno non si taglia: niente riduzione forzata in larghezza oltre la colonna */
footer.site-footer .rs-foot-disegno{ max-width:100%; }
footer.site-footer img.rs-foot-draw{ max-width:100%; height:auto !important; max-height:250px; object-fit:contain; }
@media (max-width:900px){ footer.site-footer img.rs-foot-draw{ max-height:190px; } }

/* ---------- Lavora con noi (in ogni footer) ---------- */
footer.site-footer .flavora{ padding-bottom:34px; margin-bottom:44px; border-bottom:1px solid var(--pf-linea); }
.rs-lavora > summary{ list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between;
  gap:18px 40px; flex-wrap:wrap; }
.rs-lavora > summary::-webkit-details-marker{ display:none; }
.rs-lavora-testi{ display:flex; flex-direction:column; gap:8px; max-width:640px; }
footer.site-footer .rs-lavora-h{ font-size:11px; letter-spacing:.28em; text-transform:uppercase; color:var(--pf-titoli); font-weight:600; }
footer.site-footer .rs-lavora-p{ font-size:14px; line-height:1.6; color:var(--pf-testo); }
footer.site-footer .rs-lavora-btn{ display:inline-flex; align-items:center; gap:10px; border:1.5px solid var(--pf-forte); color:var(--pf-forte);
  border-radius:999px; padding:12px 26px; font-size:11px; letter-spacing:.14em; text-transform:uppercase; font-weight:600;
  transition:background .25s ease, color .25s ease; white-space:nowrap; }
footer.site-footer .rs-lavora-btn::after{ content:"+"; font-size:15px; line-height:1; transition:transform .25s ease; }
.rs-lavora[open] .rs-lavora-btn::after{ transform:rotate(45deg); }
footer.site-footer .rs-lavora > summary:hover .rs-lavora-btn{ background:var(--pf-forte); color:var(--pf-bottone-testo); }
.rs-lavora-form{ display:grid; grid-template-columns:1fr 1fr; gap:16px 22px; margin-top:28px; }
.rs-lavora-form label{ display:flex; flex-direction:column; gap:7px; font-size:11.5px; letter-spacing:.06em; }
footer.site-footer .rs-lavora-form label{ color:var(--pf-testo); }
.rs-lavora-form label.full{ grid-column:1 / -1; }
footer.site-footer .rs-lavora-form input:not([type="checkbox"]), footer.site-footer .rs-lavora-form select,
footer.site-footer .rs-lavora-form textarea{ font:inherit; font-size:14px; letter-spacing:0; color:var(--pf-forte);
  background:var(--pf-campo); border:1px solid var(--pf-campo-bordo); border-radius:10px; padding:11px 14px; width:100%; }
footer.site-footer .rs-lavora-form select option{ color:#1f2220; }
footer.site-footer .rs-lavora-form input:focus, footer.site-footer .rs-lavora-form select:focus,
footer.site-footer .rs-lavora-form textarea:focus{ outline:2px solid var(--pf-forte); outline-offset:1px; }
footer.site-footer .rs-lavora-form input[type="file"]{ padding:9px 12px; }
.rs-lavora-privacy{ flex-direction:row !important; align-items:flex-start; gap:10px !important; font-size:12.5px !important; letter-spacing:0 !important; line-height:1.5; }
.rs-lavora-privacy input{ margin-top:3px; accent-color:currentColor; }
footer.site-footer .rs-lavora-privacy a{ color:var(--pf-forte); text-decoration:underline; }
footer.site-footer .rs-lavora-form button{ justify-self:start; background:var(--pf-forte); color:var(--pf-bottone-testo); border:0;
  border-radius:999px; padding:13px 30px; font-family:var(--sans); font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  font-weight:600; cursor:pointer; }
footer.site-footer .rs-lavora-form button:hover{ opacity:.88; }
.rs-lavora-hp{ position:absolute !important; left:-9999px !important; width:1px; height:1px; opacity:0; }
footer.site-footer .rs-lavora-esito{ margin-top:18px; font-size:14px; font-weight:600; color:var(--pf-forte); }
@media (max-width:700px){ .rs-lavora-form{ grid-template-columns:1fr; } }

/* rifiniture dalla revisione: bordi dei campi ≥ 3:1, segnaposto ≥ 4,5:1, focus visibile, spazio del disegno riservato */
footer.site-footer{ --pf-campo-bordo:rgba(255,255,255,.52); --pf-cerchi:rgba(255,255,255,.34); }
body.rs-theme-hotel footer.site-footer{ --pf-campo-bordo:rgba(255,255,255,.46); --pf-cerchi:rgba(255,255,255,.32); }
body.rs-theme-catering footer.site-footer{ --pf-campo-bordo:rgba(31,34,32,.58); --pf-cerchi:rgba(31,34,32,.28); }
body.rs-theme-storia footer.site-footer{ --pf-campo-bordo:rgba(20,14,5,.64); --pf-cerchi:rgba(20,14,5,.35); }
footer.site-footer .fcol .rs-foot-social a{ border-color:var(--pf-cerchi); }
footer.site-footer .rs-nl input[type="email"]::placeholder{ color:var(--pf-testo); opacity:.85; }
footer.site-footer .rs-nl input[type="email"]:focus-visible{ outline:2px solid var(--pf-forte); outline-offset:2px; }
footer.site-footer .rs-foot-disegno{ min-height:250px; display:flex; align-items:flex-end; justify-content:center; }
@media (max-width:900px){ footer.site-footer .rs-foot-disegno{ min-height:190px; } }

/* negozio: fascia newsletter fuori dal footer (resta bordeaux) con testi leggibili,
   stacco fra barra rassicurazioni e footer (footer a tinta unita: niente filigrana) */
.rs-nlband .rs-nl-note{ color:rgba(255,255,255,.85) !important; font-size:12.5px !important; }
.rs-nlband .rs-nl-ok, .rs-nlband .rs-nl-err{ color:#fff !important; font-size:14.5px !important; }
.rs-nlband .rs-nl input[type="email"]::placeholder{ color:#7a6d62; }
.rs-trustbar + footer.site-footer{ box-shadow:inset 0 1px 0 var(--pf-linea); }

/* candidatura inviata: hidden deve vincere su .rs-lavora-form{display:grid} */
.rs-lavora-form[hidden]{ display:none; }

/* scheda prodotto con varianti: la miniatura della copertina scelta */
.rs-shop-main .woocommerce-product-gallery__image.is-current img{ outline:2px solid var(--brand); outline-offset:-2px; }

/* pillola dei modelli: su una riga anche a 360px; l'etichetta non si spezza */
.rs-vpick-btn{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%; }
.variations th.label, .variations th.label label{ white-space:nowrap; }
