/* Vishmi Content Widgets v1.0.1 — scoped; inherits Elementor global site colors. */
.vishmi-widget {
  --vishmi-primary: var(--e-global-color-primary, #266c4a);
  --vishmi-accent: var(--e-global-color-accent, #b49a61);
  --vishmi-ink: var(--e-global-color-text, #19352b);
  --vishmi-muted: #61746b;
  --vishmi-surface: rgba(255,255,255,.78);
  --vishmi-border: rgba(55,96,69,.12);
  box-sizing: border-box;
  width: 100%;
  color: var(--vishmi-ink);
  font-family: inherit;
}
.vishmi-widget *, .vishmi-widget *::before, .vishmi-widget *::after { box-sizing: border-box; }
.vishmi-widget :where(button, a) { -webkit-tap-highlight-color: transparent; }
.vishmi-widget :where(button, a):focus-visible { outline: 2px solid var(--vishmi-primary); outline-offset: 3px; }
.vishmi-widget .vishmi-shell { width: 100%; max-width: 1240px; margin-inline: auto; padding: 28px 16px; }
.vishmi-widget--full .vishmi-shell { max-width: none !important; }
.vishmi-intro { margin-bottom: 30px; }
.vishmi-intro__eyebrow { display: flex; gap: 11px; align-items: center; justify-content: inherit; font-size: 11px; line-height: 1.5; font-weight: 500; text-transform: uppercase; letter-spacing: .18em; color: var(--vishmi-primary); margin-bottom: 12px; }
.vishmi-intro__line { display: inline-block; height: 2px; width: 30px; flex: 0 0 30px; border-radius: 9px; background: var(--vishmi-accent); }
.vishmi-intro__title { margin: 0; font-family: inherit; font-size: clamp(27px, 3.4vw, 44px); line-height: 1.15; letter-spacing: -.038em; font-weight: 500; color: var(--vishmi-ink); }
.vishmi-intro__description { color: var(--vishmi-muted); margin: 12px 0 0; line-height: 1.72; max-width: 690px; font-size: 14px; font-weight: 400; }
.vishmi-intro[style*="text-align: center"] .vishmi-intro__eyebrow { justify-content: center; }
.vishmi-intro[style*="text-align: center"] .vishmi-intro__description { margin-inline: auto; }
.vishmi-intro[style*="text-align: right"] .vishmi-intro__eyebrow { justify-content: flex-end; }
.vishmi-intro[style*="text-align: right"] .vishmi-intro__description { margin-left: auto; }
.vishmi-empty { padding: 35px 25px; border-radius: 18px; color: var(--vishmi-muted); background: rgba(243,248,243,.82); border: 1px dashed var(--vishmi-border); text-align: center; font-size: 14px; }
/* WordPress blog cards */
.vishmi-blog__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 24px; row-gap: 28px; align-items: stretch; }
.vishmi-blog__card { min-width: 0; display: flex; flex-direction: column; overflow: hidden; position: relative; background: var(--vishmi-surface); border: 1px solid var(--vishmi-border); border-radius: 20px; box-shadow: 0 12px 32px rgba(22,64,42,.065); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); transition: transform .34s cubic-bezier(.2,.8,.3,1), box-shadow .34s ease, border-color .34s ease; }
.vishmi-blog__card:hover { transform: translateY(-7px); box-shadow: 0 22px 54px rgba(17,62,38,.14); border-color: rgba(52,105,69,.26); }
.vishmi-blog__image { display: block; width: 100%; aspect-ratio: 100/64; background: #deece1; overflow: hidden; position: relative; flex-shrink: 0; }
.vishmi-blog__image img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .58s cubic-bezier(.18,.66,.3,1); }
.vishmi-blog__card:hover .vishmi-blog__image img { transform: scale(1.06); }
.vishmi-blog__placeholder { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; color: rgba(39,104,68,.36); background: radial-gradient(circle at 25% 20%, rgba(255,255,255,.7), transparent 50%), linear-gradient(145deg,#e7f0e5,#cfdfd2); }
.vishmi-blog__body { flex: 1; display: flex; flex-direction: column; align-items: flex-start; padding: 22px 23px 24px; }
.vishmi-blog__badge { display: inline-flex; align-items: center; background: rgba(38,108,74,.095); color: var(--vishmi-primary); padding: 6px 12px; border-radius: 999px; font-size: 10px; line-height: 1.45; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; margin-bottom: 16px; text-decoration: none !important; transition: background .2s; }
.vishmi-blog__badge:hover { background: rgba(38,108,74,.17); color: var(--vishmi-primary); }
.vishmi-blog__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 11px; font-size: 11px; color: #829087; font-weight: 400; line-height: 1.4; }
.vishmi-blog__meta-dot { color: var(--vishmi-accent); }
.vishmi-blog__title { font-size: clamp(18px, 1.7vw, 22px); line-height: 1.35; font-weight: 500; letter-spacing: -.023em; margin: 0 0 11px; color: var(--vishmi-ink); }
.vishmi-blog__title a { color: inherit; text-decoration: none !important; transition: color .2s ease; }
.vishmi-blog__title a:hover { color: var(--vishmi-primary); }
.vishmi-blog__excerpt { color: var(--vishmi-muted); line-height: 1.72; font-size: 13px; font-weight: 400; margin: 0 0 22px; }
.vishmi-blog__link { display: inline-flex; gap: 9px; align-items: center; color: var(--vishmi-primary); font-size: 12px; font-weight: 500; text-decoration: none !important; margin-top: auto; transition: gap .25s, color .25s; }
.vishmi-blog__link svg { display: block; }
.vishmi-blog__link:hover { gap: 15px; color: var(--vishmi-primary); }
/* Navigation */
.vishmi-pagination { margin-top: 38px; display: flex; justify-content: center; }
.vishmi-pagination ul.page-numbers { display: flex; flex-wrap: wrap; justify-content: center; gap: 9px; list-style: none; padding: 0; margin: 0; }
.vishmi-pagination li { padding: 0; margin: 0; list-style: none; }
.vishmi-pagination .page-numbers a, .vishmi-pagination .page-numbers span { display: inline-flex; height: 42px; min-width: 42px; justify-content: center; align-items: center; border-radius: 12px; padding: 0 9px; font-weight: 500; font-size: 13px; background: rgba(255,255,255,.86); color: var(--vishmi-ink); border: 1px solid var(--vishmi-border); text-decoration: none !important; transition: background .2s, color .2s; }
.vishmi-pagination .page-numbers .current, .vishmi-pagination .page-numbers a:hover { background: var(--vishmi-primary); color: white; border-color: transparent; }
.vishmi-blog__more { margin-top: 34px; text-align: center; }
.vishmi-loadmore { appearance: none; border: 1px solid var(--vishmi-border); border-radius: 999px; padding: 14px 25px; background: rgba(255,255,255,.9); display: inline-flex; align-items: center; justify-content: center; gap: 14px; color: var(--vishmi-primary); font-family: inherit; font-weight: 500; font-size: 13px; line-height: 1.4; cursor: pointer; transition: background .22s, color .22s, transform .22s; }
.vishmi-loadmore:hover { background: var(--vishmi-primary); color: white; transform: translateY(-2px); }
.vishmi-loadmore[disabled] { cursor: progress; opacity: .65; transform: none; }
.vishmi-blog__error { margin: 9px 0 0; font-size: 12px; color: #b33c35; }
/* Gallery */
.vishmi-gallery__filters { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; margin-bottom: 25px; }
.vishmi-gallery__filter { appearance: none; cursor: pointer; font-family: inherit; font-weight: 500; font-size: 12px; line-height: 1.4; color: var(--vishmi-ink); background: rgba(255,255,255,.68); border: 1px solid var(--vishmi-border); border-radius: 999px; padding: 10px 17px; transition: background .22s, border-color .22s, color .22s, transform .22s; }
.vishmi-gallery__filter:hover { transform: translateY(-2px); border-color: rgba(55,96,69,.3); }
.vishmi-gallery__filter[aria-pressed="true"] { color: #fff; background: var(--vishmi-primary); border-color: transparent; }
.vishmi-gallery__items { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: 20px; row-gap: 20px; }
.vishmi-gallery__item { position: relative; min-width: 0; margin: 0; overflow: hidden; background: var(--vishmi-surface); border: 1px solid rgba(255,255,255,.75); border-radius: 20px; box-shadow: 0 10px 35px rgba(23,58,40,.08); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); transition: transform .36s cubic-bezier(.2,.8,.2,1), box-shadow .36s, border-color .36s; }
.vishmi-gallery__item[hidden] { display: none !important; }
.vishmi-gallery__item:hover { transform: translateY(-7px); box-shadow: 0 20px 48px rgba(17,57,36,.17); border-color: rgba(255,255,255,.9); }
.vishmi-gallery__open { display: block; padding: 0; border: 0; margin: 0; background: transparent; color: inherit; width: 100%; height: 100%; font: inherit; text-align: left; cursor: zoom-in; border-radius: inherit; }
.vishmi-gallery[data-lightbox="no"] .vishmi-gallery__open { cursor: pointer; }
.vishmi-gallery__frame { display: block; aspect-ratio: 1/1; position: relative; overflow: hidden; background: #e3ebe0; width: 100%; isolation: isolate; }
/* Absolutely fill the ratio box. Theme image rules that set height:auto previously left a blank lower strip. */
.vishmi-gallery .vishmi-gallery__frame > img.vishmi-gallery__photo {
  display: block !important; position: absolute !important; inset: 0 !important;
  width: 100% !important; height: 100% !important;
  max-width: none !important; max-height: none !important;
  margin: 0 !important; padding: 0 !important; border: 0 !important;
  border-radius: 0 !important;
  object-fit: var(--vishmi-gallery-image-fit, cover) !important;
  object-position: var(--vishmi-gallery-image-position, center) !important;
  transition: transform .7s cubic-bezier(.18,.64,.3,1);
}
.vishmi-gallery--effect-zoom .vishmi-gallery__item:hover .vishmi-gallery__photo { transform: scale(1.085); }
.vishmi-gallery__shade { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, transparent 40%, rgba(8,38,25,.16) 100%); opacity: .25; transition: opacity .3s; }
.vishmi-gallery__item:hover .vishmi-gallery__shade { opacity: .6; }
.vishmi-gallery--effect-none .vishmi-gallery__photo { transition: none; }
.vishmi-gallery--effect-none .vishmi-gallery__item:hover { transform: none; }
.vishmi-gallery__zoom-icon { width: 38px; height: 38px; display: flex; align-items: center; justify-content: center; color: #244a36; background: rgba(255,255,255,.86); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border-radius: 12px; position: absolute; top: 13px; right: 13px; z-index: 2; transform: translateY(-4px); opacity: 0; transition: transform .26s, opacity .26s; }
.vishmi-gallery__item:hover .vishmi-gallery__zoom-icon, .vishmi-gallery__item:focus-within .vishmi-gallery__zoom-icon { opacity: 1; transform: translateY(0); }
.vishmi-gallery__category { position: absolute; top: 15px; left: 15px; z-index: 2; border-radius: 100px; padding: 6px 10px; color: #fff; font-size: 10px; font-weight: 500; line-height: 1.35; background: rgba(13,54,36,.42); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border: 1px solid rgba(255,255,255,.2); }
.vishmi-gallery--masonry .vishmi-gallery__items { display: block; column-count: 4; }
.vishmi-gallery--masonry .vishmi-gallery__item { display: inline-block; width: 100%; vertical-align: top; break-inside: avoid; margin-bottom: var(--vishmi-gallery-row-gap, 20px); }
.vishmi-gallery--masonry .vishmi-gallery__frame { aspect-ratio: auto; }
.vishmi-gallery--masonry .vishmi-gallery__frame > img.vishmi-gallery__photo { position: relative !important; inset: auto !important; width: 100% !important; height: auto !important; max-width: 100% !important; object-fit: cover !important; }
/* Accessible image lightbox: appended to document body, independent of Elementor popups. */
.vishmi-lightbox { position: fixed; z-index: 2147480000; inset: 0; display: flex; flex-direction: column; justify-content: center; align-items: center; color: #fff; padding: 64px 85px 38px; background: var(--vishmi-lightbox-bg, rgba(4,16,12,.93)); -webkit-backdrop-filter: blur(22px); backdrop-filter: blur(22px); animation: vishmi-fade-in .22s ease both; }
.vishmi-lightbox[hidden] { display: none !important; }
.vishmi-lightbox__image-wrap { min-height: 0; max-width: 100%; display: flex; flex: 1 1 auto; align-items: center; justify-content: center; }
.vishmi-lightbox__image { display: block; max-height: min(78vh, 930px); max-width: 100%; width: auto; height: auto; object-fit: contain; border-radius: 9px; box-shadow: 0 20px 60px rgba(0,0,0,.36); }
.vishmi-lightbox__foot { text-align: center; flex: 0 0 auto; padding: 10px 12px 4px; max-width: 700px; }
.vishmi-lightbox__counter { margin-top: 10px; font-size: 11px; color: rgba(255,255,255,.55); letter-spacing: .12em; }
/* Isolated nav control styles prevent Agrica/theme/global Elementor button hover styles from moving or stretching icons. */
.vishmi-lightbox.vishmi-lightbox button.vishmi-lightbox__nav,
.vishmi-lightbox.vishmi-lightbox button.vishmi-lightbox__close {
  position: absolute !important; z-index: 3;
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  box-sizing: border-box !important; min-width: 0 !important; min-height: 0 !important;
  padding: 0 !important; margin: 0 !important;
  border: 1px solid rgba(255,255,255,.25) !important;
  border-radius: 50% !important; background-image: none !important;
  color: var(--vishmi-lightbox-nav-color, #fff) !important;
  background-color: var(--vishmi-lightbox-nav-bg, rgba(255,255,255,.11)) !important;
  box-shadow: none !important; text-shadow: none !important; text-decoration: none !important;
  line-height: 1 !important; opacity: 1; appearance: none;
  cursor: pointer; outline: none;
  transition: background-color .2s ease, border-color .2s ease !important;
}
.vishmi-lightbox.vishmi-lightbox button.vishmi-lightbox__nav { width: 48px !important; height: 48px !important; top: 50%; transform: translateY(-50%) !important; }
.vishmi-lightbox.vishmi-lightbox button.vishmi-lightbox__nav--prev { left: 21px; }
.vishmi-lightbox.vishmi-lightbox button.vishmi-lightbox__nav--next { right: 21px; }
.vishmi-lightbox.vishmi-lightbox button.vishmi-lightbox__close { right: 23px; top: 19px; width: 42px !important; height: 42px !important; transform: none !important; }
.vishmi-lightbox.vishmi-lightbox button.vishmi-lightbox__nav:is(:hover, :active),
.vishmi-lightbox.vishmi-lightbox button.vishmi-lightbox__close:is(:hover, :active) {
  color: var(--vishmi-lightbox-nav-color, #fff) !important;
  background-color: var(--vishmi-lightbox-nav-hover-bg, rgba(255,255,255,.23)) !important;
  background-image: none !important; border-color: rgba(255,255,255,.55) !important;
  box-shadow: none !important; filter: none !important;
}
.vishmi-lightbox.vishmi-lightbox button.vishmi-lightbox__nav:hover { transform: translateY(-50%) !important; }
.vishmi-lightbox.vishmi-lightbox button.vishmi-lightbox__close:hover { transform: none !important; }
.vishmi-lightbox.vishmi-lightbox button.vishmi-lightbox__nav svg,
.vishmi-lightbox.vishmi-lightbox button.vishmi-lightbox__close svg {
  width: 22px !important; height: 22px !important; display: block !important;
  flex: 0 0 22px !important; margin: 0 !important;
  padding: 0 !important; fill: none !important; transform: none !important;
  pointer-events: none;
}
.vishmi-lightbox.vishmi-lightbox button.vishmi-lightbox__nav:disabled { opacity: .25 !important; cursor: default; pointer-events: none; }
.vishmi-lightbox.vishmi-lightbox button.vishmi-lightbox__nav:focus-visible,
.vishmi-lightbox.vishmi-lightbox button.vishmi-lightbox__close:focus-visible { outline: 2px solid #fff !important; outline-offset: 3px; }
/* Backwards-compatible protection if cached Elementor HTML still contains old captions. */
.vishmi-gallery .vishmi-gallery__category,
.vishmi-gallery .vishmi-gallery__content,
.vishmi-gallery .vishmi-gallery__name,
.vishmi-gallery .vishmi-gallery__caption,
.vishmi-lightbox .vishmi-lightbox__title,
.vishmi-lightbox .vishmi-lightbox__caption { display: none !important; }
@keyframes vishmi-fade-in { from { opacity: 0; } to { opacity: 1; } }
@media (max-width: 1024px) {
  .vishmi-blog__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vishmi-gallery__items { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vishmi-gallery--masonry .vishmi-gallery__items { column-count: 2; }
}
@media (max-width: 767px) {
  .vishmi-widget .vishmi-shell { padding: 22px 12px; }
  .vishmi-blog__grid { grid-template-columns: minmax(0, 1fr); }
  .vishmi-blog__body { padding: 19px 18px 21px; }
  .vishmi-gallery__items { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .vishmi-gallery--masonry .vishmi-gallery__items { column-count: 2; }
  .vishmi-gallery__item { border-radius: 14px; }
  .vishmi-gallery__zoom-icon { top: 8px; right: 8px; width: 31px; height: 31px; opacity: 1; transform: none; }
  .vishmi-gallery__zoom-icon svg { width: 16px; height: 16px; }
  .vishmi-gallery__category { top: 9px; left: 9px; padding: 5px 8px; font-size: 9px; }
  .vishmi-gallery__filters { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 7px; overscroll-behavior-x: contain; scrollbar-width: thin; }
  .vishmi-gallery__filter { white-space: nowrap; padding: 9px 14px; }
  .vishmi-lightbox { padding: 64px 12px 64px; }
  .vishmi-lightbox__image { max-height: 72vh; }
  .vishmi-lightbox.vishmi-lightbox button.vishmi-lightbox__nav { width: 38px !important; height: 38px !important; top: auto; bottom: 15px; transform: none !important; }
  .vishmi-lightbox.vishmi-lightbox button.vishmi-lightbox__nav:hover { transform: none !important; }
  .vishmi-lightbox.vishmi-lightbox button.vishmi-lightbox__nav--prev { left: 20px; }
  .vishmi-lightbox.vishmi-lightbox button.vishmi-lightbox__nav--next { right: 20px; }
  .vishmi-lightbox.vishmi-lightbox button.vishmi-lightbox__close { width: 38px !important; height: 38px !important; right: 12px; top: 12px; }
  .vishmi-lightbox__foot { padding: 17px 5px 3px; }
}
@media (max-width: 380px) {
  .vishmi-gallery__category { max-width: 65%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
}
@media (prefers-reduced-motion: reduce) {
  .vishmi-widget *, .vishmi-widget *::before, .vishmi-widget *::after, .vishmi-lightbox, .vishmi-lightbox * { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}


/* 1.0.2: ICON-ONLY LIGHTBOX CONTROLS / THEME HOVER RESET
 * Agrica / Elementor may add button::before / button::after decorative triangles,
 * oversized backgrounds, masks or clip paths on :hover. The gallery lightbox
 * lives directly under <body>, so scope this safeguard to that one element.
 * All states have transparent hit targets (desktop and mobile), with NO visible
 * circle/polygon/hover fill. Keep a focus-visible outline for keyboard users.
 */
body > .vishmi-lightbox.vishmi-lightbox button:is(.vishmi-lightbox__nav, .vishmi-lightbox__close),
body > .vishmi-lightbox.vishmi-lightbox button:is(.vishmi-lightbox__nav, .vishmi-lightbox__close):is(:hover, :active, :focus) {
  appearance: none !important;
  -webkit-appearance: none !important;
  border: 0 !important;
  border-style: none !important;
  border-image: none !important;
  border-radius: 0 !important;
  background: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  text-shadow: none !important;
  filter: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  clip-path: none !important;
  -webkit-clip-path: none !important;
  mask: none !important;
  -webkit-mask: none !important;
  outline: none !important;
  overflow: hidden !important;
  isolation: isolate !important;
  color: var(--vishmi-lightbox-nav-color, #fff) !important;
  opacity: .82 !important;
  transition: opacity .18s ease !important;
}
body > .vishmi-lightbox.vishmi-lightbox button:is(.vishmi-lightbox__nav, .vishmi-lightbox__close):hover,
body > .vishmi-lightbox.vishmi-lightbox button:is(.vishmi-lightbox__nav, .vishmi-lightbox__close):active {
  opacity: 1 !important;
}
/* Suppress EACH of the two pseudo-elements, including during hover/focus.
   This removes theme-injected green wedges even when theme CSS loads last. */
body > .vishmi-lightbox.vishmi-lightbox button:is(.vishmi-lightbox__nav, .vishmi-lightbox__close)::before,
body > .vishmi-lightbox.vishmi-lightbox button:is(.vishmi-lightbox__nav, .vishmi-lightbox__close)::after,
body > .vishmi-lightbox.vishmi-lightbox button:is(.vishmi-lightbox__nav, .vishmi-lightbox__close):is(:hover, :active, :focus)::before,
body > .vishmi-lightbox.vishmi-lightbox button:is(.vishmi-lightbox__nav, .vishmi-lightbox__close):is(:hover, :active, :focus)::after {
  content: none !important;
  display: none !important;
  visibility: hidden !important;
  width: 0 !important;
  height: 0 !important;
  background: none !important;
  clip-path: none !important;
  -webkit-clip-path: none !important;
  mask: none !important;
  -webkit-mask: none !important;
  border: 0 !important;
  box-shadow: none !important;
  transform: none !important;
  animation: none !important;
}
/* Protect the native SVG paths from theme hover icon shapes/animations. */
body > .vishmi-lightbox.vishmi-lightbox button:is(.vishmi-lightbox__nav, .vishmi-lightbox__close) svg,
body > .vishmi-lightbox.vishmi-lightbox button:is(.vishmi-lightbox__nav, .vishmi-lightbox__close) svg path {
  background: none !important;
  box-shadow: none !important;
  filter: none !important;
  clip-path: none !important;
  -webkit-clip-path: none !important;
  transform: none !important;
  animation: none !important;
  transition: none !important;
}
body > .vishmi-lightbox.vishmi-lightbox button:is(.vishmi-lightbox__nav, .vishmi-lightbox__close) svg path {
  fill: none !important;
  stroke: currentColor !important;
}
body > .vishmi-lightbox.vishmi-lightbox button:is(.vishmi-lightbox__nav, .vishmi-lightbox__close):focus-visible {
  outline: 2px solid rgba(255,255,255,.90) !important;
  outline-offset: 2px !important;
}
body > .vishmi-lightbox.vishmi-lightbox button.vishmi-lightbox__nav:disabled {
  opacity: .25 !important;
}

/* Pointer-open modals initially focus the close button without showing a
   decorative focus square. Keyboard navigation restores focus indication. */
body > .vishmi-lightbox.vishmi-lightbox.vishmi-lightbox--pointer-open button:is(.vishmi-lightbox__nav, .vishmi-lightbox__close):focus-visible {
  outline: none !important;
}
