:root {
  --npb-action-height: 74px;
  --npb-action-ink: #fff;
  --npb-action-shadow: 0 18px 50px rgba(58, 24, 9, 0.28);
  --npb-saffron: #d96f1d;
  --npb-maroon: #7b1f18;
  --npb-leaf: #158057;
  --npb-deep-text: #2d2118;
}

body {
  padding-bottom: calc(var(--npb-action-height) + env(safe-area-inset-bottom, 0px) + 18px);
  text-rendering: optimizeLegibility;
}

.elementor-widget-text-editor,
.elementor-widget-text-editor p,
.card-body,
.icon-box-description {
  color: var(--npb-deep-text);
  line-height: 1.7;
  overflow-wrap: break-word;
}

.elementor-button,
.jkit-button,
.icon-box-button a,
.elementor-field-type-submit button,
.elementor-field-type-submit .elementor-button,
button.elementor-button {
  align-items: center;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.17), rgba(255, 255, 255, 0) 42%),
    linear-gradient(110deg, var(--npb-maroon) 0%, var(--npb-saffron) 58%, var(--npb-leaf) 100%) !important;
  border: 1px solid rgba(255, 255, 255, 0.32) !important;
  border-radius: 12px !important;
  box-shadow: 0 12px 28px rgba(91, 37, 13, 0.2);
  color: #fff !important;
  display: inline-flex;
  font-weight: 900 !important;
  gap: 8px;
  justify-content: center;
  letter-spacing: 0 !important;
  line-height: 1.15 !important;
  min-height: 46px;
  overflow: hidden;
  padding: 13px 20px !important;
  position: relative;
  text-decoration: none !important;
  text-transform: none !important;
  transition: filter 180ms ease, box-shadow 180ms ease, transform 180ms ease;
  white-space: normal;
}

.elementor-button::before,
.jkit-button::before,
.icon-box-button a::before,
.elementor-field-type-submit button::before,
.elementor-field-type-submit .elementor-button::before,
button.elementor-button::before {
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.32), transparent);
  content: "";
  height: 120%;
  left: -45%;
  pointer-events: none;
  position: absolute;
  top: -10%;
  transform: skewX(-18deg);
  transition: left 420ms ease;
  width: 30%;
}

.elementor-button:hover,
.elementor-button:focus,
.jkit-button:hover,
.jkit-button:focus,
.icon-box-button a:hover,
.icon-box-button a:focus,
.elementor-field-type-submit button:hover,
.elementor-field-type-submit button:focus,
.elementor-field-type-submit .elementor-button:hover,
.elementor-field-type-submit .elementor-button:focus,
button.elementor-button:hover,
button.elementor-button:focus {
  box-shadow: 0 16px 34px rgba(91, 37, 13, 0.28);
  color: #fff !important;
  filter: brightness(1.06);
  outline: 3px solid rgba(217, 111, 29, 0.28);
  outline-offset: 2px;
  transform: translateY(-1px);
}

.elementor-button:hover::before,
.elementor-button:focus::before,
.jkit-button:hover::before,
.jkit-button:focus::before,
.icon-box-button a:hover::before,
.icon-box-button a:focus::before,
.elementor-field-type-submit button:hover::before,
.elementor-field-type-submit button:focus::before,
.elementor-field-type-submit .elementor-button:hover::before,
.elementor-field-type-submit .elementor-button:focus::before,
button.elementor-button:hover::before,
button.elementor-button:focus::before {
  left: 118%;
}

.elementor-button *,
.jkit-button *,
.icon-box-button a *,
.elementor-field-type-submit button *,
.elementor-field-type-submit .elementor-button *,
button.elementor-button * {
  color: #fff !important;
  fill: #fff !important;
}

.elementor-button svg,
.jkit-button svg,
.icon-box-button a svg {
  height: 1.05em;
  width: 1.05em;
}

.npb-action-bar {
  align-items: center;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0) 34%),
    linear-gradient(100deg, #7b1f18 0%, #d96f1d 47%, #158057 100%);
  border: 1px solid rgba(255, 255, 255, 0.26);
  border-radius: 18px 18px 0 0;
  bottom: 0;
  box-shadow: var(--npb-action-shadow);
  color: var(--npb-action-ink);
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(0, 1fr) minmax(128px, 0.8fr) minmax(128px, 0.8fr);
  left: 50%;
  max-width: 960px;
  overflow: hidden;
  padding: 10px 14px calc(10px + env(safe-area-inset-bottom, 0px));
  position: fixed;
  transform: translateX(-50%);
  width: min(100%, 960px);
  z-index: 999999;
}

.npb-action-bar::before {
  animation: npbActionSweep 3.8s ease-in-out infinite;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.28), transparent);
  content: "";
  height: 100%;
  left: -40%;
  pointer-events: none;
  position: absolute;
  top: 0;
  transform: skewX(-18deg);
  width: 28%;
}

.npb-action-copy {
  min-width: 0;
  padding-left: 4px;
}

.npb-action-copy strong,
.npb-inline-copy strong {
  color: #fff;
  display: block;
  font-size: 1rem;
  font-weight: 900;
  line-height: 1.15;
}

.npb-action-copy span,
.npb-inline-copy span {
  color: rgba(255, 255, 255, 0.84);
  display: block;
  font-size: 0.78rem;
  line-height: 1.25;
  margin-top: 3px;
}

.npb-action-button,
.npb-inline-button {
  align-items: center;
  border: 1px solid rgba(255, 255, 255, 0.34);
  border-radius: 12px;
  color: #fff !important;
  display: inline-flex;
  font-weight: 900;
  gap: 8px;
  justify-content: center;
  line-height: 1;
  min-height: 52px;
  overflow: hidden;
  padding: 0 13px;
  position: relative;
  text-decoration: none !important;
  white-space: nowrap;
}

.npb-action-button i,
.npb-inline-button i {
  color: #fff;
  font-size: 1.15rem;
  line-height: 1;
}

.npb-action-call,
.npb-inline-call {
  background: linear-gradient(135deg, #114b9a 0%, #1682d4 100%);
}

.npb-action-whatsapp,
.npb-inline-whatsapp {
  background: linear-gradient(135deg, #0f8f4d 0%, #22c768 100%);
}

.npb-action-button:hover,
.npb-action-button:focus,
.npb-inline-button:hover,
.npb-inline-button:focus {
  color: #fff !important;
  filter: brightness(1.06);
  outline: 3px solid rgba(255, 255, 255, 0.32);
  outline-offset: 2px;
  transform: translateY(-1px);
}

.npb-inline-cta {
  align-items: center;
  background:
    radial-gradient(circle at 0 0, rgba(255, 211, 119, 0.34), transparent 32%),
    linear-gradient(135deg, #6d1f1a 0%, #d76a1d 55%, #176b54 100%);
  border-radius: 8px;
  box-shadow: 0 16px 38px rgba(75, 35, 17, 0.16);
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(0, 1fr) auto auto;
  margin: 18px auto;
  max-width: 960px;
  padding: 14px;
  width: min(100%, 960px);
}

.npb-inline-cta.npb-inline-footer {
  margin: 0 0 16px;
  width: 100%;
}

.npb-inline-copy {
  min-width: 0;
}

.npb-inline-button {
  min-height: 46px;
  padding: 0 15px;
}

.npb-devotional-heading::before,
.npb-devotional-heading::after {
  color: var(--npb-saffron);
  display: inline-block;
  font-family: "Noto Serif Devanagari", "Mangal", Georgia, serif;
  font-size: 0.72em;
  font-weight: 900;
  line-height: 1;
  margin: 0 9px;
  text-shadow: 0 2px 12px rgba(217, 111, 29, 0.22);
  vertical-align: 0.08em;
}

.npb-devotional-heading::before {
  content: "\0950";
}

.npb-devotional-heading::after {
  color: var(--npb-maroon);
  content: "\5350";
}

.npb-sacred-section {
  position: relative;
}

.npb-sacred-section::before,
.npb-sacred-section::after {
  font-family: "Noto Serif Devanagari", "Mangal", Georgia, serif;
  font-weight: 900;
  line-height: 1;
  opacity: 0.08;
  pointer-events: none;
  position: absolute;
  z-index: 0;
}

.npb-sacred-section::before {
  color: var(--npb-saffron);
  content: "\0950";
  font-size: 74px;
  right: 22px;
  top: 16px;
}

.npb-sacred-section::after {
  bottom: 16px;
  color: var(--npb-maroon);
  content: "\5350";
  font-size: 58px;
  left: 18px;
}

.npb-devotional-motifs {
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  position: fixed;
  z-index: 0;
}

.npb-devotional-motifs .npb-symbol {
  color: rgba(217, 111, 29, 0.1);
  font-family: "Noto Serif Devanagari", "Mangal", Georgia, serif;
  font-size: 64px;
  font-weight: 900;
  line-height: 1;
  position: absolute;
  text-shadow: 0 12px 30px rgba(123, 31, 24, 0.08);
}

.npb-devotional-motifs .npb-symbol-om {
  left: 18px;
  top: 18vh;
}

.npb-devotional-motifs .npb-symbol-swastik {
  right: 20px;
  top: 48vh;
}

.npb-devotional-motifs .npb-symbol-soft {
  color: rgba(21, 128, 87, 0.08);
  font-size: 54px;
}

.npb-devotional-motifs .npb-symbol-soft.npb-symbol-om {
  left: auto;
  right: 18px;
  top: 76vh;
}

.npb-devotional-motifs .npb-symbol-soft.npb-symbol-swastik {
  left: 20px;
  right: auto;
  top: 56vh;
}

.npb-image-whatsapp-link {
  border-radius: 8px;
  display: inline-block;
  max-width: 100%;
  overflow: hidden;
  position: relative;
  text-decoration: none !important;
  vertical-align: middle;
}

.npb-image-whatsapp-link img {
  display: block;
  transition: filter 220ms ease, transform 220ms ease;
}

.npb-image-whatsapp-link::after {
  background: linear-gradient(135deg, #0f8f4d, #22c768);
  border-radius: 999px;
  bottom: 10px;
  box-shadow: 0 8px 22px rgba(15, 143, 77, 0.28);
  color: #fff;
  content: "WhatsApp for booking";
  font-size: 12px;
  font-weight: 900;
  line-height: 1;
  opacity: 0;
  padding: 9px 11px;
  pointer-events: none;
  position: absolute;
  right: 10px;
  transform: translateY(8px);
  transition: opacity 180ms ease, transform 180ms ease;
}

.npb-image-whatsapp-link:hover img,
.npb-image-whatsapp-link:focus img {
  filter: saturate(1.08) contrast(1.03);
  transform: scale(1.015);
}

.npb-image-whatsapp-link:hover::after,
.npb-image-whatsapp-link:focus::after {
  opacity: 1;
  transform: translateY(0);
}

.npb-turnstile-error {
  background: #fff4ed;
  border: 1px solid rgba(217, 111, 29, 0.38);
  border-radius: 8px;
  color: #7b1f18;
  font-size: 0.92rem;
  font-weight: 800;
  line-height: 1.35;
  margin: 8px 0 14px;
  padding: 10px 12px;
}

@keyframes npbActionSweep {
  0% {
    left: -40%;
  }
  45%, 100% {
    left: 112%;
  }
}

@media (max-width: 760px) {
  :root {
    --npb-action-height: 82px;
  }

  .npb-action-bar {
    border-radius: 16px 16px 0 0;
    grid-template-columns: 1fr 1fr;
    padding: 9px 10px calc(9px + env(safe-area-inset-bottom, 0px));
  }

  .npb-action-copy {
    display: none;
  }

  .npb-action-button {
    min-height: 56px;
    padding: 0 8px;
  }

  .npb-inline-cta {
    grid-template-columns: 1fr 1fr;
    margin: 14px auto;
  }

  .npb-inline-copy {
    grid-column: 1 / -1;
  }

  .npb-devotional-heading::before,
  .npb-devotional-heading::after {
    margin: 0 5px;
  }

  .npb-sacred-section::before,
  .npb-sacred-section::after,
  .npb-devotional-motifs {
    display: none;
  }
}

@media (max-width: 390px) {
  .npb-action-button,
  .npb-inline-button {
    font-size: 0.92rem;
    gap: 6px;
  }
}
