/*
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 ---------- */
#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. */
.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,
            introMonoOut .65s cubic-bezier(.65,0,.35,1) 1.45s forwards; }
.ilogos .ie{ position:absolute; left:50%; top:50%; width:100%; max-width:none;
  opacity:0; transform:translate(-50%,-50%) scale(1.05);
  animation:introEstesoIn 1s cubic-bezier(.16,1,.3,1) 1.7s 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 introMonoOut{ from{ opacity:1; transform:none; } to{ opacity:0; transform:scale(.84); } }
@keyframes introEstesoIn{ to{ opacity:1; transform:translate(-50%,-50%) scale(1); } }
@media (prefers-reduced-motion:reduce){
  .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; }

/* 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; }
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; }
.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: nav corta (Shop con tendina + Dolci + Salato).
   Il bottone MENÙ su desktop è ridondante (tutto è già in barra): appare
   solo sotto i 1100px, quando la barra inizia a nascondere voci. */
.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:1100px){
  .rs-shop-hdr nav a.rs-backsite{ display:none; }
  .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));
    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; }
.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; }
/* Filigrana damascata Rosa Salva (monogramma R + corona) come texture del footer,
   sottilissima. Il PNG è pattern scuro su trasparente: lo usiamo come mask e lo
   riempiamo di crema, così su fondo scuro appare come filigrana chiara appena percettibile. */
/* Filigrana damascata come texture del footer: background-image (bianca su
   trasparente) dimmata da un overlay scuro. Niente ::before -> non isola i
   mix-blend-mode dei disegni. */
.site-footer{ position:relative;
  background:linear-gradient(rgba(34,26,24,.94), rgba(34,26,24,.94)),
    url("assets/img/footer/filigrana-white.webp") 0 0 / 560px auto repeat, #221a18; }

/* 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; }

/* ---------- Pagina "Dolci artigianali" (editoriale, dallo shop online) ---------- */
.rs-dolci-hero{ background:#f2ddc6; text-align:center; padding:calc(90px + 46px) 22px 52px; }
.rs-dolci-hero .crumb{ font-family:var(--sans); font-size:11px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--accent); margin:0 0 16px; }
.rs-dolci-hero .crumb a{ color:var(--accent); text-decoration:none; }
.rs-dolci-hero h1{ font-family:"Playfair Display", var(--serif); font-weight:400;
  text-transform:uppercase; letter-spacing:1px; color:#9f2116;
  font-size:clamp(38px,5vw,64px); margin:0; }
.rs-dolci-intro{ max-width:880px; margin:0 auto; padding:60px 22px 10px; text-align:center; }
.rs-dolci-intro h2{ font-family:"Playfair Display", var(--serif); font-weight:400;
  text-transform:uppercase; letter-spacing:1px; color:#9f2116;
  font-size:clamp(26px,3vw,40px); margin:0 0 18px; }
.rs-dolci-intro p{ font-family:var(--serif); font-size:clamp(17px,1.9vw,21px); line-height:1.65; color:#4a3f38; margin:0; }
.rs-dolci-row{ display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center;
  max-width:1160px; margin:54px auto; padding:0 22px; }
.rs-dolci-row.rev figure{ order:2; }
.rs-dolci-row figure{ margin:0; }
.rs-dolci-row figure img{ width:100%; height:auto; display:block; border-radius:18px; }
.rs-dolci-row .txt h3{ font-family:"Playfair Display", var(--serif); font-weight:400;
  color:#9f2116; font-size:clamp(25px,2.6vw,34px); line-height:1.2; margin:0 0 16px; }
.rs-dolci-row .txt p{ font-family:var(--sans); font-size:16px; line-height:1.8; color:#4a3f38; margin:0 0 24px; }
.rs-dolci-cta{ background:#f2ddc6; text-align:center; padding:66px 22px 74px; margin-top:70px; }
.rs-dolci-cta h2{ font-family:"Playfair Display", var(--serif); font-weight:400;
  text-transform:uppercase; letter-spacing:1px; color:#9f2116;
  font-size:clamp(26px,3vw,40px); margin:0 0 14px; }
.rs-dolci-cta p{ font-family:var(--sans); font-size:16px; line-height:1.7; color:#4a3f38;
  max-width:64ch; margin:0 auto 26px; }
.rs-dolci-cta .rs-cta-row{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
@media (max-width:820px){
  .rs-dolci-row{ grid-template-columns:1fr; gap:24px; margin:40px auto; }
  .rs-dolci-row.rev figure{ order:0; }
}

/* ---------- 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:220px; }
.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):
   titolo Playfair Display 48/400 ls1 uppercase #9f2116 · testi Jost #f3ddc7 ·
   box rosso #9f2116 radius 50 · sfondo pattern-home al 100% della larghezza. */
/* 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{ font-family:"Playfair Display", var(--serif); font-weight:400; color:#9f2116;
  font-size:clamp(32px,3.75vw,48px); line-height:1.2; text-transform:uppercase;
  letter-spacing:1px; margin:0 0 44px; }
.rs-cross-grid{ display:grid; grid-template-columns:1fr 1fr; gap:56px; }
/* card = layout ESATTO del sito online: sagoma crema a sinistra (50%) e box
   rosso adiacente a destra (50%), stessa altezza, radius 0 50 50 0, pad sx 70 */
.rs-cross-card{ display:flex; align-items:stretch; text-decoration:none;
  transition:transform .3s ease; }
.rs-cross-card:hover{ transform:translateY(-4px); }
.rs-cross-shape{ display:block; flex:0 0 50%; width:50%; height:auto; align-self:center;
  position:relative; z-index:1; }
/* il rosso scivola SOTTO la curva crema: nessuno spazio, blocco unito */
.rs-cross-red{ flex:1; background:#9f2116; border-radius:0 50px 50px 0;
  display:flex; flex-direction:column; justify-content:center; gap:16px;
  margin:1.5% 0 1.5% -7%; padding:16px 24px 16px calc(7% + 60px); }
.rs-cross-red .t{ font-family:Jost, var(--sans); font-weight:400; font-size:clamp(20px,1.9vw,24.5px);
  line-height:1.2; letter-spacing:1px; text-transform:uppercase; color:#f3ddc7; }
.rs-cross-red .p{ font-family:Jost, var(--sans); font-weight:400; font-size:16px; line-height:1.5;
  letter-spacing:1px; color:#f3ddc7; }
.rs-cross-red .cta{ font-family:Jost, var(--sans); font-weight:500; font-size:15px;
  letter-spacing:1.5px; text-transform:uppercase; color:#f3ddc7; transition:letter-spacing .25s ease; }
.rs-cross-card:hover .cta{ letter-spacing:2.5px; }
@media (max-width:980px){ .rs-cross-grid{ grid-template-columns:1fr; gap:34px; } }
@media (max-width:640px){
  .rs-cross-card{ flex-direction:column; }
  .rs-cross-shape{ flex:0 0 auto; width:100%; }
  .rs-cross-red{ margin:-9% 5% 0; border-radius:0 0 30px 30px; padding:26px 28px 30px; }
}
@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; } }
