{"id":299,"date":"2026-06-25T14:49:26","date_gmt":"2026-06-25T14:49:26","guid":{"rendered":"https:\/\/ristoranteponcinimaggia.ch\/contatti\/"},"modified":"2026-09-08T09:27:58","modified_gmt":"2026-09-08T09:27:58","slug":"contatti","status":"publish","type":"page","link":"https:\/\/ristoranteponcinimaggia.ch\/de\/contatti\/","title":{"rendered":"Kontakt"},"content":{"rendered":"<div class=\"et_pb_section_0 et_pb_section et_section_regular et_block_section\">\n<div class=\"et_pb_row_0 et_pb_row et_block_row\">\n<div class=\"et_pb_column_0 et_pb_column et_pb_column_4_4 et-last-child et_block_column et_pb_css_mix_blend_mode_passthrough\">\n<div class=\"et_pb_code_0 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\"><link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin><link href=\"https:\/\/fonts.googleapis.com\/css2?family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400&family=Cormorant+Garamond:ital,wght@0,300;1,300;1,400;1,600&family=Lato:wght@300;400;700&display=swap\" rel=\"stylesheet\"><style>\/* ============================================================\n   CSS CUSTOM PROPERTIES\n   ============================================================ *\/\n:root {\n  --gold:        #b8952a;\n  --gold-light:  #d4b060;\n  --gold-dark:   #8a6f1c;\n  --gold-pale:   #f0e6c8;\n  --dark:        #0d0b08;\n  --dark2:       #181208;\n  --brown:       #2c1a0e;\n  --cream:       #f5f0e6;\n  --cream2:      #ede8dc;\n  --cream3:      #e6dfd3;\n  --white:       #ffffff;\n  --text:        #2a1c0e;\n  --text-mid:    #5c4a38;\n  --text-light:  #8a7a6a;\n  --border:      #ddd5c5;\n  --border2:     #cfc5b5;\n\n  --serif:  'Playfair Display', Georgia, serif;\n  --script: 'Cormorant Garamond', Georgia, serif;\n  --sans:   'Lato', 'Helvetica Neue', Arial, sans-serif;\n\n  --ease:    0.3s ease;\n  --ease-lg: 0.55s ease;\n  --shadow:  0 4px 24px rgba(0,0,0,0.10);\n  --shadow2: 0 8px 40px rgba(0,0,0,0.18);\n  --pad-x:   clamp(1.25rem, 4vw, 2rem);\n  --max-w:   1200px;\n  --nav-h:   70px;\n}\n\n\/* ============================================================\n   RESET & BASE\n   ============================================================ *\/\n*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\nhtml { scroll-behavior: smooth; font-size: 16px; }\nbody {\n  font-family: var(--sans);\n  color: var(--text);\n  background: var(--white);\n  line-height: 1.65;\n  overflow-x: hidden;\n}\nimg  { display: block; max-width: 100%; height: auto; }\na    { text-decoration: none; color: inherit; }\nul   { list-style: none; }\nbutton { cursor: pointer; border: none; background: none; font: inherit; }\n\n\/* ============================================================\n   UTILITIES\n   ============================================================ *\/\n.container {\n  max-width: var(--max-w);\n  margin: 0 auto;\n  padding: 0 var(--pad-x);\n}\n\n\/* Eyebrow label *\/\n.eyebrow {\n  display: block;\n  font-family: var(--sans);\n  font-size: 0.7rem;\n  font-weight: 700;\n  letter-spacing: 0.22em;\n  text-transform: uppercase;\n  color: var(--gold);\n  margin-bottom: 0.6rem;\n}\n.eyebrow--center { text-align: center; }\n.eyebrow--gold   { color: var(--gold-light); }\n\n\/* Section title *\/\n.section-title {\n  font-family: var(--serif);\n  font-size: clamp(1.65rem, 3vw, 2.4rem);\n  font-weight: 600;\n  letter-spacing: 0.1em;\n  text-transform: uppercase;\n  text-align: center;\n  color: var(--text);\n  margin-bottom: 2.5rem;\n}\n.section-title--light { color: var(--white); }\n\n\/* Decorative ornament *\/\n.ornament { text-align: center; margin: 0.5rem 0 1.25rem; }\n\n\/* CTA row *\/\n.section-cta { text-align: center; margin-top: 2.5rem; }\n\n\/* ============================================================\n   BUTTONS\n   ============================================================ *\/\n.btn {\n  display: inline-flex;\n  align-items: center;\n  gap: 0.45rem;\n  padding: 0.85rem 1.75rem;\n  font-family: var(--sans);\n  font-size: 0.72rem;\n  font-weight: 700;\n  letter-spacing: 0.14em;\n  text-transform: uppercase;\n  border: 2px solid transparent;\n  transition: background var(--ease), border-color var(--ease), color var(--ease), transform var(--ease), box-shadow var(--ease);\n  position: relative;\n  overflow: hidden;\n}\n.btn:hover { transform: translateY(-2px); }\n.btn__ico { width: 15px; height: 15px; flex-shrink: 0; }\n\n.btn--gold       { background: var(--gold); color: var(--white); border-color: var(--gold); }\n.btn--gold:hover { background: var(--gold-dark); border-color: var(--gold-dark); box-shadow: 0 6px 20px rgba(184,149,42,0.35); }\n\n.btn--outline-white       { background: transparent; color: var(--white); border-color: rgba(255,255,255,0.8); }\n.btn--outline-white:hover { background: var(--white); color: var(--text); border-color: var(--white); }\n\n.btn--outline-gold       { background: transparent; color: var(--gold); border-color: var(--gold); }\n.btn--outline-gold:hover { background: var(--gold); color: var(--white); }\n\n.btn--outline-dark       { background: transparent; color: var(--text); border-color: var(--border2); }\n.btn--outline-dark:hover { background: var(--text); color: var(--white); border-color: var(--text); }\n\n.btn--block { display: flex; width: 100%; justify-content: center; }\n\n\/* ============================================================\n   LOGO (shared)\n   ============================================================ *\/\n.logo {\n  display: flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 1px;\n  line-height: 1;\n  flex-shrink: 0;\n}\n.logo__script {\n  font-family: var(--script);\n  font-style: italic;\n  font-size: 0.78rem;\n  color: var(--gold-light);\n  letter-spacing: 0.04em;\n}\n.logo__main {\n  font-family: var(--serif);\n  font-size: 1.45rem;\n  font-weight: 700;\n  letter-spacing: 0.2em;\n  color: var(--gold);\n  line-height: 1;\n}\n.logo__year {\n  font-family: var(--sans);\n  font-size: 0.52rem;\n  letter-spacing: 0.24em;\n  color: var(--gold-light);\n  width: 100%;\n  text-align: center;\n}\n\n\/* ============================================================\n   HEADER \/ NAV\n   ============================================================ *\/\n.header {\n  position: fixed;\n  inset: 0 0 auto 0;\n  z-index: 1000;\n  background: rgba(10, 7, 3, 0.82);\n  backdrop-filter: blur(14px);\n  -webkit-backdrop-filter: blur(14px);\n  border-bottom: 1px solid rgba(184,149,42,0.15);\n  transition: background var(--ease);\n}\n.header.scrolled { background: rgba(10, 7, 3, 0.98); }\n\n.nav {\n  display: flex;\n  align-items: center;\n  height: var(--nav-h);\n  gap: 2rem;\n}\n\n.nav__menu {\n  display: flex;\n  align-items: center;\n  gap: 0;\n  flex: 1;\n  justify-content: center;\n}\n.nav__link {\n  font-size: 0.69rem;\n  font-weight: 400;\n  letter-spacing: 0.11em;\n  text-transform: uppercase;\n  color: rgba(255,255,255,0.78);\n  padding: 0.55rem 0.85rem;\n  position: relative;\n  transition: color var(--ease);\n}\n.nav__link::after {\n  content: '';\n  position: absolute;\n  bottom: 0; left: 50%;\n  transform: translateX(-50%);\n  width: 0; height: 1px;\n  background: var(--gold);\n  transition: width var(--ease);\n}\n.nav__link:hover,\n.nav__link--active { color: var(--gold-light); }\n.nav__link:hover::after,\n.nav__link--active::after { width: 60%; }\n\n.nav__right {\n  display: flex;\n  align-items: center;\n  gap: 1.25rem;\n  flex-shrink: 0;\n}\n.nav__lang { display: flex; gap: 0.5rem; }\n.lang-link {\n  font-size: 0.65rem;\n  font-weight: 700;\n  letter-spacing: 0.1em;\n  color: rgba(255,255,255,0.45);\n  transition: color var(--ease);\n}\n.lang-link:hover, .lang-link--active { color: var(--gold); }\n.nav__cta { font-size: 0.67rem; padding: 0.58rem 1.1rem; }\n\n\/* Hamburger *\/\n.hamburger {\n  display: none;\n  flex-direction: column;\n  gap: 5px;\n  padding: 4px;\n  margin-left: auto;\n}\n.hamburger span {\n  display: block;\n  width: 23px; height: 2px;\n  background: var(--white);\n  border-radius: 1px;\n  transition: all var(--ease);\n}\n.hamburger.open span:nth-child(1) { transform: rotate(45deg) translate(5px,5px); }\n.hamburger.open span:nth-child(2) { opacity: 0; transform: translateX(-6px); }\n.hamburger.open span:nth-child(3) { transform: rotate(-45deg) translate(5px,-5px); }\n\n\/* ============================================================\n   HERO\n   ============================================================ *\/\n.hero {\n  position: relative;\n  min-height: 100vh;\n  display: flex;\n  align-items: center;\n  background:\n    url('https:\/\/images.unsplash.com\/photo-1414235077428-338989a2e8c0?w=1920&q=85')\n    center \/ cover no-repeat;\n}\n.hero__overlay {\n  position: absolute; inset: 0;\n  background: linear-gradient(\n    to right,\n    rgba(8,5,2,0.92)  0%,\n    rgba(8,5,2,0.78) 42%,\n    rgba(8,5,2,0.32) 72%,\n    rgba(8,5,2,0.14) 100%\n  );\n}\n.hero__inner {\n  position: relative;\n  z-index: 1;\n  padding-top: var(--nav-h);\n}\n.hero__content { max-width: 560px; }\n\n.hero__title {\n  font-family: var(--serif);\n  font-size: clamp(2.6rem, 6vw, 5.4rem);\n  font-weight: 700;\n  color: var(--white);\n  line-height: 1.06;\n  margin-bottom: 0.75rem;\n}\n.hero__subtitle {\n  font-family: var(--script);\n  font-style: italic;\n  font-size: clamp(1.2rem, 2.2vw, 1.7rem);\n  font-weight: 300;\n  color: var(--gold-light);\n  margin-bottom: 1.2rem;\n}\n.hero__desc {\n  font-size: 0.95rem;\n  font-weight: 300;\n  color: rgba(255,255,255,0.8);\n  line-height: 1.78;\n  margin-bottom: 2.5rem;\n}\n.hero__btns { display: flex; gap: 1rem; flex-wrap: wrap; }\n\n\/* Scroll cue *\/\n.hero__scroll {\n  position: absolute;\n  bottom: 2rem; left: 50%;\n  transform: translateX(-50%);\n  z-index: 2;\n}\n.hero__scroll span {\n  display: block;\n  width: 22px; height: 34px;\n  border: 2px solid rgba(255,255,255,0.35);\n  border-radius: 11px;\n  position: relative;\n}\n.hero__scroll span::before {\n  content: '';\n  position: absolute;\n  top: 5px; left: 50%;\n  transform: translateX(-50%);\n  width: 3px; height: 7px;\n  background: var(--gold);\n  border-radius: 2px;\n  animation: scrollDot 2s ease infinite;\n}\n@keyframes scrollDot {\n  0%   { opacity: 1; top: 5px; }\n  80%  { opacity: 0; top: 18px; }\n  100% { opacity: 0; top: 5px; }\n}\n\n\/* WhatsApp FAB *\/\n.fab-whatsapp {\n  position: fixed;\n  bottom: 1.75rem; right: 1.75rem;\n  width: 52px; height: 52px;\n  background: #25D366;\n  color: var(--white);\n  border-radius: 50%;\n  display: flex; align-items: center; justify-content: center;\n  z-index: 900;\n  box-shadow: 0 4px 16px rgba(37,211,102,0.45);\n  transition: transform var(--ease), box-shadow var(--ease);\n}\n.fab-whatsapp:hover { transform: scale(1.1); box-shadow: 0 6px 22px rgba(37,211,102,0.55); }\n.fab-whatsapp svg { width: 28px; height: 28px; }\n\n\/* ============================================================\n   FEATURES \/ PILLARS\n   ============================================================ *\/\n.features {\n  background: var(--cream);\n  border-bottom: 1px solid var(--border);\n  padding: 3.5rem 0;\n}\n.features__grid {\n  display: flex;\n  align-items: center;\n}\n.pillar {\n  flex: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 0.6rem;\n  padding: 0.75rem 2rem;\n}\n.pillar__icon {\n  width: 56px; height: 56px;\n  color: var(--gold);\n  margin-bottom: 0.4rem;\n}\n.pillar__icon svg { width: 100%; height: 100%; }\n.pillar__title {\n  font-family: var(--serif);\n  font-size: 1rem;\n  font-weight: 600;\n  color: var(--text);\n}\n.pillar__desc {\n  font-size: 0.83rem;\n  color: var(--text-mid);\n  line-height: 1.6;\n}\n.features__sep {\n  width: 1px; height: 70px;\n  background: var(--border);\n  flex-shrink: 0;\n}\n\n\/* ============================================================\n   LA NOSTRA STORIA\n   ============================================================ *\/\n.storia {\n  display: grid;\n  grid-template-columns: 1fr 1fr;\n  min-height: 620px;\n}\n\n\/* Image column *\/\n.storia__img-col {\n  position: relative;\n  overflow: hidden;\n}\n.storia__img-col img {\n  width: 100%; height: 100%;\n  object-fit: cover;\n  transition: transform 0.8s ease;\n}\n.storia:hover .storia__img-col img { transform: scale(1.04); }\n.storia__img-overlay {\n  position: absolute; inset: 0;\n  background: linear-gradient(to right, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.02) 100%);\n}\n.storia__badge {\n  position: absolute;\n  bottom: 2.5rem; right: 2.5rem;\n  background: var(--gold);\n  color: var(--white);\n  width: 100px; height: 100px;\n  border-radius: 50%;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n  text-align: center;\n  box-shadow: 0 4px 20px rgba(0,0,0,0.25);\n}\n.storia__badge-num {\n  font-family: var(--serif);\n  font-size: 1.7rem;\n  font-weight: 700;\n  line-height: 1;\n}\n.storia__badge-txt {\n  font-size: 0.6rem;\n  font-weight: 700;\n  letter-spacing: 0.08em;\n  text-transform: uppercase;\n  line-height: 1.2;\n}\n\n\/* Content column *\/\n.storia__content {\n  background: var(--cream);\n  padding: 5rem clamp(2rem, 6vw, 5rem) 5rem clamp(2rem, 5vw, 4rem);\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  gap: 0;\n}\n.storia__title {\n  font-family: var(--serif);\n  font-size: clamp(1.6rem, 2.8vw, 2.4rem);\n  font-weight: 700;\n  color: var(--text);\n  line-height: 1.2;\n  margin-bottom: 0.25rem;\n}\n.storia__text {\n  font-size: 0.92rem;\n  color: var(--text-mid);\n  line-height: 1.82;\n  margin-bottom: 1rem;\n}\n\n\/* Timeline *\/\n.timeline {\n  border-left: 2px solid var(--gold-pale);\n  padding-left: 1.5rem;\n  margin: 1.5rem 0 2rem;\n  display: flex;\n  flex-direction: column;\n  gap: 1.5rem;\n}\n.timeline__item { position: relative; }\n.timeline__item::before {\n  content: '';\n  position: absolute;\n  left: -1.875rem; top: 4px;\n  width: 10px; height: 10px;\n  border-radius: 50%;\n  background: var(--gold);\n  border: 2px solid var(--cream);\n  box-shadow: 0 0 0 2px var(--gold);\n}\n.timeline__year {\n  display: block;\n  font-family: var(--serif);\n  font-size: 0.75rem;\n  font-weight: 700;\n  color: var(--gold);\n  letter-spacing: 0.1em;\n  margin-bottom: 0.15rem;\n}\n.timeline__body strong {\n  font-size: 0.88rem;\n  font-weight: 700;\n  color: var(--text);\n  display: block;\n  margin-bottom: 0.15rem;\n}\n.timeline__body p {\n  font-size: 0.82rem;\n  color: var(--text-light);\n  line-height: 1.5;\n}\n\n\/* ============================================================\n   MENU PREVIEW\n   ============================================================ *\/\n.menu-preview {\n  background: var(--cream2);\n  padding: 5.5rem 0;\n}\n.menu-grid {\n  display: grid;\n  grid-template-columns: repeat(4, 1fr);\n  gap: 1.25rem;\n  margin-bottom: 2.5rem;\n}\n.menu-card {\n  background: var(--white);\n  overflow: hidden;\n  box-shadow: var(--shadow);\n  transition: transform var(--ease), box-shadow var(--ease);\n}\n.menu-card:hover { transform: translateY(-6px); box-shadow: var(--shadow2); }\n.menu-card__img {\n  aspect-ratio: 4\/3;\n  overflow: hidden;\n  background: var(--cream3);\n}\n.menu-card__img img {\n  width: 100%; height: 100%;\n  object-fit: cover;\n  transition: transform var(--ease-lg);\n}\n.menu-card:hover .menu-card__img img { transform: scale(1.07); }\n.menu-card__body { padding: 1.3rem 1rem; text-align: center; }\n.menu-card__title {\n  font-family: var(--serif);\n  font-size: 0.82rem;\n  font-weight: 600;\n  letter-spacing: 0.15em;\n  text-transform: uppercase;\n  color: var(--text);\n  margin-bottom: 0.4rem;\n}\n.menu-card__desc { font-size: 0.8rem; color: var(--text-mid); line-height: 1.55; }\n\n\/* ============================================================\n   FEATURED DISHES\n   ============================================================ *\/\n.featured {\n  position: relative;\n  background: var(--dark);\n  padding: 5.5rem 0;\n  overflow: hidden;\n}\n.featured__bg {\n  position: absolute; inset: 0;\n  background: radial-gradient(ellipse at 70% 50%, rgba(184,149,42,0.06) 0%, transparent 70%);\n  pointer-events: none;\n}\n.featured__inner { position: relative; z-index: 1; }\n.featured__ornament { text-align: center; margin: -1.5rem 0 2.5rem; }\n\n.dishes-grid {\n  display: grid;\n  grid-template-columns: repeat(3, 1fr);\n  gap: 1.5rem;\n}\n.dish-card { overflow: hidden; }\n.dish-card__img-wrap {\n  position: relative;\n  aspect-ratio: 4\/3;\n  overflow: hidden;\n  background: #1a1208;\n}\n.dish-card__img-wrap img {\n  width: 100%; height: 100%;\n  object-fit: cover;\n  filter: brightness(0.8);\n  transition: transform var(--ease-lg), filter var(--ease-lg);\n}\n.dish-card:hover .dish-card__img-wrap img {\n  transform: scale(1.07);\n  filter: brightness(0.95);\n}\n.dish-card__star {\n  position: absolute;\n  top: 0.8rem; left: 0.8rem;\n  z-index: 2;\n  width: 32px; height: 32px;\n  background: rgba(10,8,4,0.65);\n  border-radius: 50%;\n  display: flex; align-items: center; justify-content: center;\n  backdrop-filter: blur(4px);\n}\n.dish-card__body { padding: 1.1rem 0.5rem; text-align: center; }\n.dish-card__title {\n  font-family: var(--serif);\n  font-size: 1rem;\n  font-weight: 600;\n  color: var(--white);\n  margin-bottom: 0.35rem;\n}\n.dish-card__desc { font-size: 0.82rem; color: rgba(255,255,255,0.52); }\n\n\/* ============================================================\n   LA CANTINA\n   ============================================================ *\/\n.cantina { background: var(--dark2); }\n\n.cantina__hero {\n  position: relative;\n  height: 400px;\n  overflow: hidden;\n}\n.cantina__hero img {\n  width: 100%; height: 100%;\n  object-fit: cover;\n  filter: brightness(0.4);\n}\n.cantina__hero-overlay {\n  position: absolute; inset: 0;\n  background: linear-gradient(to bottom, rgba(24,18,8,0.3), rgba(24,18,8,0.8));\n}\n.cantina__hero-text {\n  position: absolute; inset: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n  text-align: center;\n  padding: 2rem;\n}\n.cantina__hero-text .section-title { margin-bottom: 1rem; }\n.cantina__hero-desc {\n  font-size: 0.95rem;\n  font-weight: 300;\n  color: rgba(255,255,255,0.72);\n  line-height: 1.75;\n}\n\n.cantina__cards-wrap {\n  background: var(--dark2);\n  padding: 0 0 5rem;\n  margin-top: -1px;\n}\n.cantina__cards {\n  display: grid;\n  grid-template-columns: repeat(3, 1fr);\n  gap: 1.5rem;\n  padding-top: 4rem;\n}\n\n.wine-card {\n  background: rgba(255,255,255,0.04);\n  border: 1px solid rgba(184,149,42,0.18);\n  overflow: hidden;\n  transition: border-color var(--ease), transform var(--ease), box-shadow var(--ease);\n}\n.wine-card:hover {\n  border-color: rgba(184,149,42,0.5);\n  transform: translateY(-5px);\n  box-shadow: 0 12px 40px rgba(0,0,0,0.4);\n}\n.wine-card__img {\n  aspect-ratio: 4\/3;\n  overflow: hidden;\n  background: #1a1208;\n}\n.wine-card__img img {\n  width: 100%; height: 100%;\n  object-fit: cover;\n  filter: brightness(0.75) saturate(0.9);\n  transition: transform var(--ease-lg), filter var(--ease-lg);\n}\n.wine-card:hover .wine-card__img img {\n  transform: scale(1.06);\n  filter: brightness(0.9) saturate(1.05);\n}\n.wine-card__body { padding: 1.5rem 1.25rem; }\n.wine-card__label {\n  display: inline-block;\n  font-size: 0.62rem;\n  font-weight: 700;\n  letter-spacing: 0.2em;\n  text-transform: uppercase;\n  color: var(--gold);\n  border: 1px solid rgba(184,149,42,0.4);\n  padding: 0.2rem 0.6rem;\n  margin-bottom: 0.7rem;\n}\n.wine-card__title {\n  font-family: var(--serif);\n  font-size: 1.15rem;\n  font-weight: 600;\n  color: var(--white);\n  margin-bottom: 0.55rem;\n}\n.wine-card__desc {\n  font-size: 0.84rem;\n  color: rgba(255,255,255,0.52);\n  line-height: 1.65;\n  margin-bottom: 1rem;\n}\n.wine-card__link {\n  font-size: 0.75rem;\n  font-weight: 700;\n  letter-spacing: 0.1em;\n  color: var(--gold);\n  transition: color var(--ease);\n}\n.wine-card__link:hover { color: var(--gold-light); }\n\n\/* ============================================================\n   GALLERY\n   ============================================================ *\/\n.gallery {\n  display: grid;\n  grid-template-columns: 300px 1fr;\n  min-height: 440px;\n  background: var(--cream2);\n}\n\n.gallery__intro {\n  background: var(--cream3);\n  padding: 4rem 2.5rem;\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  gap: 1rem;\n  border-right: 1px solid var(--border);\n}\n.gallery__title {\n  font-family: var(--serif);\n  font-size: clamp(1.4rem, 2vw, 1.9rem);\n  font-weight: 600;\n  color: var(--text);\n  line-height: 1.3;\n}\n.gallery__desc { font-size: 0.88rem; color: var(--text-mid); line-height: 1.65; }\n\n\/* Carousel *\/\n.gallery__carousel {\n  position: relative;\n  overflow: hidden;\n  background: #111;\n}\n.gallery__track-wrap { overflow: hidden; height: 100%; }\n.gallery__track {\n  display: flex;\n  height: 100%;\n  transition: transform 0.55s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.gallery__slide {\n  min-width: calc(100% \/ 3);\n  height: 440px;\n  overflow: hidden;\n  flex-shrink: 0;\n  background: var(--dark);\n}\n.gallery__slide img {\n  width: 100%; height: 100%;\n  object-fit: cover;\n  transition: transform var(--ease-lg);\n}\n.gallery__slide:hover img { transform: scale(1.06); }\n\n.gallery__arrow {\n  position: absolute;\n  top: 50%; transform: translateY(-50%);\n  width: 40px; height: 40px;\n  border-radius: 50%;\n  background: rgba(184,149,42,0.75);\n  color: var(--white);\n  font-size: 1.5rem;\n  line-height: 1;\n  display: flex; align-items: center; justify-content: center;\n  z-index: 10;\n  transition: background var(--ease), transform var(--ease);\n}\n.gallery__arrow:hover { background: var(--gold); transform: translateY(-50%) scale(1.08); }\n.gallery__arrow--prev { left: 0.75rem; }\n.gallery__arrow--next { right: 0.75rem; }\n\n.gallery__dots {\n  position: absolute;\n  bottom: 0.9rem; left: 50%;\n  transform: translateX(-50%);\n  display: flex; gap: 0.4rem;\n  z-index: 10;\n}\n.gallery__dot {\n  width: 8px; height: 8px;\n  border-radius: 50%;\n  background: rgba(255,255,255,0.3);\n  transition: background var(--ease), transform var(--ease);\n  border: none;\n}\n.gallery__dot.active { background: var(--gold); transform: scale(1.25); }\n\n\/* ============================================================\n   TESTIMONIANZE\n   ============================================================ *\/\n.testi {\n  background: var(--cream);\n  padding: 5.5rem 0;\n  border-top: 1px solid var(--border);\n}\n\n.testi__rating-bar {\n  display: flex;\n  justify-content: center;\n  margin-bottom: 3.5rem;\n  margin-top: -1.5rem;\n}\n.testi__score {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  gap: 0.4rem;\n}\n.testi__score-num {\n  font-family: var(--serif);\n  font-size: 3rem;\n  font-weight: 700;\n  color: var(--text);\n  line-height: 1;\n}\n.testi__stars { display: flex; gap: 0.2rem; }\n.testi__score-label { font-size: 0.78rem; color: var(--text-light); letter-spacing: 0.05em; }\n\n.testi__grid {\n  display: grid;\n  grid-template-columns: repeat(3, 1fr);\n  gap: 1.5rem;\n  align-items: start;\n}\n.testi-card {\n  background: var(--white);\n  padding: 2rem;\n  box-shadow: var(--shadow);\n  border-top: 3px solid var(--border);\n  transition: transform var(--ease), box-shadow var(--ease), border-color var(--ease);\n}\n.testi-card:hover { transform: translateY(-4px); box-shadow: var(--shadow2); }\n.testi-card--featured {\n  border-top-color: var(--gold);\n  position: relative;\n}\n.testi-card__stars {\n  font-size: 1rem;\n  color: var(--gold);\n  letter-spacing: 0.05em;\n  margin-bottom: 1rem;\n}\n.testi-card__quote {\n  font-family: var(--script);\n  font-style: italic;\n  font-size: 1.05rem;\n  color: var(--text-mid);\n  line-height: 1.75;\n  margin-bottom: 1.5rem;\n  quotes: \"\\201C\" \"\\201D\";\n}\n.testi-card__quote::before { content: open-quote; color: var(--gold); font-size: 1.4rem; line-height: 0; vertical-align: -0.3em; margin-right: 0.1em; }\n.testi-card__author {\n  display: flex;\n  align-items: center;\n  gap: 0.75rem;\n}\n.testi-card__avatar {\n  width: 40px; height: 40px;\n  border-radius: 50%;\n  background: var(--gold);\n  color: var(--white);\n  font-size: 0.72rem;\n  font-weight: 700;\n  letter-spacing: 0.05em;\n  display: flex; align-items: center; justify-content: center;\n  flex-shrink: 0;\n}\n.testi-card__name { font-size: 0.88rem; font-weight: 700; color: var(--text); }\n.testi-card__source { font-size: 0.76rem; color: var(--text-light); }\n\n\/* ============================================================\n   BOTTOM SECTION\n   ============================================================ *\/\n.bottom {\n  background: var(--cream2);\n  border-top: 1px solid var(--border);\n  padding: 5rem 0;\n}\n.bottom__grid {\n  display: grid;\n  grid-template-columns: 260px 1fr 260px;\n  gap: 3rem;\n  align-items: start;\n}\n\n\/* Daily menu *\/\n.daily-menu {\n  border: 2px solid var(--gold);\n  background: var(--white);\n  padding: 2.25rem 1.75rem;\n  text-align: center;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  gap: 0.35rem;\n}\n.daily-menu__tag {\n  font-family: var(--serif);\n  font-size: 0.88rem;\n  font-weight: 700;\n  letter-spacing: 0.14em;\n  text-transform: uppercase;\n  color: var(--text);\n  margin-top: 0.6rem;\n}\n.daily-menu__subtitle { font-size: 0.8rem; color: var(--text-mid); letter-spacing: 0.05em; }\n.daily-menu__price {\n  font-family: var(--serif);\n  font-size: 2.2rem;\n  font-weight: 700;\n  color: var(--gold);\n  margin: 0.5rem 0;\n}\n.daily-menu .btn { margin-top: 0.6rem; font-size: 0.68rem; padding: 0.78rem 1rem; }\n\n\/* Reservation *\/\n.reservation__title {\n  font-family: var(--serif);\n  font-size: 1.3rem;\n  font-weight: 600;\n  letter-spacing: 0.1em;\n  text-transform: uppercase;\n  text-align: center;\n  color: var(--text);\n  margin-bottom: 1.6rem;\n}\n.res-form { display: flex; flex-direction: column; gap: 0.8rem; }\n.res-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0.8rem; }\n.res-field { position: relative; }\n.res-field--full { grid-column: 1 \/ -1; }\n.res-field--icon .res-ico {\n  position: absolute;\n  right: 0.85rem; top: 50%;\n  transform: translateY(-50%);\n  width: 17px; height: 17px;\n  color: var(--text-light);\n  pointer-events: none;\n}\n.res-input {\n  width: 100%;\n  padding: 0.82rem 1rem;\n  border: 1px solid var(--border);\n  background: var(--white);\n  font-family: var(--sans);\n  font-size: 0.85rem;\n  color: var(--text);\n  outline: none;\n  appearance: none;\n  transition: border-color var(--ease), box-shadow var(--ease);\n}\n.res-input::placeholder { color: var(--text-light); }\n.res-input:focus { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(184,149,42,0.12); }\n.res-input.invalid { border-color: #c0392b; }\n.res-select { padding-right: 2.5rem; cursor: pointer; }\n.res-textarea { resize: vertical; min-height: 80px; padding-top: 0.82rem; }\n.res-form .btn { margin-top: 0.2rem; }\n.res-feedback {\n  text-align: center;\n  font-size: 0.83rem;\n  min-height: 1.2rem;\n  transition: color var(--ease);\n}\n\n\/* Contacts *\/\n.contacts { display: flex; flex-direction: column; gap: 1.2rem; }\n.contact-item {\n  display: flex;\n  align-items: flex-start;\n  gap: 0.85rem;\n}\n.contact-item__ico { flex-shrink: 0; margin-top: 1px; }\n.contact-item p { font-size: 0.86rem; color: var(--text); line-height: 1.6; }\n.contact-socials {\n  display: flex;\n  gap: 1rem;\n  padding-left: 1.85rem;\n  margin-top: 0.2rem;\n}\n.soc-ico { color: var(--text-mid); transition: color var(--ease), transform var(--ease); }\n.soc-ico:hover { color: var(--gold); transform: scale(1.15); }\n\n\/* ============================================================\n   FOOTER\n   ============================================================ *\/\n.footer {\n  background: var(--dark);\n  border-top: 1px solid rgba(184,149,42,0.12);\n  padding: 1.5rem 0;\n}\n.footer__inner {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  gap: 1.5rem;\n}\n.footer__logo .logo__script,\n.footer__logo .logo__year { color: var(--gold-light); }\n.footer__logo .logo__main  { color: var(--gold); }\n\n.footer__center { text-align: center; flex: 1; }\n.footer__copy { font-size: 0.78rem; color: rgba(255,255,255,0.38); margin-bottom: 0.35rem; }\n.footer__links { display: flex; justify-content: center; gap: 1.5rem; }\n.footer__link { font-size: 0.78rem; color: rgba(255,255,255,0.38); transition: color var(--ease); }\n.footer__link:hover { color: var(--gold-light); }\n.footer__cta { font-size: 0.68rem; padding: 0.62rem 1.2rem; flex-shrink: 0; }\n\n\/* ============================================================\n   SCROLL REVEAL\n   ============================================================ *\/\n.reveal {\n  opacity: 0;\n  transform: translateY(28px);\n  transition: opacity 0.7s ease, transform 0.7s ease;\n}\n.reveal.visible { opacity: 1; transform: none; }\n.reveal-delay-1 { transition-delay: 0.1s; }\n.reveal-delay-2 { transition-delay: 0.2s; }\n.reveal-delay-3 { transition-delay: 0.3s; }\n\n\/* ============================================================\n   RESPONSIVE \u2013 1100px\n   ============================================================ *\/\n@media (max-width: 1100px) {\n  .storia { grid-template-columns: 1fr; }\n  .storia__img-col { height: 400px; }\n  .storia__content { padding: 3.5rem 2.5rem; }\n  .bottom__grid { grid-template-columns: 1fr 1fr; }\n  .daily-menu { grid-column: 1 \/ -1; max-width: 380px; margin: 0 auto; }\n  .menu-grid { grid-template-columns: repeat(2, 1fr); }\n}\n\n\/* ============================================================\n   RESPONSIVE \u2013 900px\n   ============================================================ *\/\n@media (max-width: 900px) {\n  .cantina__cards { grid-template-columns: 1fr 1fr; }\n  .dishes-grid { grid-template-columns: 1fr 1fr; }\n  .testi__grid { grid-template-columns: 1fr; max-width: 520px; margin: 0 auto; }\n  .gallery { grid-template-columns: 1fr; }\n  .gallery__intro { border-right: none; border-bottom: 1px solid var(--border); padding: 3rem 2rem; }\n  .gallery__slide { min-width: 50%; height: 360px; }\n}\n\n\/* ============================================================\n   RESPONSIVE \u2013 768px\n   ============================================================ *\/\n@media (max-width: 768px) {\n  \/* Nav *\/\n  .hamburger { display: flex; }\n  .nav__right { display: none; }\n  .nav__menu {\n    position: fixed;\n    top: var(--nav-h); left: 0; right: 0;\n    background: rgba(8,5,2,0.98);\n    flex-direction: column;\n    padding: 2rem 1.5rem;\n    gap: 0.5rem;\n    transform: translateY(-110%);\n    opacity: 0;\n    pointer-events: none;\n    transition: transform var(--ease), opacity var(--ease);\n    z-index: 999;\n    border-bottom: 1px solid rgba(184,149,42,0.15);\n  }\n  .nav__menu.open {\n    transform: translateY(0);\n    opacity: 1;\n    pointer-events: all;\n  }\n  .nav__link { font-size: 0.95rem; padding: 0.75rem 0; border-bottom: 1px solid rgba(255,255,255,0.06); width: 100%; }\n  .nav__link::after { display: none; }\n\n  \/* Hero *\/\n  .hero__content { padding-top: 80px; }\n  .hero__btns { flex-direction: column; align-items: flex-start; }\n  .hero__btns .btn { width: 100%; justify-content: center; }\n\n  \/* Features *\/\n  .features__grid { flex-direction: column; gap: 0; }\n  .features__sep { width: 80%; height: 1px; align-self: center; }\n  .pillar { padding: 1.25rem 1rem; }\n\n  \/* Storia *\/\n  .storia__img-col { height: 300px; }\n  .storia__badge { width: 80px; height: 80px; bottom: 1.5rem; right: 1.5rem; }\n  .storia__badge-num { font-size: 1.4rem; }\n\n  \/* Dishes *\/\n  .dishes-grid { grid-template-columns: 1fr; }\n\n  \/* Cantina *\/\n  .cantina__cards { grid-template-columns: 1fr; }\n  .cantina__hero { height: 300px; }\n\n  \/* Gallery *\/\n  .gallery__slide { min-width: 100%; height: 280px; }\n\n  \/* Bottom *\/\n  .bottom__grid { grid-template-columns: 1fr; gap: 2.5rem; }\n  .daily-menu { max-width: 100%; }\n  .res-row { grid-template-columns: 1fr; }\n\n  \/* Footer *\/\n  .footer__inner { flex-direction: column; text-align: center; gap: 1.2rem; }\n  .footer__logo { align-items: center; }\n}\n\n\/* ============================================================\n   RESPONSIVE \u2013 480px\n   ============================================================ *\/\n@media (max-width: 480px) {\n  .menu-grid { grid-template-columns: 1fr; }\n  .testi__grid { max-width: 100%; }\n  .hero__title { font-size: 2.4rem; }\n  .cantina__hero { height: 250px; }\n}\n\n\n\/* \u2550\u2550\u2550 SUBPAGE CSS \u2550\u2550\u2550 *\/\n\n\/* SUBPAGE OVERRIDES *\/\n.et_pb_section{margin-bottom:0!important}\n.et_pb_row{margin-bottom:0!important}\n\n\/* PAGE HERO SUBPAGE *\/\n.page-hero{position:relative;padding:160px 0 100px;text-align:center;overflow:hidden}\n.page-hero::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(8,5,2,0.88) 0%,rgba(8,5,2,0.65) 100%);z-index:1}\n.page-hero .et_pb_row,.page-hero .et_pb_column,.page-hero .et_pb_module{position:relative;z-index:2}\n.page-eyebrow{font-family:var(--sans,'Lato'),sans-serif;font-size:.68rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--gold,#b8952a);display:block;margin-bottom:.8rem}\n.page-title{font-family:var(--serif,'Playfair Display'),serif;font-size:clamp(2.4rem,5vw,4rem);font-weight:700;color:#fff;line-height:1.08;margin-bottom:1rem}\n.page-subtitle{font-family:var(--script,'Cormorant Garamond'),serif;font-style:italic;font-size:clamp(1.1rem,2vw,1.5rem);color:rgba(255,255,255,.7);margin:0}\n\n\/* SEZIONI GENERALI *\/\n.section-title{font-family:var(--serif,'Playfair Display'),serif;font-size:clamp(1.6rem,3vw,2.4rem);font-weight:700;color:var(--text,#2a1c0e);line-height:1.15}\n.eyebrow{font-family:var(--sans,'Lato'),sans-serif;font-size:.68rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--gold,#b8952a);display:block;margin-bottom:.5rem}\n.eyebrow--center{text-align:center;display:block}\n.eyebrow--gold{color:var(--gold,#b8952a)}\n\n\/* CARDS GENERALI *\/\n.val-card{background:#fff;border-top:3px solid var(--gold,#b8952a);padding:2rem 1.6rem;height:100%}\n.val-card h3{font-family:var(--serif,'Playfair Display'),serif;font-size:1.05rem;font-weight:600;color:var(--text,#2a1c0e);margin-bottom:.6rem}\n.val-card p{font-size:.85rem;color:var(--text-mid,#5c4a38);line-height:1.7;margin:0}\n.val-icon{width:44px;height:44px;color:var(--gold,#b8952a);margin-bottom:1rem}\n\n\/* MENU PAGE *\/\n.menu-category{border-bottom:1px solid var(--border,#ddd5c5);padding-bottom:2.5rem;margin-bottom:2.5rem}\n.menu-category:last-child{border-bottom:none}\n.menu-category__title{font-family:var(--serif,'Playfair Display'),serif;font-size:1.3rem;font-weight:600;color:var(--text,#2a1c0e);margin-bottom:1.2rem;display:flex;align-items:center;gap:.8rem}\n.menu-category__title::after{content:'';flex:1;height:1px;background:var(--border,#ddd5c5)}\n.menu-item{display:grid;grid-template-columns:1fr auto;gap:.5rem 1rem;align-items:baseline;padding:.6rem 0;border-bottom:1px dotted rgba(0,0,0,.08)}\n.menu-item:last-child{border-bottom:none}\n.menu-item__name{font-family:var(--serif,'Playfair Display'),serif;font-size:.95rem;font-weight:600;color:var(--text,#2a1c0e)}\n.menu-item__price{font-family:var(--sans,'Lato'),sans-serif;font-size:.88rem;font-weight:700;color:var(--gold,#b8952a);white-space:nowrap}\n.menu-item__desc{grid-column:1\/-1;font-size:.78rem;color:var(--text-mid,#5c4a38);line-height:1.5;margin-top:.1rem}\n.menu-allergen{font-size:.68rem;color:rgba(0,0,0,.4);font-style:italic}\n\n\/* BLOG *\/\n.blog-card{background:#fff;overflow:hidden;border:1px solid var(--border,#ddd5c5);transition:transform .3s,box-shadow .3s}\n.blog-card:hover{transform:translateY(-5px);box-shadow:0 10px 40px rgba(0,0,0,.12)}\n.blog-card__img{width:100%;height:200px;object-fit:cover;display:block}\n.blog-card__body{padding:1.4rem}\n.blog-card__cat{font-size:.62rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--gold,#b8952a);display:block;margin-bottom:.4rem}\n.blog-card__title{font-family:var(--serif,'Playfair Display'),serif;font-size:1rem;font-weight:600;color:var(--text,#2a1c0e);margin-bottom:.5rem;line-height:1.35}\n.blog-card__excerpt{font-size:.8rem;color:var(--text-mid,#5c4a38);line-height:1.6;margin-bottom:1rem}\n.blog-card__meta{font-size:.72rem;color:rgba(0,0,0,.4);display:flex;gap:.8rem}\n.blog-card__link{font-size:.72rem;font-weight:700;letter-spacing:.08em;color:var(--gold,#b8952a);text-decoration:none}\n.blog-card__link:hover{color:#8a6f1c}\n\n\/* CONTATTI *\/\n.contact-block{padding:2rem;border-left:3px solid var(--gold,#b8952a)}\n.contact-block h3{font-family:var(--serif,'Playfair Display'),serif;font-size:1rem;font-weight:600;color:var(--text,#2a1c0e);margin-bottom:.8rem}\n.contact-block p{font-size:.88rem;color:var(--text-mid,#5c4a38);line-height:1.7;margin-bottom:.3rem}\n.contact-block a{color:var(--gold,#b8952a);text-decoration:none}\n.contact-block a:hover{color:#8a6f1c}\n.orari-table{width:100%;border-collapse:collapse;font-size:.85rem}\n.orari-table tr{border-bottom:1px solid var(--border,#ddd5c5)}\n.orari-table td{padding:.5rem 0;color:var(--text-mid,#5c4a38)}\n.orari-table td:first-child{font-weight:600;color:var(--text,#2a1c0e);width:40%}\n\n\/* \u2500\u2500\u2500 BOTTONI HTML (sostituiscono et_pb_button) \u2500\u2500\u2500 *\/\n.sub-btn-gold,.sub-btn-outline,.sub-btn-cta{\n  display:inline-block;\n  padding:.85rem 2.4rem;\n  font-family:var(--sans,'Lato'),sans-serif;\n  font-size:.72rem;font-weight:700;\n  letter-spacing:.18em;text-transform:uppercase;\n  text-decoration:none;cursor:pointer;\n  border-radius:0;transition:background .25s,color .25s,border-color .25s;\n  white-space:nowrap;\n}\n.sub-btn-gold{background:#b8952a;color:#fff!important;border:2px solid #b8952a}\n.sub-btn-gold:hover{background:#8a6f1c;border-color:#8a6f1c;color:#fff!important}\n.sub-btn-outline{background:transparent;color:#b8952a!important;border:2px solid #b8952a}\n.sub-btn-outline:hover{background:#b8952a;color:#fff!important}\n.sub-btn-cta{background:#b8952a;color:#fff!important;border:2px solid #b8952a;margin-top:1.5rem}\n.sub-btn-cta:hover{background:#8a6f1c;border-color:#8a6f1c;color:#fff!important}\n\n@media(max-width:767px){\n  .page-hero{padding:130px 0 80px}\n}\n\n\/* --- Divi5 native conversion additions --- *\/\n.page-hero { background-image: url('https:\/\/images.unsplash.com\/photo-1506905925346-21bda4d32df4?w=1920&q=80'); background-position: center center; background-size: cover; }\n<\/style><\/div><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_section_1 et_pb_section et_section_regular et_block_section page-hero\">\n<div class=\"et_pb_row_1 et_pb_row et_block_row\">\n<div class=\"et_pb_column_1 et_pb_column et_pb_column_4_4 et-last-child et_block_column et_pb_css_mix_blend_mode_passthrough\">\n<div class=\"et_pb_text_0 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module\"><div class=\"et_pb_text_inner\"><p><span class=\"page-eyebrow\">Essen im Maggiatal<\/span><\/p>\n<h1 class=\"page-title\">Kontakt &amp; Reservierung<\/h1>\n<p class=\"page-subtitle\"><strong>Ristorante Maggia<\/strong> &mdash; 13 km von Locarno entfernt, im Herzen des <strong>Maggiatals<\/strong><\/p>\n<\/div><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_section_2 et_pb_section et_section_regular et_block_section\">\n<div class=\"et_pb_row_2 et_pb_row et_block_row\">\n<div class=\"et_pb_column_2 et_pb_column et_pb_column_1_2 et_block_column et_pb_css_mix_blend_mode_passthrough\">\n<div class=\"et_pb_contact_form_0 et_pb_contact_form_container clearfix et_pb_module et_flex_module\" data-form_unique_num=\"0\" data-form_unique_id=\"7067d836e5cc6b8d0df5f1ee01accc26\" id=\"prenotazione\"><h1 class=\"et_pb_contact_main_title\">Tisch reservieren\n<\/h1><div class=\"et-pb-contact-message\"><\/div><div class=\"et_pb_contact\"><form class=\"et_pb_contact_form et_flex_module\" method=\"post\" action=\"https:\/\/ristoranteponcinimaggia.ch\/de\/wp-json\/wp\/v2\/pages\/299\">\n<div class=\"et_pb_contact_field_0 et_pb_contact_field et_pb_module et_flex_module et_flex_column_12_24 et_flex_column_12_24_tablet et_flex_column_12_24_phone\" data-id=\"nome\" data-type=\"input\"><label class=\"et_pb_contact_form_label\" for=\"et_pb_contact_0_nome_0\">Name * <\/label><input type=\"text\" name=\"et_pb_contact_0_nome_0\" id=\"et_pb_contact_0_nome_0\" class=\"input\" data-required_mark=\"required\" data-field_type=\"input\" data-original_id=\"nome\" placeholder=\"Name * \" title=\"\" value=\"\" \/><\/div>\n\n<div class=\"et_pb_contact_field_1 et_pb_contact_field et_pb_module et_flex_module et_flex_column_12_24 et_flex_column_12_24_tablet et_flex_column_12_24_phone\" data-id=\"telefono\" data-type=\"input\"><label class=\"et_pb_contact_form_label\" for=\"et_pb_contact_0_telefono_1\">Telefon *<\/label><input type=\"text\" name=\"et_pb_contact_0_telefono_1\" id=\"et_pb_contact_0_telefono_1\" class=\"input\" data-required_mark=\"required\" data-field_type=\"input\" data-original_id=\"telefono\" placeholder=\"Telefon *\" title=\"\" value=\"\" \/><\/div>\n\n<div class=\"et_pb_contact_field_2 et_pb_contact_field et_pb_module et_flex_module et_flex_column_12_24 et_flex_column_12_24_tablet et_flex_column_12_24_phone\" data-id=\"data\" data-type=\"input\"><label class=\"et_pb_contact_form_label\" for=\"et_pb_contact_0_data_2\">Bevorzugtes Datum *<\/label><input type=\"text\" name=\"et_pb_contact_0_data_2\" id=\"et_pb_contact_0_data_2\" class=\"input\" data-required_mark=\"required\" data-field_type=\"input\" data-original_id=\"data\" placeholder=\"Bevorzugtes Datum *\" title=\"\" value=\"\" \/><\/div>\n\n<div class=\"et_pb_contact_field_3 et_pb_contact_field et_pb_module et_flex_module et_flex_column_12_24 et_flex_column_12_24_tablet et_flex_column_12_24_phone\" data-id=\"orario\" data-type=\"input\"><label class=\"et_pb_contact_form_label\" for=\"et_pb_contact_0_orario_3\">Uhrzeit (z. B. 12:30) *<\/label><input type=\"text\" name=\"et_pb_contact_0_orario_3\" id=\"et_pb_contact_0_orario_3\" class=\"input\" data-required_mark=\"not_required\" data-field_type=\"input\" data-original_id=\"orario\" placeholder=\"Uhrzeit (z. B. 12:30) *\" title=\"\" value=\"\" \/><\/div>\n\n<div class=\"et_pb_contact_field_4 et_pb_contact_field et_pb_module et_flex_module et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\" data-id=\"persone\" data-type=\"input\"><label class=\"et_pb_contact_form_label\" for=\"et_pb_contact_0_persone_4\">Anzahl Personen *<\/label><input type=\"text\" name=\"et_pb_contact_0_persone_4\" id=\"et_pb_contact_0_persone_4\" class=\"input\" data-required_mark=\"required\" data-field_type=\"input\" data-original_id=\"persone\" placeholder=\"Anzahl Personen *\" title=\"\" value=\"\" \/><\/div>\n\n<div class=\"et_pb_contact_field_5 et_pb_contact_field et_pb_module et_flex_module et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\" data-id=\"messaggio\" data-type=\"text\"><label class=\"et_pb_contact_form_label\" for=\"et_pb_contact_0_messaggio_5\">Anmerkungen (Allergien, besondere Anl\u00e4sse...)<\/label><textarea name=\"et_pb_contact_0_messaggio_5\" id=\"et_pb_contact_0_messaggio_5\" class=\"et_pb_contact_message input\" data-required_mark=\"not_required\" data-field_type=\"text\" data-original_id=\"messaggio\" placeholder=\"Anmerkungen (Allergien, besondere Anl\u00e4sse...)\"><\/textarea><\/div>\n<input type=\"hidden\" name=\"et_pb_contactform_submit_7067d836e5cc6b8d0df5f1ee01accc26\" value=\"et_contact_proccess\" \/><div class=\"et_contact_bottom_container\"><div class=\"et_pb_contact_right et_pb_contact_field\"><p class=\"clearfix\"><label><span class=\"et_pb_contact_captcha_question\">8 + 11<\/span> = <input type=\"text\" size=\"2\" class=\"input et_pb_contact_captcha\" data-first_digit=\"8\" data-second_digit=\"11\" data-required_mark=\"required\" name=\"et_pb_contact_captcha_7067d836e5cc6b8d0df5f1ee01accc26\" autocomplete=\"off\" \/><\/label><\/p><\/div><div class=\"et_pb_button_wrapper\"><button type=\"submit\" name=\"et_builder_submit_button\" class=\"et_pb_button et_pb_contact_submit\">Invia Prenotazione<\/button><\/div><\/div><input type=\"hidden\" id=\"_wpnonce-et-pb-contact-form-submitted-7067d836e5cc6b8d0df5f1ee01accc26\" name=\"_wpnonce-et-pb-contact-form-submitted-7067d836e5cc6b8d0df5f1ee01accc26\" value=\"c1ab7b7368\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/de\/wp-json\/wp\/v2\/pages\/299\" \/><\/form><\/div><\/div>\n<\/div>\n\n<div class=\"et_pb_column_3 et_pb_column et_pb_column_1_2 et-last-child et_block_column et_pb_css_mix_blend_mode_passthrough\">\n<div class=\"et_pb_code_1 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><div>\n  <div class=\"contact-block\" style=\"margin-bottom:1.6rem;\">\n    <h3>Adresse \u2013 <strong>Ristorante Maggia<\/strong><\/h3>\n    <p>Al Stradon 60<br>CH-6673 Maggia \u2013 Schweiz<\/p>\n    <p style=\"font-size:.8rem;color:#888;\">13 km von Locarno entfernt \u2013 27 km von Bosco Gurin<br>Kirche San Maurizio, 0,5 km entfernt<\/p>\n    <p><a href=\"https:\/\/maps.google.com\/?q=Al+Stradon+60+Maggia+Svizzera\" target=\"_blank\" rel=\"noopener\">In Google Maps \u00f6ffnen &rarr;<\/a><\/p>\n  <\/div>\n\n  <div class=\"contact-block\" style=\"margin-bottom:1.6rem;\">\n    <h3>Telefon &amp; E-Mail<\/h3>\n    <p><a href=\"tel:+41917531541\">+41 91 753 15 41<\/a><\/p>\n    <p><a href=\"mailto:info@ristoranteponcinimaggia.ch\">info@ristoranteponcinimaggia.ch<\/a><\/p>\n  <\/div>\n\n  <div class=\"contact-block\" style=\"margin-bottom:1.6rem;\">\n    <h3>\u00d6ffnungszeiten<\/h3>\n    <table class=\"orari-table\">\n      <tr>\n        <td><strong>Montag - Freitag<\/strong><\/td>\n        <td>09:00 - 22:00<\/td>\n      <\/tr>\n      <tr>\n        <td><strong>Samstag<\/strong><\/td>\n        <td>12:00\u201315:00 \/ 18:00\u201323:00<\/td>\n      <\/tr>\n      <tr>\n        <td><strong>Sonntag<\/strong><\/td>\n        <td>12:00\u201315:00 \/ 18:00 - 21:00<\/td>\n      <\/tr>\n    <\/table>\n  <\/div>\n\n  <div class=\"contact-block\">\n    <h3>Anfahrt<\/h3>\n    <p>Zentral gelegen in <strong>Maggia<\/strong>, <strong>Maggiatal<\/strong>.<br>\n    Nur 13 km von Locarno entfernt, ideal f\u00fcr alle, die ein <strong>Restaurant in der N\u00e4he von Locarno<\/strong> suchen.<br>\n    Parkplatz vor Ort verf\u00fcgbar.<\/p>\n  <\/div>\n<\/div><\/div><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_section_3 et_pb_section et_section_regular et_block_section\">\n<div class=\"et_pb_row_3 et_pb_row et_block_row\">\n<div class=\"et_pb_column_4 et_pb_column et_pb_column_4_4 et-last-child et_block_column et_pb_css_mix_blend_mode_passthrough\">\n<div class=\"et_pb_code_2 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><iframe src=\"https:\/\/www.google.com\/maps\/embed?pb=!1m18!1m12!1m3!1d2759.2250606839225!2d8.705242411896656!3d46.24575347097703!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x4785b96b93f4f209%3A0x86a4e3700aa07c27!2sLocanda%20Poncini%20Hotel%20Ristorante!5e0!3m2!1sit!2sit!4v1784624401357!5m2!1sit!2sit\" width=\"100%\" height=\"450\" style=\"border:0;\" allowfullscreen=\"\" loading=\"lazy\" referrerpolicy=\"strict-origin-when-cross-origin\"><\/iframe><\/div><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_section_4 et_pb_section et_section_regular et_block_section\">\n<div class=\"et_pb_row_4 et_pb_row et_block_row\">\n<div class=\"et_pb_column_5 et_pb_column et_pb_column_4_4 et-last-child et_block_column et_pb_css_mix_blend_mode_passthrough\">\n<div class=\"et_pb_code_3 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><script>'use strict';\n\n\/* ============================================================\n   HEADER SCROLL EFFECT\n   ============================================================ *\/\nconst header = document.getElementById('header');\nwindow.addEventListener('scroll', () => {\n  header.classList.toggle('scrolled', window.scrollY > 60);\n}, { passive: true });\n\n\/* ============================================================\n   MOBILE MENU\n   ============================================================ *\/\nconst hamburger = document.getElementById('hamburger');\nconst navMenu   = document.getElementById('nav-menu');\n\nhamburger.addEventListener('click', () => {\n  const isOpen = navMenu.classList.toggle('open');\n  hamburger.classList.toggle('open', isOpen);\n  hamburger.setAttribute('aria-expanded', isOpen);\n  document.body.style.overflow = isOpen ? 'hidden' : '';\n});\n\nnavMenu.querySelectorAll('a').forEach(link => {\n  link.addEventListener('click', () => {\n    navMenu.classList.remove('open');\n    hamburger.classList.remove('open');\n    hamburger.setAttribute('aria-expanded', 'false');\n    document.body.style.overflow = '';\n  });\n});\n\n\/* ============================================================\n   ACTIVE NAV ON SCROLL (IntersectionObserver)\n   ============================================================ *\/\nconst sections = document.querySelectorAll('section[id], div[id=\"prenotazione\"]');\nconst navLinks  = document.querySelectorAll('.nav__link');\n\nconst sectionObserver = new IntersectionObserver(entries => {\n  entries.forEach(entry => {\n    if (!entry.isIntersecting) return;\n    const id = entry.target.getAttribute('id');\n    navLinks.forEach(link => {\n      const href = link.getAttribute('href');\n      link.classList.toggle('nav__link--active', href === `#${id}`);\n    });\n  });\n}, { rootMargin: '-35% 0px -60% 0px' });\n\nsections.forEach(s => sectionObserver.observe(s));\n\n\/* ============================================================\n   SMOOTH SCROLL (polyfill for older browsers)\n   ============================================================ *\/\ndocument.querySelectorAll('a[href^=\"#\"]').forEach(anchor => {\n  anchor.addEventListener('click', function (e) {\n    const target = document.querySelector(this.getAttribute('href'));\n    if (!target) return;\n    e.preventDefault();\n    const offset = target.getBoundingClientRect().top + window.scrollY - 70;\n    window.scrollTo({ top: offset, behavior: 'smooth' });\n  });\n});\n\n\/* ============================================================\n   GALLERY CAROUSEL\n   ============================================================ *\/\n(function initGallery() {\n  const track     = document.getElementById('gallery-track');\n  const dotsWrap  = document.getElementById('gallery-dots');\n  const prevBtn   = document.getElementById('gallery-prev');\n  const nextBtn   = document.getElementById('gallery-next');\n  if (!track) return;\n\n  const slides   = Array.from(track.querySelectorAll('.gallery__slide'));\n  let current    = 0;\n  let visible    = calcVisible();\n  let autoTimer  = null;\n\n  function calcVisible() {\n    if (window.innerWidth < 600)  return 1;\n    if (window.innerWidth < 900)  return 2;\n    return 3;\n  }\n\n  function maxIdx() { return Math.max(0, slides.length - visible); }\n\n  function setSizes() {\n    slides.forEach(s => { s.style.minWidth = `${100 \/ visible}%`; });\n  }\n\n  function buildDots() {\n    dotsWrap.innerHTML = '';\n    for (let i = 0; i <= maxIdx(); i++) {\n      const dot = document.createElement('button');\n      dot.className = 'gallery__dot';\n      dot.setAttribute('aria-label', `Slide ${i + 1}`);\n      dot.setAttribute('role', 'tab');\n      if (i === current) dot.classList.add('active');\n      dot.addEventListener('click', () => goTo(i));\n      dotsWrap.appendChild(dot);\n    }\n  }\n\n  function syncDots() {\n    dotsWrap.querySelectorAll('.gallery__dot').forEach((d, i) => {\n      d.classList.toggle('active', i === current);\n      d.setAttribute('aria-selected', i === current);\n    });\n  }\n\n  function goTo(idx) {\n    current = Math.max(0, Math.min(idx, maxIdx()));\n    track.style.transform = `translateX(-${current * (100 \/ visible)}%)`;\n    syncDots();\n  }\n\n  function startAuto() {\n    clearInterval(autoTimer);\n    autoTimer = setInterval(() => goTo(current >= maxIdx() ? 0 : current + 1), 4500);\n  }\n\n  function stopAuto() { clearInterval(autoTimer); }\n\n  function init() {\n    visible = calcVisible();\n    current = Math.min(current, maxIdx());\n    setSizes();\n    buildDots();\n    goTo(current);\n  }\n\n  if (prevBtn) prevBtn.addEventListener('click', () => { goTo(current <= 0 ? maxIdx() : current - 1); startAuto(); });\n  if (nextBtn) nextBtn.addEventListener('click', () => { goTo(current >= maxIdx() ? 0 : current + 1); startAuto(); });\n\n  \/\/ Pause on hover\n  const carousel = track.closest('.gallery__carousel');\n  if (carousel) {\n    carousel.addEventListener('mouseenter', stopAuto);\n    carousel.addEventListener('mouseleave', startAuto);\n    \/\/ Touch swipe\n    let touchStartX = 0;\n    carousel.addEventListener('touchstart', e => { touchStartX = e.touches[0].clientX; }, { passive: true });\n    carousel.addEventListener('touchend', e => {\n      const diff = touchStartX - e.changedTouches[0].clientX;\n      if (Math.abs(diff) > 40) {\n        diff > 0\n          ? goTo(current >= maxIdx() ? 0 : current + 1)\n          : goTo(current <= 0 ? maxIdx() : current - 1);\n      }\n    }, { passive: true });\n  }\n\n  window.addEventListener('resize', debounce(() => { init(); startAuto(); }, 200));\n  init();\n  startAuto();\n})();\n\n\/* ============================================================\n   RESERVATION FORM\n   ============================================================ *\/\n(function initForm() {\n  const form     = document.getElementById('res-form');\n  const feedback = document.getElementById('res-feedback');\n  if (!form) return;\n\n  const required = ['nome', 'telefono', 'data', 'orario', 'persone'];\n\n  form.addEventListener('submit', function (e) {\n    e.preventDefault();\n\n    let valid = true;\n    required.forEach(name => {\n      const field = form.querySelector(`[name=\"${name}\"]`);\n      const empty = !field.value.trim();\n      field.classList.toggle('invalid', empty);\n      if (empty) valid = false;\n    });\n\n    if (!valid) {\n      showFeedback('Bitte f\u00fcllen Sie alle Pflichtfelder aus.', 'error');\n      return;\n    }\n\n    \/\/ Simulate send\n    const submitBtn = form.querySelector('[type=\"submit\"]');\n    submitBtn.disabled = true;\n    submitBtn.textContent = 'Wird gesendet\u2026';\n\n    setTimeout(() => {\n      submitBtn.textContent = 'Reservierung gesendet! \u2713';\n      submitBtn.style.background = '#2e7d32';\n      submitBtn.style.borderColor = '#2e7d32';\n      showFeedback('Vielen Dank! Wir kontaktieren Sie in K\u00fcrze zur Best\u00e4tigung.', 'success');\n\n      setTimeout(() => {\n        form.reset();\n        submitBtn.textContent = 'Reservierung best\u00e4tigen';\n        submitBtn.style.background = '';\n        submitBtn.style.borderColor = '';\n        submitBtn.disabled = false;\n        feedback.textContent = '';\n        form.querySelectorAll('.invalid').forEach(f => f.classList.remove('invalid'));\n      }, 4000);\n    }, 1200);\n  });\n\n  \/\/ Clear invalid on input\n  form.querySelectorAll('.res-input').forEach(input => {\n    input.addEventListener('input', () => input.classList.remove('invalid'));\n    input.addEventListener('change', () => input.classList.remove('invalid'));\n  });\n\n  function showFeedback(msg, type) {\n    if (!feedback) return;\n    feedback.textContent = msg;\n    feedback.style.color = type === 'error' ? '#c0392b' : '#2e7d32';\n  }\n})();\n\n\/* ============================================================\n   SCROLL REVEAL\n   ============================================================ *\/\n(function initReveal() {\n  const targets = document.querySelectorAll([\n    '.pillar',\n    '.storia__content',\n    '.storia__img-col',\n    '.menu-card',\n    '.dish-card',\n    '.wine-card',\n    '.testi-card',\n    '.gallery__intro',\n    '.daily-menu',\n    '.reservation',\n    '.contacts',\n    '.timeline__item',\n  ].join(','));\n\n  targets.forEach((el, i) => {\n    el.classList.add('reveal');\n    \/\/ Stagger siblings in the same grid parent\n    const siblings = el.parentElement.querySelectorAll('.reveal');\n    const localIdx = Array.from(siblings).indexOf(el);\n    if (localIdx === 1) el.classList.add('reveal-delay-1');\n    if (localIdx === 2) el.classList.add('reveal-delay-2');\n    if (localIdx === 3) el.classList.add('reveal-delay-3');\n  });\n\n  const revealObs = new IntersectionObserver(entries => {\n    entries.forEach(entry => {\n      if (entry.isIntersecting) {\n        entry.target.classList.add('visible');\n        revealObs.unobserve(entry.target);\n      }\n    });\n  }, { rootMargin: '0px 0px -60px 0px', threshold: 0.1 });\n\n  targets.forEach(el => revealObs.observe(el));\n})();\n\n\/* ============================================================\n   BROKEN IMAGE FALLBACK\n   ============================================================ *\/\ndocument.querySelectorAll('img').forEach(img => {\n  img.addEventListener('error', function () {\n    this.style.background = 'linear-gradient(135deg, #2c1a0e 0%, #1a1208 100%)';\n    this.style.minHeight  = this.closest('[class*=\"img\"]')?.offsetHeight + 'px' || '200px';\n    this.removeAttribute('src');\n  });\n});\n\n\/* ============================================================\n   UTILITY\n   ============================================================ *\/\nfunction debounce(fn, delay) {\n  let t;\n  return (...args) => { clearTimeout(t); t = setTimeout(() => fn(...args), delay); };\n}\n<\/script><\/div><\/div>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-299","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/ristoranteponcinimaggia.ch\/de\/wp-json\/wp\/v2\/pages\/299","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ristoranteponcinimaggia.ch\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ristoranteponcinimaggia.ch\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ristoranteponcinimaggia.ch\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ristoranteponcinimaggia.ch\/de\/wp-json\/wp\/v2\/comments?post=299"}],"version-history":[{"count":2,"href":"https:\/\/ristoranteponcinimaggia.ch\/de\/wp-json\/wp\/v2\/pages\/299\/revisions"}],"predecessor-version":[{"id":313,"href":"https:\/\/ristoranteponcinimaggia.ch\/de\/wp-json\/wp\/v2\/pages\/299\/revisions\/313"}],"wp:attachment":[{"href":"https:\/\/ristoranteponcinimaggia.ch\/de\/wp-json\/wp\/v2\/media?parent=299"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}