/* nn-motif.css — Khmer motif accents + river/editorial softening.
   Used sparingly: the page should read open, not decorated. */

/* ---------- Kbach mark beside a section label ---------- */
.nn-mark .elementor-heading-title::before {
  content: "";
  display: inline-block;
  width: 30px;
  height: 10px;
  margin-inline-end: 12px;
  vertical-align: middle;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='10' viewBox='0 0 30 10'%3E%3Cg fill='none' stroke='%23B56637' stroke-width='1.1'%3E%3Cpath d='M0 5 Q5 0 10 5 Q15 10 20 5 Q25 0 30 5'/%3E%3C/g%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
}
.nn-mark-light .elementor-heading-title::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='10' viewBox='0 0 30 10'%3E%3Cg fill='none' stroke='%23E2B98F' stroke-width='1.1'%3E%3Cpath d='M0 5 Q5 0 10 5 Q15 10 20 5 Q25 0 30 5'/%3E%3C/g%3E%3C/svg%3E");
}

/* ---------- Lattice watermark — dark sections only ---------- */
.nn-lattice { position: relative; overflow: hidden; }
.nn-lattice::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  opacity: 0.05;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 80 80'%3E%3Cg fill='none' stroke='%23E2B98F' stroke-width='1'%3E%3Cpath d='M40 0 L80 40 L40 80 L0 40 Z'/%3E%3Cpath d='M40 20 L60 40 L40 60 L20 40 Z'/%3E%3C/g%3E%3C/svg%3E");
  background-repeat: repeat;
  background-size: 80px 80px;
}
.nn-lattice > .e-con-inner,
.nn-lattice > .elementor-element,
.nn-lattice > .e-con { position: relative; z-index: 1; }

/* ---------- Thin water line linking sections ---------- */
.nn-waterline { position: relative; }
.nn-waterline::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -46px;
  height: 92px;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1200' height='92' viewBox='0 0 1200 92' preserveAspectRatio='none'%3E%3Cpath d='M0 46 C200 12 400 12 600 46 C800 80 1000 80 1200 46' fill='none' stroke='%23DFD3BE' stroke-width='1'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 100% 92px;
}
@media (max-width: 767px) { .nn-waterline::before { display: none; } }

/* ---------- Editorial caption rule ---------- */
.nn-rule .elementor-heading-title::after {
  content: "";
  display: block;
  width: 64px;
  height: 1px;
  margin-top: 18px;
  background: #B56637;
}

/* ---------- Contact Form 7 inside the enquiry block ---------- */
.custom-booking-form .wpcf7-form-control-wrap { display: block; width: 100%; }
.custom-booking-form .wpcf7-not-valid-tip { display: block; margin-top: 6px; font-size: 13px; color: #B54B37; }
.custom-booking-form .wpcf7-response-output { margin: 24px 0 0; padding: 14px 16px; border: 1px solid #DFD3BE; border-radius: 2px; font-size: 14.5px; }
.custom-booking-form form.invalid .wpcf7-response-output,
.custom-booking-form form.failed .wpcf7-response-output { border-color: #B54B37; color: #B54B37; }
.custom-booking-form form.sent .wpcf7-response-output { border-color: #5C7A4A; color: #3F5A31; }
.custom-booking-form .wpcf7-spinner { display: block; margin: 12px auto 0; }

/* ---------- Intro hero scroll cue ---------- */
.nn-scroll-cue { text-align: center; }
.nn-scroll-cue::after {
  content: "";
  display: block;
  width: 1px;
  height: 58px;
  margin: 16px auto 0;
  transform-origin: top center;
  background: linear-gradient(to bottom, rgba(226,185,143,0.95), rgba(226,185,143,0));
  animation: nn-drift 2.6s ease-in-out infinite;
}
@keyframes nn-drift {
  0%, 100% { transform: scaleY(0.55); opacity: 0.45; }
  50%      { transform: scaleY(1);    opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .nn-scroll-cue::after { animation: none; opacity: 0.8; }
}
@media (max-width: 767px) {
  .nn-scroll-cue::after { height: 40px; }
}


/* ---------- Route tabs (Destinations) ---------- */
.nn-route .e-n-tabs-heading { position: relative; }
.nn-route .e-n-tabs-heading::before {
  content: '';
  position: absolute;
  left: 5px;
  top: 18px;
  bottom: 18px;
  width: 14px;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='96' viewBox='0 0 14 96'%3E%3Cpath d='M7 0 Q1 24 7 48 Q13 72 7 96' fill='none' stroke='%23DFD3BE' stroke-width='1.2'/%3E%3C/svg%3E");
  background-repeat: repeat-y;
  background-position: center top;
  background-size: 14px 96px;
}

.nn-route .e-n-tab-title { position: relative; padding-inline-start: 40px !important; }
.nn-route .e-n-tab-title::before {
  content: '';
  position: absolute;
  inset-inline-start: 5px;
  top: 50%;
  width: 13px;
  height: 13px;
  margin-top: -7px;
  transform: rotate(45deg);
  border: 1px solid #DFD3BE;
  background: #F4EDE0;
  transition: background .35s ease, border-color .35s ease, transform .35s ease;
}
.nn-route .e-n-tab-title:hover::before { border-color: #B56637; }
.nn-route .e-n-tab-title[aria-selected='true']::before {
  border-color: #B56637;
  background: #B56637;
  transform: rotate(45deg) scale(1.18);
}

/* kbach flourish on the active stop */
.nn-route .e-n-tab-title[aria-selected='true']::after {
  content: '';
  position: absolute;
  inset-inline-start: 40px;
  bottom: 6px;
  width: 34px;
  height: 8px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='34' height='8' viewBox='0 0 34 8'%3E%3Cpath d='M0 4 Q5.6 0 11.3 4 Q17 8 22.6 4 Q28.3 0 34 4' fill='none' stroke='%23B56637' stroke-width='1'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
}

@media (max-width: 767px) {
  .nn-route .e-n-tabs-heading::before { display: none; }
  .nn-route .e-n-tab-title { padding-inline-start: 30px !important; }
  .nn-route .e-n-tab-title::before { inset-inline-start: 0; }
  .nn-route .e-n-tab-title[aria-selected='true']::after { display: none; }
}
