/* DOSA Menu · shared visual DNA
 * Used by: /menu (shortcode [dosa_menu]) and /menu-domenicale (CPT menu_domenicale).
 * Canonical reference: decisions/menu-domenicale-reference.html
 */

.dosa-menu,
.dosa-menu *,
.dosa-menu *::before,
.dosa-menu *::after { box-sizing: border-box; }

.dosa-menu {
  --dosa-red: #a8464a;
  --dosa-red-dark: #8e383c;
  --dosa-ink: #1f1a1a;
  --dosa-ink-soft: #4a3f3f;
  --dosa-paper: #ffffff;
  --dosa-line: rgba(168, 70, 74, 0.18);
  --dosa-line-soft: rgba(31, 26, 26, 0.08);

  font-family: 'Oswald', sans-serif;
  font-weight: 300;
  color: var(--dosa-ink);
  background-color: var(--dosa-paper);
  background-image:
    linear-gradient(rgba(255,255,255,0.93), rgba(255,255,255,0.93)),
    url('https://dosaristorante.it/wp-content/uploads/2026/04/sfondo-dosa-xxl-scaled.jpg');
  background-size: cover, 520px;
  background-position: center, center;
  background-repeat: no-repeat, repeat;
  background-attachment: scroll, fixed;
  min-height: 100vh;
  padding: 28px 20px 120px;
  position: relative;
  overflow: hidden;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.dosa-menu__inner { max-width: 760px; margin: 0 auto; position: relative; z-index: 2; }

/* Header */
.dosa-menu__header { text-align: center; margin-bottom: 28px; animation: dosaFadeDown 0.7s ease both; }
.dosa-menu__logo { width: 128px; max-width: 52vw; height: auto; display: inline-block; }
.dosa-menu__eyebrow {
  font-weight: 400; font-size: 10px; letter-spacing: 0.32em; text-transform: uppercase;
  color: var(--dosa-red); opacity: 0.8; margin-top: 12px;
}
.dosa-menu__intro {
  max-width: 560px; margin: 20px auto 0; font-size: 14px; line-height: 1.65;
  letter-spacing: 0.03em; color: var(--dosa-ink-soft); text-align: center;
}
.dosa-menu__intro__signature {
  display: block; margin-top: 10px; font-style: italic; font-size: 12px;
  letter-spacing: 0.18em; text-transform: uppercase; color: var(--dosa-red); opacity: 0.85;
}

/* Sticky pills nav (menu principale) */
.dosa-pills {
  position: sticky; top: 0; z-index: 20;
  display: flex; flex-wrap: nowrap; gap: 6px; overflow-x: auto;
  padding: 10px 4px; margin: 0 -20px 28px;
  padding-left: 20px; padding-right: 20px;
  background: rgba(255,255,255,0.92);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--dosa-line);
  scrollbar-width: none;
}
.dosa-pills::-webkit-scrollbar { display: none; }
.dosa-pills__btn {
  flex-shrink: 0; appearance: none; background: transparent; border: 1px solid var(--dosa-line);
  color: var(--dosa-red); font-family: 'Oswald', sans-serif; font-weight: 500;
  font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase;
  padding: 9px 16px; border-radius: 999px; cursor: pointer;
  transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
  text-decoration: none; white-space: nowrap;
  -webkit-tap-highlight-color: transparent;
}
.dosa-pills__btn:hover { background: rgba(168,70,74,0.06); }
.dosa-pills__btn.is-active {
  background: var(--dosa-red); color: #fff; border-color: var(--dosa-red);
  box-shadow: 0 2px 10px rgba(168,70,74,0.25);
}
.dosa-pills__btn:focus-visible { outline: 2px solid var(--dosa-red); outline-offset: 2px; }

/* Toggle Terra/Mare (domenicale) */
.dosa-toggle {
  display: flex; justify-content: center; align-items: stretch;
  margin: 0 auto 40px; max-width: 320px;
  background: rgba(168,70,74,0.05); border: 1px solid var(--dosa-line);
  border-radius: 999px; padding: 4px;
  animation: dosaFadeDown 0.8s 0.08s ease both;
}
.dosa-toggle__btn {
  flex: 1; appearance: none; background: transparent; border: none;
  color: var(--dosa-red); font-family: 'Oswald', sans-serif; font-weight: 500;
  font-size: 13px; letter-spacing: 0.28em; text-transform: uppercase;
  padding: 11px 0; cursor: pointer; border-radius: 999px;
  transition: background-color 0.35s ease, color 0.35s ease;
  -webkit-tap-highlight-color: transparent;
}
.dosa-toggle__btn:hover { background: rgba(168,70,74,0.06); }
.dosa-menu .dosa-toggle__btn.is-active, .dosa-toggle__btn.is-active {
  background: var(--dosa-red); color: #fff;
  box-shadow: 0 2px 10px rgba(168,70,74,0.25);
}
.dosa-toggle__btn:focus-visible { outline: 2px solid var(--dosa-red); outline-offset: 2px; }

.dosa-panel { display: none; }
.dosa-panel.is-active { display: block; animation: dosaFadeIn 0.45s ease; }

/* Categoria top-level (menu principale) */
.dosa-category { scroll-margin-top: 80px; margin-bottom: 48px; }
.dosa-category__title {
  text-align: center; font-family: 'Oswald', sans-serif; font-weight: 600;
  font-size: 26px; letter-spacing: 0.32em; text-transform: uppercase;
  color: var(--dosa-red); margin: 0 0 6px; padding-top: 8px;
}
.dosa-category__rule {
  width: 48px; height: 1px; background: var(--dosa-red); opacity: 0.45;
  margin: 0 auto 28px;
}

/* Sezione (sottocategoria o sezione domenicale) */
.dosa-section { text-align: center; margin-bottom: 32px; }
.dosa-section__title {
  font-family: 'Oswald', sans-serif; font-weight: 500; font-size: 18px;
  letter-spacing: 0.26em; text-transform: uppercase;
  color: var(--dosa-red); margin: 0 0 14px; display: inline-block;
}
.dosa-section__body {
  font-family: 'Oswald', sans-serif; font-weight: 300; font-size: 13.5px;
  line-height: 1.6; letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--dosa-ink); margin: 10px auto 0; max-width: 620px;
}
.dosa-section__body p { margin: 0 0 4px; }
.dosa-section__amp {
  display: block; font-style: italic; font-weight: 300; font-size: 13px;
  opacity: 0.55; text-transform: none; letter-spacing: 0.08em; margin: 2px 0;
}

/* Piatto (menu principale) */
.dosa-dish { padding: 10px 0 12px; border-bottom: 1px dashed var(--dosa-line-soft); }
.dosa-dish:last-child { border-bottom: none; }
.dosa-dish__head {
  display: flex; align-items: baseline; gap: 12px; justify-content: space-between;
  flex-wrap: wrap;
}
.dosa-dish__name {
  font-family: 'Oswald', sans-serif; font-weight: 400; font-size: 15px;
  letter-spacing: 0.08em; text-transform: uppercase; color: var(--dosa-ink);
  flex: 1 1 auto; text-align: left;
}
.dosa-dish__dots {
  flex: 1 1 20px; border-bottom: 1px dotted var(--dosa-line);
  margin-bottom: 4px; min-width: 20px;
}
.dosa-dish__price {
  font-family: 'Oswald', sans-serif; font-weight: 500; font-size: 15px;
  letter-spacing: 0.04em; color: var(--dosa-red); white-space: nowrap;
}
.dosa-dish__price__unit {
  font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--dosa-ink-soft); margin-left: 4px; opacity: 0.75;
}
.dosa-dish__desc {
  font-size: 12.5px; font-weight: 300; letter-spacing: 0.04em;
  color: var(--dosa-ink-soft); margin: 4px 0 0; line-height: 1.55;
  text-transform: none; text-align: left;
}
.dosa-dish__note {
  font-size: 11px; font-style: italic; color: var(--dosa-ink-soft);
  opacity: 0.75; margin-top: 4px; letter-spacing: 0.06em; text-align: left;
}
.dosa-dish__allergens {
  display: inline-flex; flex-wrap: wrap; gap: 4px; margin-top: 6px;
}
/* Allergeni inline dopo il nome piatto (display:inline per flow con testo) */
.dosa-dish__name .dosa-dish__allergens {
  display: inline; margin-left: 6px; white-space: nowrap;
}
.dosa-dish__name .dosa-dish__allergens .dosa-allergen + .dosa-allergen { margin-left: 3px; }
.dosa-allergen {
  position: relative;
  display: inline-block; min-width: 22px; text-align: center;
  padding: 1px 5px; border: 1px solid var(--dosa-line);
  border-radius: 3px; font-size: 9.5px; letter-spacing: 0.05em;
  font-weight: 400; color: var(--dosa-red); background: rgba(168,70,74,0.05);
  cursor: help; text-transform: none; line-height: 1.4;
  vertical-align: middle;
}
/* Tooltip CSS (hover + focus/tap) */
.dosa-allergen::after {
  content: attr(data-tip);
  position: absolute;
  bottom: calc(100% + 6px); left: 50%;
  transform: translateX(-50%) translateY(4px);
  background: var(--dosa-ink); color: #fff;
  font-family: 'Oswald', sans-serif; font-size: 11px;
  font-weight: 300; letter-spacing: 0.04em; text-transform: none;
  padding: 5px 9px; border-radius: 4px;
  white-space: nowrap;
  opacity: 0; pointer-events: none;
  transition: opacity 0.15s ease, transform 0.15s ease;
  z-index: 10;
}
.dosa-allergen:hover::after,
.dosa-allergen:focus::after,
.dosa-allergen:focus-visible::after {
  opacity: 1; transform: translateX(-50%) translateY(0);
}
.dosa-dish__adds { margin-top: 8px; padding-left: 14px; border-left: 2px solid var(--dosa-line); }
.dosa-dish__add {
  display: flex; justify-content: space-between; align-items: baseline; gap: 10px;
  font-size: 12px; color: var(--dosa-ink-soft); letter-spacing: 0.05em;
  padding: 3px 0;
}
.dosa-dish__add__name::before { content: "con aggiunta di "; color: inherit; font-weight: 300; font-style: normal; }
.dosa-dish__add__price { color: var(--dosa-red); font-weight: 500; white-space: nowrap; }

/* Prezzo degustazione (domenicale) */
.dosa-price {
  text-align: center; margin: 40px auto 0; padding: 22px 16px;
  border-top: 1px solid var(--dosa-line); border-bottom: 1px solid var(--dosa-line);
  max-width: 460px;
}
.dosa-price__label {
  font-weight: 400; font-size: 11px; letter-spacing: 0.3em; text-transform: uppercase;
  color: var(--dosa-ink-soft); margin-bottom: 6px;
}
.dosa-price__amount {
  font-weight: 600; font-size: 30px; letter-spacing: 0.08em;
  color: var(--dosa-red); line-height: 1.1;
}
.dosa-price__note {
  font-size: 10.5px; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--dosa-ink-soft); opacity: 0.75; margin-top: 6px; font-style: italic;
}

/* Legenda allergeni (accordion) */
.dosa-legend { margin: 48px auto 0; max-width: 620px; border-top: 1px solid var(--dosa-line-soft); }
.dosa-legend__toggle {
  width: 100%; text-align: center; background: transparent; border: none;
  padding: 16px 0; font-family: 'Oswald', sans-serif; font-weight: 500;
  font-size: 11px; letter-spacing: 0.3em; text-transform: uppercase;
  color: var(--dosa-red); cursor: pointer;
}
.dosa-legend__toggle::after {
  content: " ▾"; display: inline-block; transition: transform 0.3s ease;
}
.dosa-legend[open] .dosa-legend__toggle::after { transform: rotate(180deg); }
.dosa-legend__list {
  display: grid; grid-template-columns: 1fr; gap: 6px 16px;
  padding: 8px 4px 24px; font-size: 12px; letter-spacing: 0.04em;
  color: var(--dosa-ink-soft); text-align: left;
}
.dosa-legend__list li { list-style: none; padding: 3px 0; }
.dosa-legend__list b { color: var(--dosa-red); font-weight: 500; margin-right: 6px; }

/* Note in fondo + CTA sticky */
.dosa-notes {
  text-align: center; margin: 28px auto 0; max-width: 560px;
  font-size: 12px; letter-spacing: 0.06em; color: var(--dosa-ink-soft);
  line-height: 1.7;
}
.dosa-notes strong { color: var(--dosa-red); font-weight: 500; }

.dosa-cta-sticky {
  position: fixed; bottom: 16px; left: 50%; transform: translateX(-50%);
  z-index: 50; background: var(--dosa-red); color: #fff;
  font-family: 'Oswald', sans-serif; font-weight: 500; font-size: 13px;
  letter-spacing: 0.22em; text-transform: uppercase;
  padding: 14px 26px; border-radius: 999px; text-decoration: none;
  box-shadow: 0 8px 24px rgba(168,70,74,0.35);
  transition: background-color 0.25s ease, transform 0.25s ease;
}
.dosa-cta-sticky:hover { background: var(--dosa-red-dark); transform: translateX(-50%) translateY(-2px); }

/* Footer */
.dosa-footer {
  text-align: center; margin-top: 48px; padding-top: 28px;
  border-top: 1px solid var(--dosa-line-soft);
  font-family: 'Oswald', sans-serif; font-weight: 300; font-size: 12px;
  letter-spacing: 0.1em; text-transform: uppercase; line-height: 1.8;
  color: var(--dosa-ink);
}
.dosa-footer__label {
  display: block; font-size: 10px; letter-spacing: 0.3em;
  color: var(--dosa-red); margin-bottom: 4px; opacity: 0.9;
}
.dosa-footer__block { margin-bottom: 20px; }
.dosa-footer__block:last-child { margin-bottom: 0; }
.dosa-footer a {
  color: var(--dosa-ink); text-decoration: none;
  border-bottom: 1px solid var(--dosa-line); padding-bottom: 1px;
  transition: color 0.25s ease, border-color 0.25s ease;
}
.dosa-footer a:hover, .dosa-footer a:focus {
  color: var(--dosa-red); border-bottom-color: var(--dosa-red);
}
.dosa-footer__sep { opacity: 0.35; margin: 0 6px; }

/* Animazioni */
@keyframes dosaFadeDown { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } }
@keyframes dosaFadeIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) {
  .dosa-menu *, .dosa-menu *::before, .dosa-menu *::after {
    animation: none !important; transition: none !important;
  }
}

/* Tablet */
@media (min-width: 768px) {
  .dosa-menu { padding: 48px 40px 120px; background-size: cover, 640px; }
  .dosa-menu__header { margin-bottom: 36px; }
  .dosa-menu__logo { width: 168px; max-width: none; }
  .dosa-menu__eyebrow { font-size: 11px; margin-top: 14px; }
  .dosa-menu__intro { font-size: 15px; margin-top: 24px; }
  .dosa-pills { padding: 14px 20px; margin: 0 -40px 36px; gap: 8px; }
  .dosa-pills__btn { font-size: 13px; padding: 10px 20px; }
  .dosa-toggle { max-width: 360px; margin-bottom: 52px; }
  .dosa-toggle__btn { font-size: 14px; padding: 12px 0; }
  .dosa-category { margin-bottom: 60px; scroll-margin-top: 100px; }
  .dosa-category__title { font-size: 30px; letter-spacing: 0.36em; }
  .dosa-category__rule { width: 64px; margin-bottom: 36px; }
  .dosa-section { margin-bottom: 42px; }
  .dosa-section__title { font-size: 21px; }
  .dosa-section__body { font-size: 15px; }
  .dosa-dish__name { font-size: 16px; }
  .dosa-dish__price { font-size: 16px; }
  .dosa-dish__desc { font-size: 13.5px; }
  .dosa-legend__list { grid-template-columns: 1fr 1fr; }
  .dosa-price { margin-top: 52px; padding: 26px 20px; }
  .dosa-price__amount { font-size: 36px; }
  .dosa-footer { margin-top: 64px; padding-top: 36px; font-size: 13px; }
}

/* Desktop */
@media (min-width: 1024px) {
  .dosa-menu { padding: 64px 56px 100px; }
  .dosa-menu__header { margin-bottom: 48px; }
  .dosa-menu__logo { width: 200px; }
  .dosa-menu__eyebrow { font-size: 12px; letter-spacing: 0.36em; margin-top: 18px; }
  .dosa-menu__intro { font-size: 16px; max-width: 620px; }
  .dosa-pills { padding: 16px 20px; gap: 10px; }
  .dosa-pills__btn { font-size: 14px; padding: 11px 22px; }
  .dosa-toggle { max-width: 400px; margin-bottom: 64px; }
  .dosa-toggle__btn { font-size: 15px; padding: 14px 0; }
  .dosa-category { margin-bottom: 72px; }
  .dosa-category__title { font-size: 34px; }
  .dosa-section { margin-bottom: 52px; }
  .dosa-section__title { font-size: 24px; letter-spacing: 0.3em; }
  .dosa-section__body { font-size: 16px; letter-spacing: 0.07em; }
  .dosa-price { margin-top: 64px; padding: 30px 24px; max-width: 520px; }
  .dosa-price__amount { font-size: 42px; }
  .dosa-footer { margin-top: 80px; padding-top: 44px; font-size: 13px; }
  /* Su desktop la CTA sticky diventa banner inline, il CSS della CTA viene sovrascritto inline dal template */
}

/* ------------------------------------------------------------
   Override tema — aumenta specificità per battere `a:link`
------------------------------------------------------------ */
.dosa-menu .dosa-pills__btn,
.dosa-menu .dosa-pills__btn:link,
.dosa-menu .dosa-pills__btn:visited { color: var(--dosa-red); }
.dosa-menu .dosa-pills__btn.is-active,
.dosa-menu .dosa-pills__btn.is-active:link,
.dosa-menu .dosa-pills__btn.is-active:visited { color: #fff; }
.dosa-menu .dosa-pills__btn:hover { color: var(--dosa-red); background: rgba(168,70,74,0.08); }

.dosa-menu .dosa-footer a,
.dosa-menu .dosa-footer a:link,
.dosa-menu .dosa-footer a:visited { color: var(--dosa-ink); }
.dosa-menu .dosa-footer a:hover,
.dosa-menu .dosa-footer a:focus { color: var(--dosa-red); }

.dosa-menu .dosa-cta-sticky,
.dosa-menu .dosa-cta-sticky:link,
.dosa-menu .dosa-cta-sticky:visited { color: #fff; }
.dosa-menu .dosa-cta-sticky:hover { color: #fff; }

/* ============================================================
   FIX sessione 5 — post-review browser
   - Rimuove overflow:hidden che rompe position:sticky delle pills
   - Ricostruisce layout piatto (nome + dots + prezzo su stessa riga)
   - Riallinea contenuto dishes a sinistra (padre è centered)
============================================================ */

.dosa-menu { overflow: visible; }

/* Contenitore piatti: allineato a sinistra, non uppercase */
.dosa-menu .dosa-section__body--dishes,
.dosa-menu .dosa-category > .dosa-dish,
.dosa-menu .dosa-section .dosa-dish {
  text-align: left;
  text-transform: none;
  letter-spacing: normal;
  max-width: 620px;
  margin-left: auto;
  margin-right: auto;
}

/* Wrapper piatti quando piatti sono figli diretti della category */
.dosa-menu .dosa-category > .dosa-dish {
  display: block;
}

/* Layout nome + prezzo robusto: grid 2 colonne (flex + nowrap) */
.dosa-menu .dosa-dish { padding: 14px 0 12px; }
.dosa-menu .dosa-dish__head {
  display: grid;
  grid-template-columns: 1fr auto;
  column-gap: 14px;
  align-items: baseline;
  flex-wrap: nowrap;
}
.dosa-menu .dosa-dish__name {
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--dosa-ink);
  line-height: 1.35;
  margin: 0;
}
.dosa-menu .dosa-dish__dots { display: none; }  /* troppo fragile con nomi lunghi */
.dosa-menu .dosa-dish__price {
  font-size: 15px;
  font-weight: 600;
  color: var(--dosa-red);
  white-space: nowrap;
  letter-spacing: 0.04em;
}
.dosa-menu .dosa-dish__desc,
.dosa-menu .dosa-dish__note {
  text-align: left;
  margin-top: 4px;
}
.dosa-menu .dosa-dish__name .dosa-dish__allergens {
  display: inline;
  margin-top: 0;
  margin-left: 6px;
  white-space: nowrap;
}
.dosa-menu .dosa-dish__adds {
  margin-top: 8px;
}

/* CTA sticky — migliora stacking su desktop (non deve coprire contenuto) */
@media (min-width: 1024px) {
  .dosa-menu .dosa-cta-sticky {
    left: auto; right: 24px; bottom: 24px; transform: none;
  }
  .dosa-menu .dosa-cta-sticky:hover { transform: translateY(-2px); }
}

/* Sticky offset auto-calculated via JS (--dosa-sticky-offset) */
.dosa-menu .dosa-pills {
  top: var(--dosa-sticky-offset, 90px);
}

/* ============================================================
   Layout refinements (sessione 5)
   - Pillole centrate
   - CTA sticky rimossa (CTA vive solo nell'header del sito)
   - Forza Oswald su ogni elemento dentro .dosa-menu
============================================================ */

.dosa-menu .dosa-pills {
  justify-content: center;
  /* overflow-x: auto resta per mobile se necessario */
}

.dosa-menu .dosa-cta-sticky { display: none !important; }

/* Forza Oswald ovunque dentro .dosa-menu per battere eventuali override tema */
.dosa-menu,
.dosa-menu h1, .dosa-menu h2, .dosa-menu h3, .dosa-menu h4, .dosa-menu h5,
.dosa-menu p, .dosa-menu span, .dosa-menu a, .dosa-menu li, .dosa-menu div,
.dosa-menu button, .dosa-menu summary, .dosa-menu article, .dosa-menu nav,
.dosa-menu section, .dosa-menu header, .dosa-menu footer, .dosa-menu b,
.dosa-menu strong, .dosa-menu em, .dosa-menu i {
  font-family: 'Oswald', sans-serif !important;
}

/* Sticky offset finale — header Kaffen diventa fixed su scroll (height ~90px desktop, ~70px mobile) */
.dosa-menu .dosa-pills { top: 70px; }
@media (min-width: 1024px) { .dosa-menu .dosa-pills { top: 90px; } }

/* ============================================================
   Stile piatti allineato a .dosa-section__body del domenicale
   (Oswald 300, 13.5px, letter-spacing 0.06em, uppercase)
============================================================ */

.dosa-menu .dosa-section__body--dishes {
  text-transform: none;
  letter-spacing: normal;
}

.dosa-menu .dosa-dish__name {
  font-weight: 300;
  font-size: 14.5px;
  line-height: 1.35;
  letter-spacing: 0;
  text-transform: none; /* Title Case controllato gestito in PHP */
  color: var(--dosa-ink);
  /* No sillabazione, wrap naturale */
  max-width: 70ch;
  hyphens: none;
  -webkit-hyphens: none;
  overflow-wrap: break-word;
  display: block;
}

.dosa-menu .dosa-dish__price {
  font-weight: 400;
  font-size: 13.5px;
  line-height: 1.6;
  letter-spacing: 0.08em;
  color: var(--dosa-red);
  text-transform: uppercase;
}

@media (min-width: 768px) {
  .dosa-menu .dosa-dish__name,
  .dosa-menu .dosa-dish__price { font-size: 15px; }
}
@media (min-width: 1024px) {
  .dosa-menu .dosa-dish__name { font-size: 16px; letter-spacing: 0; }
  .dosa-menu .dosa-dish__price { font-size: 16px; letter-spacing: 0.07em; }
}

/* Descrizione e note restano lowercase, più leggere */
.dosa-menu .dosa-dish__desc {
  font-weight: 300;
  font-size: 12.5px;
  line-height: 1.6;
  letter-spacing: 0.04em;
  text-transform: none;
  color: var(--dosa-ink-soft);
}

/* Aggiunte: lowercase/Title Case come da regole (gestito in PHP) */
.dosa-menu .dosa-dish__add {
  font-weight: 300;
  letter-spacing: 0;
  text-transform: none;
  font-size: 13.5px;
}

/* Prefer auto-measured offset when available */
.dosa-menu .dosa-pills { top: var(--dosa-sticky-offset, 70px); }
/* ============================================================
   MENU DOMENICALE — minimal domenicale-only adjustments
   (usa le regole già presenti: .dosa-section, .dosa-toggle, .dosa-price)
============================================================ */
.dosa-menu .dosa-panel[hidden] { display: none !important; }

/* Allergeni inline dopo piatto domenicale (paragrafo) */
.dosa-menu--domenicale .dosa-section__body p {
  display: inline-block;
  margin: 0 0 4px;
}
.dosa-menu--domenicale .dosa-section__body p .dosa-dish__allergens {
  display: inline; margin-left: 6px; white-space: nowrap; text-transform: none;
}

/* Force toggle active shadow (Kaffen theme strips button shadows) */
.dosa-menu .dosa-toggle__btn.is-active,
.dosa-menu--domenicale .dosa-toggle__btn.is-active,
.dosa-toggle__btn.is-active {
  box-shadow: 0 2px 10px rgba(168, 70, 74, 0.25) !important;
  background-color: var(--dosa-red) !important;
  color: #fff !important;
}

/* Legend allergen text — force dark ink (theme forces white) */
.dosa-menu .dosa-legend,
.dosa-menu .dosa-legend__toggle,
.dosa-menu .dosa-legend__list,
.dosa-menu .dosa-legend__list li {
  color: var(--dosa-ink) !important;
}
.dosa-menu .dosa-legend__list b { color: var(--dosa-red) !important; }

/* Pills-toggle (domenicale Mare/Terra) — 2 voci centrate, stile pills */
.dosa-pills--toggle {
  justify-content: center;
  margin-bottom: 48px;
}
.dosa-pills--toggle .dosa-pills__btn { cursor: pointer; }

/* Fix pills overflow mobile — impedisce scroll orizzontale pagina */
@media (max-width: 767px) {
  .dosa-menu .dosa-pills {
    margin-left: 0;
    margin-right: 0;
    padding-left: 12px;
    padding-right: 12px;
    justify-content: flex-start;
    scroll-padding-inline: 12px;
    max-width: 100%;
  }
  .dosa-menu .dosa-pills__btn { font-size: 12px; padding: 9px 14px; letter-spacing: 0.16em; }
  .dosa-menu { overflow-x: clip; }
}

/* ============================================================
   HEADER DOSA v4 — Elementor split nav
============================================================ */

/* Section sticky + padding compatto */
.kf-header { position: sticky !important; top: 0; z-index: 1000; }
.kf-header .elementor-section.dosa-hdr-v4 > .elementor-container {
  padding-top: 10px !important; padding-bottom: 10px !important;
  min-height: 0 !important;
}
.kf-header .elementor-section.dosa-hdr-v4 .elementor-column > .elementor-widget-wrap {
  padding: 0 !important; align-content: center;
}
.kf-header .elementor-section.dosa-hdr-v4 .elementor-widget { margin-bottom: 0 !important; }

/* Nav menu — orizzontale, Oswald, bianco */
.dosa-hdr-nav__list {
  display: flex !important;
  flex-wrap: nowrap;
  gap: 32px;
  list-style: none !important;
  margin: 0 !important; padding: 0 !important;
  align-items: center;
}
.dosa-hdr-nav.dosa-hdr-nav__list, /* fallback se la nav stessa riceve la classe */
.elementor-widget-shortcode .dosa-hdr-nav { line-height: 1; }
.dosa-hdr-nav__list > li { list-style: none !important; margin: 0 !important; padding: 0 !important; }
.dosa-hdr-nav__list > li > a {
  font-family: 'Oswald', sans-serif !important;
  font-weight: 500;
  font-size: 13px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #fff !important;
  text-decoration: none !important;
  padding: 6px 0 !important;
  position: relative;
  white-space: nowrap;
  transition: color 0.2s ease;
}
.dosa-hdr-nav__list > li > a::after {
  content: ; position: absolute; left: 0; right: 0; bottom: 0; height: 1px;
  background: #fff;
  transform: scaleX(0); transform-origin: center;
  transition: transform 0.25s ease;
}
.dosa-hdr-nav__list > li > a:hover::after,
.dosa-hdr-nav__list > li.current-menu-item > a::after { transform: scaleX(1); }
.dosa-hdr-nav__list > li.current-menu-item > a { color: #fff !important; }

/* Colonne: nav sinistra right-align, nav destra left-align */
.kf-header .elementor-section.dosa-hdr-v4 > .elementor-container > .elementor-column:first-child .dosa-hdr-nav__list { justify-content: flex-end; }
.kf-header .elementor-section.dosa-hdr-v4 > .elementor-container > .elementor-column:last-child .dosa-hdr-nav__list { justify-content: flex-start; }

/* Ultima colonna: nav + bottone affiancati */
.kf-header .elementor-section.dosa-hdr-v4 > .elementor-container > .elementor-column:last-child > .elementor-widget-wrap {
  flex-direction: row !important;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: nowrap !important;
}
.kf-header .elementor-section.dosa-hdr-v4 > .elementor-container > .elementor-column:last-child .elementor-widget { width: auto !important; flex: 0 0 auto; }
.kf-header .elementor-section.dosa-hdr-v4 > .elementor-container > .elementor-column:last-child .elementor-widget-shortcode { flex: 1 1 auto; }

/* Logo centrale cap height */
.kf-header .elementor-section.dosa-hdr-v4 .elementor-widget-image img {
  height: 72px !important; width: auto !important; max-width: 100%;
  display: block; margin: 0 auto;
}

/* Bottone Prenota */
.kf-header .elementor-section.dosa-hdr-v4 .elementor-button {
  font-family: 'Oswald', sans-serif !important;
  font-weight: 500 !important;
  font-size: 12px !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  background: #fff !important;
  color: #822829 !important;
  border-radius: 999px !important;
  padding: 10px 20px !important;
  border: 0 !important;
  line-height: 1 !important;
  transition: background-color 0.2s ease, transform 0.2s ease;
  white-space: nowrap;
}
.kf-header .elementor-section.dosa-hdr-v4 .elementor-button:hover {
  background: #f5d9d9 !important; color: #822829 !important; transform: translateY(-1px);
}

/* Mobile ≤767: stack semplice (logo + bottone + nav sotto) */
@media (max-width: 767px) {
  .kf-header .elementor-section.dosa-hdr-v4 > .elementor-container > .elementor-column:last-child > .elementor-widget-wrap {
    flex-direction: column !important;
    gap: 12px;
  }
  .dosa-hdr-nav__list { gap: 16px; flex-wrap: wrap; justify-content: center !important; }
  .kf-header .elementor-section.dosa-hdr-v4 .elementor-widget-image img { height: 56px !important; }
}

/* Header v4 — vertical alignment + padding CTA */
.kf-header .elementor-section.dosa-hdr-v4 > .elementor-container {
  align-items: center !important;
  padding-right: 40px !important;
  padding-left: 40px !important;
}
.kf-header .elementor-section.dosa-hdr-v4 .elementor-column > .elementor-widget-wrap {
  justify-content: center !important;
  align-content: center !important;
  align-items: center !important;
}
.kf-header .elementor-section.dosa-hdr-v4 .dosa-hdr-nav__list { align-items: center; }
.kf-header .elementor-section.dosa-hdr-v4 .elementor-widget-image { display: flex; align-items: center; justify-content: center; }
@media (max-width: 767px) {
  .kf-header .elementor-section.dosa-hdr-v4 > .elementor-container { padding-right: 16px !important; padding-left: 16px !important; }
}

/* Fix: rimuovi padding-top del wrapper Kaffen (non serve più, header ha altezza propria) */
body:not(.dosa-qr-mode) { background: #fff !important; }
body .wrapper { padding-top: 0 !important; }

/* Logo header v4 — boost specificità per battere Elementor CSS generato */
html body .kf-header .elementor-section.dosa-hdr-v4 .elementor-widget-image img,
html body .kf-header .elementor-section.dosa-hdr-v4 .elementor-widget-image .elementor-image img {
  height: 80px !important;
  width: 80px !important;
  max-width: none !important; max-height: none !important;
}
@media (max-width: 767px) {
  html body .kf-header .elementor-section.dosa-hdr-v4 .elementor-widget-image img {
    height: 58px !important;
  }
}

/* Homepage Identità — rimozione slot icona (icons=empty) */
.page-id-17 .kf-choose-list .icon { display: none !important; }
.page-id-17 .kf-choose-list .desc { margin-left: 0 !important; }

/* Homepage hours block — pulizia inline styles arbitrari */
.page-id-17 .elementor-widget-text-editor { margin-top: 32px; }
.page-id-17 .elementor-widget-text-editor p { line-height: 1.75; }

/* Homepage About quote — pull-quote editoriale */
.page-id-17 .kf-about-quote {
  background: transparent !important;
  border-left: 3px solid #a8464a;
  border-radius: 0 !important;
  padding: 24px 0 24px 32px !important;
  color: #fff !important;
  display: flex;
  align-items: flex-start;
  gap: 24px;
}
.page-id-17 .kf-about-quote img {
  width: 120px !important;
  height: 120px !important;
  border-radius: 0 !important;
  object-fit: cover;
  flex-shrink: 0;
}
.page-id-17 .kf-about-quote > div {
  font-style: normal !important;
  font-size: 22px !important;
  line-height: 1.35 !important;
  color: #fff !important;
}
.page-id-17 .kf-about-quote cite {
  display: block;
  margin-top: 16px;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-style: normal;
  color: #aaa;
  font-weight: 500;
}
@media (max-width: 767px) {
  .page-id-17 .kf-about-quote { flex-direction: column; gap: 16px; padding-left: 20px !important; }
  .page-id-17 .kf-about-quote img { width: 96px !important; height: 96px !important; }
  .page-id-17 .kf-about-quote > div { font-size: 19px !important; }
}

/* Quote avatar — force square over Kaffen circular override */
html body .page-id-17 .kf-about-quote > img,
html body .page-id-17 .kf-about-quote img:first-child {
  border-radius: 0 !important;
  width: 120px !important;
  height: 120px !important;
  object-fit: cover !important;
}

/* Homepage — pattern DOSA 25% sulle sezioni bianche (target: outer Elementor section) */
.page-id-17 .elementor-element.elementor-element-377f7f1,
.page-id-17 .elementor-element.elementor-element-0ab166c {
  position: relative;
}
.page-id-17 .elementor-element.elementor-element-377f7f1 > .elementor-background-overlay,
.page-id-17 .elementor-element.elementor-element-0ab166c > .elementor-background-overlay,
.page-id-17 .elementor-element.elementor-element-377f7f1::before,
.page-id-17 .elementor-element.elementor-element-0ab166c::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url("https://dosa.arsnovastudio.it/wp-content/uploads/2022/04/dosa-pattern.png");
  background-repeat: repeat;
  background-size: 25% auto;
  opacity: 0.18;
  pointer-events: none;
  z-index: 0;
}
.page-id-17 .elementor-element.elementor-element-377f7f1 > .elementor-container,
.page-id-17 .elementor-element.elementor-element-0ab166c > .elementor-container {
  position: relative;
  z-index: 1;
}

/* Homepage About — boost body text contrast */
.page-id-17 .kf-about-us .description,
.page-id-17 .kf-about-us .description p {
  color: #e5e5e5 !important;
}

/* Homepage orari — phone primary / WhatsApp secondary */
.page-id-17 .dosa-phone-primary {
  margin-top: 20px !important;
  font-size: 24px;
  font-weight: 600;
  letter-spacing: 0.01em;
}
.page-id-17 .dosa-phone-primary a {
  color: #fff;
  text-decoration: none;
}
.page-id-17 .dosa-whatsapp-secondary {
  margin-top: 8px !important;
  font-size: 13px;
  color: #999;
}
.page-id-17 .dosa-whatsapp-secondary a {
  color: #999;
  text-decoration: none;
  border-bottom: 1px solid #555;
}
.page-id-17 .dosa-whatsapp-secondary a:hover {
  color: #e5e5e5;
  border-bottom-color: #999;
}

/* Footer orari — giorni in bianco (override dorato Kaffen) */
.kf-f-hours ul li { color: #fff !important; }

/* Homepage — Info block (orari + contatti) accanto alla mappa */
.page-id-17 .dosa-info-block {
  color: #e5e5e5;
  font-family: "Roboto", sans-serif;
  max-width: 320px;
}
.page-id-17 .dosa-info-label {
  margin: 0 0 16px;
  font-family: "Oswald", sans-serif;
  font-weight: 400;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #b99272;
}
.page-id-17 .dosa-hours-list {
  margin: 0;
  padding: 0;
}
.page-id-17 .dosa-hours-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 16px;
  padding: 10px 0;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.page-id-17 .dosa-hours-row:last-child { border-bottom: none; }
.page-id-17 .dosa-hours-row dt {
  font-family: "Oswald", sans-serif;
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 0.04em;
  color: #fff;
  text-transform: uppercase;
  margin: 0;
  flex-shrink: 0;
}
.page-id-17 .dosa-hours-row dd {
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
  color: #e5e5e5;
  text-align: right;
}
.page-id-17 .dosa-hours-note {
  margin: 16px 0 0;
  font-size: 12px;
  font-style: italic;
  color: #888;
}
.page-id-17 .dosa-info-divider {
  height: 1px;
  background: rgba(255,255,255,0.12);
  margin: 32px 0;
}
.page-id-17 .dosa-info-block .dosa-phone-primary {
  margin: 0 !important;
  font-family: "Oswald", sans-serif;
  font-size: 22px;
  font-weight: 500;
  letter-spacing: 0.03em;
}
.page-id-17 .dosa-info-block .dosa-phone-primary a {
  color: #fff;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color 0.2s ease;
}
.page-id-17 .dosa-info-block .dosa-phone-primary a:hover {
  border-bottom-color: #b99272;
}
.page-id-17 .dosa-info-block .dosa-whatsapp-secondary {
  margin: 10px 0 0 !important;
  font-size: 13px;
  color: #999;
}
.page-id-17 .dosa-info-block .dosa-whatsapp-secondary a {
  color: #999;
  text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,0.2);
  transition: color 0.2s ease, border-color 0.2s ease;
}
.page-id-17 .dosa-info-block .dosa-whatsapp-secondary a:hover {
  color: #e5e5e5;
  border-bottom-color: #999;
}

/* Mappa iframe — altezza piena nella colonna */
.page-id-17 .elementor-element-3f7f0f5 iframe {
  height: 100%;
  min-height: 520px;
}
.page-id-17 .elementor-element-3f7f0f5 .elementor-column.elementor-col-70 .elementor-widget-wrap,
.page-id-17 .elementor-element-3f7f0f5 .elementor-widget-html {
  height: 100%;
}

/* Stack su mobile */
@media (max-width: 768px) {
  .page-id-17 .dosa-info-block { max-width: 100%; }
  .page-id-17 .elementor-element-3f7f0f5 iframe { min-height: 380px; }
}

/* Footer Contatti — icone bianche (override dorato Kaffen) */
.kf-f-contact ul li i,
.kf-f-contact ul li svg { color: #fff !important; fill: #fff !important; }

/* ============================================================
   DOSA MOBILE — Burger Header (≤767px)
   Sostituisce lo stack verticale precedente.
============================================================ */
@media (max-width: 767px) {
  /* Compatta padding header */
  .kf-header .elementor-section.dosa-hdr-v4 > .elementor-container {
    padding: 8px 16px !important;
    min-height: 0 !important;
  }
  /* Nascondi nav desktop e bottone Prenota originale */
  .kf-header .elementor-section.dosa-hdr-v4 .elementor-widget-shortcode,
  .kf-header .elementor-section.dosa-hdr-v4 .elementor-widget-button { display: none !important; }

  /* Logo: 48px, centrato, occupa colonna intera */
  .kf-header .elementor-section.dosa-hdr-v4 .elementor-widget-image { width: 100% !important; }
  html body .kf-header .elementor-section.dosa-hdr-v4 .elementor-widget-image img,
  html body .kf-header .elementor-section.dosa-hdr-v4 .elementor-widget-image .elementor-image img {
    height: 48px !important; width: 48px !important;
    margin: 0 auto !important;
  }

  /* Le 3 colonne diventano 1 riga sola */
  .kf-header .elementor-section.dosa-hdr-v4 > .elementor-container {
    flex-wrap: nowrap !important;
    align-items: center !important;
    position: relative;
  }
  .kf-header .elementor-section.dosa-hdr-v4 > .elementor-container > .elementor-column {
    width: 33.333% !important; max-width: 33.333% !important;
  }

  /* Annulla la colonna centrale: dovrà essere assoluta per centrare logo */
  .kf-header .elementor-section.dosa-hdr-v4 > .elementor-container > .elementor-column:nth-child(2) {
    position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
    width: auto !important; max-width: none !important;
    pointer-events: none;
  }
  .kf-header .elementor-section.dosa-hdr-v4 > .elementor-container > .elementor-column:nth-child(2) .elementor-widget-image { pointer-events: auto; }

  /* Burger a sinistra (iniettato da JS in colonna 1) */
  .kf-header .elementor-section.dosa-hdr-v4 > .elementor-container > .elementor-column:first-child > .elementor-widget-wrap {
    justify-content: flex-start !important;
    align-items: center !important;
  }

  /* Slot riservato a destra (vuoto, garantisce simmetria) */
  .kf-header .elementor-section.dosa-hdr-v4 > .elementor-container > .elementor-column:last-child > .elementor-widget-wrap {
    justify-content: flex-end !important;
    align-items: center !important;
    min-height: 48px;
  }
}

/* Burger button */
.dosa-burger {
  display: none;
  width: 44px; height: 44px;
  background: transparent; border: 0;
  padding: 0; margin: 0; cursor: pointer;
  position: relative;
  -webkit-tap-highlight-color: transparent;
}
.dosa-burger span {
  position: absolute; left: 10px; right: 10px; height: 2px;
  background: #fff; border-radius: 2px;
  transition: transform 0.25s ease, opacity 0.2s ease, top 0.25s ease;
}
.dosa-burger span:nth-child(1) { top: 14px; }
.dosa-burger span:nth-child(2) { top: 21px; }
.dosa-burger span:nth-child(3) { top: 28px; }
.dosa-burger[aria-expanded="true"] span:nth-child(1) { top: 21px; transform: rotate(45deg); }
.dosa-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.dosa-burger[aria-expanded="true"] span:nth-child(3) { top: 21px; transform: rotate(-45deg); }

@media (max-width: 767px) {
  .dosa-burger { display: block; }
}

/* Drawer */
.dosa-drawer {
  position: fixed; inset: 0;
  background: #822829;
  z-index: 9999;
  display: flex; flex-direction: column;
  padding: 80px 28px 32px;
  transform: translateX(-100%);
  transition: transform 0.3s ease;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.dosa-drawer[aria-hidden="false"] { transform: translateX(0); }
.dosa-drawer__list {
  list-style: none !important;
  margin: 0 0 32px !important;
  padding: 0 !important;
  display: flex; flex-direction: column;
  gap: 4px;
}
.dosa-drawer__list > li { list-style: none !important; margin: 0 !important; padding: 0 !important; }
.dosa-drawer__list > li > a {
  display: block;
  font-family: 'Oswald', sans-serif;
  font-weight: 500;
  font-size: 22px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #fff !important;
  text-decoration: none !important;
  padding: 14px 0;
  border-bottom: 1px solid rgba(255,255,255,0.12);
}
.dosa-drawer__list > li > a:active { opacity: 0.7; }
.dosa-drawer__cta {
  display: inline-flex; align-items: center; justify-content: center;
  margin-top: 8px;
  font-family: 'Oswald', sans-serif;
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  background: #fff;
  color: #822829 !important;
  border-radius: 999px;
  padding: 14px 24px;
  text-decoration: none !important;
  align-self: stretch;
}
.dosa-drawer__contact {
  margin-top: auto;
  padding-top: 32px;
  display: flex; flex-direction: column; gap: 8px;
  font-family: 'Oswald', sans-serif;
  color: rgba(255,255,255,0.85);
  font-size: 14px;
  letter-spacing: 0.08em;
}
.dosa-drawer__contact a { color: #fff !important; text-decoration: none !important; }

/* Body lock quando drawer aperto */
body.dosa-drawer-open { overflow: hidden; }

/* ============================================================
   DOSA MOBILE — Layout & Typography fixes (≤767px)
============================================================ */
@media (max-width: 767px) {
  /* --- Tipografia titoli sezione --- */
  .kf-title { font-size: 26px !important; line-height: 1.18 !important; letter-spacing: 0.005em !important; }
  /* Hero slider title: line-height più stretto */
  .kf-slider .name,
  .kf-slider .name .char { line-height: 1.12 !important; }

  /* --- Pull-quote Samir: stack verticale --- */
  .kf-about-quote {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 20px !important;
  }
  .kf-about-quote > img {
    margin: 0 !important;
    width: 80px !important; height: 80px !important;
    border-radius: 50% !important;
    object-fit: cover !important;
  }
  .kf-about-quote > div {
    margin-left: 0 !important;
    width: 100% !important;
    padding-left: 0 !important;
  }

  /* --- Sezione orari + mappa (3f7f0f5): forza stack verticale --- */
  .elementor-element[data-id="3f7f0f5"] > .elementor-container {
    flex-direction: column !important;
  }
  .elementor-element[data-id="3f7f0f5"] > .elementor-container > .elementor-column {
    width: 100% !important;
    max-width: 100% !important;
  }

  /* Generico: tutte le sezioni 2-col stack su mobile */
  .elementor-section .elementor-container > .elementor-column[class*="elementor-col-"] {
    width: 100% !important;
  }

  /* --- Padding sezioni: riduci verticale --- */
  .elementor-section.elementor-top-section { padding-left: 16px !important; padding-right: 16px !important; }
  .elementor-section.elementor-top-section.elementor-section-boxed > .elementor-container { padding-left: 0 !important; padding-right: 0 !important; }

  /* --- Galleria Kaffen swiper: limita altezza slide --- */
  .elementor-widget-kaffen .swiper-slide .slide-item .image img {
    aspect-ratio: 4 / 3 !important;
    object-fit: cover !important;
    height: auto !important;
    max-height: 340px !important;
  }
}

/* ============================================================
   FOOTER MOBILE — bullets removal & spacing
============================================================ */
@media (max-width: 767px) {
  /* Rimuovi bullets nelle liste del footer (orari) */
  .kf-footer ul, .kf-footer ol {
    list-style: none !important;
    padding-left: 0 !important;
  }
  .kf-footer ul li, .kf-footer ol li {
    list-style: none !important;
    padding-left: 0 !important;
    margin-left: 0 !important;
  }
  .kf-footer ul li::before, .kf-footer ol li::before {
    display: none !important;
  }
  /* Tighten gap tra blocchi footer */
  .kf-footer .elementor-section { padding-top: 24px !important; padding-bottom: 24px !important; }
}

/* Sitewide: rimuovi bullets dalle liste degli orari del footer (anche desktop, sono inutili) */
.kf-footer .elementor-widget-text-editor ul,
.kf-footer .elementor-widget-text-editor ol {
  list-style: none !important;
  padding-left: 0 !important;
}
.kf-footer .elementor-widget-text-editor ul li,
.kf-footer .elementor-widget-text-editor ol li {
  list-style: none !important;
  padding-left: 0 !important;
}

/* Footer Contatti: ripristina padding-left necessario all'icona absolute (.kf-f-contact) */
.kf-footer .kf-f-contact ul,
.kf-footer .kf-f-contact ol { padding-left: 0 !important; }
.kf-footer .kf-f-contact li {
  position: relative !important;
  padding-left: 60px !important;
  margin-left: 0 !important;
  list-style: none !important;
  margin-bottom: 16px !important;
}
.kf-footer .kf-f-contact li::before { display: none !important; }

/* Drawer close button (X) top-right */
.dosa-drawer__close {
  position: absolute;
  top: 18px; right: 18px;
  width: 44px; height: 44px;
  background: transparent; border: 0;
  padding: 0; margin: 0; cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  z-index: 2;
}
.dosa-drawer__close span {
  position: absolute; left: 10px; right: 10px;
  top: 50%;
  height: 2px;
  background: #fff; border-radius: 2px;
}
.dosa-drawer__close span:nth-child(1) { transform: translateY(-50%) rotate(45deg); }
.dosa-drawer__close span:nth-child(2) { transform: translateY(-50%) rotate(-45deg); }

/* ============================================================
   DOSA HERO — Mobile cinematic (≤767px)
============================================================ */
@media (max-width: 767px) {
  /* Section + slider full-bleed alti */
  .elementor-element[data-id="0c4bf94"],
  .elementor-element[data-id="0c4bf94"] .elementor-container,
  .elementor-element[data-id="0c4bf94"] .elementor-column,
  .elementor-element[data-id="0c4bf94"] .swiper-container,
  .elementor-element[data-id="0c4bf94"] .swiper-slide,
  .elementor-element[data-id="0c4bf94"] .kf-started-item {
    min-height: calc(100vh - 64px) !important;
    height: auto !important;
  }
  .elementor-element[data-id="0c4bf94"] .swiper-slide {
    display: flex !important;
    align-items: stretch !important;
  }

  /* Overlay gradiente bottom per leggibilità */
  .elementor-element[data-id="0c4bf94"] .kf-started-item {
    position: relative !important;
  }
  .elementor-element[data-id="0c4bf94"] .kf-started-item::after {
    content: '';
    position: absolute; inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0) 30%, rgba(0,0,0,0.55) 75%, rgba(0,0,0,0.78) 100%);
    pointer-events: none;
    z-index: 1;
  }

  /* Container content: in basso, full-width, padding generoso */
  .elementor-element[data-id="0c4bf94"] .container {
    flex-direction: column !important;
    justify-content: flex-end !important;
    align-items: stretch !important;
    padding: 24px 24px 48px !important;
    width: 100% !important;
    max-width: 100% !important;
    position: relative;
    z-index: 2;
  }
  .elementor-element[data-id="0c4bf94"] .description {
    width: 100% !important;
    max-width: 100% !important;
  }

  /* Eyebrow più discreto */
  .elementor-element[data-id="0c4bf94"] .label {
    font-size: 11px !important;
    letter-spacing: 0.32em !important;
    opacity: 0.85;
    margin-bottom: 18px !important;
  }

  /* Titolo cinematic: tight, alto impatto */
  .elementor-element[data-id="0c4bf94"] .name,
  .elementor-element[data-id="0c4bf94"] .name .char {
    font-size: 38px !important;
    line-height: 1.02 !important;
    letter-spacing: -0.005em !important;
    text-shadow: 0 2px 24px rgba(0,0,0,0.45);
  }

  /* Buttons wrapper */
  .elementor-element[data-id="0c4bf94"] .kf-bts {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 18px !important;
    margin-top: 28px !important;
  }

  /* Prenota un tavolo → CTA primario rosso DOSA, full-width */
  .elementor-element[data-id="0c4bf94"] .kf-btn.dark-btn {
    display: flex !important;
    align-items: center; justify-content: center;
    width: 100% !important;
    background: #a8464a !important;
    color: #fff !important;
    border: 0 !important;
    border-radius: 999px !important;
    padding: 18px 24px !important;
    font-size: 14px !important;
    letter-spacing: 0.22em !important;
    text-transform: uppercase;
    font-weight: 600 !important;
    box-shadow: 0 6px 24px rgba(0,0,0,0.35);
    order: 1;
  }

  /* Guarda il menu → link testuale con freccia, sotto il CTA */
  .elementor-element[data-id="0c4bf94"] .kf-btn:not(.dark-btn) {
    display: inline-flex !important;
    align-self: center !important;
    width: auto !important;
    background: transparent !important;
    color: #fff !important;
    border: 0 !important;
    padding: 4px 0 !important;
    font-size: 13px !important;
    letter-spacing: 0.18em !important;
    text-transform: uppercase;
    font-weight: 500 !important;
    border-bottom: 1px solid rgba(255,255,255,0.7) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    order: 2;
  }
  .elementor-element[data-id="0c4bf94"] .kf-btn:not(.dark-btn)::after {
    content: ' →';
    margin-left: 8px;
  }
  /* Nascondi eventuali icone interne ai pulsanti che romperebbero il layout */
  .elementor-element[data-id="0c4bf94"] .kf-btn .kf-icon,
  .elementor-element[data-id="0c4bf94"] .kf-btn i { display: none !important; }
}

/* Cleanup: rimuovi pseudo-elementi Kaffen sui bottoni hero (ribbon/underline animati) */
@media (max-width: 767px) {
  .elementor-element[data-id="0c4bf94"] .kf-btn::before,
  .elementor-element[data-id="0c4bf94"] .kf-btn.dark-btn::before,
  .elementor-element[data-id="0c4bf94"] .kf-btn.dark-btn::after { display: none !important; }
  /* Riposiziona il ::after del link testuale (era stato annullato sopra) */
  .elementor-element[data-id="0c4bf94"] .kf-btn:not(.dark-btn)::after {
    content: ' →' !important;
    display: inline !important;
    margin-left: 8px;
    background: transparent !important;
    width: auto !important; height: auto !important;
    position: static !important;
  }
  /* Sottolineatura solo sotto il testo (non outline lungo) */
  .elementor-element[data-id="0c4bf94"] .kf-bts {
    align-items: center !important;
  }
  .elementor-element[data-id="0c4bf94"] .kf-btn:not(.dark-btn) {
    align-self: center !important;
    width: auto !important;
    flex: 0 0 auto !important;
    text-decoration: none !important;
  }
}

/* ============================================================
   Pattern DOSA backgrounds — applied via CSS class, not Elementor bg
   ============================================================ */
.elementor-section.dosa-pattern-bordeaux {
  background-color: #822829 !important;
  background-image: url('/wp-content/uploads/2022/04/dosa-pattern-1024x1024.png') !important;
  background-repeat: repeat !important;
  background-size: 320px auto !important;
  background-blend-mode: overlay !important;
}
.elementor-section.dosa-pattern-bordeaux::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(130, 40, 41, 0.82);
  pointer-events: none;
  z-index: 0;
}
.elementor-section.dosa-pattern-bordeaux > .elementor-container {
  position: relative;
  z-index: 1;
}

.elementor-section.dosa-pattern-dark {
  background-color: #1a1212 !important;
  background-image: url('/wp-content/uploads/2022/04/dosa-pattern-1024x1024.png') !important;
  background-repeat: repeat !important;
  background-size: 320px auto !important;
  background-blend-mode: overlay !important;
}
.elementor-section.dosa-pattern-dark::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(26, 18, 18, 0.85);
  pointer-events: none;
  z-index: 0;
}
.elementor-section.dosa-pattern-dark > .elementor-container {
  position: relative;
  z-index: 1;
}
.elementor-section.dosa-pattern-dark *,
.elementor-section.dosa-pattern-bordeaux * {
  color: #fff;
}
.elementor-section.dosa-pattern-dark a:hover,
.elementor-section.dosa-pattern-bordeaux a:hover { color: #FAF6F2; }

/* Hero section Chi Siamo: ridurre il nero → bordeaux DOSA */
body.page-id-1673 .elementor-1673 > .elementor-section:first-of-type {
  background-color: #822829 !important;
}
body.page-id-1673 .elementor-1673 > .elementor-section:first-of-type * {
  color: #fff;
}

/* Chi Siamo: hero image allineata al top */
body.page-id-1673 .kf-started-item .slide {
  background-position: center top !important;
}

/* Chi Siamo: foto più contenuta, testo più ampio (about-us + about-benefits) */
body.page-id-1673 .kf-about-image {
  margin-right: 0 !important;
  text-align: center !important;
}
body.page-id-1673 .kf-about-image img {
  max-width: 100% !important;
  max-height: 520px !important;
  width: auto !important;
  object-fit: cover !important;
}
body.page-id-1673 .section.kf-choose .kf-choose-image img {
  max-height: 560px !important;
  width: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
}


/* Chi Siamo: CTA "Prenota un tavolo" su bordeaux + pattern (no foto piatto) */
body.page-id-1673 .section.dosa-cta-bordeaux .section.kf-cta {
  background-color: #822829 !important;
}
body.page-id-1673 .section.dosa-cta-bordeaux .section.kf-cta:before,
body.page-id-1673 .section.dosa-cta-bordeaux .section.kf-cta:after,
body.page-id-1673 .dosa-cta-bordeaux .kf-cta .image,
body.page-id-1673 .dosa-cta-bordeaux .kf-cta .parallax {
  background-image: url(/wp-content/uploads/2022/04/dosa-pattern-1024x1024.png) !important;
  background-size: 240px auto !important;
  background-repeat: repeat !important;
  background-color: #822829 !important;
  opacity: 0.95 !important;
}
body.page-id-1673 .dosa-cta-bordeaux .kf-cta {
  background-color: #822829 !important;
  background-image: url(/wp-content/uploads/2022/04/dosa-pattern-1024x1024.png) !important;
  background-size: 240px auto !important;
  background-repeat: repeat !important;
}

/* Foto piatto object-position center per evitare crop sbagliato */
body.page-id-1673 .kf-about-image img,
body.page-id-1673 .kf-choose-image img {
  object-position: center !important;
}

/* Chi Siamo: nasconde wrapper quote vuoto del widget kaffen-about-us */
body.page-id-1673 .kf-about-quote {
  display: none !important;
}

/* Chi Siamo: ripristina overlay hero default Kaffen (no bordeaux gradient) */
body.page-id-1673 .kf-started-item .slide:before {
  background: #0e1317 !important;
  opacity: 0.2 !important;
}

/* Header v4: avvicina i menu al logo restringendo la colonna centrale */
@media (min-width: 768px) {
  .kf-header .elementor-section.dosa-hdr-v4 > .elementor-container > .elementor-column:nth-child(1),
  .kf-header .elementor-section.dosa-hdr-v4 > .elementor-container > .elementor-column:nth-child(3) {
    width: 42% !important;
  }
  .kf-header .elementor-section.dosa-hdr-v4 > .elementor-container > .elementor-column:nth-child(2) {
    width: 16% !important;
  }
}

/* === Chi Siamo (page-id-1673) — Info+Mappa: replica delle regole della home === */

/* Homepage — Info block (orari + contatti) accanto alla mappa */
.page-id-1673 .dosa-info-block {
  color: #e5e5e5;
  font-family: "Roboto", sans-serif;
  max-width: 320px;
}
.page-id-1673 .dosa-info-label {
  margin: 0 0 16px;
  font-family: "Oswald", sans-serif;
  font-weight: 400;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #b99272;
}
.page-id-1673 .dosa-hours-list {
  margin: 0;
  padding: 0;
}
.page-id-1673 .dosa-hours-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 16px;
  padding: 10px 0;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.page-id-1673 .dosa-hours-row:last-child { border-bottom: none; }
.page-id-1673 .dosa-hours-row dt {
  font-family: "Oswald", sans-serif;
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 0.04em;
  color: #fff;
  text-transform: uppercase;
  margin: 0;
  flex-shrink: 0;
}
.page-id-1673 .dosa-hours-row dd {
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
  color: #e5e5e5;
  text-align: right;
}
.page-id-1673 .dosa-hours-note {
  margin: 16px 0 0;
  font-size: 12px;
  font-style: italic;
  color: #888;
}
.page-id-1673 .dosa-info-divider {
  height: 1px;
  background: rgba(255,255,255,0.12);
  margin: 32px 0;
}
.page-id-1673 .dosa-info-block .dosa-phone-primary {
  margin: 0 !important;
  font-family: "Oswald", sans-serif;
  font-size: 22px;
  font-weight: 500;
  letter-spacing: 0.03em;
}
.page-id-1673 .dosa-info-block .dosa-phone-primary a {
  color: #fff;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color 0.2s ease;
}
.page-id-1673 .dosa-info-block .dosa-phone-primary a:hover {
  border-bottom-color: #b99272;
}
.page-id-1673 .dosa-info-block .dosa-whatsapp-secondary {
  margin: 10px 0 0 !important;
  font-size: 13px;
  color: #999;
}
.page-id-1673 .dosa-info-block .dosa-whatsapp-secondary a {
  color: #999;
  text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,0.2);
  transition: color 0.2s ease, border-color 0.2s ease;
}
.page-id-1673 .dosa-info-block .dosa-whatsapp-secondary a:hover {
  color: #e5e5e5;
  border-bottom-color: #999;
}

/* Mappa iframe — altezza piena nella colonna */
.page-id-1673 .elementor-element-861018a6 iframe {
  height: 100%;
  min-height: 520px;
}
.page-id-1673 .elementor-element-861018a6 .elementor-column.elementor-col-70 .elementor-widget-wrap,
.page-id-1673 .elementor-element-861018a6 .elementor-widget-html {
  height: 100%;
}

/* Stack su mobile */
@media (max-width: 768px) {
  .page-id-1673 .dosa-info-block { max-width: 100%; }
  .page-id-1673 .elementor-element-861018a6 iframe { min-height: 380px; }
}
