/* ============================================================
   riviera.css — Sistema di stili per Lido Riviera Spineta
   Mobile-first | Breakpoints: 640px / 960px
   Max-width: 1366px | Prefisso classi: .rs-*
   ============================================================ */


/* ─── VARIABILI (WCAG AA-compliant palette) ───────────────── */
:root {
  --rs-primary:    #8B2E3B;        /* bordeaux AA 6.9:1 su bianco */
  --rs-primary-dk: #6B1E2B;        /* hover AAA 9.8:1 */
  --rs-primary-ink:#4A1520;        /* testi bordeaux su crema AAA 13:1 */
  --rs-secondary:  #A8936A;        /* oro AA 4.5:1 — SCURITO da #C1B086 (era FAIL 2.9:1) */
  --rs-gold-decor: #C1B086;        /* solo decoro — MAI testo */
  --rs-bg:         #F5F0EB;
  --rs-bg-alt:     #EDE8E2;
  --rs-card:       #FFFDF9;
  --rs-text:       #2C1810;        /* AAA 14.6:1 */
  --rs-text-mid:   #4A3A32;        /* AA 8:1 — scurito da #5A4A42 */
  --rs-text-muted: #6B5B52;        /* AA 5.8:1 */
  --rs-white:      #FFFDF9;        /* alias legacy = --rs-card */
  --rs-sunset:     #D4956A;
  --rs-sea-mist:   #B8D0D8;        /* accent decoro wave */
  --rs-success:    #2F7A4A;
  --rs-error:      #C0392B;
  --rs-wa:         #25D366;        /* WhatsApp brand */
  --rs-wa-dk:      #128C7E;
  --rs-r:          8px;
  --rs-r-lg:       16px;
  --rs-shadow:     0 4px 20px rgba(0,0,0,0.08);
  --rs-shadow-pol: 4px 6px 16px rgba(0,0,0,0.15);
  --rs-max:        1366px;
  --rs-max-text:   720px;
  --rs-nav-h:      72px;
  --rs-h-font:     'Dancing Script', cursive;
  --rs-b-font:     'Inter', sans-serif;
  --rs-trans:      0.3s ease;
  --rs-section-y:  56px;

  /* v1.2 — animation system */
  --rs-ease-bounce:     cubic-bezier(0.34, 1.56, 0.64, 1);
  --rs-ease-slide:      cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --rs-dur-fast:        0.15s;
  --rs-dur-mid:         0.35s;
  --rs-dur-slow:        0.8s;
  --rs-perspective:     1000px;

  /* v1.2 — shadow depth system */
  --rs-shadow-xs:       0 1px 4px rgba(44,24,16,0.06);
  --rs-shadow-sm:       0 2px 8px rgba(44,24,16,0.08);
  --rs-shadow-md:       0 4px 20px rgba(44,24,16,0.10);
  --rs-shadow-lg:       0 8px 32px rgba(44,24,16,0.14);
  --rs-shadow-xl:       0 16px 48px rgba(44,24,16,0.18);

  /* v1.2 — texture & watermark */
  --rs-watermark-opacity: 0.035;
}
@media (min-width: 960px) {
  :root {
    --rs-nav-h: 96px;
    --rs-section-y: 112px;
  }
}


/* ─── ADMIN BAR OFFSET ──────────────────────────────────────── */
body.admin-bar .rs-nav              { top: 32px !important; }
body.admin-bar .rs-nav__mobile      { top: calc(var(--rs-nav-h) + 32px) !important; }
body.admin-bar .rs-nav-spacer       { height: calc(var(--rs-nav-h) + 32px) !important; }
@media (max-width: 782px) {
  body.admin-bar .rs-nav            { top: 46px !important; }
  body.admin-bar .rs-nav__mobile    { top: calc(var(--rs-nav-h) + 46px) !important; }
  body.admin-bar .rs-nav-spacer     { height: calc(var(--rs-nav-h) + 46px) !important; }
}
@media (max-width: 600px) {
  body.admin-bar .rs-nav            { top: 0 !important; }
  body.admin-bar .rs-nav__mobile    { top: var(--rs-nav-h) !important; }
  body.admin-bar .rs-nav-spacer     { height: var(--rs-nav-h) !important; }
}


/* ─── RESET BASE ─────────────────────────────────────────────── */
*, *::before, *::after {
  box-sizing: border-box !important;
  margin: 0 !important;
  padding: 0 !important;
}
html {
  scroll-behavior: smooth !important;
  scroll-padding-top: calc(var(--rs-nav-h) + 24px) !important;
}


/* ─── FLATSOME OVERRIDE ──────────────────────────────────────── */
body.riviera-page {
  font-family: var(--rs-b-font) !important;
  color: var(--rs-text) !important;
  background: var(--rs-bg) !important;
  -webkit-font-smoothing: antialiased !important;
  -moz-osx-font-smoothing: grayscale !important;
}
body.riviera-page #header,
body.riviera-page .header-wrapper,
body.riviera-page #footer,
body.riviera-page .footer-wrapper,
body.riviera-page .absolute-footer { display: none !important; }


/* ─── TIPOGRAFIA ─────────────────────────────────────────────── */
.rs-h1 {
  font-family: var(--rs-h-font) !important;
  font-size: clamp(2rem, 5vw, 3.5rem) !important;
  font-weight: 700 !important;
  line-height: 1.15 !important;
  color: var(--rs-primary) !important;
}
.rs-h2 {
  font-family: var(--rs-b-font) !important;
  font-size: clamp(1.625rem, 3.8vw, 2.5rem) !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  letter-spacing: -0.01em !important;
  color: var(--rs-primary) !important;
}
.rs-h3 {
  font-family: var(--rs-b-font) !important;
  font-size: clamp(1.25rem, 2.5vw, 1.75rem) !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  letter-spacing: -0.005em !important;
}
/* Modifier: usa Dancing Script solo quando espressamente richiesto */
.rs-h2--script, .rs-h3--script {
  font-family: var(--rs-h-font) !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
}
.rs-h2--script { font-size: clamp(2rem, 5vw, 3rem) !important; line-height: 1.1 !important; }
.rs-h4 {
  font-family: var(--rs-b-font) !important;
  font-size: clamp(1.1rem, 2vw, 1.35rem) !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
}
.rs-lead {
  font-family: var(--rs-b-font) !important;
  font-weight: 300 !important;
  font-size: clamp(1.05rem, 2vw, 1.25rem) !important;
  line-height: 1.7 !important;
  color: var(--rs-text-mid) !important;
}
.rs-body {
  font-family: var(--rs-b-font) !important;
  font-weight: 400 !important;
  font-size: clamp(1rem, 1.5vw, 1.1rem) !important;
  line-height: 1.7 !important;
}

/* Typography modifiers */
.rs-h2--white { color: var(--rs-white) !important; }
.rs-h2--center { text-align: center !important; }
.rs-lead--white { color: var(--rs-white) !important; opacity: 0.9 !important; }
.rs-eyebrow {
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  font-size: 0.8rem !important;
  font-weight: 600 !important;
  color: var(--rs-sunset) !important;
  margin-bottom: 12px !important;
}


/* ─── LAYOUT ─────────────────────────────────────────────────── */
.rs-wrap {
  max-width: var(--rs-max) !important;
  margin: 0 auto !important;
  padding: 0 20px !important;
}
@media (min-width: 640px) {
  .rs-wrap { padding: 0 32px !important; }
}
@media (min-width: 960px) {
  .rs-wrap { padding: 0 48px !important; }
}

.rs-section {
  padding: 64px 0 !important;
}
@media (min-width: 960px) {
  .rs-section { padding: 96px 0 !important; }
}

.rs-section--alt      { background: var(--rs-bg-alt) !important; }
.rs-section--cream    { background: var(--rs-white) !important; }
.rs-section--cta-alt  { background: var(--rs-bg) !important; }
.rs-section--bordeaux { background: var(--rs-primary) !important; color: var(--rs-white) !important; }
.rs-section--bordeaux .rs-h2,
.rs-section--bordeaux .rs-h3,
.rs-section--bordeaux .rs-h4,
.rs-section--bordeaux .rs-lead,
.rs-section--bordeaux .rs-body,
.rs-section--bordeaux p,
.rs-section--bordeaux li { color: var(--rs-white) !important; }

.rs-section--bordeaux .rs-h2,
.rs-section--bordeaux .rs-h3 { text-transform: capitalize !important; }
.rs-section--sport { padding-bottom: 0 !important; }
.rs-section__header {
  text-align: center !important;
  max-width: var(--rs-max-text) !important;
  margin: 0 auto 48px !important;
}

/* Grid utilities */
.rs-grid-2,
.rs-grid-3,
.rs-grid-4 {
  display: grid !important;
  gap: 32px !important;
  grid-template-columns: 1fr !important;
}
@media (min-width: 640px) {
  .rs-grid-2 { grid-template-columns: repeat(2, 1fr) !important; }
  .rs-grid-3 { grid-template-columns: repeat(2, 1fr) !important; }
  .rs-grid-4 { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (min-width: 960px) {
  .rs-grid-3 { grid-template-columns: repeat(3, 1fr) !important; }
  .rs-grid-4 { grid-template-columns: repeat(4, 1fr) !important; }
}


/* ─── NAVBAR ─────────────────────────────────────────────────── */
/* NOTE: !important is required throughout this section to override
   Flatsome parent theme styles which have higher specificity.
   This is standard practice for child themes fighting parent CSS. */

.rs-nav {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  z-index: 1000 !important;
  background: transparent !important;
  transition: background var(--rs-trans), box-shadow var(--rs-trans) !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.rs-nav--scrolled {
  background: var(--rs-white) !important;
  box-shadow: var(--rs-shadow) !important;
}

.rs-nav__inner {
  max-width: var(--rs-max) !important;
  margin: 0 auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  height: var(--rs-nav-h) !important;
  padding: 0 20px !important;
  background: transparent !important;
}
@media (min-width: 640px) {
  .rs-nav__inner { padding: 0 32px !important; }
}
@media (min-width: 960px) {
  .rs-nav__inner { padding: 0 48px !important; }
}

.rs-nav__logo {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  text-decoration: none !important;
  color: var(--rs-primary) !important;
  flex-shrink: 0 !important;
}
.rs-nav__logo img {
  height: 40px !important;
  width: auto !important;
  display: block !important;
  border-radius: 6px !important;
  object-fit: contain !important;
  max-height: 40px !important;
}
/* Scrolled state — logo on white bg, show naturally */
.rs-nav--scrolled .rs-nav__logo img {
  filter: none !important;
  mix-blend-mode: normal !important;
  opacity: 1 !important;
}
.rs-nav__logo .rs-logo-accent {
  font-family: var(--rs-h-font) !important;
  font-size: 1.25rem !important;
  font-weight: 700 !important;
  color: var(--rs-primary) !important;
}
/* Logo on transparent nav over dark hero */
.rs-nav:not(.rs-nav--scrolled) .rs-nav__logo,
.rs-nav:not(.rs-nav--scrolled) .rs-nav__logo .rs-logo-accent {
  color: var(--rs-white) !important;
}
.rs-nav:not(.rs-nav--scrolled) .rs-nav__logo img {
  filter: brightness(0) invert(1) !important;
  opacity: 0.95 !important;
}

/* Desktop menu — hidden on mobile */
.rs-nav__menu {
  display: none !important;
  gap: 32px !important;
  list-style: none !important;
  align-items: center !important;
  margin: 0 !important;
  padding: 0 !important;
}
@media (min-width: 960px) {
  .rs-nav__menu { display: flex !important; }
}

.rs-nav__menu a {
  color: var(--rs-text) !important;
  text-decoration: none !important;
  font-family: var(--rs-b-font) !important;
  font-weight: 500 !important;
  font-size: 0.95rem !important;
  position: relative !important;
  transition: color var(--rs-trans) !important;
  background: none !important;
  padding: 0 !important;
  border: none !important;
  line-height: 1.4 !important;
}
.rs-nav__menu a::after {
  content: '' !important;
  position: absolute !important;
  bottom: -4px !important;
  left: 0 !important;
  width: 0 !important;
  height: 2px !important;
  background: var(--rs-primary) !important;
  transition: width var(--rs-trans) !important;
}
.rs-nav__menu a:hover::after,
.rs-nav__menu a.rs-nav__link--active::after { width: 100% !important; }

/* Scrolled navbar — dark text on white bg */
.rs-nav--scrolled .rs-nav__menu a {
  color: var(--rs-text) !important;
  text-shadow: none !important;
}
.rs-nav--scrolled .rs-nav__menu a::after {
  background: var(--rs-primary) !important;
}

/* Transparent navbar — white text on dark hero */
.rs-nav:not(.rs-nav--scrolled) .rs-nav__menu a {
  color: var(--rs-white) !important;
  text-shadow: 0 1px 4px rgba(0,0,0,0.4) !important;
}
.rs-nav:not(.rs-nav--scrolled) .rs-nav__menu a::after {
  background: var(--rs-white) !important;
}
.rs-nav:not(.rs-nav--scrolled) .rs-nav__menu a.rs-nav__link--active {
  color: var(--rs-white) !important;
}
.rs-nav:not(.rs-nav--scrolled) .rs-nav__menu a.rs-nav__link--active::after {
  background: var(--rs-white) !important;
}

/* Desktop CTA — hidden on mobile */
.rs-nav__cta {
  display: none !important;
}
@media (min-width: 960px) {
  .rs-nav__cta { display: inline-flex !important; }
}
/* Scrolled CTA — bordeaux button */
.rs-nav--scrolled .rs-nav__cta .rs-btn,
.rs-nav__cta .rs-btn {
  font-family: var(--rs-b-font) !important;
  font-size: 0.95rem !important;
  font-weight: 600 !important;
  padding: 10px 24px !important;
  gap: 8px !important;
  background: var(--rs-primary) !important;
  color: var(--rs-white) !important;
  border: 2px solid var(--rs-primary) !important;
  border-radius: var(--rs-r) !important;
  text-decoration: none !important;
  cursor: pointer !important;
  box-shadow: 0 2px 8px rgba(139,46,59,0.3) !important;
}
.rs-nav--scrolled .rs-nav__cta .rs-btn:hover,
.rs-nav__cta .rs-btn:hover {
  background: var(--rs-primary-dk) !important;
  border-color: var(--rs-primary-dk) !important;
  color: var(--rs-white) !important;
}
.rs-nav__cta .rs-btn svg { width: 18px !important; height: 18px !important; }

/* Transparent navbar CTA — ghost white */
.rs-nav:not(.rs-nav--scrolled) .rs-nav__cta .rs-btn {
  background: rgba(255,255,255,0.15) !important;
  border-color: var(--rs-white) !important;
  color: var(--rs-white) !important;
  box-shadow: none !important;
}
.rs-nav:not(.rs-nav--scrolled) .rs-nav__cta .rs-btn:hover {
  background: var(--rs-white) !important;
  color: var(--rs-primary) !important;
  border-color: var(--rs-white) !important;
}

/* Hamburger — visible on mobile only */
.rs-nav__hamburger {
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 5px !important;
  background: none !important;
  border: none !important;
  cursor: pointer !important;
  padding: 4px !important;
  width: 32px !important;
  height: 32px !important;
  flex-shrink: 0 !important;
}
.rs-nav__hamburger span {
  display: block !important;
  width: 24px !important;
  height: 2px !important;
  background: var(--rs-primary) !important;
  border-radius: 2px !important;
  transition: transform var(--rs-trans), opacity var(--rs-trans) !important;
}
/* Hamburger bars white on transparent dark hero */
.rs-nav:not(.rs-nav--scrolled) .rs-nav__hamburger span {
  background: var(--rs-white) !important;
}

.rs-nav__hamburger.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg) !important; }
.rs-nav__hamburger.is-open span:nth-child(2) { opacity: 0 !important; }
.rs-nav__hamburger.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg) !important; }

@media (min-width: 960px) {
  .rs-nav__hamburger { display: none !important; }
}

/* Mobile drawer */
.rs-nav__mobile {
  position: fixed !important;
  top: var(--rs-nav-h) !important;
  right: 0 !important;
  width: 100% !important;
  max-width: 320px !important;
  height: calc(100vh - var(--rs-nav-h)) !important;
  background: var(--rs-white) !important;
  transform: translateX(100%) !important;
  transition: transform 0.35s ease !important;
  z-index: 999 !important;
  padding: 32px 24px !important;
  overflow-y: auto !important;
  box-shadow: -4px 0 32px rgba(0,0,0,0.1) !important;
}
.rs-nav__mobile.is-open { transform: translateX(0) !important; }

.rs-nav__mobile a {
  display: block !important;
  padding: 12px 0 !important;
  font-family: var(--rs-b-font) !important;
  font-size: 1.1rem !important;
  font-weight: 500 !important;
  color: var(--rs-text) !important;
  text-decoration: none !important;
  border-bottom: 1px solid var(--rs-bg-alt) !important;
  transition: color var(--rs-trans) !important;
  background: none !important;
}
.rs-nav__mobile a:hover,
.rs-nav__mobile a.rs-nav__link--active { color: var(--rs-primary) !important; }

.rs-nav__mobile .rs-btn {
  display: flex !important;
  width: 100% !important;
  margin-top: 24px !important;
  justify-content: center !important;
  background: var(--rs-primary) !important;
  color: var(--rs-white) !important;
  border: 2px solid var(--rs-primary) !important;
  border-radius: var(--rs-r) !important;
  font-family: var(--rs-b-font) !important;
  font-weight: 600 !important;
  font-size: 1rem !important;
  padding: 14px 24px !important;
  text-decoration: none !important;
  gap: 8px !important;
}
.rs-nav__mobile .rs-btn:hover {
  background: var(--rs-primary-dk) !important;
  border-color: var(--rs-primary-dk) !important;
  color: var(--rs-white) !important;
}

/* Nav spacer — pushes content below fixed nav */
.rs-nav-spacer { height: var(--rs-nav-h) !important; }

/* Hide spacer when hero immediately follows main */
.rs-main > .rs-hero:first-child { margin-top: calc(-1 * var(--rs-nav-h)) !important; }

/* Mobile overlay */
.rs-nav__overlay {
  position: fixed !important;
  inset: 0 !important;
  background: rgba(0,0,0,0.4) !important;
  z-index: 998 !important;
  opacity: 0 !important;
  pointer-events: none !important;
  transition: opacity 0.3s !important;
}
.rs-nav__overlay.is-open {
  opacity: 1 !important;
  pointer-events: all !important;
}


/* ─── HERO ───────────────────────────────────────────────────── */
.rs-hero {
  position: relative !important;
  min-height: 100vh !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  overflow: hidden !important;
}

.rs-hero__bg {
  position: absolute !important;
  inset: 0 !important;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  z-index: 0 !important;
}
.rs-hero__bg img,
.rs-hero__bg-img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}

/* Hero overlay — standard div-based overlay, replaces ::before pseudo */
.rs-hero__overlay {
  position: absolute !important;
  inset: 0 !important;
  background: linear-gradient(to bottom, rgba(44,24,16,0.45) 0%, rgba(139,46,59,0.55) 100%) !important;
  z-index: 1 !important;
  pointer-events: none !important;
}

.rs-hero__content {
  position: relative !important;
  z-index: 2 !important;
  padding: 0 20px !important;
}

.rs-hero__title {
  color: var(--rs-white) !important;
  text-shadow: 0 2px 20px rgba(0,0,0,0.3) !important;
}
/* Override .rs-h1 color in hero */
.rs-hero .rs-h1,
.rs-hero .rs-h2 { color: var(--rs-white) !important; }

.rs-hero__subtitle {
  color: var(--rs-white) !important;
  max-width: 600px !important;
  margin: 16px auto 0 !important;
  text-shadow: 0 1px 8px rgba(0,0,0,0.2) !important;
}

.rs-hero__ctas {
  display: flex !important;
  gap: 16px !important;
  justify-content: center !important;
  flex-wrap: wrap !important;
  margin-top: 32px !important;
}

/* Hero inner — positions content above overlay */
.rs-hero__inner {
  position: relative !important;
  z-index: 2 !important;
}

/* Hero sub — alias for subtitle on inner pages */
.rs-hero__sub {
  color: var(--rs-white) !important;
  max-width: 640px !important;
  margin: 16px auto 0 !important;
  text-shadow: 0 1px 8px rgba(0,0,0,0.2) !important;
}

/* Hero logo */
.rs-hero__logo {
  width: 120px !important;
  height: 120px !important;
  border-radius: var(--rs-r-lg) !important;
  display: block !important;
  margin: 0 auto 24px !important;
  position: relative !important;
  z-index: 2 !important;
}

/* Hero badges — pill list */
.rs-hero__badges {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
  margin-top: 24px !important;
  justify-content: center !important;
  list-style: none !important;
  padding: 0 !important;
}

/* Badge pill */
.rs-badge {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  padding: 6px 14px !important;
  background: rgba(255,255,255,0.15) !important;
  border: 1px solid rgba(255,255,255,0.25) !important;
  border-radius: 50px !important;
  font-size: 0.8rem !important;
  font-weight: 500 !important;
  color: var(--rs-white) !important;
  backdrop-filter: blur(4px) !important;
  -webkit-backdrop-filter: blur(4px) !important;
}
.rs-badge svg { flex-shrink: 0 !important; }

/* Badge on light backgrounds */
.rs-section--cream .rs-badge,
.rs-section .rs-badge:not(.rs-hero .rs-badge) {
  background: rgba(212,149,106,0.12) !important;
  border-color: rgba(212,149,106,0.25) !important;
  color: var(--rs-text) !important;
}

/* Mini hero for inner pages — fixed, no collapse mobile */
.rs-hero--mini {
  min-height: 55vh !important;
  padding: calc(var(--rs-nav-h) + 48px) 0 64px !important;
}
@media (min-width: 960px) {
  .rs-hero--mini {
    min-height: 50vh !important;
    padding: calc(var(--rs-nav-h) + 72px) 0 80px !important;
  }
}

/* Booking hero — compact ma visibile */
.rs-booking-hero {
  min-height: 40vh !important;
  padding: calc(var(--rs-nav-h) + 32px) 0 48px !important;
}


/* ─── TRUST BAR ──────────────────────────────────────────────── */
.rs-trust-bar {
  background: var(--rs-primary) !important;
  color: var(--rs-secondary) !important;
  padding: 12px 0 !important;
  overflow: hidden !important;
  user-select: none !important;
}

.rs-trust-bar__track {
  display: flex !important;
  gap: 48px !important;
  white-space: nowrap !important;
  animation: marquee 30s linear infinite !important;
  /* Duplicate content in HTML for seamless loop */
}

.rs-trust-bar__item {
  font-family: var(--rs-b-font) !important;
  font-size: 0.85rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.5px !important;
  text-transform: uppercase !important;
  flex-shrink: 0 !important;
}

/* Star removed — separator span handles visual rhythm */

@keyframes marquee {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}


/* ─── BUTTONS ────────────────────────────────────────────────── */
.rs-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  padding: 12px 28px !important;
  border-radius: var(--rs-r) !important;
  font-family: var(--rs-b-font) !important;
  font-weight: 600 !important;
  font-size: 0.95rem !important;
  text-decoration: none !important;
  cursor: pointer !important;
  transition: all var(--rs-trans) !important;
  border: 2px solid transparent !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

.rs-btn--primary {
  background: var(--rs-primary) !important;
  color: var(--rs-white) !important;
  border-color: var(--rs-primary) !important;
}
.rs-btn--primary:hover {
  background: var(--rs-primary-dk) !important;
  border-color: var(--rs-primary-dk) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 6px 20px rgba(139,46,59,0.3) !important;
  color: var(--rs-white) !important;
}

.rs-btn--ghost {
  background: transparent !important;
  color: var(--rs-white) !important;
  border-color: var(--rs-white) !important;
}
.rs-btn--ghost:hover {
  background: rgba(255,255,255,0.1) !important;
  color: var(--rs-white) !important;
}

.rs-btn--ghost-dark {
  background: transparent !important;
  color: var(--rs-primary) !important;
  border-color: var(--rs-primary) !important;
}
.rs-btn--ghost-dark:hover {
  background: var(--rs-primary) !important;
  color: var(--rs-white) !important;
}

.rs-btn--gold {
  background: var(--rs-secondary) !important;
  color: var(--rs-text) !important;
  border-color: var(--rs-secondary) !important;
}
.rs-btn--gold:hover {
  background: #d4c49a !important;
  border-color: #d4c49a !important;
  transform: translateY(-2px) !important;
  color: var(--rs-text) !important;
}

.rs-btn--full {
  width: 100% !important;
  justify-content: center !important;
}

.rs-btn--sm {
  padding: 8px 20px !important;
  font-size: 0.85rem !important;
}
.rs-btn--lg {
  padding: 16px 36px !important;
  font-size: 1.1rem !important;
}

.rs-btn--whatsapp {
  background: #25D366 !important;
  color: #fff !important;
  border-color: #25D366 !important;
}
.rs-btn--whatsapp:hover {
  background: #1ebe59 !important;
  border-color: #1ebe59 !important;
  color: #fff !important;
  transform: translateY(-2px) !important;
}


/* ─── CTA GROUP ─────────────────────────────────────────────── */
.rs-cta-group {
  display: flex !important;
  gap: 16px !important;
  justify-content: center !important;
  flex-wrap: wrap !important;
  align-items: center !important;
}

/* ─── CTA DOUBLE ────────────────────────────────────────────── */
.rs-cta-double {
  display: grid !important;
  gap: 32px !important;
  grid-template-columns: 1fr !important;
  align-items: center !important;
  text-align: center !important;
}
@media (min-width: 640px) {
  .rs-cta-double {
    grid-template-columns: 1fr auto 1fr !important;
  }
}
.rs-cta-double__item {
  padding: 32px !important;
  background: var(--rs-white) !important;
  border-radius: var(--rs-r-lg) !important;
  box-shadow: var(--rs-shadow) !important;
}
.rs-cta-double__item .rs-h3 {
  margin-bottom: 12px !important;
}
.rs-cta-double__item .rs-body {
  margin-bottom: 24px !important;
  color: var(--rs-text-mid) !important;
}
.rs-cta-double__divider {
  font-size: 0.85rem !important;
  font-weight: 600 !important;
  color: var(--rs-text-mid) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
}
@media (max-width: 639px) {
  .rs-cta-double__divider { padding: 0 !important; }
}


/* ─── POLAROID ───────────────────────────────────────────────── */
.rs-polaroid {
  background: #fff !important;
  padding: 10px 10px 36px !important;
  box-shadow: var(--rs-shadow-pol) !important;
  transition: transform var(--rs-trans), box-shadow var(--rs-trans) !important;
  display: inline-block !important;
  max-width: 100% !important;
}
.rs-polaroid img {
  width: 100% !important;
  height: auto !important;
  display: block !important;
  border-radius: 2px !important;
}
.rs-polaroid:nth-child(1) { transform: rotate(-2deg) !important; }
.rs-polaroid:nth-child(2) { transform: rotate(1.5deg) !important; }
.rs-polaroid:nth-child(3) { transform: rotate(-1deg) !important; }
.rs-polaroid:nth-child(4) { transform: rotate(2deg) !important; }
.rs-polaroid__caption {
  font-family: var(--rs-h-font) !important;
  font-size: 0.9rem !important;
  color: var(--rs-text-mid) !important;
  text-align: center !important;
  padding-top: 8px !important;
  line-height: 1.3 !important;
}
.rs-polaroid:hover {
  transform: rotate(0deg) translateY(-6px) !important;
  box-shadow: 6px 10px 28px rgba(0,0,0,0.2) !important;
}
/* No rotation on smallest screens — too cramped */
@media (max-width: 639px) {
  .rs-polaroid:nth-child(n) { transform: rotate(0) !important; }
  .rs-polaroid {
    padding: 6px 6px 24px !important;
    margin: 0 auto !important;
    max-width: 320px !important;
  }
  .rs-polaroid-grid { gap: 16px !important; }
}


/* ─── POLAROID GRID ──────────────────────────────────────────── */
.rs-polaroid-grid {
  display: grid !important;
  gap: 24px !important;
  grid-template-columns: 1fr !important;
  justify-items: center !important;
}
@media (min-width: 640px) {
  .rs-polaroid-grid { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (min-width: 960px) {
  .rs-polaroid-grid { grid-template-columns: repeat(4, 1fr) !important; }
}


/* ─── BRUSH STROKE ───────────────────────────────────────────── */
.rs-brush-stroke {
  height: 12px !important;
  margin: -4px 16px 0 !important;
  background: var(--rs-primary) !important;
  clip-path: polygon(
    0% 40%, 2% 80%, 5% 20%, 10% 70%, 15% 30%,
    20% 65%, 25% 25%, 30% 75%, 35% 35%, 40% 60%,
    45% 20%, 50% 70%, 55% 30%, 60% 65%, 65% 40%,
    70% 75%, 75% 25%, 80% 60%, 85% 35%, 90% 70%,
    95% 40%, 100% 55%
  ) !important;
  opacity: 0.7 !important;
}


/* ─── WAVE DIVIDER ───────────────────────────────────────────── */
.rs-section--waves {
  position: relative !important;
  overflow: hidden !important;
}
.rs-section--waves::after {
  content: '' !important;
  position: absolute !important;
  bottom: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 80px !important;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 80'%3E%3Cpath fill='rgba(139,46,59,0.06)' d='M0,40 C360,80 720,0 1080,40 C1260,60 1380,50 1440,40 L1440,80 L0,80 Z'/%3E%3Cpath fill='rgba(139,46,59,0.03)' d='M0,50 C240,20 480,70 720,40 C960,10 1200,60 1440,35 L1440,80 L0,80 Z'/%3E%3C/svg%3E") repeat-x bottom !important;
  background-size: 1440px 80px !important;
  animation: gentleWave 8s ease-in-out infinite alternate !important;
  pointer-events: none !important;
}
@keyframes gentleWave {
  0% { transform: translateY(0); }
  100% { transform: translateY(-5px); }
}
.rs-section--bordeaux.rs-section--waves::after {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 80'%3E%3Cpath fill='rgba(255,255,255,0.08)' d='M0,40 C360,80 720,0 1080,40 C1260,60 1380,50 1440,40 L1440,80 L0,80 Z'/%3E%3Cpath fill='rgba(255,255,255,0.04)' d='M0,50 C240,20 480,70 720,40 C960,10 1200,60 1440,35 L1440,80 L0,80 Z'/%3E%3C/svg%3E") !important;
}


/* ─── SAND TEXTURE ───────────────────────────────────────────── */
.rs-sand {
  background-image: url("data:image/svg+xml,%3Csvg width='100' height='100' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100' height='100' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E") !important;
}


/* ─── PAGE HEADER ────────────────────────────────────────────── */
.rs-page-header {
  text-align: center !important;
  padding-bottom: 48px !important;
}
.rs-page-header__icon {
  display: inline-block !important;
  margin-bottom: 12px !important;
  color: var(--rs-primary) !important;
}
.rs-page-header__title {
  /* Inherits .rs-h1 styles — apply both classes in HTML */
}


/* ─── SERVICE CARDS ──────────────────────────────────────────── */
.rs-service-card {
  background: var(--rs-white) !important;
  padding: 24px !important;
  border-radius: var(--rs-r-lg) !important;
  text-align: center !important;
  transition: all var(--rs-trans) !important;
  border: 2px solid transparent !important;
}
.rs-service-card:hover {
  transform: translateY(-4px) !important;
  border-color: var(--rs-sunset) !important;
  box-shadow: var(--rs-shadow) !important;
}
.rs-service-card__icon {
  width: 48px !important;
  height: 48px !important;
  margin: 0 auto 16px !important;
  color: var(--rs-primary) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.rs-service-card__icon svg,
.rs-service-card__icon img {
  width: 48px !important;
  height: 48px !important;
}
.rs-service-card__name {
  font-weight: 600 !important;
  margin-bottom: 8px !important;
  color: var(--rs-text) !important;
}
.rs-service-card__desc {
  font-size: 0.9rem !important;
  color: var(--rs-text-mid) !important;
  line-height: 1.6 !important;
}

/* Large service card variant — with image */
.rs-service-card--large {
  text-align: left !important;
  padding: 28px !important;
}
.rs-service-card--large .rs-service-card__icon {
  margin: 0 0 16px !important;
}
.rs-service-card__img {
  margin: 20px -28px -28px !important;
  border-radius: 0 0 var(--rs-r-lg) var(--rs-r-lg) !important;
  overflow: hidden !important;
}
.rs-service-card__img img {
  width: 100% !important;
  height: 200px !important;
  object-fit: cover !important;
  display: block !important;
}


/* ─── REVIEW CARDS ─────────────────────────────────────────── */
.rs-review-card {
  background: var(--rs-white) !important;
  padding: 28px !important;
  border-radius: var(--rs-r-lg) !important;
  text-align: left !important;
  border-left: 3px solid var(--rs-sunset) !important;
  transition: all var(--rs-trans) !important;
}
.rs-review-card:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 24px rgba(44, 24, 16, 0.1) !important;
}
.rs-review-card__stars {
  color: var(--rs-sunset) !important;
  font-size: 1.25rem !important;
  letter-spacing: 2px !important;
  margin-bottom: 12px !important;
}
.rs-review-card__text {
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
}
.rs-review-card__text p {
  font-size: 0.95rem !important;
  line-height: 1.7 !important;
  color: var(--rs-text) !important;
  font-style: italic !important;
}
.rs-review-card__author {
  margin-top: 16px !important;
}
.rs-review-card__author cite {
  font-size: 0.85rem !important;
  color: var(--rs-text-mid) !important;
  font-style: normal !important;
}


/* ─── MENU CARDS ────────────────────────────────────────────── */
.rs-menu-card {
  background: var(--rs-white) !important;
  padding: 24px !important;
  border-radius: var(--rs-r-lg) !important;
  text-align: left !important;
  transition: all var(--rs-trans) !important;
  border: 2px solid transparent !important;
}
.rs-menu-card:hover {
  transform: translateY(-4px) !important;
  border-color: var(--rs-secondary) !important;
  box-shadow: var(--rs-shadow) !important;
}
.rs-menu-card__icon {
  width: 40px !important;
  height: 40px !important;
  color: var(--rs-primary) !important;
  margin-bottom: 12px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.rs-menu-card__icon svg {
  width: 28px !important;
  height: 28px !important;
}
.rs-menu-card__title {
  margin-bottom: 12px !important;
  color: var(--rs-text) !important;
}
.rs-menu-card__list {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.rs-menu-card__list li {
  padding: 6px 0 !important;
  font-size: 0.9rem !important;
  color: var(--rs-text-mid) !important;
  border-bottom: 1px solid var(--rs-bg-alt) !important;
  line-height: 1.5 !important;
}
.rs-menu-card__list li:last-child { border-bottom: none !important; }


/* ─── COUNTER ────────────────────────────────────────────────── */
.rs-counter {
  text-align: center !important;
  padding: 16px !important;
}
.rs-counter__number {
  font-family: var(--rs-h-font) !important;
  font-size: clamp(2.5rem, 5vw, 4rem) !important;
  font-weight: 700 !important;
  color: var(--rs-primary) !important;
  display: block !important;
  line-height: 1 !important;
}
.rs-counter__label {
  font-size: 0.9rem !important;
  color: var(--rs-text-mid) !important;
  margin-top: 4px !important;
  font-weight: 500 !important;
}

.rs-grid-4--counters {
  max-width: 800px !important;
  margin: 0 auto !important;
}


/* ─── GALLERY REVEAL ─────────────────────────────────────────── */
.rs-gallery-reveal {
  clip-path: inset(100% 0 0 0) !important;
  transition: clip-path 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;
}
.rs-gallery-reveal.is-visible {
  clip-path: inset(0 0 0 0) !important;
}
.rs-gallery-reveal:nth-child(2) { transition-delay: 0.15s !important; }
.rs-gallery-reveal:nth-child(3) { transition-delay: 0.30s !important; }
.rs-gallery-reveal:nth-child(4) { transition-delay: 0.45s !important; }
.rs-gallery-reveal:nth-child(5) { transition-delay: 0.60s !important; }
.rs-gallery-reveal:nth-child(6) { transition-delay: 0.75s !important; }


/* ─── CONTACT ────────────────────────────────────────────────── */
.rs-contact-grid {
  display: grid !important;
  gap: 24px !important;
  grid-template-columns: 1fr !important;
}
@media (min-width: 960px) {
  .rs-contact-grid { grid-template-columns: repeat(3, 1fr) !important; }
}

.rs-contact-card {
  text-align: center !important;
  padding: 32px !important;
  background: var(--rs-white) !important;
  border-radius: var(--rs-r-lg) !important;
}
.rs-contact-card__icon {
  width: 48px !important;
  height: 48px !important;
  margin: 0 auto 16px !important;
  color: var(--rs-primary) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.rs-contact-card__icon svg,
.rs-contact-card__icon img {
  width: 48px !important;
  height: 48px !important;
}
.rs-contact-card h3,
.rs-contact-card .rs-h4 {
  margin-bottom: 12px !important;
  color: var(--rs-text) !important;
}
.rs-contact-card a {
  color: var(--rs-primary) !important;
  font-weight: 600 !important;
  text-decoration: none !important;
}
.rs-contact-card a:hover { text-decoration: underline !important; }

.rs-map-embed {
  width: 100% !important;
  height: 400px !important;
  border-radius: var(--rs-r-lg) !important;
  overflow: hidden !important;
  filter: sepia(20%) contrast(95%) brightness(102%) !important;
}
.rs-map-embed iframe {
  width: 100% !important;
  height: 100% !important;
  border: 0 !important;
  display: block !important;
}

/* Lazy map placeholder */
.rs-map-lazy {
  cursor: pointer !important;
  position: relative !important;
  background: var(--rs-bg-alt) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: background var(--rs-trans) !important;
}
.rs-map-lazy:hover { background: var(--rs-bg) !important; }
.rs-map-lazy__placeholder {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 12px !important;
  color: var(--rs-text-mid) !important;
  font-size: 0.9rem !important;
  font-weight: 500 !important;
}
.rs-map-lazy__placeholder svg {
  color: var(--rs-primary) !important;
  opacity: 0.7 !important;
}
.rs-map-lazy.is-loaded {
  cursor: default !important;
  background: transparent !important;
}
.rs-map-lazy.is-loaded .rs-map-lazy__placeholder { display: none !important; }


/* ─── SPORT BANNER ──────────────────────────────────────────── */
.rs-sport-banner {
  position: relative !important;
  border-radius: var(--rs-r-lg) !important;
  overflow: hidden !important;
  min-height: 400px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
}
.rs-sport-banner__bg {
  position: absolute !important;
  inset: 0 !important;
  background-size: cover !important;
  background-position: center !important;
  z-index: 0 !important;
}
.rs-sport-banner__overlay {
  position: absolute !important;
  inset: 0 !important;
  background: linear-gradient(to bottom, rgba(44,24,16,0.5) 0%, rgba(139,46,59,0.6) 100%) !important;
  z-index: 1 !important;
  pointer-events: none !important;
}
.rs-sport-banner__content {
  position: relative !important;
  z-index: 2 !important;
  padding: 48px 24px !important;
  color: var(--rs-white) !important;
}
.rs-sport-banner__subtitle {
  font-size: 1.1rem !important;
  color: var(--rs-white) !important;
  opacity: 0.9 !important;
  margin-top: 8px !important;
  margin-bottom: 24px !important;
}


/* ─── CONTACT LIST ──────────────────────────────────────────── */
.rs-contact-list {
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
}
.rs-contact-list__item {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
}
.rs-contact-list__icon {
  flex-shrink: 0 !important;
  width: 40px !important;
  height: 40px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: var(--rs-primary) !important;
  background: rgba(139,46,59,0.08) !important;
  border-radius: 50% !important;
}
.rs-contact-list__text {
  font-size: 0.95rem !important;
  color: var(--rs-text) !important;
  line-height: 1.5 !important;
}
.rs-contact-list__link {
  font-size: 0.95rem !important;
  color: var(--rs-primary) !important;
  text-decoration: none !important;
  font-weight: 500 !important;
  transition: color var(--rs-trans) !important;
}
.rs-contact-list__link:hover {
  color: var(--rs-primary-dk) !important;
  text-decoration: underline !important;
}


/* ─── BOOKING LEGEND ─────────────────────────────────────────── */
.rs-booking-legend {
  display: flex !important;
  justify-content: center !important;
  gap: 32px !important;
  padding: 48px 0 !important;
  flex-wrap: wrap !important;
  align-items: flex-start !important;
}
@media (max-width: 639px) {
  .rs-booking-legend {
    flex-direction: column !important;
    align-items: center !important;
    gap: 20px !important;
  }
  .rs-booking-legend__step { max-width: 100% !important; }
  .rs-booking-legend__circle { width: 44px !important; height: 44px !important; font-size: 1rem !important; }
}

.rs-booking-legend__step {
  text-align: center !important;
  max-width: 180px !important;
  flex-shrink: 0 !important;
  position: relative !important;
}

/* Dashed connector line between steps (desktop only) */
.rs-booking-legend__step + .rs-booking-legend__step::before {
  content: '' !important;
  position: absolute !important;
  top: 28px !important; /* vertically centered on the circle */
  right: 100% !important;
  width: calc(32px) !important; /* matches half gap */
  border-top: 2px dashed var(--rs-secondary) !important;
  display: none !important;
}
@media (min-width: 640px) {
  .rs-booking-legend__step + .rs-booking-legend__step::before { display: block !important; }
}

.rs-booking-legend__circle {
  width: 56px !important;
  height: 56px !important;
  border-radius: 50% !important;
  background: var(--rs-primary) !important;
  color: var(--rs-white) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 auto 12px !important;
  font-size: 1.25rem !important;
  font-weight: 700 !important;
  flex-shrink: 0 !important;
}
.rs-booking-legend__label {
  font-weight: 600 !important;
  font-size: 0.9rem !important;
  color: var(--rs-text) !important;
}
.rs-booking-legend__desc {
  font-size: 0.8rem !important;
  color: var(--rs-text-mid) !important;
  margin-top: 4px !important;
  line-height: 1.5 !important;
}

/* Booking trust badges */
.rs-booking-legend__badges {
  display: flex !important;
  justify-content: center !important;
  gap: 24px !important;
  flex-wrap: wrap !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.rs-booking-legend__badge {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  font-size: 0.85rem !important;
  font-weight: 500 !important;
  color: var(--rs-text) !important;
  padding: 8px 16px !important;
  background: var(--rs-white) !important;
  border-radius: 50px !important;
  border: 1px solid var(--rs-bg-alt) !important;
}
.rs-booking-legend__badge svg {
  flex-shrink: 0 !important;
  color: var(--rs-sunset) !important;
}


/* ─── BOOKING CONTAINER ──────────────────────────────────────── */
/*
  Isolation: do NOT add further styles here.
  The booking plugin manages its own layout.
*/
.rs-booking-container {
  max-width: var(--rs-max) !important;
  margin: 0 auto !important;
  padding: 0 20px 64px !important;
}
@media (min-width: 640px) {
  .rs-booking-container { padding: 0 32px 64px !important; }
}
@media (min-width: 960px) {
  .rs-booking-container { padding: 0 48px 80px !important; }
}


/* ─── SOCIAL ICONS ───────────────────────────────────────────── */
.rs-social {
  display: flex !important;
  gap: 12px !important;
  align-items: center !important;
}
.rs-social__icon {
  width: 36px !important;
  height: 36px !important;
  border-radius: 50% !important;
  background: var(--rs-primary) !important;
  color: var(--rs-white) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: all var(--rs-trans) !important;
  text-decoration: none !important;
  flex-shrink: 0 !important;
}
.rs-social__icon:hover {
  background: var(--rs-primary-dk) !important;
  transform: scale(1.1) !important;
  color: var(--rs-white) !important;
}
.rs-social__icon svg {
  width: 18px !important;
  height: 18px !important;
  display: block !important;
  flex-shrink: 0 !important;
}

/* Footer variant — lighter icons on dark bg */
.rs-footer .rs-social__icon {
  background: rgba(255,255,255,0.15) !important;
}
.rs-footer .rs-social__icon:hover {
  background: rgba(255,255,255,0.3) !important;
  transform: scale(1.1) !important;
}


/* ─── FOOTER ─────────────────────────────────────────────────── */
.rs-footer {
  background: var(--rs-primary) !important;
  color: var(--rs-bg) !important;
  padding: 64px 0 0 !important;
}

.rs-footer__grid {
  display: grid !important;
  gap: 32px !important;
  grid-template-columns: 1fr !important;
}
@media (min-width: 640px) {
  .rs-footer__grid { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (min-width: 960px) {
  .rs-footer__grid { grid-template-columns: repeat(4, 1fr) !important; }
}

.rs-footer ul { list-style: none !important; padding: 0 !important; margin: 0 !important; }

.rs-footer__col h4 {
  font-family: var(--rs-b-font) !important;
  font-weight: 600 !important;
  font-size: 1.25rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
  margin-bottom: 16px !important;
  color: var(--rs-white) !important;
}
.rs-footer__col a {
  color: var(--rs-bg) !important;
  text-decoration: none !important;
  display: block !important;
  padding: 4px 0 !important;
  font-size: 0.9rem !important;
  transition: color var(--rs-trans) !important;
}
.rs-footer__col a:hover { color: var(--rs-secondary) !important; }

.rs-footer__brand .rs-logo-accent,
.rs-footer__brand .rs-h3 { color: var(--rs-secondary) !important; }

.rs-footer__tagline {
  font-family: var(--rs-h-font) !important;
  font-size: 1.1rem !important;
  color: var(--rs-secondary) !important;
  margin-top: 8px !important;
}
.rs-footer__desc {
  font-size: 0.9rem !important;
  color: var(--rs-bg) !important;
  opacity: 0.8 !important;
  line-height: 1.6 !important;
  margin-top: 12px !important;
}

.rs-footer__brand-desc {
  font-size: 0.95rem !important;
  opacity: 0.9 !important;
  line-height: 1.6 !important;
  margin: 12px 0 !important;
}

.rs-footer .rs-btn { width: 100% !important; }

.rs-footer__logo {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  text-decoration: none !important;
  margin-bottom: 12px !important;
}
.rs-footer__logo-img {
  height: 44px !important;
  width: auto !important;
  display: block !important;
}
.rs-footer__address {
  font-style: normal !important;
  font-size: 0.9rem !important;
  line-height: 1.6 !important;
  opacity: 0.85 !important;
}
.rs-footer__legal {
  display: flex !important;
  gap: 16px !important;
  flex-wrap: wrap !important;
}
.rs-footer__bottom-inner {
  max-width: var(--rs-max) !important;
  margin: 0 auto !important;
  padding: 0 20px !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 16px !important;
}
.rs-footer__copyright {
  font-size: 0.8rem !important;
  opacity: 0.7 !important;
}

.rs-footer__bottom {
  border-top: 1px solid rgba(255,255,255,0.15) !important;
  margin-top: 48px !important;
  padding: 20px 0 !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 16px !important;
  font-size: 0.8rem !important;
}
.rs-footer__bottom a {
  color: var(--rs-bg) !important;
  opacity: 0.7 !important;
  text-decoration: none !important;
  transition: opacity var(--rs-trans) !important;
}
.rs-footer__bottom a:hover { opacity: 1 !important; }


/* ─── FLOATING CTA (MOBILE) ──────────────────────────────────── */
.rs-floating-cta {
  display: none !important;
  position: fixed !important;
  bottom: 16px !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  z-index: 900 !important;
  padding: 12px 28px !important;
  background: var(--rs-primary) !important;
  color: var(--rs-white) !important;
  font-family: var(--rs-b-font) !important;
  font-weight: 600 !important;
  font-size: 0.9rem !important;
  border-radius: 50px !important;
  text-decoration: none !important;
  box-shadow: 0 4px 20px rgba(139,46,59,0.4) !important;
  transition: all var(--rs-trans) !important;
  white-space: nowrap !important;
}
.rs-floating-cta:hover {
  background: var(--rs-primary-dk) !important;
  transform: translateX(-50%) translateY(-2px) !important;
  color: var(--rs-white) !important;
}
/* Show on mobile only */
@media (max-width: 959px) {
  .rs-floating-cta {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    bottom: 20px !important;
    padding: 14px 32px !important;
    font-size: 0.95rem !important;
    border-radius: 50px !important;
    box-shadow: 0 6px 24px rgba(139,46,59,0.5) !important;
  }
}
/* Hide on the booking page itself — redundant */
body.page-template-page-prenota-ombrellone .rs-floating-cta { display: none !important; }


/* ─── SCROLL REVEAL ──────────────────────────────────────────── */
.rs-reveal {
  opacity: 0 !important;
  transform: translateY(30px) !important;
  transition: opacity 0.7s ease, transform 0.7s ease !important;
}
.rs-reveal--left  { transform: translateX(-30px) !important; }
.rs-reveal--right { transform: translateX(30px) !important; }
.rs-reveal.is-visible {
  opacity: 1 !important;
  transform: translate(0) !important;
}

/* Stagger delays */
.rs-reveal--d1 { transition-delay: 0.1s !important; }
.rs-reveal--d2 { transition-delay: 0.2s !important; }
.rs-reveal--d3 { transition-delay: 0.3s !important; }
.rs-reveal--d4 { transition-delay: 0.4s !important; }
.rs-reveal--d5 { transition-delay: 0.5s !important; }


/* ─── REVEAL DELAY ALIASES ──────────────────────────────────── */
.rs-reveal--delay-1 { transition-delay: 0.1s !important; }
.rs-reveal--delay-2 { transition-delay: 0.2s !important; }
.rs-reveal--delay-3 { transition-delay: 0.3s !important; }


/* ─── CITAZIONE ──────────────────────────────────────────────── */
.rs-quote {
  font-family: var(--rs-h-font) !important;
  font-size: clamp(1.5rem, 3vw, 2.25rem) !important;
  font-weight: 700 !important;
  color: var(--rs-white) !important;
  text-align: center !important;
  padding: 48px 20px !important;
  max-width: 800px !important;
  margin: 0 auto !important;
  line-height: 1.4 !important;
}
/* Opening decorative quote mark */
.rs-quote::before {
  content: '\201C' !important;
  display: block !important;
  font-size: 4rem !important;
  line-height: 0.5 !important;
  margin-bottom: 16px !important;
  opacity: 0.4 !important;
}
.rs-quote__author {
  font-family: var(--rs-b-font) !important;
  font-size: 0.9rem !important;
  margin-top: 16px !important;
  opacity: 0.8 !important;
  font-weight: 400 !important;
}


/* ─── TIMELINE ───────────────────────────────────────────────── */
.rs-timeline {
  display: flex !important;
  flex-direction: column !important;
  gap: 32px !important;
  padding: 32px 0 !important;
}
@media (min-width: 960px) {
  .rs-timeline {
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
  }
}

.rs-timeline__item {
  text-align: center !important;
  flex: 1 !important;
  position: relative !important;
  transition: transform 0.3s ease !important;
}
.rs-timeline__item:hover {
  transform: scale(1.05) !important;
}
.rs-timeline__dot {
  width: 16px !important;
  height: 16px !important;
  border-radius: 50% !important;
  background: var(--rs-primary) !important;
  margin: 0 auto 8px !important;
  position: relative !important;
  z-index: 1 !important;
}
.rs-timeline__dot::after {
  content: '' !important;
  position: absolute !important;
  width: 24px !important;
  height: 24px !important;
  border-radius: 50% !important;
  border: 2px solid var(--rs-sunset) !important;
  top: -4px !important;
  left: -4px !important;
  opacity: 0.5 !important;
}

/* Horizontal connector between items (desktop) */
@media (min-width: 960px) {
  .rs-timeline__item + .rs-timeline__item::before {
    content: '' !important;
    position: absolute !important;
    top: 18px !important; /* vertically centered on the year text */
    right: 100% !important;
    width: 100% !important;
    border-top: 2px dashed var(--rs-secondary) !important;
    display: block !important;
  }
}
/* Vertical connector between items (mobile) */
@media (max-width: 959px) {
  .rs-timeline__item + .rs-timeline__item::before {
    content: '' !important;
    display: block !important;
    width: 2px !important;
    height: 24px !important;
    border-left: 2px dashed var(--rs-secondary) !important;
    margin: -24px auto 0 !important;
    position: static !important;
  }
}

.rs-timeline__year {
  font-family: var(--rs-h-font) !important;
  font-size: 1.5rem !important;
  color: var(--rs-primary) !important;
  font-weight: 700 !important;
  display: block !important;
}
.rs-timeline__text {
  font-size: 0.9rem !important;
  color: var(--rs-text-mid) !important;
  margin-top: 4px !important;
  line-height: 1.5 !important;
}


/* ─── STORIA VALORI ─────────────────────────────────────────── */
.rs-storia__valori {
  display: flex !important;
  flex-direction: column !important;
  gap: 20px !important;
  margin-top: 32px !important;
}
.rs-storia__valore {
  padding: 16px 20px !important;
  background: var(--rs-bg-alt) !important;
  border-radius: var(--rs-r) !important;
  border-left: 3px solid var(--rs-primary) !important;
  font-size: 0.95rem !important;
  line-height: 1.6 !important;
  color: var(--rs-text) !important;
}
.rs-storia__valore strong {
  color: var(--rs-primary) !important;
}


/* ─── MASONRY GALLERY ────────────────────────────────────────── */
.rs-masonry {
  column-count: 1 !important;
  column-gap: 16px !important;
}
@media (min-width: 640px) {
  .rs-masonry { column-count: 2 !important; }
}
@media (min-width: 960px) {
  .rs-masonry { column-count: 3 !important; }
}

.rs-masonry__item {
  break-inside: avoid !important;
  margin-bottom: 16px !important;
  border-radius: var(--rs-r) !important;
  overflow: hidden !important;
  position: relative !important;
  display: block !important;
}
.rs-masonry__item img {
  width: 100% !important;
  display: block !important;
  transition: transform 0.4s ease !important;
}
.rs-masonry__item:hover img { transform: scale(1.03) !important; }

.rs-masonry__overlay {
  position: absolute !important;
  inset: 0 !important;
  background: rgba(139,46,59,0.7) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  opacity: 0 !important;
  transition: opacity var(--rs-trans) !important;
}
.rs-masonry__item:hover .rs-masonry__overlay { opacity: 1 !important; }

.rs-masonry__overlay span {
  font-family: var(--rs-h-font) !important;
  font-size: 1.25rem !important;
  color: var(--rs-white) !important;
  text-align: center !important;
  padding: 8px !important;
}


/* ─── TWO COLUMN LAYOUT ──────────────────────────────────────── */
.rs-two-col {
  display: grid !important;
  gap: 48px !important;
  align-items: center !important;
}
@media (min-width: 960px) {
  .rs-two-col { grid-template-columns: 1fr 1fr !important; }
}

/* Reversed variant — swap visual order on desktop */
@media (min-width: 960px) {
  .rs-two-col--reverse > :first-child { order: 2 !important; }
  .rs-two-col--reverse > :last-child  { order: 1 !important; }
}

/* Text always before media on mobile */
@media (max-width: 959px) {
  .rs-two-col { gap: 24px !important; }
  .rs-two-col__text  { order: 1 !important; }
  .rs-two-col__media { order: 2 !important; }
}


/* ─── ACCESSIBILITA' ─────────────────────────────────────────── */
.rs-accessible {
  background: var(--rs-bg-alt) !important;
  border-radius: var(--rs-r-lg) !important;
  padding: 32px !important;
  display: flex !important;
  gap: 24px !important;
  align-items: center !important;
  flex-wrap: wrap !important;
}
.rs-accessible__icon {
  flex-shrink: 0 !important;
  width: 64px !important;
  height: 64px !important;
  color: var(--rs-primary) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.rs-accessible__icon svg,
.rs-accessible__icon img {
  width: 64px !important;
  height: 64px !important;
}
.rs-accessible__content {
  flex: 1 !important;
  min-width: 200px !important;
}
.rs-accessible__content h3,
.rs-accessible__content .rs-h3,
.rs-accessible__content .rs-h4 {
  margin-bottom: 8px !important;
  color: var(--rs-text) !important;
}
.rs-accessible__content p,
.rs-accessible__content .rs-body {
  font-size: 0.95rem !important;
  color: var(--rs-text-mid) !important;
  line-height: 1.6 !important;
}
.rs-accessible__list {
  list-style: none !important;
  padding: 0 !important;
  margin: 20px 0 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
}
.rs-accessible__list li {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  font-size: 0.9rem !important;
  color: var(--rs-text) !important;
}
.rs-accessible__list li svg {
  flex-shrink: 0 !important;
  color: var(--rs-primary) !important;
}
/* Legacy selector — keep for backwards compat */
.rs-accessible__text {
  flex: 1 !important;
  min-width: 200px !important;
}
.rs-accessible__text h3,
.rs-accessible__text .rs-h4 {
  margin-bottom: 8px !important;
  color: var(--rs-text) !important;
}
.rs-accessible__text p {
  font-size: 0.95rem !important;
  color: var(--rs-text-mid) !important;
  line-height: 1.6 !important;
}


/* ─── FAQ ACCORDION ────────────────────────────────────────── */
.rs-faq {
  max-width: 720px !important;
  margin: 0 auto !important;
}
.rs-faq__item {
  border-bottom: 1px solid var(--rs-secondary) !important;
}
.rs-faq__item:first-child {
  border-top: 1px solid var(--rs-secondary) !important;
}
.rs-faq__toggle {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  width: 100% !important;
  padding: 20px 0 !important;
  background: none !important;
  border: none !important;
  cursor: pointer !important;
  font-family: var(--rs-h-font) !important;
  font-size: 1.05rem !important;
  font-weight: 600 !important;
  color: var(--rs-text) !important;
  text-align: left !important;
  line-height: 1.4 !important;
}
.rs-faq__toggle:hover {
  color: var(--rs-primary) !important;
}
.rs-faq__toggle svg {
  flex-shrink: 0 !important;
  transition: transform 0.3s ease !important;
  margin-left: 12px !important;
}
.rs-faq__toggle[aria-expanded="true"] svg {
  transform: rotate(180deg) !important;
}
.rs-faq__answer {
  margin: 0 !important;
  padding: 0 0 20px !important;
}
.rs-faq__answer[hidden] {
  display: none !important;
}
.rs-faq__answer p {
  font-size: 0.95rem !important;
  line-height: 1.7 !important;
  color: var(--rs-text-mid) !important;
}


/* ─── MAIN CONTENT ──────────────────────────────────────────── */
.rs-main { overflow-x: hidden !important; }


/* ─── NAV EXTRAS ────────────────────────────────────────────── */
.rs-nav__logo-img {
  height: 40px !important;
  width: auto !important;
  display: block !important;
}
.rs-nav__mobile-list {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.rs-nav__mobile-close {
  position: absolute !important;
  top: 16px !important;
  right: 16px !important;
  background: none !important;
  border: none !important;
  cursor: pointer !important;
  padding: 4px !important;
  color: var(--rs-text) !important;
}
.rs-nav__mobile-cta {
  margin-top: 24px !important;
}
.rs-nav__mobile-social {
  margin-top: 24px !important;
  display: flex !important;
  gap: 12px !important;
}

/* SVG logo inline */
.rs-logo-svg {
  width: 40px !important;
  height: 40px !important;
  display: block !important;
  flex-shrink: 0 !important;
}
.rs-logo-path { transition: fill var(--rs-trans) !important; }
.rs-logo-path--top { opacity: 0.9 !important; }
.rs-logo-path--shadow { opacity: 0.3 !important; }

/* Full-width button variant */
.rs-btn--full { width: 100% !important; justify-content: center !important; }


/* ─── TRUST BAR SEPARATOR ───────────────────────────────────── */
.rs-trust-bar__separator {
  color: var(--rs-secondary) !important;
  opacity: 0.5 !important;
  font-size: 0.7rem !important;
  flex-shrink: 0 !important;
}


/* ─── TWO COL VISUAL ────────────────────────────────────────── */
.rs-two-col__visual { order: 1 !important; }
@media (max-width: 959px) {
  .rs-two-col__visual { order: 2 !important; }
}


/* ─── CTA ACTIONS ───────────────────────────────────────────── */
.rs-cta__actions {
  display: flex !important;
  gap: 16px !important;
  justify-content: center !important;
  flex-wrap: wrap !important;
  margin-top: 32px !important;
}


/* ─── WAVE DIVIDER (block variant) ──────────────────────────── */
.rs-wave-divider {
  width: 100% !important;
  height: 60px !important;
  display: block !important;
}


/* ─── TIMELINE EXTRAS ───────────────────────────────────────── */
.rs-timeline__marker {
  display: none !important; /* Decorative — visible via custom styling if needed */
}
.rs-timeline__content {
  padding: 4px 0 !important;
}


/* ─── BOOKING LEGEND CONTENT ────────────────────────────────── */
.rs-booking-legend__content {
  text-align: left !important;
}


/* ─── CONTACT PAGE EXTRAS ───────────────────────────────────── */
.rs-contact-card__title {
  font-weight: 600 !important;
  margin-bottom: 8px !important;
  color: var(--rs-text) !important;
}
.rs-contact-card__link {
  color: var(--rs-primary) !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  display: inline-block !important;
  margin-bottom: 4px !important;
}
.rs-contact-card__link:hover { text-decoration: underline !important; }
.rs-contact-card__note {
  font-size: 0.8rem !important;
  color: var(--rs-text-mid) !important;
  margin-top: 4px !important;
}

.rs-directions {
  display: grid !important;
  gap: 24px !important;
  grid-template-columns: 1fr !important;
}
@media (min-width: 640px) {
  .rs-directions { grid-template-columns: 1fr 1fr !important; }
}
.rs-directions__item {
  display: flex !important;
  gap: 12px !important;
  align-items: flex-start !important;
}
.rs-directions__icon {
  flex-shrink: 0 !important;
  width: 40px !important;
  height: 40px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: var(--rs-primary) !important;
  background: rgba(139,46,59,0.08) !important;
  border-radius: 50% !important;
}

.rs-form-wrapper {
  max-width: 640px !important;
  margin: 0 auto !important;
}

.rs-info-box {
  background: var(--rs-bg-alt) !important;
  border-radius: var(--rs-r-lg) !important;
  padding: 24px !important;
  text-align: center !important;
}


/* ─── FOOTER EXTRAS ─────────────────────────────────────────── */
.rs-footer__top {
  padding-bottom: 32px !important;
}
.rs-footer__col--book {
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
}
.rs-footer__col-title {
  font-family: var(--rs-b-font) !important;
  font-weight: 600 !important;
  font-size: 1.25rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
  margin-bottom: 16px !important;
  color: var(--rs-white) !important;
}
.rs-footer__social {
  display: flex !important;
  gap: 12px !important;
  margin-top: 16px !important;
}


/* ─── RESPONSIVE UTILITIES ───────────────────────────────────── */
.rs-hide-mobile  { display: none !important; }
.rs-hide-desktop { display: block !important; }

@media (min-width: 640px) {
  .rs-hide-mobile  { display: block !important; }
  .rs-hide-desktop { display: none !important; }
}

/* Text alignment utilities */
.rs-text-center { text-align: center !important; }
.rs-text-left   { text-align: left !important; }
.rs-text-right  { text-align: right !important; }

@media (max-width: 639px) {
  .rs-text-center-mobile { text-align: center !important; }
}

/* Spacing utilities */
.rs-mt-0  { margin-top: 0 !important; }
.rs-mt-8  { margin-top: 8px !important; }
.rs-mt-16 { margin-top: 16px !important; }
.rs-mt-24 { margin-top: 24px !important; }
.rs-mt-32 { margin-top: 32px !important; }
.rs-mt-48 { margin-top: 48px !important; }
.rs-mb-0  { margin-bottom: 0 !important; }
.rs-mb-8  { margin-bottom: 8px !important; }
.rs-mb-16 { margin-bottom: 16px !important; }
.rs-mb-24 { margin-bottom: 24px !important; }
.rs-mb-32 { margin-bottom: 32px !important; }
.rs-mb-48 { margin-bottom: 48px !important; }

/* Flex utilities */
.rs-flex         { display: flex !important; }
.rs-flex-center  { display: flex !important; align-items: center !important; justify-content: center !important; }
.rs-flex-between { display: flex !important; align-items: center !important; justify-content: space-between !important; }
.rs-flex-wrap    { flex-wrap: wrap !important; }
.rs-gap-8   { gap: 8px !important; }
.rs-gap-16  { gap: 16px !important; }
.rs-gap-24  { gap: 24px !important; }
.rs-gap-32  { gap: 32px !important; }


/* ─── VISUALLY HIDDEN (accessibilita') ──────────────────────── */
.rs-sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}


/* ─── FOCUS STYLES ───────────────────────────────────────────── */
/* Visible focus for keyboard navigation — never remove outline */
.rs-btn:focus-visible,
.rs-nav__menu a:focus-visible,
.rs-nav__logo:focus-visible,
.rs-nav__hamburger:focus-visible,
.rs-social__icon:focus-visible,
.rs-masonry__item:focus-visible {
  outline: 3px solid var(--rs-primary) !important;
  outline-offset: 3px !important;
  border-radius: var(--rs-r) !important;
}

/* ─── BREADCRUMB ─────────────────────────────────────────────── */
.rs-breadcrumb { text-align: center !important; }


/* ─── MOBILE CTA ─────────────────────────────────────────────── */
@media (max-width: 639px) {
  .rs-btn { width: 100% !important; justify-content: center !important; text-align: center !important; }
  .rs-hero__ctas { flex-direction: column !important; width: 100% !important; padding: 0 20px !important; }
  .rs-hero__ctas .rs-btn { width: 100% !important; }

  /* Hero compact */
  .rs-hero { min-height: 85vh !important; }
  .rs-hero__title { font-size: clamp(2rem, 7vw, 2.5rem) !important; line-height: 1.15 !important; }
  .rs-hero__subtitle { font-size: 1rem !important; padding: 0 8px !important; }
  .rs-hero--mini {
    min-height: 55vh !important;
    padding: calc(var(--rs-nav-h) + 32px) 16px 40px !important;
  }

  /* Section spacing — più respiro */
  .rs-section { padding: 56px 0 !important; }
  .rs-wrap { padding: 0 16px !important; }
  .rs-h2 { font-size: 1.75rem !important; }
  .rs-h3 { font-size: 1.35rem !important; }
  .rs-grid-3 { gap: 20px !important; }
  .rs-grid-4 { gap: 16px !important; }

  /* Service cards — 2 col */
  .rs-grid-4 { grid-template-columns: repeat(2, 1fr) !important; }
  .rs-service-card { padding: 16px !important; }
  .rs-service-card__icon { width: 36px !important; height: 36px !important; }
  .rs-service-card__icon svg,
  .rs-service-card__icon img { width: 36px !important; height: 36px !important; }
  .rs-service-card__name { font-size: 0.85rem !important; }
  .rs-service-card__desc { font-size: 0.75rem !important; }

  /* Counters */
  .rs-counter__number { font-size: 2.5rem !important; }
  .rs-counter__label { font-size: 0.8rem !important; }

  /* Trust bar — slower marquee on mobile to reduce GPU usage */
  .rs-trust-bar { padding: 8px 0 !important; }
  .rs-trust-bar__item { font-size: 0.75rem !important; }
  .rs-trust-bar__track { animation-duration: 45s !important; }

  /* Disable wave animation on mobile */
  .rs-section--waves::after { animation: none !important; }

  /* Contact cards */
  .rs-contact-grid { gap: 16px !important; }
  .rs-contact-card { padding: 20px !important; }
  .rs-contact-card__icon { width: 36px !important; height: 36px !important; }
  .rs-contact-card__icon svg,
  .rs-contact-card__icon img { width: 36px !important; height: 36px !important; }

  /* Carousel */
  .rs-carousel__item { flex: 0 0 260px !important; }
  .rs-carousel__item img { height: 200px !important; }

  /* Navbar */
  .rs-nav__logo img { max-height: 36px !important; width: auto !important; }
  .rs-nav__hamburger { width: 28px !important; }
  .rs-nav__hamburger span { height: 3px !important; }
  .rs-nav__hamburger.is-open span:nth-child(1) { transform: translateY(8px) rotate(45deg) !important; }
  .rs-nav__hamburger.is-open span:nth-child(3) { transform: translateY(-8px) rotate(-45deg) !important; }

  /* Footer */
  .rs-footer { padding: 40px 0 0 !important; }
  .rs-footer__grid { gap: 24px !important; }
  .rs-footer__col h4 { font-size: 1.1rem !important; margin-bottom: 12px !important; }
  .rs-footer__bottom {
    flex-direction: column !important;
    text-align: center !important;
    gap: 8px !important;
    padding: 16px 0 !important;
  }
  .rs-footer__bottom nav {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    gap: 8px 16px !important;
  }

  /* Timeline — vertical with left border */
  .rs-timeline {
    padding-left: 24px !important;
    border-left: 2px solid var(--rs-secondary) !important;
  }
  .rs-timeline__item {
    text-align: left !important;
    padding-left: 16px !important;
    position: relative !important;
  }
  .rs-timeline__dot {
    position: absolute !important;
    left: -33px !important;
    top: 4px !important;
  }
}


/* ─── CAROUSEL ───────────────────────────────────────────────── */
.rs-carousel {
  display: flex !important;
  overflow-x: auto !important;
  scroll-snap-type: x mandatory !important;
  gap: 16px !important;
  padding: 16px 0 !important;
  -webkit-overflow-scrolling: touch !important;
  scrollbar-width: none !important;
}
.rs-carousel::-webkit-scrollbar { display: none !important; }
.rs-carousel__item {
  flex: 0 0 300px !important;
  scroll-snap-align: center !important;
  border-radius: var(--rs-r-lg) !important;
  overflow: hidden !important;
}
.rs-carousel__item img {
  width: 100% !important;
  height: 250px !important;
  object-fit: cover !important;
  display: block !important;
}
@media (min-width: 640px) {
  .rs-carousel__item { flex: 0 0 350px !important; }
  .rs-carousel__item img { height: 300px !important; }
}

/* Service cards inside carousel */
.rs-carousel .rs-service-card {
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
}
.rs-carousel .rs-carousel__item {
  flex: 0 0 220px !important;
}
@media (min-width: 640px) {
  .rs-carousel .rs-carousel__item { flex: 0 0 260px !important; }
}

/* Carousel arrows */
.rs-carousel-wrap { position: relative !important; }
.rs-carousel__arrow {
  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  z-index: 10 !important;
  width: 40px !important;
  height: 40px !important;
  border-radius: 50% !important;
  background: var(--rs-white) !important;
  border: 1px solid var(--rs-bg-alt) !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1) !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: var(--rs-primary) !important;
  transition: all 0.3s ease !important;
}
.rs-carousel__arrow:hover {
  background: var(--rs-primary) !important;
  color: var(--rs-white) !important;
  border-color: var(--rs-primary) !important;
}
.rs-carousel__arrow--prev { left: -16px !important; }
.rs-carousel__arrow--next { right: -16px !important; }
@media (max-width: 639px) {
  .rs-carousel__arrow {
    width: 36px !important;
    height: 36px !important;
    top: auto !important;
    bottom: -48px !important;
    transform: none !important;
  }
  .rs-carousel__arrow--prev { left: calc(50% - 44px) !important; }
  .rs-carousel__arrow--next { right: calc(50% - 44px) !important; }
}

/* ─── CAROUSEL DOT INDICATOR ─────────────────────────────── */
.rs-carousel__dots {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin: 20px 0 0;
  padding: 0;
  list-style: none;
}
.rs-carousel__dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: none;
  background: rgba(139, 46, 59, 0.25);
  cursor: pointer;
  padding: 0;
  transition: transform 0.2s ease, background 0.2s ease;
}
.rs-carousel__dot:hover { transform: scale(1.2); }
.rs-carousel__dot[aria-current="true"] {
  background: var(--rs-primary);
  transform: scale(1.25);
}
@media (max-width: 639px) {
  .rs-carousel__dots { margin-top: 60px; }
}


/* ─── PRINT ──────────────────────────────────────────────────── */
@media print {
  .rs-nav,
  .rs-floating-cta,
  .rs-trust-bar,
  .rs-nav__overlay { display: none !important; }
  .rs-nav-spacer  { display: none !important; }
  body.riviera-page { background: #fff !important; color: #000 !important; }
}

/* ─── TABLE ORARI ────────────────────────────────────────────── */
.rs-table-orari { width: 100% !important; border-collapse: collapse !important; font-size: 0.9rem !important; margin-top: 16px !important; }
.rs-table-orari th, .rs-table-orari td { padding: 10px 12px !important; text-align: left !important; border-bottom: 1px solid var(--rs-bg-alt) !important; }
.rs-table-orari th { font-weight: 600 !important; color: var(--rs-text) !important; }

/* ─── FOCUS VISIBLE ──────────────────────────────────────────── */
.riviera-page a:focus-visible,
.riviera-page button:focus-visible {
  outline: 3px solid var(--rs-primary) !important;
  outline-offset: 3px !important;
}


/* ─── IMMAGINI — object-fit cover nei contenitori ────────────── */
.rs-hero__bg img,
.rs-masonry__item img,
.rs-service-card img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}


/* ─── PREFERS-REDUCED-MOTION ─────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}


/* ═══════════════════════════════════════════════════════════════
   NEW v1.1 — Logo text, skip-link, coming-soon, WhatsApp btn,
   contrast fixes, service card image height cap
═══════════════════════════════════════════════════════════════ */

/* Skip link for keyboard users */
.rs-skip-link {
  position: absolute;
  left: -999px;
  top: 0;
  z-index: 10000;
  padding: 12px 20px;
  background: var(--rs-primary);
  color: var(--rs-card);
  text-decoration: none;
  font-weight: 600;
  border-radius: 0 0 8px 0;
}
.rs-skip-link:focus {
  left: 0;
  outline: 3px solid var(--rs-card);
  outline-offset: 2px;
}

/* Logo text next to SVG mark */
.rs-nav__logo-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: rgba(255, 253, 249, 0.08);
  flex-shrink: 0;
  transition: background var(--rs-trans);
}
.rs-nav--scrolled .rs-nav__logo-mark {
  background: rgba(139, 46, 59, 0.08);
}
.rs-nav__logo-mark svg { width: 30px; height: 30px; }

.rs-nav__logo-text {
  display: flex;
  flex-direction: column;
  line-height: 1.1;
}
.rs-nav__logo-brand {
  font-family: var(--rs-h-font);
  font-weight: 700;
  font-size: 1.5rem;
  color: currentColor;
  letter-spacing: 0.5px;
}
.rs-nav__logo-tag {
  font-family: var(--rs-b-font);
  font-size: 0.68rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: currentColor;
  opacity: 0.7;
}
.rs-nav:not(.rs-nav--scrolled) .rs-nav__logo-brand,
.rs-nav:not(.rs-nav--scrolled) .rs-nav__logo-tag {
  color: var(--rs-card);
}
.rs-nav--scrolled .rs-nav__logo-brand { color: var(--rs-primary); }
.rs-nav--scrolled .rs-nav__logo-tag   { color: var(--rs-text-mid); }

@media (max-width: 639px) {
  .rs-nav__logo-mark { width: 40px; height: 40px; }
  .rs-nav__logo-mark svg { width: 26px; height: 26px; }
  .rs-nav__logo-brand { font-size: 1.2rem; }
  .rs-nav__logo-tag { font-size: 0.6rem; }
}

/* Footer logo text */
.rs-footer__logo {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
  color: var(--rs-card);
  margin-bottom: 20px;
}
.rs-footer__logo-text {
  display: flex;
  flex-direction: column;
  line-height: 1.1;
}
.rs-footer__logo-brand {
  font-family: var(--rs-h-font);
  font-weight: 700;
  font-size: 1.75rem;
  color: var(--rs-card);
}
.rs-footer__logo-tag {
  font-family: var(--rs-b-font);
  font-size: 0.68rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--rs-secondary);
}

/* Footer hours line */
.rs-footer__hours {
  margin-top: 12px;
  font-size: 0.85rem;
  opacity: 0.9;
  line-height: 1.5;
}
.rs-footer__hours strong {
  display: block;
  margin-bottom: 4px;
  color: var(--rs-secondary);
  font-weight: 600;
}

/* Footer WhatsApp CTA spacing */
.rs-footer__wa-cta { margin-top: 10px; }

/* WhatsApp button */
.rs-btn--whatsapp {
  background: var(--rs-wa) !important;
  color: #fff !important;
  border: 2px solid var(--rs-wa) !important;
}
.rs-btn--whatsapp:hover {
  background: var(--rs-wa-dk) !important;
  border-color: var(--rs-wa-dk) !important;
  color: #fff !important;
}

/* Ghost light button (used on bordeaux bgs) */
.rs-btn--ghost-light {
  background: transparent !important;
  color: var(--rs-card) !important;
  border: 2px solid var(--rs-card) !important;
}
.rs-btn--ghost-light:hover {
  background: var(--rs-card) !important;
  color: var(--rs-primary) !important;
  border-color: var(--rs-card) !important;
}

/* ─── FIX CONTRAST — rs-section--cta-alt ──────────────────────
   Before: bianco-su-crema (or bianco-su-bianco) unreadable in some
   Chi Siamo sezione CTA. Force explicit colors. */
.rs-section--cta-alt .rs-h2,
.rs-section--cta-alt .rs-h3 {
  color: var(--rs-primary-ink) !important;
}
.rs-section--cta-alt .rs-lead,
.rs-section--cta-alt p {
  color: var(--rs-text-mid) !important;
}

/* Service card image cap — was 200px in one spot, inconsistent elsewhere */
.rs-service-card img {
  max-height: 200px !important;
  object-fit: cover !important;
}

/* Polaroid not too tall on desktop — cap aspect ratio */
.rs-polaroid {
  max-width: 460px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.rs-polaroid img {
  aspect-ratio: 4 / 3 !important;
  object-fit: cover !important;
  width: 100% !important;
  height: auto !important;
}

/* ─── COMING SOON BANNER ─────────────────────────────────── */
.rs-coming-soon {
  position: relative;
  overflow: hidden;
}
.rs-coming-soon__inner {
  text-align: center;
  max-width: 860px;
}
.rs-coming-soon__eyebrow {
  display: inline-block;
  padding: 6px 16px;
  margin-bottom: 16px;
  border: 1px solid var(--rs-secondary);
  border-radius: 50px;
  font-family: var(--rs-b-font);
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--rs-secondary);
}
.rs-coming-soon__title {
  color: var(--rs-card) !important;
  font-size: clamp(2rem, 5vw, 3rem) !important;
  margin-bottom: 16px !important;
}
.rs-coming-soon__sub {
  color: var(--rs-card) !important;
  opacity: 0.92;
  margin-bottom: 32px !important;
}
.rs-coming-soon__features {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  max-width: 580px;
  margin: 0 auto 36px !important;
  padding: 0;
  list-style: none;
}
.rs-coming-soon__features li {
  display: flex;
  align-items: center;
  gap: 10px;
  justify-content: center;
  padding: 10px 14px;
  background: rgba(255, 253, 249, 0.08);
  border-radius: 10px;
  color: var(--rs-card) !important;
  font-size: 0.95rem;
}
@media (min-width: 640px) {
  .rs-coming-soon__features { grid-template-columns: repeat(4, 1fr); }
}
.rs-coming-soon__ctas {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
}

/* Menu WhatsApp button in mobile drawer */
.rs-nav__mobile .rs-btn--whatsapp {
  background: var(--rs-wa) !important;
  border-color: var(--rs-wa) !important;
  margin-top: 12px !important;
}
.rs-nav__mobile .rs-btn--whatsapp:hover {
  background: var(--rs-wa-dk) !important;
  border-color: var(--rs-wa-dk) !important;
}

/* Hamburger larger & more visible mobile */
@media (max-width: 959px) {
  .rs-nav__hamburger {
    width: 44px !important;
    height: 44px !important;
  }
  .rs-nav__hamburger span {
    width: 26px !important;
    height: 2.5px !important;
  }
}

/* ─── 404 PAGE (paperboat) ──────────────────────────────────────── */
.rs-404-main { background: linear-gradient(180deg, var(--rs-bg) 0%, var(--rs-bg-alt) 100%); }

.rs-404 {
  min-height: calc(100vh - var(--rs-nav-h));
  padding: calc(var(--rs-nav-h) + 32px) 16px 80px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
.rs-404__inner {
  max-width: 720px;
  text-align: center;
}
.rs-404__svg {
  width: 100%;
  max-width: 520px;
  margin: 0 auto 32px;
}
.rs-404__svg svg { width: 100%; height: auto; display: block; }
.rs-404__eyebrow {
  display: inline-block;
  padding: 6px 14px;
  margin-bottom: 16px;
  border-radius: 50px;
  background: rgba(139, 46, 59, 0.08);
  font-family: var(--rs-b-font);
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--rs-primary);
}
.rs-404__title {
  font-size: clamp(2.25rem, 6vw, 3.75rem) !important;
  margin-bottom: 16px !important;
  color: var(--rs-primary-ink) !important;
}
.rs-404__sub {
  color: var(--rs-text-mid) !important;
  margin-bottom: 40px !important;
}
.rs-404__links {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  justify-content: center;
}

/* Animazioni 404 */
@keyframes rs404BoatFloat {
  0%, 100% { transform: translate(260px, 150px) rotate(-2deg); }
  50%      { transform: translate(262px, 146px) rotate(2deg); }
}
@keyframes rs404WaveMove {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-40px); }
}
@keyframes rs404CloudMove {
  0%   { transform: translateX(0); }
  100% { transform: translateX(30px); }
}
@keyframes rs404Bubble {
  0%   { opacity: 0; transform: translateY(0); }
  50%  { opacity: 0.8; }
  100% { opacity: 0; transform: translateY(-18px); }
}

.rs-404__boat       { animation: rs404BoatFloat 3.8s ease-in-out infinite; transform-origin: center; }
.rs-404__wave--back { animation: rs404WaveMove 7s ease-in-out infinite alternate; }
.rs-404__wave--mid  { animation: rs404WaveMove 5s ease-in-out infinite alternate-reverse; }
.rs-404__wave--front{ animation: rs404WaveMove 4s ease-in-out infinite alternate; }
.rs-404__cloud      { animation: rs404CloudMove 14s ease-in-out infinite alternate; }
.rs-404__cloud--2   { animation-duration: 18s; }
.rs-404__bubble     { animation: rs404Bubble 3s ease-in-out infinite; }
.rs-404__bubble--1  { animation-delay: 0s; }
.rs-404__bubble--2  { animation-delay: 1s; }
.rs-404__bubble--3  { animation-delay: 2s; }

@media (prefers-reduced-motion: reduce) {
  .rs-404__boat,
  .rs-404__wave--back,
  .rs-404__wave--mid,
  .rs-404__wave--front,
  .rs-404__cloud,
  .rs-404__bubble { animation: none !important; }
}

/* ─── PRICING CARDS (Listino 2026) ──────────────────────────── */
.rs-pricing-card {
  background: var(--rs-card);
  border-radius: var(--rs-r-lg);
  padding: 28px 24px;
  border: 1px solid var(--rs-bg-alt);
  box-shadow: var(--rs-shadow);
  display: flex;
  flex-direction: column;
}
.rs-pricing-card__header {
  margin-bottom: 16px;
  padding-bottom: 16px;
  border-bottom: 1px dashed var(--rs-bg-alt);
  text-align: center;
}
.rs-pricing-card__badge {
  display: inline-block;
  padding: 4px 12px;
  background: rgba(139, 46, 59, 0.08);
  color: var(--rs-primary);
  border-radius: 50px;
  font-family: var(--rs-b-font);
  font-size: 0.7rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 10px;
}
.rs-pricing-card__badge--hot {
  background: rgba(212, 149, 106, 0.2);
  color: #8C5722;
}
.rs-pricing-card__title {
  color: var(--rs-primary-ink) !important;
  margin-bottom: 4px !important;
}
.rs-pricing-card__note {
  font-size: 0.85rem;
  color: var(--rs-text-muted);
  font-style: italic;
  margin: 0;
}
.rs-pricing-table { font-size: 0.92rem !important; }
.rs-pricing-table tr td:last-child {
  text-align: right !important;
  white-space: nowrap;
  color: var(--rs-primary) !important;
}
.rs-pricing-rules li {
  padding: 14px 16px;
  background: var(--rs-bg);
  border-radius: 10px;
  font-size: 0.9rem;
  line-height: 1.5;
}


/* ═══════════════════════════════════════════════════════════════
   v1.2 — Quick Wins: Identita' Visiva
   - Menu card accent per momento del giorno
   - Trust bar potenziata
   - Watermark "1950" decorativo
   - Section break per ritmo asimmetrico
   - Signature wave potenziato
   - Card hover micro-interazione migliorata
═══════════════════════════════════════════════════════════════ */


/* ─── MENU CARD ACCENT — momento del giorno ─────────────────── */
/*
  Colazione  = sea-mist  (#B8D0D8) — azzurro mattina
  Pranzo     = gold-decor (#C1B086) — mezzogiorno caldo
  Cena       = sunset    (#D4956A) — arancio serale
  Applicare: aggiungere data-moment="colazione|pranzo|cena" alla card,
  oppure usare le classi dirette .rs-menu-card--colazione, ecc.
*/
[data-moment="colazione"] {
  border-top: 4px solid var(--rs-sea-mist) !important;
  background: linear-gradient(to bottom, rgba(184,208,216,0.08) 0%, var(--rs-card) 100%) !important;
}
[data-moment="colazione"] .rs-menu-card__icon,
[data-moment="colazione"] .rs-service-card__icon {
  color: #5a9aaa !important;
}
[data-moment="colazione"]:hover {
  border-color: var(--rs-sea-mist) !important;
  box-shadow: 0 10px 28px rgba(184,208,216,0.35) !important;
}

[data-moment="pranzo"] {
  border-top: 4px solid var(--rs-secondary) !important;
  background: linear-gradient(to bottom, rgba(168,147,106,0.08) 0%, var(--rs-card) 100%) !important;
}
[data-moment="pranzo"] .rs-menu-card__icon,
[data-moment="pranzo"] .rs-service-card__icon {
  color: var(--rs-secondary) !important;
}
[data-moment="pranzo"]:hover {
  border-color: var(--rs-secondary) !important;
  box-shadow: 0 10px 28px rgba(168,147,106,0.35) !important;
}

[data-moment="cena"] {
  border-top: 4px solid var(--rs-sunset) !important;
  background: linear-gradient(to bottom, rgba(212,149,106,0.08) 0%, var(--rs-card) 100%) !important;
}
[data-moment="cena"] .rs-menu-card__icon,
[data-moment="cena"] .rs-service-card__icon {
  color: #b06b3a !important;
}
[data-moment="cena"]:hover {
  border-color: var(--rs-sunset) !important;
  box-shadow: 0 10px 28px rgba(212,149,106,0.35) !important;
}


/* ─── TRUST BAR POTENZIATA ────────────────────────────────────── */
.rs-trust-bar {
  padding: 14px 0 !important; /* era 12px */
}
.rs-trust-bar__item {
  font-size: 0.88rem !important; /* era 0.85rem */
  letter-spacing: 0.6px !important;
}
/* Separatore ancora SVG — piu' forte del separatore unicode */
.rs-trust-bar__separator {
  opacity: 0.65 !important; /* era 0.5 */
  font-size: 0.9rem !important;
}
@media (max-width: 639px) {
  .rs-trust-bar { padding: 10px 0 !important; }
  .rs-trust-bar__item { font-size: 0.78rem !important; }
}


/* ─── WATERMARK "1950" ────────────────────────────────────────── */
/*
  Elemento decorativo — non è testo funzionale, è texture.
  Applicare: aggiungere <span class="rs-watermark-year" aria-hidden="true">1950</span>
  come figlio diretto di .rs-footer o di .rs-section--bordeaux.
  Il posizionamento absolute richiede position: relative sul parent (gia' presente).
*/
.rs-watermark-year {
  position: absolute !important;
  right: 40px !important;
  bottom: 24px !important;
  font-family: var(--rs-h-font) !important;
  font-size: clamp(100px, 15vw, 180px) !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  color: var(--rs-white) !important;
  opacity: var(--rs-watermark-opacity) !important;
  pointer-events: none !important;
  user-select: none !important;
  letter-spacing: -4px !important;
  white-space: nowrap !important;
  z-index: 0 !important;
}
/* Nel footer bordeaux — watermark bianco */
.rs-footer .rs-watermark-year {
  color: var(--rs-white) !important;
  opacity: 0.05 !important;
}
/* In sezioni chiare — watermark bordeaux */
.rs-section .rs-watermark-year {
  color: var(--rs-primary) !important;
  opacity: 0.03 !important;
}
@media (max-width: 639px) {
  .rs-watermark-year {
    right: 16px !important;
    bottom: 16px !important;
    font-size: 80px !important;
  }
}


/* ─── SECTION BREAK — respiro asimmetrico ────────────────────── */
/*
  Usa .rs-section--break per sezioni di transizione tra blocchi densi.
  Meta del padding standard, sfondo leggermente diverso per creare ritmo.
*/
.rs-section--break {
  padding: 40px 0 !important;
  background: var(--rs-bg-alt) !important;
  position: relative !important;
}
@media (min-width: 960px) {
  .rs-section--break {
    padding: 56px 0 !important;
  }
}


/* ─── CARD HOVER MICRO-INTERAZIONE MIGLIORATA ─────────────────── */
/*
  Upgrade del lift effect — usa il nuovo shadow system e l'easing bounce.
  Override dei valori precedenti per piu' espressivita'.
*/
.rs-service-card:hover {
  transform: translateY(-6px) !important; /* era -4px */
  box-shadow: var(--rs-shadow-lg) !important;
  transition: all var(--rs-dur-mid) var(--rs-ease-bounce) !important;
}
.rs-menu-card:hover {
  transform: translateY(-5px) !important; /* era -4px */
  box-shadow: var(--rs-shadow-md) !important;
  transition: all var(--rs-dur-mid) var(--rs-ease-bounce) !important;
}
.rs-review-card:hover {
  transform: translateY(-3px) !important;
  box-shadow: var(--rs-shadow-md) !important;
  transition: all var(--rs-dur-mid) var(--rs-ease-bounce) !important;
}
.rs-pricing-card:hover {
  transform: translateY(-4px) !important;
  box-shadow: var(--rs-shadow-lg) !important;
  transition: transform var(--rs-dur-mid) var(--rs-ease-bounce),
              box-shadow var(--rs-dur-mid) ease !important;
}


/* ─── WAVE SIGNATURE POTENZIATA ───────────────────────────────── */
/*
  Versione piu' marcata del wave divider — doppia onda con
  peso visivo maggiore e il colore sea-mist come secondo layer.
  Usa .rs-section--waves-strong per sezioni che devono "parlare".
*/
.rs-section--waves-strong {
  position: relative !important;
  overflow: hidden !important;
}
.rs-section--waves-strong::after {
  content: '' !important;
  position: absolute !important;
  bottom: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100px !important;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 100'%3E%3Cpath fill='rgba(184,208,216,0.12)' d='M0,60 C300,100 600,20 900,60 C1100,85 1300,70 1440,60 L1440,100 L0,100 Z'/%3E%3Cpath fill='rgba(139,46,59,0.07)' d='M0,70 C240,30 480,90 720,55 C960,20 1200,75 1440,50 L1440,100 L0,100 Z'/%3E%3Cpath fill='rgba(168,147,106,0.06)' d='M0,80 C360,100 720,60 1080,80 C1260,90 1380,85 1440,80 L1440,100 L0,100 Z'/%3E%3C/svg%3E") no-repeat bottom !important;
  background-size: 100% 100px !important;
  animation: gentleWave 10s ease-in-out infinite alternate !important;
  pointer-events: none !important;
}
@media (max-width: 639px) {
  .rs-section--waves-strong::after {
    height: 60px !important;
    background-size: 100% 60px !important;
    animation: none !important;
  }
}


/* ─── POLAROID RIDUZIONE ─────────────────────────────────────── */
/*
  Il polaroid stanca se usato in griglia da 4.
  Nuova regola: max 2 polaroid per riga su desktop, mai piu' di 2 rotazioni attive.
  Aggiungere .rs-polaroid-grid--pair alla griglia per usare il pattern 2-col.
*/
.rs-polaroid-grid--pair {
  grid-template-columns: 1fr !important;
}
@media (min-width: 640px) {
  .rs-polaroid-grid--pair { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (min-width: 960px) {
  .rs-polaroid-grid--pair { grid-template-columns: repeat(2, 1fr) !important; max-width: 720px !important; margin: 0 auto !important; }
}
/* In griglia pair, solo i primi 2 ruotano — gli altri restano dritti */
.rs-polaroid-grid--pair .rs-polaroid:nth-child(n+3) {
  transform: rotate(0deg) !important;
}


/* ─── HERO PARALLAX (CSS) ─────────────────────────────────────── */
/*
  Effetto parallax CSS puro per l'immagine hero.
  Disabilitato su mobile (background-attachment:fixed non funziona bene su iOS).
  Non aggiunge JS, non tocca il layout.
  Per attivarlo, aggiungere la classe .rs-hero--parallax all'elemento .rs-hero.
*/
@media (min-width: 960px) {
  .rs-hero--parallax .rs-hero__bg {
    background-attachment: fixed !important;
  }
}
/* Fallback: su mobile e' solo background-position: center cover */
@media (max-width: 959px) {
  .rs-hero--parallax .rs-hero__bg {
    background-attachment: scroll !important;
  }
}


/* ─── PRINT SAFETY per nuovi elementi ───────────────────────────── */
@media print {
  .rs-watermark-year { display: none !important; }
  .rs-section--waves-strong::after { display: none !important; }
}
