/* Dolce Vita Események – frontend stílus
   Minden osztály .dve- prefixes és scope-olt: nem ír felül semmit globálisan.
   Színek/betűk az Elementor globális változóiból, biztonságos fallbackekkel. */

.dve-wrap{
  --dve-gold: var(--e-global-color-accent, #C2A063);
  --dve-ink: var(--e-global-color-secondary, #011111);
  --dve-text: var(--e-global-color-text, #6E675B);
  --dve-cream: var(--e-global-color-c45b2d0, #FCF9F3);
  --dve-white: var(--e-global-color-39ca42d, #FFFFFF);
  --dve-line: rgba(1,17,17,.12);
  --dve-radius: 12px;
  color: var(--dve-text);
  font-family: "Karla", "Montserrat", sans-serif;
  line-height: 1.6;
}
.dve-wrap *{ box-sizing: border-box; }

.dve-section-label{
  font-family: "Roboto", "Montserrat", sans-serif;
  text-transform: uppercase; letter-spacing: .22em; font-size: .72rem; font-weight: 600;
  color: var(--dve-gold); margin-bottom: 16px;
}

/* Gombok */
.dve-btn{
  display: inline-block; cursor: pointer; border: 1px solid transparent;
  font-family: "Roboto", sans-serif; font-weight: 500; font-size: .92rem;
  padding: .7em 1.4em; border-radius: 999px; text-decoration: none; transition: .2s;
  margin: 4px 6px 4px 0;
}
.dve-btn--primary{ background: var(--dve-gold); color: #1a1a1a; }
.dve-btn--primary:hover{ filter: brightness(1.05); transform: translateY(-1px); }
.dve-btn--primary[disabled]{ opacity: .55; cursor: not-allowed; }
.dve-btn--ghost{ background: transparent; color: var(--dve-ink); border-color: var(--dve-line); }
.dve-btn--ghost:hover{ border-color: var(--dve-gold); color: var(--dve-gold); }

/* Űrlap */
.dve-form{ display: none; margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--dve-line); }
.dve-form.dve-open{ display: block; }
.dve-admin-form{ display: block; background: var(--dve-cream); padding: 24px; border-radius: var(--dve-radius); border: 1px solid var(--dve-line); }
.dve-grid2{ display: grid; grid-template-columns: 1fr 1fr; gap: 14px 18px; }
.dve-grid2 label{ display: flex; flex-direction: column; gap: 6px; font-size: .86rem; font-weight: 600; color: var(--dve-ink); }
.dve-col2{ grid-column: 1 / -1; }
.dve-form input, .dve-form textarea{
  font-family: inherit; font-size: 1rem; padding: .7em .9em; border: 1px solid var(--dve-line);
  border-radius: 8px; background: var(--dve-white); color: var(--dve-ink); font-weight: 400;
}
.dve-form input:focus, .dve-form textarea:focus{ outline: 0; border-color: var(--dve-gold); box-shadow: 0 0 0 3px rgba(194,160,99,.18); }
.dve-fieldset-title{ margin: 18px 0 6px; font-weight: 700; color: var(--dve-ink); }
.dve-check{ display: flex; align-items: flex-start; gap: 10px; margin: 16px 0; font-size: .9rem; font-weight: 400 !important; }
.dve-check a{ color: var(--dve-gold); }
.dve-note{ font-size: .84rem; color: var(--dve-text); margin: 8px 0 14px; }

/* Üzenetek */
.dve-msg{ padding: 14px 18px; border-radius: 10px; margin-bottom: 18px; font-size: .95rem; }
.dve-msg--ok{ background: rgba(90,125,79,.12); color: #3f5a37; border: 1px solid rgba(90,125,79,.3); }
.dve-msg--err{ background: rgba(168,90,61,.1); color: #8a3d24; border: 1px solid rgba(168,90,61,.3); }
.dve-empty{ color: var(--dve-text); }

/* Korábbi események */
.dve-past{ margin-top: 28px; border-top: 1px solid var(--dve-line); padding-top: 14px; }
.dve-past summary{ cursor: pointer; font-family: "Roboto", sans-serif; font-weight: 600; color: var(--dve-ink); padding: 6px 0; }
.dve-list--past{ margin-top: 16px; opacity: .85; }

/* Admin felület */
.dve-admin__h{ font-family: "Roboto Slab", serif; color: var(--dve-ink); margin: 30px 0 14px; }
.dve-table{ width: 100%; border-collapse: collapse; font-size: .92rem; }
.dve-table th, .dve-table td{ text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--dve-line); }
.dve-table th{ color: var(--dve-text); font-weight: 700; }
.dve-actions{ white-space: nowrap; }
.dve-link{ color: var(--dve-gold); text-decoration: none; margin-right: 10px; }
.dve-link--danger{ color: #a85a3d; }
.dve-subrow > td{ background: var(--dve-cream); }
.dve-bookings{ display: grid; gap: 8px; }
.dve-bk{ display: flex; flex-wrap: wrap; gap: 10px; align-items: center; font-size: .86rem; padding: 6px 0; }
.dve-bk__code{ font-weight: 700; color: var(--dve-ink); }
.dve-badge{ font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; padding: 2px 8px; border-radius: 999px; background: rgba(1,17,17,.08); }
.dve-bk--paid .dve-badge{ background: rgba(90,125,79,.18); color: #3f5a37; }
.dve-bk--cancelled{ opacity: .55; }

@media (max-width: 720px){
  .dve-card, .dve-card--compact{ grid-template-columns: 1fr; }
  .dve-grid2{ grid-template-columns: 1fr; }
}

/* ============================================================
   1.1.0 – füles admin + Elementor-biztos gombok
   ============================================================ */

/* Gombok: magas specificitás + !important, hogy az Elementor NE írja felül */
.dve-wrap .dve-btn,
.dve-wrap a.dve-btn,
.dve-wrap button.dve-btn{
  display:inline-block !important;
  background:#1a1a1a !important;
  color:#ffffff !important;
  border:1px solid #1a1a1a !important;
  border-radius:999px !important;
  font-family:"Roboto","Montserrat",sans-serif !important;
  font-weight:600 !important;
  font-size:.92rem !important;
  line-height:1.2 !important;
  padding:.72em 1.5em !important;
  margin:4px 8px 4px 0 !important;
  text-decoration:none !important;
  text-shadow:none !important;
  box-shadow:none !important;
  cursor:pointer !important;
  -webkit-appearance:none !important;
  appearance:none !important;
  transition:background .2s, border-color .2s, color .2s !important;
}
.dve-wrap .dve-btn:hover,
.dve-wrap a.dve-btn:hover,
.dve-wrap button.dve-btn:hover{
  background:#6a4f32 !important;   /* barnás hover */
  border-color:#6a4f32 !important;
  color:#ffffff !important;
}
.dve-wrap .dve-btn--ghost,
.dve-wrap a.dve-btn--ghost,
.dve-wrap button.dve-btn--ghost{
  background:transparent !important;
  color:#1a1a1a !important;
  border-color:#1a1a1a !important;
}
.dve-wrap .dve-btn--ghost:hover,
.dve-wrap a.dve-btn--ghost:hover,
.dve-wrap button.dve-btn--ghost:hover{
  background:transparent !important;
  color:#6a4f32 !important;
  border-color:#6a4f32 !important;
}
.dve-wrap .dve-btn[disabled]{ opacity:.5 !important; cursor:not-allowed !important; }

/* Fülmenü */
.dve-tabs{ display:flex; flex-wrap:wrap; gap:4px; border-bottom:1px solid var(--dve-line); margin-bottom:26px; }
.dve-tab{
  padding:12px 18px; text-decoration:none; color:var(--dve-text);
  font-family:"Roboto","Montserrat",sans-serif; font-weight:600; font-size:.92rem;
  border-bottom:2px solid transparent; transition:.2s;
}
.dve-tab:hover{ color:#1a1a1a; }
.dve-tab.is-active{ color:#1a1a1a; border-bottom-color:var(--dve-gold); }

/* Statisztika kártyák */
.dve-stats{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:14px; margin-bottom:22px; }
.dve-stat{ background:var(--dve-white); border:1px solid var(--dve-line); border-radius:12px; padding:20px 22px; }
.dve-stat__n{ font-family:"Roboto Slab",serif; font-size:1.8rem; color:#1a1a1a; line-height:1; }
.dve-stat__l{ font-size:.78rem; color:var(--dve-text); text-transform:uppercase; letter-spacing:.08em; margin-top:8px; }
.dve-quick{ margin-top:6px; }

.dve-admin__h3{ font-family:"Roboto Slab",serif; color:#1a1a1a; margin:22px 0 12px; font-size:1.15rem; }
.dve-muted{ color:var(--dve-text); font-size:.85em; }
.dve-form-actions{ margin-top:16px; }

/* Állapot badge-ek */
.dve-badge{ font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; padding:3px 10px; border-radius:999px; background:rgba(1,17,17,.08); color:var(--dve-ink); }
.dve-badge--paid{ background:rgba(90,125,79,.18); color:#3f5a37; }
.dve-badge--cancelled{ background:rgba(120,120,120,.15); color:#666; }
.dve-badge--pending{ background:rgba(194,160,99,.2); color:#7a5c1f; }

/* Számlázás kártyák */
.dve-invoices{ display:grid; gap:14px; }
.dve-invoice{ background:var(--dve-white); border:1px solid var(--dve-line); border-radius:12px; padding:18px 20px; }
.dve-invoice__head{ font-size:1rem; color:#1a1a1a; margin-bottom:10px; }
.dve-invoice__data{ display:grid; gap:4px; font-size:.9rem; margin-bottom:12px; }
.dve-invoice__actions{ display:flex; flex-wrap:wrap; gap:8px; }

/* Súgó / shortcode blokkok */
.dve-code{
  display:inline-block; font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  background:#1a1a1a; color:#f5e7c8; padding:.25em .6em; border-radius:6px;
  font-size:.88em; user-select:all;
}
.dve-code--big{ font-size:1rem; padding:.5em 1em; }
.dve-help-box{ margin-top:26px; background:var(--dve-cream); border:1px solid var(--dve-line); border-radius:12px; padding:22px 24px; }
.dve-help-list{ list-style:none; padding:0; margin:0 0 12px; display:grid; gap:10px; }
.dve-help-list li{ font-size:.94rem; }
.dve-help-cards{ display:grid; gap:16px; margin-bottom:10px; }
.dve-help-card{ background:var(--dve-white); border:1px solid var(--dve-line); border-left:3px solid var(--dve-gold); border-radius:12px; padding:20px 24px; }
.dve-help-card__code{ margin-bottom:12px; }
.dve-help-card__title{ font-family:"Roboto Slab",serif; color:#1a1a1a; font-size:1.05rem; margin:0 0 8px; }
.dve-help-card p{ margin:0 0 8px; font-size:.94rem; }
.dve-help-steps{ padding-left:20px; display:grid; gap:10px; font-size:.94rem; }
.dve-faq p{ font-size:.94rem; margin:0 0 14px; }

/* Médiatár választó */
.dve-media{ background:var(--dve-white); border:1px solid var(--dve-line); border-radius:12px; padding:18px 20px; margin-bottom:16px; }
.dve-media__preview{ margin-bottom:12px; }
.dve-media__preview img{ max-width:220px; height:auto; border-radius:8px; display:block; border:1px solid var(--dve-line); }
.dve-media__empty{ color:var(--dve-text); font-size:.9rem; font-style:italic; }
.dve-media__filename{ color:var(--dve-gold); font-weight:600; font-size:.94rem; text-decoration:none; word-break:break-all; }
.dve-media__actions{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:10px; }
.dve-media .dve-note{ margin:0; }
.dve-media .dve-note input[type=file]{ display:inline-block; margin-left:6px; font-size:.85rem; }

/* ============================================================
   1.2.0 – rácsos kártyák + önálló eseményoldal
   ============================================================ */
.dve-grid{ display:grid; gap:22px; }
.dve-grid--1{ grid-template-columns:1fr; }
.dve-grid--2{ grid-template-columns:repeat(2,1fr); }
.dve-grid--3{ grid-template-columns:repeat(3,1fr); }
.dve-grid--4{ grid-template-columns:repeat(4,1fr); }
.dve-grid--past{ margin-top:18px; }

/* Kompakt kártya */
.dve-card{
  display:flex; flex-direction:column; overflow:hidden;
  background:var(--dve-white); border:1px solid var(--dve-line); border-radius:14px;
  transition:transform .25s ease, box-shadow .25s ease;
}
.dve-card:hover{ transform:translateY(-3px); box-shadow:0 18px 40px -24px rgba(1,17,17,.35); }
.dve-card__media{
  position:relative; display:block; aspect-ratio:3/2; overflow:hidden;
  background:linear-gradient(150deg,#EFE8DA,#D9C9A8); text-decoration:none;
}
.dve-card__media img{ width:100%; height:100%; object-fit:cover; display:block; }
.dve-card__noimg{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font-family:"Roboto Slab",serif; color:#b09a72; font-size:1.1rem; letter-spacing:.05em;
}
.dve-ribbon{
  position:absolute; top:12px; left:12px; background:#1a1a1a; color:#fff;
  font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; font-weight:700;
  padding:5px 12px; border-radius:999px;
}
.dve-ribbon--past{ background:rgba(26,26,26,.65); }
.dve-card--past{ opacity:.85; }

.dve-card__body{ padding:20px 22px 22px; display:flex; flex-direction:column; flex:1; }
.dve-card__date{ color:var(--dve-gold); font-weight:700; font-size:.84rem; margin-bottom:8px; }
.dve-card__title{
  font-family:"Roboto Slab",serif; color:var(--dve-ink);
  font-size:1.18rem; line-height:1.25; margin:0 0 10px;
}
.dve-card__title a{ color:inherit; text-decoration:none; }
.dve-card__title a:hover{ color:var(--dve-gold); }
.dve-card__meta{ font-size:.92rem; margin-bottom:16px; }
.dve-price{ font-weight:700; color:var(--dve-ink); }
.dve-left{ color:var(--dve-text); }
.dve-card__cta{ margin-top:auto !important; align-self:flex-start; }

/* Önálló eseményoldal */
.dve-single__grid{ display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:start; }
.dve-single__media img{ width:100%; height:auto; border-radius:14px; display:block; border:1px solid var(--dve-line); }
.dve-single__title{ font-family:"Roboto Slab",serif; color:var(--dve-ink); font-size:2rem; line-height:1.15; margin:6px 0 14px; }
.dve-single__desc{ font-size:1.02rem; margin-bottom:22px; }
.dve-facts{ list-style:none; padding:0; margin:0 0 22px; border-top:1px solid var(--dve-line); }
.dve-facts li{ display:flex; justify-content:space-between; gap:16px; padding:11px 0; border-bottom:1px solid var(--dve-line); font-size:.95rem; }
.dve-facts li span{ color:var(--dve-text); }
.dve-facts li strong{ color:var(--dve-ink); text-align:right; }

@media (max-width:1024px){
  .dve-grid--3,.dve-grid--4{ grid-template-columns:repeat(2,1fr); }
  .dve-single__grid{ grid-template-columns:1fr; gap:26px; }
}
@media (max-width:640px){
  .dve-grid--2,.dve-grid--3,.dve-grid--4{ grid-template-columns:1fr; }
}

/* ============================================================
   1.3.0 – széles esemény-sorok (események oldal)
   ============================================================ */
.dve-rows{ display:grid; gap:22px; }
.dve-rows--past{ margin-top:18px; }
.dve-row{
  display:grid; grid-template-columns:340px 1fr; overflow:hidden;
  background:var(--dve-white); border:1px solid var(--dve-line); border-radius:14px;
  transition:box-shadow .25s ease;
}
.dve-row:hover{ box-shadow:0 18px 40px -26px rgba(1,17,17,.32); }
.dve-row--past{ opacity:.85; }
.dve-row__media{
  position:relative; display:block; min-height:220px; overflow:hidden;
  background:linear-gradient(150deg,#EFE8DA,#D9C9A8); text-decoration:none;
}
.dve-row__media img{ width:100%; height:100%; object-fit:cover; display:block; }
.dve-row__body{ padding:26px 30px; display:flex; flex-direction:column; }
.dve-row__title{
  font-family:"Roboto Slab",serif; color:var(--dve-ink);
  font-size:1.45rem; line-height:1.2; margin:0 0 12px;
}
.dve-row__title a{ color:inherit; text-decoration:none; }
.dve-row__title a:hover{ color:var(--dve-gold); }
.dve-row__desc{ font-size:.98rem; margin-bottom:8px; }
.dve-more{
  background:none !important; border:0 !important; padding:0 !important; margin:0 0 14px !important;
  color:var(--dve-gold) !important; font-family:inherit; font-weight:700; font-size:.9rem;
  cursor:pointer; text-decoration:underline; align-self:flex-start;
}
.dve-more:hover{ color:#6a4f32 !important; }
.dve-row__meta{ font-size:.95rem; margin:6px 0 18px; }
.dve-row__actions{ margin-top:auto; display:flex; flex-wrap:wrap; gap:8px; }

@media (max-width:820px){
  .dve-row{ grid-template-columns:1fr; }
  .dve-row__media{ aspect-ratio:3/2; min-height:0; }
  .dve-row__body{ padding:22px 24px; }
}

/* Áfakulcs választó + mezősúgó */
.dve-form select{
  font-family:inherit; font-size:1rem; padding:.7em .9em; border:1px solid var(--dve-line);
  border-radius:8px; background:var(--dve-white); color:var(--dve-ink); width:100%;
}
.dve-form select:focus{ outline:0; border-color:var(--dve-gold); box-shadow:0 0 0 3px rgba(194,160,99,.18); }
.dve-hint{ display:block; margin-top:6px; font-size:.82rem; font-weight:400; color:var(--dve-text); }

/* Lezárt foglalás jelölése + űrlap jelölőnégyzet doboz */
.dve-badge--closed{ background:rgba(168,90,61,.15); color:#8a3d24; }
.dve-check-box{
  display:flex !important; flex-direction:row !important; align-items:flex-start; gap:12px;
  background:var(--dve-cream); border:1px solid var(--dve-line); border-radius:10px;
  padding:16px 18px; font-weight:400 !important;
}
.dve-check-box input[type=checkbox]{ width:18px; height:18px; margin-top:2px; flex-shrink:0; }
.dve-check-box strong{ color:var(--dve-ink); display:block; }

/* ============================================================
   „Betelt” – feltűnő piros jelzés
   ============================================================ */
.dve-wrap .dve-btn--soldout,
.dve-wrap span.dve-btn--soldout{
  background:#c62828 !important;
  border-color:#c62828 !important;
  color:#ffffff !important;
  cursor:default !important;
  font-weight:700 !important;
  letter-spacing:.06em !important;
  text-transform:uppercase !important;
  pointer-events:none !important;
}
.dve-wrap .dve-btn--soldout:hover{
  background:#c62828 !important;
  border-color:#c62828 !important;
  color:#ffffff !important;
  transform:none !important;
}
/* Nagyobb változat az esemény saját oldalára */
.dve-wrap .dve-btn--soldout-lg{
  font-size:1rem !important;
  padding:.85em 2em !important;
}
.dve-soldout-wrap{ margin-top:6px; }
.dve-soldout-wrap .dve-note{ margin-top:12px; }

/* A kártya alsó gombsora */
.dve-card__cta{
  margin-top:auto !important;
  display:flex; flex-wrap:wrap; align-items:center; gap:0;
}

/* A képen lévő szalag is piros legyen */
.dve-ribbon{ background:#c62828 !important; color:#fff !important; }
.dve-ribbon--past{ background:rgba(26,26,26,.65) !important; }
