/* ============================================================
   GLOBAL: Remove Elementor default 10px padding from ALL
   Fountainbridge widget containers and their parent sections
   ============================================================ */

/* Elementor adds padding:10px to every .elementor-widget-container */
/* We zero it out for every single dino widget */
.elementor-widget-dew-hero-video .elementor-widget-container,
.elementor-widget-dew-stats-counter .elementor-widget-container,
.elementor-widget-dew-package-cards .elementor-widget-container,
.elementor-widget-dew-gallery-carousel .elementor-widget-container,
.elementor-widget-dew-faq-accordion .elementor-widget-container,
.elementor-widget-dew-reviews .elementor-widget-container,
.elementor-widget-dew-trusted-marquee .elementor-widget-container,
.elementor-widget-dew-enquiry-section .elementor-widget-container {
  padding: 0 !important;
  margin: 0 !important;
}

/* Also zero the column wrap that Elementor inserts */
.elementor-column:has(.elementor-widget-dew-hero-video),
.elementor-column:has(.elementor-widget-dew-stats-counter),
.elementor-column:has(.elementor-widget-dew-package-cards),
.elementor-column:has(.elementor-widget-dew-gallery-carousel),
.elementor-column:has(.elementor-widget-dew-faq-accordion),
.elementor-column:has(.elementor-widget-dew-reviews),
.elementor-column:has(.elementor-widget-dew-trusted-marquee),
.elementor-column:has(.elementor-widget-dew-enquiry-section) {
  padding: 0 !important;
}

/* And the .elementor-widget-wrap inside those columns */
.elementor-column:has(.elementor-widget-dew-hero-video) .elementor-widget-wrap,
.elementor-column:has(.elementor-widget-dew-stats-counter) .elementor-widget-wrap,
.elementor-column:has(.elementor-widget-dew-package-cards) .elementor-widget-wrap,
.elementor-column:has(.elementor-widget-dew-gallery-carousel) .elementor-widget-wrap,
.elementor-column:has(.elementor-widget-dew-faq-accordion) .elementor-widget-wrap,
.elementor-column:has(.elementor-widget-dew-reviews) .elementor-widget-wrap,
.elementor-column:has(.elementor-widget-dew-trusted-marquee) .elementor-widget-wrap,
.elementor-column:has(.elementor-widget-dew-enquiry-section) .elementor-widget-wrap {
  padding: 0 !important;
}

/* Elementor data-attribute selectors — bulletproof targeting */
[data-widget_type="dew-hero-video.default"] .elementor-widget-container,
[data-widget_type="dew-stats-counter.default"] .elementor-widget-container,
[data-widget_type="dew-package-cards.default"] .elementor-widget-container,
[data-widget_type="dew-gallery-carousel.default"] .elementor-widget-container,
[data-widget_type="dew-faq-accordion.default"] .elementor-widget-container,
[data-widget_type="dew-reviews.default"] .elementor-widget-container,
[data-widget_type="dew-trusted-marquee.default"] .elementor-widget-container,
[data-widget_type="dew-enquiry-section.default"] .elementor-widget-container {
  padding: 0 !important;
  margin: 0 !important;
  line-height: 0;
  font-size: 0;
}

/* Restore font-size inside the actual widget sections */
[data-widget_type="dew-hero-video.default"] .dew-hero,
[data-widget_type="dew-stats-counter.default"] .dew-stats,
[data-widget_type="dew-package-cards.default"] .dew-packages,
[data-widget_type="dew-gallery-carousel.default"] .dew-gallery,
[data-widget_type="dew-faq-accordion.default"] .dew-faq,
[data-widget_type="dew-reviews.default"] .dew-reviews,
[data-widget_type="dew-trusted-marquee.default"] .dew-trusted,
[data-widget_type="dew-enquiry-section.default"] .dew-enquiry {
  font-size: 17px;
  line-height: 1.7;
}

/* ============================================================
   Fountainbridge Widgets — widgets.css
   ============================================================ */

:root {
  --green:       #1d5c2e;
  --green-dark:  #123d1e;
  --green-light: #2a7a3e;
  --green-pale:  #e8f4ec;
  --orange:      #e8520a;
  --orange-dark: #c44208;
  --orange-light:#f07040;
  --sand:        #f5f0e6;
  --ink:         #0f1a0a;
  --muted:       #4a5e45;
  --white:       #fff;
  --light:       #f9faf7;
  --radius:      14px;
  --radius-lg:   22px;
  --shadow-sm:   0 2px 10px rgba(15,26,10,.08);
  --shadow:      0 8px 28px rgba(15,26,10,.13);
  --shadow-lg:   0 16px 48px rgba(15,26,10,.18);
  --font-head:   "Barlow Condensed","Arial Narrow",sans-serif;
  --font-body:   "Barlow","Arial",sans-serif;
}

/* ── Shared ── */
.section-label {
  font-family: var(--font-head);
  font-weight: 700;
  font-style: italic;
  font-size: .85rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--orange);
  display: block;
  margin-bottom: .5rem;
}
.section-title {
  font-family: var(--font-head);
  font-weight: 900;
  font-style: italic;
  font-size: clamp(2rem,4vw,3rem);
  letter-spacing: .01em;
  line-height: 1;
  color: var(--ink);
  margin-bottom: .6rem;
}
.section-title::after {
  content: '';
  display: block;
  width: 56px;
  height: 4px;
  background: var(--orange);
  margin-top: .5rem;
  margin-bottom: 0;
  border-radius: 2px;
}
.section-sub {
  font-size: 1rem;
  color: var(--muted);
  line-height: 1.7;
  max-width: 580px;
}

/* ── HERO ── */
.dew-hero.hero {
  position: relative;
  background: var(--green-dark);
  overflow: hidden;
  min-height: 80vh;
  display: flex;
  flex-direction: column;
}
.dew-hero .video-wrap {
  position: absolute;
  inset: 0;
}
.dew-hero .video-wrap::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(10,18,8,.75) 0%, rgba(10,18,8,.35) 35%, rgba(10,18,8,.15) 60%, rgba(10,18,8,.08) 100%);
}
.dew-hero video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.dew-hero .hero-content {
  position: relative;
  z-index: 2;
  flex: 1;
  display: flex;
  align-items: flex-end;
  padding: 2.5rem 0 3rem;
}
.dew-hero .hero-inner {
  display: flex;
  flex-direction: column;
  gap: 0;
  width: 100%;
  max-width: 680px;
}
.dew-hero h1 {
  font-family: var(--font-head);
  font-weight: 900;
  font-style: italic;
  font-size: clamp(3.5rem,7vw,6rem);
  line-height: .88;
  color: #fff;
  letter-spacing: -.01em;
  margin-bottom: 1.4rem;
}
.dew-hero h1 .accent { color: var(--orange); display: block; }
.dew-hero .hero-sub {
  font-size: 1rem;
  line-height: 1.7;
  color: rgba(255,255,255,.78);
  max-width: 520px;
  margin-bottom: 1.5rem;
  margin-top: 1rem;
}
.dew-hero .hero-btns { display: flex; gap: 1rem; flex-wrap: wrap; }

/* Buttons */
.btn {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  font-family: var(--font-head);
  font-weight: 900;
  font-style: italic;
  letter-spacing: .05em;
  text-transform: uppercase;
  font-size: 1.05rem;
  border-radius: 6px;
  padding: .6rem 1.8rem;
  cursor: pointer;
  transition: transform .15s, box-shadow .15s, background .15s;
  white-space: nowrap;
  border: none;
  text-decoration: none;
}
.btn:hover { transform: translateY(-2px); }
.btn-primary { background: var(--orange); color: #fff; box-shadow: 0 4px 0 var(--orange-dark); }
.btn-primary:hover { background: var(--orange-light); box-shadow: 0 6px 0 var(--orange-dark); }
.btn-ghost { background: transparent; color: #fff; border: 2px solid rgba(255,255,255,.5); }
.btn-ghost:hover { border-color: #fff; background: rgba(255,255,255,.1); }
.btn-outline { background: transparent; color: var(--green); border: 2px solid var(--green); }
.btn-outline:hover { background: var(--green); color: #fff; }

/* ── STATS ── */
.dew-stats.stats {
  background: var(--green);
  padding: 1.2rem 0;
}
.dew-stats .stats-grid {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: 0;
}
.dew-stats .stat {
  text-align: center;
  padding: .8rem .75rem;
  border-right: 1px solid rgba(255,255,255,.1);
}
.dew-stats .stat:last-child { border-right: none; }
.dew-stats .num {
  font-family: var(--font-head);
  font-weight: 900;
  font-style: italic;
  font-size: 2rem;
  line-height: 1;
  color: #fff;
  display: block;
}
.dew-stats .label {
  font-size: .68rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(255,255,255,.55);
  margin-top: .2rem;
  display: block;
}
@media(max-width:480px) {
  .dew-stats .stats-grid { grid-template-columns: repeat(2,1fr); }
  .dew-stats .stat { padding: .7rem .5rem; }
  .dew-stats .num { font-size: 1.6rem; }
}

/* ── PACKAGES ── */
.dew-packages.packages {
  background: var(--green, #1d5c2e);
  padding: 3.5rem 0 15px;
}
.dew-packages .container {
  display: block !important;
  text-align: left !important;
  padding-bottom: 0 !important;
}
.dew-packages .section-label {
  color: var(--orange-light, #f07040) !important;
  display: block;
  margin-bottom: .3rem;
}
.dew-packages .section-title {
  color: #fff !important;
  text-align: left !important;
  margin-bottom: 0 !important;
}
.dew-packages .section-title::after {
  display: block;
  margin-left: 0 !important;
  margin-top: .5rem;
  margin-bottom: .6rem;
}
.dew-packages .section-sub {
  color: rgba(255,255,255,.75) !important;
  text-align: left !important;
  margin-top: 0 !important;
}
.dew-packages .pkg-grid {
  margin-top: 3rem;
  width: 100%;
}
.dew-packages .section-title::after { margin-left: 0; }
.pkg-grid {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 1.2rem;
  margin-top: 2.5rem;
  width: 100%;
}
.pkg-card {
  height: 300px;
  cursor: pointer;
  position: relative;
}
.pkg-card-inner {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.pkg-front, .pkg-back {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  transition: transform .65s cubic-bezier(.4,0,.2,1);
}
.pkg-front { transform: translateY(0); background: #fff; }
.pkg-back  { transform: translateY(100%); }
.pkg-card.flipped .pkg-front { transform: translateY(-100%); }
.pkg-card.flipped .pkg-back  { transform: translateY(0); }
.pkg-img { height: 100%; overflow: hidden; position: relative; }
.pkg-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.pkg-card:hover .pkg-img img { transform: scale(1.05); }
.pkg-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(10,18,8,.88) 0%, rgba(10,18,8,.3) 55%, transparent 100%);
}
.pkg-badge {
  position: absolute;
  top: 1rem;
  left: 1rem;
  background: var(--orange);
  color: #fff;
  font-family: var(--font-head);
  font-weight: 700;
  font-style: italic;
  font-size: .78rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: .2rem .8rem;
  border-radius: 20px;
  z-index: 1;
}
.pkg-flip-hint {
  position: absolute;
  top: 1rem;
  right: 1rem;
  z-index: 1;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(255,255,255,.15);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .85rem;
  animation: pulse-hint 2.5s ease-in-out infinite;
}
@keyframes pulse-hint {
  0%,100% { opacity:.7; transform:scale(1); }
  50%      { opacity:1;  transform:scale(1.15); }
}
.pkg-info {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 1.2rem 1.3rem 1.6rem;
  z-index: 1;
}
.pkg-title {
  font-family: var(--font-head);
  font-weight: 900;
  font-style: italic;
  font-size: 1.5rem;
  color: #fff;
  line-height: 1;
  display: block;
  margin-bottom: .35rem;
}
.pkg-desc { font-size: .82rem; color: rgba(255,255,255,.8); line-height: 1.5; }
/* Back */
.pkg-back {
  position: absolute;
  display: flex;
  flex-direction: column;
  padding: 0;
  overflow: hidden;
}
.pkg-back-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
}
.pkg-back-bg::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(10,18,8,.96) 0%, rgba(10,18,8,.82) 50%, rgba(10,18,8,.65) 100%);
}
.pkg-back-content {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 100%;
  padding: 1.4rem 1.5rem 1.6rem;
  box-sizing: border-box;
}
.pkg-back-badge {
  font-family: var(--font-head);
  font-weight: 700;
  font-style: italic;
  font-size: .72rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--orange-light);
  display: block;
  margin-bottom: .4rem;
}
.pkg-back h3 {
  font-family: var(--font-head);
  font-weight: 900;
  font-style: italic;
  font-size: 1.35rem;
  color: #fff;
  line-height: 1;
  margin-bottom: .8rem;
}
.pkg-features {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: .3rem;
  margin-bottom: .8rem;
  overflow: hidden;
  flex: 1;
}
.pkg-features li {
  font-size: .78rem;
  color: rgba(255,255,255,.85);
  font-weight: 600;
  display: flex;
  gap: .4rem;
  align-items: flex-start;
  line-height: 1.4;
}
.pkg-features li::before {
  content: '';
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  margin-top: .15rem;
  background: rgba(255,255,255,.15) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 13l4 4L19 7'/%3E%3C/svg%3E") center/8px no-repeat;
  border-radius: 50%;
}
.pkg-cta {
  display: block;
  text-align: center;
  font-family: var(--font-head);
  font-weight: 900;
  font-style: italic;
  font-size: 1rem;
  letter-spacing: .05em;
  text-transform: uppercase;
  background: var(--orange);
  color: #fff;
  padding: .65rem 1rem;
  border-radius: 8px;
  box-shadow: 0 3px 0 var(--orange-dark);
  text-decoration: none;
  flex-shrink: 0;
  margin-top: .8rem;
  transition: background .15s, transform .15s;
}
.pkg-cta:hover { background: var(--orange-light); transform: translateY(-1px); }
@media(max-width:900px) { .pkg-grid { grid-template-columns: repeat(2,1fr); } .pkg-card { height: 280px; } }
@media(max-width:600px) { .pkg-grid { grid-template-columns: 1fr; } .pkg-card { height: 300px; } }

/* ── GALLERY ── */
.dew-gallery.gallery { background: var(--white); padding: 4rem 0; }
.dew-gallery .section-label { color: var(--orange); }
.dew-gallery .section-title { color: var(--ink); }
.gallery-carousel { position: relative; overflow: hidden; margin-top: 2.5rem; }
.gallery-track {
  display: flex;
  gap: 1rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  padding: 0 max(4%, calc((100vw - 1180px)/2));
}
.gallery-track::-webkit-scrollbar { display: none; }
.gallery-item {
  flex: 0 0 280px;
  scroll-snap-align: start;
  border-radius: var(--radius);
  overflow: hidden;
  position: relative;
  cursor: pointer;
  aspect-ratio: 3/4;
  box-shadow: var(--shadow);
  display: block;
}
.gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.gallery-item:hover img { transform: scale(1.06); }
.gallery-item .zoom {
  position: absolute;
  inset: 0;
  background: rgba(15,26,10,.4);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity .25s;
}
.gallery-item:hover .zoom { opacity: 1; }
.gallery-item .zoom svg { width: 40px; height: 40px; stroke: #fff; }
.gallery-item .caption {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: linear-gradient(to top,rgba(15,26,10,.85),transparent);
  color: #fff;
  font-size: .8rem;
  padding: .8rem 1rem .9rem;
  opacity: 0;
  transition: opacity .25s;
}
.gallery-item:hover .caption { opacity: 1; }
.gallery-nav-row { display: flex; gap: .8rem; justify-content: center; margin-top: 1.8rem; }
.gallery-nav {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: rgba(29,92,46,.1);
  border: 2px solid rgba(29,92,46,.2);
  color: var(--green);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .15s;
}
.gallery-nav:hover:not(:disabled) { background: var(--orange); border-color: var(--orange); color: #fff; }
.gallery-nav:disabled { opacity: .3; cursor: default; }
.gallery-nav svg { width: 20px; height: 20px; }

/* ── FAQ ── */
.dew-faq.faq { background: var(--green); padding: 5rem 0; }
.dew-faq .section-title::after { background: var(--orange); }
.faq-list { margin-top: 2.5rem; display: flex; flex-direction: column; gap: .5rem; }
.faq-item {
  background: var(--white);
  border-radius: var(--radius);
  border: 1.5px solid rgba(255,255,255,.2);
  overflow: hidden;
  transition: border-color .2s;
}
.faq-item:hover { border-color: rgba(255,255,255,.6); }
.faq-q {
  width: 100%;
  background: none;
  border: none;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1.1rem 1.4rem;
  text-align: left;
  gap: 1rem;
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 1rem;
  color: var(--ink);
}
.faq-q .chev {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--green);
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .2s, transform .3s;
  position: relative;
}
.faq-q .chev::after {
  content: '';
  display: block;
  width: 8px;
  height: 8px;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: rotate(45deg);
  margin-bottom: 3px;
}
.faq-q[aria-expanded="true"] .chev { background: var(--green-dark); transform: rotate(180deg); }
.faq-q[aria-expanded="true"] .chev::after { margin-bottom: -3px; }
.faq-a { max-height: 0; overflow: hidden; transition: max-height .35s ease; }
.faq-a.open { max-height: 400px; }
.faq-a p { padding: .2rem 1.4rem 1.2rem; font-size: .93rem; color: var(--muted); line-height: 1.75; }

/* ── REVIEWS ── */
.dew-reviews.reviews { background: var(--white); padding: 5rem 0; }
.google-summary {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  background: var(--sand);
  border-radius: 8px;
  padding: .5rem 1.1rem;
  margin-bottom: 2rem;
  font-size: .9rem;
  font-weight: 600;
}
.g-stars { color: #f4b400; letter-spacing: .1em; }
.reviews-grid {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: 1.2rem;
}
.review {
  background: var(--light);
  border-radius: var(--radius);
  padding: 1.5rem;
  border: 1.5px solid rgba(29,92,46,.08);
  font-size: .9rem;
}
.review .stars { color: var(--orange); font-size: 1rem; letter-spacing: .08em; margin-bottom: .7rem; }
.review p { color: var(--muted); line-height: 1.7; font-style: italic; margin-bottom: .9rem; }
.review .who { font-weight: 700; font-size: .8rem; letter-spacing: .04em; color: var(--green); }
.btn-google {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  background: var(--sand);
  color: var(--ink);
  border-radius: 8px;
  padding: .55rem 1.2rem;
  font-weight: 700;
  font-size: .88rem;
  text-decoration: none;
  transition: background .15s;
}
.btn-google:hover { background: var(--sand-dark,#e8dfc8); }
@media(max-width:768px) { .reviews-grid { grid-template-columns: repeat(2,1fr); } }
@media(max-width:480px) { .reviews-grid { grid-template-columns: 1fr; } }

/* ── TRUSTED MARQUEE ── */
.dew-trusted.trusted { background: var(--white); padding: 3.5rem 0; border-top: 1px solid rgba(29,92,46,.08); border-bottom: 1px solid rgba(29,92,46,.08); }
.dew-trusted .section-title { color: var(--muted); font-size: 1.4rem; }
.dew-trusted .section-title::after { background: var(--green); margin-inline: auto; }
.marquee-wrap { overflow: hidden; position: relative; margin-top: 2rem; }
.marquee-wrap::before, .marquee-wrap::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  width: 100px;
  z-index: 2;
  pointer-events: none;
}
.marquee-wrap::before { left: 0; background: linear-gradient(to right, var(--white), transparent); }
.marquee-wrap::after  { right:0; background: linear-gradient(to left,  var(--white), transparent); }
.marquee-track {
  display: flex;
  align-items: center;
  width: max-content;
  /* CSS keyframe animáció ELTÁVOLÍTVA — a JS rAF-loop kezeli az összes
     mozgást (auto-scroll + drag + momentum), így nincs ütközés a két
     rendszer között, ami az akadozást okozta. */
  will-change: transform;   /* GPU compositor layer → 60fps smooth */
  cursor: grab;
  user-select: none;
}
.marquee-track:active { cursor: grabbing; }
/* .marquee-track:hover pause ELTÁVOLÍTVA — JS kezeli */
@keyframes marquee { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }
.logo-item {
  padding: 8px 28px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-right: 1px solid rgba(29,92,46,.1);
}
.logo-item img:hover { filter: grayscale(0%) !important; opacity: 1 !important; }

/* ── ENQUIRY ── */
.dew-enquiry.enquiry { background: var(--green); position: relative; overflow: hidden; padding: 5rem 0; }
.enquiry-grid { display: grid; grid-template-columns: 1fr 1.15fr; gap: 3.5rem; align-items: start; }
.enquiry-intro h2 {
  font-family: var(--font-head);
  font-weight: 900;
  font-style: italic;
  font-size: clamp(2rem,3.5vw,2.8rem);
  color: #fff;
  margin-bottom: .8rem;
}
.enquiry-intro h2::after { content:''; display:block; width:56px; height:4px; background:var(--orange); margin-top:.6rem; border-radius:2px; }
.eq-lead { font-size:1rem; color:rgba(255,255,255,.8); line-height:1.75; margin-bottom:1.5rem; }
.eq-points { list-style:none; display:flex; flex-direction:column; gap:.7rem; }
.eq-points li { display:flex; align-items:center; gap:.7rem; font-weight:600; font-size:.95rem; color:#fff; }
.eq-points li svg { width:20px; height:20px; stroke:var(--orange-light); flex-shrink:0; }
.enquiry-card { background:var(--white); border-radius:var(--radius-lg,22px); box-shadow:var(--shadow); padding:2rem 2.2rem; border-top:4px solid var(--green-dark); }
.eq-alt { text-align:center; margin-top:.8rem; font-size:.85rem; color:var(--muted); }
.eq-alt a { color:var(--green); font-weight:600; }
@media(max-width:768px) { .enquiry-grid { grid-template-columns: 1fr; gap: 2rem; } }

/* ── Lightbox ── */
.dew-lightbox {
  position: fixed; inset: 0; z-index: 9999;
  background: rgba(10,15,8,.94);
  display: flex; align-items: center; justify-content: center;
  opacity: 0; pointer-events: none; transition: opacity .25s;
}
.dew-lightbox.open { opacity: 1; pointer-events: auto; }
.dew-lb-fig { max-width: min(900px,90vw); max-height: 90vh; display: flex; flex-direction: column; align-items: center; gap: .6rem; }
.dew-lb-img { max-width: 100%; max-height: 80vh; object-fit: contain; border-radius: 8px; }
.dew-lb-cap { font-size: .88rem; color: rgba(255,255,255,.65); text-align: center; }
.dew-lb-count { position: absolute; top: 1.2rem; left: 50%; transform: translateX(-50%); font-size: .8rem; color: rgba(255,255,255,.5); }
.dew-lb-btn { position: absolute; background: rgba(255,255,255,.1); border: none; cursor: pointer; color: #fff; border-radius: 50%; display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; transition: background .15s; }
.dew-lb-btn:hover { background: var(--orange); }
.dew-lb-btn svg { width: 22px; height: 22px; }
.dew-lb-close { top: 1rem; right: 1rem; }
.dew-lb-prev { left: 1rem; top: 50%; transform: translateY(-50%); }
.dew-lb-next { right: 1rem; top: 50%; transform: translateY(-50%); }

/* ============================================================
   CRITICAL FIXES — v1.1.0
   ============================================================ */

/* ── Hero: zero Elementor padding to remove frame ── */
.elementor-widget-dew-hero-video,
.elementor-widget-dew-hero-video .elementor-widget-container {
  padding: 0 !important;
  margin: 0 !important;
  line-height: 0;
  font-size: 0;
}
.elementor-widget-dew-hero-video .dew-hero { font-size: 17px; }
/* Parent section also needs zero padding */
.e-con:has(.elementor-widget-dew-hero-video),
.elementor-section:has(.elementor-widget-dew-hero-video) {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
/* Hero h1 accent colour */
.dew-hero h1 .accent { color: var(--orange, #e8520a); }

/* ── Stats: match exactly ── */
.elementor-widget-dew-stats-counter,
.elementor-widget-dew-stats-counter .elementor-widget-container {
  padding: 0 !important;
}

/* ── Packages: section heading left-aligned on green ── */
.elementor-widget-dew-package-cards,
.elementor-widget-dew-package-cards .elementor-widget-container {
  padding: 0 !important;
}


/* ── FAQ: exact match to minta ── */
.elementor-widget-dew-faq-accordion,
.elementor-widget-dew-faq-accordion .elementor-widget-container {
  padding: 0 !important;
}
.dew-faq.faq { padding: 5rem 0; }
/* Override Elementor accordion if it interferes */
.dew-faq .faq-list { margin-top: 2rem; }
.dew-faq .faq-item { background: var(--white, #fff); border-radius: 14px; border: 1.5px solid rgba(255,255,255,.2); overflow: hidden; margin: 0; }
.dew-faq .faq-q {
  width: 100%;
  background: none;
  border: none;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1.1rem 1.4rem;
  text-align: left;
  gap: 1rem;
  font-family: var(--font-body, 'Barlow', sans-serif);
  font-weight: 600;
  font-size: 1rem;
  color: var(--ink, #0f1a0a);
  line-height: 1.4;
}
.dew-faq .faq-q .chev {
  width: 28px; height: 28px;
  border-radius: 50%;
  background: var(--green, #1d5c2e);
  flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  transition: background .2s, transform .3s;
}
.dew-faq .faq-q .chev::after {
  content: '';
  display: block;
  width: 8px; height: 8px;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: rotate(45deg);
  margin-bottom: 3px;
}
.dew-faq .faq-q[aria-expanded="true"] .chev { transform: rotate(180deg); }
.dew-faq .faq-q[aria-expanded="true"] .chev::after { margin-bottom: -3px; }
.dew-faq .faq-a { max-height: 0; overflow: hidden; transition: max-height .35s ease; }
.dew-faq .faq-a.open { max-height: 400px; }
.dew-faq .faq-a p { padding: .2rem 1.4rem 1.2rem; font-size: .93rem; color: var(--muted, #4a5e45); line-height: 1.75; margin: 0; }

/* ── Gallery: zero wrapper padding ── */
.elementor-widget-dew-gallery-carousel,
.elementor-widget-dew-gallery-carousel .elementor-widget-container {
  padding: 0 !important;
}

/* ── Reviews: zero wrapper padding ── */
.elementor-widget-dew-reviews,
.elementor-widget-dew-reviews .elementor-widget-container {
  padding: 0 !important;
}
.dew-reviews .section-title { color: var(--ink, #0f1a0a) !important; }
.dew-reviews .section-title::after { background: var(--orange, #e8520a); margin-left: 0; }

/* ── Photo Gallery Reviews fejléc: bal igazítás override ──
   A theme.css-ben a .reviews .container display:flex + align-items:center
   és a .section-sub text-align:center — ezeket felülírjuk. */
.dew-pgr .container {
  display: block !important;   /* ne flex, hanem block hogy az elemek egymás alá kerüljenek */
}
.dew-pgr .section-label,
.dew-pgr .section-title,
.dew-pgr .section-sub {
  text-align: left !important;
  align-self: auto !important;
  margin-left: 0 !important;
  margin-right: auto !important;
}
.dew-pgr .section-title::after {
  margin-left: 0 !important;
  margin-right: auto !important;
}
/* Google summary: bal igazítás (a theme-ben justify-content:center van) */
.dew-pgr .google-summary {
  justify-content: flex-start !important;
  margin-left: 0 !important;
  margin-right: auto !important;
}

/* ── Trusted marquee ── */
.elementor-widget-dew-trusted-marquee,
.elementor-widget-dew-trusted-marquee .elementor-widget-container {
  padding: 0 !important;
}

/* ── Enquiry ── */
.elementor-widget-dew-enquiry-section,
.elementor-widget-dew-enquiry-section .elementor-widget-container {
  padding: 0 !important;
}

/* ── Navbar Book Now ── */
.site-header .navbar-inner a.btn,
.site-header .navbar-inner a.btn-book,
.site-header .navbar-inner a.btn-primary {
  display: inline-flex !important;
  background: var(--orange, #e8520a) !important;
  color: #fff !important;
  box-shadow: 0 4px 0 var(--orange-dark, #c44208) !important;
  padding: .55rem 1.5rem !important;
  font-size: 1rem !important;
  font-family: var(--font-head, 'Barlow Condensed', sans-serif) !important;
  font-weight: 900 !important;
  font-style: italic !important;
  text-transform: uppercase !important;
  border-radius: 6px !important;
  text-decoration: none !important;
  flex-shrink: 0;
}

/* 100vw hack removed */

/* ════ HERO BUTTONS — exact minta match ════ */
.dew-hero .btn-primary {
  background: var(--orange, #e8520a) !important;
  color: #fff !important;
  box-shadow: 0 4px 0 var(--orange-dark, #c44208) !important;
  font-family: var(--font-head, 'Barlow Condensed', sans-serif) !important;
  font-weight: 900 !important;
  font-style: italic !important;
  font-size: 1rem !important;
  letter-spacing: .06em !important;
  text-transform: uppercase !important;
  padding: .6rem 1.8rem !important;
  border-radius: 6px !important;
  border: none !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: .45rem !important;
  cursor: pointer !important;
  white-space: nowrap !important;
  transition: transform .15s, background .15s !important;
}
.dew-hero .btn-primary:hover {
  background: var(--orange-light, #f07040) !important;
  transform: translateY(-2px) !important;
}

.dew-hero .btn-ghost {
  background: transparent !important;
  color: #fff !important;
  border: 2px solid rgba(255,255,255,.7) !important;
  box-shadow: none !important;
  font-family: var(--font-head, 'Barlow Condensed', sans-serif) !important;
  font-weight: 900 !important;
  font-style: italic !important;
  font-size: 1rem !important;
  letter-spacing: .06em !important;
  text-transform: uppercase !important;
  padding: .6rem 1.8rem !important;
  border-radius: 6px !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
  cursor: pointer !important;
  white-space: nowrap !important;
  transition: border-color .15s, background .15s !important;
}
.dew-hero .btn-ghost:hover {
  border-color: #fff !important;
  background: rgba(255,255,255,.1) !important;
}

.dew-hero .hero-btns {
  display: flex !important;
  gap: 1rem !important;
  flex-wrap: wrap !important;
  margin-top: 1.5rem !important;
}

/* ════ GLOBAL: minden dew widget heading balra igazítva ════ */
.dew-gallery .container,
.dew-faq .container,
.dew-reviews .container,
.dew-trusted .container {
  text-align: left !important;
}
.dew-gallery .section-label,
.dew-gallery .section-title,
.dew-gallery .section-sub,
.dew-faq .section-label,
.dew-faq .section-title,
.dew-faq .section-sub,
.dew-reviews .section-label,
.dew-reviews .section-title,
.dew-reviews .section-sub,
.dew-trusted .section-title {
  text-align: left !important;
  display: block;
}
.dew-gallery .section-title::after,
.dew-faq .section-title::after,
.dew-reviews .section-title::after,
.dew-trusted .section-title::after {
  margin-left: 0 !important;
  margin-right: auto !important;
}
/* Gallery CTA gomb balra */
.dew-gallery .gallery-cta {
  text-align: left !important;
}
/* Trusted title sincs középre */
.dew-trusted .container {
  text-align: left !important;
  margin-bottom: 1.5rem;
}

/* ════ section-divider: valódi elem, nem ::after ════ */
/* Elrejti az összes ::after vonalat — section-divider veszi át */
.dew-gallery .section-title::after,
.dew-faq .section-title::after,
.dew-reviews .section-title::after {
  display: none !important;
}
.section-divider {
  width: 56px;
  height: 4px;
  background: var(--orange, #e8520a);
  border-radius: 2px;
  margin: .5rem 0 .7rem 0;
  flex-shrink: 0;
}

/* Container: flex column, balra */
.dew-gallery .container,
.dew-faq .container,
.dew-reviews .container {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  text-align: left !important;
}
.dew-gallery .section-label,
.dew-gallery .section-title,
.dew-gallery .section-sub,
.dew-faq .section-label,
.dew-faq .section-title,
.dew-faq .section-sub,
.dew-reviews .section-label,
.dew-reviews .section-title,
.dew-reviews .section-sub {
  text-align: left !important;
  width: 100%;
}

/* ════ FAQ accordion: teljes szélesség, JS fix ════ */
.faq-list { width: 100%; }
.faq-item { width: 100%; box-sizing: border-box; }
.faq-q { width: 100%; text-align: left; box-sizing: border-box; }

/* ════ FAQ: dupla ikon fix ════ */
/* Reset minden ::before / ::after a FAQ gombon és belsején */
.faq-q::before,
.faq-q::after {
  display: none !important;
  content: none !important;
}
.faq-q span::before {
  display: none !important;
  content: none !important;
}
/* A .chev maga csak a saját ::after-t tartja meg */
.faq-q .chev::before {
  display: none !important;
  content: none !important;
}
/* Csak egyetlen ::after a chev-ben */
.faq-q .chev {
  position: relative;
}
.faq-q .chev::after {
  content: '' !important;
  display: block !important;
  width: 8px !important;
  height: 8px !important;
  border-right: 2px solid #fff !important;
  border-bottom: 2px solid #fff !important;
  transform: rotate(45deg) !important;
  position: static !important;
  margin: auto !important;
  margin-bottom: 3px !important;
  flex-shrink: 0;
}
.faq-q[aria-expanded="true"] .chev::after {
  transform: rotate(225deg) !important;
  margin-bottom: -3px !important;
  margin-top: 3px !important;
}

/* ════ FAQ chev: SVG icon, no pseudo-element needed ════ */
.faq-q .chev {
  width: 28px !important;
  height: 28px !important;
  border-radius: 50% !important;
  background: var(--green, #1d5c2e) !important;
  flex-shrink: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: background .2s, transform .3s !important;
}
.faq-q .chev::before,
.faq-q .chev::after {
  display: none !important;
  content: none !important;
}
.faq-q .chev svg {
  transition: transform .3s;
  display: block;
}
.faq-q[aria-expanded="true"] .chev {
  background: var(--green-dark, #123d1e) !important;
}
.faq-q[aria-expanded="true"] .chev svg {
  transform: rotate(180deg);
}

/* ════ Reviews: subtext balra + fehér ════ */
.dew-reviews .section-sub {
  text-align: left !important;
  color: var(--muted, #4a5e45) !important;
  width: 100%;
}

/* ════ Enquiry: lead szöveg fehér ════ */
.dew-enquiry .eq-lead {
  color: rgba(255,255,255,.88) !important;
}
.dew-enquiry .enquiry-intro p,
.dew-enquiry .eq-lead {
  color: rgba(255,255,255,.88) !important;
}

/* ════ FINAL FIX: subtext balra minden widgetben ════ */
/* Az Elementor .elementor-widget-container text-align:center-t ad,
   ezt a specifikusabb selector-ral írjuk felül */
[data-widget_type="dew-faq-accordion.default"] .section-sub,
[data-widget_type="dew-gallery-carousel.default"] .section-sub,
[data-widget_type="dew-reviews.default"] .section-sub,
[data-widget_type="dew-package-cards.default"] .section-sub {
  text-align: left !important;
  display: block !important;
  margin-left: 0 !important;
  margin-right: auto !important;
}
/* Elementor widget-container inherit reset */
[data-widget_type="dew-faq-accordion.default"] .elementor-widget-container,
[data-widget_type="dew-gallery-carousel.default"] .elementor-widget-container,
[data-widget_type="dew-reviews.default"] .elementor-widget-container {
  text-align: left !important;
}

/* ════ Reviews: google summary balra ════ */
.dew-reviews .google-summary {
  align-self: flex-start !important;
  margin-left: 0 !important;
}
[data-widget_type="dew-reviews.default"] .google-summary {
  text-align: left !important;
  display: inline-flex !important;
}

/* ════ PACKAGES FINAL: match reference exactly ════ */
[data-widget_type="dew-package-cards.default"] .elementor-widget-container {
  text-align: left !important;
  padding: 0 !important;
}
[data-widget_type="dew-package-cards.default"] .section-label,
[data-widget_type="dew-package-cards.default"] .section-title,
[data-widget_type="dew-package-cards.default"] .section-sub {
  text-align: left !important;
}
[data-widget_type="dew-package-cards.default"] .section-title::after {
  margin-left: 0 !important;
}
/* pkg-grid: full width, no side margins, margin-top from reference */
[data-widget_type="dew-package-cards.default"] .pkg-grid {
  margin-top: 3rem !important;
  width: 100% !important;
  padding: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
/* Remove all previous conflicting packages flex hacks */
.dew-packages .container {
  display: block !important;
}

/* ════ PACKAGE CARD IMAGE: bulletproof full-bleed fix ════ */
.pkg-card,
.pkg-card-inner,
.pkg-front,
.pkg-back,
.pkg-img {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  display: block !important;
}
.pkg-img {
  margin: 0 !important;
  padding: 0 !important;
}
.pkg-img img {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  position: absolute !important;
  inset: 0 !important;
}
.pkg-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 1.2rem !important;
}
.pkg-grid .pkg-card {
  min-width: 0 !important;
  overflow: hidden !important;
}
@media(max-width:900px) { .pkg-grid { grid-template-columns: repeat(2,1fr) !important; gap: 1rem !important; } }
@media(max-width:600px) { .pkg-grid { grid-template-columns: 1fr !important; gap: .8rem !important; } .pkg-card { height: 300px !important; } }

/* ════ GALLERY: fekvő képek bulletproof fix ════ */
.gallery-item {
  aspect-ratio: 3/4 !important;
  display: block !important;
  position: relative !important;
  overflow: hidden !important;
}
.gallery-item img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* ════ GALLERY NAV: bulletproof visibility ════ */
.gallery-nav-row {
  display: flex !important;
  gap: .8rem !important;
  justify-content: center !important;
  margin-top: 1.8rem !important;
  width: min(1180px, 92%) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.gallery-nav {
  width: 48px !important;
  height: 48px !important;
  border-radius: 50% !important;
  background: rgba(29,92,46,.1) !important;
  border: 2px solid rgba(29,92,46,.2) !important;
  color: var(--green, #1d5c2e) !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: background .15s !important;
  flex-shrink: 0;
  opacity: 1 !important;
  visibility: visible !important;
}
.gallery-nav:hover:not(:disabled) { background: var(--orange, #e8520a) !important; border-color: var(--orange, #e8520a) !important; color: #fff !important; }
.gallery-nav:disabled { opacity: .3 !important; cursor: default !important; }
.gallery-nav svg { width: 20px !important; height: 20px !important; pointer-events: none; }

/* ════ HERO mobil: video háttér teljes kitöltés ════ */
@media(max-width:860px){
  .dew-hero.hero {
    min-height: 100vh !important;
    height: auto;
  }
  .dew-hero .video-wrap {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
  }
  .dew-hero video {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }
  .dew-hero .hero-content {
    min-height: 100vh;
    padding: 2rem 0 2.5rem !important;
    /* Mobilon a szöveg vertikálisan is középre kerül (nem alulra) */
    align-items: center !important;
  }
  .dew-hero .hero-inner {
    /* Vízszintes középre igazítás mobilon (a képernyő közepén) */
    text-align: center !important;
    align-items: center !important;
  }
  .dew-hero h1 {
    font-size: clamp(2.4rem, 11vw, 3.5rem) !important;
    text-align: center !important;
  }
  .dew-hero .hero-sub {
    text-align: center !important;
  }
  .dew-hero .hero-btns {
    justify-content: center !important;
  }
}

/* ════ PACKAGES mobil: 1 oszlop, teljes szélesség, kép teljes kitöltés ════ */
@media(max-width:600px){
  /* Oldalsó padding a szekción — így a kártyák nem érnek a képernyő széléig */
  .dew-packages.packages {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
    /* Alsó padding a szekció végén */
    padding-bottom: 2rem !important;
  }
  .pkg-grid {
    grid-template-columns: 1fr !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  .pkg-card {
    height: 300px !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  .pkg-card-inner,
  .pkg-front,
  .pkg-back,
  .pkg-img {
    width: 100% !important;
    max-width: 100% !important;
  }
  .pkg-img img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }
}



/* ======================================================================
   Photo Gallery Reviews widget (.pgr-*)
   Hozzáadva: v1.1.0 — az eredeti CSS-t NEM módosítottuk
   ====================================================================== */

/* Elementor padding/overflow nullázás.
   FONTOS: overflow:visible kell a szülőkön hogy a full-width pgr-wrap
   ne legyen levágva az Elementor wrapper-ek által. */
.elementor-widget-dew-photo-gallery-reviews .elementor-widget-container {
  padding: 0 !important;
  margin:  0 !important;
  overflow: visible !important;
}
.elementor-widget-dew-photo-gallery-reviews {
  overflow: visible !important;
}
.elementor-column:has(.elementor-widget-dew-photo-gallery-reviews) {
  padding: 0 !important;
  overflow: visible !important;
}
.elementor-column:has(.elementor-widget-dew-photo-gallery-reviews) .elementor-widget-wrap {
  padding: 0 !important;
  overflow: visible !important;
}
[data-widget_type="dew-photo-gallery-reviews.default"] .elementor-widget-container {
  padding: 0 !important;
  margin: 0 !important;
  overflow: visible !important;
}
/* A section és column szintű Elementor wrapper-ek is */
.elementor-section:has([data-widget_type="dew-photo-gallery-reviews.default"]) {
  overflow: visible !important;
}

/* A dew-pgr section maga: overflow visible hogy a pgr-wrap kilépjen.
   FONTOS: a theme.css-ben .reviews { overflow: hidden } van — ezt kell
   felülírni a .dew-pgr osztállyal együtt, hogy a full-width pgr-wrap
   ne legyen levágva. */
.dew-pgr,
.dew-pgr.reviews {
  overflow: visible !important;
}

/* ── Subpage Hero: az Elementor .e-con konténer saját alapértelmezett
   paddingjának (kb. 10px minden oldalon, --container-default-padding-*
   custom property-kből) nullázása — hogy a hero TÉNYLEG a navbar aljához
   és a képernyő széléhez érjen, semmiféle maradék rés nélkül. */
.e-con:has(.elementor-widget-dew-subpage-hero) {
  --padding-top: 0 !important;
  --padding-bottom: 0 !important;
  --padding-left: 0 !important;
  --padding-right: 0 !important;
}
.e-con:has(.elementor-widget-dew-subpage-hero) > .e-con-inner {
  padding: 0 !important;
}

/* Scrollozható rács — széltől-szélig, JS-vezérelt pixel-pontos szélesség.
   MIÉRT NEM 100vw: a `100vw` CSS egység a scrollbar szélességét is
   beleszámítja, míg a tényleges látható tartalmi terület (amihez a
   szülő elemek igazodnak) annál 10-20px-szel keskenyebb — emiatt a
   klasszikus "100vw breakout" trükk asztali böngészőkben (ahol van
   helyfoglaló scrollbar) néhány pixeles rést hagyott a jobb szélen.
   A --pgr-vw custom property-t a widgets.js tölti fel futásidőben a
   valódi document.documentElement.clientWidth értékkel (ami már
   figyelembe veszi a scrollbart), ez garantáltan pixel-pontos.
   Fallback 100vw, amíg a JS le nem fut. */
.dew-pgr {
  position: relative;
}
.pgr-wrap {
  position: relative;
  width: var(--pgr-vw, 100vw);
  margin-left: calc(50% - (var(--pgr-vw, 100vw) / 2));
  margin-top: 2.2rem;
  box-sizing: border-box;
  /* NEM flex többé: a nyilak position:absolute-tel úsznak a viewport FÖLÖTT,
     nem foglalnak saját helyet. Így a .pgr-viewport tényleg 0-tól a
     teljes szélességig ér, nincs "fehér sáv" a gomboknak fenntartott
     helyen (ami fehér háttéren üres résznek tűnt). */
}

/* Viewport: MOST a teljes .pgr-wrap szélességet foglalja el, edge-to-edge */
.pgr-viewport {
  width: 100%;
  overflow: hidden;
  cursor: grab;
}
.pgr-viewport:active { cursor: grabbing; }

/* Track */
.pgr-track {
  display: flex;
  flex-direction: row;
  gap: var(--pgr-gap, 6px);
  width: max-content;
  will-change: transform;
  transition: transform .4s cubic-bezier(.4,0,.2,1);
  user-select: none;
}

/* Oszlop: 2 cella egymás alatt */
.pgr-col {
  display: flex;
  flex-direction: column;
  gap: var(--pgr-gap, 6px);
  flex-shrink: 0;
}

/* Cella: szigorúan 1:1, minden override ellen !important */
.pgr-cell {
  position: relative !important;
  overflow: hidden !important;
  border-radius: 4px;
  flex-shrink: 0;
  width: var(--pgr-cell, 240px) !important;
  height: var(--pgr-cell, 240px) !important;
  box-sizing: border-box !important;
  display: block !important;
}

/* Kép: tölti ki a 1:1 cellát — minden image-resize override ellen */
.pgr-cell--image img {
  display: block !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center !important;
}

/* Placeholder (Elementor szerkesztőben kép nélkül) */
.pgr-empty {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #e8f4ec;
  border: 2px dashed #1d5c2e;
  color: #1d5c2e;
  font-size: .8rem;
  font-style: italic;
  opacity: .7;
}

/* Instagram ikon elrejtve */
.pgr-insta {
  display: none !important;
}

/* Vélemény kártya — az új .pgr-cell--review felülírja a fentebb definiált duplikátumot */
.pgr-cell--review {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 1.4rem 1.2rem;
  overflow: hidden;  /* ne lógjon ki a fix magasságú cellából */
}
.pgr-cell-inner {
  display: flex;
  flex-direction: column;
  gap: .5rem;
  overflow: hidden;
  width: 100%;
}
.pgr-stars {
  font-size: 1.1rem;
  letter-spacing: .08em;
  color: #f2a900;
  line-height: 1;
}
.pgr-review-text {
  font-size: .92rem;
  line-height: 1.5;
}
.pgr-author {
  display: flex;
  align-items: center;
  gap: .3rem;
  font-family: var(--font-head, "Barlow Condensed", sans-serif);
  font-weight: 700;
  font-size: .88rem;
  letter-spacing: .03em;
  text-transform: uppercase;
}

/* Nyíl gombok — a képsor FÖLÖTT úsznak (position:absolute), nem foglalnak
   saját flex-helyet. Így a .pgr-viewport a teljes szélességig ér, és nincs
   fehér "sáv" ott, ahol korábban a gomboknak fenntartott flex-oszlop volt. */
.pgr-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: none;
  background: #fff;
  color: var(--green, #1d5c2e);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 3px 10px rgba(26,10,14,.25);
  transition: background .2s, transform .15s, opacity .2s;
  z-index: 5;
}
.pgr-prev { left: 10px; }
.pgr-next { right: 10px; }
.pgr-nav:hover  { background: var(--green, #1d5c2e); color: #fff; transform: translateY(-50%) scale(1.08); }
.pgr-nav:active { transform: translateY(-50%) scale(.94); }
.pgr-nav[disabled] { opacity: 0; pointer-events: none; }
.pgr-nav svg { width: 20px; height: 20px; }

/* Mobilon kisebb nyilak, de megtartjuk őket (a képek fölött úsznak) */
@media (max-width: 600px) {
  .pgr-nav { width: 34px; height: 34px; }
  .pgr-nav svg { width: 16px; height: 16px; }
  .pgr-prev { left: 6px; }
  .pgr-next { right: 6px; }

  /* Mobilon a track cellamérete a viewport felének feleljen meg, hogy
     egyszerre 2 cella látszódjon egymás mellett (2×2 rács). A nyilak
     MOST a kép fölött úsznak (position:absolute), nem foglalnak flex-
     helyet — ezért a teljes (--pgr-vw) szélesség osztható 2 felé, csak
     a köztük lévő gap-et kell levonni. */
  .pgr-track {
    --pgr-cell: calc((var(--pgr-vw, 100vw) - 6px) / 2) !important;
  }
  .pgr-cell {
    width: var(--pgr-cell) !important;
    height: var(--pgr-cell) !important;
  }

  /* Review kártya: kisebb szöveg + kisebb padding, hogy a lényegesen
     kisebb (2 oszlop/képernyő) cellába is beleférjen a tartalom. */
  .pgr-cell--review {
    padding: .7rem .65rem;
  }
  .pgr-cell-inner {
    gap: .3rem;
  }
  .pgr-stars {
    font-size: .7rem;
    letter-spacing: .05em;
  }
  .pgr-review-text {
    font-size: .68rem;
    line-height: 1.32;
    /* Sortörés-korlát, hogy biztosan beleférjen a fix magasságú cellába */
    display: -webkit-box;
    -webkit-line-clamp: 5;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .pgr-author {
    font-size: .62rem;
    letter-spacing: .01em;
  }
  .pgr-author svg {
    width: 11px;
    height: 11px;
  }
}

@media (max-width: 400px) {
  .pgr-track {
    --pgr-cell: calc((var(--pgr-vw, 100vw) - 6px) / 2) !important;
  }
  .pgr-review-text {
    -webkit-line-clamp: 4;
  }
}

/* Csökkentett mozgás */
@media (prefers-reduced-motion: reduce) {
  .pgr-track { transition: none; will-change: auto; }
}


/* ======================================================================
   Subpage Hero widget (.dew-subpage-hero / .dsh-*)
   — Pontosan a főoldali .dew-hero mintájára épül:
     teljes szélességű, nulla padding a szülő Elementor szekciókon,
     a háttér (kép/videó/szín) teljesen kitölti a területet,
     a szöveg bal-igazítva, vertikálisan középre (vagy Elementorban állítható).
   ====================================================================== */

/* Elementor wrapper: nulla padding + nulla margin — pontosan mint a hero-video-nál */
.elementor-widget-dew-subpage-hero,
.elementor-widget-dew-subpage-hero .elementor-widget-container {
  padding: 0 !important;
  margin: 0 !important;
  line-height: 0;
  font-size: 0;
}
.elementor-widget-dew-subpage-hero .dew-subpage-hero { font-size: 17px; }

/* Szülő section/container is nulla padding */
.e-con:has(.elementor-widget-dew-subpage-hero),
.elementor-section:has(.elementor-widget-dew-subpage-hero) {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
[data-widget_type="dew-subpage-hero.default"] .elementor-widget-container {
  padding: 0 !important;
  margin: 0 !important;
}

/* Section alap — pontosan mint .dew-hero.hero, PLUSZ full-bleed kitörés.
   MIÉRT KELL EZ: a főoldali .dew-hero a front-page.php-n keresztül fut,
   ami NEM csomagolja .container-be a tartalmat (lásd get_header() után
   közvetlenül the_content()). Az aloldalak viszont page.php-n futnak,
   ahol a tartalom egy <div class="container entry-wrap"> belsejében van
   — a .container CSS szabálya `width:min(1200px,92%)`, ami mindenképp
   keskenyebbre szorítja a widgetet, FÜGGETLENÜL attól, hogy az Elementor
   saját paddingjét nulláztuk. Emiatt kell aktív kitörés: a --dsh-vw
   custom property-t a widgets.js tölti fel futásidőben a TÉNYLEGESEN
   mért, pixel-pontos pozícióval (ugyanaz a technika, mint a Photo
   Gallery Reviews widget full-bleed megoldásában). */
.dew-subpage-hero {
  position: relative;
  background: var(--green-dark, #123d1e);
  overflow: hidden;
  /* min-height Elementor inline style-ból jön (pl. 55vh) */
  display: flex;
  flex-direction: column;
  /* NINCS !important itt: ez a szabály csak egy CSS-fallback, amíg a
     widgets.js le nem fut. A JS ténylegesen MÉRI a pozíciót és inline
     style-lal írja felül ezt (hero.style.width/marginLeft) — egy plain
     inline style mindig felülírja a nem-!important külső CSS-t, ez a
     kívánt, pontosabb viselkedés. Ha itt !important-ot tennénk, az
     PONT A JS-FIXET ÍRNÁ FELÜL örökre, ami rontana a helyzeten. */
  width: var(--dsh-vw, 100vw);
  margin-left: calc(50% - (var(--dsh-vw, 100vw) / 2));
  box-sizing: border-box;
}

/* Háttérkép — teljesen kitölti, mint a video-wrap */
.dsh-bg-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center; /* Elementor inline style felülírja */
  display: block;
  z-index: 0;
}

/* Háttérvideó — ugyanúgy mint .dew-hero video */
.dsh-bg-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}

/* Sötét overlay (kép és videó fölött) — mint .dew-hero .video-wrap::after */
.dsh-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}

/* Tartalom burkoló — pontosan mint .dew-hero .hero-content */
.dsh-content {
  position: relative;
  z-index: 2;
  flex: 1;
  display: flex;
  align-items: flex-end;   /* alapértelmezett: lent — Elementor inline style felülírja */
  padding: 2.5rem 0 3rem;  /* pontosan mint .dew-hero .hero-content */
  width: 100%;
}

/* Belső wrapper — mint .dew-hero .hero-inner */
.dsh-inner {
  display: flex;
  flex-direction: column;
  gap: 0;
  width: 100%;
  max-width: 680px;
}

/* Főcím — pontosan mint .dew-hero h1 */
.dsh-heading {
  font-family: var(--font-head, 'Barlow Condensed', sans-serif);
  font-weight: 900;
  font-style: italic;
  font-size: clamp(2.5rem, 5vw, 4.5rem);
  line-height: .9;
  color: #fff;
  letter-spacing: -.01em;
  margin: 0 0 1.4rem;
  text-align: left;
}
.dsh-heading .accent { color: var(--orange, #e8520a); display: block; }

/* Alcím — mint .dew-hero .hero-sub */
.dsh-sub {
  font-size: 1rem;
  line-height: 1.7;
  color: rgba(255,255,255,.78);
  max-width: 520px;
  margin: 1rem 0 1.5rem;
  text-align: left;
}

/* Gomb */
.dsh-btn {
  display: inline-flex;
  align-items: center;
}

/* ── Mobil — pontosan mint a főoldali hero ── */
@media (max-width: 860px) {
  .dew-subpage-hero {
    min-height: 100vh !important;
    height: auto;
  }
  /* Háttérkép pozícionálás mobilon */
  .dsh-bg-img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
  }
  /* Videó mobilon */
  .dsh-bg-video {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }
  /* Tartalom: 100vh, középre, mint .dew-hero .hero-content mobilon */
  .dsh-content {
    min-height: 100vh;
    padding: 2rem 0 2.5rem !important;
    align-items: center !important;
  }
  /* Belső wrapper: bal igazítás */
  .dsh-inner {
    text-align: left !important;
    align-items: flex-start !important;
  }
  .dsh-heading {
    font-size: clamp(2.4rem, 11vw, 3.5rem) !important;
    text-align: left !important;
  }
  .dsh-sub {
    text-align: left !important;
    max-width: 100%;
  }
}


/* ══════════════════════════════════════════════════════════════════════
   ÚJ WIDGETEK (2026-07-02) — általános célú, több oldalon használható
   ══════════════════════════════════════════════════════════════════════ */

/* ── CTA Banner ── */
.dew-cta {
  position: relative;
  overflow: hidden;
  padding: 4rem 0;
}
.dew-cta-bg-img {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; z-index: 0;
}
.dew-cta-overlay {
  position: absolute; inset: 0; background: rgba(0,0,0,.45); z-index: 1;
}
.dew-cta-inner {
  position: relative; z-index: 2;
  display: flex; align-items: center; gap: 3rem;
}
.dew-cta--centered .dew-cta-inner {
  flex-direction: column; text-align: center;
}
.dew-cta--split .dew-cta-inner {
  justify-content: space-between;
}
.dew-cta-content { flex: 1 1 auto; max-width: 640px; }
.dew-cta--centered .dew-cta-content { max-width: 720px; margin: 0 auto; }
.dew-cta-heading {
  font-family: var(--font-head, 'Barlow Condensed', sans-serif);
  font-weight: 900; font-style: italic;
  font-size: clamp(1.8rem, 4vw, 2.8rem); line-height: 1.05;
  margin: 0 0 .8rem;
}
.dew-cta-sub { font-size: 1.05rem; line-height: 1.6; opacity: .92; margin: 0 0 1.6rem; }
.dew-cta-btns { display: flex; gap: 1rem; flex-wrap: wrap; }
.dew-cta--centered .dew-cta-btns { justify-content: center; }
.dew-cta-image { flex: 0 0 auto; max-width: 420px; }
.dew-cta-image img { border-radius: var(--radius, 14px); width: 100%; display: block; }
@media (max-width: 780px) {
  .dew-cta--split .dew-cta-inner { flex-direction: column; text-align: center; }
  .dew-cta--split .dew-cta-btns { justify-content: center; }
}

/* ── Countdown / Urgency Bar ── */
.dew-countdown { padding: 1.1rem 0; }
.dew-countdown-inner {
  display: flex; align-items: center; justify-content: center;
  gap: 1.5rem; flex-wrap: wrap; text-align: center;
}
.dew-countdown-label {
  font-family: var(--font-head, 'Barlow Condensed', sans-serif);
  font-weight: 700; font-style: italic; text-transform: uppercase;
  letter-spacing: .03em; font-size: 1rem;
}
.dew-countdown-clock { display: flex; gap: .7rem; }
.dew-cd-unit {
  display: flex; flex-direction: column; align-items: center;
  min-width: 46px;
}
.dew-cd-num {
  font-family: var(--font-head, 'Barlow Condensed', sans-serif);
  font-weight: 900; font-size: 1.5rem; line-height: 1;
}
.dew-cd-suffix { font-size: .68rem; text-transform: uppercase; opacity: .85; letter-spacing: .05em; }
.dew-countdown-btn {
  background: rgba(255,255,255,.16); color: inherit;
  padding: .5rem 1.3rem; border-radius: 999px;
  font-family: var(--font-head, 'Barlow Condensed', sans-serif);
  font-weight: 700; font-style: italic; text-transform: uppercase;
  font-size: .85rem; text-decoration: none; white-space: nowrap;
  transition: background .2s;
}
.dew-countdown-btn:hover { background: rgba(255,255,255,.3); }
.dew-countdown.is-expired .dew-countdown-clock { display: none; }

/* ── Team Grid ── */
.dew-team { padding: 5rem 0; }
.dew-team-grid {
  display: grid;
  grid-template-columns: repeat(var(--dew-team-cols, 4), 1fr);
  gap: 1.8rem;
  margin-top: 2.5rem;
}
.dew-team-card {
  background: var(--white, #fff);
  border-radius: var(--radius, 14px);
  overflow: hidden;
  box-shadow: var(--shadow, 0 10px 30px rgba(26,10,14,.12));
  transition: transform .2s;
}
.dew-team-card:hover { transform: translateY(-4px); }
.dew-team-photo { aspect-ratio: 1/1; overflow: hidden; }
.dew-team-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.dew-team-info { padding: 1.2rem 1.3rem 1.5rem; }
.dew-team-name {
  font-family: var(--font-head, 'Barlow Condensed', sans-serif);
  font-weight: 800; font-style: italic;
  font-size: 1.15rem; margin: 0 0 .2rem;
}
.dew-team-role {
  display: block; font-size: .82rem; font-weight: 700;
  color: var(--green, #1d5c2e); text-transform: uppercase; letter-spacing: .03em;
  margin-bottom: .6rem;
}
.dew-team-bio { font-size: .9rem; line-height: 1.55; color: var(--muted, #5b4a4f); margin: 0 0 .8rem; }
.dew-team-social { display: flex; gap: .6rem; }
.dew-team-social a {
  width: 32px; height: 32px; border-radius: 50%;
  background: var(--green-pale, #e8f4ec); color: var(--green, #1d5c2e);
  display: flex; align-items: center; justify-content: center;
  transition: background .2s, color .2s;
}
.dew-team-social a:hover { background: var(--green, #1d5c2e); color: #fff; }
@media (max-width: 900px) { .dew-team-grid { grid-template-columns: repeat(2, 1fr) !important; } }
@media (max-width: 560px) { .dew-team-grid { grid-template-columns: 1fr !important; } }

/* ── Single Testimonial ── */
.dew-testimonial { padding: 4.5rem 0; text-align: center; }
.dew-testimonial-track { max-width: 760px; margin: 0 auto; position: relative; }
.dew-testimonial-slide { display: none; }
.dew-testimonial-slide.is-active { display: block; animation: dewFadeIn .4s ease; }
@keyframes dewFadeIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
.dew-testimonial-stars { color: var(--yellow, #f2a900); font-size: 1.3rem; letter-spacing: .1em; margin-bottom: 1rem; }
.dew-testimonial-quote {
  font-family: var(--font-head, 'Barlow Condensed', sans-serif);
  font-weight: 700; font-style: italic;
  font-size: clamp(1.3rem, 3vw, 1.9rem); line-height: 1.35;
  margin: 0 0 1.6rem;
}
.dew-testimonial-author { display: flex; align-items: center; justify-content: center; gap: .8rem; }
.dew-testimonial-avatar { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; }
.dew-testimonial-author-text { display: flex; flex-direction: column; text-align: left; }
.dew-testimonial-name { font-weight: 800; font-family: var(--font-head, 'Barlow Condensed', sans-serif); text-transform: uppercase; letter-spacing: .02em; }
.dew-testimonial-role { font-size: .85rem; opacity: .8; }
.dew-testimonial-dots { display: flex; justify-content: center; gap: .5rem; margin-top: 2rem; }
.dew-testimonial-dot {
  width: 9px; height: 9px; border-radius: 50%; border: none;
  background: currentColor; opacity: .3; cursor: pointer; padding: 0;
  transition: opacity .2s, transform .2s;
}
.dew-testimonial-dot.is-active { opacity: 1; transform: scale(1.25); }

/* ── Process / Timeline Steps ── */
.dew-process { padding: 5rem 0; }
.dew-process-track { margin-top: 3rem; }
.dew-process-track--horizontal {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 2rem;
}
.dew-process-track--vertical { display: flex; flex-direction: column; gap: 2rem; max-width: 640px; }
.dew-process-track--vertical .dew-process-step { display: flex; gap: 1.3rem; align-items: flex-start; }
.dew-process-step { text-align: center; }
.dew-process-track--vertical .dew-process-step { text-align: left; }
.dew-process-marker {
  width: 62px; height: 62px; border-radius: 50%;
  background: var(--green, #1d5c2e); color: #fff;
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto 1rem; flex-shrink: 0;
}
.dew-process-track--vertical .dew-process-marker { margin: 0; }
.dew-process-icon { font-size: 1.6rem; }
.dew-process-num {
  font-family: var(--font-head, 'Barlow Condensed', sans-serif);
  font-weight: 900; font-style: italic; font-size: 1.5rem;
}
.dew-process-title {
  font-family: var(--font-head, 'Barlow Condensed', sans-serif);
  font-weight: 800; font-style: italic;
  font-size: 1.15rem; margin: 0 0 .4rem;
}
.dew-process-text { font-size: .92rem; line-height: 1.55; color: var(--muted, #5b4a4f); margin: 0; }

/* ── Tabs / Accordion (generic) ── */
.dew-tabs-accordion { padding: 4rem 0; }
.dew-ta-wrap { margin-top: 2.2rem; }

/* Tab nav (desktop-tabs módban) */
.dew-ta-tabnav { display: flex; gap: .5rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.dew-ta-tabbtn {
  padding: .65rem 1.3rem; border-radius: 999px; border: 2px solid var(--green, #1d5c2e);
  background: transparent; color: var(--green, #1d5c2e); cursor: pointer;
  font-family: var(--font-head, 'Barlow Condensed', sans-serif);
  font-weight: 700; font-style: italic; text-transform: uppercase; font-size: .9rem;
  transition: background .2s, color .2s;
}
.dew-ta-tabbtn.is-active, .dew-ta-tabbtn:hover { background: var(--green, #1d5c2e); color: #fff; }

/* Accordion item alap (mindkét módban ez a struktúra, CSS dönti el a viselkedést) */
.dew-ta-item { border-bottom: 1px solid var(--band, #e4e9dd); }
.dew-ta-accbtn {
  width: 100%; display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; padding: 1.1rem 0; background: none; border: none; cursor: pointer;
  text-align: left;
  font-family: var(--font-head, 'Barlow Condensed', sans-serif);
  font-weight: 700; font-style: italic; font-size: 1.05rem;
  color: var(--ink, #1a0a0e);
}
.dew-ta-chev { flex-shrink: 0; transition: transform .25s; }
.dew-ta-item.is-active .dew-ta-chev { transform: rotate(180deg); }
.dew-ta-panel { max-height: 0; overflow: hidden; transition: max-height .3s ease; }
.dew-ta-item.is-active .dew-ta-panel { max-height: 800px; }
.dew-ta-panel-inner { padding: 0 0 1.3rem; font-size: .95rem; line-height: 1.6; color: var(--muted, #5b4a4f); }

/* Tabs módban desktopon: nav gombok látszanak, accordion fejlécek (accbtn) elrejtve,
   csak az aktív panel jelenik meg nyitva */
@media (min-width: 781px) {
  .dew-ta--tabs .dew-ta-accbtn { display: none; }
  .dew-ta--tabs .dew-ta-item { border-bottom: none; }
  .dew-ta--tabs .dew-ta-panel { max-height: none; display: none; }
  .dew-ta--tabs .dew-ta-item.is-active .dew-ta-panel { display: block; }
  .dew-ta--tabs .dew-ta-panel-inner { padding: 0; }
}
/* Mobilon a "tabs" mód is accordion-ként viselkedik */
@media (max-width: 780px) {
  .dew-ta--tabs .dew-ta-tabnav { display: none; }
}
.dew-ta--accordion .dew-ta-tabnav { display: none; }

/* ── Before / After Slider ── */
.dew-before-after { padding: 4.5rem 0; }
.dew-ba-frame {
  position: relative;
  width: 100%;
  max-width: 900px;
  margin: 2rem auto 0;
  overflow: hidden;
  border-radius: var(--radius, 14px);
  cursor: ew-resize;
  user-select: none;
  box-shadow: var(--shadow, 0 10px 30px rgba(26,10,14,.12));
}
.dew-ba-ratio-16-9 { aspect-ratio: 16/9; }
.dew-ba-ratio-4-3  { aspect-ratio: 4/3; }
.dew-ba-ratio-1-1  { aspect-ratio: 1/1; }
.dew-ba-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.dew-ba-before-wrap { position: absolute; inset: 0; overflow: hidden; }
.dew-ba-before-wrap .dew-ba-img {
  /* a "before" kép a KERET teljes szélességét kapja, csak a wrap vágja le */
  width: var(--dew-ba-frame-w, 900px);
  max-width: none;
}
.dew-ba-tag {
  position: absolute; top: 14px;
  background: rgba(0,0,0,.6); color: #fff;
  font-family: var(--font-head, 'Barlow Condensed', sans-serif);
  font-weight: 700; font-style: italic; text-transform: uppercase;
  font-size: .78rem; letter-spacing: .04em;
  padding: .3rem .8rem; border-radius: 999px; z-index: 3; pointer-events: none;
}
.dew-ba-tag--before { left: 14px; }
.dew-ba-tag--after { right: 14px; }
.dew-ba-handle {
  position: absolute; top: 0; bottom: 0;
  width: 3px; background: #fff;
  transform: translateX(-50%);
  z-index: 4; pointer-events: none;
  box-shadow: 0 0 8px rgba(0,0,0,.4);
}
.dew-ba-handle-grip {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%);
  width: 40px; height: 40px; border-radius: 50%; background: #fff;
  display: flex; align-items: center; justify-content: center;
  color: var(--green, #1d5c2e);
  box-shadow: 0 2px 10px rgba(0,0,0,.3);
}
.dew-ba-range {
  position: absolute; inset: 0; width: 100%; height: 100%;
  opacity: 0; cursor: ew-resize; z-index: 5; margin: 0;
}

/* ══════════ Category Mosaic (dew-category-mosaic) — 2026-07-03 ══════════ */
.dew-cat-mosaic .dew-cm-grid{
  display:grid;
  grid-template-columns:repeat(var(--dew-cm-cols,3),1fr);
  grid-auto-rows:var(--dew-cm-rowh,225px);
  gap:18px;
}
.dew-cm-tile{
  position:relative;border-radius:20px;overflow:hidden;
  display:flex;align-items:flex-end;padding:20px;
  color:#fff;font-size:26px;line-height:1.15;font-weight:700;
  text-decoration:none;isolation:isolate;
  box-shadow:0 18px 48px -18px rgba(20,30,38,.35);
}
.dew-cm-tile img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  z-index:-2;transition:transform .5s ease;
}
.dew-cm-tile::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,transparent 42%,rgba(20,30,38,.72));
}
.dew-cm-tile:hover img{transform:scale(1.08) rotate(1deg)}
.dew-cm-tile:focus-visible{outline:3px solid var(--dew-cm-accent,#E8452C);outline-offset:2px}
.dew-cm-tile--big{grid-row:span 2;font-size:32px}
.dew-cm-badge{
  position:absolute;top:16px;left:20px;
  font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  background:var(--dew-cm-accent,#E8452C);padding:5px 12px;border-radius:99px;
}
@media (max-width:900px){
  .dew-cat-mosaic .dew-cm-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:560px){
  .dew-cat-mosaic .dew-cm-grid{grid-template-columns:1fr}
  .dew-cm-tile--big{grid-row:auto}
}
